Merge staging-next into staging

This commit is contained in:
nixpkgs-ci[bot]
2025-07-23 12:07:44 +00:00
committed by GitHub
62 changed files with 829 additions and 887 deletions
+8
View File
@@ -17025,6 +17025,14 @@
github = "mrcjkb";
githubId = 12857160;
};
mrdev023 = {
name = "Florian RICHER";
email = "florian.richer@protonmail.com";
matrix = "@mrdev023:matrix.org";
github = "mrdev023";
githubId = 11292703;
keys = [ { fingerprint = "B19E 3F4A 2D80 6AB4 793F DF2F C73D 37CB ED7B FC77"; } ];
};
mredaelli = {
email = "massimo@typish.io";
github = "mredaelli";
+1 -1
View File
@@ -90,7 +90,7 @@ let
PYFLAKES_BUILTINS="$(
echo -n ${lib.escapeShellArg (lib.concatStringsSep "," pythonizedNames)},
< ${lib.escapeShellArg "driver-symbols"}
cat ${lib.escapeShellArg "driver-symbols"}
)" ${hostPkgs.python3Packages.pyflakes}/bin/pyflakes $out/test-script
''}
@@ -24,7 +24,7 @@ let
DOCKER_HOST = "unix:///run/podman/podman.sock";
}
'';
description = "woodpecker-agent config environment variables, for other options read the [documentation](https://woodpecker-ci.org/docs/administration/agent-config)";
description = "woodpecker-agent config environment variables, for other options read the [documentation](https://woodpecker-ci.org/docs/administration/configuration/agent)";
};
extraGroups = lib.mkOption {
@@ -27,7 +27,7 @@ in
WOODPECKER_GITEA_URL = "https://git.example.com";
}
'';
description = "woodpecker-server config environment variables, for other options read the [documentation](https://woodpecker-ci.org/docs/administration/server-config)";
description = "woodpecker-server config environment variables, for other options read the [documentation](https://woodpecker-ci.org/docs/administration/configuration/server)";
};
environmentFile = lib.mkOption {
type = with lib.types; coercedTo path (f: [ f ]) (listOf path);
+15 -3
View File
@@ -80,6 +80,13 @@ let
'';
};
privateFilesDir = mkOption {
type = types.path;
default = "/var/lib/drupal/${name}/private";
defaultText = "/var/lib/drupal/<name>/private";
description = "The location of the Drupal private files directory.";
};
stateDir = mkOption {
type = types.path;
default = "/var/lib/drupal/${name}";
@@ -299,6 +306,7 @@ in
"Z '${cfg.modulesDir}' 0750 ${user} ${webserver.group} - -"
"d '${cfg.themesDir}' 0750 ${user} ${webserver.group} - -"
"Z '${cfg.themesDir}' 0750 ${user} ${webserver.group} - -"
"d '${cfg.privateFilesDir}' 0750 ${user} ${webserver.group} - -"
]) eachSite
);
@@ -335,13 +343,17 @@ in
chown -R ${user}:${webserver.group} ${cfg.filesDir}
fi
settings="${cfg.stateDir}/sites/default/settings.php"
settings_file="${cfg.stateDir}/sites/default/settings.php"
defaultSettings="${cfg.package}/share/php/drupal/sites/default/default.settings.php"
if [ ! -f "$settings" ]; then
echo "Preparing settings.php for ${hostName}..."
cp "$defaultSettings" "$settings"
chmod 644 "$settings"
cp "$defaultSettings" "$settings_file"
chmod 644 "$settings_file"
# Append settings to settings file
printf "\n\n// NixOS Automatically Generated Settings\n" >> $settings_file
printf "\$settings['file_private_path'] = '${cfg.privateFilesDir}';" >> $settings_file
fi
# Set or reset file permissions so that the web user and webserver owns them.
+4 -1
View File
@@ -1553,7 +1553,10 @@ in
whoogle-search = runTest ./whoogle-search.nix;
wiki-js = runTest ./wiki-js.nix;
wine = handleTest ./wine.nix { };
wireguard = handleTest ./wireguard { };
wireguard = import ./wireguard {
inherit pkgs runTest;
inherit (pkgs) lib;
};
wg-access-server = runTest ./wg-access-server.nix;
without-nix = runTest ./without-nix.nix;
wmderland = runTest ./wmderland.nix;
+103 -108
View File
@@ -1,125 +1,120 @@
import ../make-test-python.nix (
{
pkgs,
lib,
kernelPackages ? null,
nftables ? false,
...
}:
let
wg-snakeoil-keys = import ./snakeoil-keys.nix;
peer = import ./make-peer.nix { inherit lib; };
commonConfig = {
boot.kernelPackages = lib.mkIf (kernelPackages != null) kernelPackages;
{
lib,
kernelPackages ? null,
nftables ? false,
...
}:
let
wg-snakeoil-keys = import ./snakeoil-keys.nix;
peer = import ./make-peer.nix;
commonConfig =
{ pkgs, ... }:
{
boot.kernelPackages = lib.mkIf (kernelPackages != null) (kernelPackages pkgs);
networking.nftables.enable = nftables;
# Make sure iptables doesn't work with nftables enabled
boot.blacklistedKernelModules = lib.mkIf nftables [ "nft_compat" ];
};
extraOptions = {
Jc = 5;
Jmin = 10;
Jmax = 42;
S1 = 60;
S2 = 90;
};
in
{
name = "amneziawg-quick";
meta = with pkgs.lib.maintainers; {
maintainers = [
averyanalex
azahi
];
};
extraOptions = {
Jc = 5;
Jmin = 10;
Jmax = 42;
S1 = 60;
S2 = 90;
};
in
{
name = "amneziawg-quick";
meta.maintainers = with lib.maintainers; [
averyanalex
azahi
];
nodes = {
peer0 = peer {
ip4 = "192.168.0.1";
ip6 = "fd00::1";
extraConfig = lib.mkMerge [
commonConfig
{
networking.firewall.allowedUDPPorts = [ 23542 ];
networking.wg-quick.interfaces.wg0 = {
type = "amneziawg";
nodes = {
peer0 = peer {
ip4 = "192.168.0.1";
ip6 = "fd00::1";
extraConfig = {
imports = [ commonConfig ];
address = [
"10.23.42.1/32"
"fc00::1/128"
];
listenPort = 23542;
networking.firewall.allowedUDPPorts = [ 23542 ];
networking.wg-quick.interfaces.wg0 = {
type = "amneziawg";
inherit (wg-snakeoil-keys.peer0) privateKey;
address = [
"10.23.42.1/32"
"fc00::1/128"
];
listenPort = 23542;
peers = lib.singleton {
allowedIPs = [
"10.23.42.2/32"
"fc00::2/128"
];
inherit (wg-snakeoil-keys.peer0) privateKey;
inherit (wg-snakeoil-keys.peer1) publicKey;
};
peers = lib.singleton {
allowedIPs = [
"10.23.42.2/32"
"fc00::2/128"
];
dns = [
"10.23.42.2"
"fc00::2"
"wg0"
];
inherit (wg-snakeoil-keys.peer1) publicKey;
};
inherit extraOptions;
};
}
];
};
dns = [
"10.23.42.2"
"fc00::2"
"wg0"
];
peer1 = peer {
ip4 = "192.168.0.2";
ip6 = "fd00::2";
extraConfig = lib.mkMerge [
commonConfig
{
networking.useNetworkd = true;
networking.wg-quick.interfaces.wg0 = {
type = "amneziawg";
address = [
"10.23.42.2/32"
"fc00::2/128"
];
inherit (wg-snakeoil-keys.peer1) privateKey;
peers = lib.singleton {
allowedIPs = [
"0.0.0.0/0"
"::/0"
];
endpoint = "192.168.0.1:23542";
persistentKeepalive = 25;
inherit (wg-snakeoil-keys.peer0) publicKey;
};
dns = [
"10.23.42.1"
"fc00::1"
"wg0"
];
inherit extraOptions;
};
}
];
inherit extraOptions;
};
};
};
testScript = ''
start_all()
peer1 = peer {
ip4 = "192.168.0.2";
ip6 = "fd00::2";
extraConfig = {
imports = [ commonConfig ];
peer0.wait_for_unit("wg-quick-wg0.service")
peer1.wait_for_unit("wg-quick-wg0.service")
networking.useNetworkd = true;
networking.wg-quick.interfaces.wg0 = {
type = "amneziawg";
peer1.succeed("ping -c5 fc00::1")
peer1.succeed("ping -c5 10.23.42.1")
'';
}
)
address = [
"10.23.42.2/32"
"fc00::2/128"
];
inherit (wg-snakeoil-keys.peer1) privateKey;
peers = lib.singleton {
allowedIPs = [
"0.0.0.0/0"
"::/0"
];
endpoint = "192.168.0.1:23542";
persistentKeepalive = 25;
inherit (wg-snakeoil-keys.peer0) publicKey;
};
dns = [
"10.23.42.1"
"fc00::1"
"wg0"
];
inherit extraOptions;
};
};
};
};
testScript = ''
start_all()
peer0.wait_for_unit("wg-quick-wg0.service")
peer1.wait_for_unit("wg-quick-wg0.service")
peer1.succeed("ping -c5 fc00::1")
peer1.succeed("ping -c5 10.23.42.1")
'';
}
+50 -51
View File
@@ -1,36 +1,34 @@
import ../make-test-python.nix (
{
pkgs,
lib,
kernelPackages ? null,
...
}:
let
wg-snakeoil-keys = import ./snakeoil-keys.nix;
peer = (import ./make-peer.nix) { inherit lib; };
extraOptions = {
Jc = 5;
Jmin = 10;
Jmax = 42;
S1 = 60;
S2 = 90;
};
in
{
name = "amneziawg";
meta = with pkgs.lib.maintainers; {
maintainers = [
averyanalex
azahi
];
};
{
lib,
kernelPackages ? null,
...
}:
let
wg-snakeoil-keys = import ./snakeoil-keys.nix;
peer = import ./make-peer.nix;
extraOptions = {
Jc = 5;
Jmin = 10;
Jmax = 42;
S1 = 60;
S2 = 90;
};
in
{
name = "amneziawg";
meta.maintainers = with lib.maintainers; [
averyanalex
azahi
];
nodes = {
peer0 = peer {
ip4 = "192.168.0.1";
ip6 = "fd00::1";
extraConfig = {
boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
nodes = {
peer0 = peer {
ip4 = "192.168.0.1";
ip6 = "fd00::1";
extraConfig =
{ lib, pkgs, ... }:
{
boot.kernelPackages = lib.mkIf (kernelPackages != null) (kernelPackages pkgs);
networking.firewall.allowedUDPPorts = [ 23542 ];
networking.wireguard.interfaces.wg0 = {
type = "amneziawg";
@@ -54,13 +52,15 @@ import ../make-test-python.nix (
inherit extraOptions;
};
};
};
};
peer1 = peer {
ip4 = "192.168.0.2";
ip6 = "fd00::2";
extraConfig = {
boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
peer1 = peer {
ip4 = "192.168.0.2";
ip6 = "fd00::2";
extraConfig =
{ lib, pkgs, ... }:
{
boot.kernelPackages = lib.mkIf (kernelPackages != null) (kernelPackages pkgs);
networking.wireguard.interfaces.wg0 = {
type = "amneziawg";
ips = [
@@ -85,27 +85,26 @@ import ../make-test-python.nix (
postSetup =
let
inherit (pkgs) iproute2;
ip = lib.getExe' pkgs.iproute2 "ip";
in
''
${iproute2}/bin/ip route replace 10.23.42.1/32 dev wg0
${iproute2}/bin/ip route replace fc00::1/128 dev wg0
${ip} route replace 10.23.42.1/32 dev wg0
${ip} route replace fc00::1/128 dev wg0
'';
inherit extraOptions;
};
};
};
};
};
testScript = ''
start_all()
testScript = ''
start_all()
peer0.wait_for_unit("wireguard-wg0.service")
peer1.wait_for_unit("wireguard-wg0.service")
peer0.wait_for_unit("wireguard-wg0.service")
peer1.wait_for_unit("wireguard-wg0.service")
peer1.succeed("ping -c5 fc00::1")
peer1.succeed("ping -c5 10.23.42.1")
'';
}
)
peer1.succeed("ping -c5 fc00::1")
peer1.succeed("ping -c5 10.23.42.1")
'';
}
+40 -41
View File
@@ -1,26 +1,24 @@
import ../make-test-python.nix (
{
pkgs,
lib,
kernelPackages ? null,
...
}:
let
wg-snakeoil-keys = import ./snakeoil-keys.nix;
peer = (import ./make-peer.nix) { inherit lib; };
in
{
name = "wireguard";
meta = with pkgs.lib.maintainers; {
maintainers = [ ma27 ];
};
{
lib,
kernelPackages ? null,
...
}:
let
wg-snakeoil-keys = import ./snakeoil-keys.nix;
peer = import ./make-peer.nix;
in
{
name = "wireguard";
meta.maintainers = with lib.maintainers; [ ma27 ];
nodes = {
peer0 = peer {
ip4 = "192.168.0.1";
ip6 = "fd00::1";
extraConfig = {
boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
nodes = {
peer0 = peer {
ip4 = "192.168.0.1";
ip6 = "fd00::1";
extraConfig =
{ lib, pkgs, ... }:
{
boot.kernelPackages = lib.mkIf (kernelPackages != null) (kernelPackages pkgs);
networking.firewall.allowedUDPPorts = [ 23542 ];
networking.wireguard.interfaces.wg0 = {
ips = [
@@ -41,13 +39,15 @@ import ../make-test-python.nix (
};
};
};
};
};
peer1 = peer {
ip4 = "192.168.0.2";
ip6 = "fd00::2";
extraConfig = {
boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
peer1 = peer {
ip4 = "192.168.0.2";
ip6 = "fd00::2";
extraConfig =
{ lib, pkgs, ... }:
{
boot.kernelPackages = lib.mkIf (kernelPackages != null) (kernelPackages pkgs);
networking.wireguard.interfaces.wg0 = {
ips = [
"10.23.42.2/32"
@@ -71,25 +71,24 @@ import ../make-test-python.nix (
postSetup =
let
inherit (pkgs) iproute2;
ip = lib.getExe' pkgs.iproute2 "ip";
in
''
${iproute2}/bin/ip route replace 10.23.42.1/32 dev wg0
${iproute2}/bin/ip route replace fc00::1/128 dev wg0
${ip} route replace 10.23.42.1/32 dev wg0
${ip} route replace fc00::1/128 dev wg0
'';
};
};
};
};
};
testScript = ''
start_all()
testScript = ''
start_all()
peer0.wait_for_unit("wireguard-wg0.service")
peer1.wait_for_unit("wireguard-wg0.service")
peer0.wait_for_unit("wireguard-wg0.service")
peer1.wait_for_unit("wireguard-wg0.service")
peer1.succeed("ping -c5 fc00::1")
peer1.succeed("ping -c5 10.23.42.1")
'';
}
)
peer1.succeed("ping -c5 fc00::1")
peer1.succeed("ping -c5 10.23.42.1")
'';
}
+19 -16
View File
@@ -1,46 +1,49 @@
{
system ? builtins.currentSystem,
config ? { },
pkgs ? import ../../.. { inherit system config; },
runTest,
lib,
pkgs,
# Test current default (LTS) and latest kernel
kernelVersionsToTest ? [
(pkgs.lib.versions.majorMinor pkgs.linuxPackages.kernel.version)
(lib.versions.majorMinor pkgs.linuxPackages.kernel.version)
"latest"
],
}:
with pkgs.lib;
let
tests =
let
callTest = p: args: import p ({ inherit system pkgs; } // args);
callTest =
p: args:
runTest {
imports = [ p ];
_module = { inherit args; };
};
in
{
basic = callTest ./basic.nix;
amneziawg = callTest ./amneziawg.nix;
namespaces = callTest ./namespaces.nix;
networkd = callTest ./networkd.nix;
wg-quick = callTest ./wg-quick.nix;
wg-quick = args: callTest ./wg-quick.nix ({ nftables = false; } // args);
wg-quick-nftables = args: callTest ./wg-quick.nix ({ nftables = true; } // args);
amneziawg-quick = callTest ./amneziawg-quick.nix;
amneziawg-quick = args: callTest ./amneziawg-quick.nix ({ nftables = false; } // args);
generated = callTest ./generated.nix;
dynamic-refresh = callTest ./dynamic-refresh.nix;
dynamic-refresh = args: callTest ./dynamic-refresh.nix ({ useNetworkd = false; } // args);
dynamic-refresh-networkd = args: callTest ./dynamic-refresh.nix ({ useNetworkd = true; } // args);
};
in
listToAttrs (
flip concatMap kernelVersionsToTest (
lib.listToAttrs (
lib.flip lib.concatMap kernelVersionsToTest (
version:
let
v' = replaceStrings [ "." ] [ "_" ] version;
v' = lib.replaceString "." "_" version;
in
flip mapAttrsToList tests (
lib.flip lib.mapAttrsToList tests (
name: test:
nameValuePair "wireguard-${name}-linux-${v'}" (test {
lib.nameValuePair "wireguard-${name}-linux-${v'}" (test {
kernelPackages =
if v' == "latest" then pkgs.linuxPackages_latest else pkgs.linuxKernel.packages."linux_${v'}";
pkgs: if v' == "latest" then pkgs.linuxPackages_latest else pkgs.linuxKernel.packages."linux_${v'}";
})
)
)
+70 -68
View File
@@ -1,27 +1,25 @@
import ../make-test-python.nix (
{
pkgs,
lib,
kernelPackages ? null,
useNetworkd ? false,
...
}:
let
wg-snakeoil-keys = import ./snakeoil-keys.nix;
in
{
name = "wireguard-dynamic-refresh";
meta = with lib.maintainers; {
maintainers = [ majiir ];
};
{
lib,
kernelPackages ? null,
useNetworkd ? false,
...
}:
let
wg-snakeoil-keys = import ./snakeoil-keys.nix;
in
{
name = "wireguard-dynamic-refresh";
meta.maintainers = with lib.maintainers; [ majiir ];
nodes = {
server = {
nodes = {
server =
{ lib, pkgs, ... }:
{
virtualisation.vlans = [
1
2
];
boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
boot.kernelPackages = lib.mkIf (kernelPackages != null) (kernelPackages pkgs);
networking.firewall.allowedUDPPorts = [ 23542 ];
networking.useDHCP = false;
networking.wireguard.useNetworkd = useNetworkd;
@@ -40,66 +38,70 @@ import ../make-test-python.nix (
};
};
client =
{ nodes, ... }:
{
virtualisation.vlans = [
1
2
];
boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
networking.useDHCP = false;
networking.wireguard.useNetworkd = useNetworkd;
networking.wireguard.interfaces.wg0 = {
ips = [ "10.23.42.2/32" ];
client =
{
nodes,
lib,
pkgs,
...
}:
{
virtualisation.vlans = [
1
2
];
boot.kernelPackages = lib.mkIf (kernelPackages != null) (kernelPackages pkgs);
networking.useDHCP = false;
networking.wireguard.useNetworkd = useNetworkd;
networking.wireguard.interfaces.wg0 = {
ips = [ "10.23.42.2/32" ];
# !!! Don't do this with real keys. The /nix store is world-readable!
privateKeyFile = toString (pkgs.writeText "privateKey" wg-snakeoil-keys.peer1.privateKey);
# !!! Don't do this with real keys. The /nix store is world-readable!
privateKeyFile = toString (pkgs.writeText "privateKey" wg-snakeoil-keys.peer1.privateKey);
dynamicEndpointRefreshSeconds = 2;
dynamicEndpointRefreshSeconds = 2;
peers = lib.singleton {
allowedIPs = [
"0.0.0.0/0"
"::/0"
];
endpoint = "server:23542";
peers = lib.singleton {
allowedIPs = [
"0.0.0.0/0"
"::/0"
];
endpoint = "server:23542";
inherit (wg-snakeoil-keys.peer0) publicKey;
};
};
specialisation.update-hosts.configuration = {
networking.extraHosts =
let
testCfg = nodes.server.virtualisation.test;
in
lib.mkForce "192.168.2.${toString testCfg.nodeNumber} ${testCfg.nodeName}";
inherit (wg-snakeoil-keys.peer0) publicKey;
};
};
};
testScript =
{ nodes, ... }:
''
start_all()
specialisation.update-hosts.configuration = {
networking.extraHosts =
let
testCfg = nodes.server.virtualisation.test;
in
lib.mkForce "192.168.2.${toString testCfg.nodeNumber} ${testCfg.nodeName}";
};
};
};
server.systemctl("start network-online.target")
server.wait_for_unit("network-online.target")
testScript =
{ nodes, ... }:
''
start_all()
client.systemctl("start network-online.target")
client.wait_for_unit("network-online.target")
server.systemctl("start network-online.target")
server.wait_for_unit("network-online.target")
client.succeed("ping -n -w 1 -c 1 10.23.42.1")
client.systemctl("start network-online.target")
client.wait_for_unit("network-online.target")
client.succeed("ip link set down eth1")
client.succeed("ping -n -w 1 -c 1 10.23.42.1")
client.fail("ping -n -w 1 -c 1 10.23.42.1")
client.succeed("ip link set down eth1")
with client.nested("update hosts file"):
client.succeed("${nodes.client.system.build.toplevel}/specialisation/update-hosts/bin/switch-to-configuration test")
client.fail("ping -n -w 1 -c 1 10.23.42.1")
client.succeed("sleep 5 && ping -n -w 1 -c 1 10.23.42.1")
'';
}
)
with client.nested("update hosts file"):
client.succeed("${nodes.client.system.build.toplevel}/specialisation/update-hosts/bin/switch-to-configuration test")
client.succeed("sleep 5 && ping -n -w 1 -c 1 10.23.42.1")
'';
}
+47 -48
View File
@@ -1,22 +1,20 @@
import ../make-test-python.nix (
{
pkgs,
lib,
kernelPackages ? null,
...
}:
{
name = "wireguard-generated";
meta = with pkgs.lib.maintainers; {
maintainers = [
ma27
grahamc
];
};
{
lib,
kernelPackages ? null,
...
}:
{
name = "wireguard-generated";
meta.maintainers = with lib.maintainers; [
ma27
grahamc
];
nodes = {
peer1 = {
boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
nodes = {
peer1 =
{ lib, pkgs, ... }:
{
boot.kernelPackages = lib.mkIf (kernelPackages != null) (kernelPackages pkgs);
networking.firewall.allowedUDPPorts = [ 12345 ];
networking.wireguard.interfaces.wg0 = {
ips = [ "10.10.10.1/24" ];
@@ -27,8 +25,10 @@ import ../make-test-python.nix (
};
};
peer2 = {
boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
peer2 =
{ lib, pkgs, ... }:
{
boot.kernelPackages = lib.mkIf (kernelPackages != null) (kernelPackages pkgs);
networking.firewall.allowedUDPPorts = [ 12345 ];
networking.wireguard.interfaces.wg0 = {
ips = [ "10.10.10.2/24" ];
@@ -37,38 +37,37 @@ import ../make-test-python.nix (
generatePrivateKeyFile = true;
};
};
};
};
testScript = ''
start_all()
testScript = ''
start_all()
peer1.wait_for_unit("wireguard-wg0.service")
peer2.wait_for_unit("wireguard-wg0.service")
peer1.wait_for_unit("wireguard-wg0.service")
peer2.wait_for_unit("wireguard-wg0.service")
retcode, peer1pubkey = peer1.execute("wg pubkey < /etc/wireguard/private")
if retcode != 0:
raise Exception("Could not read public key from peer1")
retcode, peer1pubkey = peer1.execute("wg pubkey < /etc/wireguard/private")
if retcode != 0:
raise Exception("Could not read public key from peer1")
retcode, peer2pubkey = peer2.execute("wg pubkey < /etc/wireguard/private")
if retcode != 0:
raise Exception("Could not read public key from peer2")
retcode, peer2pubkey = peer2.execute("wg pubkey < /etc/wireguard/private")
if retcode != 0:
raise Exception("Could not read public key from peer2")
peer1.succeed(
"wg set wg0 peer {} allowed-ips 10.10.10.2/32 endpoint 192.168.1.2:12345 persistent-keepalive 1".format(
peer2pubkey.strip()
)
)
peer1.succeed("ip route replace 10.10.10.2/32 dev wg0 table main")
peer1.succeed(
"wg set wg0 peer {} allowed-ips 10.10.10.2/32 endpoint 192.168.1.2:12345 persistent-keepalive 1".format(
peer2pubkey.strip()
)
)
peer1.succeed("ip route replace 10.10.10.2/32 dev wg0 table main")
peer2.succeed(
"wg set wg0 peer {} allowed-ips 10.10.10.1/32 endpoint 192.168.1.1:12345 persistent-keepalive 1".format(
peer1pubkey.strip()
)
)
peer2.succeed("ip route replace 10.10.10.1/32 dev wg0 table main")
peer2.succeed(
"wg set wg0 peer {} allowed-ips 10.10.10.1/32 endpoint 192.168.1.1:12345 persistent-keepalive 1".format(
peer1pubkey.strip()
)
)
peer2.succeed("ip route replace 10.10.10.1/32 dev wg0 table main")
peer1.succeed("ping -c1 10.10.10.2")
peer2.succeed("ping -c1 10.10.10.1")
'';
}
)
peer1.succeed("ping -c1 10.10.10.2")
peer2.succeed("ping -c1 10.10.10.1")
'';
}
+27 -26
View File
@@ -1,32 +1,33 @@
{ lib, ... }:
{
ip4,
ip6,
extraConfig,
}:
lib.mkMerge [
{
boot.kernel.sysctl = {
"net.ipv6.conf.all.forwarding" = "1";
"net.ipv6.conf.default.forwarding" = "1";
"net.ipv4.ip_forward" = "1";
};
{
imports = [
{
boot.kernel.sysctl = {
"net.ipv6.conf.all.forwarding" = "1";
"net.ipv6.conf.default.forwarding" = "1";
"net.ipv4.ip_forward" = "1";
};
networking.useDHCP = false;
networking.interfaces.eth1 = {
ipv4.addresses = [
{
address = ip4;
prefixLength = 24;
}
];
ipv6.addresses = [
{
address = ip6;
prefixLength = 64;
}
];
};
}
extraConfig
]
networking.useDHCP = false;
networking.interfaces.eth1 = {
ipv4.addresses = [
{
address = ip4;
prefixLength = 24;
}
];
ipv6.addresses = [
{
address = ip6;
prefixLength = 64;
}
];
};
}
extraConfig
];
}
+44 -43
View File
@@ -1,3 +1,8 @@
{
lib,
kernelPackages ? null,
...
}:
let
listenPort = 12345;
socketNamespace = "foo";
@@ -10,27 +15,18 @@ let
generatePrivateKeyFile = true;
};
};
in
{
name = "wireguard-with-namespaces";
meta.maintainers = with lib.maintainers; [ asymmetric ];
import ../make-test-python.nix (
{
pkgs,
lib,
kernelPackages ? null,
...
}:
{
name = "wireguard-with-namespaces";
meta = with pkgs.lib.maintainers; {
maintainers = [ asymmetric ];
};
nodes = {
# interface should be created in the socketNamespace
# and not moved from there
peer0 = pkgs.lib.attrsets.recursiveUpdate node {
boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
nodes = {
# interface should be created in the socketNamespace
# and not moved from there
peer0 =
{ lib, pkgs, ... }:
lib.attrsets.recursiveUpdate node {
boot.kernelPackages = lib.mkIf (kernelPackages != null) (kernelPackages pkgs);
networking.wireguard.interfaces.wg0 = {
preSetup = ''
ip netns add ${socketNamespace}
@@ -38,10 +34,12 @@ import ../make-test-python.nix (
inherit socketNamespace;
};
};
# interface should be created in the init namespace
# and moved to the interfaceNamespace
peer1 = pkgs.lib.attrsets.recursiveUpdate node {
boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
# interface should be created in the init namespace
# and moved to the interfaceNamespace
peer1 =
{ lib, pkgs, ... }:
lib.attrsets.recursiveUpdate node {
boot.kernelPackages = lib.mkIf (kernelPackages != null) (kernelPackages pkgs);
networking.wireguard.interfaces.wg0 = {
preSetup = ''
ip netns add ${interfaceNamespace}
@@ -50,10 +48,12 @@ import ../make-test-python.nix (
inherit interfaceNamespace;
};
};
# interface should be created in the socketNamespace
# and moved to the interfaceNamespace
peer2 = pkgs.lib.attrsets.recursiveUpdate node {
boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
# interface should be created in the socketNamespace
# and moved to the interfaceNamespace
peer2 =
{ lib, pkgs, ... }:
lib.attrsets.recursiveUpdate node {
boot.kernelPackages = lib.mkIf (kernelPackages != null) (kernelPackages pkgs);
networking.wireguard.interfaces.wg0 = {
preSetup = ''
ip netns add ${socketNamespace}
@@ -62,10 +62,12 @@ import ../make-test-python.nix (
inherit socketNamespace interfaceNamespace;
};
};
# interface should be created in the socketNamespace
# and moved to the init namespace
peer3 = pkgs.lib.attrsets.recursiveUpdate node {
boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
# interface should be created in the socketNamespace
# and moved to the init namespace
peer3 =
{ lib, pkgs, ... }:
lib.attrsets.recursiveUpdate node {
boot.kernelPackages = lib.mkIf (kernelPackages != null) (kernelPackages pkgs);
networking.wireguard.interfaces.wg0 = {
preSetup = ''
ip netns add ${socketNamespace}
@@ -74,18 +76,17 @@ import ../make-test-python.nix (
interfaceNamespace = "init";
};
};
};
};
testScript = ''
start_all()
testScript = ''
start_all()
for machine in peer0, peer1, peer2, peer3:
machine.wait_for_unit("wireguard-wg0.service")
for machine in peer0, peer1, peer2, peer3:
machine.wait_for_unit("wireguard-wg0.service")
peer0.succeed("ip -n ${socketNamespace} link show wg0")
peer1.succeed("ip -n ${interfaceNamespace} link show wg0")
peer2.succeed("ip -n ${interfaceNamespace} link show wg0")
peer3.succeed("ip link show wg0")
'';
}
)
peer0.succeed("ip -n ${socketNamespace} link show wg0")
peer1.succeed("ip -n ${interfaceNamespace} link show wg0")
peer2.succeed("ip -n ${interfaceNamespace} link show wg0")
peer3.succeed("ip link show wg0")
'';
}
+42 -43
View File
@@ -1,26 +1,24 @@
import ../make-test-python.nix (
{
pkgs,
lib,
kernelPackages ? null,
...
}:
let
wg-snakeoil-keys = import ./snakeoil-keys.nix;
peer = (import ./make-peer.nix) { inherit lib; };
in
{
name = "wireguard-networkd";
meta = with pkgs.lib.maintainers; {
maintainers = [ majiir ];
};
{
lib,
kernelPackages ? null,
...
}:
let
wg-snakeoil-keys = import ./snakeoil-keys.nix;
peer = import ./make-peer.nix;
in
{
name = "wireguard-networkd";
meta.maintainers = with lib.maintainers; [ majiir ];
nodes = {
peer0 = peer {
ip4 = "192.168.0.1";
ip6 = "fd00::1";
extraConfig = {
boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
nodes = {
peer0 = peer {
ip4 = "192.168.0.1";
ip6 = "fd00::1";
extraConfig =
{ lib, pkgs, ... }:
{
boot.kernelPackages = lib.mkIf (kernelPackages != null) (kernelPackages pkgs);
networking.firewall.allowedUDPPorts = [ 23542 ];
networking.wireguard.useNetworkd = true;
networking.wireguard.interfaces.wg0 = {
@@ -46,13 +44,15 @@ import ../make-test-python.nix (
};
};
};
};
};
peer1 = peer {
ip4 = "192.168.0.2";
ip6 = "fd00::2";
extraConfig = {
boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
peer1 = peer {
ip4 = "192.168.0.2";
ip6 = "fd00::2";
extraConfig =
{ lib, pkgs, ... }:
{
boot.kernelPackages = lib.mkIf (kernelPackages != null) (kernelPackages pkgs);
networking.wireguard.useNetworkd = true;
networking.wireguard.interfaces.wg0 = {
ips = [
@@ -79,24 +79,23 @@ import ../make-test-python.nix (
};
};
};
};
};
};
testScript = ''
start_all()
testScript = ''
start_all()
peer0.systemctl("start network-online.target")
peer0.wait_for_unit("network-online.target")
peer0.systemctl("start network-online.target")
peer0.wait_for_unit("network-online.target")
peer1.systemctl("start network-online.target")
peer1.wait_for_unit("network-online.target")
peer1.systemctl("start network-online.target")
peer1.wait_for_unit("network-online.target")
peer1.succeed("ping -c5 fc00::1")
peer1.succeed("ping -c5 10.23.42.1")
peer1.succeed("ping -c5 fc00::1")
peer1.succeed("ping -c5 10.23.42.1")
with subtest("Has PSK set"):
peer0.succeed("wg | grep 'preshared key'")
peer1.succeed("wg | grep 'preshared key'")
'';
}
)
with subtest("Has PSK set"):
peer0.succeed("wg | grep 'preshared key'")
peer1.succeed("wg | grep 'preshared key'")
'';
}
+86 -89
View File
@@ -1,104 +1,101 @@
import ../make-test-python.nix (
{
pkgs,
lib,
kernelPackages ? null,
nftables ? false,
...
}:
let
wg-snakeoil-keys = import ./snakeoil-keys.nix;
peer = import ./make-peer.nix { inherit lib; };
commonConfig = {
boot.kernelPackages = lib.mkIf (kernelPackages != null) kernelPackages;
{
lib,
kernelPackages ? null,
nftables ? false,
...
}:
let
wg-snakeoil-keys = import ./snakeoil-keys.nix;
peer = import ./make-peer.nix;
commonConfig =
{ pkgs, ... }:
{
boot.kernelPackages = lib.mkIf (kernelPackages != null) (kernelPackages pkgs);
networking.nftables.enable = nftables;
# Make sure iptables doesn't work with nftables enabled
boot.blacklistedKernelModules = lib.mkIf nftables [ "nft_compat" ];
};
in
{
name = "wg-quick";
in
{
name = "wg-quick";
nodes = {
peer0 = peer {
ip4 = "192.168.0.1";
ip6 = "fd00::1";
extraConfig = lib.mkMerge [
commonConfig
{
networking.firewall.allowedUDPPorts = [ 23542 ];
networking.wg-quick.interfaces.wg0 = {
address = [
"10.23.42.1/32"
"fc00::1/128"
];
listenPort = 23542;
nodes = {
peer0 = peer {
ip4 = "192.168.0.1";
ip6 = "fd00::1";
extraConfig = {
imports = [ commonConfig ];
inherit (wg-snakeoil-keys.peer0) privateKey;
networking.firewall.allowedUDPPorts = [ 23542 ];
networking.wg-quick.interfaces.wg0 = {
address = [
"10.23.42.1/32"
"fc00::1/128"
];
listenPort = 23542;
peers = lib.singleton {
allowedIPs = [
"10.23.42.2/32"
"fc00::2/128"
];
inherit (wg-snakeoil-keys.peer0) privateKey;
inherit (wg-snakeoil-keys.peer1) publicKey;
};
peers = lib.singleton {
allowedIPs = [
"10.23.42.2/32"
"fc00::2/128"
];
dns = [
"10.23.42.2"
"fc00::2"
"wg0"
];
};
}
];
};
inherit (wg-snakeoil-keys.peer1) publicKey;
};
peer1 = peer {
ip4 = "192.168.0.2";
ip6 = "fd00::2";
extraConfig = lib.mkMerge [
commonConfig
{
networking.useNetworkd = true;
networking.wg-quick.interfaces.wg0 = {
address = [
"10.23.42.2/32"
"fc00::2/128"
];
inherit (wg-snakeoil-keys.peer1) privateKey;
peers = lib.singleton {
allowedIPs = [
"0.0.0.0/0"
"::/0"
];
endpoint = "192.168.0.1:23542";
persistentKeepalive = 25;
inherit (wg-snakeoil-keys.peer0) publicKey;
};
dns = [
"10.23.42.1"
"fc00::1"
"wg0"
];
};
}
];
dns = [
"10.23.42.2"
"fc00::2"
"wg0"
];
};
};
};
testScript = ''
start_all()
peer1 = peer {
ip4 = "192.168.0.2";
ip6 = "fd00::2";
extraConfig = {
imports = [ commonConfig ];
peer0.wait_for_unit("wg-quick-wg0.service")
peer1.wait_for_unit("wg-quick-wg0.service")
networking.useNetworkd = true;
networking.wg-quick.interfaces.wg0 = {
address = [
"10.23.42.2/32"
"fc00::2/128"
];
inherit (wg-snakeoil-keys.peer1) privateKey;
peer1.succeed("ping -c5 fc00::1")
peer1.succeed("ping -c5 10.23.42.1")
'';
}
)
peers = lib.singleton {
allowedIPs = [
"0.0.0.0/0"
"::/0"
];
endpoint = "192.168.0.1:23542";
persistentKeepalive = 25;
inherit (wg-snakeoil-keys.peer0) publicKey;
};
dns = [
"10.23.42.1"
"fc00::1"
"wg0"
];
};
};
};
};
testScript = ''
start_all()
peer0.wait_for_unit("wg-quick-wg0.service")
peer1.wait_for_unit("wg-quick-wg0.service")
peer1.succeed("ping -c5 fc00::1")
peer1.succeed("ping -c5 10.23.42.1")
'';
}
+2 -6
View File
@@ -2,7 +2,7 @@
lib,
gccStdenv,
fetchFromGitHub,
autoreconfHook269,
autoreconfHook,
xorgproto,
libX11,
libXpm,
@@ -19,7 +19,7 @@ gccStdenv.mkDerivation {
sha256 = "WO7PN192HhcDl6iHIbVbH7MVMi1Tl2KyQbDa9DWRO6M=";
};
nativeBuildInputs = [ autoreconfHook269 ];
nativeBuildInputs = [ autoreconfHook ];
buildInputs = [
libX11
xorgproto
@@ -28,10 +28,6 @@ gccStdenv.mkDerivation {
configureFlags = [ "--with-x" ];
preAutoreconf = ''
autoupdate
'';
# The code needs an update for gcc-10:
# https://github.com/hackndev/0verkill/issues/7
env.NIX_CFLAGS_COMPILE = "-fcommon";
+3 -3
View File
@@ -8,13 +8,13 @@
buildGoModule (finalAttrs: {
pname = "bark-server";
version = "2.2.1";
version = "2.2.5";
src = fetchFromGitHub {
owner = "Finb";
repo = "bark-server";
tag = "v${finalAttrs.version}";
hash = "sha256-wwb3k68tjdmN+dy5CKJoUIScLXzNucq6wXy1HgXNa/0=";
hash = "sha256-Fe0PXwwVCrvoMTYMoTUkQaT6kVDdGPadFLkTDRhlh5U=";
# 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;
@@ -27,7 +27,7 @@ buildGoModule (finalAttrs: {
'';
};
vendorHash = "sha256-FTzSlliphTukCNf+cGGKWK798SARdEkE2HpfWS8ZlNc=";
vendorHash = "sha256-lpRxwCF+3+32FSn5XQ551l2ONtyuA9ewDQgwHgYUnT0=";
ldflags = [
"-s"
+2 -2
View File
@@ -16,13 +16,13 @@
buildNpmPackage rec {
pname = "basedpyright";
version = "1.30.1";
version = "1.31.0";
src = fetchFromGitHub {
owner = "detachhead";
repo = "basedpyright";
tag = "v${version}";
hash = "sha256-YPjeiRg7vIpb9k32og6byWMk+EfhDS9MwfJveAndbQQ=";
hash = "sha256-vgOo44ZvuySxQP9qJC7kXUVkOT1RhJ+/giqNBTCzpAg=";
};
npmDepsHash = "sha256-aJte4ApeXJQ9EYn87Uo+Xx7s+wi80I1JsZHeqklHGs4=";
+3 -2
View File
@@ -16,13 +16,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "chawan";
version = "0.2.0";
version = "0.2.1";
src = fetchFromSourcehut {
owner = "~bptato";
repo = "chawan";
rev = "v${finalAttrs.version}";
hash = "sha256-DiA7SEXPJTScdoFeGzH45wZP6gZRU8t/fvJLOufuNmU=";
hash = "sha256-n0hyAT6XuNJTpjLlYiiDER1xrz8nwT+Q2kSkg28Y8zE=";
};
patches = [ ./mancha-augment-path.diff ];
@@ -78,6 +78,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Lightweight and featureful terminal web browser";
homepage = "https://sr.ht/~bptato/chawan/";
changelog = "https://git.sr.ht/~bptato/chawan/refs/v${finalAttrs.version}";
license = lib.licenses.publicDomain;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ ];
+3 -3
View File
@@ -10,17 +10,17 @@
rustPlatform.buildRustPackage rec {
pname = "cloud-hypervisor";
version = "46.0";
version = "47.0";
src = fetchFromGitHub {
owner = "cloud-hypervisor";
repo = "cloud-hypervisor";
rev = "v${version}";
hash = "sha256-3jFZgcTyjbAB4Ka8ZHeqorlVTkAvXJ2No32038xK0Pc=";
hash = "sha256-NzvK6gKu7pWwTqLaeDKyYedIjzRa85k9PGUGfeA2Y4c=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-Zllj6HGRgI1tT8EODGOpSgmw3F89ie9Y1hChTrvwskg=";
cargoHash = "sha256-s3lBlYbE9xoLov8JWeX89A7J00tCISoCDHHBoEcILus=";
separateDebugInfo = true;
+2 -2
View File
@@ -48,13 +48,13 @@ in
stdenv.mkDerivation rec {
pname = "easyeffects";
version = "7.2.4";
version = "7.2.5";
src = fetchFromGitHub {
owner = "wwmm";
repo = "easyeffects";
tag = "v${version}";
hash = "sha256-C+zorQ7AFx72eOHUtjCHB2/1i1gnAoSMfEB+dWJIXHM=";
hash = "sha256-w3Mb13LOSF8vgcdJrqbesLqyyilI5AoA19jFquE5lEw=";
};
nativeBuildInputs = [
@@ -1,7 +1,7 @@
{
"version" = "1.11.105";
"version" = "1.11.106";
"hashes" = {
"desktopSrcHash" = "sha256-9btwbHHl1tiUBTMBltNdy8K/PHJOf3HKPWEPyAYz6+s=";
"desktopYarnHash" = "sha256-VumuYbbJlJCtmENeR/qHGl9jhF1xgIUib5CW7kGdToo=";
"desktopSrcHash" = "sha256-uQUd84MtwMTGhhw83pQk9jI79pNKBVTWJLz8dyT/SE4=";
"desktopYarnHash" = "sha256-WZYRPU3ZswAtUAZDJnlELLU1JImO3uFaYHQl+kJOeqk=";
};
}
@@ -1,7 +1,7 @@
{
"version" = "1.11.105";
"version" = "1.11.106";
"hashes" = {
"webSrcHash" = "sha256-IGpSpv1dfOnT6AQGzRYWE/eGW262i7mYGC4DmUnMwlk=";
"webYarnHash" = "sha256-cigiAKAJaOSCVaPThGhGi0HZYMZY8i3nnBT5PS7QVNg=";
"webSrcHash" = "sha256-1l7A+cpXAsTmNbRZgFevPh7Tr/uMHDJkOCNHoc5lGX8=";
"webYarnHash" = "sha256-N+aVIKLqTc9lwATYtoIHl7KGiREtWJdMa8bxEv60LQo=";
};
}
+3 -3
View File
@@ -8,14 +8,14 @@
}:
python3Packages.buildPythonApplication rec {
pname = "etesync-dav";
version = "0.34.0";
format = "pyproject";
version = "0.35.0";
pyproject = true;
src = fetchFromGitHub {
owner = "etesync";
repo = "etesync-dav";
tag = "v${version}";
hash = "sha256-+rNqyksOmDUh0OuvgEDWv6tuZQkn1gizz35Ptr6izos=";
hash = "sha256-CD02nuA9GD/oe7mjExUHIftkPxM1pZQKyDalXSoOhXY=";
};
build-system = with python3Packages; [ setuptools ];
+3 -3
View File
@@ -8,11 +8,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "gash";
version = "0.3.0";
version = "0.3.1";
src = fetchurl {
url = "mirror://savannah/gash/gash-${finalAttrs.version}.tar.gz";
hash = "sha256-VGrsaRBo1nfFjd/BVpXbn4CGFuGfpzMi1Ppno8iXwqk=";
url = "mirror://gnu/guix/mirror/gash-${finalAttrs.version}.tar.gz";
hash = "sha256-RwPWo+Kg3ztZCC1Ku7vJXlr2Fp/OZGCTjC7O6eaPPBk=";
};
strictDeps = true;
@@ -11,11 +11,11 @@ bundlerApp {
passthru.updateScript = bundlerUpdateScript "krane";
meta = with lib; {
meta = {
description = "Command-line tool that helps you ship changes to a Kubernetes namespace and understand the result";
homepage = "https://github.com/Shopify/krane";
changelog = "https://github.com/Shopify/krane/blob/main/CHANGELOG.md";
license = licenses.mit;
maintainers = with maintainers; [ kira-bruneau ];
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ kira-bruneau ];
};
}
+3 -3
View File
@@ -6,15 +6,15 @@
}:
rustPlatform.buildRustPackage rec {
pname = "loco";
version = "0.15.0";
version = "0.16.1";
src = fetchCrate {
inherit pname version;
hash = "sha256-sTPFDdiYmw+ODAcuBh4XXpSXVZbbYxfjr+WiTGit18E=";
hash = "sha256-5mg2caScI1sxKtadw8IP/yxDOdPN+RRqHXdsWr2R0FY=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-EsNFdk7bLRzyfncDRxqS0CQGdtPFdRRSlpTTxbQ8csI=";
cargoHash = "sha256-SFNaTo6fV7xhmkqK8SuFOjXeDDYN4+KTbF9DfpEX+dI=";
#Skip trycmd integration tests
checkFlags = [ "--skip=cli_tests" ];
+7 -3
View File
@@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "lzbench";
version = "2.0.1";
version = "2.1";
src = fetchFromGitHub {
owner = "inikep";
repo = "lzbench";
rev = "v${version}";
sha256 = "sha256-946AcnD9z60Oihm2pseS8D5j6pGdYeCxmhTLNcW9Mmc=";
sha256 = "sha256-JyK5Hah3X4zwmli44HEO62BYfNg7BBd0+DLlljeHmRc=";
};
enableParallelBuilding = true;
@@ -25,8 +25,12 @@ stdenv.mkDerivation rec {
meta = with lib; {
inherit (src.meta) homepage;
description = "In-memory benchmark of open-source LZ77/LZSS/LZMA compressors";
license = licenses.free;
license = with licenses; [
gpl2Only
gpl3Only
];
platforms = platforms.all;
maintainers = with lib.maintainers; [ videl ];
mainProgram = "lzbench";
};
}
+9 -9
View File
@@ -1,21 +1,21 @@
{
"version": "3.149.0",
"version": "3.152.1",
"assets": {
"x86_64-linux": {
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.149.0/mirrord_linux_x86_64",
"hash": "sha256-sRg0p9A8azjSSQLTltgfi62GaA0VI2bLKuL2P2hB2E8="
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.152.1/mirrord_linux_x86_64",
"hash": "sha256-iHGwnqJQ2uEyi3Mvtkce3YU38nuHjPL0x5cSbDZ4RXk="
},
"aarch64-linux": {
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.149.0/mirrord_linux_aarch64",
"hash": "sha256-gbDNJh1rycJ/WzBA/wy6eLscjNQ7ktCV+CrlorCF95A="
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.152.1/mirrord_linux_aarch64",
"hash": "sha256-6Ef5MRVUF7bNMNCFbSpUvZK6JoTdgWi/QhiqVuQIW5E="
},
"aarch64-darwin": {
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.149.0/mirrord_mac_universal",
"hash": "sha256-vUPuTc69yn71tLzSH6DdzWKc/yoHergglF7iL+R7PLE="
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.152.1/mirrord_mac_universal",
"hash": "sha256-GzUpt+3GkWdMTXK1O5Daki1ASoHtf6DbufyTy5HRcm4="
},
"x86_64-darwin": {
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.149.0/mirrord_mac_universal",
"hash": "sha256-vUPuTc69yn71tLzSH6DdzWKc/yoHergglF7iL+R7PLE="
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.152.1/mirrord_mac_universal",
"hash": "sha256-GzUpt+3GkWdMTXK1O5Daki1ASoHtf6DbufyTy5HRcm4="
}
}
}
+2 -2
View File
@@ -7,13 +7,13 @@
buildGoModule (finalAttrs: {
pname = "mkbrr";
version = "1.13.0";
version = "1.13.1";
src = fetchFromGitHub {
owner = "autobrr";
repo = "mkbrr";
tag = "v${finalAttrs.version}";
hash = "sha256-E5UiV7JoMzmnj8/LzVDqOuPNSockgmExmc0B9+KjGII=";
hash = "sha256-fX58/PRTVhUATWX5HOTtf6d6lmSRuE3xSrg/Qtzv/rs=";
};
vendorHash = "sha256-G8WM5x99UZfAZUkE5W37Ogx/OKk8JypPzGBrIuBOFNo=";
+8
View File
@@ -2,6 +2,7 @@
lib,
stdenv,
fetchFromGitHub,
fetchpatch2,
autoreconfHook,
pkg-config,
gettext,
@@ -19,6 +20,13 @@ stdenv.mkDerivation rec {
hash = "sha256-aOtP23kNd15DdV6on7o80QnEf0CiUBubHfFE8M1mhg0=";
};
patches = [
(fetchpatch2 {
url = "https://github.com/jubalh/nudoku/commit/c5fd9156d2d1f2c95a5d87b07adeaee90a7f911d.patch?full_index=1";
hash = "sha256-nvLKAUCDY3fQWjybVX8DaMBdk5CaegRRb/ENTI9kJ9k=";
})
];
nativeBuildInputs = [
autoreconfHook
pkg-config
+3 -3
View File
@@ -19,14 +19,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "s7";
version = "11.5-unstable-2025-07-14";
version = "11.5-unstable-2025-07-22";
src = fetchFromGitLab {
domain = "cm-gitlab.stanford.edu";
owner = "bil";
repo = "s7";
rev = "df56e55d023d0ed9c5be5a4fb6cd7a7f4cbc22fe";
hash = "sha256-iFOT7tTCTxOmLKj11NFTJ87ybE7XvLpRVQZgBTEjMbQ=";
rev = "03939f855e15f84f9113a92271cdfa0a09b28a67";
hash = "sha256-n6Uattns9TxXRi1lz/adexa13nlYXSp0usTT9uZ47JY=";
};
buildInputs = [
+3 -3
View File
@@ -6,13 +6,13 @@
}:
buildGoModule {
pname = "starlark";
version = "0-unstable-2025-07-01";
version = "0-unstable-2025-07-17";
src = fetchFromGitHub {
owner = "google";
repo = "starlark-go";
rev = "d457b4515e0ec7aa889d395a3d5b60732e814e73";
hash = "sha256-UUZPYYjAB6Hz+jUEmnyHM+MBDbHLt8XBSm1LKFzvxrM=";
rev = "336a4b3a6d1d23d37a9ac38a44af558c94c2f37a";
hash = "sha256-FXZCwGS/OaVwYa6q14OSLYvntYItfwRvn0M/P8rbnNg=";
};
vendorHash = "sha256-8drlCBy+KROyqXzm/c+HBe/bMVOyvwRoLHxOApJhMfo=";
+3 -3
View File
@@ -8,16 +8,16 @@
buildGoModule rec {
pname = "talosctl";
version = "1.10.4";
version = "1.10.5";
src = fetchFromGitHub {
owner = "siderolabs";
repo = "talos";
tag = "v${version}";
hash = "sha256-TWaORaR+3PTc+KqWuZiR5HpsuY7ox5BjQ72F8uYRzWQ=";
hash = "sha256-s+vRJ0qFhsgLiRpQfUnf/p6bcjQq40ISTB042iE7eBQ=";
};
vendorHash = "sha256-SDSWWhj3MTuNASZOujKz2M3glO1dhg0cS2pdfeZXyPk=";
vendorHash = "sha256-lYfyW3BEqlzf2wesZwNqQPdjSKRRldEbOeyRri4GwvQ=";
ldflags = [
"-s"
@@ -71,13 +71,13 @@ lib.checkListOfEnum "${pname}: colorVariants" colorVariantList colorVariants lib
stdenvNoCC.mkDerivation
{
inherit pname;
version = "0-unstable-2025-04-24";
version = "0-unstable-2025-07-21";
src = fetchFromGitHub {
owner = "Fausto-Korpsvart";
repo = "Tokyonight-GTK-Theme";
rev = "006154c78dde52b5851347a7e91f924af62f1b8f";
hash = "sha256-h5k9p++zjzxGFkTK/6o/ISl/Litgf6fzy8Jf6Ikt5V8=";
rev = "803334a2d85ff60597e1ddd6a593462acc570298";
hash = "sha256-aJWyMz1FZnGOH5YXiGa9NBlNY5JRw7J7SWqt5XGKznU=";
};
propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+3 -3
View File
@@ -18,16 +18,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "uv";
version = "0.8.0";
version = "0.8.2";
src = fetchFromGitHub {
owner = "astral-sh";
repo = "uv";
tag = finalAttrs.version;
hash = "sha256-iVwiXen/VNxXQxlF7cg9qGz61cEoszNgWB3XHdl750I=";
hash = "sha256-qMXXkf2hLyzd+4H85kGHiQIdAbvhMA2z+1z05ZF0hts=";
};
cargoHash = "sha256-Bw8/AAGcdE3qL0TENj4hMrOG89MLUQauMfpTmlgXdk8=";
cargoHash = "sha256-G5mLFKy/khHlP32/VFudtJJC1CWpBNyx4yPx1Gc8pcY=";
buildInputs = [
rust-jemalloc-sys
+3 -3
View File
@@ -10,16 +10,16 @@
buildGoModule (finalAttrs: {
pname = "yq-go";
version = "4.46.1";
version = "4.47.1";
src = fetchFromGitHub {
owner = "mikefarah";
repo = "yq";
tag = "v${finalAttrs.version}";
hash = "sha256-lMmcqAe1A/ET/2Dju6Gj0+I/g4z23EmtuRio0NYTHws=";
hash = "sha256-r9vHXDviQADv7yIwwzCHKjvHSNzZnJATwiWAaFW4vXs=";
};
vendorHash = "sha256-wfn8u8I4dyAD4PbeiQGSai1gQ2ZDFBi2mysZVKa0mkA=";
vendorHash = "sha256-mG9rKla2ZSEbOvSlV6jl7MBoo0dDI//CMcR2hLET4K4=";
nativeBuildInputs = [ installShellFiles ];
@@ -0,0 +1,36 @@
{
buildDunePackage,
fetchFromGitHub,
fetchpatch,
lib,
}:
let
pname = "camlgpc";
version = "1.2";
in
buildDunePackage {
inherit pname version;
src = fetchFromGitHub {
owner = "johnwhitington";
repo = pname;
rev = "v${version}";
hash = "sha256-+Dx8BuRlxb8xh41jHskrNcKGV/HgedauLt1vo1tADHw=";
};
patches = [
(fetchpatch {
name = "camlgpc-pr-5-switch-to-dune";
url = "https://github.com/johnwhitington/camlgpc/pull/5.diff";
hash = "sha256-znm+mX60RwYNCYXwm9HYCO8BRbzUM0Bm6dI1f1FzncA=";
})
];
propagatedBuildInputs = [ ];
doCheck = true;
checkInputs = [ ];
meta = {
description = "OCaml interface to Alan Murta's General Polygon Clipper";
homepage = "https://github.com/johnwhitington/camlgpc";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.vog ];
};
}
@@ -10,7 +10,7 @@
ocaml,
version ?
if lib.versionAtLeast ocaml.version "5.3" then
"1.22.0"
"1.23.0"
else if lib.versionAtLeast ocaml.version "5.2" then
"1.21.0"
else if lib.versionAtLeast ocaml.version "4.14" then
@@ -26,6 +26,11 @@
let
params =
{
"1.23.0" = {
name = "lsp";
minimalOCamlVersion = "5.3";
sha256 = "sha256-fyvQI7VKgOrOFihtKIkcE2B2iUYFLJOZGKipzZU0Dn0=";
};
"1.22.0" = {
name = "lsp";
minimalOCamlVersion = "5.2";
@@ -24,7 +24,7 @@
ocaml,
version ?
if lib.versionAtLeast ocaml.version "5.3" then
"1.22.0"
"1.23.0"
else if lib.versionAtLeast ocaml.version "5.2" then
"1.21.0"
else if lib.versionAtLeast ocaml.version "4.14" then
@@ -25,21 +25,24 @@
buildPythonPackage rec {
pname = "cvxpy";
version = "1.6.6";
version = "1.7.1";
pyproject = true;
src = fetchFromGitHub {
owner = "cvxpy";
repo = "cvxpy";
tag = "v${version}";
hash = "sha256-dn29rAm0f0cgUFtnHSykBE2p/U/EPorozjuuLWuH/Tw=";
hash = "sha256-gJL9j2hA+PvNhN1twv31dxb5Gz+q8uoIzwhXB12aIr4=";
};
# we need to patch out numpy version caps from upstream
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail "numpy >= 2.0.0" "numpy"
'';
postPatch =
# too tight tolerance in tests (AssertionError)
''
substituteInPlace cvxpy/tests/test_constant_atoms.py \
--replace-fail \
"CLARABEL: 1e-7," \
"CLARABEL: 1e-6,"
'';
build-system = [
numpy
@@ -5,7 +5,7 @@
buildPythonPackage,
}:
let
version = "16.7.11";
version = "17.2.11";
format = "wheel";
inherit (stdenvNoCC.hostPlatform) system;
@@ -13,19 +13,19 @@ let
pypiMeta =
{
x86_64-linux = {
hash = "sha256-aAPVZPz1mn73JuQPGJ/PAOUAtaufeHehSKHzaBmVFF8=";
hash = "sha256-PSCT5Y3JaOo9uJgCzXQVmcDvNxUEEN5dvjRxiEMcJEQ=";
platform = "manylinux1_x86_64";
};
aarch64-linux = {
hash = "sha256-mQgfMJ6esH41MXnGZQUwF4j8gDgzfyBDUQo5Kw8TGa4=";
hash = "sha256-UH+f6Pj1BS2hcwz3WoSsBGRXOIM/y8D0ymk8s7BU2nw=";
platform = "manylinux2014_aarch64";
};
x86_64-darwin = {
hash = "sha256-TuWvQ4oDkK5Fn/bp0G3eAhvDLlv0tzIQ8dKtysX36w0=";
hash = "sha256-zZms5eIguKTl5SYWtDNQwROPM2+5t8JVp/itIl9FkXs=";
platform = "macosx_10_13_x86_64";
};
aarch64-darwin = {
hash = "sha256-QWfWbGnKeuKiGoD0srnnMsbWPYFcYsbO/Oy68uJIRjI=";
hash = "sha256-vzyHYlstwm1GT1jKc0g5Yr6JVte9WGn+hALYpkefKBY=";
platform = "macosx_11_0_arm64";
};
}
@@ -0,0 +1,13 @@
diff --git a/tests/unit_tests/test_bash.py b/tests/unit_tests/test_bash.py
index ba7b0d0..cade19e 100644
--- a/tests/unit_tests/test_bash.py
+++ b/tests/unit_tests/test_bash.py
@@ -58,7 +58,7 @@ def test_incorrect_command_return_err_output() -> None:
session = BashProcess(return_err_output=True)
output = session.run(["invalid_command"])
assert re.match(
- r"^/bin/sh:.*invalid_command.*(?:not found|Permission denied).*$", output
+ r".*/bin/sh:.*invalid_command.*(?:not found|Permission denied).*$", output
)
@@ -0,0 +1,76 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
poetry-core,
# dependencies
langchain-core,
langchain-community,
# testing
langchain-tests,
pytestCheckHook,
# passthru
gitUpdater,
}:
buildPythonPackage rec {
pname = "langchain-experimental";
version = "0.3.4";
pyproject = true;
src = fetchFromGitHub {
owner = "langchain-ai";
repo = "langchain-experimental";
tag = "libs/experimental/v${version}";
hash = "sha256-KgGfJfxHOfpwVVo/OcbOjiO5pbxoDE1MiyKqUwsqfIg=";
};
sourceRoot = "${src.name}/libs/experimental";
patches = [
# Remove it when https://github.com/langchain-ai/langchain-experimental/pull/58 is merged and released
./001-avoid-check-fullpath.patch
];
build-system = [
poetry-core
];
pythonRelaxDeps = [
# Each component release requests the exact latest core.
# That prevents us from updating individual components.
"langchain-core"
"langchain-community"
];
dependencies = [
langchain-core
langchain-community
];
nativeCheckInputs = [
langchain-tests
pytestCheckHook
];
pytestFlagsArray = [ "tests/unit_tests" ];
pythonImportsCheck = [ "langchain_experimental" ];
passthru.updateScript = gitUpdater {
rev-prefix = "libs/experimental/v";
};
meta = {
changelog = "https://github.com/langchain-ai/langchain-experimental/releases/tag/${src.tag}";
description = "Package add experimental features on LangChain";
homepage = "https://github.com/langchain-ai/langchain-experimental/tree/main/libs/experimental";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ mrdev023 ];
};
}
@@ -22,14 +22,14 @@
buildPythonPackage rec {
pname = "pymc";
version = "5.24.1";
version = "5.25.0";
pyproject = true;
src = fetchFromGitHub {
owner = "pymc-devs";
repo = "pymc";
tag = "v${version}";
hash = "sha256-lBsVr3A7y9CP+41Tk5TraWhu59HJb2+r0I7WlXiP/sY=";
hash = "sha256-/BSnDi34hhn7lFuLO/arMn018BU09PaQqmaLbYG3en4=";
};
build-system = [
@@ -1,50 +0,0 @@
{
lib,
stdenv,
fetchurl,
m4,
perl,
}:
stdenv.mkDerivation rec {
pname = "autoconf";
version = "2.13";
src = fetchurl {
url = "mirror://gnu/autoconf/autoconf-${version}.tar.gz";
sha256 = "07krzl4czczdsgzrrw9fiqx35xcf32naf751khg821g5pqv12qgh";
};
nativeBuildInputs = [
m4
perl
];
strictDeps = true;
doCheck = true;
# Don't fixup "#! /bin/sh" in Autoconf, otherwise it will use the
# "fixed" path in generated files!
dontPatchShebangs = true;
postInstall = ''ln -s autoconf "$out"/bin/autoconf-2.13'';
meta = {
homepage = "https://www.gnu.org/software/autoconf/";
description = "Part of the GNU Build System";
branch = "2.13";
longDescription = ''
GNU Autoconf is an extensible package of M4 macros that produce
shell scripts to automatically configure software source code
packages. These scripts can adapt the packages to many kinds of
UNIX-like systems without manual user intervention. Autoconf
creates a configuration script for a package from a template
file that lists the operating system features that the package
can use, in the form of M4 macro calls.
'';
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.unix;
};
}
@@ -1,63 +0,0 @@
{
lib,
stdenv,
fetchurl,
m4,
perl,
}:
stdenv.mkDerivation rec {
pname = "autoconf";
version = "2.64";
src = fetchurl {
url = "mirror://gnu/autoconf/autoconf-${version}.tar.xz";
sha256 = "0j3jdjpf5ly39dlp0bg70h72nzqr059k0x8iqxvaxf106chpgn9j";
};
strictDeps = true;
nativeBuildInputs = [
m4
perl
];
buildInputs = [ m4 ];
# Work around a known issue in Cygwin. See
# http://thread.gmane.org/gmane.comp.sysutils.autoconf.bugs/6822 for
# details.
# There are many test failures on `i386-pc-solaris2.11'.
#doCheck = ((!stdenv.hostPlatform.isCygwin) && (!stdenv.hostPlatform.isSunOS));
doCheck = false;
# Don't fixup "#! /bin/sh" in Autoconf, otherwise it will use the
# "fixed" path in generated files!
dontPatchShebangs = true;
enableParallelBuilding = true;
# Make the Autotest test suite run in parallel.
preCheck = ''
export TESTSUITEFLAGS="-j$NIX_BUILD_CORES"
'';
doInstallCheck = false; # fails
meta = {
homepage = "https://www.gnu.org/software/autoconf/";
description = "Part of the GNU Build System";
longDescription = ''
GNU Autoconf is an extensible package of M4 macros that produce
shell scripts to automatically configure software source code
packages. These scripts can adapt the packages to many kinds of
UNIX-like systems without manual user intervention. Autoconf
creates a configuration script for a package from a template
file that lists the operating system features that the package
can use, in the form of M4 macro calls.
'';
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.all;
};
}
@@ -1,61 +0,0 @@
{
lib,
stdenv,
fetchurl,
perl,
autoconf,
}:
stdenv.mkDerivation rec {
pname = "automake";
version = "1.11.6";
# TODO: Remove the `aclocal' wrapper when $ACLOCAL_PATH support is
# available upstream; see
# <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=9026>.
builder = ./builder.sh;
setupHook = ./setup-hook.sh;
src = fetchurl {
url = "mirror://gnu/automake/automake-${version}.tar.xz";
sha256 = "1ffbc6cc41f0ea6c864fbe9485b981679dc5e350f6c4bc6c3512f5a4226936b5";
};
patches = [
./fix-test-autoconf-2.69.patch
./fix-perl-5.26.patch
];
strictDeps = true;
nativeBuildInputs = [
perl
autoconf
];
buildInputs = [ autoconf ];
doCheck = false; # takes _a lot_ of time, fails 11 of 782 tests
# Don't fixup "#! /bin/sh" in Libtool, otherwise it will use the
# "fixed" path in generated files!
dontPatchShebangs = true;
# Run the test suite in parallel.
enableParallelBuilding = true;
meta = {
branch = "1.11";
homepage = "https://www.gnu.org/software/automake/";
description = "GNU standard-compliant makefile generator";
longDescription = ''
GNU Automake is a tool for automatically generating
`Makefile.in' files compliant with the GNU Coding
Standards. Automake requires the use of Autoconf.
'';
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.all;
};
}
@@ -1,45 +0,0 @@
# Wrap the given `aclocal' program, appending extra `-I' flags
# corresponding to the directories listed in $ACLOCAL_PATH. (Note
# that `wrapProgram' can't be used for that purpose since it can only
# prepend flags, not append them.)
wrapAclocal() {
local program="$1"
local wrapped="$(dirname $program)/.$(basename $program)-wrapped"
mv "$program" "$wrapped"
cat > "$program"<<EOF
#! $SHELL -e
unset extraFlagsArray
declare -a extraFlagsArray
oldIFS=\$IFS
IFS=:
for dir in \$ACLOCAL_PATH; do
if test -n "\$dir" -a -d "\$dir"; then
extraFlagsArray=("\${extraFlagsArray[@]}" "-I" "\$dir")
fi
done
IFS=\$oldIFS
exec "$wrapped" "\$@" "\${extraFlagsArray[@]}"
EOF
chmod +x "$program"
}
postInstall() {
# Create a wrapper around `aclocal' that converts every element in
# `ACLOCAL_PATH' into a `-I dir' option. This way `aclocal'
# becomes modular; M4 macros do not need to be stored in a single
# global directory, while callers of `aclocal' do not need to pass
# `-I' options explicitly.
for prog in $out/bin/aclocal*; do
wrapAclocal "$prog"
done
ln -s aclocal-1.11 $out/share/aclocal
ln -s automake-1.11 $out/share/automake
}
genericBuild
@@ -1,10 +0,0 @@
--- automake-1.11.2/automake.in
+++ automake-1.11.2/automake.in
@@ -4156,7 +4156,7 @@ sub substitute_ac_subst_variables_worker($)
sub substitute_ac_subst_variables ($)
{
my ($text) = @_;
- $text =~ s/\${([^ \t=:+{}]+)}/&substitute_ac_subst_variables_worker ($1)/ge;
+ $text =~ s/\$\{([^ \t=:+{}]+)}/&substitute_ac_subst_variables_worker ($1)/ge;
return $text;
}
@@ -1,13 +0,0 @@
With Autoconf 2.69 (instead of 2.68), config.{guess,sub} are needed.
--- automake-1.11.2/tests/compile_f90_c_cxx.test 2011-12-20 21:56:29.000000000 +0100
+++ automake-1.11.2/tests/compile_f90_c_cxx.test 2012-07-07 13:35:58.000000000 +0200
@@ -41,7 +41,7 @@ END
: > baz.cc
$ACLOCAL
-$AUTOMAKE
+$AUTOMAKE --add-missing
# Look for the macros at the beginning of rules. Be careful, as there
# are literal tabs at the beginning of the search strings.
+6 -4
View File
@@ -20,15 +20,15 @@
"4.12.1" = "4.7-412";
"4.13.0" = "4.7-413";
"4.13.1" = "4.7-413";
"4.14.0" = "4.18-414";
"4.14.1" = "4.18-414";
"4.14.2" = "4.18-414";
"4.14.0" = "4.19-414";
"4.14.1" = "4.19-414";
"4.14.2" = "4.19-414";
"5.0.0" = "4.14-500";
"5.1.0" = "4.17.1-501";
"5.1.1" = "4.17.1-501";
"5.2.0" = "5.3-502";
"5.2.1" = "5.3-502";
"5.3.0" = "5.4.1-503";
"5.3.0" = "5.5-503";
}
."${ocaml.version}",
}:
@@ -42,9 +42,11 @@ let
"4.16-414" = "sha256-xekZdfPfVoSeGzBvNWwxcJorE519V2NLjSHkcyZvzy0="; # Used by ocaml-lsp
"4.16-501" = "sha256-2lvzCbBAZFwpKuRXLMagpwDb0rz8mWrBPI5cODbCHiY="; # Used by ocaml-lsp
"4.18-414" = "sha256-9tb3omYUHjWMGoaWEsgTXIWRhdVH6julya17tn/jDME=";
"4.19-414" = "sha256-YKYw9ZIDqc5wR6XwTQ8jmUWWDaxvOBApIuMottJlc4Q=";
"4.17.1-501" = "sha256-N2cHqocfCeljlFbT++S4miHJrXXHdOlMu75n+EKwpQA=";
"5.3-502" = "sha256-LOpG8SOX+m4x7wwNT14Rwc/ZFu5JQgaUAFyV67OqJLw=";
"5.4.1-503" = "sha256-SbO0x3jBISX8dAXnN5CwsxLV15dJ3XPUg4tlYqJTMCI=";
"5.5-503" = "sha256-Z9o7NPL+oHZ4JnMJ9h2kosbwgpjeDcWWVbjTD9gmmvE=";
};
in
@@ -17,8 +17,8 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "nix-community";
repo = pname;
rev = "v${version}";
repo = "nix-eval-jobs";
tag = "v${version}";
hash = "sha256-AJ22q6yWc1hPkqssXMxQqD6QUeJ6hbx52xWHhKsmuP0=";
};
@@ -35,6 +35,11 @@ stdenv.mkDerivation rec {
pkg-config
];
outputs = [
"out"
"dev"
];
# Since this package is intimately tied to a specific Nix release, we
# propagate the Nix used for building it to make it easier for users
# downstream to reference it.
+4
View File
@@ -315,7 +315,11 @@ mapAliases {
ats = throw "'ats' has been removed as it is unmaintained for 10 years and broken"; # Added 2025-05-17
audaciousQt5 = throw "'audaciousQt5' has been removed, since audacious is built with Qt 6 now"; # Added 2024-07-06
auditBlasHook = throw "'auditBlasHook' has been removed since it never worked"; # Added 2024-04-02
autoconf213 = throw "'autoconf213' has been removed in favor of 'autoconf'"; # Added 2025-07-21
autoconf264 = throw "'autoconf264' has been removed in favor of 'autoconf'"; # Added 2025-07-21
automake111x = throw "'automake111x' has been removed in favor of 'automake'"; # Added 2025-07-21
autoReconfHook = throw "You meant 'autoreconfHook', with a lowercase 'r'."; # preserve
autoreconfHook264 = throw "'autoreconfHook264' has been removed in favor of 'autoreconfHook'"; # Added 2025-07-21
aumix = throw "'aumix' has been removed due to lack of maintenance upstream. Consider using 'pamixer' for CLI or 'pavucontrol' for GUI"; # Added 2024-09-14
authy = throw "'authy' has been removed since it reached end of life"; # Added 2024-04-19
autoadb = throw "'autoadb' has been removed due to lack of maintenance upstream"; # Added 2025-01-25
-11
View File
@@ -230,11 +230,6 @@ with pkgs;
} ../build-support/setup-hooks/autoreconf.sh
) { };
autoreconfHook264 = autoreconfHook.override {
autoconf = autoconf264;
automake = automake111x;
};
autoreconfHook269 = autoreconfHook.override {
autoconf = autoconf269;
};
@@ -6914,15 +6909,11 @@ with pkgs;
electron-chromedriver = electron-chromedriver_37;
autoconf = callPackage ../development/tools/misc/autoconf { };
autoconf213 = callPackage ../development/tools/misc/autoconf/2.13.nix { };
autoconf264 = callPackage ../development/tools/misc/autoconf/2.64.nix { };
autoconf269 = callPackage ../development/tools/misc/autoconf/2.69.nix { };
autoconf271 = callPackage ../development/tools/misc/autoconf/2.71.nix { };
automake = automake116x;
automake111x = callPackage ../development/tools/misc/automake/automake-1.11.x.nix { };
automake116x = callPackage ../development/tools/misc/automake/automake-1.16.x.nix { };
automake118x = callPackage ../development/tools/misc/automake/automake-1.18.x.nix { };
@@ -12870,8 +12861,6 @@ with pkgs;
callPackage ../applications/networking/instant-messengers/telegram/kotatogram-desktop
{ };
krane = callPackage ../applications/networking/cluster/krane { };
ktimetracker = libsForQt5.callPackage ../applications/office/ktimetracker { };
kubeval = callPackage ../applications/networking/cluster/kubeval { };
+2
View File
@@ -165,6 +165,8 @@ let
callipyge = callPackage ../development/ocaml-modules/callipyge { };
camlgpc = callPackage ../development/ocaml-modules/camlgpc { };
camlidl = callPackage ../development/tools/ocaml/camlidl { };
camlimages = callPackage ../development/ocaml-modules/camlimages { };
+2
View File
@@ -7823,6 +7823,8 @@ self: super: with self; {
langchain-deepseek = callPackage ../development/python-modules/langchain-deepseek { };
langchain-experimental = callPackage ../development/python-modules/langchain-experimental { };
langchain-fireworks = callPackage ../development/python-modules/langchain-fireworks { };
langchain-google-genai = callPackage ../development/python-modules/langchain-google-genai { };
+24 -4
View File
@@ -240,12 +240,32 @@ let
# All packages built for i686 Linux.
# Used by wine, firefox with debugging version of Flash, ...
pkgsi686Linux =
if stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isx86 then
let
isSupported = stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isx86;
in
if !config.allowAliases || isSupported then
nixpkgsFun {
overlays = [
(self': super': {
pkgsi686Linux = super';
})
(
self': super':
{
pkgsi686Linux = super';
}
// lib.optionalAttrs (!isSupported) {
# Overrides pkgsi686Linux.stdenv.mkDerivation to produce only broken derivations,
# when used on a non x86_64-linux platform in CI.
# TODO: Remove this, once pkgsi686Linux can become a variant.
stdenv = super'.stdenv // {
mkDerivation =
args:
(super'.stdenv.mkDerivation args).overrideAttrs (prevAttrs: {
meta = prevAttrs.meta or { } // {
broken = true;
};
});
};
}
)
] ++ overlays;
${if stdenv.hostPlatform == stdenv.buildPlatform then "localSystem" else "crossSystem"} = {
config = lib.systems.parse.tripleFromSystem (