0
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-07-14 06:00:33 +03:00

Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot] 2025-03-11 00:15:17 +00:00 committed by GitHub
commit 97bfcc4bcd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
81 changed files with 1589 additions and 2562 deletions

View file

@ -439,7 +439,7 @@ in
]); ]);
options = { options = {
shared_preload_libraries = mkOption { shared_preload_libraries = mkOption {
type = nullOr (coercedTo (listOf str) (concatStringsSep ", ") str); type = nullOr (coercedTo (listOf str) (concatStringsSep ",") commas);
default = null; default = null;
example = literalExpression ''[ "auto_explain" "anon" ]''; example = literalExpression ''[ "auto_explain" "anon" ]'';
description = '' description = ''

View file

@ -381,6 +381,14 @@ let
''; '';
}; };
autoRemoveOnStop = mkOption {
type = types.bool;
default = true;
description = ''
Automatically remove the container when it is stopped or killed
'';
};
networks = mkOption { networks = mkOption {
type = with types; listOf str; type = with types; listOf str;
default = [ ]; default = [ ];
@ -468,7 +476,6 @@ let
++ map escapeShellArg container.preRunExtraOptions ++ map escapeShellArg container.preRunExtraOptions
++ [ ++ [
"run" "run"
"--rm"
"--name=${escapedName}" "--name=${escapedName}"
"--log-driver=${container.log-driver}" "--log-driver=${container.log-driver}"
] ]
@ -489,6 +496,7 @@ let
++ (mapAttrsToList (k: v: "-l ${escapeShellArg k}=${escapeShellArg v}") container.labels) ++ (mapAttrsToList (k: v: "-l ${escapeShellArg k}=${escapeShellArg v}") container.labels)
++ optional (container.workdir != null) "-w ${escapeShellArg container.workdir}" ++ optional (container.workdir != null) "-w ${escapeShellArg container.workdir}"
++ optional (container.privileged) "--privileged" ++ optional (container.privileged) "--privileged"
++ optional (container.autoRemoveOnStop) "--rm"
++ mapAttrsToList (k: _: "--cap-add=${escapeShellArg k}") ( ++ mapAttrsToList (k: _: "--cap-add=${escapeShellArg k}") (
filterAttrs (_: v: v == true) container.capabilities filterAttrs (_: v: v == true) container.capabilities
) )

View file

@ -190,7 +190,7 @@ in {
avahi = handleTest ./avahi.nix {}; avahi = handleTest ./avahi.nix {};
avahi-with-resolved = handleTest ./avahi.nix { networkd = true; }; avahi-with-resolved = handleTest ./avahi.nix { networkd = true; };
ayatana-indicators = runTest ./ayatana-indicators.nix; ayatana-indicators = runTest ./ayatana-indicators.nix;
babeld = handleTest ./babeld.nix {}; babeld = runTest ./babeld.nix;
bazarr = handleTest ./bazarr.nix {}; bazarr = handleTest ./bazarr.nix {};
bcachefs = handleTestOn ["x86_64-linux" "aarch64-linux"] ./bcachefs.nix {}; bcachefs = handleTestOn ["x86_64-linux" "aarch64-linux"] ./bcachefs.nix {};
beanstalkd = handleTest ./beanstalkd.nix {}; beanstalkd = handleTest ./beanstalkd.nix {};
@ -212,7 +212,7 @@ in {
boot-stage2 = handleTest ./boot-stage2.nix {}; boot-stage2 = handleTest ./boot-stage2.nix {};
borgbackup = handleTest ./borgbackup.nix {}; borgbackup = handleTest ./borgbackup.nix {};
borgmatic = handleTest ./borgmatic.nix {}; borgmatic = handleTest ./borgmatic.nix {};
botamusique = handleTest ./botamusique.nix {}; botamusique = runTest ./botamusique.nix;
bpf = handleTestOn ["x86_64-linux" "aarch64-linux"] ./bpf.nix {}; bpf = handleTestOn ["x86_64-linux" "aarch64-linux"] ./bpf.nix {};
bpftune = handleTest ./bpftune.nix {}; bpftune = handleTest ./bpftune.nix {};
breitbandmessung = handleTest ./breitbandmessung.nix {}; breitbandmessung = handleTest ./breitbandmessung.nix {};
@ -387,11 +387,27 @@ in {
filesystems-overlayfs = runTest ./filesystems-overlayfs.nix; filesystems-overlayfs = runTest ./filesystems-overlayfs.nix;
firefly-iii = handleTest ./firefly-iii.nix {}; firefly-iii = handleTest ./firefly-iii.nix {};
firefly-iii-data-importer = handleTest ./firefly-iii-data-importer.nix {}; firefly-iii-data-importer = handleTest ./firefly-iii-data-importer.nix {};
firefox = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox; }; firefox = runTest {
firefox-beta = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox-beta; }; imports = [./firefox.nix ];
firefox-devedition = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox-devedition; }; _module.args.firefoxPackage = pkgs.firefox;
firefox-esr = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox-esr; }; # used in `tested` job };
firefox-esr-128 = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox-esr-128; }; firefox-beta = runTest {
imports = [ ./firefox.nix ] ;
_module.args.firefoxPackage = pkgs.firefox-beta;
};
firefox-devedition = runTest {
imports = [ ./firefox.nix ];
_module.args.firefoxPackage = pkgs.firefox-devedition;
};
firefox-esr = runTest {
# used in `tested` job
imports = [ ./firefox.nix ] ;
_module.args.firefoxPackage = pkgs.firefox-esr;
};
firefox-esr-128 = runTest {
imports = [ ./firefox.nix ] ;
_module.args.firefoxPackage = pkgs.firefox-esr-128;
};
firefoxpwa = handleTest ./firefoxpwa.nix {}; firefoxpwa = handleTest ./firefoxpwa.nix {};
firejail = handleTest ./firejail.nix {}; firejail = handleTest ./firejail.nix {};
firewall = handleTest ./firewall.nix { nftables = false; }; firewall = handleTest ./firewall.nix { nftables = false; };
@ -444,7 +460,7 @@ in {
gnupg = handleTest ./gnupg.nix {}; gnupg = handleTest ./gnupg.nix {};
goatcounter = handleTest ./goatcounter.nix {}; goatcounter = handleTest ./goatcounter.nix {};
go-camo = handleTest ./go-camo.nix { }; go-camo = handleTest ./go-camo.nix { };
go-neb = handleTest ./go-neb.nix {}; go-neb = runTest ./go-neb.nix;
gobgpd = handleTest ./gobgpd.nix {}; gobgpd = handleTest ./gobgpd.nix {};
gocd-agent = handleTest ./gocd-agent.nix {}; gocd-agent = handleTest ./gocd-agent.nix {};
gocd-server = handleTest ./gocd-server.nix {}; gocd-server = handleTest ./gocd-server.nix {};
@ -559,7 +575,7 @@ in {
kavita = handleTest ./kavita.nix {}; kavita = handleTest ./kavita.nix {};
kbd-setfont-decompress = handleTest ./kbd-setfont-decompress.nix {}; kbd-setfont-decompress = handleTest ./kbd-setfont-decompress.nix {};
kbd-update-search-paths-patch = handleTest ./kbd-update-search-paths-patch.nix {}; kbd-update-search-paths-patch = handleTest ./kbd-update-search-paths-patch.nix {};
kea = handleTest ./kea.nix {}; kea = runTest ./kea.nix;
keepalived = handleTest ./keepalived.nix {}; keepalived = handleTest ./keepalived.nix {};
keepassxc = handleTest ./keepassxc.nix {}; keepassxc = handleTest ./keepassxc.nix {};
kerberos = handleTest ./kerberos/default.nix {}; kerberos = handleTest ./kerberos/default.nix {};
@ -573,7 +589,7 @@ in {
keymap = handleTest ./keymap.nix {}; keymap = handleTest ./keymap.nix {};
kimai = handleTest ./kimai.nix {}; kimai = handleTest ./kimai.nix {};
kmonad = runTest ./kmonad.nix; kmonad = runTest ./kmonad.nix;
knot = handleTest ./knot.nix {}; knot = runTest ./knot.nix;
komga = handleTest ./komga.nix {}; komga = handleTest ./komga.nix {};
krb5 = discoverTests (import ./krb5); krb5 = discoverTests (import ./krb5);
ksm = handleTest ./ksm.nix {}; ksm = handleTest ./ksm.nix {};
@ -887,7 +903,7 @@ in {
phylactery = handleTest ./web-apps/phylactery.nix {}; phylactery = handleTest ./web-apps/phylactery.nix {};
pict-rs = handleTest ./pict-rs.nix {}; pict-rs = handleTest ./pict-rs.nix {};
pingvin-share = handleTest ./pingvin-share.nix {} ; pingvin-share = handleTest ./pingvin-share.nix {} ;
pinnwand = handleTest ./pinnwand.nix {}; pinnwand = runTest ./pinnwand.nix;
plantuml-server = handleTest ./plantuml-server.nix {}; plantuml-server = handleTest ./plantuml-server.nix {};
plasma-bigscreen = handleTest ./plasma-bigscreen.nix {}; plasma-bigscreen = handleTest ./plasma-bigscreen.nix {};
plasma5 = handleTest ./plasma5.nix {}; plasma5 = handleTest ./plasma5.nix {};
@ -1020,7 +1036,7 @@ in {
slurm = handleTest ./slurm.nix {}; slurm = handleTest ./slurm.nix {};
snmpd = handleTest ./snmpd.nix {}; snmpd = handleTest ./snmpd.nix {};
smokeping = handleTest ./smokeping.nix {}; smokeping = handleTest ./smokeping.nix {};
snapcast = handleTest ./snapcast.nix {}; snapcast = runTest ./snapcast.nix;
snapper = handleTest ./snapper.nix {}; snapper = handleTest ./snapper.nix {};
snipe-it = runTest ./web-apps/snipe-it.nix; snipe-it = runTest ./web-apps/snipe-it.nix;
soapui = handleTest ./soapui.nix {}; soapui = handleTest ./soapui.nix {};

View file

@ -1,210 +1,211 @@
import ./make-test-python.nix ( {
{ pkgs, lib, ... }: pkgs,
{ ...
name = "babeld"; }:
meta = with pkgs.lib.maintainers; { {
maintainers = [ hexa ]; name = "babeld";
}; meta = with pkgs.lib.maintainers; {
maintainers = [ hexa ];
};
nodes = { nodes = {
client = client =
{ pkgs, lib, ... }: { lib, ... }:
{ {
virtualisation.vlans = [ 10 ]; virtualisation.vlans = [ 10 ];
networking = { networking = {
useDHCP = false; useDHCP = false;
interfaces."eth1" = { interfaces."eth1" = {
ipv4.addresses = lib.mkForce [ ipv4.addresses = lib.mkForce [
{ {
address = "192.168.10.2"; address = "192.168.10.2";
prefixLength = 24; prefixLength = 24;
} }
]; ];
ipv4.routes = lib.mkForce [ ipv4.routes = lib.mkForce [
{ {
address = "0.0.0.0"; address = "0.0.0.0";
prefixLength = 0; prefixLength = 0;
via = "192.168.10.1"; via = "192.168.10.1";
} }
]; ];
ipv6.addresses = lib.mkForce [ ipv6.addresses = lib.mkForce [
{ {
address = "2001:db8:10::2"; address = "2001:db8:10::2";
prefixLength = 64; prefixLength = 64;
} }
]; ];
ipv6.routes = lib.mkForce [ ipv6.routes = lib.mkForce [
{ {
address = "::"; address = "::";
prefixLength = 0; prefixLength = 0;
via = "2001:db8:10::1"; via = "2001:db8:10::1";
} }
]; ];
}; };
};
};
local_router =
{ lib, ... }:
{
virtualisation.vlans = [
10
20
];
networking = {
useDHCP = false;
firewall.enable = false;
interfaces."eth1" = {
ipv4.addresses = lib.mkForce [
{
address = "192.168.10.1";
prefixLength = 24;
}
];
ipv6.addresses = lib.mkForce [
{
address = "2001:db8:10::1";
prefixLength = 64;
}
];
};
interfaces."eth2" = {
ipv4.addresses = lib.mkForce [
{
address = "192.168.20.1";
prefixLength = 24;
}
];
ipv6.addresses = lib.mkForce [
{
address = "2001:db8:20::1";
prefixLength = 64;
}
];
}; };
}; };
local_router = services.babeld = {
{ pkgs, lib, ... }: enable = true;
{ interfaces.eth2 = {
virtualisation.vlans = [ hello-interval = 1;
10 type = "wired";
20 };
]; extraConfig = ''
local-port-readwrite 33123
networking = { import-table 254 # main
useDHCP = false; export-table 254 # main
firewall.enable = false;
interfaces."eth1" = { in ip 192.168.10.0/24 deny
ipv4.addresses = lib.mkForce [ in ip 192.168.20.0/24 deny
{ in ip 2001:db8:10::/64 deny
address = "192.168.10.1"; in ip 2001:db8:20::/64 deny
prefixLength = 24;
}
];
ipv6.addresses = lib.mkForce [
{
address = "2001:db8:10::1";
prefixLength = 64;
}
];
};
interfaces."eth2" = { in ip 192.168.30.0/24 allow
ipv4.addresses = lib.mkForce [ in ip 2001:db8:30::/64 allow
{
address = "192.168.20.1"; in deny
prefixLength = 24;
} redistribute local proto 2
]; redistribute local deny
ipv6.addresses = lib.mkForce [ '';
{ };
address = "2001:db8:20::1"; };
prefixLength = 64; remote_router =
} { lib, ... }:
]; {
}; virtualisation.vlans = [
20
30
];
networking = {
useDHCP = false;
firewall.enable = false;
interfaces."eth1" = {
ipv4.addresses = lib.mkForce [
{
address = "192.168.20.2";
prefixLength = 24;
}
];
ipv6.addresses = lib.mkForce [
{
address = "2001:db8:20::2";
prefixLength = 64;
}
];
}; };
services.babeld = { interfaces."eth2" = {
enable = true; ipv4.addresses = lib.mkForce [
interfaces.eth2 = { {
hello-interval = 1; address = "192.168.30.1";
type = "wired"; prefixLength = 24;
}; }
extraConfig = '' ];
local-port-readwrite 33123 ipv6.addresses = lib.mkForce [
{
import-table 254 # main address = "2001:db8:30::1";
export-table 254 # main prefixLength = 64;
}
in ip 192.168.10.0/24 deny ];
in ip 192.168.20.0/24 deny
in ip 2001:db8:10::/64 deny
in ip 2001:db8:20::/64 deny
in ip 192.168.30.0/24 allow
in ip 2001:db8:30::/64 allow
in deny
redistribute local proto 2
redistribute local deny
'';
}; };
}; };
remote_router =
{ pkgs, lib, ... }:
{
virtualisation.vlans = [
20
30
];
networking = { services.babeld = {
useDHCP = false; enable = true;
firewall.enable = false; interfaces.eth1 = {
hello-interval = 1;
interfaces."eth1" = { type = "wired";
ipv4.addresses = lib.mkForce [
{
address = "192.168.20.2";
prefixLength = 24;
}
];
ipv6.addresses = lib.mkForce [
{
address = "2001:db8:20::2";
prefixLength = 64;
}
];
};
interfaces."eth2" = {
ipv4.addresses = lib.mkForce [
{
address = "192.168.30.1";
prefixLength = 24;
}
];
ipv6.addresses = lib.mkForce [
{
address = "2001:db8:30::1";
prefixLength = 64;
}
];
};
}; };
extraConfig = ''
local-port-readwrite 33123
services.babeld = { import-table 254 # main
enable = true; export-table 254 # main
interfaces.eth1 = {
hello-interval = 1;
type = "wired";
};
extraConfig = ''
local-port-readwrite 33123
import-table 254 # main in ip 192.168.20.0/24 deny
export-table 254 # main in ip 192.168.30.0/24 deny
in ip 2001:db8:20::/64 deny
in ip 2001:db8:30::/64 deny
in ip 192.168.20.0/24 deny in ip 192.168.10.0/24 allow
in ip 192.168.30.0/24 deny in ip 2001:db8:10::/64 allow
in ip 2001:db8:20::/64 deny
in ip 2001:db8:30::/64 deny
in ip 192.168.10.0/24 allow in deny
in ip 2001:db8:10::/64 allow
in deny
redistribute local proto 2
redistribute local deny
'';
};
redistribute local proto 2
redistribute local deny
'';
}; };
};
testScript = '' };
start_all() };
local_router.wait_for_unit("babeld.service") testScript = ''
remote_router.wait_for_unit("babeld.service") start_all()
local_router.wait_until_succeeds("ip route get 192.168.30.1") local_router.wait_for_unit("babeld.service")
local_router.wait_until_succeeds("ip route get 2001:db8:30::1") remote_router.wait_for_unit("babeld.service")
remote_router.wait_until_succeeds("ip route get 192.168.10.1") local_router.wait_until_succeeds("ip route get 192.168.30.1")
remote_router.wait_until_succeeds("ip route get 2001:db8:10::1") local_router.wait_until_succeeds("ip route get 2001:db8:30::1")
client.succeed("ping -c1 192.168.30.1") remote_router.wait_until_succeeds("ip route get 192.168.10.1")
client.succeed("ping -c1 2001:db8:30::1") remote_router.wait_until_succeeds("ip route get 2001:db8:10::1")
remote_router.succeed("ping -c1 192.168.10.2") client.succeed("ping -c1 192.168.30.1")
remote_router.succeed("ping -c1 2001:db8:10::2") client.succeed("ping -c1 2001:db8:30::1")
'';
} remote_router.succeed("ping -c1 192.168.10.2")
) remote_router.succeed("ping -c1 2001:db8:10::2")
'';
}

View file

@ -1,55 +1,57 @@
import ./make-test-python.nix ( {
{ pkgs, lib, ... }: pkgs,
lib,
...
}:
{ {
name = "botamusique"; name = "botamusique";
meta.maintainers = with lib.maintainers; [ hexa ]; meta.maintainers = with lib.maintainers; [ hexa ];
nodes = { nodes = {
machine = machine =
{ config, ... }: { config, ... }:
{ {
networking.extraHosts = '' networking.extraHosts = ''
127.0.0.1 all.api.radio-browser.info 127.0.0.1 all.api.radio-browser.info
''; '';
services.murmur = { services.murmur = {
enable = true; enable = true;
registerName = "NixOS tests"; registerName = "NixOS tests";
}; };
services.botamusique = { services.botamusique = {
enable = true; enable = true;
settings = { settings = {
server = { server = {
channel = "NixOS tests"; channel = "NixOS tests";
}; };
bot = { bot = {
version = false; version = false;
auto_check_update = false; auto_check_update = false;
};
}; };
}; };
}; };
}; };
};
testScript = '' testScript = ''
start_all() start_all()
machine.wait_for_unit("murmur.service") machine.wait_for_unit("murmur.service")
machine.wait_for_unit("botamusique.service") machine.wait_for_unit("botamusique.service")
machine.sleep(10) machine.sleep(10)
machine.wait_until_succeeds( machine.wait_until_succeeds(
"journalctl -u murmur.service -e | grep -q '<1:botamusique(-1)> Authenticated'" "journalctl -u murmur.service -e | grep -q '<1:botamusique(-1)> Authenticated'"
) )
with subtest("Check systemd hardening"): with subtest("Check systemd hardening"):
output = machine.execute("systemctl show botamusique.service")[1] output = machine.execute("systemctl show botamusique.service")[1]
machine.log(output) machine.log(output)
output = machine.execute("systemd-analyze security botamusique.service")[1] output = machine.execute("systemd-analyze security botamusique.service")[1]
machine.log(output) machine.log(output)
''; '';
} }
)

View file

@ -1,4 +1,9 @@
import ./make-test-python.nix ({ lib, pkgs, firefoxPackage, ... }: {
lib,
pkgs,
firefoxPackage,
...
}:
{ {
name = firefoxPackage.pname; name = firefoxPackage.pname;
@ -9,7 +14,8 @@ import ./make-test-python.nix ({ lib, pkgs, firefoxPackage, ... }:
nodes.machine = nodes.machine =
{ pkgs, ... }: { pkgs, ... }:
{ imports = [ ./common/x11.nix ]; {
imports = [ ./common/x11.nix ];
environment.systemPackages = [ pkgs.xdotool ]; environment.systemPackages = [ pkgs.xdotool ];
programs.firefox = { programs.firefox = {
@ -31,9 +37,11 @@ import ./make-test-python.nix ({ lib, pkgs, firefoxPackage, ... }:
}; };
testScript = let testScript =
exe = lib.getExe firefoxPackage; let
in '' exe = lib.getExe firefoxPackage;
in
''
from contextlib import contextmanager from contextlib import contextmanager
@ -97,4 +105,4 @@ import ./make-test-python.nix ({ lib, pkgs, firefoxPackage, ... }:
machine.screenshot("screen") machine.screenshot("screen")
''; '';
}) }

View file

@ -1,53 +1,54 @@
import ./make-test-python.nix ( {
{ pkgs, ... }: pkgs,
{ ...
name = "go-neb"; }:
meta = with pkgs.lib.maintainers; { {
maintainers = [ name = "go-neb";
hexa meta = with pkgs.lib.maintainers; {
maralorn maintainers = [
]; hexa
}; maralorn
];
};
nodes = { nodes = {
server = { server = {
services.go-neb = { services.go-neb = {
enable = true; enable = true;
baseUrl = "http://localhost"; baseUrl = "http://localhost";
secretFile = pkgs.writeText "secrets" "ACCESS_TOKEN=changeme"; secretFile = pkgs.writeText "secrets" "ACCESS_TOKEN=changeme";
config = { config = {
clients = [ clients = [
{ {
UserId = "@test:localhost"; UserId = "@test:localhost";
AccessToken = "$ACCESS_TOKEN"; AccessToken = "$ACCESS_TOKEN";
HomeServerUrl = "http://localhost"; HomeServerUrl = "http://localhost";
Sync = false; Sync = false;
AutoJoinRooms = false; AutoJoinRooms = false;
DisplayName = "neverbeseen"; DisplayName = "neverbeseen";
} }
]; ];
services = [ services = [
{ {
ID = "wikipedia_service"; ID = "wikipedia_service";
Type = "wikipedia"; Type = "wikipedia";
UserID = "@test:localhost"; UserID = "@test:localhost";
Config = { }; Config = { };
} }
]; ];
};
}; };
}; };
}; };
};
testScript = '' testScript = ''
start_all() start_all()
server.wait_for_unit("go-neb.service") server.wait_for_unit("go-neb.service")
server.wait_until_succeeds("curl -fL http://localhost:4050/services/hooks/d2lraXBlZGlhX3NlcnZpY2U") server.wait_until_succeeds("curl -fL http://localhost:4050/services/hooks/d2lraXBlZGlhX3NlcnZpY2U")
server.succeed( server.succeed(
"journalctl -eu go-neb -o cat | grep -q service_id=wikipedia_service", "journalctl -eu go-neb -o cat | grep -q service_id=wikipedia_service",
"grep -q changeme /var/run/go-neb/config.yaml", "grep -q changeme /var/run/go-neb/config.yaml",
) )
''; '';
} }
)

View file

@ -5,231 +5,233 @@
# that the nameserver can resolve the clients fqdn to the correct IP # that the nameserver can resolve the clients fqdn to the correct IP
# address. # address.
import ./make-test-python.nix ( {
{ pkgs, lib, ... }: pkgs,
{ lib,
meta.maintainers = with lib.maintainers; [ hexa ]; ...
}:
{
meta.maintainers = with lib.maintainers; [ hexa ];
name = "kea"; name = "kea";
nodes = { nodes = {
router = router =
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
virtualisation.vlans = [ 1 ]; virtualisation.vlans = [ 1 ];
networking = { networking = {
useDHCP = false; useDHCP = false;
firewall.allowedUDPPorts = [ 67 ]; firewall.allowedUDPPorts = [ 67 ];
}; };
systemd.network = { systemd.network = {
enable = true; enable = true;
networks = { networks = {
"01-eth1" = { "01-eth1" = {
name = "eth1"; name = "eth1";
networkConfig = { networkConfig = {
Address = "10.0.0.1/29"; Address = "10.0.0.1/29";
};
}; };
}; };
}; };
};
services.kea.dhcp4 = { services.kea.dhcp4 = {
enable = true; enable = true;
settings = { settings = {
valid-lifetime = 3600; valid-lifetime = 3600;
renew-timer = 900; renew-timer = 900;
rebind-timer = 1800; rebind-timer = 1800;
lease-database = { lease-database = {
type = "memfile"; type = "memfile";
persist = true; persist = true;
name = "/var/lib/kea/dhcp4.leases"; name = "/var/lib/kea/dhcp4.leases";
}; };
control-socket = { control-socket = {
socket-type = "unix"; socket-type = "unix";
socket-name = "/run/kea/dhcp4.sock"; socket-name = "/run/kea/dhcp4.sock";
}; };
interfaces-config = { interfaces-config = {
dhcp-socket-type = "raw"; dhcp-socket-type = "raw";
interfaces = [ interfaces = [
"eth1" "eth1"
];
};
subnet4 = [
{
id = 1;
subnet = "10.0.0.0/29";
pools = [
{
pool = "10.0.0.3 - 10.0.0.3";
}
]; ];
}; }
];
subnet4 = [ # Enable communication between dhcp4 and a local dhcp-ddns
# instance.
# https://kea.readthedocs.io/en/kea-2.2.0/arm/dhcp4-srv.html#ddns-for-dhcpv4
dhcp-ddns = {
enable-updates = true;
};
ddns-send-updates = true;
ddns-qualifying-suffix = "lan.nixos.test.";
};
};
services.kea.dhcp-ddns = {
enable = true;
settings = {
forward-ddns = {
# Configure updates of a forward zone named `lan.nixos.test`
# hosted at the nameserver at 10.0.0.2
# https://kea.readthedocs.io/en/kea-2.2.0/arm/ddns.html#adding-forward-dns-servers
ddns-domains = [
{ {
id = 1; name = "lan.nixos.test.";
subnet = "10.0.0.0/29"; # Use a TSIG key in production!
pools = [ key-name = "";
dns-servers = [
{ {
pool = "10.0.0.3 - 10.0.0.3"; ip-address = "10.0.0.2";
port = 53;
} }
]; ];
} }
]; ];
# Enable communication between dhcp4 and a local dhcp-ddns
# instance.
# https://kea.readthedocs.io/en/kea-2.2.0/arm/dhcp4-srv.html#ddns-for-dhcpv4
dhcp-ddns = {
enable-updates = true;
};
ddns-send-updates = true;
ddns-qualifying-suffix = "lan.nixos.test.";
}; };
}; };
};
services.kea.dhcp-ddns = { services.kea.ctrl-agent = {
enable = true; enable = true;
settings = { settings = {
forward-ddns = { http-host = "127.0.0.1";
# Configure updates of a forward zone named `lan.nixos.test` http-port = 8000;
# hosted at the nameserver at 10.0.0.2 control-sockets.dhcp4 = {
# https://kea.readthedocs.io/en/kea-2.2.0/arm/ddns.html#adding-forward-dns-servers socket-type = "unix";
ddns-domains = [ socket-name = "/run/kea/dhcp4.sock";
{ };
name = "lan.nixos.test."; };
# Use a TSIG key in production! };
key-name = "";
dns-servers = [ services.prometheus.exporters.kea = {
{ enable = true;
ip-address = "10.0.0.2"; controlSocketPaths = [
port = 53; "http://127.0.0.1:8000"
} ];
]; };
} };
];
nameserver =
{ config, pkgs, ... }:
{
virtualisation.vlans = [ 1 ];
networking = {
useDHCP = false;
firewall.allowedUDPPorts = [ 53 ];
};
systemd.network = {
enable = true;
networks = {
"01-eth1" = {
name = "eth1";
networkConfig = {
Address = "10.0.0.2/29";
}; };
}; };
}; };
};
services.kea.ctrl-agent = { services.resolved.enable = false;
enable = true;
settings = { # Set up an authoritative nameserver, serving the `lan.nixos.test`
http-host = "127.0.0.1"; # zone and configure an ACL that allows dynamic updates from
http-port = 8000; # the router's ip address.
control-sockets.dhcp4 = { # This ACL is likely insufficient for production usage. Please
socket-type = "unix"; # use TSIG keys.
socket-name = "/run/kea/dhcp4.sock"; services.knot =
}; let
zone = pkgs.writeTextDir "lan.nixos.test.zone" ''
@ SOA ns.nixos.test nox.nixos.test 0 86400 7200 3600000 172800
@ NS nameserver
nameserver A 10.0.0.3
router A 10.0.0.1
'';
zonesDir = pkgs.buildEnv {
name = "knot-zones";
paths = [ zone ];
}; };
}; in
{
services.prometheus.exporters.kea = {
enable = true; enable = true;
controlSocketPaths = [ extraArgs = [
"http://127.0.0.1:8000" "-v"
]; ];
}; settings = {
}; server.listen = [
"0.0.0.0@53"
nameserver =
{ config, pkgs, ... }:
{
virtualisation.vlans = [ 1 ];
networking = {
useDHCP = false;
firewall.allowedUDPPorts = [ 53 ];
};
systemd.network = {
enable = true;
networks = {
"01-eth1" = {
name = "eth1";
networkConfig = {
Address = "10.0.0.2/29";
};
};
};
};
services.resolved.enable = false;
# Set up an authoritative nameserver, serving the `lan.nixos.test`
# zone and configure an ACL that allows dynamic updates from
# the router's ip address.
# This ACL is likely insufficient for production usage. Please
# use TSIG keys.
services.knot =
let
zone = pkgs.writeTextDir "lan.nixos.test.zone" ''
@ SOA ns.nixos.test nox.nixos.test 0 86400 7200 3600000 172800
@ NS nameserver
nameserver A 10.0.0.3
router A 10.0.0.1
'';
zonesDir = pkgs.buildEnv {
name = "knot-zones";
paths = [ zone ];
};
in
{
enable = true;
extraArgs = [
"-v"
]; ];
settings = {
server.listen = [ log.syslog.any = "info";
"0.0.0.0@53"
acl.dhcp_ddns = {
address = "10.0.0.1";
action = "update";
};
template.default = {
storage = zonesDir;
zonefile-sync = "-1";
zonefile-load = "difference-no-serial";
journal-content = "all";
};
zone."lan.nixos.test" = {
file = "lan.nixos.test.zone";
acl = [
"dhcp_ddns"
]; ];
log.syslog.any = "info";
acl.dhcp_ddns = {
address = "10.0.0.1";
action = "update";
};
template.default = {
storage = zonesDir;
zonefile-sync = "-1";
zonefile-load = "difference-no-serial";
journal-content = "all";
};
zone."lan.nixos.test" = {
file = "lan.nixos.test.zone";
acl = [
"dhcp_ddns"
];
};
}; };
}; };
};
client =
{ config, pkgs, ... }:
{
virtualisation.vlans = [ 1 ];
systemd.services.systemd-networkd.environment.SYSTEMD_LOG_LEVEL = "debug";
networking = {
useNetworkd = true;
useDHCP = false;
firewall.enable = false;
interfaces.eth1.useDHCP = true;
}; };
};
client =
{ config, pkgs, ... }:
{
virtualisation.vlans = [ 1 ];
systemd.services.systemd-networkd.environment.SYSTEMD_LOG_LEVEL = "debug";
networking = {
useNetworkd = true;
useDHCP = false;
firewall.enable = false;
interfaces.eth1.useDHCP = true;
}; };
}; };
testScript = };
{ ... }: testScript =
'' { ... }:
start_all() ''
router.wait_for_unit("kea-dhcp4-server.service") start_all()
client.systemctl("start systemd-networkd-wait-online.service") router.wait_for_unit("kea-dhcp4-server.service")
client.wait_for_unit("systemd-networkd-wait-online.service") client.systemctl("start systemd-networkd-wait-online.service")
client.wait_until_succeeds("ping -c 5 10.0.0.1") client.wait_for_unit("systemd-networkd-wait-online.service")
router.wait_until_succeeds("ping -c 5 10.0.0.3") client.wait_until_succeeds("ping -c 5 10.0.0.1")
nameserver.wait_until_succeeds("kdig +short client.lan.nixos.test @10.0.0.2 | grep -q 10.0.0.3") router.wait_until_succeeds("ping -c 5 10.0.0.3")
router.log(router.execute("curl 127.0.0.1:9547")[1]) nameserver.wait_until_succeeds("kdig +short client.lan.nixos.test @10.0.0.2 | grep -q 10.0.0.3")
router.succeed("curl --no-buffer 127.0.0.1:9547 | grep -qE '^kea_dhcp4_addresses_assigned_total.*1.0$'") router.log(router.execute("curl 127.0.0.1:9547")[1])
''; router.succeed("curl --no-buffer 127.0.0.1:9547 | grep -qE '^kea_dhcp4_addresses_assigned_total.*1.0$'")
} '';
) }

View file

@ -1,254 +1,256 @@
import ./make-test-python.nix ( {
{ pkgs, lib, ... }: pkgs,
let lib,
common = { ...
networking.firewall.enable = false; }:
networking.useDHCP = false; let
}; common = {
exampleZone = pkgs.writeTextDir "example.com.zone" '' networking.firewall.enable = false;
@ SOA ns.example.com. noc.example.com. 2019031301 86400 7200 3600000 172800 networking.useDHCP = false;
@ NS ns1 };
@ NS ns2 exampleZone = pkgs.writeTextDir "example.com.zone" ''
ns1 A 192.168.0.1 @ SOA ns.example.com. noc.example.com. 2019031301 86400 7200 3600000 172800
ns1 AAAA fd00::1 @ NS ns1
ns2 A 192.168.0.2 @ NS ns2
ns2 AAAA fd00::2 ns1 A 192.168.0.1
www A 192.0.2.1 ns1 AAAA fd00::1
www AAAA 2001:DB8::1 ns2 A 192.168.0.2
sub NS ns.example.com. ns2 AAAA fd00::2
''; www A 192.0.2.1
delegatedZone = pkgs.writeTextDir "sub.example.com.zone" '' www AAAA 2001:DB8::1
@ SOA ns.example.com. noc.example.com. 2019031301 86400 7200 3600000 172800 sub NS ns.example.com.
@ NS ns1.example.com. '';
@ NS ns2.example.com. delegatedZone = pkgs.writeTextDir "sub.example.com.zone" ''
@ A 192.0.2.2 @ SOA ns.example.com. noc.example.com. 2019031301 86400 7200 3600000 172800
@ AAAA 2001:DB8::2 @ NS ns1.example.com.
''; @ NS ns2.example.com.
@ A 192.0.2.2
@ AAAA 2001:DB8::2
'';
knotZonesEnv = pkgs.buildEnv { knotZonesEnv = pkgs.buildEnv {
name = "knot-zones"; name = "knot-zones";
paths = [ paths = [
exampleZone exampleZone
delegatedZone delegatedZone
]; ];
}; };
# DO NOT USE pkgs.writeText IN PRODUCTION. This put secrets in the nix store! # DO NOT USE pkgs.writeText IN PRODUCTION. This put secrets in the nix store!
tsigFile = pkgs.writeText "tsig.conf" '' tsigFile = pkgs.writeText "tsig.conf" ''
key: key:
- id: xfr_key - id: xfr_key
algorithm: hmac-sha256 algorithm: hmac-sha256
secret: zOYgOgnzx3TGe5J5I/0kxd7gTcxXhLYMEq3Ek3fY37s= secret: zOYgOgnzx3TGe5J5I/0kxd7gTcxXhLYMEq3Ek3fY37s=
''; '';
in in
{ {
name = "knot"; name = "knot";
meta = with pkgs.lib.maintainers; { meta = with pkgs.lib.maintainers; {
maintainers = [ hexa ]; maintainers = [ hexa ];
}; };
nodes = { nodes = {
primary = primary =
{ lib, ... }: { lib, ... }:
{ {
imports = [ common ]; imports = [ common ];
# trigger sched_setaffinity syscall # trigger sched_setaffinity syscall
virtualisation.cores = 2; virtualisation.cores = 2;
networking.interfaces.eth1 = { networking.interfaces.eth1 = {
ipv4.addresses = lib.mkForce [ ipv4.addresses = lib.mkForce [
{ {
address = "192.168.0.1"; address = "192.168.0.1";
prefixLength = 24; prefixLength = 24;
} }
];
ipv6.addresses = lib.mkForce [
{
address = "fd00::1";
prefixLength = 64;
}
];
};
services.knot.enable = true;
services.knot.extraArgs = [ "-v" ];
services.knot.keyFiles = [ tsigFile ];
services.knot.settings = {
server = {
listen = [
"0.0.0.0@53"
"::@53"
]; ];
ipv6.addresses = lib.mkForce [ listen-quic = [
{ "0.0.0.0@853"
address = "fd00::1"; "::@853"
prefixLength = 64;
}
]; ];
automatic-acl = true;
}; };
services.knot.enable = true;
services.knot.extraArgs = [ "-v" ];
services.knot.keyFiles = [ tsigFile ];
services.knot.settings = {
server = {
listen = [
"0.0.0.0@53"
"::@53"
];
listen-quic = [
"0.0.0.0@853"
"::@853"
];
automatic-acl = true;
};
acl.secondary_acl = { acl.secondary_acl = {
address = "192.168.0.2";
key = "xfr_key";
action = "transfer";
};
remote.secondary.address = "192.168.0.2@53";
template.default = {
storage = knotZonesEnv;
notify = [ "secondary" ];
acl = [ "secondary_acl" ];
dnssec-signing = true;
# Input-only zone files
# https://www.knot-dns.cz/docs/2.8/html/operation.html#example-3
# prevents modification of the zonefiles, since the zonefiles are immutable
zonefile-sync = -1;
zonefile-load = "difference";
journal-content = "changes";
};
zone = {
"example.com".file = "example.com.zone";
"sub.example.com".file = "sub.example.com.zone";
};
log.syslog.any = "info";
};
};
secondary =
{ lib, ... }:
{
imports = [ common ];
networking.interfaces.eth1 = {
ipv4.addresses = lib.mkForce [
{
address = "192.168.0.2"; address = "192.168.0.2";
key = "xfr_key"; prefixLength = 24;
action = "transfer"; }
}; ];
ipv6.addresses = lib.mkForce [
remote.secondary.address = "192.168.0.2@53"; {
address = "fd00::2";
template.default = { prefixLength = 64;
storage = knotZonesEnv; }
notify = [ "secondary" ]; ];
acl = [ "secondary_acl" ];
dnssec-signing = true;
# Input-only zone files
# https://www.knot-dns.cz/docs/2.8/html/operation.html#example-3
# prevents modification of the zonefiles, since the zonefiles are immutable
zonefile-sync = -1;
zonefile-load = "difference";
journal-content = "changes";
};
zone = {
"example.com".file = "example.com.zone";
"sub.example.com".file = "sub.example.com.zone";
};
log.syslog.any = "info";
};
}; };
services.knot.enable = true;
secondary = services.knot.keyFiles = [ tsigFile ];
{ lib, ... }: services.knot.extraArgs = [ "-v" ];
{ services.knot.settings = {
imports = [ common ]; server = {
networking.interfaces.eth1 = { automatic-acl = true;
ipv4.addresses = lib.mkForce [
{
address = "192.168.0.2";
prefixLength = 24;
}
];
ipv6.addresses = lib.mkForce [
{
address = "fd00::2";
prefixLength = 64;
}
];
}; };
services.knot.enable = true;
services.knot.keyFiles = [ tsigFile ];
services.knot.extraArgs = [ "-v" ];
services.knot.settings = {
server = {
automatic-acl = true;
};
xdp = { xdp = {
listen = [ listen = [
"eth1" "eth1"
]; ];
tcp = true; tcp = true;
};
remote.primary = {
address = "192.168.0.1@53";
key = "xfr_key";
};
remote.primary-quic = {
address = "192.168.0.1@853";
key = "xfr_key";
quic = true;
};
template.default = {
# zonefileless setup
# https://www.knot-dns.cz/docs/2.8/html/operation.html#example-2
zonefile-sync = "-1";
zonefile-load = "none";
journal-content = "all";
};
zone = {
"example.com" = {
master = "primary";
file = "example.com.zone";
};
"sub.example.com" = {
master = "primary-quic";
file = "sub.example.com.zone";
};
};
log.syslog.any = "debug";
}; };
remote.primary = {
address = "192.168.0.1@53";
key = "xfr_key";
};
remote.primary-quic = {
address = "192.168.0.1@853";
key = "xfr_key";
quic = true;
};
template.default = {
# zonefileless setup
# https://www.knot-dns.cz/docs/2.8/html/operation.html#example-2
zonefile-sync = "-1";
zonefile-load = "none";
journal-content = "all";
};
zone = {
"example.com" = {
master = "primary";
file = "example.com.zone";
};
"sub.example.com" = {
master = "primary-quic";
file = "sub.example.com.zone";
};
};
log.syslog.any = "debug";
}; };
client = };
{ lib, nodes, ... }: client =
{ { lib, nodes, ... }:
imports = [ common ]; {
networking.interfaces.eth1 = { imports = [ common ];
ipv4.addresses = [ networking.interfaces.eth1 = {
{ ipv4.addresses = [
address = "192.168.0.3"; {
prefixLength = 24; address = "192.168.0.3";
} prefixLength = 24;
]; }
ipv6.addresses = [ ];
{ ipv6.addresses = [
address = "fd00::3"; {
prefixLength = 64; address = "fd00::3";
} prefixLength = 64;
]; }
}; ];
environment.systemPackages = [ pkgs.knot-dns ];
}; };
}; environment.systemPackages = [ pkgs.knot-dns ];
};
};
testScript = testScript =
{ nodes, ... }: { nodes, ... }:
let let
primary4 = (lib.head nodes.primary.config.networking.interfaces.eth1.ipv4.addresses).address; primary4 = (lib.head nodes.primary.config.networking.interfaces.eth1.ipv4.addresses).address;
primary6 = (lib.head nodes.primary.config.networking.interfaces.eth1.ipv6.addresses).address; primary6 = (lib.head nodes.primary.config.networking.interfaces.eth1.ipv6.addresses).address;
secondary4 = (lib.head nodes.secondary.config.networking.interfaces.eth1.ipv4.addresses).address; secondary4 = (lib.head nodes.secondary.config.networking.interfaces.eth1.ipv4.addresses).address;
secondary6 = (lib.head nodes.secondary.config.networking.interfaces.eth1.ipv6.addresses).address; secondary6 = (lib.head nodes.secondary.config.networking.interfaces.eth1.ipv6.addresses).address;
in in
'' ''
import re import re
start_all() start_all()
client.wait_for_unit("network.target") client.wait_for_unit("network.target")
primary.wait_for_unit("knot.service") primary.wait_for_unit("knot.service")
secondary.wait_for_unit("knot.service") secondary.wait_for_unit("knot.service")
for zone in ("example.com.", "sub.example.com."): for zone in ("example.com.", "sub.example.com."):
secondary.wait_until_succeeds( secondary.wait_until_succeeds(
f"knotc zone-status {zone} | grep -q 'serial: 2019031302'" f"knotc zone-status {zone} | grep -q 'serial: 2019031302'"
) )
def test(host, query_type, query, pattern): def test(host, query_type, query, pattern):
out = client.succeed(f"khost -t {query_type} {query} {host}").strip() out = client.succeed(f"khost -t {query_type} {query} {host}").strip()
client.log(f"{host} replied with: {out}") client.log(f"{host} replied with: {out}")
assert re.search(pattern, out), f'Did not match "{pattern}"' assert re.search(pattern, out), f'Did not match "{pattern}"'
for host in ("${primary4}", "${primary6}", "${secondary4}", "${secondary6}"): for host in ("${primary4}", "${primary6}", "${secondary4}", "${secondary6}"):
with subtest(f"Interrogate {host}"): with subtest(f"Interrogate {host}"):
test(host, "SOA", "example.com", r"start of authority.*noc\.example\.com\.") test(host, "SOA", "example.com", r"start of authority.*noc\.example\.com\.")
test(host, "A", "example.com", r"has no [^ ]+ record") test(host, "A", "example.com", r"has no [^ ]+ record")
test(host, "AAAA", "example.com", r"has no [^ ]+ record") test(host, "AAAA", "example.com", r"has no [^ ]+ record")
test(host, "A", "www.example.com", r"address 192.0.2.1$") test(host, "A", "www.example.com", r"address 192.0.2.1$")
test(host, "AAAA", "www.example.com", r"address 2001:db8::1$") test(host, "AAAA", "www.example.com", r"address 2001:db8::1$")
test(host, "NS", "sub.example.com", r"nameserver is ns\d\.example\.com.$") test(host, "NS", "sub.example.com", r"nameserver is ns\d\.example\.com.$")
test(host, "A", "sub.example.com", r"address 192.0.2.2$") test(host, "A", "sub.example.com", r"address 192.0.2.2$")
test(host, "AAAA", "sub.example.com", r"address 2001:db8::2$") test(host, "AAAA", "sub.example.com", r"address 2001:db8::2$")
test(host, "RRSIG", "www.example.com", r"RR set signature is") test(host, "RRSIG", "www.example.com", r"RR set signature is")
test(host, "DNSKEY", "example.com", r"DNSSEC key is") test(host, "DNSKEY", "example.com", r"DNSSEC key is")
primary.log(primary.succeed("systemd-analyze security knot.service | grep -v ''")) primary.log(primary.succeed("systemd-analyze security knot.service | grep -v ''"))
''; '';
} }
)

View file

@ -1,102 +1,103 @@
import ./make-test-python.nix ( {
{ pkgs, ... }: pkgs,
let ...
port = 8000; }:
baseUrl = "http://server:${toString port}"; let
in port = 8000;
{ baseUrl = "http://server:${toString port}";
name = "pinnwand"; in
meta = with pkgs.lib.maintainers; { {
maintainers = [ hexa ]; name = "pinnwand";
}; meta = with pkgs.lib.maintainers; {
maintainers = [ hexa ];
};
nodes = { nodes = {
server = server =
{ config, ... }: { config, ... }:
{ {
networking.firewall.allowedTCPPorts = [ networking.firewall.allowedTCPPorts = [
port port
]; ];
services.pinnwand = { services.pinnwand = {
enable = true; enable = true;
port = port; port = port;
};
}; };
};
client = client =
{ pkgs, ... }: { pkgs, ... }:
{ {
environment.systemPackages = [ environment.systemPackages = [
pkgs.steck pkgs.steck
(pkgs.writers.writePython3Bin "setup-steck.py" (pkgs.writers.writePython3Bin "setup-steck.py"
{ {
libraries = with pkgs.python3.pkgs; [ libraries = with pkgs.python3.pkgs; [
appdirs appdirs
toml toml
]; ];
flakeIgnore = [ flakeIgnore = [
"E501" "E501"
]; ];
}
''
import appdirs
import toml
import os
CONFIG = {
"base": "${baseUrl}/",
"confirm": False,
"magic": True,
"ignore": True
} }
''
import appdirs
import toml
import os
CONFIG = { os.makedirs(appdirs.user_config_dir('steck'))
"base": "${baseUrl}/", with open(os.path.join(appdirs.user_config_dir('steck'), 'steck.toml'), "w") as fd:
"confirm": False, toml.dump(CONFIG, fd)
"magic": True, ''
"ignore": True )
} ];
};
};
os.makedirs(appdirs.user_config_dir('steck')) testScript = ''
with open(os.path.join(appdirs.user_config_dir('steck'), 'steck.toml'), "w") as fd: start_all()
toml.dump(CONFIG, fd)
''
)
];
};
};
testScript = '' server.wait_for_unit("pinnwand.service")
start_all() client.wait_for_unit("network.target")
server.wait_for_unit("pinnwand.service") # create steck.toml config file
client.wait_for_unit("network.target") client.succeed("setup-steck.py")
# create steck.toml config file # wait until the server running pinnwand is reachable
client.succeed("setup-steck.py") client.wait_until_succeeds("ping -c1 server")
# wait until the server running pinnwand is reachable # make sure pinnwand is listening
client.wait_until_succeeds("ping -c1 server") server.wait_for_open_port(${toString port})
# make sure pinnwand is listening # send the contents of /etc/machine-id
server.wait_for_open_port(${toString port}) response = client.succeed("steck paste /etc/machine-id")
# send the contents of /etc/machine-id # parse the steck response
response = client.succeed("steck paste /etc/machine-id") raw_url = None
removal_link = None
for line in response.split("\n"):
if line.startswith("View link:"):
raw_url = f"${baseUrl}/raw/{line.split('/')[-1]}"
if line.startswith("Removal link:"):
removal_link = line.split(":", 1)[1]
# parse the steck response # check whether paste matches what we sent
raw_url = None client.succeed(f"curl {raw_url} > /tmp/machine-id")
removal_link = None client.succeed("diff /tmp/machine-id /etc/machine-id")
for line in response.split("\n"):
if line.startswith("View link:"):
raw_url = f"${baseUrl}/raw/{line.split('/')[-1]}"
if line.startswith("Removal link:"):
removal_link = line.split(":", 1)[1]
# check whether paste matches what we sent # remove paste and check that it's not available any more
client.succeed(f"curl {raw_url} > /tmp/machine-id") client.succeed(f"curl {removal_link}")
client.succeed("diff /tmp/machine-id /etc/machine-id") client.fail(f"curl --fail {raw_url}")
# remove paste and check that it's not available any more server.log(server.execute("systemd-analyze security pinnwand | grep ''")[1])
client.succeed(f"curl {removal_link}") '';
client.fail(f"curl --fail {raw_url}") }
server.log(server.execute("systemd-analyze security pinnwand | grep ''")[1])
'';
}
)

View file

@ -1,93 +1,94 @@
import ./make-test-python.nix ( {
{ pkgs, ... }: pkgs,
...
}:
let let
port = 10004; port = 10004;
tcpPort = 10005; tcpPort = 10005;
httpPort = 10080; httpPort = 10080;
tcpStreamPort = 10006; tcpStreamPort = 10006;
bufferSize = 742; bufferSize = 742;
in in
{ {
name = "snapcast"; name = "snapcast";
meta = with pkgs.lib.maintainers; { meta = with pkgs.lib.maintainers; {
maintainers = [ hexa ]; maintainers = [ hexa ];
}; };
nodes = { nodes = {
server = { server = {
services.snapserver = { services.snapserver = {
enable = true; enable = true;
port = port; port = port;
tcp.port = tcpPort; tcp.port = tcpPort;
http.port = httpPort; http.port = httpPort;
openFirewall = true; openFirewall = true;
buffer = bufferSize; buffer = bufferSize;
streams = { streams = {
mpd = { mpd = {
type = "pipe"; type = "pipe";
location = "/run/snapserver/mpd"; location = "/run/snapserver/mpd";
query.mode = "create"; query.mode = "create";
}; };
bluetooth = { bluetooth = {
type = "pipe"; type = "pipe";
location = "/run/snapserver/bluetooth"; location = "/run/snapserver/bluetooth";
}; };
tcp = { tcp = {
type = "tcp"; type = "tcp";
location = "127.0.0.1:${toString tcpStreamPort}"; location = "127.0.0.1:${toString tcpStreamPort}";
}; };
meta = { meta = {
type = "meta"; type = "meta";
location = "/mpd/bluetooth/tcp"; location = "/mpd/bluetooth/tcp";
};
}; };
}; };
environment.systemPackages = [ pkgs.snapcast ];
};
client = {
environment.systemPackages = [ pkgs.snapcast ];
}; };
environment.systemPackages = [ pkgs.snapcast ];
}; };
client = {
environment.systemPackages = [ pkgs.snapcast ];
};
};
testScript = '' testScript = ''
import json import json
get_rpc_version = {"id": "1", "jsonrpc": "2.0", "method": "Server.GetRPCVersion"} get_rpc_version = {"id": "1", "jsonrpc": "2.0", "method": "Server.GetRPCVersion"}
start_all() start_all()
server.wait_for_unit("snapserver.service") server.wait_for_unit("snapserver.service")
server.wait_until_succeeds("ss -ntl | grep -q ${toString port}") server.wait_until_succeeds("ss -ntl | grep -q ${toString port}")
server.wait_until_succeeds("ss -ntl | grep -q ${toString tcpPort}") server.wait_until_succeeds("ss -ntl | grep -q ${toString tcpPort}")
server.wait_until_succeeds("ss -ntl | grep -q ${toString httpPort}") server.wait_until_succeeds("ss -ntl | grep -q ${toString httpPort}")
server.wait_until_succeeds("ss -ntl | grep -q ${toString tcpStreamPort}") server.wait_until_succeeds("ss -ntl | grep -q ${toString tcpStreamPort}")
with subtest("check that pipes are created"): with subtest("check that pipes are created"):
server.succeed("test -p /run/snapserver/mpd") server.succeed("test -p /run/snapserver/mpd")
server.succeed("test -p /run/snapserver/bluetooth") server.succeed("test -p /run/snapserver/bluetooth")
with subtest("test tcp json-rpc"): with subtest("test tcp json-rpc"):
server.succeed(f"echo '{json.dumps(get_rpc_version)}' | nc -w 1 localhost ${toString tcpPort}") server.succeed(f"echo '{json.dumps(get_rpc_version)}' | nc -w 1 localhost ${toString tcpPort}")
with subtest("test http json-rpc"): with subtest("test http json-rpc"):
server.succeed( server.succeed(
"curl --fail http://localhost:${toString httpPort}/jsonrpc -d '{json.dumps(get_rpc_version)}'" "curl --fail http://localhost:${toString httpPort}/jsonrpc -d '{json.dumps(get_rpc_version)}'"
) )
with subtest("test a ipv6 connection"): with subtest("test a ipv6 connection"):
server.execute("systemd-run --unit=snapcast-local-client snapclient -h ::1 -p ${toString port}") server.execute("systemd-run --unit=snapcast-local-client snapclient -h ::1 -p ${toString port}")
server.wait_until_succeeds( server.wait_until_succeeds(
"journalctl -o cat -u snapserver.service | grep -q 'Hello from'" "journalctl -o cat -u snapserver.service | grep -q 'Hello from'"
) )
server.wait_until_succeeds("journalctl -o cat -u snapcast-local-client | grep -q 'buffer: ${toString bufferSize}'") server.wait_until_succeeds("journalctl -o cat -u snapcast-local-client | grep -q 'buffer: ${toString bufferSize}'")
with subtest("test a connection"): with subtest("test a connection"):
client.execute("systemd-run --unit=snapcast-client snapclient -h server -p ${toString port}") client.execute("systemd-run --unit=snapcast-client snapclient -h server -p ${toString port}")
server.wait_until_succeeds( server.wait_until_succeeds(
"journalctl -o cat -u snapserver.service | grep -q 'Hello from'" "journalctl -o cat -u snapserver.service | grep -q 'Hello from'"
) )
client.wait_until_succeeds("journalctl -o cat -u snapcast-client | grep -q 'buffer: ${toString bufferSize}'") client.wait_until_succeeds("journalctl -o cat -u snapcast-client | grep -q 'buffer: ${toString bufferSize}'")
''; '';
} }
)

View file

@ -14,7 +14,7 @@
# sniprun # sniprun
vimUtils, vimUtils,
substituteAll, replaceVars,
nix-update-script, nix-update-script,
}: }:
let let
@ -58,8 +58,7 @@ vimUtils.buildVimPlugin {
inherit version src; inherit version src;
patches = [ patches = [
(substituteAll { (replaceVars ./fix-paths.patch {
src = ./fix-paths.patch;
sniprun = lib.getExe sniprun-bin; sniprun = lib.getExe sniprun-bin;
}) })
]; ];

View file

@ -4301,8 +4301,8 @@ let
mktplcRef = { mktplcRef = {
name = "sas-lsp"; name = "sas-lsp";
publisher = "SAS"; publisher = "SAS";
version = "1.13.0"; version = "1.13.1";
hash = "sha256-bcj9p/hvzZ1z03D1dXxiyPmGndh3pD7seI5VYHWsvzU="; hash = "sha256-Ol79+z/W4RzAQ0jjDMkxPrg8eOWanOqtIF7ZxNrskOk=";
}; };
meta = { meta = {
changelog = "https://marketplace.visualstudio.com/items/SAS.sas-lsp/changelog"; changelog = "https://marketplace.visualstudio.com/items/SAS.sas-lsp/changelog";

View file

@ -55,13 +55,13 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "dolphin-emu"; pname = "dolphin-emu";
version = "2412"; version = "2503";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "dolphin-emu"; owner = "dolphin-emu";
repo = "dolphin"; repo = "dolphin";
tag = finalAttrs.version; tag = finalAttrs.version;
hash = "sha256-5Eir8EQPGVSg2QXzzuHH9lf7CrV76KwmRsHiDqs6tD4="; hash = "sha256-oqJKXFcsFgoYjUqdk3Z/CIFhOa8w0drcF4JwtHRI1Hs=";
fetchSubmodules = true; fetchSubmodules = true;
}; };

View file

@ -84,13 +84,13 @@ in
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "imagemagick"; pname = "imagemagick";
version = "7.1.1-44"; version = "7.1.1-45";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ImageMagick"; owner = "ImageMagick";
repo = "ImageMagick"; repo = "ImageMagick";
rev = finalAttrs.version; tag = finalAttrs.version;
hash = "sha256-DsJRTLMyjU2mMEGq/2qEJvjdYa698TEZZqkxuWtd/A4="; hash = "sha256-7oE+fkozhTqTagcwpzttKLZoq4gT1nSib4JssRmz3YI=";
}; };
outputs = [ outputs = [

File diff suppressed because it is too large Load diff

View file

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "roxctl"; pname = "roxctl";
version = "4.6.2"; version = "4.6.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "stackrox"; owner = "stackrox";
repo = "stackrox"; repo = "stackrox";
rev = version; rev = version;
sha256 = "sha256-UgwWNacoPSMtZBLnGh/e7tIgXksBgBcCyZJ3XpKUapQ="; sha256 = "sha256-QrQLIqP70IUDY9lOZ0cTBIRYY8mVVW4sRt8522y/q80=";
}; };
vendorHash = "sha256-NqPon1S0GzdyIDMNejIXmlkppR8DnXWNdXuyuiA2Vxo="; vendorHash = "sha256-Zuln5na8MrL+IVOk+NOBrrYJIQ3RincJRYgpAd1WiS8=";
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];

View file

@ -5,6 +5,11 @@
jre, jre,
unzip, unzip,
makeWrapper, makeWrapper,
makeDesktopItem,
copyDesktopItems,
xdg-utils,
imagemagick,
maxMemoryAllocationPool ? "1000M",
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -19,18 +24,70 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ nativeBuildInputs = [
makeWrapper makeWrapper
unzip unzip
]; imagemagick
] ++ lib.optionals stdenv.hostPlatform.isLinux [ copyDesktopItems ];
# The -Xmx1000M comes suggested from their download page: # The -Xmx1000M comes suggested from their download page:
# https://www.cs.waikato.ac.nz/ml/weka/downloading.html # https://www.cs.waikato.ac.nz/ml/weka/downloading.html
installPhase = '' installPhase = ''
runHook preInstall
mkdir -pv $out/share/weka mkdir -pv $out/share/weka
mkdir -p $out/share/icons/hicolor
cp -Rv * $out/share/weka cp -Rv * $out/share/weka
makeWrapper ${jre}/bin/java $out/bin/weka \ makeWrapper ${jre}/bin/java $out/bin/weka \
--add-flags "-Xmx1000M -jar $out/share/weka/weka.jar" --add-flags "-Xmx${maxMemoryAllocationPool} -jar $out/share/weka/weka.jar"
makeWrapper ${jre}/bin/java $out/bin/weka-java \
--add-flags "-Xmx${maxMemoryAllocationPool} -cp $out/share/weka/weka.jar"
${lib.optionalString stdenv.hostPlatform.isLinux "
makeWrapper ${xdg-utils}/bin/xdg-open $out/bin/weka-doc --add-flags $out/share/weka/documentation.html
"}
cat << EOF > $out/bin/weka-home
#!${stdenv.shell}
echo -n $out/share/weka
EOF
chmod ugo+x $out/bin/weka-home
for n in 16 24 32 48 64 96 128 256; do
size=$n"x"$n
mkdir -p $out/share/icons/hicolor/$size/apps
magick convert $out/share/weka/weka.gif -resize $size $out/share/icons/hicolor/$size/apps/weka.png
done;
runHook postInstall
''; '';
desktopItems = [
(makeDesktopItem {
name = "weka";
exec = "weka";
icon = "weka";
desktopName = "WEKA";
categories = [
"Science"
"ArtificialIntelligence"
"ComputerScience"
];
})
(makeDesktopItem {
name = "weka-doc";
exec = "weka-doc";
icon = "weka";
desktopName = "View the WEKA documentation with a web browser";
categories = [
"Science"
"ArtificialIntelligence"
"ComputerScience"
];
})
];
meta = with lib; { meta = with lib; {
homepage = "https://www.cs.waikato.ac.nz/ml/weka/"; homepage = "https://www.cs.waikato.ac.nz/ml/weka/";
description = "Collection of machine learning algorithms for data mining tasks"; description = "Collection of machine learning algorithms for data mining tasks";

View file

@ -10,17 +10,17 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "aiken"; pname = "aiken";
version = "1.1.12"; version = "1.1.13";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "aiken-lang"; owner = "aiken-lang";
repo = "aiken"; repo = "aiken";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-QxIkqS+lqZjyuXUghSSd+4ud4Vrce7MgLrk2a5AQGmU="; hash = "sha256-es1opcYGoryRLpEPJuuuusTSVDnNAoEoGLg+LB8VnM0=";
}; };
useFetchCargoVendor = true; useFetchCargoVendor = true;
cargoHash = "sha256-vbwYoBDTdAHCpCOJEdVo9Ir8wd4284pgYjyQuy/STHc="; cargoHash = "sha256-g4DHkHw6Nog+ZtquvVaRaZdfcuH/ReLYsLeARbnCqac=";
buildInputs = buildInputs =
[ openssl ] [ openssl ]

View file

@ -25,7 +25,7 @@ stdenvNoCC.mkDerivation (self: {
sourceRoot = "${self.src.name}/themes"; sourceRoot = "${self.src.name}/themes";
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall
install -Dt $out *.toml install -Dt $out/share/alacritty-theme *.toml
runHook postInstall runHook postInstall
''; '';

View file

@ -7,13 +7,13 @@
buildGoModule rec { buildGoModule rec {
pname = "atproto-goat"; pname = "atproto-goat";
version = "0-unstable-2024-10-29"; version = "0-unstable-2025-02-01";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bluesky-social"; owner = "bluesky-social";
repo = "indigo"; repo = "indigo";
rev = "983ce4a481a32a3eb2944c4c76e885d0f6006f83"; rev = "fd270fbccf0ca858ed2eccdeff246a303c0be045";
hash = "sha256-Jo3pI4uRyKh3yV03ijOcg+Uyu75Spmy/VS116MVgleU="; hash = "sha256-1WK3tMz8WbuIGTHYwD0or+9D0KVezhnv3EDdK11KKp8=";
}; };
postPatch = '' postPatch = ''
@ -22,7 +22,7 @@ buildGoModule rec {
--replace-fail '"github.com/carlmjohnson/versioninfo"' "" --replace-fail '"github.com/carlmjohnson/versioninfo"' ""
''; '';
vendorHash = "sha256-T+jtxubVKskrLGTUa4RI24o/WTSFCBk60HhyCFujPOI="; vendorHash = "sha256-pGc29fgJFq8LP7n/pY1cv6ExZl88PAeFqIbFEhB3xXs=";
subPackages = [ "cmd/goat" ]; subPackages = [ "cmd/goat" ];

View file

@ -61,13 +61,13 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "audacity"; pname = "audacity";
version = "3.7.1"; version = "3.7.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "audacity"; owner = "audacity";
repo = "audacity"; repo = "audacity";
rev = "Audacity-${finalAttrs.version}"; rev = "Audacity-${finalAttrs.version}";
hash = "sha256-QKydqpkqG7znBEdtVEayC2SyNGU8tQX6AfxdeJN8tDg="; hash = "sha256-uRFLtjawMI5mHvlQNWkqSICPKbTiwp2bnBBsuj2JAP8=";
}; };
postPatch = postPatch =

View file

@ -8,17 +8,17 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "cargo-deb"; pname = "cargo-deb";
version = "2.11.2"; version = "2.11.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kornelski"; owner = "kornelski";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-I8b14fB/m5fYPLIpXnhYGsLaKXs7F9NW2mjHxng6AHU="; hash = "sha256-QDx7ZP/5z1YgD3RzLmwDE3KLY+5nMncYy97aveFH03w=";
}; };
useFetchCargoVendor = true; useFetchCargoVendor = true;
cargoHash = "sha256-o9VN1D3OoqochtpNApE5N+g7xw/QOTbzwSKVPwzzDow="; cargoHash = "sha256-ZN0TAQzt7LrHxoM4qAuMUm5Goaq1BuNBmd4kDGjiK4Q=";
nativeBuildInputs = [ nativeBuildInputs = [
makeWrapper makeWrapper

View file

@ -17,15 +17,15 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "cargo-update"; pname = "cargo-update";
version = "16.1.0"; version = "16.2.0";
src = fetchCrate { src = fetchCrate {
inherit pname version; inherit pname version;
hash = "sha256-bdIFenNMW5iDQaKS2+lMYVVfc0zpbYNOHQqczpjBNC4="; hash = "sha256-dO8A4XAFms31hWVpZelMnDmn0sPpCh4S4byEVRYjOTI=";
}; };
useFetchCargoVendor = true; useFetchCargoVendor = true;
cargoHash = "sha256-KujJB9o5+yHu6mEQOvzGUcBS6/fh/jcnt7/FbUPLefg="; cargoHash = "sha256-DxY03sqr/upJbNm8EkoIN96SOhZr1jm/6dgtKwyDFEU=";
nativeBuildInputs = nativeBuildInputs =
[ [

View file

@ -20,7 +20,7 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "ccache"; pname = "ccache";
version = "4.10.2"; version = "4.11";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ccache"; owner = "ccache";
@ -39,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
exit 1 exit 1
fi fi
''; '';
hash = "sha256-j7Cjr5R/fN/1C6hR9400Y/hwgG++qjPvo9PYyetzrx0="; hash = "sha256-hMQ+4/5kk+QRHtMEbIk4TIWaSyYXVdXrOMKCkglNe6g=";
}; };
outputs = [ outputs = [

View file

@ -11,14 +11,14 @@
python3Packages.buildPythonApplication { python3Packages.buildPythonApplication {
pname = "chirp"; pname = "chirp";
version = "0.4.0-unstable-2025-03-05"; version = "0.4.0-unstable-2025-03-07";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kk7ds"; owner = "kk7ds";
repo = "chirp"; repo = "chirp";
rev = "3e663d36f96aef03a58cab81d32122ca14a59343"; rev = "7ba82c4faca496cf1370554a3485c1573b6a38a0";
hash = "sha256-ODb+Q1Q+7XF/mX1GY2qItY4OOigguTFF+53vnaO5Ap0="; hash = "sha256-UhQF6yfykraz5DblyW8cSP/XY+j/uxJtUVDpgdWlHZU=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -1,12 +1,12 @@
{ {
"name": "@github/copilot-language-server", "name": "@github/copilot-language-server",
"version": "1.275.0", "version": "1.280.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@github/copilot-language-server", "name": "@github/copilot-language-server",
"version": "1.275.0", "version": "1.280.0",
"license": "https://docs.github.com/en/site-policy/github-terms/github-terms-for-additional-products-and-features", "license": "https://docs.github.com/en/site-policy/github-terms/github-terms-for-additional-products-and-features",
"dependencies": { "dependencies": {
"vscode-languageserver-protocol": "^3.17.5" "vscode-languageserver-protocol": "^3.17.5"

View file

@ -6,14 +6,14 @@
buildNpmPackage rec { buildNpmPackage rec {
pname = "copilot-language-server"; pname = "copilot-language-server";
version = "1.275.0"; version = "1.280.0";
src = fetchurl { src = fetchurl {
url = "https://registry.npmjs.org/@github/copilot-language-server/-/copilot-language-server-${version}.tgz"; url = "https://registry.npmjs.org/@github/copilot-language-server/-/copilot-language-server-${version}.tgz";
hash = "sha256-OVqtwz9T5vSYAZc8nof0jXn7H40i1r7SAS6jK4xeSlo="; hash = "sha256-6UniNoKUoATY+7amMoyWmo0DxEM82Iuu2Jf8P2raWx4=";
}; };
npmDepsHash = "sha256-PLX/mN7xu8gMh2BkkyTncP3+rJ3nBmX+pHxl0ONXbe4="; npmDepsHash = "sha256-BtErMpXdRC0t9DNa3hKU+tct6e9K+tMP+LcbmwSJrLI=";
postPatch = '' postPatch = ''
ln -s ${./package-lock.json} package-lock.json ln -s ${./package-lock.json} package-lock.json

View file

@ -1,65 +1,72 @@
{ {
lib, lib,
stdenv, stdenv,
stdenvAdapters,
fetchFromGitHub, fetchFromGitHub,
rustPlatform, rustPlatform,
libcosmicAppHook,
just, just,
pkg-config, nasm,
makeBinaryWrapper, nix-update-script,
libxkbcommon,
wayland, withMoldLinker ? stdenv.targetPlatform.isLinux,
}: }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage.override
pname = "cosmic-bg"; { stdenv = if withMoldLinker then stdenvAdapters.useMoldLinker stdenv else stdenv; }
version = "1.0.0-alpha.6"; (finalAttrs: {
pname = "cosmic-bg";
version = "1.0.0-alpha.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "pop-os"; owner = "pop-os";
repo = pname; repo = "cosmic-bg";
rev = "epoch-${version}"; tag = "epoch-${finalAttrs.version}";
hash = "sha256-4b4laUXTnAbdngLVh8/dD144m9QrGReSEjRZoNR6Iks="; hash = "sha256-4b4laUXTnAbdngLVh8/dD144m9QrGReSEjRZoNR6Iks=";
}; };
useFetchCargoVendor = true; useFetchCargoVendor = true;
cargoHash = "sha256-GLXooTjcGq4MsBNnlpHBBUJGNs5UjKMQJGJuj9UO2wk="; cargoHash = "sha256-GLXooTjcGq4MsBNnlpHBBUJGNs5UjKMQJGJuj9UO2wk=";
postPatch = '' nativeBuildInputs = [
substituteInPlace justfile --replace-fail '#!/usr/bin/env' "#!$(command -v env)" just
''; libcosmicAppHook
nasm
];
nativeBuildInputs = [ dontUseJustBuild = true;
just dontUseJustCheck = true;
pkg-config
makeBinaryWrapper
];
buildInputs = [
libxkbcommon
wayland
];
dontUseJustBuild = true; justFlags = [
"--set"
"prefix"
(placeholder "out")
"--set"
"bin-src"
"target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-bg"
];
justFlags = [ env."CARGO_TARGET_${stdenv.hostPlatform.rust.cargoEnvVarTarget}_RUSTFLAGS" =
"--set" lib.optionalString withMoldLinker "-C link-arg=-fuse-ld=mold";
"prefix"
(placeholder "out")
"--set"
"bin-src"
"target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-bg"
];
postInstall = '' passthru.updateScript = nix-update-script {
wrapProgram $out/bin/cosmic-bg \ extraArgs = [
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ wayland ]}" "--version"
''; "unstable"
"--version-regex"
"epoch-(.*)"
];
};
meta = with lib; { meta = {
homepage = "https://github.com/pop-os/cosmic-bg"; homepage = "https://github.com/pop-os/cosmic-bg";
description = "Applies Background for the COSMIC Desktop Environment"; description = "Applies Background for the COSMIC Desktop Environment";
license = licenses.mpl20; license = lib.licenses.mpl20;
maintainers = with maintainers; [ nyabinary ]; maintainers = with lib.maintainers; [
platforms = platforms.linux; nyabinary
mainProgram = "cosmic-bg"; HeitorAugustoLN
}; ];
} platforms = lib.platforms.linux;
mainProgram = "cosmic-bg";
};
})

View file

@ -1,68 +1,70 @@
{ {
lib, lib,
stdenv, stdenv,
stdenvAdapters,
fetchFromGitHub, fetchFromGitHub,
rustPlatform, rustPlatform,
just, just,
libcosmicAppHook, libcosmicAppHook,
nix-update-script, nix-update-script,
withMoldLinker ? stdenv.targetPlatform.isLinux,
}: }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage.override
pname = "cosmic-launcher"; { stdenv = if withMoldLinker then stdenvAdapters.useMoldLinker stdenv else stdenv; }
version = "1.0.0-alpha.6"; (finalAttrs: {
pname = "cosmic-launcher";
version = "1.0.0-alpha.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "pop-os"; owner = "pop-os";
repo = "cosmic-launcher"; repo = "cosmic-launcher";
tag = "epoch-${version}"; tag = "epoch-${finalAttrs.version}";
hash = "sha256-BtYnL+qkM/aw+Air5yOKH098V+TQByM5mh1DX7v+v+s="; hash = "sha256-BtYnL+qkM/aw+Air5yOKH098V+TQByM5mh1DX7v+v+s=";
}; };
useFetchCargoVendor = true; useFetchCargoVendor = true;
cargoHash = "sha256-g7Qr3C8jQg65KehXAhftdXCpEukag0w12ClvZFkxfqs="; cargoHash = "sha256-g7Qr3C8jQg65KehXAhftdXCpEukag0w12ClvZFkxfqs=";
nativeBuildInputs = [ nativeBuildInputs = [
just just
libcosmicAppHook libcosmicAppHook
];
dontUseJustBuild = true;
dontUseJustCheck = true;
justFlags = [
"--set"
"prefix"
(placeholder "out")
"--set"
"bin-src"
"target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-launcher"
];
postPatch = ''
substituteInPlace justfile --replace-fail '#!/usr/bin/env' "#!$(command -v env)"
'';
env."CARGO_TARGET_${stdenv.hostPlatform.rust.cargoEnvVarTarget}_RUSTFLAGS" = "--cfg tokio_unstable";
passthru.updateScript = nix-update-script {
extraArgs = [
"--version"
"unstable"
"--version-regex"
"epoch-(.*)"
]; ];
};
meta = { dontUseJustBuild = true;
homepage = "https://github.com/pop-os/cosmic-launcher"; dontUseJustCheck = true;
description = "Launcher for the COSMIC Desktop Environment";
mainProgram = "cosmic-launcher"; justFlags = [
license = lib.licenses.gpl3Only; "--set"
maintainers = with lib.maintainers; [ "prefix"
nyabinary (placeholder "out")
HeitorAugustoLN "--set"
"bin-src"
"target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-launcher"
]; ];
platforms = lib.platforms.linux;
}; env."CARGO_TARGET_${stdenv.hostPlatform.rust.cargoEnvVarTarget}_RUSTFLAGS" =
} "--cfg tokio_unstable${lib.optionalString withMoldLinker " -C link-arg=-fuse-ld=mold"}";
passthru.updateScript = nix-update-script {
extraArgs = [
"--version"
"unstable"
"--version-regex"
"epoch-(.*)"
];
};
meta = {
homepage = "https://github.com/pop-os/cosmic-launcher";
description = "Launcher for the COSMIC Desktop Environment";
mainProgram = "cosmic-launcher";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [
nyabinary
HeitorAugustoLN
];
platforms = lib.platforms.linux;
};
})

View file

@ -1,65 +1,73 @@
{ {
lib, lib,
stdenv, stdenv,
stdenvAdapters,
fetchFromGitHub, fetchFromGitHub,
rustPlatform, rustPlatform,
just, just,
pkg-config, pkg-config,
wayland, wayland,
nix-update-script, nix-update-script,
withMoldLinker ? stdenv.targetPlatform.isLinux,
}: }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage.override
pname = "cosmic-randr"; { stdenv = if withMoldLinker then stdenvAdapters.useMoldLinker stdenv else stdenv; }
version = "1.0.0-alpha.6"; (finalAttrs: {
pname = "cosmic-randr";
version = "1.0.0-alpha.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "pop-os"; owner = "pop-os";
repo = "cosmic-randr"; repo = "cosmic-randr";
tag = "epoch-${version}"; tag = "epoch-${finalAttrs.version}";
hash = "sha256-Sqxe+vKonsK9MmJGtbrZHE7frfrjkHXysm0WQt7WSU4="; hash = "sha256-Sqxe+vKonsK9MmJGtbrZHE7frfrjkHXysm0WQt7WSU4=";
}; };
useFetchCargoVendor = true; useFetchCargoVendor = true;
cargoHash = "sha256-UQ/fhjUiniVeHRQYulYko4OxcWB6UhFuxH1dVAfAzIY="; cargoHash = "sha256-UQ/fhjUiniVeHRQYulYko4OxcWB6UhFuxH1dVAfAzIY=";
nativeBuildInputs = [ nativeBuildInputs = [
just just
pkg-config pkg-config
];
buildInputs = [ wayland ];
dontUseJustBuild = true;
dontUseJustCheck = true;
justFlags = [
"--set"
"prefix"
(placeholder "out")
"--set"
"bin-src"
"target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-randr"
];
passthru.updateScript = nix-update-script {
extraArgs = [
"--version"
"unstable"
"--version-regex"
"epoch-(.*)"
]; ];
};
meta = { buildInputs = [ wayland ];
homepage = "https://github.com/pop-os/cosmic-randr";
description = "Library and utility for displaying and configuring Wayland outputs"; dontUseJustBuild = true;
license = lib.licenses.mpl20; dontUseJustCheck = true;
maintainers = with lib.maintainers; [
nyabinary justFlags = [
HeitorAugustoLN "--set"
"prefix"
(placeholder "out")
"--set"
"bin-src"
"target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-randr"
]; ];
platforms = lib.platforms.linux;
mainProgram = "cosmic-randr"; env."CARGO_TARGET_${stdenv.hostPlatform.rust.cargoEnvVarTarget}_RUSTFLAGS" =
}; lib.optionalString withMoldLinker "-C link-arg=-fuse-ld=mold";
}
passthru.updateScript = nix-update-script {
extraArgs = [
"--version"
"unstable"
"--version-regex"
"epoch-(.*)"
];
};
meta = {
homepage = "https://github.com/pop-os/cosmic-randr";
description = "Library and utility for displaying and configuring Wayland outputs";
license = lib.licenses.mpl20;
maintainers = with lib.maintainers; [
nyabinary
HeitorAugustoLN
];
platforms = lib.platforms.linux;
mainProgram = "cosmic-randr";
};
})

View file

@ -1,30 +1,25 @@
{ {
lib, lib,
cosmic-icons, stdenv,
rustPlatform,
fetchFromGitHub, fetchFromGitHub,
pkg-config,
just,
libcosmicAppHook,
fontconfig, fontconfig,
freetype, freetype,
just,
libglvnd,
libinput, libinput,
libxkbcommon, nix-update-script,
makeBinaryWrapper,
pkg-config,
rustPlatform,
stdenv,
vulkan-loader,
wayland,
xorg,
}: }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-term"; pname = "cosmic-term";
version = "1.0.0-alpha.6"; version = "1.0.0-alpha.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "pop-os"; owner = "pop-os";
repo = "cosmic-term"; repo = "cosmic-term";
rev = "epoch-${version}"; tag = "epoch-${finalAttrs.version}";
hash = "sha256-sdeRkT6UcyBKIFnJZn3aGf8LZQimqVPqtXo7RtwUs5M="; hash = "sha256-sdeRkT6UcyBKIFnJZn3aGf8LZQimqVPqtXo7RtwUs5M=";
}; };
@ -33,31 +28,25 @@ rustPlatform.buildRustPackage rec {
# COSMIC applications now uses vergen for the About page # COSMIC applications now uses vergen for the About page
# Update the COMMIT_DATE to match when the commit was made # Update the COMMIT_DATE to match when the commit was made
env.VERGEN_GIT_COMMIT_DATE = "2025-02-21"; env = {
env.VERGEN_GIT_SHA = src.rev; VERGEN_GIT_COMMIT_DATE = "2025-02-21";
VERGEN_GIT_SHA = finalAttrs.src.tag;
postPatch = '' };
substituteInPlace justfile --replace-fail '#!/usr/bin/env' "#!$(command -v env)"
'';
nativeBuildInputs = [ nativeBuildInputs = [
just just
pkg-config pkg-config
makeBinaryWrapper libcosmicAppHook
]; ];
buildInputs = [ buildInputs = [
fontconfig fontconfig
freetype freetype
libglvnd
libinput libinput
libxkbcommon
vulkan-loader
wayland
xorg.libX11
]; ];
dontUseJustBuild = true; dontUseJustBuild = true;
dontUseJustCheck = true;
justFlags = [ justFlags = [
"--set" "--set"
@ -68,30 +57,25 @@ rustPlatform.buildRustPackage rec {
"target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-term" "target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-term"
]; ];
# Force linking to libEGL, which is always dlopen()ed, and to passthru.updateScript = nix-update-script {
# libwayland-client, which is always dlopen()ed except by the extraArgs = [
# obscure winit backend. "--version"
RUSTFLAGS = map (a: "-C link-arg=${a}") [ "unstable"
"-Wl,--push-state,--no-as-needed" "--version-regex"
"-lEGL" "epoch-(.*)"
"-lwayland-client" ];
"-Wl,--pop-state" };
];
postInstall = '' meta = {
wrapProgram "$out/bin/cosmic-term" \
--suffix XDG_DATA_DIRS : "${cosmic-icons}/share"
'';
meta = with lib; {
homepage = "https://github.com/pop-os/cosmic-term"; homepage = "https://github.com/pop-os/cosmic-term";
description = "Terminal for the COSMIC Desktop Environment"; description = "Terminal for the COSMIC Desktop Environment";
license = licenses.gpl3Only; license = lib.licenses.gpl3Only;
maintainers = with maintainers; [ maintainers = with lib.maintainers; [
ahoneybun ahoneybun
nyabinary nyabinary
HeitorAugustoLN
]; ];
platforms = platforms.linux; platforms = lib.platforms.linux;
mainProgram = "cosmic-term"; mainProgram = "cosmic-term";
}; };
} })

View file

@ -20,13 +20,13 @@
}@inputs: }@inputs:
(if cudaSupport then cudaPackages.backendStdenv else inputs.stdenv).mkDerivation rec { (if cudaSupport then cudaPackages.backendStdenv else inputs.stdenv).mkDerivation rec {
pname = "dlib"; pname = "dlib";
version = "19.24.6"; version = "19.24.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "davisking"; owner = "davisking";
repo = "dlib"; repo = "dlib";
tag = "v${version}"; tag = "v${version}";
sha256 = "sha256-BpE7ZrtiiaDqwy1G4IHOQBJMr6sAadFbRxsdObs1SIY="; sha256 = "sha256-b8DFlfBnF4Fk7beJPxQJDVHaCR7s5/4uAPi3RV9cBZ4=";
}; };
postPatch = '' postPatch = ''

