Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot]
2026-09-28 18:12:44 +00:00
committed by GitHub
124 changed files with 1828 additions and 1205 deletions

View File

@@ -204,6 +204,11 @@
- `librest` providing 0.7 ABI was removed. `librest_1_0` providing 1.0 ABI was renamed to `librest` and `librest_1_0` was kept as an alias.
- `secretspec-ffi` has been renamed to `libsecretspec` and updated to 0.21.0.
The old package attribute remains an alias, but native consumers must rebuild
against the new `libsecretspec` library and pkg-config module. The separate
`libsecretspec-resolver` package provides a C client for `secretspec serve`.
- `luaPackages.lrexlib-pcre` has been removed as part of the process to fully migrate from the end-of-life PRCE library to PCRE2. `luaPackages.lrexlib-pcre2` and multiple other versions of lrexlib can be used instead.
- `hostapd` was upgraded to version 2.12+, which moves move supported, basic, and beacon transmission rate configuration to be at BSS level instead of per-radio for all BSSs. Refer to the [upstream example config](https://git.w1.fi/cgit/hostap/plain/hostapd/hostapd.conf) for details.

View File

@@ -6,6 +6,76 @@
}:
let
cfg = config.services.beszel.agent;
hasVideoDriver = driver: builtins.elem driver config.services.xserver.videoDrivers;
# Collector names must match `isValidCollectorSource` in upstream's agent/gpu.go.
# macmon and powermetrics are macOS-only and omitted here.
gpuCollectors = {
# read sysfs directly, need no package or device access
"amd_sysfs" = { };
"intel_sysfs" = { };
"intel_gpu_top" = {
package = lib.getBin pkgs.intel-gpu-tools;
deviceAllow = [ "char-drm rw" ];
capabilities = [ "CAP_PERFMON" ];
# perf_event_open is in @debug, not @system-service
systemCalls = [ "perf_event_open" ];
};
"nvidia-smi" = {
package = lib.getBin config.hardware.nvidia.package;
deviceAllow = [ "char-nvidia* rw" ];
};
"nvml" = {
deviceAllow = [ "char-nvidia* rw" ];
};
"nvtop" = {
package = lib.getBin pkgs.nvtopPackages.full;
deviceAllow = [
"char-nvidia* rw"
"char-drm rw"
];
};
"rocm-smi" = {
package = lib.getBin pkgs.rocmPackages.rocm-smi;
deviceAllow = [
"char-drm rw"
"char-kfd rw"
];
};
};
activeCollectors = lib.optionals (!cfg.environment.SKIP_GPU) cfg.environment.GPU_COLLECTOR;
collectorAttrs =
attr: lib.unique (lib.concatMap (name: gpuCollectors.${name}.${attr} or [ ]) activeCollectors);
gpuPackages = map (name: gpuCollectors.${name}.package) (
lib.filter (name: gpuCollectors.${name} ? package) activeCollectors
);
gpuNeedsDevices = collectorAttrs "deviceAllow" != [ ];
# capabilities granted under PrivateUsers are void on the host, see
# systemd.exec(5), so these collectors also need the user namespace disabled
gpuNeedsCapabilities = collectorAttrs "capabilities" != [ ];
# Any explicit DeviceAllow turns DevicePolicy=auto into an allow-list, so the GPU
# devices are omitted when smartmon relies on full /dev access.
deviceAllowList =
lib.optionals (cfg.smartmon.enable && cfg.smartmon.deviceAllow != [ ]) (
map (device: "${device} r") cfg.smartmon.deviceAllow
)
++ lib.optionals (!cfg.smartmon.enable || cfg.smartmon.deviceAllow != [ ]) (
collectorAttrs "deviceAllow" ++ lib.optionals config.boot.zfs.enabled [ "/dev/zfs rw" ]
);
serviceCapabilities =
lib.optionals cfg.smartmon.enable [
"CAP_SYS_RAWIO"
"CAP_SYS_ADMIN"
]
++ collectorAttrs "capabilities";
in
{
meta.maintainers = with lib.maintainers; [
@@ -60,6 +130,45 @@ in
Enabling this option will skip systemd tracking and its setup in NixOS.
'';
};
SKIP_GPU = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Whether to disable GPU monitoring.
Enabling this option will skip GPU tracking.
'';
};
GPU_COLLECTOR = lib.mkOption {
# upstream takes a comma-separated string, which used to be passed through as is
type =
with lib.types;
coercedTo str (value: map lib.trim (lib.splitString "," value)) (
listOf (enum (lib.attrNames gpuCollectors))
);
default =
lib.optionals (hasVideoDriver "nvidia") [ "nvidia-smi" ]
++ lib.optionals (hasVideoDriver "amdgpu") [ "amd_sysfs" ]
++ lib.optionals (hasVideoDriver "intel") [ "intel_sysfs" ];
defaultText = lib.literalMD ''
derived from {option}`services.xserver.videoDrivers`
'';
example = [
"nvidia-smi"
"intel_gpu_top"
];
description = ''
GPU collectors to use, in priority order. Overrides the agent's
auto-detection; the packages needed by the selected collectors are added
to the service path. If empty, the agent auto-detects available
collectors. `rocm-smi` is deprecated upstream in favour of `amd_sysfs`,
and `intel_gpu_top` is not used on the xe driver, where `intel_sysfs` is
preferred.
Access to GPU device nodes is only granted for the collectors listed
here, so a collector provided through
{option}`services.beszel.agent.extraPath` has to be listed as well.
'';
};
};
};
default = { };
@@ -129,23 +238,22 @@ in
wants = [ "network-online.target" ];
after = [ "network-online.target" ];
# drop empty lists so an unset GPU_COLLECTOR keeps upstream auto-detection
environment = lib.mapAttrs (
_: value: if lib.isBool value then (lib.boolToString value) else value
) (cfg.environment // { DATA_DIR = cfg.dataDir; });
_: value:
if lib.isBool value then
(lib.boolToString value)
else if lib.isList value then
lib.concatStringsSep "," value
else
value
) (lib.filterAttrs (_: value: value != [ ]) (cfg.environment // { DATA_DIR = cfg.dataDir; }));
path =
cfg.extraPath
++ lib.optionals cfg.smartmon.enable [ cfg.smartmon.package ]
++ lib.optionals config.boot.zfs.enabled [ config.boot.zfs.package ]
++ lib.optionals (builtins.elem "nvidia" config.services.xserver.videoDrivers) [
(lib.getBin config.hardware.nvidia.package)
]
++ lib.optionals (builtins.elem "amdgpu" config.services.xserver.videoDrivers) [
(lib.getBin pkgs.rocmPackages.rocm-smi)
]
++ lib.optionals (builtins.elem "intel" config.services.xserver.videoDrivers) [
(lib.getBin pkgs.intel-gpu-tools)
];
++ gpuPackages;
serviceConfig = {
ExecStart = ''
@@ -166,26 +274,22 @@ in
DynamicUser = true;
User = "beszel-agent";
# Capabilities needed for SMART monitoring
AmbientCapabilities = lib.mkIf cfg.smartmon.enable [
"CAP_SYS_RAWIO"
"CAP_SYS_ADMIN"
];
CapabilityBoundingSet = lib.mkIf cfg.smartmon.enable [
"CAP_SYS_RAWIO"
"CAP_SYS_ADMIN"
];
# Capabilities needed for SMART monitoring and GPU performance counters
AmbientCapabilities = serviceCapabilities;
CapabilityBoundingSet = serviceCapabilities;
# Device access for SMART monitoring
DeviceAllow = lib.mkIf (cfg.smartmon.enable && cfg.smartmon.deviceAllow != [ ]) (
map (device: "${device} r") cfg.smartmon.deviceAllow
);
DeviceAllow = lib.mkIf (deviceAllowList != [ ]) deviceAllowList;
LockPersonality = true;
NoNewPrivileges = !cfg.smartmon.enable;
PrivateDevices = !cfg.smartmon.enable && !config.boot.zfs.enabled;
PrivateDevices = !cfg.smartmon.enable && !gpuNeedsDevices;
PrivateTmp = true;
PrivateUsers = !cfg.smartmon.enable && !config.boot.zfs.enabled && !cfg.environment.SKIP_SYSTEMD;
# zfs commands fail inside a user namespace since zfs 2.2, see syncoid.nix
PrivateUsers =
!cfg.smartmon.enable
&& !config.boot.zfs.enabled
&& !cfg.environment.SKIP_SYSTEMD
&& !gpuNeedsCapabilities;
ProtectClock = true;
ProtectControlGroups = "strict";
ProtectHome = "read-only";
@@ -200,7 +304,7 @@ in
RestrictSUIDSGID = true;
SystemCallArchitectures = "native";
SystemCallErrorNumber = "EPERM";
SystemCallFilter = [ "@system-service" ];
SystemCallFilter = [ "@system-service" ] ++ collectorAttrs "systemCalls";
Type = "simple";
UMask = 27;
};

View File

@@ -95,8 +95,8 @@ in
DynamicUser = true;
StateDirectory = "glpi-agent";
CapabilityBoundingSet = [ "CAP_SYS_ADMIN" ];
AmbientCapabilities = [ "CAP_SYS_ADMIN" ];
CapabilityBoundingSet = [ "CAP_DAC_READ_SEARCH" ];
AmbientCapabilities = [ "CAP_DAC_READ_SEARCH" ];
LimitCORE = 0;
LimitNOFILE = 65535;
@@ -104,7 +104,7 @@ in
MemorySwapMax = 0;
MemoryZSwapMax = 0;
PrivateTmp = true;
ProcSubset = "pid";
ProcSubset = "all";
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;

View File

@@ -32,10 +32,14 @@ let
inherit (package) phpPackage;
phpOptions = toKeyValue cfg.phpOptions;
preferLocalBuild = true;
passAsFile = [ "phpOptions" ];
strictDeps = true;
__structuredAttrs = true;
}
''
cat $phpPackage/etc/php.ini $phpOptionsPath > $out
(
cat $phpPackage/etc/php.ini
printf "%s" "$phpOptions"
) > $out
'';
artisanWrapper = pkgs.writeShellScriptBin "librenms-artisan" ''

View File

@@ -12,6 +12,13 @@ let
scheme = if cfg.ssl.enable then "https" else "http";
configFile = settingsFormat.generate "rundeck-config.properties" cfg.settings;
jaasLoginModuleClass =
if lib.versionAtLeast cfg.package.version "6" then
"org.rundeck.jaas.PropertyFileLoginModule"
else
"org.eclipse.jetty.jaas.spi.PropertyFileLoginModule";
frameworkFile = settingsFormat.generate "framework.properties" cfg.frameworkSettings;
realmFile = pkgs.writeText "realm.properties" ''
@@ -133,7 +140,43 @@ in
aclPolicies = lib.mkOption {
type = lib.types.attrsOf lib.types.str;
default = { };
default = {
"admin.aclpolicy" = ''
description: Admin, all access.
context:
project: '.*'
for:
resource:
- allow: '*'
adhoc:
- allow: '*'
job:
- allow: '*'
node:
- allow: '*'
runner:
- allow: '*'
by:
group: admin
---
description: Admin, all access.
context:
application: 'rundeck'
for:
resource:
- allow: '*'
project:
- allow: '*'
project_acl:
- allow: '*'
storage:
- allow: '*'
by:
group: admin
'';
};
description = "ACL policies for Rundeck, where the attribute name is the filename and the value is the policy content";
example = lib.literalExpression ''
{
@@ -493,9 +536,9 @@ in
group = cfg.group;
text = ''
RDpropertyfilelogin {
org.eclipse.jetty.jaas.spi.PropertyFileLoginModule required
${jaasLoginModuleClass} required
debug="true"
file="/etc/rundeck/realm.properties";
file="${cfg.configDir}/realm.properties";
};
'';
};
@@ -631,9 +674,7 @@ in
replaceSecret "@SERVER_UUID@" "${cfg.dataDir}/.uuid" "${cfg.configDir}/framework.properties"
)}
if [ -f ${cfg.dataDir}/etc/framework.properties ]; then
install -m 0640 ${cfg.configDir}/framework.properties ${cfg.dataDir}/etc/framework.properties
fi
install -C -m 0640 ${cfg.configDir}/framework.properties ${cfg.dataDir}/etc/framework.properties
${lib.concatStringsSep "\n" (
lib.mapAttrsToList (

View File

@@ -647,10 +647,6 @@ in
imports = [ ./firefox.nix ];
_module.args.firefoxPackage = pkgs.firefox;
};
firefox-beta = runTest {
imports = [ ./firefox.nix ];
_module.args.firefoxPackage = pkgs.firefox-beta;
};
firefox-devedition = runTest {
imports = [ ./firefox.nix ];
_module.args.firefoxPackage = pkgs.firefox-devedition;
@@ -1270,6 +1266,7 @@ in
nginx-modsecurity = runTest ./nginx-modsecurity.nix;
nginx-moreheaders = runTest ./nginx-moreheaders.nix;
nginx-njs = runTest ./nginx-njs.nix;
nginx-otel = runTest ./nginx-otel.nix;
nginx-proxyprotocol = runTest ./nginx-proxyprotocol/default.nix;
nginx-pubhtml = runTest ./nginx-pubhtml.nix;
nginx-redirectcode = runTest ./nginx-redirectcode.nix;

View File

@@ -59,6 +59,50 @@
openFirewall = true;
};
};
# Only inspected by the test script, never activated: the VM has no GPU,
# but the generated units can still be checked.
specialisation."gpu-sysfs".configuration = {
services.beszel.agent = {
enable = true;
environment.GPU_COLLECTOR = [ "amd_sysfs" ];
};
};
specialisation."gpu-devices".configuration = {
services.beszel.agent = {
enable = true;
environment.GPU_COLLECTOR = [ "intel_gpu_top" ];
};
};
specialisation."gpu-smartmon".configuration = {
services.beszel.agent = {
enable = true;
# upstream's comma-separated form is accepted as well
environment.GPU_COLLECTOR = "intel_gpu_top";
smartmon = {
enable = true;
deviceAllow = [ "/dev/nvme0" ];
};
};
};
specialisation."zfs".configuration = {
networking.hostId = "8425e349";
boot.supportedFilesystems = [ "zfs" ];
services.beszel.agent.enable = true;
};
specialisation."gpu-skipped".configuration = {
services.beszel.agent = {
enable = true;
environment = {
SKIP_GPU = true;
GPU_COLLECTOR = [ "intel_gpu_top" ];
};
};
};
};
};
@@ -67,6 +111,13 @@
let
hubCfg = nodes.hubHost.services.beszel.hub;
agentCfg = nodes.agentHost.specialisation."agent".configuration.services.beszel.agent;
# /run/current-system points at the "agent" specialisation after the switch,
# so the units are read from the store directly.
gpuUnit =
name:
"${
nodes.agentHost.specialisation.${name}.configuration.system.build.toplevel
}/etc/systemd/system/beszel-agent.service";
in
''
import json
@@ -115,5 +166,41 @@
agentHost.wait_for_unit("beszel-agent.service")
agentHost.wait_until_succeeds("journalctl -eu beszel-agent --grep 'SSH connection established'")
agentHost.wait_until_succeeds(f'curl -H \'Authorization: {user["token"]}\' -f ${agentCfg.environment.HUB_URL}/api/collections/systems/records | jq -e \'.items[].status == "up"\' ')
with subtest("Agent stays sandboxed without a GPU"):
agentHost.succeed("systemctl show beszel-agent -p PrivateDevices --value | grep -qx yes")
agentHost.succeed("systemctl show beszel-agent -p PrivateUsers --value | grep -qx yes")
with subtest("GPU collectors shape the unit"):
# sysfs-only collector keeps the sandbox
sysfs = agentHost.succeed("cat ${gpuUnit "gpu-sysfs"}")
assert "PrivateDevices=true" in sysfs, sysfs
assert "PrivateUsers=true" in sysfs, sysfs
assert "intel-gpu-tools" not in sysfs, sysfs
# device-based collector gets its devices as an allow-list, and
# CAP_PERFMON/perf_event_open with the user namespace disabled
devices = agentHost.succeed("cat ${gpuUnit "gpu-devices"}")
assert "PrivateDevices=false" in devices, devices
assert "PrivateUsers=false" in devices, devices
assert "DeviceAllow=char-drm rw" in devices, devices
assert "CAP_PERFMON" in devices, devices
assert "perf_event_open" in devices, devices
# GPU devices must survive smartmon's DeviceAllow list
smartmon = agentHost.succeed("cat ${gpuUnit "gpu-smartmon"}")
assert "DeviceAllow=/dev/nvme0 r" in smartmon, smartmon
assert "DeviceAllow=char-drm rw" in smartmon, smartmon
# zfs only gets /dev/zfs, but needs the host user namespace
zfs = agentHost.succeed("cat ${gpuUnit "zfs"}")
assert "PrivateDevices=true" in zfs, zfs
assert "DeviceAllow=/dev/zfs rw" in zfs, zfs
assert "PrivateUsers=false" in zfs, zfs
# SKIP_GPU wins over an explicitly configured collector
skipped = agentHost.succeed("cat ${gpuUnit "gpu-skipped"}")
assert "PrivateDevices=true" in skipped, skipped
assert "intel-gpu-tools" not in skipped, skipped
'';
}

View File

@@ -10,11 +10,30 @@
enable = true;
port = 8888;
};
services.nginx = {
enable = true;
virtualHosts.localhost = {
locations."/" = {
return = "200 'hello world'";
extraConfig = ''
default_type text/plain;
'';
};
};
};
};
testScript = ''
testScript = /* python */ ''
import json
machine.wait_for_unit("flaresolverr.service")
machine.wait_for_open_port(8888)
machine.succeed("curl --fail http://localhost:8888/")
res = machine.succeed("""curl --fail http://localhost:8888/v1 -X POST --json '{ "cmd": "request.get", "url": "http://localhost/", "maxTimeout": 10000 }'""")
res = json.loads(res)
response = res["solution"]["response"]
assert "hello world" in response, f"Could not find 'hello world' in response: {response}"
'';
}

View File

