mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-09-29 19:30:11 +00:00
Merge master into staging-next
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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" ''
|
||||
|
||||
@@ -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 (
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -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}"
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
56
nixos/tests/nginx-otel.nix
Normal file
56
nixos/tests/nginx-otel.nix
Normal 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'")
|
||||
'';
|
||||
}
|
||||
@@ -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\")'"
|
||||
)
|
||||
'';
|
||||
|
||||
@@ -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.";
|
||||
};
|
||||
};
|
||||
})
|
||||
|
||||
@@ -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]*";
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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 [ ];
|
||||
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
})
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
})
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
51
pkgs/by-name/aw/awscurl/package.nix
Normal file
51
pkgs/by-name/aw/awscurl/package.nix
Normal 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;
|
||||
};
|
||||
})
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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=";
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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" ];
|
||||
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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=";
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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
|
||||
];
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -56,7 +56,6 @@ buildGoModule (finalAttrs: {
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = with lib.maintainers; [
|
||||
sweenu
|
||||
emilylange
|
||||
];
|
||||
};
|
||||
})
|
||||
|
||||
@@ -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=";
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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};
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -60,5 +60,6 @@ buildGoModule (finalAttrs: {
|
||||
LorenzBischof
|
||||
Scrumplex
|
||||
];
|
||||
identifiers.cpeParts = lib.meta.cpeFullVersionWithVendor "kyverno" finalAttrs.version;
|
||||
};
|
||||
})
|
||||
|
||||
@@ -31,7 +31,6 @@ rustPlatform.buildRustPackage {
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [
|
||||
sweenu
|
||||
emilylange
|
||||
];
|
||||
mainProgram = "librespot";
|
||||
platforms = lib.platforms.linux;
|
||||
|
||||
56
pkgs/by-name/li/libsecretspec-resolver/package.nix
Normal file
56
pkgs/by-name/li/libsecretspec-resolver/package.nix
Normal 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" ];
|
||||
};
|
||||
})
|
||||
@@ -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" ];
|
||||
};
|
||||
})
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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=";
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -28,7 +28,6 @@ beamPackages.mixRelease rec {
|
||||
|
||||
nativeBuildInputs = [
|
||||
git
|
||||
cmake
|
||||
];
|
||||
|
||||
mixNixDeps = import ./mix.nix {
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
})
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
61
pkgs/by-name/ol/ollaya/package.nix
Normal file
61
pkgs/by-name/ol/ollaya/package.nix
Normal 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;
|
||||
};
|
||||
})
|
||||
@@ -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";
|
||||
};
|
||||
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -36,7 +36,7 @@ buildFHSEnv {
|
||||
libgcc
|
||||
krb5.lib
|
||||
lttng-ust.out
|
||||
openssl_3.out
|
||||
openssl_3_5.out
|
||||
icu76
|
||||
plasticscm-theme
|
||||
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
};
|
||||
})
|
||||
|
||||
@@ -144,5 +144,6 @@ symlinkJoin {
|
||||
mainProgram
|
||||
platforms
|
||||
;
|
||||
identifiers = { inherit (prismlauncher'.meta.identifiers) cpeParts; };
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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}"
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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=";
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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=";
|
||||
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
})
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -111,7 +111,7 @@ effectiveBuildPythonApplication rec {
|
||||
owner = "Xpra-org";
|
||||
repo = "xpra";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-OXcZs2bt+ub59buDkw56A3gfOnDHSYP7RBAFOBvwrKY=";
|
||||
hash = "sha256-TXqnheJjq3WZZffbEPjS5/u/02OlJkDJ9IqyCabYr1E=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -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
|
||||
'';
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -82,9 +82,14 @@ makeScopeWithSplicing' {
|
||||
inherit (pkgs.callPackages ./hooks { })
|
||||
beamCopySourceHook
|
||||
beamModuleInstallHook
|
||||
mixAppConfigPatchHook
|
||||
mixBuildDirHook
|
||||
mixCompileHook
|
||||
mixAppConfigPatchHook
|
||||
mixDepsCompileHook
|
||||
mixEscriptSetupHook
|
||||
mixFodDepsSetupHook
|
||||
mixNixDepsSetupHook
|
||||
mixReleaseSetupHook
|
||||
rebar3CompileHook
|
||||
rebarDevendorPatchHook
|
||||
;
|
||||
|
||||
@@ -13,4 +13,6 @@ beamCopySourceHook() {
|
||||
echo "Finished beamCopySourceHook"
|
||||
}
|
||||
|
||||
postPatchHooks+=(beamCopySourceHook)
|
||||
if [ -z "${dontBeamCopySource-}" ]; then
|
||||
postPatchHooks+=(beamCopySourceHook)
|
||||
fi
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -16,4 +16,6 @@ mixAppConfigPatchHook() {
|
||||
echo "Finished mixAppConfigPatchHook"
|
||||
}
|
||||
|
||||
prePatchHooks+=(mixAppConfigPatchHook)
|
||||
if [ -z "${dontMixAppConfigPatch-}" ]; then
|
||||
prePatchHooks+=(mixAppConfigPatchHook)
|
||||
fi
|
||||
|
||||
@@ -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)
|
||||
|
||||
19
pkgs/development/beam-modules/hooks/mix-deps-compile-hook.sh
Executable file
19
pkgs/development/beam-modules/hooks/mix-deps-compile-hook.sh
Executable 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
|
||||
@@ -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
|
||||
29
pkgs/development/beam-modules/hooks/mix-fod-deps-setup-hook.sh
Executable file
29
pkgs/development/beam-modules/hooks/mix-fod-deps-setup-hook.sh
Executable 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)
|
||||
21
pkgs/development/beam-modules/hooks/mix-nix-deps-setup-hook.sh
Executable file
21
pkgs/development/beam-modules/hooks/mix-nix-deps-setup-hook.sh
Executable 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)
|
||||
@@ -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
|
||||
@@ -10,4 +10,6 @@ rebarDevendorPatchHook() {
|
||||
echo "Finished rebarDevendorPatchHook"
|
||||
}
|
||||
|
||||
prePatchHooks+=(rebarDevendorPatchHook)
|
||||
if [ -z "${dontRebarDevendorPatch-}" ]; then
|
||||
prePatchHooks+=(rebarDevendorPatchHook)
|
||||
fi
|
||||
|
||||
@@ -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
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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
|
||||
(
|
||||
|
||||
@@ -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;
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
Reference in New Issue
Block a user