0
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-07-13 21:50: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 = {
shared_preload_libraries = mkOption {
type = nullOr (coercedTo (listOf str) (concatStringsSep ", ") str);
type = nullOr (coercedTo (listOf str) (concatStringsSep ",") commas);
default = null;
example = literalExpression ''[ "auto_explain" "anon" ]'';
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 {
type = with types; listOf str;
default = [ ];
@ -468,7 +476,6 @@ let
++ map escapeShellArg container.preRunExtraOptions
++ [
"run"
"--rm"
"--name=${escapedName}"
"--log-driver=${container.log-driver}"
]
@ -489,6 +496,7 @@ let
++ (mapAttrsToList (k: v: "-l ${escapeShellArg k}=${escapeShellArg v}") container.labels)
++ optional (container.workdir != null) "-w ${escapeShellArg container.workdir}"
++ optional (container.privileged) "--privileged"
++ optional (container.autoRemoveOnStop) "--rm"
++ mapAttrsToList (k: _: "--cap-add=${escapeShellArg k}") (
filterAttrs (_: v: v == true) container.capabilities
)

View file

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

View file

@ -1,210 +1,211 @@
import ./make-test-python.nix (
{ pkgs, lib, ... }:
{
name = "babeld";
meta = with pkgs.lib.maintainers; {
maintainers = [ hexa ];
};
{
pkgs,
...
}:
{
name = "babeld";
meta = with pkgs.lib.maintainers; {
maintainers = [ hexa ];
};
nodes = {
client =
{ pkgs, lib, ... }:
{
virtualisation.vlans = [ 10 ];
nodes = {
client =
{ lib, ... }:
{
virtualisation.vlans = [ 10 ];
networking = {
useDHCP = false;
interfaces."eth1" = {
ipv4.addresses = lib.mkForce [
{
address = "192.168.10.2";
prefixLength = 24;
}
];
ipv4.routes = lib.mkForce [
{
address = "0.0.0.0";
prefixLength = 0;
via = "192.168.10.1";
}
];
ipv6.addresses = lib.mkForce [
{
address = "2001:db8:10::2";
prefixLength = 64;
}
];
ipv6.routes = lib.mkForce [
{
address = "::";
prefixLength = 0;
via = "2001:db8:10::1";
}
];
};
networking = {
useDHCP = false;
interfaces."eth1" = {
ipv4.addresses = lib.mkForce [
{
address = "192.168.10.2";
prefixLength = 24;
}
];
ipv4.routes = lib.mkForce [
{
address = "0.0.0.0";
prefixLength = 0;
via = "192.168.10.1";
}
];
ipv6.addresses = lib.mkForce [
{
address = "2001:db8:10::2";
prefixLength = 64;
}
];
ipv6.routes = lib.mkForce [
{
address = "::";
prefixLength = 0;
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 =
{ pkgs, lib, ... }:
{
virtualisation.vlans = [
10
20
];
services.babeld = {
enable = true;
interfaces.eth2 = {
hello-interval = 1;
type = "wired";
};
extraConfig = ''
local-port-readwrite 33123
networking = {
useDHCP = false;
firewall.enable = false;
import-table 254 # main
export-table 254 # main
interfaces."eth1" = {
ipv4.addresses = lib.mkForce [
{
address = "192.168.10.1";
prefixLength = 24;
}
];
ipv6.addresses = lib.mkForce [
{
address = "2001:db8:10::1";
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
interfaces."eth2" = {
ipv4.addresses = lib.mkForce [
{
address = "192.168.20.1";
prefixLength = 24;
}
];
ipv6.addresses = lib.mkForce [
{
address = "2001:db8:20::1";
prefixLength = 64;
}
];
};
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 =
{ 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 = {
enable = true;
interfaces.eth2 = {
hello-interval = 1;
type = "wired";
};
extraConfig = ''
local-port-readwrite 33123
import-table 254 # main
export-table 254 # main
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
'';
interfaces."eth2" = {
ipv4.addresses = lib.mkForce [
{
address = "192.168.30.1";
prefixLength = 24;
}
];
ipv6.addresses = lib.mkForce [
{
address = "2001:db8:30::1";
prefixLength = 64;
}
];
};
};
remote_router =
{ pkgs, 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;
}
];
};
interfaces."eth2" = {
ipv4.addresses = lib.mkForce [
{
address = "192.168.30.1";
prefixLength = 24;
}
];
ipv6.addresses = lib.mkForce [
{
address = "2001:db8:30::1";
prefixLength = 64;
}
];
};
services.babeld = {
enable = true;
interfaces.eth1 = {
hello-interval = 1;
type = "wired";
};
extraConfig = ''
local-port-readwrite 33123
services.babeld = {
enable = true;
interfaces.eth1 = {
hello-interval = 1;
type = "wired";
};
extraConfig = ''
local-port-readwrite 33123
import-table 254 # main
export-table 254 # main
import-table 254 # main
export-table 254 # main
in ip 192.168.20.0/24 deny
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.30.0/24 deny
in ip 2001:db8:20::/64 deny
in ip 2001:db8:30::/64 deny
in ip 192.168.10.0/24 allow
in ip 2001:db8:10::/64 allow
in ip 192.168.10.0/24 allow
in ip 2001:db8:10::/64 allow
in deny
redistribute local proto 2
redistribute local deny
'';
};
in deny
redistribute local proto 2
redistribute local deny
'';
};
};
testScript = ''
start_all()
};
};
local_router.wait_for_unit("babeld.service")
remote_router.wait_for_unit("babeld.service")
testScript = ''
start_all()
local_router.wait_until_succeeds("ip route get 192.168.30.1")
local_router.wait_until_succeeds("ip route get 2001:db8:30::1")
local_router.wait_for_unit("babeld.service")
remote_router.wait_for_unit("babeld.service")
remote_router.wait_until_succeeds("ip route get 192.168.10.1")
remote_router.wait_until_succeeds("ip route get 2001:db8:10::1")
local_router.wait_until_succeeds("ip route get 192.168.30.1")
local_router.wait_until_succeeds("ip route get 2001:db8:30::1")
client.succeed("ping -c1 192.168.30.1")
client.succeed("ping -c1 2001:db8:30::1")
remote_router.wait_until_succeeds("ip route get 192.168.10.1")
remote_router.wait_until_succeeds("ip route get 2001:db8:10::1")
remote_router.succeed("ping -c1 192.168.10.2")
remote_router.succeed("ping -c1 2001:db8:10::2")
'';
}
)
client.succeed("ping -c1 192.168.30.1")
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";
meta.maintainers = with lib.maintainers; [ hexa ];
{
name = "botamusique";
meta.maintainers = with lib.maintainers; [ hexa ];
nodes = {
machine =
{ config, ... }:
{
networking.extraHosts = ''
127.0.0.1 all.api.radio-browser.info
'';
nodes = {
machine =
{ config, ... }:
{
networking.extraHosts = ''
127.0.0.1 all.api.radio-browser.info
'';
services.murmur = {
enable = true;
registerName = "NixOS tests";
};
services.murmur = {
enable = true;
registerName = "NixOS tests";
};
services.botamusique = {
enable = true;
settings = {
server = {
channel = "NixOS tests";
};
bot = {
version = false;
auto_check_update = false;
};
services.botamusique = {
enable = true;
settings = {
server = {
channel = "NixOS tests";
};
bot = {
version = false;
auto_check_update = false;
};
};
};
};
};
};
testScript = ''
start_all()
testScript = ''
start_all()
machine.wait_for_unit("murmur.service")
machine.wait_for_unit("botamusique.service")
machine.wait_for_unit("murmur.service")
machine.wait_for_unit("botamusique.service")
machine.sleep(10)
machine.sleep(10)
machine.wait_until_succeeds(
"journalctl -u murmur.service -e | grep -q '<1:botamusique(-1)> Authenticated'"
)
machine.wait_until_succeeds(
"journalctl -u murmur.service -e | grep -q '<1:botamusique(-1)> Authenticated'"
)
with subtest("Check systemd hardening"):
output = machine.execute("systemctl show botamusique.service")[1]
machine.log(output)
output = machine.execute("systemd-analyze security botamusique.service")[1]
machine.log(output)
'';
}
)
with subtest("Check systemd hardening"):
output = machine.execute("systemctl show botamusique.service")[1]
machine.log(output)
output = machine.execute("systemd-analyze security botamusique.service")[1]
machine.log(output)
'';
}

View file

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

View file

@ -1,53 +1,54 @@
import ./make-test-python.nix (
{ pkgs, ... }:
{
name = "go-neb";
meta = with pkgs.lib.maintainers; {
maintainers = [
hexa
maralorn
];
};
{
pkgs,
...
}:
{
name = "go-neb";
meta = with pkgs.lib.maintainers; {
maintainers = [
hexa
maralorn
];
};
nodes = {
server = {
services.go-neb = {
enable = true;
baseUrl = "http://localhost";
secretFile = pkgs.writeText "secrets" "ACCESS_TOKEN=changeme";
config = {
clients = [
{
UserId = "@test:localhost";
AccessToken = "$ACCESS_TOKEN";
HomeServerUrl = "http://localhost";
Sync = false;
AutoJoinRooms = false;
DisplayName = "neverbeseen";
}
];
services = [
{
ID = "wikipedia_service";
Type = "wikipedia";
UserID = "@test:localhost";
Config = { };
}
];
};
nodes = {
server = {
services.go-neb = {
enable = true;
baseUrl = "http://localhost";
secretFile = pkgs.writeText "secrets" "ACCESS_TOKEN=changeme";
config = {
clients = [
{
UserId = "@test:localhost";
AccessToken = "$ACCESS_TOKEN";
HomeServerUrl = "http://localhost";
Sync = false;
AutoJoinRooms = false;
DisplayName = "neverbeseen";
}
];
services = [
{
ID = "wikipedia_service";
Type = "wikipedia";
UserID = "@test:localhost";
Config = { };
}
];
};
};
};
};
testScript = ''
start_all()
server.wait_for_unit("go-neb.service")
server.wait_until_succeeds("curl -fL http://localhost:4050/services/hooks/d2lraXBlZGlhX3NlcnZpY2U")
server.succeed(
"journalctl -eu go-neb -o cat | grep -q service_id=wikipedia_service",
"grep -q changeme /var/run/go-neb/config.yaml",
)
'';
testScript = ''
start_all()
server.wait_for_unit("go-neb.service")
server.wait_until_succeeds("curl -fL http://localhost:4050/services/hooks/d2lraXBlZGlhX3NlcnZpY2U")
server.succeed(
"journalctl -eu go-neb -o cat | grep -q service_id=wikipedia_service",
"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
# address.
import ./make-test-python.nix (
{ pkgs, lib, ... }:
{
meta.maintainers = with lib.maintainers; [ hexa ];
{
pkgs,
lib,
...
}:
{
meta.maintainers = with lib.maintainers; [ hexa ];
name = "kea";
name = "kea";
nodes = {
router =
{ config, pkgs, ... }:
{
virtualisation.vlans = [ 1 ];
nodes = {
router =
{ config, pkgs, ... }:
{
virtualisation.vlans = [ 1 ];
networking = {
useDHCP = false;
firewall.allowedUDPPorts = [ 67 ];
};
networking = {
useDHCP = false;
firewall.allowedUDPPorts = [ 67 ];
};
systemd.network = {
enable = true;
networks = {
"01-eth1" = {
name = "eth1";
networkConfig = {
Address = "10.0.0.1/29";
};
systemd.network = {
enable = true;
networks = {
"01-eth1" = {
name = "eth1";
networkConfig = {
Address = "10.0.0.1/29";
};
};
};
};
services.kea.dhcp4 = {
enable = true;
settings = {
valid-lifetime = 3600;
renew-timer = 900;
rebind-timer = 1800;
services.kea.dhcp4 = {
enable = true;
settings = {
valid-lifetime = 3600;
renew-timer = 900;
rebind-timer = 1800;
lease-database = {
type = "memfile";
persist = true;
name = "/var/lib/kea/dhcp4.leases";
};
lease-database = {
type = "memfile";
persist = true;
name = "/var/lib/kea/dhcp4.leases";
};
control-socket = {
socket-type = "unix";
socket-name = "/run/kea/dhcp4.sock";
};
control-socket = {
socket-type = "unix";
socket-name = "/run/kea/dhcp4.sock";
};
interfaces-config = {
dhcp-socket-type = "raw";
interfaces = [
"eth1"
interfaces-config = {
dhcp-socket-type = "raw";
interfaces = [
"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;
subnet = "10.0.0.0/29";
pools = [
name = "lan.nixos.test.";
# Use a TSIG key in production!
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 = {
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 = [
{
name = "lan.nixos.test.";
# Use a TSIG key in production!
key-name = "";
dns-servers = [
{
ip-address = "10.0.0.2";
port = 53;
}
];
}
];
services.kea.ctrl-agent = {
enable = true;
settings = {
http-host = "127.0.0.1";
http-port = 8000;
control-sockets.dhcp4 = {
socket-type = "unix";
socket-name = "/run/kea/dhcp4.sock";
};
};
};
services.prometheus.exporters.kea = {
enable = true;
controlSocketPaths = [
"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 = {
enable = true;
settings = {
http-host = "127.0.0.1";
http-port = 8000;
control-sockets.dhcp4 = {
socket-type = "unix";
socket-name = "/run/kea/dhcp4.sock";
};
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 ];
};
};
services.prometheus.exporters.kea = {
in
{
enable = true;
controlSocketPaths = [
"http://127.0.0.1:8000"
extraArgs = [
"-v"
];
};
};
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 = [
"0.0.0.0@53"
];
settings = {
server.listen = [
"0.0.0.0@53"
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"
];
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 =
{ ... }:
''
start_all()
router.wait_for_unit("kea-dhcp4-server.service")
client.systemctl("start systemd-networkd-wait-online.service")
client.wait_for_unit("systemd-networkd-wait-online.service")
client.wait_until_succeeds("ping -c 5 10.0.0.1")
router.wait_until_succeeds("ping -c 5 10.0.0.3")
nameserver.wait_until_succeeds("kdig +short client.lan.nixos.test @10.0.0.2 | grep -q 10.0.0.3")
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$'")
'';
}
)
};
};
testScript =
{ ... }:
''
start_all()
router.wait_for_unit("kea-dhcp4-server.service")
client.systemctl("start systemd-networkd-wait-online.service")
client.wait_for_unit("systemd-networkd-wait-online.service")
client.wait_until_succeeds("ping -c 5 10.0.0.1")
router.wait_until_succeeds("ping -c 5 10.0.0.3")
nameserver.wait_until_succeeds("kdig +short client.lan.nixos.test @10.0.0.2 | grep -q 10.0.0.3")
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, ... }:
let
common = {
networking.firewall.enable = false;
networking.useDHCP = false;
};
exampleZone = pkgs.writeTextDir "example.com.zone" ''
@ SOA ns.example.com. noc.example.com. 2019031301 86400 7200 3600000 172800
@ NS ns1
@ NS ns2
ns1 A 192.168.0.1
ns1 AAAA fd00::1
ns2 A 192.168.0.2
ns2 AAAA fd00::2
www A 192.0.2.1
www AAAA 2001:DB8::1
sub NS ns.example.com.
'';
delegatedZone = pkgs.writeTextDir "sub.example.com.zone" ''
@ SOA ns.example.com. noc.example.com. 2019031301 86400 7200 3600000 172800
@ NS ns1.example.com.
@ NS ns2.example.com.
@ A 192.0.2.2
@ AAAA 2001:DB8::2
'';
{
pkgs,
lib,
...
}:
let
common = {
networking.firewall.enable = false;
networking.useDHCP = false;
};
exampleZone = pkgs.writeTextDir "example.com.zone" ''
@ SOA ns.example.com. noc.example.com. 2019031301 86400 7200 3600000 172800
@ NS ns1
@ NS ns2
ns1 A 192.168.0.1
ns1 AAAA fd00::1
ns2 A 192.168.0.2
ns2 AAAA fd00::2
www A 192.0.2.1
www AAAA 2001:DB8::1
sub NS ns.example.com.
'';
delegatedZone = pkgs.writeTextDir "sub.example.com.zone" ''
@ SOA ns.example.com. noc.example.com. 2019031301 86400 7200 3600000 172800
@ NS ns1.example.com.
@ NS ns2.example.com.
@ A 192.0.2.2
@ AAAA 2001:DB8::2
'';
knotZonesEnv = pkgs.buildEnv {
name = "knot-zones";
paths = [
exampleZone
delegatedZone
];
};
# DO NOT USE pkgs.writeText IN PRODUCTION. This put secrets in the nix store!
tsigFile = pkgs.writeText "tsig.conf" ''
key:
- id: xfr_key
algorithm: hmac-sha256
secret: zOYgOgnzx3TGe5J5I/0kxd7gTcxXhLYMEq3Ek3fY37s=
'';
in
{
name = "knot";
meta = with pkgs.lib.maintainers; {
maintainers = [ hexa ];
};
knotZonesEnv = pkgs.buildEnv {
name = "knot-zones";
paths = [
exampleZone
delegatedZone
];
};
# DO NOT USE pkgs.writeText IN PRODUCTION. This put secrets in the nix store!
tsigFile = pkgs.writeText "tsig.conf" ''
key:
- id: xfr_key
algorithm: hmac-sha256
secret: zOYgOgnzx3TGe5J5I/0kxd7gTcxXhLYMEq3Ek3fY37s=
'';
in
{
name = "knot";
meta = with pkgs.lib.maintainers; {
maintainers = [ hexa ];
};
nodes = {
primary =
{ lib, ... }:
{
imports = [ common ];
nodes = {
primary =
{ lib, ... }:
{
imports = [ common ];
# trigger sched_setaffinity syscall
virtualisation.cores = 2;
# trigger sched_setaffinity syscall
virtualisation.cores = 2;
networking.interfaces.eth1 = {
ipv4.addresses = lib.mkForce [
{
address = "192.168.0.1";
prefixLength = 24;
}
networking.interfaces.eth1 = {
ipv4.addresses = lib.mkForce [
{
address = "192.168.0.1";
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 [
{
address = "fd00::1";
prefixLength = 64;
}
listen-quic = [
"0.0.0.0@853"
"::@853"
];
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";
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";
};
prefixLength = 24;
}
];
ipv6.addresses = lib.mkForce [
{
address = "fd00::2";
prefixLength = 64;
}
];
};
secondary =
{ lib, ... }:
{
imports = [ common ];
networking.interfaces.eth1 = {
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;
};
services.knot.enable = true;
services.knot.keyFiles = [ tsigFile ];
services.knot.extraArgs = [ "-v" ];
services.knot.settings = {
server = {
automatic-acl = true;
};
xdp = {
listen = [
"eth1"
];
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";
xdp = {
listen = [
"eth1"
];
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";
};
client =
{ lib, nodes, ... }:
{
imports = [ common ];
networking.interfaces.eth1 = {
ipv4.addresses = [
{
address = "192.168.0.3";
prefixLength = 24;
}
];
ipv6.addresses = [
{
address = "fd00::3";
prefixLength = 64;
}
];
};
environment.systemPackages = [ pkgs.knot-dns ];
};
client =
{ lib, nodes, ... }:
{
imports = [ common ];
networking.interfaces.eth1 = {
ipv4.addresses = [
{
address = "192.168.0.3";
prefixLength = 24;
}
];
ipv6.addresses = [
{
address = "fd00::3";
prefixLength = 64;
}
];
};
};
environment.systemPackages = [ pkgs.knot-dns ];
};
};
testScript =
{ nodes, ... }:
let
primary4 = (lib.head nodes.primary.config.networking.interfaces.eth1.ipv4.addresses).address;
primary6 = (lib.head nodes.primary.config.networking.interfaces.eth1.ipv6.addresses).address;
testScript =
{ nodes, ... }:
let
primary4 = (lib.head nodes.primary.config.networking.interfaces.eth1.ipv4.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;
secondary6 = (lib.head nodes.secondary.config.networking.interfaces.eth1.ipv6.addresses).address;
in
''
import re
secondary4 = (lib.head nodes.secondary.config.networking.interfaces.eth1.ipv4.addresses).address;
secondary6 = (lib.head nodes.secondary.config.networking.interfaces.eth1.ipv6.addresses).address;
in
''
import re
start_all()
start_all()
client.wait_for_unit("network.target")
primary.wait_for_unit("knot.service")
secondary.wait_for_unit("knot.service")
client.wait_for_unit("network.target")
primary.wait_for_unit("knot.service")
secondary.wait_for_unit("knot.service")
for zone in ("example.com.", "sub.example.com."):
secondary.wait_until_succeeds(
f"knotc zone-status {zone} | grep -q 'serial: 2019031302'"
)
for zone in ("example.com.", "sub.example.com."):
secondary.wait_until_succeeds(
f"knotc zone-status {zone} | grep -q 'serial: 2019031302'"
)
def test(host, query_type, query, pattern):
out = client.succeed(f"khost -t {query_type} {query} {host}").strip()
client.log(f"{host} replied with: {out}")
assert re.search(pattern, out), f'Did not match "{pattern}"'
def test(host, query_type, query, pattern):
out = client.succeed(f"khost -t {query_type} {query} {host}").strip()
client.log(f"{host} replied with: {out}")
assert re.search(pattern, out), f'Did not match "{pattern}"'
for host in ("${primary4}", "${primary6}", "${secondary4}", "${secondary6}"):
with subtest(f"Interrogate {host}"):
test(host, "SOA", "example.com", r"start of authority.*noc\.example\.com\.")
test(host, "A", "example.com", r"has no [^ ]+ record")
test(host, "AAAA", "example.com", r"has no [^ ]+ record")
for host in ("${primary4}", "${primary6}", "${secondary4}", "${secondary6}"):
with subtest(f"Interrogate {host}"):
test(host, "SOA", "example.com", r"start of authority.*noc\.example\.com\.")
test(host, "A", "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, "AAAA", "www.example.com", r"address 2001:db8::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, "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, "AAAA", "sub.example.com", r"address 2001:db8::2$")
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, "AAAA", "sub.example.com", r"address 2001:db8::2$")
test(host, "RRSIG", "www.example.com", r"RR set signature is")
test(host, "DNSKEY", "example.com", r"DNSSEC key is")
test(host, "RRSIG", "www.example.com", r"RR set signature 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, ... }:
let
port = 8000;
baseUrl = "http://server:${toString port}";
in
{
name = "pinnwand";
meta = with pkgs.lib.maintainers; {
maintainers = [ hexa ];
};
{
pkgs,
...
}:
let
port = 8000;
baseUrl = "http://server:${toString port}";
in
{
name = "pinnwand";
meta = with pkgs.lib.maintainers; {
maintainers = [ hexa ];
};
nodes = {
server =
{ config, ... }:
{
networking.firewall.allowedTCPPorts = [
port
];
nodes = {
server =
{ config, ... }:
{
networking.firewall.allowedTCPPorts = [
port
];
services.pinnwand = {
enable = true;
port = port;
};
services.pinnwand = {
enable = true;
port = port;
};
};
client =
{ pkgs, ... }:
{
environment.systemPackages = [
pkgs.steck
client =
{ pkgs, ... }:
{
environment.systemPackages = [
pkgs.steck
(pkgs.writers.writePython3Bin "setup-steck.py"
{
libraries = with pkgs.python3.pkgs; [
appdirs
toml
];
flakeIgnore = [
"E501"
];
(pkgs.writers.writePython3Bin "setup-steck.py"
{
libraries = with pkgs.python3.pkgs; [
appdirs
toml
];
flakeIgnore = [
"E501"
];
}
''
import appdirs
import toml
import os
CONFIG = {
"base": "${baseUrl}/",
"confirm": False,
"magic": True,
"ignore": True
}
''
import appdirs
import toml
import os
CONFIG = {
"base": "${baseUrl}/",
"confirm": False,
"magic": True,
"ignore": True
}
os.makedirs(appdirs.user_config_dir('steck'))
with open(os.path.join(appdirs.user_config_dir('steck'), 'steck.toml'), "w") as fd:
toml.dump(CONFIG, fd)
''
)
];
};
};
os.makedirs(appdirs.user_config_dir('steck'))
with open(os.path.join(appdirs.user_config_dir('steck'), 'steck.toml'), "w") as fd:
toml.dump(CONFIG, fd)
''
)
];
};
};
testScript = ''
start_all()
testScript = ''
start_all()
server.wait_for_unit("pinnwand.service")
client.wait_for_unit("network.target")
server.wait_for_unit("pinnwand.service")
client.wait_for_unit("network.target")
# create steck.toml config file
client.succeed("setup-steck.py")
# create steck.toml config file
client.succeed("setup-steck.py")
# wait until the server running pinnwand is reachable
client.wait_until_succeeds("ping -c1 server")
# wait until the server running pinnwand is reachable
client.wait_until_succeeds("ping -c1 server")
# make sure pinnwand is listening
server.wait_for_open_port(${toString port})
# make sure pinnwand is listening
server.wait_for_open_port(${toString port})
# send the contents of /etc/machine-id
response = client.succeed("steck paste /etc/machine-id")
# send the contents of /etc/machine-id
response = client.succeed("steck paste /etc/machine-id")
# parse the steck response
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
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]
# check whether paste matches what we sent
client.succeed(f"curl {raw_url} > /tmp/machine-id")
client.succeed("diff /tmp/machine-id /etc/machine-id")
# check whether paste matches what we sent
client.succeed(f"curl {raw_url} > /tmp/machine-id")
client.succeed("diff /tmp/machine-id /etc/machine-id")
# remove paste and check that it's not available any more
client.succeed(f"curl {removal_link}")
client.fail(f"curl --fail {raw_url}")
# remove paste and check that it's not available any more
client.succeed(f"curl {removal_link}")
client.fail(f"curl --fail {raw_url}")
server.log(server.execute("systemd-analyze security pinnwand | grep ''")[1])
'';
}
)
server.log(server.execute("systemd-analyze security pinnwand | grep ''")[1])
'';
}

View file

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

View file

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

View file

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

View file

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

View file

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

File diff suppressed because it is too large Load diff

View file

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

View file

@ -5,6 +5,11 @@
jre,
unzip,
makeWrapper,
makeDesktopItem,
copyDesktopItems,
xdg-utils,
imagemagick,
maxMemoryAllocationPool ? "1000M",
}:
stdenv.mkDerivation rec {
@ -19,18 +24,70 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
makeWrapper
unzip
];
imagemagick
] ++ lib.optionals stdenv.hostPlatform.isLinux [ copyDesktopItems ];
# The -Xmx1000M comes suggested from their download page:
# https://www.cs.waikato.ac.nz/ml/weka/downloading.html
installPhase = ''
runHook preInstall
mkdir -pv $out/share/weka
mkdir -p $out/share/icons/hicolor
cp -Rv * $out/share/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; {
homepage = "https://www.cs.waikato.ac.nz/ml/weka/";
description = "Collection of machine learning algorithms for data mining tasks";

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,12 +1,12 @@
{
"name": "@github/copilot-language-server",
"version": "1.275.0",
"version": "1.280.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"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",
"dependencies": {
"vscode-languageserver-protocol": "^3.17.5"

View file

@ -6,14 +6,14 @@
buildNpmPackage rec {
pname = "copilot-language-server";
version = "1.275.0";
version = "1.280.0";
src = fetchurl {
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 = ''
ln -s ${./package-lock.json} package-lock.json

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -28,12 +28,12 @@
stdenv.mkDerivation (finalAttrs: {
pname = "exodus";
version = "24.41.6";
version = "25.9.2";
src = requireFile {
name = "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 ];

View file

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

View file

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

View file

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

View file

@ -1,5 +1,5 @@
#!/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
set -euo pipefail

View file

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

View file

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

View file

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

View file

@ -20,13 +20,13 @@
stdenv.mkDerivation rec {
pname = "libdeltachat";
version = "1.156.2";
version = "1.156.3";
src = fetchFromGitHub {
owner = "deltachat";
repo = "deltachat-core-rust";
owner = "chatmail";
repo = "core";
tag = "v${version}";
hash = "sha256-CpFnO8stLLTH/XOZZS3j9nVrf2FRekjkQ/R1pmw5o9A=";
hash = "sha256-FJTHG1NUdKcYTPrBkhu4ZiodSwpNgaGUHiHBSk/lUVA=";
};
patches = [
@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
cargoDeps = rustPlatform.fetchCargoVendor {
pname = "deltachat-core-rust";
inherit version src;
hash = "sha256-jrsGMNgKglk+Rq/ZGiZgSZrT4uSA5RjbTYaDtW0Ijyg=";
hash = "sha256-Kh0TU6lJ7spZIOUyJabFd1icqN9jU+kG+BpADAi0nRo=";
};
nativeBuildInputs = [
@ -86,8 +86,8 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Delta Chat Rust Core library";
homepage = "https://github.com/deltachat/deltachat-core-rust/";
changelog = "https://github.com/deltachat/deltachat-core-rust/blob/${src.tag}/CHANGELOG.md";
homepage = "https://github.com/chatmail/core";
changelog = "https://github.com/chatmail/core/blob/${src.tag}/CHANGELOG.md";
license = licenses.mpl20;
maintainers = with maintainers; [ dotlambda ];
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 {
pname = "mnamer";
version = "2.5.4";
version = "2.5.5";
format = "pyproject";
src = fetchFromGitHub {
owner = "jkwill87";
repo = "mnamer";
rev = version;
sha256 = "sha256-fONQq/RboWHFuEFU7HP1ThUpSjOIlkg54c2WlMUKwuk=";
tag = version;
sha256 = "sha256-qQu5V1GOsbrR00HOrot6TTAkc3KRasBPDEU7ZojUBio=";
};
propagatedBuildInputs = with python3Packages; [
babelfish
requests
appdirs
teletype
requests-cache
guessit
build-system = with python3Packages; [
setuptools
setuptools-scm
];
patches = [
# requires specific old versions of dependencies which have been updated in nixpkgs
./remove_requirements.patch
dependencies = with python3Packages; [
appdirs
babelfish
guessit
requests
requests-cache
teletype
];
# author reads a private property that changed between versions
./update_hack.patch
pythonRelaxDeps = true;
patches = [
# https://github.com/jkwill87/mnamer/pull/291
./cached_session_error.patch
];
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 {
pname = "opshin";
version = "0.24.0";
version = "0.24.1";
format = "pyproject";
@ -14,7 +14,7 @@ python3.pkgs.buildPythonApplication rec {
owner = "OpShin";
repo = "opshin";
tag = version;
hash = "sha256-5IzPxzNvH9nlOYBCbc8kC7yzf8L8LPA5Wq9agqg9kng=";
hash = "sha256-+uuTEszA5p/qhvthM3Uje6yX3urbIUAKKfDZ4JXEYYQ=";
};
propagatedBuildInputs = with python3.pkgs; [

View file

@ -7,13 +7,13 @@
buildGoModule rec {
pname = "orchard";
version = "0.28.2";
version = "0.28.3";
src = fetchFromGitHub {
owner = "cirruslabs";
repo = pname;
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
# can delete .git afterwards and maintain better reproducibility of the src.
leaveDotGit = true;
@ -24,7 +24,7 @@ buildGoModule rec {
'';
};
vendorHash = "sha256-0bdsz5Oj351dztApJ1FnSbObuCKEPC38Fupe3NyRAAQ=";
vendorHash = "sha256-OimkH34coQLhJlJd3BGBFE9L/TQtU4tJbTl0zwmQh3w=";
nativeBuildInputs = [ installShellFiles ];

View file

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

View file

@ -47,9 +47,8 @@ let
"{connection_file}"
];
language = "sage";
# just one 16x16 logo is available
logo32 = "${sage-src}/src/doc/common/static/sageicon.png";
logo64 = "${sage-src}/src/doc/common/static/sageicon.png";
logo32 = "${sage-src}/src/sage/ext_data/notebook-ipython/logo-64x64.png";
logo64 = "${sage-src}/src/sage/ext_data/notebook-ipython/logo-64x64.png";
};
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;
setupHook = ./setup-hook.sh;
postInstall = ''
# allow as a drop in replacement for SDL
# Can be removed after treewide switch from pkg-config to pkgconf
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 = ''
for lib in $out/lib/*${stdenv.hostPlatform.extensions.sharedLibrary}* ; do
if [[ -L "$lib" ]]; then

View file

@ -11,11 +11,11 @@
stdenv.mkDerivation rec {
pname = "snowsql";
version = "1.3.0";
version = "1.3.3";
src = fetchurl {
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 = [

View file

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

View file

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

View file

@ -14,21 +14,21 @@
stdenv.mkDerivation (finalAttrs: {
pname = "unison-code-manager";
version = "0.5.33";
version = "0.5.36";
src =
{
aarch64-darwin = fetchurl {
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 {
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 {
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}");

View file

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

View file

@ -2,6 +2,7 @@
lib,
stdenv,
fetchurl,
dlib,
gsl,
mpfr,
perl,
@ -17,6 +18,14 @@ stdenv.mkDerivation rec {
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 = [
gsl
mpfr

View file

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

View file

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

View file

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

View file

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

View file

@ -8,16 +8,16 @@
rustPlatform.buildRustPackage rec {
pname = "yew-fmt";
version = "0.5.3";
version = "0.5.5";
src = fetchFromGitHub {
owner = "its-the-shrimp";
repo = "yew-fmt";
tag = "v${version}";
hash = "sha256-Ck6WA6ROm8APTsgoxbVGUqoblc5awW+hmmzcy4ZFoBM=";
hash = "sha256-2sOw8wWfnEphYsruQyhZMW3KofcGkNHJB6Q1jhFP3oo=";
};
cargoHash = "sha256-Fp8MT1LJ1EpqwEZ+SpOomqZ7we47w2S5ExkB966Z3r0=";
cargoHash = "sha256-o4oRVI3+Nz8fwdwlyVvXUuhCQr4Bbg5Kife/PJoJCJY=";
nativeCheckInputs = [ rustfmt ];
passthru.updateScript = nix-update-script { };
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,
pkg-config,
removeReferencesTo,
alsaSupport ? !stdenv.hostPlatform.isDarwin,
alsaSupport ? stdenv.hostPlatform.isLinux,
alsa-lib,
dbusSupport ? !stdenv.hostPlatform.isDarwin,
dbus,

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -30,14 +30,14 @@
buildPythonPackage rec {
pname = "ultralytics";
version = "8.3.85";
version = "8.3.86";
pyproject = true;
src = fetchFromGitHub {
owner = "ultralytics";
repo = "ultralytics";
tag = "v${version}";
hash = "sha256-4EiTiy4SNinNwIUvqbckaA/5YRcv6io8ssTAhwDVgsM=";
hash = "sha256-9z6f/48jQVCR744ojNH+T22+JDg31+WEKWi48k5/GoY=";
};
postPatch = ''
@ -100,7 +100,7 @@ buildPythonPackage rec {
meta = {
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";
mainProgram = "yolo";
license = lib.licenses.agpl3Only;

View file

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

View file

@ -7,13 +7,13 @@
buildGoModule rec {
pname = "apko";
version = "0.25.1";
version = "0.25.2";
src = fetchFromGitHub {
owner = "chainguard-dev";
repo = pname;
tag = "v${version}";
hash = "sha256-ElHRhEsXP3pzTkys9c8FaQODZJmFDMl4ubUIU4B1ACM=";
hash = "sha256-lvxdpc8rXGgebxjFEeQOlpDfLwwe8a0QAfqApCgWAHw=";
# 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.
leaveDotGit = true;
@ -25,7 +25,7 @@ buildGoModule rec {
find "$out" -name .git -print0 | xargs -0 rm -rf
'';
};
vendorHash = "sha256-ddvdnnDxqwqO6xtLf5NoMT2WYNNMuvyHlo2+/A6rN0E=";
vendorHash = "sha256-EE59/VyP/dK9qZuTSQqqxAhcJUh/hfSopR7x6k5Eunc=";
nativeBuildInputs = [ installShellFiles ];

View file

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

View file

@ -44,12 +44,6 @@ stdenv.mkDerivation rec {
"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 = ''
runHook preInstall

View file

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

View file

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

View file

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