@@ -1,11 +1,11 @@
{
lib,
pkgs,
...
}:
{
name = "music-assistant";
meta.maintainers = with lib.maintainers; [ hexa ];
meta = { inherit (pkgs.music-assistant.meta) maintainers; };
containers.machine = {
services.music-assistant = {

View File

@@ -0,0 +1,56 @@
{
name = "nginx-otel";
nodes.machine =
{ pkgs, ... }:
{
services.opentelemetry-collector = {
enable = true;
settings = {
receivers.otlp.protocols.grpc.endpoint = "127.0.0.1:4317";
exporters.debug.verbosity = "detailed";
service.pipelines.traces = {
receivers = [ "otlp" ];
exporters = [ "debug" ];
};
};
};
services.nginx = {
enable = true;
additionalModules = [ pkgs.nginxModules.otel ];
commonHttpConfig = ''
otel_exporter {
endpoint localhost:4317;
}
otel_service_name "nginx-test";
otel_trace on;
'';
virtualHosts."localhost".locations."/".extraConfig = ''
otel_trace_context propagate;
otel_span_name "handle";
return 200 "otel-ok";
'';
};
};
testScript =
{ nodes, ... }:
let
cfg = nodes.machine.services.nginx;
in
''
machine.wait_for_unit("opentelemetry-collector")
machine.wait_for_open_port(4317)
machine.wait_for_unit("nginx")
machine.wait_for_open_port(80)
machine.succeed("test -e ${cfg.package}/modules/ngx_otel_module.so")
machine.succeed("grep -F ngx_otel_module.so ${cfg.package}/etc/nginx/dynamic-modules.conf")
response = machine.wait_until_succeeds("curl -fsS http://127.0.0.1/")
t.assertIn("otel-ok", response)
machine.wait_until_succeeds("journalctl -u opentelemetry-collector --grep 'service.name: Str\\(nginx-test\\)'")
machine.wait_until_succeeds("journalctl -u opentelemetry-collector --grep 'Name +: handle'")
'';
}

View File

@@ -12,6 +12,13 @@
group = "rundeck";
};
environment.etc."rundeck-tokens.properties" = {
text = "testadmin: nixostesttoken,admin";
mode = "0400";
user = "rundeck";
group = "rundeck";
};
services.rundeck = {
enable = true;
serverHostname = "rundeck";
@@ -20,6 +27,7 @@
serverPort = 4441;
database.type = "h2";
openFirewall = true;
frameworkSettings."rundeck.tokens.file" = "/etc/rundeck-tokens.properties";
};
environment.systemPackages = with pkgs; [
@@ -32,17 +40,8 @@
testScript = ''
start_all()
def login_and_verify_api(machine, host, port, user, password, timeout=300):
"""Authenticate via Rundeck form login and verify API access."""
machine.wait_until_succeeds(
f"curl -s -c /tmp/cookies -L"
f" -d 'j_username={user}&j_password={password}'"
f" http://{host}:{port}/j_security_check -o /dev/null"
f" && curl -s -b /tmp/cookies -H 'Accept: application/json'"
f" http://{host}:{port}/api/26/system/info"
f" | jq -e '.system.rundeck.version'",
timeout=timeout,
)
api = "http://rundeck:4441/api/26"
token = "-H 'X-Rundeck-Auth-Token: nixostesttoken' -H 'Accept: application/json'"
def properties(machine, path):
return machine.succeed(f"cat {path}").replace("\\", "").replace(" = ", "=")
@@ -90,21 +89,32 @@
"[ \"$(stat -c %U /etc/rundeck/realm.properties)\" = rundeck ]"
)
with subtest("API authentication via form login"):
login_and_verify_api(rundeck, "rundeck", 4441, "testadmin", "testpassword")
with subtest("Form login accepts realm credentials"):
rundeck.wait_until_succeeds(
"curl -s -o /dev/null -w '%{url_effective}' -c /tmp/login-cookies -L"
" -d 'j_username=testadmin&j_password=testpassword'"
" http://rundeck:4441/j_security_check"
" | grep -qvE 'error|login'",
timeout=300,
)
with subtest("API authentication via static token"):
rundeck.wait_until_succeeds(
f"curl -s {token} {api}/system/info"
" | jq -e '.system.rundeck.version'",
timeout=300,
)
rundeck.succeed(
"curl -s -b /tmp/cookies -X POST"
" -H 'Accept: application/json'"
f"curl -s {token} -X POST"
" -H 'Content-Type: application/json'"
" -d '{\"name\":\"test-project\",\"config\":{}}'"
" http://rundeck:4441/api/26/projects"
f" {api}/projects"
" | jq -e '.name == \"test-project\"'"
)
rundeck.succeed(
"curl -s -b /tmp/cookies -H 'Accept: application/json'"
" http://rundeck:4441/api/26/projects"
f"curl -s {token} {api}/projects"
" | jq -e 'any(.[]; .name == \"test-project\")'"
)
'';

View File

@@ -33,7 +33,7 @@ let
packageAttribute = "sublime4${lib.optionalString dev "-dev"}";
binaries = [
"sublime_text"
"plugin_host-3.${if lib.versionAtLeast buildVersion "4205" then "14" else "8"}"
"plugin_host-3.14"
crashHandlerBinary
];
primaryBinary = "sublime_text";
@@ -42,8 +42,7 @@ let
"sublime"
"sublime4"
];
crashHandlerBinary =
if lib.versionAtLeast buildVersion "4153" then "crash_handler" else "crash_reporter";
crashHandlerBinary = "crash_handler";
downloadUrl =
arch: "https://download.sublimetext.com/sublime_text_build_${buildVersion}_${arch}.tar.xz";
versionUrl = "https://download.sublimetext.com/latest/${if dev then "dev" else "stable"}";
@@ -58,8 +57,6 @@ let
cairo
pango
curl
]
++ lib.optionals (lib.versionAtLeast buildVersion "4145") [
sqlite
];
@@ -88,7 +85,6 @@ let
# Remove old plugin host because it depends on EOL openssl 1.1
rm plugin_host-3.3
echo '{"disable_plugin_host_3.3": true}' > Packages/Preferences.sublime-settings
for binary in ${builtins.concatStringsSep " " binaries}; do
patchelf \
@@ -98,15 +94,12 @@ let
done
# Unable to get plugin_host-3.14 not crash with Python from Nixpkgs
${lib.optionalString (lib.versionAtLeast buildVersion "4205") "patchelf --set-rpath ${
patchelf --set-rpath ${
lib.makeLibraryPath [
sqlite
openssl_3_5
]
} libpython3.14.so.1.0"}
# Rewrite pkexec argument. Note that we cannot delete bytes in binary.
${lib.optionalString (lib.versionOlder buildVersion "4205") "sed -i -e 's,/bin/cp\\x00,cp\\x00\\x00\\x00\\x00\\x00\\x00,g' ${primaryBinary}"}
} libpython3.14.so.1.0
runHook postBuild
'';
@@ -116,8 +109,8 @@ let
# No need to patch these libraries, it works well with our own
rm libcrypto.so.1.1 libssl.so.1.1
${lib.optionalString (lib.versionAtLeast buildVersion "4145") "rm libsqlite3.so"}
${lib.optionalString (lib.versionAtLeast buildVersion "4205") "rm libcrypto.so.3 libssl.so.3"}
rm libsqlite3.so
rm libcrypto.so.3 libssl.so.3
mkdir -p $out
cp -r * $out/
@@ -128,8 +121,6 @@ let
dontWrapGApps = true; # non-standard location, need to wrap the executables manually
postFixup = ''
${lib.optionalString (lib.versionOlder buildVersion "4205") "sed -i 's#/usr/bin/pkexec#pkexec\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00#g' \"$out/${primaryBinary}\""}
wrapProgram $out/${primaryBinary} \
--set LOCALE_ARCHIVE "${glibcLocales.out}/lib/locale/locale-archive" \
"''${gappsWrapperArgs[@]}"
@@ -230,11 +221,5 @@ stdenv.mkDerivation (finalAttrs: {
"aarch64-linux"
"x86_64-linux"
];
problems = {
removal.message = "We have removed Python 3.3 package support ahead of upstream schedule but if you do not use any old packages, this should just work.";
}
// lib.optionalAttrs (lib.versionOlder buildVersion "4205") {
broken.message = "Packages, including core ones, do not run without plug-in host depending on insecure OpenSSL.";
};
};
})

View File

@@ -1,44 +0,0 @@
{
stdenv,
lib,
callPackage,
fetchurl,
nixosTests,
buildMozillaMach,
}:
buildMozillaMach rec {
pname = "firefox-beta";
binaryName = "firefox-beta";
version = "156.0b4";
applicationName = "Firefox Beta";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "2aa751d66854145bf260dd04fe1473ca20275c02e51c07efdda769d7980cdaee6dc393cac32fe3bb4ed131249fde81e150c284ee38af5fc560da7704947a6453";
};
meta = {
changelog = "https://www.mozilla.org/en-US/firefox/${lib.versions.majorMinor version}beta/releasenotes/";
description = "Web browser built from Firefox Beta Release source tree";
homepage = "http://www.mozilla.com/en-US/firefox/";
maintainers = with lib.maintainers; [ jopejoe1 ];
platforms = lib.platforms.unix;
broken = stdenv.buildPlatform.is32bit;
# since Firefox 60, build on 32-bit platforms fails with "out of memory".
# not in `badPlatforms` because cross-compilation on 64-bit machine might work.
maxSilent = 14400; # 4h, double the default of 7200s (c.f. #129212, #129115)
license = lib.licenses.mpl20;
mainProgram = binaryName;
identifiers.cpeParts = lib.meta.cpeFullVersionWithVendor "mozilla" version // {
product = "firefox";
sw_edition = "beta";
};
};
tests = {
inherit (nixosTests) firefox-beta;
};
updateScript = callPackage ../update.nix {
attrPath = "firefox-beta-unwrapped";
versionSuffix = "b[0-9]*";
};
}

View File

@@ -32,7 +32,6 @@
description = "Web browser built from Firefox Developer Edition source tree";
homepage = "http://www.mozilla.com/en-US/firefox/";
maintainers = with lib.maintainers; [
jopejoe1
rhendric
];
platforms = lib.platforms.unix;

View File

@@ -370,7 +370,15 @@ let
# Aarch64 uses TLSDESC by default and the option is completely ignored (at least on LLVM).
# TODO: Enable by default in GCC via --with-tls since https://gcc.gnu.org/cgit/gcc/commit/?id=96a291c4bb0b8a00b0a125e6a60f60072ffe53a7 (GCC 16).
# No equivalent build-time option for LLVM yet.
++ optional (tlsDialect != null) "-mtls-dialect=${tlsDialect}";
++ optional (tlsDialect != null) "-mtls-dialect=${tlsDialect}"
# LLVM default-enables AltiVec for powerpc64, and for many CPU targets that didn't actually have it.
# https://github.com/llvm/llvm-project/blob/40977001fcb190a509897aee592819cdd7e83740/llvm/lib/Target/PowerPC/PPC.td#L791-L796
# GCC is more conservative: Requires selecting POWER7 or higher for auto-enable, or opting into it on older ones.
# If no CPU is specified, disable AltiVec like GCC does.
# TODO: Specify CPU + AltiVec preference?
++ optional (
(targetPlatform.isPower64 && targetPlatform.isBigEndian) && isClang && !(targetPlatform ? gcc.cpu)
) "-mno-altivec";
defaultHardeningFlags = bintools.defaultHardeningFlags or [ ];

View File

@@ -48,5 +48,6 @@ stdenv.mkDerivation (finalAttrs: {
license = lib.licenses.bsd2;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ misuzu ];
identifiers.cpeParts = lib.meta.cpeFullVersionWithVendor "3proxy" finalAttrs.version;
};
})

View File

@@ -55,5 +55,6 @@ stdenv.mkDerivation (finalAttrs: {
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ bennofs ];
platforms = lib.platforms.unix;
identifiers.cpeParts = lib.meta.cpeFullVersionWithVendor "gnu" finalAttrs.version;
};
})

View File

@@ -4,15 +4,12 @@
fetchurl,
}:
let
version = "6.2.4";
in
stdenvNoCC.mkDerivation {
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "activemq";
inherit version;
version = "6.2.4";
src = fetchurl {
url = "mirror://apache/activemq/${version}/apache-activemq-${version}-bin.tar.gz";
url = "mirror://apache/activemq/${finalAttrs.version}/apache-activemq-${finalAttrs.version}-bin.tar.gz";
hash = "sha256-/jvyO8cDQ666i8J53SXPS5WyBmN5GZwK6TVaDxXxJhM=";
};
@@ -37,5 +34,6 @@ stdenvNoCC.mkDerivation {
mainProgram = "activemq";
maintainers = [ lib.maintainers.anthonyroussel ];
platforms = lib.platforms.unix;
identifiers.cpeParts = lib.meta.cpeFullVersionWithVendor "apache" finalAttrs.version;
};
}
})

View File

@@ -7,14 +7,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "anarchism";
version = "15.3-1";
version = "15.3-4";
src = fetchFromGitLab {
domain = "salsa.debian.org";
owner = "debian";
repo = "anarchism";
rev = "debian/${finalAttrs.version}";
sha256 = "04ylk0y5b3jml2awmyz7m1hnymni8y1n83m0k6ychdh0px8frhm5";
hash = "sha256-F3Mb/ulZQ4pRicqpilAhGwboDE9uAMdqzj7ziUhE1ik=";
};
postPatch = ''

View File

@@ -0,0 +1,51 @@
{
lib,
fetchFromGitHub,
python3Packages,
}:
python3Packages.buildPythonApplication (finalAttrs: {
pname = "awscurl";
version = "0.44";
pyproject = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "okigan";
repo = "awscurl";
tag = "v${finalAttrs.version}";
hash = "sha256-XMPvAQ7O42HCdVHABe9GENNLIKrYzrpCdfh7dcym2Y8=";
};
build-system = with python3Packages; [
setuptools
];
dependencies = with python3Packages; [
awscrt
boto3
botocore
configargparse
configparser
requests
urllib3
];
nativeCheckInputs = with python3Packages; [
pytestCheckHook
];
disabledTestPaths = [
# requires internet
"tests/integration_test.py"
"tests/tls_test.py"
];
meta = {
description = "Curl like tool with AWS request signing";
homepage = "https://github.com/okigan/awscurl";
changelog = "https://github.com/okigan/awscurl/releases/tag/${finalAttrs.src.tag}";
maintainers = with lib.maintainers; [ SuperSandro2000 ];
license = lib.licenses.mit;
};
})

View File