View file

@ -2,7 +2,7 @@
buildGoModule rec { buildGoModule rec {
pname = "doctl"; pname = "doctl";
version = "1.122.0"; version = "1.123.0";
vendorHash = null; vendorHash = null;
@ -31,7 +31,7 @@ buildGoModule rec {
owner = "digitalocean"; owner = "digitalocean";
repo = "doctl"; repo = "doctl";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-l5UfvMTexoGhX2CWBZlO1ibM+cULdhRdZ7UeH0jgC7E="; sha256 = "sha256-B7xUo59qyftjZj2ywJROaWYPkfelqPSkY3YqR2y+/jw=";
}; };
meta = with lib; { meta = with lib; {

View file

@ -6,17 +6,17 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "esp-generate"; pname = "esp-generate";
version = "0.3.0"; version = "0.3.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "esp-rs"; owner = "esp-rs";
repo = "esp-generate"; repo = "esp-generate";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-Z+PsGx3Y2WZLO5QK5icI89YPOmY4p/RBMiYecEOfmwc="; hash = "sha256-yk7iv5nq2b/1OY77818I7mXW96YxjwwJS3iiv1KXVHs=";
}; };
useFetchCargoVendor = true; useFetchCargoVendor = true;
cargoHash = "sha256-uvHZyvIcPLB1GW7EkJshAeGRI3xJZtN9kPrLhHGoojs="; cargoHash = "sha256-ncTX9cDSAf6ZGlz0utGYxkuXcx85vt3VHQzdmQhCNf0=";
meta = { meta = {
description = "Template generation tool to create no_std applications targeting Espressif's chips"; description = "Template generation tool to create no_std applications targeting Espressif's chips";

View file

@ -28,12 +28,12 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "exodus"; pname = "exodus";
version = "24.41.6"; version = "25.9.2";
src = requireFile { src = requireFile {
name = "exodus-linux-x64-${finalAttrs.version}.zip"; name = "exodus-linux-x64-${finalAttrs.version}.zip";
url = "https://downloads.exodus.com/releases/exodus-linux-x64-${finalAttrs.version}.zip"; url = "https://downloads.exodus.com/releases/exodus-linux-x64-${finalAttrs.version}.zip";
hash = "sha256-lUL9n3EZVe2J7uCHUSJgI2g75Sp1Y/nfBTde7VId6sA="; hash = "sha256-QEspr/n4TnwpCx9lBY874+dlcMvhXiYKhyqel7ebuzg=";
}; };
nativeBuildInputs = [ unzip ]; nativeBuildInputs = [ unzip ];

View file

@ -0,0 +1,7 @@
{
fish,
}:
fish.override {
usePython = false;
}

View file

@ -9,12 +9,12 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "frink"; pname = "frink";
version = "2024-05-09"; version = "2025-01-07";
src = fetchurl { src = fetchurl {
# Upstream does not provide versioned download links # Upstream does not provide versioned download links
url = "https://web.archive.org/web/20240605193919/https://frinklang.org/frinkjar/frink-tng.jar"; url = "https://web.archive.org/web/20250119105218/https://frinklang.org/frinkjar/frink-tng.jar";
sha256 = "sha256-ceV1p9wsXprcNLhol79evswVZ1SpH5IzfSbl8st4cmU="; sha256 = "sha256-qsbYUUBBVILUG6oZVR3t5UaVdNew6xRvjqQBJVr76L8=";
}; };
dontUnpack = true; dontUnpack = true;

View file

@ -2,7 +2,7 @@
lib, lib,
stdenvNoCC, stdenvNoCC,
fetchFromGitHub, fetchFromGitHub,
substituteAll, replaceVars,
gdc, gdc,
perl, perl,
}: }:
@ -18,8 +18,7 @@ stdenvNoCC.mkDerivation {
}; };
patches = [ patches = [
(substituteAll { (replaceVars ./0001-gdc-store-path.diff {
src = ./0001-gdc-store-path.diff;
gdc_dir = "${gdc}/bin"; gdc_dir = "${gdc}/bin";
}) })
]; ];

View file

@ -1,5 +1,5 @@
#!/usr/bin/env nix-shell #!/usr/bin/env nix-shell
#!nix-shell -I nixpkgs=./. -i bash -p curl jq gawk libossp_uuid libxml2 nix #!nix-shell -I nixpkgs=./. -i bash -p curl jq gawk libossp_uuid libuuid libxml2 nix
# shellcheck shell=bash # shellcheck shell=bash
set -euo pipefail set -euo pipefail

View file

@ -10,17 +10,17 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "inputplumber"; pname = "inputplumber";
version = "0.48.0"; version = "0.49.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ShadowBlip"; owner = "ShadowBlip";
repo = "InputPlumber"; repo = "InputPlumber";
tag = "v${version}"; tag = "v${version}";
hash = "sha256-9/4+gNuG02uoXDflRh3q5T+hqAKu/j+1FQnXVJVTpiI="; hash = "sha256-vWqmcVF/gi0ubIF/NDnz0op1ss0t7A7O8NrOzszx7Gw=";
}; };
useFetchCargoVendor = true; useFetchCargoVendor = true;
cargoHash = "sha256-cRSY9a5qOvYrdvNSDoDjgrIo+SRlD24oAWriudbKS1E="; cargoHash = "sha256-5yG8iUW5BVHI2QcOl+9dN1c1b/wmrFCO4mDs4ZflhUM=";
nativeBuildInputs = [ nativeBuildInputs = [
pkg-config pkg-config

View file

@ -112,22 +112,25 @@ stdenv.mkDerivation (finalAttrs: {
buildFlags = lib.attrNames targets; buildFlags = lib.attrNames targets;
installPhase = '' installPhase =
runHook preInstall ''
runHook preInstall
mkdir -p $out mkdir -p $out
${lib.concatStringsSep "\n" ( ${lib.concatStringsSep "\n" (
lib.mapAttrsToList ( lib.mapAttrsToList (
from: to: if to == null then "cp -v ${from} $out" else "cp -v ${from} $out/${to}" from: to: if to == null then "cp -v ${from} $out" else "cp -v ${from} $out/${to}"
) targets ) targets
)} )}
''
# Some PXE constellations especially with dnsmasq are looking for the file with .0 ending + lib.optionalString stdenv.hostPlatform.isx86 ''
# let's provide it as a symlink to be compatible in this case. # Some PXE constellations especially with dnsmasq are looking for the file with .0 ending
ln -s undionly.kpxe $out/undionly.kpxe.0 # let's provide it as a symlink to be compatible in this case.
ln -s undionly.kpxe $out/undionly.kpxe.0
runHook postInstall ''
''; + ''
runHook postInstall
'';
enableParallelBuilding = true; enableParallelBuilding = true;

View file

@ -6,13 +6,13 @@
buildGoModule rec { buildGoModule rec {
pname = "kafkactl"; pname = "kafkactl";
version = "5.5.0"; version = "5.5.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "deviceinsight"; owner = "deviceinsight";
repo = pname; repo = pname;
tag = "v${version}"; tag = "v${version}";
hash = "sha256-9xo/lg3IhAdJnmmLAmiMcKNCTMXkKK2jnYaGHIk8Rq4="; hash = "sha256-lsYdq3+hf+8EPLmLbgnzuVHfeZXrUlqYmHY4kJ6HzC4=";
}; };
vendorHash = "sha256-0Kc8Z32YdmwhKMTBMBAK0ZdnXnH8/Ze1HcMDafosLvw="; vendorHash = "sha256-0Kc8Z32YdmwhKMTBMBAK0ZdnXnH8/Ze1HcMDafosLvw=";

View file

@ -20,13 +20,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libdeltachat"; pname = "libdeltachat";
version = "1.156.2"; version = "1.156.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "deltachat"; owner = "chatmail";
repo = "deltachat-core-rust"; repo = "core";
tag = "v${version}"; tag = "v${version}";
hash = "sha256-CpFnO8stLLTH/XOZZS3j9nVrf2FRekjkQ/R1pmw5o9A="; hash = "sha256-FJTHG1NUdKcYTPrBkhu4ZiodSwpNgaGUHiHBSk/lUVA=";
}; };
patches = [ patches = [
@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
cargoDeps = rustPlatform.fetchCargoVendor { cargoDeps = rustPlatform.fetchCargoVendor {
pname = "deltachat-core-rust"; pname = "deltachat-core-rust";
inherit version src; inherit version src;
hash = "sha256-jrsGMNgKglk+Rq/ZGiZgSZrT4uSA5RjbTYaDtW0Ijyg="; hash = "sha256-Kh0TU6lJ7spZIOUyJabFd1icqN9jU+kG+BpADAi0nRo=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -86,8 +86,8 @@ stdenv.mkDerivation rec {
meta = with lib; { meta = with lib; {
description = "Delta Chat Rust Core library"; description = "Delta Chat Rust Core library";
homepage = "https://github.com/deltachat/deltachat-core-rust/"; homepage = "https://github.com/chatmail/core";
changelog = "https://github.com/deltachat/deltachat-core-rust/blob/${src.tag}/CHANGELOG.md"; changelog = "https://github.com/chatmail/core/blob/${src.tag}/CHANGELOG.md";
license = licenses.mpl20; license = licenses.mpl20;
maintainers = with maintainers; [ dotlambda ]; maintainers = with maintainers; [ dotlambda ];
platforms = platforms.unix; platforms = platforms.unix;

View file

@ -0,0 +1,28 @@
From 94ea94de526770e783d04d75b981dfa3ac90fd20 Mon Sep 17 00:00:00 2001
From: o7-machienhum <ryan.cjw@gmail.com>
Date: Tue, 30 Jan 2024 03:29:09 -0800
Subject: [PATCH] Fixes crash
---
mnamer/utils.py | 3 ---
1 file changed, 3 deletions(-)
diff --git a/mnamer/utils.py b/mnamer/utils.py
index 84df7870..8eba68f8 100644
--- a/mnamer/utils.py
+++ b/mnamer/utils.py
@@ -256,7 +256,6 @@ def request_json(
"like Gecko) Chrome/79.0.3945.88 Safari/537.36"
)
- initial_cache_state = session._disabled # yes, i'm a bad person
try:
session._disabled = not cache
response = session.request(
@@ -272,8 +271,6 @@ def request_json(
except:
content = None
status = 500
- finally:
- session._disabled = initial_cache_state
return status, (content or {})

View file

@ -1,31 +1,40 @@
{ python3Packages, fetchFromGitHub, lib }: {
python3Packages,
fetchFromGitHub,
lib,
}:
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "mnamer"; pname = "mnamer";
version = "2.5.4"; version = "2.5.5";
format = "pyproject";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jkwill87"; owner = "jkwill87";
repo = "mnamer"; repo = "mnamer";
rev = version; tag = version;
sha256 = "sha256-fONQq/RboWHFuEFU7HP1ThUpSjOIlkg54c2WlMUKwuk="; sha256 = "sha256-qQu5V1GOsbrR00HOrot6TTAkc3KRasBPDEU7ZojUBio=";
}; };
propagatedBuildInputs = with python3Packages; [ build-system = with python3Packages; [
babelfish setuptools
requests setuptools-scm
appdirs
teletype
requests-cache
guessit
]; ];
patches = [ dependencies = with python3Packages; [
# requires specific old versions of dependencies which have been updated in nixpkgs appdirs
./remove_requirements.patch babelfish
guessit
requests
requests-cache
teletype
];
# author reads a private property that changed between versions pythonRelaxDeps = true;
./update_hack.patch
patches = [
# https://github.com/jkwill87/mnamer/pull/291
./cached_session_error.patch
]; ];
nativeCheckInputs = [ python3Packages.pytestCheckHook ]; nativeCheckInputs = [ python3Packages.pytestCheckHook ];

View file

@ -1,21 +0,0 @@
diff --git a/setup.py b/setup.py
index 245c1dd..fdc17ab 100755
--- a/setup.py
+++ b/setup.py
@@ -7,16 +7,12 @@ from mnamer.__version__ import VERSION
with open("readme.md", "r", encoding="utf8") as fp:
LONG_DESCRIPTION = fp.read()
-with open("requirements.txt", "r", encoding="utf8") as fp:
- REQUIREMENTS = fp.read().splitlines()
-
setup(
author="Jessy Williams",
author_email="jessy@jessywilliams.com",
description="A media file organiser",
entry_points={"console_scripts": ["mnamer=mnamer.__main__:main"]},
include_package_data=True,
- install_requires=REQUIREMENTS,
license="MIT",
long_description=LONG_DESCRIPTION,
long_description_content_type="text/markdown",

View file

@ -1,13 +0,0 @@
diff --git a/mnamer/utils.py b/mnamer/utils.py
index 636b596..e52bd37 100644
--- a/mnamer/utils.py
+++ b/mnamer/utils.py
@@ -280,7 +280,7 @@ def request_json(
"like Gecko) Chrome/79.0.3945.88 Safari/537.36"
)
- initial_cache_state = session._is_cache_disabled # yes, i'm a bad person
+ initial_cache_state = session._disabled # yes, i'm a bad person
try:
session._is_cache_disabled = not cache
response = session.request(

View file

@ -6,7 +6,7 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "opshin"; pname = "opshin";
version = "0.24.0"; version = "0.24.1";
format = "pyproject"; format = "pyproject";
@ -14,7 +14,7 @@ python3.pkgs.buildPythonApplication rec {
owner = "OpShin"; owner = "OpShin";
repo = "opshin"; repo = "opshin";
tag = version; tag = version;
hash = "sha256-5IzPxzNvH9nlOYBCbc8kC7yzf8L8LPA5Wq9agqg9kng="; hash = "sha256-+uuTEszA5p/qhvthM3Uje6yX3urbIUAKKfDZ4JXEYYQ=";
}; };
propagatedBuildInputs = with python3.pkgs; [ propagatedBuildInputs = with python3.pkgs; [

View file

@ -7,13 +7,13 @@
buildGoModule rec { buildGoModule rec {
pname = "orchard"; pname = "orchard";
version = "0.28.2"; version = "0.28.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cirruslabs"; owner = "cirruslabs";
repo = pname; repo = pname;
rev = version; rev = version;
hash = "sha256-QH/TkXBdqpgIiByLmutqk6M4GWwkm/BThTRN2DZXhc0="; hash = "sha256-blXxINsM793iH7X38J+Mrqf/WKnSRoS48yP4r3Dllow=";
# populate values that require us to use git. By doing this in postFetch we # populate values that require us to use git. By doing this in postFetch we
# can delete .git afterwards and maintain better reproducibility of the src. # can delete .git afterwards and maintain better reproducibility of the src.
leaveDotGit = true; leaveDotGit = true;
@ -24,7 +24,7 @@ buildGoModule rec {
''; '';
}; };
vendorHash = "sha256-0bdsz5Oj351dztApJ1FnSbObuCKEPC38Fupe3NyRAAQ="; vendorHash = "sha256-OimkH34coQLhJlJd3BGBFE9L/TQtU4tJbTl0zwmQh3w=";
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];

View file

@ -8,16 +8,16 @@
buildNpmPackage rec { buildNpmPackage rec {
pname = "repomix"; pname = "repomix";
version = "0.2.29"; version = "0.2.36";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "yamadashy"; owner = "yamadashy";
repo = "repomix"; repo = "repomix";
tag = "v${version}"; tag = "v${version}";
hash = "sha256-AOqGmI5hnDA18/+uFGQwVKdLniOvGMEBKHTZJa5gE2w="; hash = "sha256-utuCtkDp+3411FTqKxpXdE0XAMsVT0dwpcMAdJ2pAB0=";
}; };
npmDepsHash = "sha256-R/NTlU5ljwmoGHB/5wPADkGx8xjfF4d2bPWWkAr+VOk="; npmDepsHash = "sha256-jKAHFxxRheMw8pcYfOurL7L5TFaNIQjoxpJsPysuKYI=";
nativeInstallCheckInputs = [ versionCheckHook ]; nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true; doInstallCheck = true;

View file

@ -47,9 +47,8 @@ let
"{connection_file}" "{connection_file}"
]; ];
language = "sage"; language = "sage";
# just one 16x16 logo is available logo32 = "${sage-src}/src/sage/ext_data/notebook-ipython/logo-64x64.png";
logo32 = "${sage-src}/src/doc/common/static/sageicon.png"; logo64 = "${sage-src}/src/sage/ext_data/notebook-ipython/logo-64x64.png";
logo64 = "${sage-src}/src/doc/common/static/sageicon.png";
}; };
jupyter-kernel-specs = pkgs.jupyter-kernel.create { jupyter-kernel-specs = pkgs.jupyter-kernel.create {

View file

@ -0,0 +1,26 @@
diff --git a/sdl-config.in b/sdl-config.in
index ce332b3..359d574 100755
--- a/sdl-config.in
+++ b/sdl-config.in
@@ -50,14 +50,18 @@ while test $# -gt 0; do
echo @PROJECT_VERSION@
;;
--cflags)
- echo -I${includedir}/SDL @SDL_CFLAGS@
+ SDL_CFLAGS=""
+ for i in @includedir@/SDL $SDL_PATH; do
+ SDL_CFLAGS="$SDL_CFLAGS -I$i"
+ done
+ echo $SDL_CFLAGS @SDL_CFLAGS@
;;
@ENABLE_SHARED_TRUE@ --libs)
-@ENABLE_SHARED_TRUE@ echo -L${libdir} @SDL_RLD_FLAGS@ @SDL_LIBS@
+@ENABLE_SHARED_TRUE@ echo -L${libdir} @SDL_RLD_FLAGS@ @SDL_LIBS@ $SDL_LIB_PATH
@ENABLE_SHARED_TRUE@ ;;
@ENABLE_STATIC_TRUE@@ENABLE_SHARED_TRUE@ --static-libs)
@ENABLE_STATIC_TRUE@@ENABLE_SHARED_FALSE@ --libs|--static-libs)
-@ENABLE_STATIC_TRUE@ echo -L${libdir} @SDL_LIBS@ @SDL_STATIC_LIBS@
+@ENABLE_STATIC_TRUE@ echo -L${libdir} @SDL_LIBS@ @SDL_STATIC_LIBS@ $SDL_LIB_PATH
@ENABLE_STATIC_TRUE@ ;;
*)
echo "${usage}" 1>&2

View file

@ -48,14 +48,18 @@ stdenv.mkDerivation (finalAttrs: {
enableParallelBuilding = true; enableParallelBuilding = true;
setupHook = ./setup-hook.sh;
postInstall = '' postInstall = ''
# allow as a drop in replacement for SDL # allow as a drop in replacement for SDL
# Can be removed after treewide switch from pkg-config to pkgconf # Can be removed after treewide switch from pkg-config to pkgconf
ln -s $out/lib/pkgconfig/sdl12_compat.pc $out/lib/pkgconfig/sdl.pc ln -s $out/lib/pkgconfig/sdl12_compat.pc $out/lib/pkgconfig/sdl.pc
''; '';
# The setup hook scans paths of buildInputs to find SDL related packages and
# adds their include and library paths to environment variables. The sdl-config
# is patched to use these variables to produce correct flags for compiler.
patches = [ ./find-headers.patch ];
setupHook = ./setup-hook.sh;
postFixup = '' postFixup = ''
for lib in $out/lib/*${stdenv.hostPlatform.extensions.sharedLibrary}* ; do for lib in $out/lib/*${stdenv.hostPlatform.extensions.sharedLibrary}* ; do
if [[ -L "$lib" ]]; then if [[ -L "$lib" ]]; then

View file

@ -11,11 +11,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "snowsql"; pname = "snowsql";
version = "1.3.0"; version = "1.3.3";
src = fetchurl { src = fetchurl {
url = "https://sfc-repo.snowflakecomputing.com/snowsql/bootstrap/${lib.versions.majorMinor version}/linux_x86_64/snowflake-snowsql-${version}-1.x86_64.rpm"; url = "https://sfc-repo.snowflakecomputing.com/snowsql/bootstrap/${lib.versions.majorMinor version}/linux_x86_64/snowflake-snowsql-${version}-1.x86_64.rpm";
sha256 = "sha256-KKCCj+pIwWhuzOuxljQ8Y11mAwD/GONspbXuPAMBdhE="; sha256 = "sha256-BedOcd3ZllzMSZ6hjs1BG0o9TEg3aJKtLzutOE3nI1s=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -6,17 +6,17 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "ttdl"; pname = "ttdl";
version = "4.9.0"; version = "4.10.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "VladimirMarkelov"; owner = "VladimirMarkelov";
repo = "ttdl"; repo = "ttdl";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-qFOZj214iw/d1wvWz8wwIFB2kaDSPH80blDkohQxSro="; sha256 = "sha256-cCz2wxYvYAoI+Hmyll+Fn56NUCuWlIiJycmYvGyhkR4=";
}; };
useFetchCargoVendor = true; useFetchCargoVendor = true;
cargoHash = "sha256-gdFLT04pNedU30/Qw2OiXpdLL+6cC6ryUoeZLKu/myQ="; cargoHash = "sha256-207Tmfs3LrZkwsAF/9qD5PN/zHwzCf0lq+87bFIP7y8=";
meta = with lib; { meta = with lib; {
description = "CLI tool to manage todo lists in todo.txt format"; description = "CLI tool to manage todo lists in todo.txt format";

View file

@ -6,13 +6,13 @@
buildGoModule rec { buildGoModule rec {
pname = "tygo"; pname = "tygo";
version = "0.2.17"; version = "0.2.18";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gzuidhof"; owner = "gzuidhof";
repo = "tygo"; repo = "tygo";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-yaXS+DS/xeIQXhn3L6x2lp/xu4OxrBqr5wKVbADhZkU="; hash = "sha256-W2PgBcbkreP61QtAuOZ+VHUUZ4Mhe++1SK1p4Tg4Ack=";
}; };
vendorHash = "sha256-E73yqGhPzZA/1xTYGvTBy0/b4SE9hzx+gdhjX3ClE/Y="; vendorHash = "sha256-E73yqGhPzZA/1xTYGvTBy0/b4SE9hzx+gdhjX3ClE/Y=";

View file

@ -14,21 +14,21 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "unison-code-manager"; pname = "unison-code-manager";
version = "0.5.33"; version = "0.5.36";
src = src =
{ {
aarch64-darwin = fetchurl { aarch64-darwin = fetchurl {
url = "https://github.com/unisonweb/unison/releases/download/release/${finalAttrs.version}/ucm-macos-arm64.tar.gz"; url = "https://github.com/unisonweb/unison/releases/download/release/${finalAttrs.version}/ucm-macos-arm64.tar.gz";
hash = "sha256-DXqQMv1pEEFSHDsY8BICFfKAD4zaishRIDo1hwCVj54="; hash = "sha256-GH0qZtb29qDxL39nArYSzCQ50/ssPOiN9CXnAvb9uVQ=";
}; };
x86_64-darwin = fetchurl { x86_64-darwin = fetchurl {
url = "https://github.com/unisonweb/unison/releases/download/release/${finalAttrs.version}/ucm-macos-x64.tar.gz"; url = "https://github.com/unisonweb/unison/releases/download/release/${finalAttrs.version}/ucm-macos-x64.tar.gz";
hash = "sha256-ffHbkujs3UMChPM2uL3tBcxInKEOHwRUMrIeh+k5ghY="; hash = "sha256-seL8Ey20KYVsOLugGvfVXXIIVdv7q04PYXh3c6MoZDk=";
}; };
x86_64-linux = fetchurl { x86_64-linux = fetchurl {
url = "https://github.com/unisonweb/unison/releases/download/release/${finalAttrs.version}/ucm-linux-x64.tar.gz"; url = "https://github.com/unisonweb/unison/releases/download/release/${finalAttrs.version}/ucm-linux-x64.tar.gz";
hash = "sha256-+kBuQn73P8yxa8l6/R3NGj61LB6kKwa2lfNKZmhI5Dk="; hash = "sha256-Zb91ixXd3ueQj6+YjC9Wgq3PnfcKBKZZdCJfS0nQOV4=";
}; };
} }
.${stdenv.hostPlatform.system} or (throw "Unsupported platform ${stdenv.hostPlatform.system}"); .${stdenv.hostPlatform.system} or (throw "Unsupported platform ${stdenv.hostPlatform.system}");

View file

@ -27,8 +27,7 @@ python3Packages.buildPythonApplication rec {
postPatch = '' postPatch = ''
substituteInPlace src/varia-py.in \ substituteInPlace src/varia-py.in \
--replace-fail 'aria2cexec = sys.argv[1]' 'aria2cexec = "${lib.getExe aria2}"' --replace-fail 'aria2cexec = sys.argv[1]' 'aria2cexec = "${lib.getExe aria2}"' \
substituteInPlace src/varia-py.in \
--replace-fail 'ffmpegexec = sys.argv[2]' 'ffmpegexec = "${lib.getExe ffmpeg}"' --replace-fail 'ffmpegexec = sys.argv[2]' 'ffmpegexec = "${lib.getExe ffmpeg}"'
''; '';

View file

@ -2,6 +2,7 @@
lib, lib,
stdenv, stdenv,
fetchurl, fetchurl,
dlib,
gsl, gsl,
mpfr, mpfr,
perl, perl,
@ -17,6 +18,14 @@ stdenv.mkDerivation rec {
hash = "sha256-mpn9aO04CJTe+01eaooocWKScAKM338W8KBdpujHFHM="; hash = "sha256-mpn9aO04CJTe+01eaooocWKScAKM338W8KBdpujHFHM=";
}; };
# use nixpkgs dlib sources instead of bundled ones
# using dlib-19.24.8 fixes the build with modern compilers (such as clang-19)
postPatch = ''
rm -rf ./src/dlib-19.24
cp -a ${dlib.src} ./src/dlib-19.24
find ./src/dlib-19.24 -type d -exec chmod +w {} \;
'';
buildInputs = [ buildInputs = [
gsl gsl
mpfr mpfr

View file

@ -9,13 +9,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "wxsqlite3"; pname = "wxsqlite3";
version = "4.10.4"; version = "4.10.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "utelle"; owner = "utelle";
repo = "wxsqlite3"; repo = "wxsqlite3";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-IHlQxVAgCZ8Nwz2VbP8Wvf3on9XEaVBDEMInUWHw2XQ="; hash = "sha256-aDEVT3R948P+N1fFC9Q7LNf8FpPuxlKs+dQurewtaFA=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -16,11 +16,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "xfig"; pname = "xfig";
version = "3.2.9"; version = "3.2.9a";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/mcj/xfig-${version}.tar.xz"; url = "mirror://sourceforge/mcj/xfig-${version}.tar.xz";
hash = "sha256-E+2dBNG7wt7AnafvSc7sJ4OC0pD2zZJkdMLy0Bb+wvc="; hash = "sha256-vFcqGIHl4gmHrFkBWLBBq3gDhFqWkQNtO6XpgvZtnKM=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -39,8 +39,7 @@ stdenv.mkDerivation rec {
]; ];
postPatch = '' postPatch = ''
substituteInPlace src/main.c --replace '"fig2dev"' '"${fig2dev}/bin/fig2dev"' substituteInPlace src/main.c --replace-fail '"fig2dev"' '"${fig2dev}/bin/fig2dev"'
substituteInPlace xfig.desktop --replace "/usr/bin/" "$out/bin/"
''; '';
postInstall = '' postInstall = ''
@ -53,7 +52,7 @@ stdenv.mkDerivation rec {
mkdir -p $out/share/icons/hicolor/{16x16,22x22,48x48,64x64}/apps mkdir -p $out/share/icons/hicolor/{16x16,22x22,48x48,64x64}/apps
for dimension in 16x16 22x22 48x48; do for dimension in 16x16 22x22 48x48; do
convert doc/html/images/xfig-logo.png -geometry $dimension\ magick convert doc/html/images/xfig-logo.png -geometry $dimension\
$out/share/icons/hicolor/16x16/apps/xfig.png $out/share/icons/hicolor/16x16/apps/xfig.png
done done
install doc/html/images/xfig-logo.png \ install doc/html/images/xfig-logo.png \

View file

@ -14,13 +14,13 @@
}: }:
stdenvNoCC.mkDerivation rec { stdenvNoCC.mkDerivation rec {
pname = "yandex-music"; pname = "yandex-music";
version = "5.28.4"; version = "5.39.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cucumber-sp"; owner = "cucumber-sp";
repo = "yandex-music-linux"; repo = "yandex-music-linux";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-0YUZKklwHkZ3bDI4OLmXyj0v2wzWzJbJpQ8QQa356fI="; hash = "sha256-oEbbQRqvnK521N3Kerv18h1frVLbioFeHfb/FCkHC6Y=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -1,6 +1,6 @@
{ {
"version": "5.28.4", "version": "5.39.0",
"exe_name": "Yandex_Music_x64_5.28.4.exe", "exe_name": "Yandex_Music_x64_5.39.0.exe",
"exe_link": "https://music-desktop-application.s3.yandex.net/stable/Yandex_Music_x64_5.28.4.exe", "exe_link": "https://music-desktop-application.s3.yandex.net/stable/Yandex_Music_x64_5.39.0.exe",
"exe_hash": "sha256-fJlRtGgOJcHbAgUBxrv3AJro7uN5En9le2b+a5K2QMc=" "exe_hash": "sha256-jOaxKDOkabsNQTXH5+UGwfdL+Srjm5gjQgHe/YuGiaQ="
} }

View file

@ -8,16 +8,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "yew-fmt"; pname = "yew-fmt";
version = "0.5.3"; version = "0.5.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "its-the-shrimp"; owner = "its-the-shrimp";
repo = "yew-fmt"; repo = "yew-fmt";
tag = "v${version}"; tag = "v${version}";
hash = "sha256-Ck6WA6ROm8APTsgoxbVGUqoblc5awW+hmmzcy4ZFoBM="; hash = "sha256-2sOw8wWfnEphYsruQyhZMW3KofcGkNHJB6Q1jhFP3oo=";
}; };
cargoHash = "sha256-Fp8MT1LJ1EpqwEZ+SpOomqZ7we47w2S5ExkB966Z3r0="; cargoHash = "sha256-o4oRVI3+Nz8fwdwlyVvXUuhCQr4Bbg5Kife/PJoJCJY=";
nativeCheckInputs = [ rustfmt ]; nativeCheckInputs = [ rustfmt ];
passthru.updateScript = nix-update-script { }; passthru.updateScript = nix-update-script { };
useFetchCargoVendor = true; useFetchCargoVendor = true;

View file

@ -0,0 +1,49 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
makeWrapper,
zsh,
sqlite,
}:
stdenvNoCC.mkDerivation {
pname = "zsh-histdb";
version = "0-unstable-2024-04-18";
src = fetchFromGitHub {
owner = "larkery";
repo = "zsh-histdb";
rev = "90a6c104d0fcc0410d665e148fa7da28c49684eb";
hash = "sha256-vtG1poaRVbfb/wKPChk1WpPgDq+7udLqLfYfLqap4Vg=";
};
postPatch = ''
substituteInPlace sqlite-history.zsh \
--replace-fail 'sqlite3' '"${lib.getExe sqlite}"'
'';
buildInputs = [
zsh
];
installPhase = ''
runHook preInstall
install -Dt $out/share/zsh-histdb/ \
sqlite-history.zsh histdb-interactive.zsh histdb-{merge,migrate}
runHook postInstall
'';
meta = {
description = "History database for Zsh, based on SQLite";
homepage = "https://github.com/larkery/zsh-histdb";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
fliegendewurst
luochen1990
];
platforms = lib.platforms.unix;
};
}

View file

@ -5,7 +5,7 @@
cmake, cmake,
pkg-config, pkg-config,
removeReferencesTo, removeReferencesTo,
alsaSupport ? !stdenv.hostPlatform.isDarwin, alsaSupport ? stdenv.hostPlatform.isLinux,
alsa-lib, alsa-lib,
dbusSupport ? !stdenv.hostPlatform.isDarwin, dbusSupport ? !stdenv.hostPlatform.isDarwin,
dbus, dbus,

View file

@ -2,15 +2,18 @@
lib, lib,
fetchFromGitHub, fetchFromGitHub,
buildPythonPackage, buildPythonPackage,
pythonOlder,
hatchling,
hatch-vcs,
pyparsing, pyparsing,
six,
urwid,
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "configshell"; pname = "configshell";
version = "2.0.0"; version = "2.0.0";
format = "setuptools"; pyproject = true;
disabled = pythonOlder "3.9";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "open-iscsi"; owner = "open-iscsi";
@ -19,10 +22,13 @@ buildPythonPackage rec {
hash = "sha256-lP3WT9ASEj6WiCrurSU/e9FhIaeoQW/n9hi1XZMnV4Q="; hash = "sha256-lP3WT9ASEj6WiCrurSU/e9FhIaeoQW/n9hi1XZMnV4Q=";
}; };
propagatedBuildInputs = [ build-system = [
hatchling
hatch-vcs
];
dependencies = [
pyparsing pyparsing
six
urwid
]; ];
# Module has no tests # Module has no tests

View file

@ -34,20 +34,24 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "orbax-checkpoint"; pname = "orbax-checkpoint";
version = "0.11.6"; version = "0.11.8";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "google"; owner = "google";
repo = "orbax"; repo = "orbax";
tag = "v${version}"; tag = "v${version}";
hash = "sha256-2bnm9D+ywhploTmtZ+frwf8VuTjczBVN+wqcfe3x77I="; hash = "sha256-h7SXuOhytM9ev0Q53z0UoT9/ShPVlqgFofn7j8gnehM=";
}; };
sourceRoot = "${src.name}/checkpoint"; sourceRoot = "${src.name}/checkpoint";
build-system = [ flit-core ]; build-system = [ flit-core ];
pythonRelaxDeps = [
"jax"
];
dependencies = [ dependencies = [
absl-py absl-py
etils etils

View file

@ -3,6 +3,7 @@
buildPythonPackage, buildPythonPackage,
fetchPypi, fetchPypi,
pythonOlder, pythonOlder,
hatchling,
mmcif-pdbx, mmcif-pdbx,
numpy, numpy,
propka, propka,
@ -16,7 +17,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pdb2pqr"; pname = "pdb2pqr";
version = "3.7.1"; version = "3.7.1";
format = "setuptools"; pyproject = true;
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -27,6 +28,10 @@ buildPythonPackage rec {
pythonRelaxDeps = [ "docutils" ]; pythonRelaxDeps = [ "docutils" ];
build-system = [
hatchling
];
propagatedBuildInputs = [ propagatedBuildInputs = [
mmcif-pdbx mmcif-pdbx
numpy numpy

View file

@ -22,7 +22,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "python-roborock"; pname = "python-roborock";
version = "2.12.0"; version = "2.12.1";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.10"; disabled = pythonOlder "3.10";
@ -31,7 +31,7 @@ buildPythonPackage rec {
owner = "humbertogontijo"; owner = "humbertogontijo";
repo = "python-roborock"; repo = "python-roborock";
tag = "v${version}"; tag = "v${version}";
hash = "sha256-hJzmAvIKb1rLwGo5uYiRWYspH4d3uTdoF7k+emlCAec="; hash = "sha256-oUsnjvrPq4VcYwafZqzZkA2I9Hs75j03nOcIIO7abpk=";
}; };
postPatch = '' postPatch = ''

View file

@ -38,7 +38,7 @@
tensorboard, tensorboard,
wandb, wandb,
# checks # tests
imageio, imageio,
pytest-rerunfailures, pytest-rerunfailures,
pytestCheckHook, pytestCheckHook,
@ -48,14 +48,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "torchrl"; pname = "torchrl";
version = "0.7.1"; version = "0.7.2";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "pytorch"; owner = "pytorch";
repo = "rl"; repo = "rl";
tag = "v${version}"; tag = "v${version}";
hash = "sha256-+GE84GusipNZ18euV8ag0AbOtUrYfOxUAeXeCgF2OiI="; hash = "sha256-hcCZSASAp9jbOhbFLJndridYn76R99K+LxRxQl3uaxM=";
}; };
build-system = [ build-system = [
@ -183,7 +183,7 @@ buildPythonPackage rec {
meta = { meta = {
description = "Modular, primitive-first, python-first PyTorch library for Reinforcement Learning"; description = "Modular, primitive-first, python-first PyTorch library for Reinforcement Learning";
homepage = "https://github.com/pytorch/rl"; homepage = "https://github.com/pytorch/rl";
changelog = "https://github.com/pytorch/rl/releases/tag/${src.tag}"; changelog = "https://github.com/pytorch/rl/releases/tag/v${version}";
license = lib.licenses.mit; license = lib.licenses.mit;
maintainers = with lib.maintainers; [ GaetanLepage ]; maintainers = with lib.maintainers; [ GaetanLepage ];
# torhcrl is not compatible with our current version of gymnasium (>=1.0) # torhcrl is not compatible with our current version of gymnasium (>=1.0)

View file

@ -30,14 +30,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "ultralytics"; pname = "ultralytics";
version = "8.3.85"; version = "8.3.86";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ultralytics"; owner = "ultralytics";
repo = "ultralytics"; repo = "ultralytics";
tag = "v${version}"; tag = "v${version}";
hash = "sha256-4EiTiy4SNinNwIUvqbckaA/5YRcv6io8ssTAhwDVgsM="; hash = "sha256-9z6f/48jQVCR744ojNH+T22+JDg31+WEKWi48k5/GoY=";
}; };
postPatch = '' postPatch = ''
@ -100,7 +100,7 @@ buildPythonPackage rec {
meta = { meta = {
homepage = "https://github.com/ultralytics/ultralytics"; homepage = "https://github.com/ultralytics/ultralytics";
changelog = "https://github.com/ultralytics/ultralytics/releases/tag/v${version}"; changelog = "https://github.com/ultralytics/ultralytics/releases/tag/${src.tag}";
description = "Train YOLO models for computer vision tasks"; description = "Train YOLO models for computer vision tasks";
mainProgram = "yolo"; mainProgram = "yolo";
license = lib.licenses.agpl3Only; license = lib.licenses.agpl3Only;

View file

@ -27,14 +27,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "uproot"; pname = "uproot";
version = "5.5.2"; version = "5.6.0";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "scikit-hep"; owner = "scikit-hep";
repo = "uproot5"; repo = "uproot5";
tag = "v${version}"; tag = "v${version}";
hash = "sha256-vMTZ3ajCEkKKerPXThSxk0vgGxK2Po9hVf8ofaGCO04="; hash = "sha256-9DObKSMGx6fgU6DHafqynd7XC36zdjzp24iyaugobw8=";
}; };
build-system = [ build-system = [

View file

@ -7,13 +7,13 @@
buildGoModule rec { buildGoModule rec {
pname = "apko"; pname = "apko";
version = "0.25.1"; version = "0.25.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "chainguard-dev"; owner = "chainguard-dev";
repo = pname; repo = pname;
tag = "v${version}"; tag = "v${version}";
hash = "sha256-ElHRhEsXP3pzTkys9c8FaQODZJmFDMl4ubUIU4B1ACM="; hash = "sha256-lvxdpc8rXGgebxjFEeQOlpDfLwwe8a0QAfqApCgWAHw=";
# populate values that require us to use git. By doing this in postFetch we # populate values that require us to use git. By doing this in postFetch we
# can delete .git afterwards and maintain better reproducibility of the src. # can delete .git afterwards and maintain better reproducibility of the src.
leaveDotGit = true; leaveDotGit = true;
@ -25,7 +25,7 @@ buildGoModule rec {
find "$out" -name .git -print0 | xargs -0 rm -rf find "$out" -name .git -print0 | xargs -0 rm -rf
''; '';
}; };
vendorHash = "sha256-ddvdnnDxqwqO6xtLf5NoMT2WYNNMuvyHlo2+/A6rN0E="; vendorHash = "sha256-EE59/VyP/dK9qZuTSQqqxAhcJUh/hfSopR7x6k5Eunc=";
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];

View file

@ -6,13 +6,13 @@
buildGoModule rec { buildGoModule rec {
pname = "esbuild"; pname = "esbuild";
version = "0.25.0"; version = "0.25.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "evanw"; owner = "evanw";
repo = "esbuild"; repo = "esbuild";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-L9jm94Epb22hYsU3hoq1lZXb5aFVD4FC4x2qNt0DljA="; hash = "sha256-vrhtdrvrcC3dQoJM6hWq6wrGJLSiVww/CNPlL1N5kQ8=";
}; };
vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ="; vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";

View file

@ -44,12 +44,6 @@ stdenv.mkDerivation rec {
"SHAREWARE=${if buildShareware then "1" else "0"}" "SHAREWARE=${if buildShareware then "1" else "0"}"
]; ];
# when using SDL_compat instead of SDL1, SDL_mixer isn't correctly detected,
# but there is no harm just specifying it
env.NIX_CFLAGS_COMPILE = toString [
"-I${lib.getDev SDL_mixer}/include/SDL"
];
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall

View file

@ -432,10 +432,11 @@ let self = {
name = "modsecurity"; name = "modsecurity";
src = fetchFromGitHub { src = fetchFromGitHub {
name = "modsecurity-nginx"; name = "modsecurity-nginx";
owner = "SpiderLabs"; owner = "owasp-modsecurity";
repo = "ModSecurity-nginx"; repo = "ModSecurity-nginx";
rev = "v1.0.3"; # unstable 2025-02-17
sha256 = "sha256-xp0/eqi5PJlzb9NaUbNnzEqNcxDPyjyNwZOwmlv1+ag="; rev = "0b4f0cf38502f34a30c8543039f345cfc075670d";
hash = "sha256-P3IwKFR4NbaMXYY+O9OHfZWzka4M/wr8sJpX94LzQTU=";
}; };
inputs = [ curl geoip libmodsecurity libxml2 lmdb yajl ]; inputs = [ curl geoip libmodsecurity libxml2 lmdb yajl ];

View file

@ -9,18 +9,18 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "oxigraph"; pname = "oxigraph";
version = "0.4.8"; version = "0.4.9";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = pname; owner = pname;
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-yMXNt7pGiwYDXjmHxKUQpqNrAmnFpg21Vc5R1DmwsHc="; hash = "sha256-sv9LpAoPQ4oFrGI6j6NgVZwEwpM1wt93lHkUwnvmhIY=";
fetchSubmodules = true; fetchSubmodules = true;
}; };
useFetchCargoVendor = true; useFetchCargoVendor = true;
cargoHash = "sha256-qOGpM3SOAOMO5W3wj4ruXlymp9bV4sqOU75gMVSEyfk="; cargoHash = "sha256-nVlvmYOxZDMLvxP8JaKTyKMgW6+48B8B+UzlwgthJS0=";
nativeBuildInputs = [ nativeBuildInputs = [
rustPlatform.bindgenHook rustPlatform.bindgenHook

View file

@ -1,48 +1,48 @@
# DO NOT EDIT! This file is generated automatically by update.sh # DO NOT EDIT! This file is generated automatically by update.sh
{ }: { }:
{ {
version = "3.153.1"; version = "3.154.0";
pulumiPkgs = { pulumiPkgs = {
x86_64-linux = [ x86_64-linux = [
{ {
url = "https://get.pulumi.com/releases/sdk/pulumi-v3.153.1-linux-x64.tar.gz"; url = "https://get.pulumi.com/releases/sdk/pulumi-v3.154.0-linux-x64.tar.gz";
sha256 = "01bppw8yik697x5mwh1pjd8wpi80qzkbbsdp4lyjrsi3514d6nji"; sha256 = "1vjz37qq7q2iyxz9c482rhcdljlsxl1y1mw8mqp50zlrc785n8rr";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.35.0-linux-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.35.0-linux-amd64.tar.gz";
sha256 = "0m25l1iai6ja6n79jb1zzvmz1d087hy1ddhisb8r53nv8awdjz5b"; sha256 = "0m25l1iai6ja6n79jb1zzvmz1d087hy1ddhisb8r53nv8awdjz5b";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.6.1-linux-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v8.0.0-linux-amd64.tar.gz";
sha256 = "0k5mg57257v9h8njlx943fgrxbvszcqi9bhk41kna8j2claqdzdb"; sha256 = "1xbwvb15zgxf0vvrpdp5p0jk09kzz3f1hn15k0b3bqjal7dp51qz";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.74.0-linux-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.75.0-linux-amd64.tar.gz";
sha256 = "0jg062yhp0nx2lhixs3r7lvjzg0q5h3v1f8pvsp04y8hixq7jip8"; sha256 = "0mfr4yj59b2l8bch0dbbmznd3b2rwvsjvp2jyzlq6jpb1sfyj3cr";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v8.7.3-linux-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v8.8.0-linux-amd64.tar.gz";
sha256 = "1cn2ii8ryh46axdvnzksx5zlnd59y1bd9janid8g0pvdz9rxgvdq"; sha256 = "1kyljbg6lkc9mr6j493rjk5mnrh3ldgc8qjxmn8y3nzbc2xmcs65";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.14.0-linux-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.14.0-linux-amd64.tar.gz";
sha256 = "06kazf5r3r3cdr2cxk2afj1wjmjj0kda038j9vdpfirzpjyy47l3"; sha256 = "06kazf5r3r3cdr2cxk2afj1wjmjj0kda038j9vdpfirzpjyy47l3";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.70.0-linux-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.71.0-linux-amd64.tar.gz";
sha256 = "0cza17gkr0jd8y4rr17819n6g246jc7mlg675s0sz2dcqvkh5c6j"; sha256 = "0flwsaw3ack9sq99vbpg4k7dyh541ygvjgj0f7a9nm7j728sz9s2";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v6.2.0-linux-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v6.2.0-linux-amd64.tar.gz";
sha256 = "1fa45kzn755md2m98c8305hwqq7w414cvnbllvvdvqji2qmikh2d"; sha256 = "1fa45kzn755md2m98c8305hwqq7w414cvnbllvvdvqji2qmikh2d";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.6.0-linux-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.7.0-linux-amd64.tar.gz";
sha256 = "0h3zym30gj8lyj294zj3dimdl2wdir2vmymvv6wr392f9i22m2yn"; sha256 = "0c2rzijzfkb3kw4r4yi4hwaqmnxcz0smb0lxyqs05xzgijf74jgx";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v6.20.0-linux-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v6.21.0-linux-amd64.tar.gz";
sha256 = "1dbgwhx1ba92wh9478b24lf3c0w3d2v1q6z7dniyccjimfgdwd29"; sha256 = "18f8fap5zjrjqzmblxgpwffkqj82bhj3pl6vrmj7nlmj4q2r4i88";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.49.1-linux-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.49.1-linux-amd64.tar.gz";
@ -73,8 +73,8 @@
sha256 = "191j823pngyicvgvkjfik9n0nsws2zsqqzykzsad74w59i9cr90c"; sha256 = "191j823pngyicvgvkjfik9n0nsws2zsqqzykzsad74w59i9cr90c";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v8.20.0-linux-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v8.21.0-linux-amd64.tar.gz";
sha256 = "0lfa7kz3vc7hamsl270xijs7szhbdm09hmll6593q6x9wgmaadal"; sha256 = "1sql8napyydhf35vi4i36qf013g9ibmkr8qcd3c0vx1hslwi89hl";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.7.0-linux-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.7.0-linux-amd64.tar.gz";
@ -121,16 +121,16 @@
sha256 = "16scgz83rih511isyq7ycnm4gm94zvf6hgd86kic5s1q20lf86k9"; sha256 = "16scgz83rih511isyq7ycnm4gm94zvf6hgd86kic5s1q20lf86k9";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v1.1.2-linux-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v1.1.3-linux-amd64.tar.gz";
sha256 = "147dmg9gv8b3pifmqwjz9skvidryb8wkayvghdd6pziyqncbqwzb"; sha256 = "1ikw64y55dzhdc49mq3qy4gq2zfbvv3551295mygrz11zrjrmfzp";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.111.0-linux-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.112.0-linux-amd64.tar.gz";
sha256 = "0g4zbmn21ii3r75qb18xz4dhafyxzvfh1qmndx49p0mlqyrly950"; sha256 = "0l6s3pf2nqn4kh8px97c8qvycqm3bhgrnx0wzrsm7f1cfnpd0ss1";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v1.0.4-linux-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v1.0.5-linux-amd64.tar.gz";
sha256 = "0z0wggfg9s0x8wlvymsl030bby4id5rjhb3na0rmsjg3fjh71bsf"; sha256 = "02k9w2f9pvxhw6jsl4g7v7ppgcx4ixd855a2h1dgkallfc7ja63b";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.18.0-linux-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.18.0-linux-amd64.tar.gz";
@ -153,8 +153,8 @@
sha256 = "0h5pca5kgyjwdj9m8fd0wmygxhvjm6r5wss00wprad383mwp3s7v"; sha256 = "0h5pca5kgyjwdj9m8fd0wmygxhvjm6r5wss00wprad383mwp3s7v";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.1.7-linux-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.1.8-linux-amd64.tar.gz";
sha256 = "01y7h7k99wz1zh47qhmnzcn74b37lxngimff56rj6dhrd0ngir6k"; sha256 = "0bj4lc7g74vlsv4rqqj9ymbpbc3fdxn483wp1m6y838b3kd69hns";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-linux-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-linux-amd64.tar.gz";
@ -163,44 +163,44 @@
]; ];
x86_64-darwin = [ x86_64-darwin = [
{ {
url = "https://get.pulumi.com/releases/sdk/pulumi-v3.153.1-darwin-x64.tar.gz"; url = "https://get.pulumi.com/releases/sdk/pulumi-v3.154.0-darwin-x64.tar.gz";
sha256 = "1nzapprv3c0p3xx4fa1lssxl3fcd0hmbnmn9pnrcll1y2nsvaahb"; sha256 = "1l1n5w2b2n1vbrri2vj5wq9g97kka35qrwpz7h9bzb44gpiprjjx";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.35.0-darwin-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.35.0-darwin-amd64.tar.gz";
sha256 = "1rj4fn0m182c6laihgx3h92zyqw77qajxygv3k8md4f0b4wvnd7q"; sha256 = "1rj4fn0m182c6laihgx3h92zyqw77qajxygv3k8md4f0b4wvnd7q";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.6.1-darwin-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v8.0.0-darwin-amd64.tar.gz";
sha256 = "0nczhgib7hcyh7midm0s5b8zbi76lkyfz76c3lmkqnr0kj5nzb5y"; sha256 = "1vrywndkhhr3k2ckpy7rxm910mq70ks1r36dnfa10pb53hhl1ngp";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.74.0-darwin-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.75.0-darwin-amd64.tar.gz";
sha256 = "1mm51klxsqsgdz53m7zfbw3fh5vwwn1l1rxzwd1hjhm3giasqfv9"; sha256 = "18y8vr13dcpwg9mdwfn2mh5bww782wx7j8wxvv8j0xnv6ikwgaxm";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v8.7.3-darwin-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v8.8.0-darwin-amd64.tar.gz";
sha256 = "19a5sfg2j74ji73cszsqak4gdyk1x7l7p0rpss8j5xnwbyw1y0nf"; sha256 = "10zkqc02lpf9k0brykyngsasi189w167f6v24cp8sl1agbdcqb9f";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.14.0-darwin-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.14.0-darwin-amd64.tar.gz";
sha256 = "1yclkdpmm8y92wbyhb87h3vdhcibhcvfppv1nvwhqd3bbx3zk1rb"; sha256 = "1yclkdpmm8y92wbyhb87h3vdhcibhcvfppv1nvwhqd3bbx3zk1rb";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.70.0-darwin-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.71.0-darwin-amd64.tar.gz";
sha256 = "07r7a28qgn1m8g7sk6x66r01m9yvpccxwkqsic3x6rz7rar8aifq"; sha256 = "09zrx8xxmp3nfj0vaznn4k2q24r6hjv5z1ip0vxa2jx2m2j3jd9c";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v6.2.0-darwin-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v6.2.0-darwin-amd64.tar.gz";
sha256 = "0znbyyh84ygbscm7db10bbzhma23kxy8aqpcnf5hd0l1fvphyw4h"; sha256 = "0znbyyh84ygbscm7db10bbzhma23kxy8aqpcnf5hd0l1fvphyw4h";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.6.0-darwin-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.7.0-darwin-amd64.tar.gz";
sha256 = "1j952sjqhp42a1s8fxn5li8mjfvl9as3ydhwdpslx8pzc8ykr2zj"; sha256 = "05fabrw15x9rsyib1lxvwd78kcy241hfqdbqgpilf83isavf6s8y";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v6.20.0-darwin-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v6.21.0-darwin-amd64.tar.gz";
sha256 = "01ry0xj3hghqcp0jp5jfmxnkgk1cf9nz356glma21dsfv5c9h2gc"; sha256 = "1kzx16rv67ck7pnlyrmq7407bq41agfwxn7c70l0wsnp5y2l6zwj";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.49.1-darwin-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.49.1-darwin-amd64.tar.gz";
@ -231,8 +231,8 @@
sha256 = "0qqzfdibgwzgnv79as3l6k8hh4nviq2i0xsgzsvjkklzf2szyh8k"; sha256 = "0qqzfdibgwzgnv79as3l6k8hh4nviq2i0xsgzsvjkklzf2szyh8k";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v8.20.0-darwin-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v8.21.0-darwin-amd64.tar.gz";
sha256 = "1vnv7njpcf7x2vmjhrrpqgjn82wkbq1rr32yankzbrfyzkpsmwck"; sha256 = "00qmmnwc2i9n7r415bmjzb66wr9ragvkydgs8njjz7hsfz97girg";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.7.0-darwin-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.7.0-darwin-amd64.tar.gz";
@ -279,16 +279,16 @@
sha256 = "0gkazxwkmb5317amaqb3h34ras7b2vxblaybz2llp47w4qnvq834"; sha256 = "0gkazxwkmb5317amaqb3h34ras7b2vxblaybz2llp47w4qnvq834";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v1.1.2-darwin-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v1.1.3-darwin-amd64.tar.gz";
sha256 = "02mq6mnjbfkhwfm9fsgixw8imnxyrgl3zjh2v7z6la0qn888k9yi"; sha256 = "1ahmp1za19qf6gg2nmgqxqr0xg24pavx9q8gf917gmmj4gx4b2ws";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.111.0-darwin-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.112.0-darwin-amd64.tar.gz";
sha256 = "1q40y7d7mrr94afwbbyh8zi2liz37zz491ff82lxf31h2nbrcacv"; sha256 = "1fxgshs66kqiyw50b347bzzx67mzhmmzr3qfn0nj3yfhsnb1bbky";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v1.0.4-darwin-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v1.0.5-darwin-amd64.tar.gz";
sha256 = "1rc717psnir7hpl9az29z232zgkp2dnzfjsph6v3lm44qd0yw9dq"; sha256 = "1ijy38aqk6mkzh5bkdd7d10ips77rqk10dic6sdx79hfay16i4g7";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.18.0-darwin-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.18.0-darwin-amd64.tar.gz";
@ -311,8 +311,8 @@
sha256 = "1risgn050qs9yb0r7wx9z1xfw4ai50b5f6fzqchmaw4wpqj83j4h"; sha256 = "1risgn050qs9yb0r7wx9z1xfw4ai50b5f6fzqchmaw4wpqj83j4h";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.1.7-darwin-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.1.8-darwin-amd64.tar.gz";
sha256 = "1vpg87kw3i9zqk0x73l6xg0i6k9vyqilwsppz1kjg2jg91hm9aww"; sha256 = "1hrkfl5nqazcf7k6aazi4n8p1d2965ffqfl9wgv6cmzpabwbmc01";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-darwin-amd64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-darwin-amd64.tar.gz";
@ -321,44 +321,44 @@
]; ];
aarch64-linux = [ aarch64-linux = [
{ {
url = "https://get.pulumi.com/releases/sdk/pulumi-v3.153.1-linux-arm64.tar.gz"; url = "https://get.pulumi.com/releases/sdk/pulumi-v3.154.0-linux-arm64.tar.gz";
sha256 = "18lq4gzc4hk8yxs5s4fxqixxh4dywak3rhri0pqpc9hidiqccwgs"; sha256 = "16324963a5laa2lvv75gvh9pb0mpvg1y0m7rr4c6cppi7iachv3f";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.35.0-linux-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.35.0-linux-arm64.tar.gz";
sha256 = "0jb91frd5y0bqbps1yqjqvdcdjs5xnyycs1iil5hrlr3c5gzmbhk"; sha256 = "0jb91frd5y0bqbps1yqjqvdcdjs5xnyycs1iil5hrlr3c5gzmbhk";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.6.1-linux-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v8.0.0-linux-arm64.tar.gz";
sha256 = "054pcilsi1qfnf2him7hb0nw9r1w7q47c60ska3cmw27q1xjvjsk"; sha256 = "1166ih4sk9ya1m0sdvhvh8xhzmx8dpmzfg8l8jfn2i2af4w1iij2";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.74.0-linux-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.75.0-linux-arm64.tar.gz";
sha256 = "1ihf580aad9cz95211jxk7l4mvwnxhlvdmxlr70h4drjp377y59h"; sha256 = "17vzdi28awlplgmyv6zsb5ccya8yqii3j6wz742wd47w666lkbq9";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v8.7.3-linux-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v8.8.0-linux-arm64.tar.gz";
sha256 = "0n2kiqcqpkqiapzvh1a5cz1sv0431k4c0s62wczbynyj8f838ywk"; sha256 = "0a07fhkjivn8r2qfc4ads89a6s9fh3dm0n49iwj8j6zfnbwl2kdz";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.14.0-linux-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.14.0-linux-arm64.tar.gz";
sha256 = "0xpfjwdhapyfc1562pxbvgmcmljvvsxdiymrwvcfhn08sdgpmas2"; sha256 = "0xpfjwdhapyfc1562pxbvgmcmljvvsxdiymrwvcfhn08sdgpmas2";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.70.0-linux-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.71.0-linux-arm64.tar.gz";
sha256 = "1vcin5gkwv79xq5zrixqgipzyca7rdvq5rlfv9iwxmyh8dwa2kyl"; sha256 = "1xxa6xxhrf4wvwv27v48mm5hw1i62m6r3chif8c8ql0cv32n2m4w";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v6.2.0-linux-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v6.2.0-linux-arm64.tar.gz";
sha256 = "0n53hh16ggv1cmj21hy0hqn92lvfnqdan57l0a7lqwx5r433mlrg"; sha256 = "0n53hh16ggv1cmj21hy0hqn92lvfnqdan57l0a7lqwx5r433mlrg";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.6.0-linux-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.7.0-linux-arm64.tar.gz";
sha256 = "1d4a5xyx55mscqq4wqgvilfagk8mg49xnhwp5vx1i274kgdq7a7z"; sha256 = "0fyhx0zvibb5msgiw0k8f8n9a957n6lbpkpg9kbp5ylhsjafi5ry";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v6.20.0-linux-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v6.21.0-linux-arm64.tar.gz";
sha256 = "00mhcz8lyjlgxwan69br5bq1bvzglcnclwmpplcrzpwsqiwbgwss"; sha256 = "1nipp4f4q61fwnr4wh99hc9an5qb572rfj0kbjw5pn9fhgy86nc4";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.49.1-linux-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.49.1-linux-arm64.tar.gz";
@ -389,8 +389,8 @@
sha256 = "1dyg5k7giny2d26yw222kahdnbfwmhr8d1nkrn3i1ycqsb1g573j"; sha256 = "1dyg5k7giny2d26yw222kahdnbfwmhr8d1nkrn3i1ycqsb1g573j";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v8.20.0-linux-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v8.21.0-linux-arm64.tar.gz";
sha256 = "1vkdjyywikqkw1capz6ky3ggdqmiwaz9gxr0mx5g8sbd4vzssx0l"; sha256 = "1pzzlvh8bd4pillyb0mr6ba458fjqh3ab310wvih559gzg4fz85j";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.7.0-linux-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.7.0-linux-arm64.tar.gz";
@ -437,16 +437,16 @@
sha256 = "14y4jwzlxq0icjw7b3drfgv0kg2a9xl691r59388k9d193yh31n3"; sha256 = "14y4jwzlxq0icjw7b3drfgv0kg2a9xl691r59388k9d193yh31n3";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v1.1.2-linux-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v1.1.3-linux-arm64.tar.gz";
sha256 = "1qghb1kj1flr36hcpk2r85ly833hm3z80lvwdw8rh2gz8ch6wi21"; sha256 = "1p7aahp9zfk5qhiw2h6wf11is4xnz6j7f1dcm69xli8x0wjib9kc";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.111.0-linux-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.112.0-linux-arm64.tar.gz";
sha256 = "0xc8bv6qj8g7cqhpi37gm4f2hcdzpr3j4pnrh4hxxvxhcsfy6ywc"; sha256 = "081pvgl2sshdjzn3rgal955crcf9pald3qn35bqw6xrzz7a3sv6r";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v1.0.4-linux-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v1.0.5-linux-arm64.tar.gz";
sha256 = "0f1zpcn0b0hd2kb1adigqp5zd2k7glxdav785yrg7zhq3gccmklw"; sha256 = "0i211g9bq48nhrglqmz8410qp5yby33b3mbkvasarywii6mic2q5";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.18.0-linux-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.18.0-linux-arm64.tar.gz";
@ -469,8 +469,8 @@
sha256 = "1wkcrvyw9r0j4vy3nmgsypzak8ld2750rc3cd88m0q9qi22vi6hm"; sha256 = "1wkcrvyw9r0j4vy3nmgsypzak8ld2750rc3cd88m0q9qi22vi6hm";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.1.7-linux-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.1.8-linux-arm64.tar.gz";
sha256 = "1haa6syws9744zjwgvh5p6lq15xpb1ha7zqga8giig13wligcxvv"; sha256 = "0pwxqlgsxn0fpq21p4rk7lsb2rlvig2paszwpvyzpfpzksn66mvm";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-linux-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-linux-arm64.tar.gz";
@ -479,44 +479,44 @@
]; ];
aarch64-darwin = [ aarch64-darwin = [
{ {
url = "https://get.pulumi.com/releases/sdk/pulumi-v3.153.1-darwin-arm64.tar.gz"; url = "https://get.pulumi.com/releases/sdk/pulumi-v3.154.0-darwin-arm64.tar.gz";
sha256 = "0bhwdkvqzsvl898ndhfs20affrnidkblcpibpzncsha1cycl3jnl"; sha256 = "07vpsiqr23sd9xiib35zwxnm3axadg2cvkdmkygvvhk0rzdb7zzl";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.35.0-darwin-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.35.0-darwin-arm64.tar.gz";
sha256 = "1lbv0bd6kz0d50306b9y27xllf2lmmwnj5fz15p36p1dawz029r1"; sha256 = "1lbv0bd6kz0d50306b9y27xllf2lmmwnj5fz15p36p1dawz029r1";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.6.1-darwin-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v8.0.0-darwin-arm64.tar.gz";
sha256 = "1x3jajip18dhs39bpi3yyj3mcwcyyxd4ijnsbq71a98cws55iipq"; sha256 = "0spsr6asi7vhml7fwplidzjphkr01zifmb61aj11hxwmpkldhwz8";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.74.0-darwin-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.75.0-darwin-arm64.tar.gz";
sha256 = "1m71v28yr25ikj0sfd8h9dfnpd53g4jhs6lcxjzz9mb645vvsl0h"; sha256 = "0c4krcnw4kh8wxrvrcfv0j2i276zmsbxiiiph19m3263ddi6i99x";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v8.7.3-darwin-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v8.8.0-darwin-arm64.tar.gz";
sha256 = "1g3badq0zhjs69lyh6d9mpj0c77jqlgapbm03scbamgjzq0zzbdl"; sha256 = "01glc6mn5k6qyk65qkzhbmkrhlwzlmdkvx8d8mkgm7fprdwaxfv0";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.14.0-darwin-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.14.0-darwin-arm64.tar.gz";
sha256 = "09ss5j92ra4bs5vmsqq2sgs30nalsb1bs3s0njn72fsc1cd6n0qz"; sha256 = "09ss5j92ra4bs5vmsqq2sgs30nalsb1bs3s0njn72fsc1cd6n0qz";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.70.0-darwin-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.71.0-darwin-arm64.tar.gz";
sha256 = "1v8yid6dd6i3nnf62m37mlgwqjy68dgd0k8zkw3q8qs1r9mf8wfq"; sha256 = "06bah84cq2bhg4zxm0m70wrz1cr9mhixqz5n9q7q5l36hw6x1jmd";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v6.2.0-darwin-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v6.2.0-darwin-arm64.tar.gz";
sha256 = "0zsvaz2shh35lw5c4sqvg39wrfsqk514z2nd9jzvjrnbwmwps6zd"; sha256 = "0zsvaz2shh35lw5c4sqvg39wrfsqk514z2nd9jzvjrnbwmwps6zd";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.6.0-darwin-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.7.0-darwin-arm64.tar.gz";
sha256 = "1x4ij8qv9jq39fbacirjvk96hc117da5ll3fzrmgpkvjc1mall01"; sha256 = "0mmpf4ggzhimm6mhf2p0jydc78wm7wqbm180g6066dd84izi9dsi";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v6.20.0-darwin-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v6.21.0-darwin-arm64.tar.gz";
sha256 = "114njwjir2zk6fzfxiyjch97js6p0v2cr41v199zm2ff0h90727q"; sha256 = "1f9vd95jw2s3yvssnv5xx5l4fzhklyb11rlhvl42cccfgndj7g6j";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.49.1-darwin-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.49.1-darwin-arm64.tar.gz";
@ -547,8 +547,8 @@
sha256 = "17cm719jsh6rc7lwd64kg7qdlxlclvwrky9598f85kbvnv6n0xa8"; sha256 = "17cm719jsh6rc7lwd64kg7qdlxlclvwrky9598f85kbvnv6n0xa8";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v8.20.0-darwin-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v8.21.0-darwin-arm64.tar.gz";
sha256 = "1l3jl4nwvhp58lybv4lll2qb8d400nx6kb504prh84i67my685ni"; sha256 = "1r3w1vw0d0qn2vnv4a0n81q3dpw4m7cs34gryvfvllp5f7m8zn31";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.7.0-darwin-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.7.0-darwin-arm64.tar.gz";
@ -595,16 +595,16 @@
sha256 = "1aqlwj0v0x2ipjvalzry8g4g5y28pm52q8mriirmimml0vavlib8"; sha256 = "1aqlwj0v0x2ipjvalzry8g4g5y28pm52q8mriirmimml0vavlib8";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v1.1.2-darwin-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v1.1.3-darwin-arm64.tar.gz";
sha256 = "022x01wxl7zj65n25slijnb0is266xrg26sbb1z408bipv4svxgk"; sha256 = "1sayvk6h8g2n5g9zb0drsqpibzlsm9k0zp4dvkcgf68iw32fpzxz";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.111.0-darwin-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.112.0-darwin-arm64.tar.gz";
sha256 = "1jjqhkfciinwjp6i4qlfjs826m88wncz5v5ppg9mwa9wmnyagi3l"; sha256 = "0cpi6q4rm2kfvycfva6h3qqj62x3469qlxv034rx4q4jahxnd4zn";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v1.0.4-darwin-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v1.0.5-darwin-arm64.tar.gz";
sha256 = "18iw3nkmygsdb0mjdgx5h2ny834vlnd5g1f5nm9gkrs5594sqgf3"; sha256 = "1j8r4ghifhxx1i3g9l0drbdgdigq59q1gkkr2j8y2626fypgddjh";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.18.0-darwin-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.18.0-darwin-arm64.tar.gz";
@ -627,8 +627,8 @@
sha256 = "0xw51rfh9vv0dbdzkjz6yrhj86f691cdg40ax085zk0g31x2g1cm"; sha256 = "0xw51rfh9vv0dbdzkjz6yrhj86f691cdg40ax085zk0g31x2g1cm";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.1.7-darwin-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.1.8-darwin-arm64.tar.gz";
sha256 = "1c2h6yxgx395mf8z61n29xwcx85qq373fcvv5w620zj1y3l8ff57"; sha256 = "1mmnn6my6v0mj28fqgiymdwfjsmj3rcb1nf7aj92kp3m38a0gcjs";
} }
{ {
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-darwin-arm64.tar.gz"; url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-darwin-arm64.tar.gz";

View file

@ -21,13 +21,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libmodsecurity"; pname = "libmodsecurity";
version = "3.0.13"; version = "3.0.14";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "owasp-modsecurity"; owner = "owasp-modsecurity";
repo = "ModSecurity"; repo = "ModSecurity";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-+z31t007NLCAFG/Lsj5j/AbBDPkI2wjbH5yM5vipH04="; hash = "sha256-SaeBO3+WvPhHiJoiOmijB0G3/QYxjAdxgeCVqESS+4U=";
fetchSubmodules = true; fetchSubmodules = true;
}; };