@@ -16,6 +16,7 @@
nixosTests,
python3Packages,
readline,
removeReferencesTo,
replaceVars,
zip,
}:
@@ -55,6 +56,7 @@ python3Packages.buildPythonApplication rec {
flex
llvmPackages.llvm
makeWrapper
removeReferencesTo
zip
];
@@ -112,8 +114,17 @@ python3Packages.buildPythonApplication rec {
postFixup = ''
wrapPythonProgramsIn "$out/share/bcc/tools" "$out ''${pythonPath[*]}"
''
# Remove string refs to LLVM static libs that are unused at runtime and bloat closure by 2G
+ ''
remove-references-to -t ${lib.getLib llvmPackages.llvm} -t ${lib.getLib llvmPackages.libclang} $out/lib/libbcc.so.*
'';
disallowedReferences = [
(lib.getLib llvmPackages.llvm)
(lib.getLib llvmPackages.libclang)
];
outputs = [
"out"
"man"

View File

@@ -14,7 +14,7 @@
lzo,
lzop,
lz4,
openssl_3,
openssl_3_5,
pkg-config,
python3,
rustPlatform,
@@ -61,7 +61,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
dtc
fontconfig
lzo
openssl_3
openssl_3_5
python3.pkgs.python-lzo
ucl
unzip

View File

@@ -6,13 +6,13 @@
buildGoModule (finalAttrs: {
pname = "checkip";
version = "0.54.0";
version = "0.55.0";
src = fetchFromGitHub {
owner = "jreisinger";
repo = "checkip";
tag = "v${finalAttrs.version}";
hash = "sha256-O9+YR1EjTSABQdPJHPVTPnD4MAxFpa00Uq0fHV2OsE4=";
hash = "sha256-UPumm2ma+kiQkw8SKApreo415oJx2mkIT6/oUpj0s1A=";
};
vendorHash = "sha256-pQCftl9hmTRUNzGssWmUqIkL6WfJXE30BVzDAPmDxPY=";

View File

@@ -8,16 +8,16 @@
buildNpmPackage (finalAttrs: {
pname = "claude-agent-acp";
version = "0.79.0";
version = "0.81.2";
src = fetchFromGitHub {
owner = "agentclientprotocol";
repo = "claude-agent-acp";
tag = "v${finalAttrs.version}";
hash = "sha256-Xezx6CM44czWrfJ/1LyJkMXV33ufIfYKtNL7qeQCths=";
hash = "sha256-5c4WTVtG628EwQq7WXDbFLu1u8wSAjlI7HbXsTH5xDg=";
};
npmDepsHash = "sha256-d0UpoVGVC3q0jhgOAvGLqxul1J8ZO1bTwXprWg+FKc4=";
npmDepsHash = "sha256-0Zjla0bbKrRKMT7SfBOKYmnbMw6zq27ddD2wxnbqg/Y=";
nativeBuildInputs = [ makeWrapper ];

View File

@@ -4,17 +4,21 @@
fetchFromGitHub,
ocl-icd,
opencl-headers,
versionCheckHook,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "clinfo";
version = "3.0.25.02.14";
version = "3.1.26.09.26";
strictDeps = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "Oblomov";
repo = "clinfo";
rev = finalAttrs.version;
sha256 = "sha256-UkkrRpmY5vZtTeEqPNYfxAGaJDoTSrNUG9N1Bknozow=";
tag = finalAttrs.version;
hash = "sha256-5lM/6ULfw0xwXOZU2Kvc2h1oY7JBCvbAFuVn8mRvRX8=";
};
buildInputs = lib.optionals (!stdenv.hostPlatform.isDarwin) [
@@ -24,6 +28,9 @@ stdenv.mkDerivation (finalAttrs: {
makeFlags = [ "PREFIX=${placeholder "out"}" ];
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
meta = {
description = "Print all known information about all available OpenCL platforms and devices in the system";
homepage = "https://github.com/Oblomov/clinfo";

View File

@@ -29,18 +29,18 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "codex";
version = "0.157.0";
version = "0.158.0";
src = fetchFromGitHub {
owner = "openai";
repo = "codex";
tag = "rust-v${finalAttrs.version}";
hash = "sha256-/f/k77vnFjPfnnf+X2E7rY2FxUR1xAcJZiPTv9Q8JVI=";
hash = "sha256-6ogqs75pG4+hxG6RqwBwJPWd3wGks2wBID/epha9+Ds=";
};
sourceRoot = "${finalAttrs.src.name}/codex-rs";
cargoHash = "sha256-Mp4chq9QuQB19FrOZBhmUtPrDoEpZZna79+MZs9rGUo=";
cargoHash = "sha256-D8+caV6Q9H2JnZNhazV1kqgV0dePh3qQyXnRMgeSYak=";
__structuredAttrs = true;

View File

@@ -9,16 +9,16 @@
buildGoModule (finalAttrs: {
pname = "cog";
version = "0.2.0";
version = "0.2.1";
src = fetchFromGitHub {
owner = "grafana";
repo = "cog";
tag = "v${finalAttrs.version}";
hash = "sha256-pmKJueAMGI4VYGSovf64IFNPClptCsQMJlXd9P4EkUE=";
hash = "sha256-jQPPb1ueUAJRnNtl1H37fRlEBkvXXcWlUoAxZbzvzbo=";
};
vendorHash = "sha256-1B6Vt9WIEGOM3wAj3YsWATiwkAmFa120y1pNFpNoTko=";
vendorHash = "sha256-tNeZj28CxOnb6qVGtGLIw2m3AB9Tczq8xbuAwnvz+qU=";
subPackages = [ "cmd/cli" ];

View File

@@ -1,662 +1,662 @@
{
"linux-canary": {
"distro": {
"hash": "sha256-kkLYr9nVUr5CMQyNBEX2cANF/wiRz/kKYJJ5gI79v+U=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1950/full.distro"
"hash": "sha256-u4BDfFut8koEMRENcSWUiXNO4A5VEXbP7Yau3Nkh4eA=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/full.distro"
},
"kind": "distro",
"modules": {
"discord_cloudsync": {
"hash": "sha256-4Y50lTC48Ur8fENeNeMu+8tr/kHMBNOI7pDpyFcXHuc=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1950/discord_cloudsync/1/full.distro",
"hash": "sha256-OtdXA6Gb/K0SNf/hVorTvcdlKruWCyHmWeKtyXGvFYs=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/discord_cloudsync/1/full.distro",
"version": 1
},
"discord_desktop_core": {
"hash": "sha256-jnWQzLb6Q6qIlSc0sw6SbfiY5KosNOH35W3Drqjvyn4=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1950/discord_desktop_core/1/full.distro",
"hash": "sha256-oSCSTY/S3jHbSzb9EYtsqmCbrKQvCTbB7Wd+qvbDOF4=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/discord_desktop_core/1/full.distro",
"version": 1
},
"discord_dispatch": {
"hash": "sha256-dSbUUBn4lyIODirfv9GYn5V+/PAktHLmJYkkvOi0tXc=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1950/discord_dispatch/1/full.distro",
"hash": "sha256-JwtutjBjBUCpwm3HeJEC65pSsRKadRMX8TG/BVWexx0=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/discord_dispatch/1/full.distro",
"version": 1
},
"discord_erlpack": {
"hash": "sha256-vciMCkRNEwJhU4FHRMA+enbyboClfJSXUBcBU2IWXVQ=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1950/discord_erlpack/1/full.distro",
"hash": "sha256-uiTu+4kbRvxfS5fGBx8I3RNDAfA8u+y3TIDdcCJ8xVs=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/discord_erlpack/1/full.distro",
"version": 1
},
"discord_game_utils": {
"hash": "sha256-et6V5zOZ+5N1fUjnUN2z04WD5zheS8kf18i0d+SqqLA=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1950/discord_game_utils/1/full.distro",
"hash": "sha256-3g5+GZUeS0rSMRwzxntegECqVo4b8mYgdingByAms3o=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/discord_game_utils/1/full.distro",
"version": 1
},
"discord_krisp": {
"hash": "sha256-yawbABjydlAzI1e4mra91ECGFu0hQNFIq3eqa6y/H+o=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1950/discord_krisp/1/full.distro",
"hash": "sha256-YoWde/uWpzhnO3JC4WKGBStQkAk9DwOqk1i+hYu/QLo=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/discord_krisp/1/full.distro",
"version": 1
},
"discord_modules": {
"hash": "sha256-FyGW+WMvLHVm9mdl1Y96/ht5FqErjsJEntsYsROjjaU=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1950/discord_modules/1/full.distro",
"hash": "sha256-RgwpoI1XCuQv3zc7dR+Ra1PeYF6utSyy/gWs8fQRn5g=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/discord_modules/1/full.distro",
"version": 1
},
"discord_rpc": {
"hash": "sha256-bqAUXEeLn1cJWfcMzMiJg8sGuKwyw/XOhVrKTbuO8uc=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1950/discord_rpc/1/full.distro",
"hash": "sha256-kgTEQS2xhZ89KRLbYF7GLU5L4WSxSP5J4Fj333TKaEs=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/discord_rpc/1/full.distro",
"version": 1
},
"discord_spellcheck": {
"hash": "sha256-k/bXZskJaWm47sDMutkMEv8ogiTwoUBRaJ7xY621PAg=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1950/discord_spellcheck/1/full.distro",
"hash": "sha256-Vcjti+8lmVru3OwcSlI6DmP2FPOCbo2NsYeilPQZuUw=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/discord_spellcheck/1/full.distro",
"version": 1
},
"discord_sysimg": {
"hash": "sha256-c3NS4fdPKAMwpvWUyUsQc3LlFlRHFVIzZFzd3T2Al4Y=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1950/discord_sysimg/1/full.distro",
"hash": "sha256-Nx1+SXMmBFbOL2SIsUUhjo9U4yVLgVapMXUdht12PMU=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/discord_sysimg/1/full.distro",
"version": 1
},
"discord_utils": {
"hash": "sha256-bYdk3NO0AGGh2LORXrsDmw040jEElIBLIvve3AKicic=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1950/discord_utils/1/full.distro",
"hash": "sha256-38Yw5bmhATZuncVELXANGmFa3L9XjaYRJnuF+P/8MdE=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/discord_utils/1/full.distro",
"version": 1
},
"discord_voice": {
"hash": "sha256-KiVizr58o3jPMzWvCMkP4zl/9qMI+e4YpYLW3VWqU2o=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1950/discord_voice/1/full.distro",
"hash": "sha256-68QTGzpm+JwhjaNaCAQbUgqQEPywK9eJNC9ukueTUiM=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/discord_voice/1/full.distro",
"version": 1
},
"discord_zstd": {
"hash": "sha256-zW2C8kSAPnKZrMIOKmxMomQAdRzVf13maYiZF071tmg=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1950/discord_zstd/1/full.distro",
"hash": "sha256-u3CMlGZn/AazRvVmC40Mc+OiDEdokoFkjdlOb2PLI70=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.2010/discord_zstd/1/full.distro",
"version": 1
}
},
"version": "1.0.1950"
"version": "1.0.2010"
},
"linux-development": {
"distro": {
"hash": "sha256-PzXNs3sUU9nNU/Bmk3o2RFOgmhvxLXo4wAlbNZ7PU/c=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1011/full.distro"
"hash": "sha256-4zKXGW0GsTgPI8zADOErg5YqZICWWJO4ND5/TOD1iak=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/full.distro"
},
"kind": "distro",
"modules": {
"discord_cloudsync": {
"hash": "sha256-w+6AmsWizltkFp1XsPP35wEDSjhwrIzfde+c/ij1N/c=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1011/discord_cloudsync/1/full.distro",
"hash": "sha256-7WmL3OGf1KN5cA2vFk2QRPeNQsvwSZHBQSmK3sKB39Q=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_cloudsync/1/full.distro",
"version": 1
},
"discord_desktop_core": {
"hash": "sha256-//2NLutNXbqUV0klfnyjz0uTEsAdkb4YZ/1u1zWQSwY=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1011/discord_desktop_core/1/full.distro",
"hash": "sha256-BQyAlQM9ccx0O9gq5dyox+qwY8GDJyaIGpX24OQLqqI=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_desktop_core/1/full.distro",
"version": 1
},
"discord_dispatch": {
"hash": "sha256-bEH15s1h9X4t9TOdKjTFz1S1vqq7ncg6ubpEq3eZACc=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1011/discord_dispatch/1/full.distro",
"hash": "sha256-RiiIbawRV6E185x+vyXlWyMaX5Kby0ezNDkPuAuGCLc=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_dispatch/1/full.distro",
"version": 1
},
"discord_erlpack": {
"hash": "sha256-PBcT0oahosqfiAuTcvlyf+aMPiqKbUay7+kwQ7ZTMYA=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1011/discord_erlpack/1/full.distro",
"hash": "sha256-z4zmcxI0bwu1e2RrqJgyETqeofs4zvErFcIusxh9dBU=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_erlpack/1/full.distro",
"version": 1
},
"discord_game_utils": {
"hash": "sha256-LxxAlpAtcBlPgQQBUpHlnLfFnS1i4yotH7nlUEYzAwo=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1011/discord_game_utils/1/full.distro",
"hash": "sha256-rIfLBAJfgK5lA2M3KAe2iVeTPSf6JtoJB8bQOY3LKIk=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_game_utils/1/full.distro",
"version": 1
},
"discord_krisp": {
"hash": "sha256-odG6EiRX445SnPA0/Rc4RHBf5oPQkT8o7UnnFT6DY70=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1011/discord_krisp/1/full.distro",
"hash": "sha256-czwuwablQoZwNYmGDYSg7/QBv8BYvHqNZPZt1B0koNs=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_krisp/1/full.distro",
"version": 1
},
"discord_modules": {
"hash": "sha256-Mz+mmwx/YOSTdJI6E4CLP6M7kgI59E2q3s9OMJaWSKE=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1011/discord_modules/1/full.distro",
"hash": "sha256-abUJ7DO8FXMpjL59OIRZPZW9ceIWSWaui6Gpe+gjkd4=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_modules/1/full.distro",
"version": 1
},
"discord_rpc": {
"hash": "sha256-YJBHH90EvW1vCvpV2eqzD+SYsS673nR/tu9LJ3wMIog=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1011/discord_rpc/1/full.distro",
"hash": "sha256-RnoA44FbQpvG8RkaTici9BUgsFlCqEbBMBOdrBSGB08=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_rpc/1/full.distro",
"version": 1
},
"discord_spellcheck": {
"hash": "sha256-StPxBI90qDECCcFjkKRtjTbXkV2LGkaKCfCT4nvs8WY=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1011/discord_spellcheck/1/full.distro",
"hash": "sha256-3Gp+TINtiO8FYzGWU+FQh5cmRrRIn21nBN6DSXr9kzI=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_spellcheck/1/full.distro",
"version": 1
},
"discord_sysimg": {
"hash": "sha256-VKrAV3W/PuO0BJJHXLBnJgtNPA//uz5iBnhYDVQTP6U=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1011/discord_sysimg/1/full.distro",
"hash": "sha256-mcUuZe5UTheBZFn+Us2KRFlTbzeea3Uq6P450mLmRHA=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_sysimg/1/full.distro",
"version": 1
},
"discord_utils": {
"hash": "sha256-Yhl72RvngtDnEk9DYbFJlAURvnp4fZ4tut9abh1T/rE=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1011/discord_utils/1/full.distro",
"hash": "sha256-dUcITYjNytwjMCJpCxqG+phnMInXaespTTYZx4foWF8=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_utils/1/full.distro",
"version": 1
},
"discord_voice": {
"hash": "sha256-fHWUblRrEfUPAw5Mzf3PapUy1VuJbw5fltEUC35UV1g=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1011/discord_voice/1/full.distro",
"hash": "sha256-4xuxMvgYlwel+uQbQs4oSXrv7mteqVCngfvEc5HA+s0=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_voice/1/full.distro",
"version": 1
},
"discord_zstd": {
"hash": "sha256-5+5GC3MzL0KtKoUTLgyJNQ76/6TF6h2qFP78Upjo2NY=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1011/discord_zstd/1/full.distro",
"hash": "sha256-DFtMCneWPEkEBSqi4ioZd8JS//yayU6bl5C1Mf8NYms=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1012/discord_zstd/1/full.distro",
"version": 1
}
},
"version": "1.0.1011"
"version": "1.0.1012"
},
"linux-ptb": {
"distro": {
"hash": "sha256-s/RwSM7DPqZxDMYuMHmo22jljfbx5KerOcHJuljulYc=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.215/full.distro"
"hash": "sha256-N3ArF9Tav7Q5wR72X0VscMek3ni53FZLYw2FYzZlbu8=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.216/full.distro"
},
"kind": "distro",
"modules": {
"discord_cloudsync": {
"hash": "sha256-/TeyYNGkhZCc48vdilbnj6mtNF8qPR358nqNzW9Axp4=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.215/discord_cloudsync/1/full.distro",
"hash": "sha256-gtfZnvblu/W+RPTuGMFI2np1/l9HtANX2S8hCwEpv0E=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.216/discord_cloudsync/1/full.distro",
"version": 1
},
"discord_desktop_core": {
"hash": "sha256-L0Xd7LAjJPZviSqz7PtLyokexErsftLRFGASZZEeSPc=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.215/discord_desktop_core/1/full.distro",
"hash": "sha256-YG5ky9Tjh72D5Fn13RxBC9OMssrC2I1pby9uu8VpRGo=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.216/discord_desktop_core/1/full.distro",
"version": 1
},
"discord_dispatch": {
"hash": "sha256-Jdey2Q+Z18FuVXiftkwlReWn/vhagc1VAUUKIEByuEo=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.215/discord_dispatch/1/full.distro",
"hash": "sha256-cMmC0SJrE85rzP9hlSacDqQDbcaY4cpxDh3LJXZ8JSY=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.216/discord_dispatch/1/full.distro",
"version": 1
},
"discord_erlpack": {
"hash": "sha256-eQJSWb7QxD0+VTjwpTVoNRK9cexYoaT03PtjWHo6mqY=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.215/discord_erlpack/1/full.distro",
"hash": "sha256-2gDYw4GtHTtQYJ0QAdxZL7VFvsXH8Dr0zibt1HjGakM=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.216/discord_erlpack/1/full.distro",
"version": 1
},
"discord_game_utils": {
"hash": "sha256-M/WY0CFO+oJwCaZXZCMElQzyqXKHIYO6KYHa+eXMX3U=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.215/discord_game_utils/1/full.distro",
"hash": "sha256-/QTEnfUo11386weXQRwuOHdd6y170moKrzXNX38W6cg=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.216/discord_game_utils/1/full.distro",
"version": 1
},
"discord_krisp": {
"hash": "sha256-6iQ5Uc0fhbitrA3bqGDg/QGwhg1eRxmozICjdLp7ew4=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.215/discord_krisp/1/full.distro",
"hash": "sha256-c8dePIzRa5rPYgiJp+GD2I3iQe3WKWxWzi6nYfmT/CE=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.216/discord_krisp/1/full.distro",
"version": 1
},
"discord_modules": {
"hash": "sha256-ixDayM+6WPNby4uA0PaY7Zfh2mDcVfVLIL4UOkQ00EU=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.215/discord_modules/1/full.distro",
"hash": "sha256-4pN7046YFEsJWfSDXIe96XZu/Tp47/VofkFy+5ePB2g=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.216/discord_modules/1/full.distro",
"version": 1
},
"discord_rpc": {
"hash": "sha256-Z7G0a86scg/Xv+gsBySePa/mqFTsorYMaEG5CzfdiUo=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.215/discord_rpc/1/full.distro",
"hash": "sha256-aKZAxcQVMlkd7S7cTQZmyMiaV9FXBAxVQlHZ+ZqPM3c=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.216/discord_rpc/1/full.distro",
"version": 1
},
"discord_spellcheck": {
"hash": "sha256-7l7WjfUpYZqNJH+UKK6VFIiwJel2lBUvFXP3fAIWS+I=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.215/discord_spellcheck/1/full.distro",
"hash": "sha256-59xXGroYnNUB5KVu3bI2al9GwTyGVtQosf2+mCr8R1c=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.216/discord_spellcheck/1/full.distro",
"version": 1
},
"discord_sysimg": {
"hash": "sha256-9didf/bVjeVwzcVou067Y0Ldz0wqOGn3LbebxscHSbU=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.215/discord_sysimg/1/full.distro",
"hash": "sha256-VYoUWlrqMijuF2KkkcGQgiSZv1j5Dg+8AAAhAI4Xi1I=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.216/discord_sysimg/1/full.distro",
"version": 1
},
"discord_utils": {
"hash": "sha256-Oa41cb4ke9dzZDITG57Ve9ImUEqy1/1ZQzxtfQ0Fpt4=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.215/discord_utils/1/full.distro",
"hash": "sha256-wovdHQ/7dxxBS7Tx8a1OVg8QEvNwFqWKG1fxQrUPmS8=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.216/discord_utils/1/full.distro",
"version": 1
},
"discord_voice": {
"hash": "sha256-furPy3bExrPIeQ1O2ADdsD9do9t9uTvcTH04YRvLAwY=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.215/discord_voice/1/full.distro",
"hash": "sha256-Yt1IXIrvI3iJZIWSQQ63P0A80HTF0pKFlSICXEIlBSQ=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.216/discord_voice/1/full.distro",
"version": 1
},
"discord_zstd": {
"hash": "sha256-wCf2oacXVQD6FhyjFEukAz4+AW82abGSanBIpJHNSBA=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.215/discord_zstd/1/full.distro",
"hash": "sha256-n4Lt2O1C2igBtQNB6wORrxNDKp7jKF0yodc6uQtZ/+o=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/linux/x64/1.0.216/discord_zstd/1/full.distro",
"version": 1
}
},
"version": "1.0.215"
"version": "1.0.216"
},
"linux-stable": {
"distro": {
"hash": "sha256-c+nKdZnTtTwc9aafZm2jW1sEAtlVRi8uh0iNWUQOlm0=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.158/full.distro"
"hash": "sha256-SS+fRoAZv/8V3YIPX4Ng/xukej6I1j2Jt1mru/TOGKk=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/full.distro"
},
"kind": "distro",
"modules": {
"discord_cloudsync": {
"hash": "sha256-RmuyIeOlDBLfzDjJ2jUB3c5ZVSErcvHCW2unLUHg0ns=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.158/discord_cloudsync/1/full.distro",
"hash": "sha256-Flg1s5h1b4wO2Fa1jyxntXZAKsQjfGrwAp3f9qqv568=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/discord_cloudsync/1/full.distro",
"version": 1
},
"discord_desktop_core": {
"hash": "sha256-uzPT1BLb0NzGDJWKXwLHO8RThGOtY8NFCKnG0EJ/4Xw=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.158/discord_desktop_core/1/full.distro",
"hash": "sha256-gCanHeTYXtRwRtM3qZIUeevUnn7/yUd2PqGtsz7FySY=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/discord_desktop_core/1/full.distro",
"version": 1
},
"discord_dispatch": {
"hash": "sha256-6zH5+89RLni0Li0sdJIaIjLn5CogDr73P32D5B1F3wQ=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.158/discord_dispatch/1/full.distro",
"hash": "sha256-Hf3z6mWRIPajBapg0zE6g/VIiq5wvDXv9bearVHW5JE=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/discord_dispatch/1/full.distro",
"version": 1
},
"discord_erlpack": {
"hash": "sha256-+arjlg73Tx51zHLivza9q/+WJyht4zejAE+w2yzEAbc=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.158/discord_erlpack/1/full.distro",
"hash": "sha256-ctkRMFtr4fteOEnSWBEUW7MjEkLtnQ0tn7upvjzmixg=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/discord_erlpack/1/full.distro",
"version": 1
},
"discord_game_utils": {
"hash": "sha256-K0Y7ab7BF6G3AfA3ANe9oc8I5mCQdEztmrygpLxPfJY=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.158/discord_game_utils/1/full.distro",
"hash": "sha256-HmCDr5/AK/zuqFZkxbktxL6+WByFrSElXaHqriK70ek=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/discord_game_utils/1/full.distro",
"version": 1
},
"discord_krisp": {
"hash": "sha256-O8X2GPqT2gJhEJUYsER70LbF+jiBCvDmRCNlEC5nkmo=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.158/discord_krisp/1/full.distro",
"hash": "sha256-ySGOnM7ZVPWieeqvVcwv8Z007rJbnzNB27ww4cucVXY=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/discord_krisp/1/full.distro",
"version": 1
},
"discord_modules": {
"hash": "sha256-tcUy0Ii3QmhJPueMVnaCl57Tej0e5669Uf2cRXVbsQQ=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.158/discord_modules/1/full.distro",
"hash": "sha256-pJ1tYeVcS2/m7m8Ck3KNgHoUjjgclG3LNRCXRUhQT7I=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/discord_modules/1/full.distro",
"version": 1
},
"discord_rpc": {
"hash": "sha256-wyuarTe5JtAcw8UmmtZekg5YD3V0raUAUr8j/AzH13Q=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.158/discord_rpc/1/full.distro",
"hash": "sha256-0IX32PJf2oIvt9S7QakfdChgiW913WEpLCeU1vsKiCM=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/discord_rpc/1/full.distro",
"version": 1
},
"discord_spellcheck": {
"hash": "sha256-isopidcTyr58OljFu/w7GiB/2i04Gdlh126p8b0/QxQ=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.158/discord_spellcheck/1/full.distro",
"hash": "sha256-3wQlG3RzJOdvYDwSG87rB+l35T0w7L0JkVuHquAZvyE=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/discord_spellcheck/1/full.distro",
"version": 1
},
"discord_sysimg": {
"hash": "sha256-5kRFWLgOCGcw+ZJIkmPL2wkeT09lBolUAZpdKTZdJZk=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.158/discord_sysimg/1/full.distro",
"hash": "sha256-xNqj+tpoupPzjTRQ/g8HrNcEEofEIdaqe8x5qlnOzec=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/discord_sysimg/1/full.distro",
"version": 1
},
"discord_utils": {
"hash": "sha256-X+bOVYfdRmKpU1K8/xIgzEpHrO/Vsj3DsRhG+jaAkwM=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.158/discord_utils/1/full.distro",
"hash": "sha256-IQ3wyUNKkDqSHXnDya298I6ZTAmOQ+xqh7S/BTO0el8=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/discord_utils/1/full.distro",
"version": 1
},
"discord_voice": {
"hash": "sha256-816qNKzW1rFlUrjZaA9GpgbG0WSlUI9Eer7xNFRfSVY=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.158/discord_voice/1/full.distro",
"hash": "sha256-l9hesjeBC1gz3d24dzCruv0XyVoUTawaRSXihbni6mI=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/discord_voice/1/full.distro",
"version": 1
},
"discord_zstd": {
"hash": "sha256-qAaUpZStaaHtE+kIOm9k1T8i4V73ZFNrEXhL9OOwMdk=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.158/discord_zstd/1/full.distro",
"hash": "sha256-8ISi8oaI2XuhnHDs1z7AkG+W5wEG8uXAQAH1E1nYTv0=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.159/discord_zstd/1/full.distro",
"version": 1
}
},
"version": "1.0.158"
"version": "1.0.159"
},
"osx-canary": {
"distro": {
"hash": "sha256-foYlo0SDly9prFFjJJdECzaiCvHk6aR22IqoQu9K5Es=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1338/full.distro"
"hash": "sha256-+hWiUN5Zg0Q1V+4kiJZ+Oy/jS5VrI7vqfxhBEPsY7Ik=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/full.distro"
},
"kind": "distro",
"modules": {
"discord_cloudsync": {
"hash": "sha256-QAT5NGm3fWRJ4I+H4oTb/TXZK0utQ/+7w4wxllrgyFA=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1338/discord_cloudsync/1/full.distro",
"hash": "sha256-CkHf7h643AODJpf9WUg+V50SLDDm66iWa89IxJMGjUs=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_cloudsync/1/full.distro",
"version": 1
},
"discord_desktop_core": {
"hash": "sha256-pQqZ44EKceroUYXSYQA2t5JVeNa20aHnJhaNrDpnZb8=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1338/discord_desktop_core/1/full.distro",
"hash": "sha256-45/Ql70030WSutoDXqwJXz+ceF37m//r1wg7mDpR0DQ=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_desktop_core/1/full.distro",
"version": 1
},
"discord_dispatch": {
"hash": "sha256-Ipm68HLNg4e1ps1AUV3iwBtIXIKURkLYfxT+AaAbK/Y=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1338/discord_dispatch/1/full.distro",
"hash": "sha256-hL0Ok+Vot0Bx/0Zz9e/Y2iRvH8UBYRIuBpmTH4VZ870=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_dispatch/1/full.distro",
"version": 1
},
"discord_erlpack": {
"hash": "sha256-Y1OaOVnTeHlsLhjsSup2yuEBQt95Xv9pwSlhHkJDeVQ=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1338/discord_erlpack/1/full.distro",
"hash": "sha256-xM2LcBT7JGBX0+WKZpYcRjaxs91HdGWMc0H/TDh1440=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_erlpack/1/full.distro",
"version": 1
},
"discord_game_utils": {
"hash": "sha256-VP1zfFW2tP41ZWNnG/jtOZH1rAybda8hhEDMMunxv50=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1338/discord_game_utils/1/full.distro",
"hash": "sha256-ynQsKTEX1QZ28Xwvq4J6EpktRZQk6iLeAU8pjry3260=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_game_utils/1/full.distro",
"version": 1
},
"discord_intents": {
"hash": "sha256-1up0zpSvJ2oUCixvB9D2P0R3qRq/Y5YGIPPTJYp7biE=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1338/discord_intents/1/full.distro",
"hash": "sha256-n/DsoWO8nYHEl4BPckeUny85xnAcJHRYqajRS8R9uLg=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_intents/1/full.distro",
"version": 1
},
"discord_krisp": {
"hash": "sha256-rom+cfEZGVra0HKBrE1FDwNJeEO2yDa4B5eLcGEorFE=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1338/discord_krisp/1/full.distro",
"hash": "sha256-ZtkZG1MRsOPESHsVtuDkfCobFe9sq06w4CFLBmLEt6M=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_krisp/1/full.distro",
"version": 1
},
"discord_modules": {
"hash": "sha256-50nldalt4w3OA7qVN+vIwnv7oSfLiTI1zBBRsQnXiwc=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1338/discord_modules/1/full.distro",
"hash": "sha256-E2qC69Ff6ijiPvstZ7tRfBolQRvd4NUfUO4hR9rPvs0=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_modules/1/full.distro",
"version": 1
},
"discord_notifications": {
"hash": "sha256-ULSWptb272NIKJQWECT31U5DbFldCEZ6B5DWQ3t2k7k=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1338/discord_notifications/1/full.distro",
"hash": "sha256-0cObBRuHfAcO1iu9HmE03yoFzzQCSMUtHKBEi+VJoMw=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_notifications/1/full.distro",
"version": 1
},
"discord_rpc": {
"hash": "sha256-urT/XNnYijHiHsgxkqPldEljPUDIpCTFehOT990zPxE=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1338/discord_rpc/1/full.distro",
"hash": "sha256-+GUlU0TIP0BYpesGwwUCx8mTNNP9BczQnVJIjZTqp0w=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_rpc/1/full.distro",
"version": 1
},
"discord_spellcheck": {
"hash": "sha256-CiQxFSF+cablkvAnyTKKA/kZN+lggFYyxA7QvxtB6+U=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1338/discord_spellcheck/1/full.distro",
"hash": "sha256-/U3hEDhI0tE6ay34Fpav4XtGMsLRFfvqoZYb2qg++PE=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_spellcheck/1/full.distro",
"version": 1
},
"discord_sysimg": {
"hash": "sha256-FHEs5c2Y+o1uzpVZyl2pbkevEq09vP3/WrkWejgvJsA=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1338/discord_sysimg/1/full.distro",
"hash": "sha256-QDdz1K+MdWexh8EmUSHwHjwaTeDtNfZdTnj56N/M7yY=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_sysimg/1/full.distro",
"version": 1
},
"discord_utils": {
"hash": "sha256-GEep8dayYl1iTbT4WmTRGuxiNB+5efQQMUXyKIgsLcg=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1338/discord_utils/2/full.distro",
"version": 2
"hash": "sha256-N4OfoOgb+5wk+Xy+G5KVUmCLfTVp0Sh+XG0SpgAwdMk=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_utils/1/full.distro",
"version": 1
},
"discord_voice": {
"hash": "sha256-c2sOj115tQ+ExsNO6bx0MLnppM9nLZvPKlwNH0kbsPE=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1338/discord_voice/1/full.distro",
"hash": "sha256-aNncuumXBFu28I/1SqcwFtesbUR0i73eogXGS0K6rSI=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_voice/1/full.distro",
"version": 1
},
"discord_webauthn": {
"hash": "sha256-mba9MCehjjmXCsX7yQiuE+D3e1yGk5ySHZ1ywhCGIVY=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1338/discord_webauthn/1/full.distro",
"hash": "sha256-SjOgWEuqWrTSiYf3IFNLR4O7UhUJpKBF7ehm6N8/Hn8=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_webauthn/1/full.distro",
"version": 1
},
"discord_zstd": {
"hash": "sha256-yceRyI1mwFIqqC4pFyDUdxG+2xHSpvN1G0kZFUbboFM=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1338/discord_zstd/1/full.distro",
"hash": "sha256-UUwwShc/uQXafcqqrRIDQGpmkck9zcAVs/NxNn4Oiiw=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1345/discord_zstd/1/full.distro",
"version": 1
}
},
"version": "0.0.1338"
"version": "0.0.1345"
},
"osx-development": {
"distro": {
"hash": "sha256-j34jBIpe+8sAGXbtUG+73s4IIdJw4i4bPc/bOMJSUnI=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1022/full.distro"
"hash": "sha256-8BXfjTOpyU9KkhR9U/adsPChGFyfr4t0JUqnvW7aTkw=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/full.distro"
},
"kind": "distro",
"modules": {
"discord_cloudsync": {
"hash": "sha256-P99Th2hWHeA/MaRrJd/INdNcHt6eQTFuPL1JXaxQFOs=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1022/discord_cloudsync/1/full.distro",
"hash": "sha256-L8fU45CnFo5OGKJY08hFtOIMJg3LZ7m6Dmn+lbaYYtY=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_cloudsync/1/full.distro",
"version": 1
},
"discord_desktop_core": {
"hash": "sha256-EuGvKSJs2XUKSGvpTB0CBjF7nBamPIbc2Ot7lwGRIf8=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1022/discord_desktop_core/1/full.distro",
"hash": "sha256-gw2S79nPa0eMTePiC4Vw1dKtGbZSLLYWpRljQaUqmQ8=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_desktop_core/1/full.distro",
"version": 1
},
"discord_dispatch": {
"hash": "sha256-8q+c93ybDQyyXj/DyLYALzcH0RUh5cZzmGYbYIhX+vc=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1022/discord_dispatch/1/full.distro",
"hash": "sha256-sAAT1Hk0qBJMe1liNh4KOv9kQSRbXmFy9iwZ42mR6TM=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_dispatch/1/full.distro",
"version": 1
},
"discord_erlpack": {
"hash": "sha256-srsr/YJsjAFODPGOCWoFjcm9y5p5HC9G3TT9lNFB/0c=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1022/discord_erlpack/1/full.distro",
"hash": "sha256-10kIZjyAvpQsMDL/F6f72t9Edv+fQ0BlhT0BwTQPRM0=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_erlpack/1/full.distro",
"version": 1
},
"discord_game_utils": {
"hash": "sha256-GseqXKbcq1UjnkB3D3Aq87BH0bFczkJMINace14wVm4=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1022/discord_game_utils/1/full.distro",
"hash": "sha256-caUv9DGk7Zgkeploix92aiVrJLwFHzzeWZsgbRQetkI=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_game_utils/1/full.distro",
"version": 1
},
"discord_intents": {
"hash": "sha256-HruFcXXVp+/hRIzrM/GxJ5o6J181cjRSiQOJmdGsKIo=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1022/discord_intents/1/full.distro",
"hash": "sha256-4FaAvVLC6LNn3OGK7o6WOw/acx+pJYi7JxorgLUv8ro=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_intents/1/full.distro",
"version": 1
},
"discord_krisp": {
"hash": "sha256-QyQv3WU+49NNRa4FUH0N1DtwqA3aJc+GKVbC6GIJWxY=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1022/discord_krisp/1/full.distro",
"hash": "sha256-njAKEa5Txqxua0/TLLjXzM9o9LvYhmi+d2AW2L50IZ8=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_krisp/1/full.distro",
"version": 1
},
"discord_modules": {
"hash": "sha256-UzO3gvaJEmcFLy5B9EkaogFYmq5wV3xf60tTsi8suqc=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1022/discord_modules/1/full.distro",
"hash": "sha256-ybg2tgjH0A2Eh1vID8IX6yOeMqCN1nJ0WdB7FEHHX34=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_modules/1/full.distro",
"version": 1
},
"discord_notifications": {
"hash": "sha256-M8UZL4ttNHwDwkOUKS9MCMSG2DHevAP9EVq3aEM2l2Q=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1022/discord_notifications/1/full.distro",
"hash": "sha256-pAiZqFb4weJK9PYHhAOyEokl9WXHtkIZDYg7LD7jw2s=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_notifications/1/full.distro",
"version": 1
},
"discord_rpc": {
"hash": "sha256-xldghWB6kW2ycwpW2LsavqEUB+5GMQurwSQbE8d5nbU=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1022/discord_rpc/1/full.distro",
"hash": "sha256-KyAKFjcAHzsSkD0b675ZZ2/JNotzUAcZSuLv2eq8jC4=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_rpc/1/full.distro",
"version": 1
},
"discord_spellcheck": {
"hash": "sha256-vsbPbniKME4Pz9URegsdRVMYXYk5hju44IXHZhyIVXk=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1022/discord_spellcheck/1/full.distro",
"hash": "sha256-W5vNRWPT9WCh4Sj4RsDlHSMYOumVUoNgegI6vdjJeJw=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_spellcheck/1/full.distro",
"version": 1
},
"discord_sysimg": {
"hash": "sha256-BmEwRieo8nmKwb8687Z0e+7cjNfVupPfEEIRnX7m8W0=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1022/discord_sysimg/1/full.distro",
"hash": "sha256-/l7hCtsk8uSla7PZrDl+SodJbPnbW8Jk1JdTRMCXAis=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_sysimg/1/full.distro",
"version": 1
},
"discord_utils": {
"hash": "sha256-cl6QoHl69OypKQOTo0az8iIUu26yurTw0IJBpX9VJaQ=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1022/discord_utils/1/full.distro",
"hash": "sha256-XB97VEE81GS3BJjhepLLtKc2pHYSetv3xvjDLHisYAw=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_utils/1/full.distro",
"version": 1
},
"discord_voice": {
"hash": "sha256-4O+R1DTT2OT6ipuFnTXke6dDx9X0UH5r1PoxockklB0=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1022/discord_voice/1/full.distro",
"hash": "sha256-8YSoF8v72J+cZqKVLl4RwRHkLt4+M6K3/dmwiXCjh9E=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_voice/1/full.distro",
"version": 1
},
"discord_webauthn": {
"hash": "sha256-6hs6uqleddLpbMwQjcALtpTfwKwwH2y5Jmb2zGVcnYE=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1022/discord_webauthn/1/full.distro",
"hash": "sha256-kA/gLGrv3fYmV4s+FLfeDuiAzTO0k6rWZLsglcNAhtM=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_webauthn/1/full.distro",
"version": 1
},
"discord_zstd": {
"hash": "sha256-P59XFUV9TplXEadmlpkG4VFsJv2rHkPlDhT0zuq/ueE=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1022/discord_zstd/1/full.distro",
"hash": "sha256-zQvjzYCROq80S7nxvh7ZB+7UzjI4cKEvMjwFm5WOQsA=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1023/discord_zstd/1/full.distro",
"version": 1
}
},
"version": "1.0.1022"
"version": "1.0.1023"
},
"osx-ptb": {
"distro": {
"hash": "sha256-mSNlj8rnIGyCy6NzG8/ewKuxNDCGcQ8Dz72UE6ismTA=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.261/full.distro"
"hash": "sha256-MAGLes5B+aPzBymSTQeAHdxnlTnq4sJtx2sjcaJ6MJo=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.262/full.distro"
},
"kind": "distro",
"modules": {
"discord_cloudsync": {
"hash": "sha256-OQppRBSrY+quwjufWNWTF1cu4FUcbUqdBK1sPBqgEMY=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.261/discord_cloudsync/1/full.distro",
"hash": "sha256-iHFSgXOMM2DXe9mjMKO9fMYcDfEEp51azFtakjkEuVI=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.262/discord_cloudsync/1/full.distro",
"version": 1
},
"discord_desktop_core": {
"hash": "sha256-e0Un6UPUBwmYLT2keVp1Np0tjSQGudPjv+Qel294Opo=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.261/discord_desktop_core/1/full.distro",
"hash": "sha256-MJzmVMqAN84tdg6agPEAwhHchSld88gJ/PIIp7Q6EGw=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.262/discord_desktop_core/1/full.distro",
"version": 1
},
"discord_dispatch": {
"hash": "sha256-JvbOc6GVoNkoTEcTtyX14O8kEWPlYaGlc2U11swHGBo=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.261/discord_dispatch/1/full.distro",
"hash": "sha256-Y71+yng3J27Afm5UuEw2bjEmCT0mmT+6XiHqKykpOek=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.262/discord_dispatch/1/full.distro",
"version": 1
},
"discord_erlpack": {
"hash": "sha256-Rw1oi8mhXhdVLtKpOXEE6Fo9wBX1leaI8Bk7vAZJwM4=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.261/discord_erlpack/1/full.distro",
"hash": "sha256-928dvTZ+PWeab1lFdm4xFlRlXAie7JhVxdwJlodqRLM=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.262/discord_erlpack/1/full.distro",
"version": 1
},
"discord_game_utils": {
"hash": "sha256-v7XVUcicXSIBa15SF1MbsORS86DAdd4U/TukqVpeX44=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.261/discord_game_utils/1/full.distro",
"hash": "sha256-diDb/GvLDV4CvfYd3/BzKvDAVDPqi8dtYP45k+yXUPw=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.262/discord_game_utils/1/full.distro",
"version": 1
},
"discord_intents": {
"hash": "sha256-5uGUR3uibStXOFyEQbAdGNI1wmpKnpW3OkMG2KkA84c=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.261/discord_intents/1/full.distro",
"hash": "sha256-+9MyDfY4Jn0eti8SyV+L/hdzvIPklPv9ti/K2y43aqc=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.262/discord_intents/1/full.distro",
"version": 1
},
"discord_krisp": {
"hash": "sha256-QgPvd5gIGBxsNeMLIN2Cw112R6bzue5mqSpMFbSKWIQ=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.261/discord_krisp/1/full.distro",
"hash": "sha256-Vi6vySAS8DX3uhuPYo3d7iwYysr9tCiWMcgCJhw5O7o=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.262/discord_krisp/1/full.distro",
"version": 1
},
"discord_modules": {
"hash": "sha256-K2HCgoFeu3akrZu5fw7bVe24V/GRDaX+gC93w+8w1Gg=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.261/discord_modules/1/full.distro",
"hash": "sha256-+0CMAiLrNztUkWWpkYSr2iGyVN3U0SHyo7NMwCQ1jiw=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.262/discord_modules/1/full.distro",
"version": 1
},
"discord_notifications": {
"hash": "sha256-mlDAsASbOegs0jTNYFU7YgbTo76VH1H5bvuZsXpyKm8=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.261/discord_notifications/1/full.distro",
"hash": "sha256-Xv+yEEDjx4LhuqeZBFYilpCRPjNZcFmJ67oC5pdOW5M=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.262/discord_notifications/1/full.distro",
"version": 1
},
"discord_rpc": {
"hash": "sha256-HJhesB23kp2n+XljXh/wfe71Clmu5q3rZ3s9siw34yA=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.261/discord_rpc/1/full.distro",
"hash": "sha256-SyoCN5Y9+bHtTDN/DURAbQwqbYdESKfT96rac1hEphI=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.262/discord_rpc/1/full.distro",
"version": 1
},
"discord_spellcheck": {
"hash": "sha256-5a95uPstZGhIe2+xRFbTvBShiRFb9Uvj+o673/oU11M=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.261/discord_spellcheck/1/full.distro",
"hash": "sha256-LBt8BiDrWW3PhngSHuehz/ifKtsU8kNqqqgdcNUeydI=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.262/discord_spellcheck/1/full.distro",
"version": 1
},
"discord_sysimg": {
"hash": "sha256-7RvJu3RarEcngf1hathR0GYnHWv76e/80Eh3SNs+avg=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.261/discord_sysimg/1/full.distro",
"hash": "sha256-ZSX0FBoZubctmDKoPdJzuuyWvy9HUKIsjoLYup2BmHk=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.262/discord_sysimg/1/full.distro",
"version": 1
},
"discord_utils": {
"hash": "sha256-7iufgt1WAjvbD7N4h0FJpbSmku3HKJDFCe2Fu+EkJIE=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.261/discord_utils/1/full.distro",
"hash": "sha256-X9gcfeoLDCKZ4fF6BTpHnNtg0fEm2ocm/hGTjepFb+k=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.262/discord_utils/1/full.distro",
"version": 1
},
"discord_voice": {
"hash": "sha256-3GCJe2uZC8KHXoXC0oE4lazcIC2O4X4fWvOdgQyWwIo=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.261/discord_voice/1/full.distro",
"hash": "sha256-lKqhPHwWaE1lkiOuQUkTUdcT3GBgFZlyPu8f3uHDTOY=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.262/discord_voice/1/full.distro",
"version": 1
},
"discord_webauthn": {
"hash": "sha256-Unq+9M0qGSTqfgRPF7SvOGJNNXeRTy2CdKiwaLxQMgo=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.261/discord_webauthn/1/full.distro",
"hash": "sha256-/qyheQ24l+D5kuzv08qx+3kJzce3ebwOj/ROqnMdKpE=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.262/discord_webauthn/1/full.distro",
"version": 1
},
"discord_zstd": {
"hash": "sha256-5HuLzGYlyGCvLYMkYDQES6pZZ031aDUykE6wS7Ji4fg=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.261/discord_zstd/1/full.distro",
"hash": "sha256-dkw8xkHA6IkMbKjsZdoZrW4KUxRwZnyshJI+wwG1+JY=",
"url": "https://ptb.dl2.discordapp.net/distro/app/ptb/osx/universal/0.0.262/discord_zstd/1/full.distro",
"version": 1
}
},
"version": "0.0.261"
"version": "0.0.262"
},
"osx-stable": {
"distro": {
"hash": "sha256-y1EFe/iKsQi5AE7hrdGfAtu5rETSVx+WCXTt7dzqkGM=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.412/full.distro"
"hash": "sha256-QLObkBgCHPEytuT4mnBZrCyQgSvcU3mvPCrhYuJpt6w=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/full.distro"
},
"kind": "distro",
"modules": {
"discord_cloudsync": {
"hash": "sha256-XdlBxBeRhK2/sOs2KkkQzQeQI47Ufn7VvBiRoPhPbTY=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.412/discord_cloudsync/1/full.distro",
"hash": "sha256-EW+QQr887OgQh4QhJBfq5d+n29Qkye0icm7Tpv0mCiM=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_cloudsync/1/full.distro",
"version": 1
},
"discord_desktop_core": {
"hash": "sha256-WLDGVinV5ov5rcjqLgi9I8v8ECtelg28XNpoHZbzgdg=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.412/discord_desktop_core/1/full.distro",
"hash": "sha256-vOwayV7KcAV9VMsAJNjQd4Oc5SJIleUney5uji8+j5E=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_desktop_core/1/full.distro",
"version": 1
},
"discord_dispatch": {
"hash": "sha256-kGdXcmaQum45R53NcLjpcAjP2YIM0umj/SD+6Am9mfw=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.412/discord_dispatch/1/full.distro",
"hash": "sha256-gGaIOeljjC88z4UKkBvgxOsiDhYyWKVh4rZCn8O4XIk=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_dispatch/1/full.distro",
"version": 1
},
"discord_erlpack": {
"hash": "sha256-oQAfEjBLEvrNl4UVMOPOtmPTGpKuiP4IZr0uQcb6VqE=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.412/discord_erlpack/1/full.distro",
"hash": "sha256-k44L+5yLKtx3jtUGddhtus6FU/2QeJLG3tpfvIPQv/g=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_erlpack/1/full.distro",
"version": 1
},
"discord_game_utils": {
"hash": "sha256-qBUjYOKKXja2FjsGT9nxeET9mGk0ssoRUhR/c2IlDpI=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.412/discord_game_utils/1/full.distro",
"hash": "sha256-CQHLfLekzrbFyaWIwAYXHXtTpkED4l6eX/2eTWlIh1M=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_game_utils/1/full.distro",
"version": 1
},
"discord_intents": {
"hash": "sha256-0aovMmpJ45hkYU1FU+aNyz3NfGlPWtWxruVJZHvYqx0=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.412/discord_intents/1/full.distro",
"hash": "sha256-FHbCbqG32t4slAI1pxl6BzghtKNz62qyeWHi075/zKY=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_intents/1/full.distro",
"version": 1
},
"discord_krisp": {
"hash": "sha256-Ey1rjgmnrYyMm78AqYNX7Vsj7paMwEhf9yR71C+hBgA=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.412/discord_krisp/1/full.distro",
"hash": "sha256-KroterrE5sGmyCCJqHQUjupz0aPVBayQ+7bKUt+F/cQ=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_krisp/1/full.distro",
"version": 1
},
"discord_modules": {
"hash": "sha256-gkBXdLV1BhDL1bHBW8EE4aB2XcZGO/6fPsSnP566OLA=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.412/discord_modules/1/full.distro",
"hash": "sha256-7LGp7cvRbtB3Ur0cV98gBmZLVLsJWQEuCXFLpG1OyeY=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_modules/1/full.distro",
"version": 1
},
"discord_notifications": {
"hash": "sha256-/V1z2UltdswJDlqthNebbC0XrEA7eqUdM2Qs7oN2wOY=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.412/discord_notifications/1/full.distro",
"hash": "sha256-n98wITVAtU7LaH0OftU32Gk/fkyTszYf5Ofr5uqABw8=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_notifications/1/full.distro",
"version": 1
},
"discord_rpc": {
"hash": "sha256-m1O1hstTeyNX+rzIsM93csaLKMc7EA0NlRhJhlEmOgw=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.412/discord_rpc/1/full.distro",
"hash": "sha256-DxjBxnhaHWopkN5tV1bnW034mC+u+UIY0ZWgwBpW15M=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_rpc/1/full.distro",
"version": 1
},
"discord_spellcheck": {
"hash": "sha256-DlyHt6YM+2MYBthVCYmuXZ6iiEqtiiGU0BrigGyp4qM=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.412/discord_spellcheck/1/full.distro",
"hash": "sha256-DhMB8KMC2AGDYK+iuD/qFgW8ZXnaxkB1+wkThRJ/Qyc=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_spellcheck/1/full.distro",
"version": 1
},
"discord_sysimg": {
"hash": "sha256-mTg8BsmYhn5F61OJ/LMl7l5Z5Rk5WdohwaWcPzrMpnM=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.412/discord_sysimg/1/full.distro",
"hash": "sha256-nRAXBgDOe2rD233V/1oD4A48QYvxNsLDBXQkk6zs1W8=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_sysimg/1/full.distro",
"version": 1
},
"discord_utils": {
"hash": "sha256-YyQnP2SEAdsEEVaSCzrzZOXkjMAW/mO+jInfsK8DgJQ=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.412/discord_utils/1/full.distro",
"hash": "sha256-YC/2ClGXm7ASRk3S/KkdwtMvKeQUEwfvTrB90vw6F58=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_utils/1/full.distro",
"version": 1
},
"discord_voice": {
"hash": "sha256-iuqRprvXPPCC3O3dYCdgp4DwR+BTeSYBo5iT4Fg24ck=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.412/discord_voice/1/full.distro",
"hash": "sha256-dVweX8sFoI6CBysvSsq/yge2eYSBCTT9jcLRGplpH1E=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_voice/1/full.distro",
"version": 1
},
"discord_webauthn": {
"hash": "sha256-pbtn1SwjadnCB22CcUtMWEVdCjPEsc4GgrtynWM2F9o=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.412/discord_webauthn/1/full.distro",
"hash": "sha256-K3ngxy1FoozdYzd/8aihBcAuZXEHQaGCpeocBI81dPM=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_webauthn/1/full.distro",
"version": 1
},
"discord_zstd": {
"hash": "sha256-ssFN8p8JGHqgGMNH+NzfXIBce+3w7ti2Mo4WPLHKMUc=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.412/discord_zstd/1/full.distro",
"hash": "sha256-yC8e6EGzHr7f8TpVVCE5yBB8J+p/3mQ8wuvajdY6mfM=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.413/discord_zstd/1/full.distro",
"version": 1
}
},
"version": "0.0.412"
"version": "0.0.413"
}
}

View File

@@ -15,13 +15,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "doublecmd";
version = "1.2.8";
version = "1.2.9";
src = fetchFromGitHub {
owner = "doublecmd";
repo = "doublecmd";
tag = "v${finalAttrs.version}";
hash = "sha256-2WjzjBgM2GP2UlRT603X5825Iro41XL1roDJ0kbswd4=";
hash = "sha256-UuwE4ptOdrh00Rec7CjPPJoA9Qo4S19GwSbLNQn+Uac=";
};
nativeBuildInputs = [

View File

@@ -15,7 +15,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "eilmeldung";
version = "1.8.1";
version = "1.9.0";
__structuredAttrs = true;
@@ -23,10 +23,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
owner = "christo-auer";
repo = "eilmeldung";
tag = finalAttrs.version;
hash = "sha256-uU79OhQAGDEv+DWhQxOvYHRMBqG7CQ2Sor1cl6q/H30=";
hash = "sha256-Hq+MEeyJpsDCAHOavT6RWBUMe0SsS0OC8FoEfkqIM7s=";
};
cargoHash = "sha256-cv09uVsADTdnuTF5ZVPwNtwNIh2nM9QxfOilq1a7b7A=";
cargoHash = "sha256-fhiH215ZpwK89zm0cCFCzKcZjvs49LJZhRMmhK5ftkc=";
nativeBuildInputs = [
pkg-config

View File

@@ -58,20 +58,20 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "element-call";
version = "0.26.0";
version = "0.26.1";
src = fetchFromGitHub {
owner = "element-hq";
repo = "element-call";
tag = "v${finalAttrs.version}";
hash = "sha256-QAgYeWV37VtEnvoDvqEAqXoR1mRVVpyA4XqCPEXGSGk=";
hash = "sha256-S47A3l5IEKia06iUqgVo6gWkBLR8ncckNHKvlf591g4=";
};
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
inherit pnpm;
fetcherVersion = 4;
hash = "sha256-0ZBSIIfZwxgtEGvedEEc7bbod2UUeFGGqquJna7cr8s=";
hash = "sha256-akLaHs+ERvsTsb8zCIS7vMNJo9h5cjn+60O/TatOxzE=";
};
inherit matrix-js-sdk;

View File

@@ -12,13 +12,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "eudev";
version = "3.2.14";
version = "3.2.15";
src = fetchFromGitHub {
owner = "eudev-project";
repo = "eudev";
rev = "v${finalAttrs.version}";
hash = "sha256-v/szzqrBedQPRGYkZ0lV9rslCH//uqGp4PHEF0/51Lg=";
hash = "sha256-dhMfdC/AOUsrd+QlhEnxTWDnt4jQRTtU/muTjY9F12M=";
};
nativeBuildInputs = [

View File

@@ -3,7 +3,7 @@
fetchCrate,
rustPlatform,
pkg-config,
openssl_3,
openssl_3_5,
protobuf,
}:
rustPlatform.buildRustPackage (finalAttrs: {
@@ -13,7 +13,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
pkg-config
protobuf
];
buildInputs = [ openssl_3 ];
buildInputs = [ openssl_3_5 ];
src = fetchCrate {
inherit (finalAttrs) pname version;
hash = "sha256-IVkmZs3imzj8uN8kqEzN/Oio3H+Nqzu8ORjARNx1TpQ=";

View File

@@ -72,13 +72,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "freerdp";
version = "3.32.0";
version = "3.32.1";
src = fetchFromGitHub {
owner = "FreeRDP";
repo = "FreeRDP";
tag = finalAttrs.version;
hash = "sha256-7VA1ZQxqt/bIjGh5YGNHfuSXXcWZB7F9Iy1d/iAlRVA=";
hash = "sha256-7Bk0Gh09/friNKqs9D7sNfVIZuYjXSs9fbnPD5MiLiE=";
};
postPatch = ''

View File

@@ -17,7 +17,7 @@
webkitgtk_4_1,
atk,
libsoup_3,
openssl_3,
openssl_3_5,
libayatana-appindicator,
}:
@@ -69,7 +69,7 @@ stdenv.mkDerivation {
webkitgtk_4_1
atk
libsoup_3
openssl_3
openssl_3_5
libayatana-appindicator
stdenv.cc.cc.lib
];

View File

@@ -2,6 +2,7 @@
lib,
python314,
fetchFromGitLab,
fetchpatch,
callPackage,
stdenv,
makeWrapper,
@@ -88,6 +89,18 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-RGYD6HAFZZTSNJWd8n7/gMy9FkjZno9LO1jGxav5d9M=";
};
patches = [
# support django-async-backend>=6.1
(fetchpatch {
url = "https://gitlab.com/glitchtip/glitchtip-backend/-/commit/4cf8c9d1518f5835b71c0692a72b63d8a62bea4a.patch";
includes = [
"glitchtip/ingest_asgi.py"
"glitchtip/settings.py"
];
hash = "sha256-FwOJYSsJcJoqUwuHwHPWkzQqVB81Chex4RFTIhl82XM=";
})
];
postPatch = ''
echo 'import os
ALLAUTH_TRUSTED_CLIENT_IP_HEADER = os.getenv(

View File

@@ -56,7 +56,6 @@ buildGoModule (finalAttrs: {
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [
sweenu
emilylange
];
};
})

View File

@@ -7,13 +7,13 @@
buildGoModule (finalAttrs: {
pname = "gollama";
version = "2.0.5";
version = "2.0.6";
src = fetchFromGitHub {
owner = "sammcj";
repo = "gollama";
tag = "v${finalAttrs.version}";
hash = "sha256-LjgQSV7Z2apcdIaxk9NU7AdlPJPlt7CQ/q9nID9Px5w=";
hash = "sha256-Dms7RlZAEEuO07Ayir7RoCThxzj6+odhqhCAF4+BFWQ=";
};
vendorHash = "sha256-xpAAtJIJtETbDYwieLBI7L79SedeAOmYnHL9zq6l7Rs=";

View File

@@ -54,6 +54,8 @@ stdenv.mkDerivation (finalAttrs: {
postInstall = "rmdir $out/dev";
meta = {
# last successful hydra build on aarch64-linux was in 2018
broken = stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64;
description = "grsecurity RBAC administration and policy analysis utility";
homepage = "https://grsecurity.net";
license = lib.licenses.gpl2Only;

View File

@@ -10,7 +10,7 @@
grok-build,
}:
let
version = "1.0.34";
version = "1.0.41";
throwSystem = throw "Unsupported system: ${stdenvNoCC.hostPlatform.system}";
@@ -26,9 +26,9 @@ let
url = "https://x.ai/cli/grok-${version}-${upstreamPlatform}";
hash =
{
x86_64-linux = "sha256-vlkF4QfSuLXzwULSHs/kyP0yqRPS/VUbeIcHkwxNyA0=";
aarch64-linux = "sha256-OauHZmh31k7zpAqmD74MO2pqzXABt4/mDix2u2z8SpQ=";
aarch64-darwin = "sha256-nNJrV5hA8PXJFIqAWa1lGQTAi0G38u8LTsBLm6iYhE4=";
x86_64-linux = "sha256-nOA+0j4W6gEHK0SWJj1iE6J4meHj4QfwCNNu34LnBAc=";
aarch64-linux = "sha256-fAuMlzr2p44gN/Ge2TAzRxuMXnIvn/BLhrCS4GbmDXQ=";
aarch64-darwin = "sha256-nIROsTNlGAeH2a0isrN0igJL6OHthFJTzBFHgbMcWR0=";
}
.${system};
}

View File

@@ -6,7 +6,7 @@
libuuid,
libx11,
curlMinimal,
openssl_3,
openssl_3_5,
libsecret,
webkitgtk_4_1,
libsoup_3,
@@ -22,18 +22,13 @@
dbus,
nixosTests,
}:
let
curlMinimal_openssl_3 = curlMinimal.override {
openssl = openssl_3;
};
in
stdenv.mkDerivation rec {
pname = "intune-portal";
version = "1.2607.4-noble";
version = "1.2607.4-resolute";
src = fetchurl {
url = "https://packages.microsoft.com/ubuntu/24.04/prod/pool/main/i/intune-portal/intune-portal_${version}_amd64.deb";
hash = "sha256-bBhWI8U+QCynHaXJBtEGsZH7leW2AdavRJE7r5EcG9M=";
url = "https://packages.microsoft.com/ubuntu/26.04/prod/pool/main/i/intune-portal/intune-portal_${version}_amd64.deb";
hash = "sha256-WXgzLH7umvB75obzTGYW+EZ3eE1zxdIJNFNKcaNY04s=";
};
nativeBuildInputs = [ dpkg ];
@@ -45,8 +40,8 @@ stdenv.mkDerivation rec {
stdenv.cc.cc
libuuid
libx11
curlMinimal_openssl_3
openssl_3
curlMinimal
openssl_3_5
libsecret
webkitgtk_4_1
libsoup_3

View File

@@ -1,7 +1,7 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p curl gzip dpkg common-updater-scripts
index_file=$(curl -sL https://packages.microsoft.com/ubuntu/24.04/prod/dists/noble/main/binary-amd64/Packages.gz | gzip -dc)
index_file=$(curl -sL https://packages.microsoft.com/ubuntu/26.04/prod/dists/resolute/main/binary-amd64/Packages.gz | gzip -dc)
latest_version="0"

View File

@@ -6,16 +6,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "kubernix";
version = "0.3.7";
version = "0.4.1";
src = fetchFromGitHub {
owner = "saschagrunert";
repo = "kubernix";
tag = "v${finalAttrs.version}";
sha256 = "sha256-d+W7V/9TiEqG4q0MIq3Tan5XH/w7vJl5vpCax5Qf7r0=";
sha256 = "sha256-LO6WXXNkUf1rkjRuSHRWtfHtCL9oj+36cewrRc/KLdw=";
};
cargoHash = "sha256-83dfQnZ3/6k8fJIr5jyleX2ztevhttnSSfaHLJEWwks=";
cargoHash = "sha256-l1LMqGh7DGZAJdSRsbCqr1/5pA9rZYN8nJ3cMRuSR+Q=";
# Tests require network access
doCheck = false;

View File

@@ -60,5 +60,6 @@ buildGoModule (finalAttrs: {
LorenzBischof
Scrumplex
];
identifiers.cpeParts = lib.meta.cpeFullVersionWithVendor "kyverno" finalAttrs.version;
};
})

View File

@@ -31,7 +31,6 @@ rustPlatform.buildRustPackage {
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
sweenu
emilylange
];
mainProgram = "librespot";
platforms = lib.platforms.linux;

View File

@@ -0,0 +1,56 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
yyjson,
nix-update-script,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libsecretspec-resolver";
version = "0.21.0";
strictDeps = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "cachix";
repo = "secretspec";
tag = "v${finalAttrs.version}";
hash = "sha256-12jIhLZhtyQwkt2vKHqjGOuKSwwevcxzp8Ii02RTMLY=";
};
cmakeDir = "../libsecretspec-resolver";
nativeBuildInputs = [
cmake
pkg-config
];
propagatedBuildInputs = [ yyjson ];
doCheck = true;
passthru = {
tests.pkg-config = testers.hasPkgConfigModules {
package = finalAttrs.finalPackage;
version = "1.0.0";
versionCheck = true;
};
updateScript = nix-update-script { };
};
meta = {
description = "C client for SecretSpec's local resolver protocol";
homepage = "https://secretspec.dev";
changelog = "https://github.com/cachix/secretspec/releases/tag/v${finalAttrs.version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [
domenkozar
sandydoo
];
pkgConfigModules = [ "secretspec-resolver" ];
};
})

View File

@@ -12,28 +12,28 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "secretspec-ffi";
version = "0.19.0";
pname = "libsecretspec";
version = "0.21.0";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "cachix";
repo = "secretspec";
tag = "v${finalAttrs.version}";
hash = "sha256-u6zfPsyLoktLQTE8OEDhK0GtiogOw/3ML4zpDVhSrX0=";
hash = "sha256-12jIhLZhtyQwkt2vKHqjGOuKSwwevcxzp8Ii02RTMLY=";
};
cargoHash = "sha256-ogeNTp94FJv7p+eZgrLUK1i63VCHiqHd7BsP+jDMHVc=";
cargoHash = "sha256-yqBAhnHBwKbSyH8sEDo6y0xGUdKJgHd3Gsr1sTS/bRc=";
nativeBuildInputs = [ cargo-c ];
# Keep the static archive intact while removing non-exported symbols from the shared library.
stripDebugFlags = if stdenv.hostPlatform.isDarwin then [ "-x" ] else [ "--strip-unneeded" ];
stripExclude = [ "lib/libsecretspec_ffi.a" ];
stripExclude = [ "lib/libsecretspec.a" ];
buildPhase = ''
runHook preBuild
${buildPackages.rust.envVars.setEnv} cargo cbuild -p secretspec-ffi -j $NIX_BUILD_CORES \
${buildPackages.rust.envVars.setEnv} cargo cbuild -p libsecretspec -j $NIX_BUILD_CORES \
--profile dist --frozen --prefix=${placeholder "out"} \
--target ${stdenv.hostPlatform.rust.rustcTarget}
runHook postBuild
@@ -41,7 +41,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
installPhase = ''
runHook preInstall
${buildPackages.rust.envVars.setEnv} cargo cinstall -p secretspec-ffi -j $NIX_BUILD_CORES \
${buildPackages.rust.envVars.setEnv} cargo cinstall -p libsecretspec -j $NIX_BUILD_CORES \
--profile dist --frozen --prefix=${placeholder "out"} \
--target ${stdenv.hostPlatform.rust.rustcTarget}
runHook postInstall
@@ -49,7 +49,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
checkPhase = ''
runHook preCheck
${buildPackages.rust.envVars.setEnv} cargo ctest -p secretspec-ffi -j $NIX_BUILD_CORES \
${buildPackages.rust.envVars.setEnv} cargo ctest -p libsecretspec -j $NIX_BUILD_CORES \
--profile dist --frozen --prefix=${placeholder "out"} \
--target ${stdenv.hostPlatform.rust.rustcTarget}
runHook postCheck
@@ -68,8 +68,8 @@ rustPlatform.buildRustPackage (finalAttrs: {
buildInputs = [ finalAttrs.finalPackage ];
}
''
$CC ${finalAttrs.src}/secretspec-ffi/tests/smoke.c \
$(pkg-config --cflags --libs secretspec_ffi) \
$CC ${finalAttrs.src}/libsecretspec/tests/smoke.c \
$(pkg-config --cflags --libs libsecretspec) \
-o smoke
./smoke
touch $out
@@ -86,6 +86,6 @@ rustPlatform.buildRustPackage (finalAttrs: {
domenkozar
sandydoo
];
pkgConfigModules = [ "secretspec_ffi" ];
pkgConfigModules = [ "libsecretspec" ];
};
})

View File

@@ -93,7 +93,7 @@ flutter341.buildFlutterApplication (finalAttrs: {
exec = "localsend_app %U";
icon = "localsend";
desktopName = "LocalSend";
startupWMClass = "localsend_app";
startupWMClass = "org.localsend.localsend_app";
comment = meta.description;
genericName = "File Transfer";
categories = [

View File

@@ -11,17 +11,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "mago";
version = "1.49.0";
version = "1.50.0";
src = fetchFromGitHub {
owner = "carthage-software";
repo = "mago";
tag = finalAttrs.version;
hash = "sha256-1DTVDv87OBtOEU6U53IWrTw7i2JN8TZJYAQepwc2ek8=";
hash = "sha256-Dk92uB9+y/E0l9Et2RbxH/u7rk5owyEYJbIFUWnko8I=";
forceFetchGit = true; # Does not download all files otherwise
};
cargoHash = "sha256-yhMghVhY7TxFUYwbGVC5QwFyTAqakbYMq7jPSk88PIM=";
cargoHash = "sha256-oIxNpmw3q1DvBlaURUl8+AKud+gbGk8jD9Vw8utVRO4=";
env = {
# Get openssl-sys to use pkg-config

View File

@@ -21,11 +21,15 @@ stdenv.mkDerivation (finalAttrs: {
src =
let
selectSystem = attrs: attrs.${stdenv.hostPlatform.system};
makeUrls = url: [
url
"https://web.archive.org/web/${url}"
];
in
fetchurl {
url = selectSystem {
x86_64-linux = "https://code-industry.net/public/master-pdf-editor-${finalAttrs.version}-qt5.x86_64-qt_include.tar.gz";
aarch64-linux = "https://code-industry.net/public/master-pdf-editor-${finalAttrs.version}-qt5.arm64.tar.gz";
urls = selectSystem {
x86_64-linux = makeUrls "https://code-industry.net/public/master-pdf-editor-${finalAttrs.version}-qt5.x86_64-qt_include.tar.gz";
aarch64-linux = makeUrls "https://code-industry.net/public/master-pdf-editor-${finalAttrs.version}-qt5.arm64.tar.gz";
};
hash = selectSystem {
x86_64-linux = "sha256-ksVuJyuImstESVwHUmOUv6aERosg6g5bSsRvPSf5EVM=";

View File

@@ -15,10 +15,10 @@ mattermost.override (
# and make sure the version regex is up to date here.
# Ensure you also check ../mattermost/package.nix for ESR releases.
regex = "^v(11\\.[0-9]+\\.[0-9]+)$";
version = "11.10.2";
srcHash = "sha256-d4sOH9L2vawyiRLXIhZLzEqExiYbrdy/h0v4GZW7DNc=";
vendorHash = "sha256-k3JPDzrZzLeKb20o2aLZR/TX7dN7nhpQs6UZ5olvV94=";
npmDepsHash = "sha256-jDGUbBwxjZ50bbbnUJVMCzKJMlHYhUKy7Be9zsWjMqg=";
version = "11.11.0";
srcHash = "sha256-QB7C3TCmrUgTUST6hUEIM143cUfiORyaYnP6I2t37b8=";
vendorHash = "sha256-FNZ6030d8Tro06ZlycN9lU9gd+7oxfuFciJOeLv+enQ=";
npmDepsHash = "sha256-5Bl+enzE3i8GBPjTtudvrOM9DjfNHL3CkMbNMXSH4AU=";
autoUpdate = ./package.nix;
};
}

View File

@@ -8,7 +8,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "mbuffer";
version = "20260511";
version = "20260926";
outputs = [
"out"
"man"
@@ -16,7 +16,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchurl {
url = "https://www.maier-komor.de/software/mbuffer/mbuffer-${finalAttrs.version}.tgz";
sha256 = "sha256-E7qzbzlAj3oI+zaJEykK0PEXyTS6tgIJThj8wSPsV4M=";
sha256 = "sha256-85kfZQJ51gsIpluJsc2SXy4xJGToT8YIeeBUtLsdXO4=";
};
buildInputs = [

View File

@@ -37,30 +37,16 @@
stdenv.mkDerivation (finalAttrs: {
pname = "miracle-wm";
version = "0.10.1";
version = "0.11.2";
src = fetchFromGitHub {
owner = "miracle-wm-org";
repo = "miracle-wm";
tag = "v${finalAttrs.version}";
hash = "sha256-htFgvXYgxQXV2U3F+tXEoaTb0udc2H1aHsIg5E8nRL8=";
hash = "sha256-XYU2I3hFjtQJgHqwS6EyW5PDjPap7TG/92e1v/IXKQA=";
};
patches = [
# Mir 2.29 compat, remove when version > 0.10.1
(fetchpatch {
name = "0001-miracle-wm-remove-legacy-mir-optional-usage.patch";
url = "https://github.com/miracle-wm-org/miracle-wm/commit/a4d7b21e0d25667cd270d7ff52f8dccc2a217796.patch";
hash = "sha256-XBbYSuXUOS9Gbs/LwxbbTAVsFuH8xLj8VhoCAjmCDfQ=";
})
];
# Mir 2.29 compat, remove when version > 0.10.1 (97a40cd8879898062b2cf7b5d1f5252ffc3b8dce is more than just a compat change)
postPatch = ''
substituteInPlace src/policy.{cpp,h} \
--replace-fail 'handle_raise_window' 'handle_activate_window'
''
+ ''
substituteInPlace CMakeLists.txt \
--replace-fail 'DESTINATION lib' 'DESTINATION ''${CMAKE_INSTALL_LIBDIR}' \
--replace-fail '-march=native' '# -march=native'

View File

@@ -28,7 +28,6 @@ beamPackages.mixRelease rec {
nativeBuildInputs = [
git
cmake
];
mixNixDeps = import ./mix.nix {

View File

@@ -347,10 +347,7 @@ pythonPackages.buildPythonApplication (finalAttrs: {
'';
homepage = "https://github.com/music-assistant/server";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [
hexa
emilylange
];
maintainers = [ ];
mainProgram = "mass";
};
})

View File

@@ -6,16 +6,16 @@
buildNpmPackage rec {
pname = "netbird-dashboard";
version = "2.92.0";
version = "2.94.0";
src = fetchFromGitHub {
owner = "netbirdio";
repo = "dashboard";
rev = "v${version}";
hash = "sha256-ZE+Flbtb9/opOIbjoFsNdl2oWx9yBOUxgA+Iu6zJC/E=";
hash = "sha256-kcGGqCFZtGog4BaKLHTTxz+90JlqUx5zt0TolwInaAo=";
};
npmDepsHash = "sha256-75Sc4MMW2HOCqfIngQbigVyzjHwNMeOhZumrm28K1o8=";
npmDepsHash = "sha256-oP01EmLkPK8EuAEc/Bh181uRoycmO2yvhCEII+FQdWM=";
npmFlags = [ "--legacy-peer-deps" ];
installPhase = ''

View File

@@ -1,50 +1,62 @@
{
lib,
stdenv,
fetchurl,
# build-time
autoPatchelfHook,
buildPackages,
# run-time
alsa-lib,
at-spi2-core,
atk,
autoPatchelfHook,
buildEnv,
buildPackages,
cairo,
cups,
dbus,
expat,
fetchurl,
ffmpeg,
fontconfig,
freetype,
gdk-pixbuf,
glib,
gtk3,
lib,
libGL,
libcap,
libdrm,
libGL,
libgbm,
libnotify,
libuuid,
libx11,
libxcb,
libxcomposite,
libxcursor,
libxdamage,
libxext,
libxfixes,
libxi,
libxkbcommon,
libgbm,
libxrandr,
libxrender,
libxscrnsaver,
libxshmfence,
libxtst,
nspr,
nss,
pango,
sdk ? false,
sqlite,
stdenv,
systemd,
udev,
libxtst,
libxscrnsaver,
libxrender,
libxrandr,
libxi,
libxfixes,
libxext,
libxdamage,
libxcursor,
libxcomposite,
libx11,
libxshmfence,
# update script
writeShellApplication,
common-updater-scripts,
curl,
jq,
# options
sdk ? false,
}:
let
@@ -63,27 +75,27 @@ let
gdk-pixbuf
glib
gtk3
libGL
libcap
libdrm
libGL
libnotify
libxkbcommon
libgbm
nspr
nss
pango
libnotify
libx11
libxscrnsaver
libxcomposite
libxcursor
libxdamage
libxext
libxfixes
libxi
libxkbcommon
libxrandr
libxrender
libxtst
libxscrnsaver
libxshmfence
libxtst
nspr
nss
pango
# libnw-specific (not chromium dependencies)
ffmpeg
libxcb
@@ -98,16 +110,15 @@ let
"out"
];
};
version = "0.115.0";
in
stdenv.mkDerivation {
stdenv.mkDerivation (finalAttrs: {
pname = "nwjs";
inherit version;
version = "0.117.0";
src =
let
flavor = if sdk then "sdk-" else "";
flavor = if sdk then "sdk" else "normal";
arch =
if stdenv.hostPlatform.is64bit then
@@ -116,20 +127,8 @@ stdenv.mkDerivation {
"arm64"
else
throw "nwjs: unsupported architecture.";
# TODO: Write an update script to update all 4 hashes.
# nixpkgs-update: no auto update
hashes = {
"sdk-arm64" = "sha256-yhAQNZ4eMAZIouD+twxfWPgL91b8pRR7YzVODwu0npg=";
"sdk-x64" = "sha256-H1yRI+xR/7+TDQ6xaswrvqhJcObO9ZVm6qXIDT5FTQc=";
"arm64" = "sha256-RF2QCVIRKd00heZKyzirCr7ePLjlGza19u8CN4fcxT0=";
"x64" = "sha256-XlGTxRWd7jwmCXrgSG8q/0tciW21p8f1wr8a4n8rmNk=";
};
in
fetchurl {
url = "https://dl.nwjs.io/v${version}/nwjs-${flavor}v${version}-linux-${arch}.tar.gz";
hash = hashes."${flavor + arch}";
};
finalAttrs.passthru.srcs."${flavor}-${arch}";
nativeBuildInputs = [
autoPatchelfHook
@@ -138,11 +137,14 @@ stdenv.mkDerivation {
(buildPackages.wrapGAppsHook3.override { makeWrapper = buildPackages.makeShellWrapper; })
];
buildInputs = [ nwEnv ];
buildInputs = [
nwEnv
];
appendRunpaths = map (pkg: (lib.getLib pkg) + "/lib") [
nwEnv
stdenv.cc.libc
stdenv.cc.cc
stdenv.cc.libc
];
preFixup = ''
@@ -169,6 +171,55 @@ stdenv.mkDerivation {
runHook postInstall
'';
passthru = {
srcs =
let
mkUrl =
flavor: arch:
"https://dl.nwjs.io/v${finalAttrs.version}/nwjs-${
lib.optionalString (flavor == "sdk") "sdk-"
}v${finalAttrs.version}-linux-${arch}.tar.gz";
in
{
normal-arm64 = fetchurl {
url = mkUrl "normal" "arm64";
hash = "sha256-fYzBiRradqodDhIeI3rXYnGC/W/VrpKsLiuvtwiWL5w=";
};
normal-x64 = fetchurl {
url = mkUrl "normal" "x64";
hash = "sha256-KIHtHzqQMdWNj6DwcU0L2se0XVK97Alc1yqk8x4I3r8=";
};
sdk-arm64 = fetchurl {
url = mkUrl "sdk" "arm64";
hash = "sha256-2BHtclshr1mEovMTbyW0g0BNPgpsO2PcGSlpHxncvKQ=";
};
sdk-x64 = fetchurl {
url = mkUrl "sdk" "x64";
hash = "sha256-ZkQ7WgnrtDpW8xHpX8F4wBhTUG17cgM2BeqmsaFwTuw=";
};
};
updateScript = lib.getExe (writeShellApplication {
name = "update-nwjs";
runtimeInputs = [
common-updater-scripts
curl
jq
];
text = ''
LATEST_VERSION="$(curl -sL https://nwjs.io/versions.json | jq -r '.stable' | sed 's/^v//')"
ARCHIVE_NAMES="${toString (lib.attrNames finalAttrs.passthru.srcs)}"
for name in $ARCHIVE_NAMES; do
update-source-version nwjs "$LATEST_VERSION" \
--source-key="passthru.srcs.$name" \
--ignore-same-version \
--print-changes
done
'';
});
};
meta = {
description = "App runtime based on Chromium and node.js";
homepage = "https://nwjs.io/";
@@ -176,7 +227,7 @@ stdenv.mkDerivation {
"aarch64-linux"
"x86_64-linux"
];
changelog = "https://github.com/nwjs/nw.js/blob/nw-v${version}/CHANGELOG.md";
changelog = "https://github.com/nwjs/nw.js/blob/nw-v${finalAttrs.version}/CHANGELOG.md";
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
maintainers = with lib.maintainers; [
mikaelfangel
@@ -185,4 +236,4 @@ stdenv.mkDerivation {
mainProgram = "nw";
license = lib.licenses.mit;
};
}
})

View File

@@ -0,0 +1,61 @@
{
lib,
rustPlatform,
fetchFromGitHub,
cacert,
onnxruntime,
llama-cpp,
versionCheckHook,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "ollaya";
version = "0.7.5";
src = fetchFromGitHub {
owner = "ollaya-dev";
repo = "ollaya";
tag = "v${finalAttrs.version}";
hash = "sha256-T4uY31ONSPsHdTtE6u89UCKDGIVX/cdyWTt+kEB0/cM=";
};
cargoHash = "sha256-IFFDMauewq3JOerPOEZy9a/HCBvYT+VbKOLXl+TPqfU=";
buildInputs = [ onnxruntime ];
__structuredAttrs = true;
env = {
ORT_STRATEGY = "system";
ORT_LIB_LOCATION = "${lib.getLib onnxruntime}/lib";
ORT_PREFER_DYNAMIC_LINK = "true";
};
# The client tests hit local mock servers, but reqwest refuses to build a client without a trust store.
nativeCheckInputs = [ cacert ];
# GGUF runners dlopen llama.cpp from here and refuse any version but the one pinned in
# scripts/llama-cpp.sh, so llama-cpp must match it.
postInstall = ''
# ort's copy-dylibs duplicates onnxruntime next to the binary.
rm $out/lib/libonnxruntime*
mkdir -p $out/lib/ollaya
ln -s ${lib.getLib llama-cpp}/lib $out/lib/ollaya/llama
'';
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
passthru.updateScript = nix-update-script { };
meta = {
description = "Run open decision models locally behind a TypeSafe-compatible API";
homepage = "https://ollaya.dev";
changelog = "https://github.com/ollaya-dev/ollaya/releases/tag/v${finalAttrs.version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ happysalada ];
mainProgram = "ollaya";
platforms = lib.platforms.linux;
};
})

View File

@@ -32,7 +32,7 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "omp";
version = "18.3.3";
version = "18.4.2";
strictDeps = true;
__structuredAttrs = true;
@@ -41,12 +41,12 @@ stdenv.mkDerivation (finalAttrs: {
owner = "can1357";
repo = "oh-my-pi";
tag = "v${finalAttrs.version}";
hash = "sha256-wyLc5yebo3EswxilJBxYVoXBon58to3OlaxIllq4ZQA=";
hash = "sha256-ULo5rPVhEFfOnIlkv61UzzPt3LBKqIki+G0xoYLcY1A=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit (finalAttrs) src;
hash = "sha256-NquckJxx4Ibfy3PjUtxL+vfTceavMLRAaEgbqqneFsM=";
hash = "sha256-esJIhawsgBmJPCV2yiM5S1pamOPHSK0xaszYaBMikCw=";
};
postPatch = ''
@@ -91,7 +91,7 @@ stdenv.mkDerivation (finalAttrs: {
# Prevents breaking symlinks in node_modules
dontFixup = true;
outputHash = "sha256-0SpMVoWelw3FVNaDfM8yndXRrXb6K03xxoC7mym6hec=";
outputHash = "sha256-w9p8e0KlfTiqcxz0jMnIcnJI3zQiE8qIDAjjLRDodWo=";
outputHashMode = "recursive";
};

View File

@@ -14,16 +14,16 @@ assert
buildGoModule (finalAttrs: {
pname = "opa-envoy-plugin";
version = "1.20.2-envoy";
version = "1.21.0-envoy";
src = fetchFromGitHub {
owner = "open-policy-agent";
repo = "opa-envoy-plugin";
tag = "v${finalAttrs.version}";
hash = "sha256-ZYLIlDXEDyQVSEHVRtlD0Pr57d/xMcTjHnPTIPMYreM=";
hash = "sha256-pMEr+kH5Z6j+nCz8gsqNqxbqDfVlVjJXfXJP/uZN4+I=";
};
vendorHash = "sha256-aBkqZpNY/4NS7wEgRrQ7SsPJ8ueTLRfILQHkFO1JUFE=";
vendorHash = "sha256-fFQPkUth2fCmLOIQbOhLy86/XXI8sw0qwTIkDuirh6I=";
nativeBuildInputs = [ installShellFiles ];

View File

@@ -101,6 +101,9 @@ stdenv.mkDerivation (finalAttrs: {
passthru.updateScript = nix-update-script { };
# For dependents that compile the protos themselves.
passthru.opentelemetry-proto = opentelemetry-proto;
passthru.tests = {
# Unfortunately there is no such thing as finalAttrs.finalPackage.override,
# so we have to resort to this.

View File

@@ -29,7 +29,7 @@ buildFHSEnv {
libz
krb5.lib
lttng-ust.out
openssl_3.out
openssl_3_5.out
icu76
# Transitive dependencies from the Debian package

View File

@@ -36,7 +36,7 @@ buildFHSEnv {
libgcc
krb5.lib
lttng-ust.out
openssl_3.out
openssl_3_5.out
icu76
plasticscm-theme

View File

@@ -109,5 +109,8 @@ stdenv.mkDerivation (finalAttrs: {
];
mainProgram = "prismlauncher";
platforms = lib.platforms.linux ++ lib.platforms.darwin;
identifiers.cpeParts = lib.meta.cpeFullVersionWithVendor "prismlauncher" finalAttrs.version // {
product = "prism_launcher";
};
};
})

View File

@@ -144,5 +144,6 @@ symlinkJoin {
mainProgram
platforms
;
identifiers = { inherit (prismlauncher'.meta.identifiers) cpeParts; };
};
}

View File

@@ -12,7 +12,7 @@
buildGoModule (finalAttrs: {
pname = "redis_exporter";
version = "1.91.1";
version = "1.92.1";
__structuredAttrs = true;
@@ -20,10 +20,10 @@ buildGoModule (finalAttrs: {
owner = "oliver006";
repo = "redis_exporter";
tag = "v${finalAttrs.version}";
hash = "sha256-0rX46q2tTobrE+TnecT4j0WenkwMOyrhmxkINL+4hxA=";
hash = "sha256-uMx8oArJHCA/bl+hbHeAe6xlb1dJspMevE29fQYicLQ=";
};
vendorHash = "sha256-N6GqUzrThX4uQ0S5RSNMya1WROGR7/kTFQJT0YNsf2Q=";
vendorHash = "sha256-CDnPvaXttKvNK2gMM5/pYJRCiZya9CzQC7UTwGOg2iw=";
ldflags = [
"-X main.BuildVersion=${finalAttrs.version}"

View File

@@ -20,26 +20,26 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "rclone-ui";
version = "3.7.2";
version = "3.7.5";
src = fetchFromGitHub {
owner = "rclone-ui";
repo = "rclone-ui";
tag = "v${finalAttrs.version}";
hash = "sha256-H/4qU1FJ+EHSdXB0DH8YrfUa8sKfXOGnwOZrQeQfLYI=";
hash = "sha256-7rNFJDx1Gsr9EywnRaToOdbZOhL4Yyz6Xpv+0Qhh638=";
};
npmDeps = fetchNpmDeps {
name = "${finalAttrs.pname}-${finalAttrs.version}-npm-deps";
inherit (finalAttrs) src;
forceGitDeps = true;
hash = "sha256-i1czFB8EvS1KE8ukWp+02/K51FK/M9pabcNcbhtGWnM=";
hash = "sha256-fROZloUIz0Lqtu2oNSjhWtySAJO8ayp+6bLIVkYy/Ko=";
};
cargoRoot = "src-tauri";
buildAndTestSubdir = finalAttrs.cargoRoot;
cargoHash = "sha256-KVrHpJsB8yMknWPxXE3F/SdIlMoRhqFWmxdKe/HIIxE=";
cargoHash = "sha256-Mr+CMJ00a75J2bXGxoz9cj5cKgRG2pN45NnaIDbYA7g=";
# Disable tauri bundle updater, can be removed when #389107 is merged
patches = [ ./remove_updater.patch ];

View File

@@ -3,7 +3,7 @@
fetchCrate,
rustPlatform,
pkg-config,
openssl_3,
openssl_3_5,
protobuf,
}:
rustPlatform.buildRustPackage (finalAttrs: {
@@ -13,7 +13,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
pkg-config
protobuf
];
buildInputs = [ openssl_3 ];
buildInputs = [ openssl_3_5 ];
src = fetchCrate {
inherit (finalAttrs) pname version;
hash = "sha256-vLbSjDULrYL8emQTha4fhEbr00OlhXNa00QhCKCnWDc=";

View File

@@ -10,13 +10,13 @@
buildNpmPackage (finalAttrs: {
pname = "snyk";
version = "1.1307.1";
version = "1.1307.4";
src = fetchFromGitHub {
owner = "snyk";
repo = "cli";
tag = "v${finalAttrs.version}";
hash = "sha256-VhbtP1aHIkYaPbptkJMT/cMAhqFeAwTwSZioIAUbO8k=";
hash = "sha256-DgTi2SYS+3S8C3PQap89N/M8m7u7Uya429ii6mxpofw=";
# TODO: Remove once https://github.com/snyk/cli/pull/6924 is released.
postFetch = ''
@@ -26,7 +26,7 @@ buildNpmPackage (finalAttrs: {
npmDepsFetcherVersion = 2;
npmDepsHash = "sha256-mTP5Tyi41BhSaDjCallH6r+PAFd/UCqNLxUkk2DzcLE=";
npmDepsHash = "sha256-EcZ/JhTHwoqnkBQ1HrP9HjYS0pVoDybvDvs97X+sALw=";
nodejs = nodejs_24;

View File

@@ -7,14 +7,14 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "stalwart-cli";
version = "1.0.12";
version = "1.0.13";
src = fetchFromGitHub {
owner = "stalwartlabs";
repo = "cli";
tag = "v${finalAttrs.version}";
hash = "sha256-Pf/Nriu0uRWNHHhWebrAlv+TRQgzUHDDrXhaWY6lz9M=";
hash = "sha256-8HiFxJT5mGZp/9al1y8Ycm5im+E0PMDhw2+XeJAabTY=";
};
cargoHash = "sha256-CesZQ/rDcQS1hxgUAwTzAKsuKq4MuIqUpGlEHcIdx5o=";
cargoHash = "sha256-Lj7wBLMqN4xP2GXicFGgIxkPrGi7F8i9KBSfFSn+KNk=";
__structuredAttrs = true;
# `Result::unwrap()` on an `Err` value: Network(reqwest::Error { kind: Builder, source: General("No CA certificates were loaded from the system") })
nativeCheckInputs = [ cacert ];

View File

@@ -6,13 +6,13 @@
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "stevenblack-blocklist";
version = "3.16.115";
version = "3.16.118";
src = fetchFromGitHub {
owner = "StevenBlack";
repo = "hosts";
tag = finalAttrs.version;
hash = "sha256-zukXKnH0Eb0FbXU9+Q3EWqIm+BCMrpGqwjC5so7JUAo=";
hash = "sha256-WGl+RRNR4daLTxSqzaJFdyned6jEOwGIy26Pk9ZUtFc=";
};
outputs = [

View File

@@ -2,6 +2,8 @@
lib,
rustPlatform,
fetchFromGitHub,
nix-update-script,
versionCheckHook,
}:
rustPlatform.buildRustPackage (finalAttrs: {
@@ -26,6 +28,17 @@ rustPlatform.buildRustPackage (finalAttrs: {
# Requires a running substrate node
doCheck = false;
__structuredAttrs = true;
nativeInstallCheckInputs = [ versionCheckHook ];
# subxt exposes its version through a subcommand, not a --version flag
versionCheckProgramArg = "version";
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
meta = {
homepage = "https://github.com/paritytech/subxt";
description = "Subxt is a CLI tool for interacting with chains in the Polkadot network";

View File

@@ -42,12 +42,12 @@ in
buildGoModule (finalAttrs: {
__structuredAttrs = true;
pname = "tonearm";
version = "1.5.0";
version = "1.5.1";
src = fetchFromCodeberg {
owner = "dergs";
repo = "Tonearm";
tag = "v${finalAttrs.version}";
hash = "sha256-OUqKM9VFoQ732xL9d36QKHZlrH5dXH3xtxI3epZXbIM=";
hash = "sha256-+QSm4NSGJX+BoAPjyssCvItE8cRnVQJ9dmu06QAlzR0=";
};
vendorHash = "sha256-pa0C0zMaKIa1wK49JIxHyfE1rbzzBB3yn44swlrR4HY=";

View File

@@ -250,5 +250,6 @@ stdenv.mkDerivation (finalAttrs: {
maintainers = with lib.maintainers; [ Scrumplex ];
mainProgram = "unbound";
platforms = with lib.platforms; unix ++ windows;
identifiers.cpeParts = lib.meta.cpeFullVersionWithVendor "nlnetlabs" finalAttrs.version;
};
})

View File

@@ -14,13 +14,13 @@
buildGo127Module (finalAttrs: {
pname = "VictoriaMetrics";
version = "1.152.0";
version = "1.153.0";
src = fetchFromGitHub {
owner = "VictoriaMetrics";
repo = "VictoriaMetrics";
tag = "v${finalAttrs.version}";
hash = "sha256-3PDFQbVJhwyMUvA/ToXJKBOIN9xKoBGp/YjHntjwKr4=";
hash = "sha256-mp6BEoTsG0MJMOEUOVX0NcNlQRYNBKdGADTIlkWfexw=";
};
vendorHash = null;

View File

@@ -28,7 +28,6 @@
libepoxy,
libjxl,
at-spi2-core,
cairo,
expat,
libxml2,
libsoup_3,
@@ -83,7 +82,7 @@ in
# https://webkitgtk.org/2024/10/04/webkitgtk-2.46.html recommends building with clang.
clangStdenv.mkDerivation (finalAttrs: {
pname = "webkitgtk";
version = "2.52.6";
version = "2.54.0";
name = "webkitgtk-${finalAttrs.version}+abi=${abiVersion}";
outputs = [
@@ -98,7 +97,7 @@ clangStdenv.mkDerivation (finalAttrs: {
src = fetchurl {
url = "https://webkitgtk.org/releases/webkitgtk-${finalAttrs.version}.tar.xz";
hash = "sha256-F5ouo/j27dS+fzH9xVr8V70HKfH7pkjGHUGBU5rBFvw=";
hash = "sha256-hG/RnM7brh2/6QTybb8taKgAozpQyvKtUiLI3LPyVoI=";
};
patches = lib.optionals clangStdenv.hostPlatform.isLinux [
@@ -115,6 +114,15 @@ clangStdenv.mkDerivation (finalAttrs: {
hash = "sha256-MgaSpXq9l6KCLQdQyel6bQFHG53l3GY277WePpYXdjA=";
name = "fix_ftbfs_riscv64.patch";
})
# Fix https://bugs.webkit.org/show_bug.cgi?id=322394
# Upstream PR: https://github.com/WebKit/WebKit/pull/74512
# Fetching the patch vendored by gnome-build-meta because the upstream
# patch doesn't apply.
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gnome-build-meta/-/raw/7e4afe649fa1acbe9203004ad8fe1749c26e619d/patches/webkitgtk/main-thread.patch";
hash = "sha256-Dm6Yytt4mQy7qxSWiudGBqfQUVJRhNAc1n+o/NMR1cg=";
})
];
nativeBuildInputs = [
@@ -139,7 +147,6 @@ clangStdenv.mkDerivation (finalAttrs: {
buildInputs = [
at-spi2-core
cairo # required even when using skia
enchant
expat
flite

View File

@@ -111,7 +111,7 @@ effectiveBuildPythonApplication rec {
owner = "Xpra-org";
repo = "xpra";
tag = "v${version}";
hash = "sha256-OXcZs2bt+ub59buDkw56A3gfOnDHSYP7RBAFOBvwrKY=";
hash = "sha256-TXqnheJjq3WZZffbEPjS5/u/02OlJkDJ9IqyCabYr1E=";
};
patches = [

View File

@@ -22,13 +22,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "yacreader";
version = "10.0.0";
version = "10.3.1";
src = fetchFromGitHub {
owner = "YACReader";
repo = "yacreader";
tag = finalAttrs.version;
hash = "sha256-nJ4S4ej/I+ifDNa3CPpusFpDsEwZwYDt0JLaebptjuU=";
hash = "sha256-ZNS6tRALPDrY322kE4+xXkxuMRV0+Yxw9aZ2RPy5HiU=";
};
patches = [
@@ -42,9 +42,14 @@ stdenv.mkDerivation (finalAttrs: {
'';
# Pipewire is dlopen'd, so we must tell it where to look
preConfigure = ''
qtWrapperArgs+=("--prefix" "LD_LIBRARY_PATH" ":" "${lib.makeLibraryPath [ pipewire ]}")
'';
# So is qtwebapp on macOS
preConfigure =
lib.optionalString stdenv.hostPlatform.isLinux ''
qtWrapperArgs+=("--prefix" "LD_LIBRARY_PATH" ":" "${lib.makeLibraryPath [ pipewire ]}")
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
qtWrapperArgs+=("--prefix" "DYLD_LIBRARY_PATH" ":" "${lib.makeLibraryPath [ qtwebapp ]}")
'';
strictDeps = true;
__structuredAttrs = true;
@@ -52,7 +57,6 @@ stdenv.mkDerivation (finalAttrs: {
cmakeFlags = [
# force unarr backend on all platforms
(lib.cmakeBool "BUILD_SERVER_STANDALONE" onlyServer)
(lib.cmakeFeature "PDF_BACKEND" "poppler")
(lib.cmakeFeature "DECOMPRESSION_BACKEND" "unarr")
];
@@ -89,20 +93,17 @@ stdenv.mkDerivation (finalAttrs: {
runHook preInstall
mkdir -p "$out"/Applications
mkdir -p "$out/Applications/YACReader.app/Contents/MacOS/languages"
mkdir -p "$out/Applications/YACReaderLibrary.app/Contents/MacOS/languages"
mkdir -p "$out/Applications/YACReaderLibraryServer.app/Contents/MacOS/languages"
cp -r YACReader/YACReader.app "$out"/Applications/
cp -r YACReaderLibrary/YACReaderLibrary.app "$out"/Applications/
cp -r YACReaderLibraryServer/YACReaderLibraryServer.app "$out"/Applications/
cp -r bin/YACReader.app "$out"/Applications/
cp -r bin/YACReaderLibrary.app "$out"/Applications/
cp -r bin/YACReaderLibraryServer.app "$out"/Applications/
cp -r release/server "$out"/Applications/YACReaderLibrary.app/Contents/MacOS/
cp -r release/server "$out"/Applications/YACReaderLibraryServer.app/Contents/MacOS/
cp -r release/languages "$out"/Applications/YACReader.app/Contents/MacOS/
cp -r release/languages "$out"/Applications/YACReaderLibrary.app/Contents/MacOS/
cp -r release/languages "$out"/Applications/YACReaderLibraryServer.app/Contents/MacOS/
makeWrapper "$out"/Applications/YACReader.app/Contents/MacOS/YACReader "$out/bin/YACReader"
makeWrapper "$out"/Applications/YACReaderLibrary.app/Contents/MacOS/YACReaderLibrary "$out/bin/YACReaderLibrary"
makeWrapper "$out"/Applications/YACReaderLibraryServer.app/Contents/MacOS/YACReaderLibraryServer "$out/bin/YACReaderLibraryServer"
find . -name "*.qm" ! -name "*_source.qm" -exec cp {} "$out/Applications/YACReader.app/Contents/MacOS/languages/" \;
find . -name "*.qm" ! -name "*_source.qm" -exec cp {} "$out/Applications/YACReaderLibrary.app/Contents/MacOS/languages/" \;
find . -name "*.qm" ! -name "*_source.qm" -exec cp {} "$out/Applications/YACReaderLibraryServer.app/Contents/MacOS/languages/" \;
runHook postInstall
'';

View File

@@ -12,7 +12,7 @@ index 839072efe4..8b8a2a5dd4 100644
common_all
comic_backend
db_helper
+ PRIVATE
+ PUBLIC
+ PkgConfig::QtWebApp
)
diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt

View File

@@ -82,9 +82,14 @@ makeScopeWithSplicing' {
inherit (pkgs.callPackages ./hooks { })
beamCopySourceHook
beamModuleInstallHook
mixAppConfigPatchHook
mixBuildDirHook
mixCompileHook
mixAppConfigPatchHook
mixDepsCompileHook
mixEscriptSetupHook
mixFodDepsSetupHook
mixNixDepsSetupHook
mixReleaseSetupHook
rebar3CompileHook
rebarDevendorPatchHook
;

View File

@@ -13,4 +13,6 @@ beamCopySourceHook() {
echo "Finished beamCopySourceHook"
}
postPatchHooks+=(beamCopySourceHook)
if [ -z "${dontBeamCopySource-}" ]; then
postPatchHooks+=(beamCopySourceHook)
fi

View File

@@ -13,6 +13,11 @@
meta.license = lib.licenses.mit;
} ./beam-module-install-hook.sh;
mixAppConfigPatchHook = makeSetupHook {
name = "mix-config-patch-hook.sh";
meta.license = lib.licenses.mit;
} ./mix-app-config-patch-hook.sh;
mixBuildDirHook = makeSetupHook {
name = "mix-configure-hook.sh";
meta.license = lib.licenses.mit;
@@ -23,10 +28,30 @@
meta.license = lib.licenses.mit;
} ./mix-compile-hook.sh;
mixAppConfigPatchHook = makeSetupHook {
name = "mix-config-patch-hook.sh";
mixDepsCompileHook = makeSetupHook {
name = "mix-deps-compile-hook.sh";
meta.license = lib.licenses.mit;
} ./mix-app-config-patch-hook.sh;
} ./mix-deps-compile-hook.sh;
mixEscriptSetupHook = makeSetupHook {
name = "mix-escript-setup-hook.sh";
meta.license = lib.licenses.mit;
} ./mix-escript-setup-hook.sh;
mixFodDepsSetupHook = makeSetupHook {
name = "mix-fod-deps-setup-hook";
meta.license = lib.licenses.mit;
} ./mix-fod-deps-setup-hook.sh;
mixNixDepsSetupHook = makeSetupHook {
name = "mix-nix-deps-setup-hook";
meta.license = lib.licenses.mit;
} ./mix-nix-deps-setup-hook.sh;
mixReleaseSetupHook = makeSetupHook {
name = "mix-release-setup-hook.sh";
meta.license = lib.licenses.mit;
} ./mix-release-setup-hook.sh;
rebar3CompileHook = makeSetupHook {
name = "rebar3-compile-hook.sh";

View File

@@ -16,4 +16,6 @@ mixAppConfigPatchHook() {
echo "Finished mixAppConfigPatchHook"
}
prePatchHooks+=(mixAppConfigPatchHook)
if [ -z "${dontMixAppConfigPatch-}" ]; then
prePatchHooks+=(mixAppConfigPatchHook)
fi

View File

@@ -5,9 +5,13 @@
mixBuildDirHook() {
echo "Executing mixBuildDirHook"
local lib dir dest build_dir
mkdir -p _build/"$MIX_BUILD_PREFIX"/lib
while read -r -d ':' lib; do
while IFS= read -r -d ':' lib; do
[ -n "$lib" ] || continue
for dir in "$lib"/*; do
[ -d "$dir" ] || continue
# Strip version number for directory name if it exists, so naming of
# all libs matches what mix's expectation.
dest=$(basename "$dir" | cut -d '-' -f1)

View File

@@ -0,0 +1,19 @@
# shellcheck shell=bash
#
# This is needed for projects that have a specific compile step
# the dependency needs to be compiled in order for the task
# to be available.
#
# Phoenix projects for example will need compile.phoenix.
mixDepsCompileHook() {
echo "Executing mixDepsCompileHook"
mix deps.compile --no-deps-check --skip-umbrella-children
echo "Finished mixDepsCompileHook"
}
if [ -z "${dontMixDepsCompile-}" ]; then
postConfigureHooks+=(mixDepsCompileHook)
fi

View File

@@ -0,0 +1,30 @@
# shellcheck shell=bash
mixEscriptBuild() {
echo "Executing mixEscriptBuild"
mix escript.build --no-deps-check
echo "Finished mixEscriptBuild"
}
mixEscriptInstall() {
echo "Executing mixEscriptInstall"
runHook preInstall
mkdir -p "$out/bin"
cp "$escriptBinName" "$out/bin"
runHook postInstall
echo "Finished mixEscriptInstall"
}
if [ -z "${dontMixEscriptBuild-}" ]; then
postBuildHooks+=(mixEscriptBuild)
fi
if [ -z "${dontMixEscriptInstall-}" ] && [ -z "${installPhase-}" ]; then
installPhase=mixEscriptInstall
fi

View File

@@ -0,0 +1,29 @@
# shellcheck shell=bash
mixFodDepsPostUnpack() {
echo "Executing mixFodDepsPostUnpack"
if [ -n "${mixFodDeps-}" ]; then
# Compilation of the dependencies will require that the dependency path is
# writable, thus a copy to the $TEMPDIR is inevitable here.
export MIX_DEPS_PATH="$TEMPDIR/deps"
cp --no-preserve=mode -R "${mixFodDeps}" "$MIX_DEPS_PATH"
fi
echo "Finished mixFodDepsPostUnpack"
}
mixFodDepsPostConfigure() {
echo "Executing mixFodDepsPostConfigure"
if [ -n "${mixFodDeps-}" ]; then
# Symlink deps to build root. Allows for mixFodDeps Phoenix projects to
# find javascript assets.
ln -s "$MIX_DEPS_PATH" ./deps
fi
echo "Finished mixFodDepsPostConfigure"
}
postUnpackHooks+=(mixFodDepsPostUnpack)
postConfigureHooks+=(mixFodDepsPostConfigure)

View File

@@ -0,0 +1,21 @@
# shellcheck shell=bash
#
# Symlink dependency sources. This is needed for projects that require
# access to the source of their dependencies. For example, Phoenix
# projects need javascript assets to build asset bundles.
mixNixDepsPostConfigure() {
echo "Executing mixNixDepsPostConfigure"
local name
for name in "${!mixNixDeps[@]}"; do
if [ -d "${mixNixDeps[$name]}/src" ]; then
mkdir -p deps
ln -sv "${mixNixDeps[$name]}/src" "deps/$name"
fi
done
echo "Finished mixNixDepsPostConfigure"
}
postConfigureHooks+=(mixNixDepsPostConfigure)

View File

@@ -0,0 +1,91 @@
# shellcheck shell=bash
mixReleaseInstallHook() {
echo "Executing mixReleaseInstallHook"
runHook preInstall
mix release ${mixReleaseName:+"$mixReleaseName"} --no-deps-check --path "$out"
runHook postInstall
echo "Finished mixReleaseInstallHook"
}
mixReleaseFixupHook() {
echo "Executing mixReleaseFixupHook"
echo "Removing files for Microsoft Windows"
rm -f "$out"/bin/*.bat
echo "Wrapping programs in $out/bin with their runtime deps"
find "$out/bin/" -type f -executable | while read f; do
wrapProgram "$f" --prefix PATH : "$mixReleaseRuntimePath"
done
# shellcheck disable=SC2144 # this will only work for a single erts
if [ -e "$out"/erts-* ]; then
mixReleaseRemoveErlangReferences
fi
echo "Finished mixReleaseFixupHook"
}
mixReleaseRemoveErlangReferences() {
# ERTS is included in the release, then erlang is not required as a runtime dependency.
# But, erlang is still referenced in some places. To removed references to erlang,
# following steps are required.
echo "Removing references to erlang"
# 1. remove references to erlang from plain text files
for file in $(rg "${erlang}/lib/erlang" "$out" --files-with-matches); do
substituteInPlace "$file" --replace "${erlang}/lib/erlang" "$out"
done
# 2. remove references to erlang from .beam files
#
# No need to do anything, because it has been handled by "deterministic" option specified
# by ERL_COMPILER_OPTIONS.
# 3. remove references to erlang from normal binary files
for file in $(rg "${erlang}/lib/erlang" "$out" --files-with-matches --binary --iglob '!*.beam'); do
echo "removing references to erlang in $file"
# use bbe to substitute strings in binary files, because using substituteInPlace
# on binaries will raise errors
bbe -e "s|${erlang}/lib/erlang|$out|" -o "$file".tmp "$file"
rm -f "$file"
mv "$file".tmp "$file"
done
# References to erlang should be removed from output after above processing.
}
mixReleaseRemoveCookieHook() {
if [ -e "$out/releases/COOKIE" ]; then
echo "Removing $out/releases/COOKIE"
rm "$out/releases/COOKIE"
fi
}
mixReleaseStripDebugHook() {
# Strip debug symbols to avoid hardreferences to "foreign" closures actually
# not needed at runtime, while at the same time reduce size of BEAM files.
erl -noinput -eval 'lists:foreach(fun(F) -> io:format("Stripping ~p.~n", [F]), beam_lib:strip(F) end, filelib:wildcard("'"$out"'/**/*.beam"))' -s init stop
}
if [ -z "${dontMixReleaseFixup-}" ]; then
preFixupHooks+=(mixReleaseFixupHook)
fi
if [ -n "${removeCookie-1}" ]; then
preFixupHooks+=(mixReleaseRemoveCookieHook)
fi
if [ -n "${stripDebug-}" ]; then
postFixupHooks+=(mixReleaseStripDebugHook)
fi
if [ -z "${dontMixReleaseInstall-}" ] && [ -z "${installPhase-}" ]; then
installPhase=mixReleaseInstallHook
fi

View File

@@ -10,4 +10,6 @@ rebarDevendorPatchHook() {
echo "Finished rebarDevendorPatchHook"
}
prePatchHooks+=(rebarDevendorPatchHook)
if [ -z "${dontRebarDevendorPatch-}" ]; then
prePatchHooks+=(rebarDevendorPatchHook)
fi

View File

@@ -12,11 +12,18 @@
ripgrep,
bbe,
makeWrapper,
writableTmpDirAsHomeHook,
coreutils,
gnused,
gnugrep,
gawk,
mixBuildDirHook,
mixCompileHook,
mixDepsCompileHook,
mixEscriptSetupHook,
mixFodDepsSetupHook,
mixNixDepsSetupHook,
mixReleaseSetupHook,
}@inputs:
lib.extendMkDerivation {
@@ -25,7 +32,6 @@ lib.extendMkDerivation {
excludeDrvArgNames = [
"compileFlags"
"erlangCompilerOptions"
"mixNixDeps"
];
extendDrvArgs =
@@ -41,6 +47,7 @@ lib.extendMkDerivation {
mixEnv ? "prod",
mixTarget ? "host",
compileFlags ? [ ],
mixCompileFlags ? compileFlags,
# Build a particular named release.
# see https://hexdocs.pm/mix/1.12/Mix.Tasks.Release.html#content
mixReleaseName ? "",
@@ -106,20 +113,22 @@ lib.extendMkDerivation {
erlang
elixir
hex
git
mixBuildDirHook
]
++
# Mix deps
(builtins.attrValues mixNixDeps)
++
# other compile-time deps
[
findutils
ripgrep
bbe
findutils
git
makeWrapper
];
ripgrep
writableTmpDirAsHomeHook
mixBuildDirHook
mixCompileHook
mixDepsCompileHook
]
++ lib.optionals (escriptBinName != null) [ mixEscriptSetupHook ]
++ lib.optionals (escriptBinName == null) [ mixReleaseSetupHook ]
++ lib.optionals (mixFodDeps != null) [ mixFodDepsSetupHook ]
++ lib.optionals (mixNixDeps != { }) ([ mixNixDepsSetupHook ] ++ (builtins.attrValues mixNixDeps));
buildInputs = [
bashNonInteractive
@@ -158,147 +167,13 @@ lib.extendMkDerivation {
}
// (attrs.env or { });
postUnpack = ''
# Mix and Hex
export MIX_HOME="$TEMPDIR/mix"
export HEX_HOME="$TEMPDIR/hex"
inherit erlang;
# Rebar
export REBAR_GLOBAL_CONFIG_DIR="$TEMPDIR/rebar3"
export REBAR_CACHE_DIR="$TEMPDIR/rebar3.cache"
${lib.optionalString (mixFodDeps != null) ''
# Compilation of the dependencies will require that the dependency path is
# writable, thus a copy to the $TEMPDIR is inevitable here.
export MIX_DEPS_PATH="$TEMPDIR/deps"
cp --no-preserve=mode -R "${mixFodDeps}" "$MIX_DEPS_PATH"
''}
''
+ (attrs.postUnpack or "");
configurePhase =
attrs.configurePhase or ''
runHook preConfigure
# This is needed for projects that have a specific compile step
# the dependency needs to be compiled in order for the task
# to be available.
#
# Phoenix projects for example will need compile.phoenix.
mix deps.compile --no-deps-check --skip-umbrella-children
# Symlink dependency sources. This is needed for projects that require
# access to the source of their dependencies. For example, Phoenix
# projects need javascript assets to build asset bundles.
${lib.optionalString (mixNixDeps != { }) ''
mkdir -p deps
${lib.concatMapAttrsStringSep "\n" (name: dep: ''
dep_path="deps/${name}"
if [ -d "${dep}/src" ]; then
ln -sv ${dep}/src $dep_path
fi
'') mixNixDeps}
''}
# Symlink deps to build root. Similar to above, but allows for mixFodDeps
# Phoenix projects to find javascript assets.
${lib.optionalString (mixFodDeps != null) ''
ln -s "$MIX_DEPS_PATH" ./deps
''}
runHook postConfigure
'';
buildPhase =
attrs.buildPhase or ''
runHook preBuild
mix compile --no-deps-check ${lib.concatStringsSep " " compileFlags}
${lib.optionalString (escriptBinName != null) ''
mix escript.build --no-deps-check
''}
runHook postBuild
'';
installPhase =
attrs.installPhase or ''
runHook preInstall
${
if (escriptBinName != null) then
''
mkdir -p $out/bin
cp ${escriptBinName} $out/bin
''
else
''
mix release ${mixReleaseName} --no-deps-check --path "$out"
''
}
runHook postInstall
'';
postFixup = ''
echo "removing files for Microsoft Windows"
rm -f "$out"/bin/*.bat
echo "wrapping programs in $out/bin with their runtime deps"
for f in $(find $out/bin/ -type f -executable); do
wrapProgram "$f" \
--prefix PATH : ${
lib.makeBinPath [
coreutils
gnused
gnugrep
gawk
]
}
done
''
+ lib.optionalString removeCookie ''
if [ -e $out/releases/COOKIE ]; then
echo "removing $out/releases/COOKIE"
rm $out/releases/COOKIE
fi
''
+ ''
if [ -e $out/erts-* ]; then
# ERTS is included in the release, then erlang is not required as a runtime dependency.
# But, erlang is still referenced in some places. To removed references to erlang,
# following steps are required.
# 1. remove references to erlang from plain text files
for file in $(rg "${erlang}/lib/erlang" "$out" --files-with-matches); do
echo "removing references to erlang in $file"
substituteInPlace "$file" --replace "${erlang}/lib/erlang" "$out"
done
# 2. remove references to erlang from .beam files
#
# No need to do anything, because it has been handled by "deterministic" option specified
# by ERL_COMPILER_OPTIONS.
# 3. remove references to erlang from normal binary files
for file in $(rg "${erlang}/lib/erlang" "$out" --files-with-matches --binary --iglob '!*.beam'); do
echo "removing references to erlang in $file"
# use bbe to substitute strings in binary files, because using substituteInPlace
# on binaries will raise errors
bbe -e "s|${erlang}/lib/erlang|$out|" -o "$file".tmp "$file"
rm -f "$file"
mv "$file".tmp "$file"
done
# References to erlang should be removed from output after above processing.
fi
''
+ lib.optionalString stripDebug ''
# Strip debug symbols to avoid hardreferences to "foreign" closures actually
# not needed at runtime, while at the same time reduce size of BEAM files.
erl -noinput -eval 'lists:foreach(fun(F) -> io:format("Stripping ~p.~n", [F]), beam_lib:strip(F) end, filelib:wildcard("'"$out"'/**/*.beam"))' -s init stop
'';
mixReleaseRuntimePath = lib.makeBinPath [
coreutils
gnused
gnugrep
gawk
];
};
}

View File

@@ -54,14 +54,7 @@ let
inherit version;
src = fetchurl {
url =
if lib.versionOlder version "3.0" then
let
versionFixed = builtins.replaceStrings [ "." ] [ "_" ] version;
in
"https://github.com/openssl/openssl/releases/download/OpenSSL_${versionFixed}/openssl-${version}.tar.gz"
else
"https://github.com/openssl/openssl/releases/download/openssl-${version}/openssl-${version}.tar.gz";
url = "https://github.com/openssl/openssl/releases/download/openssl-${version}/openssl-${version}.tar.gz";
inherit hash;
};
@@ -419,36 +412,6 @@ in
# - other versions in between only when reasonable need is stated for some package
# - backport every security critical fix release e.g. 3.0.y -> 3.0.y+1 but no new version, e.g. 3.1 -> 3.2
openssl_3 = common {
version = "3.0.22";
hash = "sha256-Z+vKflDRc4MCgEVIZlNJIZW4PblfhVhwlwG7R7XB74E=";
patches = [
# Support for NIX_SSL_CERT_FILE, motivation:
# https://github.com/NixOS/nixpkgs/commit/942dbf89c6120cb5b52fb2ab456855d1fbf2994e
./3.0/nix-ssl-cert-file.patch
# openssl will only compile in KTLS if the current kernel supports it.
# This patch disables build-time detection.
./3.0/openssl-disable-kernel-detection.patch
# Look up SSL certificates in /etc rather than the immutable installation directory
(
if stdenv.hostPlatform.isDarwin then ./use-etc-ssl-certs-darwin.patch else ./use-etc-ssl-certs.patch
)
]
++
# https://cygwin.com/cgit/cygwin-packages/openssl/plain/openssl-3.0.18-skip-dllmain-detach.patch?id=219272d762128451822755e80a61db5557428598
# and also https://github.com/openssl/openssl/pull/29321
lib.optional stdenv.hostPlatform.isCygwin ./openssl-3.0.18-skip-dllmain-detach.patch;
withDocs = true;
extraMeta = {
license = lib.licenses.asl20;
};
};
openssl_3_5 = common {
version = "3.5.8";
hash = "sha256-qPhKOZGOxkFc52XZtCnTE7qXuBQxacFy5zS5UURk9bI=";
@@ -456,11 +419,11 @@ in
patches = [
# Support for NIX_SSL_CERT_FILE, motivation:
# https://github.com/NixOS/nixpkgs/commit/942dbf89c6120cb5b52fb2ab456855d1fbf2994e
./3.0/nix-ssl-cert-file.patch
./3.5/nix-ssl-cert-file.patch
# openssl will only compile in KTLS if the current kernel supports it.
# This patch disables build-time detection.
./3.0/openssl-disable-kernel-detection.patch
./3.5/openssl-disable-kernel-detection.patch
# Look up SSL certificates in /etc rather than the immutable installation directory
(
@@ -488,11 +451,11 @@ in
patches = [
# Support for NIX_SSL_CERT_FILE, motivation:
# https://github.com/NixOS/nixpkgs/commit/942dbf89c6120cb5b52fb2ab456855d1fbf2994e
./3.0/nix-ssl-cert-file.patch
./3.5/nix-ssl-cert-file.patch
# openssl will only compile in KTLS if the current kernel supports it.
# This patch disables build-time detection.
./3.0/openssl-disable-kernel-detection.patch
./3.5/openssl-disable-kernel-detection.patch
# Look up SSL certificates in /etc rather than the immutable installation directory
(
@@ -517,11 +480,11 @@ in
patches = [
# Support for NIX_SSL_CERT_FILE, motivation:
# https://github.com/NixOS/nixpkgs/commit/942dbf89c6120cb5b52fb2ab456855d1fbf2994e
./3.0/nix-ssl-cert-file.patch
./3.5/nix-ssl-cert-file.patch
# openssl will only compile in KTLS if the current kernel supports it.
# This patch disables build-time detection.
./3.0/openssl-disable-kernel-detection.patch
./3.5/openssl-disable-kernel-detection.patch
# Look up SSL certificates in /etc rather than the immutable installation directory
(

View File

@@ -1,24 +0,0 @@
--- origsrc/crypto/dllmain.c
+++ src/crypto/dllmain.c
@@ -35,7 +35,9 @@
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
+# ifndef __CYGWIN__
OPENSSL_thread_stop();
+# endif
break;
case DLL_PROCESS_DETACH:
break;
--- origsrc/providers/fips/self_test.c
+++ src/providers/fips/self_test.c
@@ -95,7 +95,9 @@
init();
break;
case DLL_PROCESS_DETACH:
+# ifndef __CYGWIN__
cleanup();
+# endif
break;
default:
break;

View File

@@ -1,13 +0,0 @@
diff --git a/include/internal/cryptlib.h b/include/internal/cryptlib.h
index 329ef62..9a8df64 100644
--- a/include/internal/cryptlib.h
+++ b/include/internal/cryptlib.h
@@ -56,7 +56,7 @@ DEFINE_LHASH_OF(MEM);
#ifndef OPENSSL_SYS_VMS
#define X509_CERT_AREA OPENSSLDIR
#define X509_CERT_DIR OPENSSLDIR "/certs"
-#define X509_CERT_FILE OPENSSLDIR "/cert.pem"
+#define X509_CERT_FILE "/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt"
#define X509_PRIVATE_DIR OPENSSLDIR "/private"
#define CTLOG_FILE OPENSSLDIR "/ct_log_list.cnf"
#else

View File

@@ -1,13 +0,0 @@
diff --git a/include/internal/cryptlib.h b/include/internal/cryptlib.h
index 329ef62..9a8df64 100644
--- a/include/internal/cryptlib.h
+++ b/include/internal/cryptlib.h
@@ -56,7 +56,7 @@ DEFINE_LHASH_OF(MEM);
#ifndef OPENSSL_SYS_VMS
#define X509_CERT_AREA OPENSSLDIR
#define X509_CERT_DIR OPENSSLDIR "/certs"
-#define X509_CERT_FILE OPENSSLDIR "/cert.pem"
+#define X509_CERT_FILE "/etc/ssl/certs/ca-certificates.crt"
#define X509_PRIVATE_DIR OPENSSLDIR "/private"
#define CTLOG_FILE OPENSSLDIR "/ct_log_list.cnf"
#else

View File

@@ -48,6 +48,6 @@ buildPythonPackage rec {
homepage = "https://github.com/Jc2k/aiojellyfin";
changelog = "https://github.com/Jc2k/aiojellyfin/blob/${src.tag}/CHANGELOG.md";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ hexa ];
maintainers = [ ];
};
}

Some files were not shown because too many files have changed in this diff Show More