Merge remote-tracking branch 'origin/staging-next' into staging
Conflicts: pkgs/os-specific/linux/kernel/patches.nix pkgs/top-level/linux-kernels.nix
This commit is contained in:
commit
191075fa83
55 changed files with 12979 additions and 554 deletions
|
@ -8,7 +8,7 @@ A package set is available for each CUDA version, so for example
|
||||||
`cudaPackages_11_6`. Within each set is a matching version of the above listed
|
`cudaPackages_11_6`. Within each set is a matching version of the above listed
|
||||||
packages. Additionally, other versions of the packages that are packaged and
|
packages. Additionally, other versions of the packages that are packaged and
|
||||||
compatible are available as well. For example, there can be a
|
compatible are available as well. For example, there can be a
|
||||||
`cudaPackages.cudnn_8_3_2` package.
|
`cudaPackages.cudnn_8_3` package.
|
||||||
|
|
||||||
To use one or more CUDA packages in an expression, give the expression a `cudaPackages` parameter, and in case CUDA is optional
|
To use one or more CUDA packages in an expression, give the expression a `cudaPackages` parameter, and in case CUDA is optional
|
||||||
```nix
|
```nix
|
||||||
|
@ -28,7 +28,7 @@ set.
|
||||||
```nix
|
```nix
|
||||||
mypkg = let
|
mypkg = let
|
||||||
cudaPackages = cudaPackages_11_5.overrideScope' (final: prev: {
|
cudaPackages = cudaPackages_11_5.overrideScope' (final: prev: {
|
||||||
cudnn = prev.cudnn_8_3_2;
|
cudnn = prev.cudnn_8_3;
|
||||||
}});
|
}});
|
||||||
in callPackage { inherit cudaPackages; };
|
in callPackage { inherit cudaPackages; };
|
||||||
```
|
```
|
||||||
|
|
|
@ -1857,6 +1857,12 @@
|
||||||
githubId = 11135;
|
githubId = 11135;
|
||||||
name = "Berk D. Demir";
|
name = "Berk D. Demir";
|
||||||
};
|
};
|
||||||
|
bddvlpr = {
|
||||||
|
email = "luna@bddvlpr.com";
|
||||||
|
github = "bddvlpr";
|
||||||
|
githubId = 17461028;
|
||||||
|
name = "Luna Simons";
|
||||||
|
};
|
||||||
bdesham = {
|
bdesham = {
|
||||||
email = "benjamin@esham.io";
|
email = "benjamin@esham.io";
|
||||||
github = "bdesham";
|
github = "bdesham";
|
||||||
|
@ -17353,10 +17359,10 @@
|
||||||
};
|
};
|
||||||
yayayayaka = {
|
yayayayaka = {
|
||||||
email = "nixpkgs@uwu.is";
|
email = "nixpkgs@uwu.is";
|
||||||
matrix = "@lara:uwu.is";
|
matrix = "@yaya:uwu.is";
|
||||||
github = "yayayayaka";
|
github = "yayayayaka";
|
||||||
githubId = 73759599;
|
githubId = 73759599;
|
||||||
name = "Lara A.";
|
name = "Yaya";
|
||||||
};
|
};
|
||||||
ydlr = {
|
ydlr = {
|
||||||
name = "ydlr";
|
name = "ydlr";
|
||||||
|
|
|
@ -16,4 +16,4 @@
|
||||||
|
|
||||||
## Other Notable Changes {#sec-release-23.11-notable-changes}
|
## Other Notable Changes {#sec-release-23.11-notable-changes}
|
||||||
|
|
||||||
- Create the first release note entry in this section!
|
- A new option was added to the virtualisation module that enables specifying explicitly named network interfaces in QEMU VMs. The existing `virtualisation.vlans` is still supported for cases where the name of the network interface is irrelevant.
|
||||||
|
|
|
@ -12,7 +12,9 @@ let
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
vlans = map (m: m.virtualisation.vlans) (lib.attrValues config.nodes);
|
vlans = map (m: (
|
||||||
|
m.virtualisation.vlans ++
|
||||||
|
(lib.mapAttrsToList (_: v: v.vlan) m.virtualisation.interfaces))) (lib.attrValues config.nodes);
|
||||||
vms = map (m: m.system.build.vm) (lib.attrValues config.nodes);
|
vms = map (m: m.system.build.vm) (lib.attrValues config.nodes);
|
||||||
|
|
||||||
nodeHostNames =
|
nodeHostNames =
|
||||||
|
|
|
@ -4,7 +4,7 @@ let
|
||||||
inherit (lib)
|
inherit (lib)
|
||||||
attrNames concatMap concatMapStrings flip forEach head
|
attrNames concatMap concatMapStrings flip forEach head
|
||||||
listToAttrs mkDefault mkOption nameValuePair optionalString
|
listToAttrs mkDefault mkOption nameValuePair optionalString
|
||||||
range types zipListsWith zipLists
|
range toLower types zipListsWith zipLists
|
||||||
mdDoc
|
mdDoc
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ -18,24 +18,41 @@ let
|
||||||
|
|
||||||
networkModule = { config, nodes, pkgs, ... }:
|
networkModule = { config, nodes, pkgs, ... }:
|
||||||
let
|
let
|
||||||
interfacesNumbered = zipLists config.virtualisation.vlans (range 1 255);
|
qemu-common = import ../qemu-common.nix { inherit lib pkgs; };
|
||||||
interfaces = forEach interfacesNumbered ({ fst, snd }:
|
|
||||||
nameValuePair "eth${toString snd}" {
|
# Convert legacy VLANs to named interfaces and merge with explicit interfaces.
|
||||||
ipv4.addresses =
|
vlansNumbered = forEach (zipLists config.virtualisation.vlans (range 1 255)) (v: {
|
||||||
[{
|
name = "eth${toString v.snd}";
|
||||||
address = "192.168.${toString fst}.${toString config.virtualisation.test.nodeNumber}";
|
vlan = v.fst;
|
||||||
|
assignIP = true;
|
||||||
|
});
|
||||||
|
explicitInterfaces = lib.mapAttrsToList (n: v: v // { name = n; }) config.virtualisation.interfaces;
|
||||||
|
interfaces = vlansNumbered ++ explicitInterfaces;
|
||||||
|
interfacesNumbered = zipLists interfaces (range 1 255);
|
||||||
|
|
||||||
|
# Automatically assign IP addresses to requested interfaces.
|
||||||
|
assignIPs = lib.filter (i: i.assignIP) interfaces;
|
||||||
|
ipInterfaces = forEach assignIPs (i:
|
||||||
|
nameValuePair i.name { ipv4.addresses =
|
||||||
|
[ { address = "192.168.${toString i.vlan}.${toString config.virtualisation.test.nodeNumber}";
|
||||||
prefixLength = 24;
|
prefixLength = 24;
|
||||||
}];
|
}];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
qemuOptions = lib.flatten (forEach interfacesNumbered ({ fst, snd }:
|
||||||
|
qemu-common.qemuNICFlags snd fst.vlan config.virtualisation.test.nodeNumber));
|
||||||
|
udevRules = forEach interfacesNumbered ({ fst, snd }:
|
||||||
|
# MAC Addresses for QEMU network devices are lowercase, and udev string comparison is case-sensitive.
|
||||||
|
''SUBSYSTEM=="net",ACTION=="add",ATTR{address}=="${toLower(qemu-common.qemuNicMac fst.vlan config.virtualisation.test.nodeNumber)}",NAME="${fst.name}"'');
|
||||||
|
|
||||||
networkConfig =
|
networkConfig =
|
||||||
{
|
{
|
||||||
networking.hostName = mkDefault config.virtualisation.test.nodeName;
|
networking.hostName = mkDefault config.virtualisation.test.nodeName;
|
||||||
|
|
||||||
networking.interfaces = listToAttrs interfaces;
|
networking.interfaces = listToAttrs ipInterfaces;
|
||||||
|
|
||||||
networking.primaryIPAddress =
|
networking.primaryIPAddress =
|
||||||
optionalString (interfaces != [ ]) (head (head interfaces).value.ipv4.addresses).address;
|
optionalString (ipInterfaces != [ ]) (head (head ipInterfaces).value.ipv4.addresses).address;
|
||||||
|
|
||||||
# Put the IP addresses of all VMs in this machine's
|
# Put the IP addresses of all VMs in this machine's
|
||||||
# /etc/hosts file. If a machine has multiple
|
# /etc/hosts file. If a machine has multiple
|
||||||
|
@ -51,16 +68,13 @@ let
|
||||||
"${config.networking.hostName}.${config.networking.domain} " +
|
"${config.networking.hostName}.${config.networking.domain} " +
|
||||||
"${config.networking.hostName}\n"));
|
"${config.networking.hostName}\n"));
|
||||||
|
|
||||||
virtualisation.qemu.options =
|
virtualisation.qemu.options = qemuOptions;
|
||||||
let qemu-common = import ../qemu-common.nix { inherit lib pkgs; };
|
boot.initrd.services.udev.rules = concatMapStrings (x: x + "\n") udevRules;
|
||||||
in
|
|
||||||
flip concatMap interfacesNumbered
|
|
||||||
({ fst, snd }: qemu-common.qemuNICFlags snd fst config.virtualisation.test.nodeNumber);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
key = "ip-address";
|
key = "network-interfaces";
|
||||||
config = networkConfig // {
|
config = networkConfig // {
|
||||||
# Expose the networkConfig items for tests like nixops
|
# Expose the networkConfig items for tests like nixops
|
||||||
# that need to recreate the network config.
|
# that need to recreate the network config.
|
||||||
|
|
|
@ -564,7 +564,8 @@ in
|
||||||
virtualisation.vlans =
|
virtualisation.vlans =
|
||||||
mkOption {
|
mkOption {
|
||||||
type = types.listOf types.ints.unsigned;
|
type = types.listOf types.ints.unsigned;
|
||||||
default = [ 1 ];
|
default = if config.virtualisation.interfaces == {} then [ 1 ] else [ ];
|
||||||
|
defaultText = lib.literalExpression ''if config.virtualisation.interfaces == {} then [ 1 ] else [ ]'';
|
||||||
example = [ 1 2 ];
|
example = [ 1 2 ];
|
||||||
description =
|
description =
|
||||||
lib.mdDoc ''
|
lib.mdDoc ''
|
||||||
|
@ -579,6 +580,35 @@ in
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
virtualisation.interfaces = mkOption {
|
||||||
|
default = {};
|
||||||
|
example = {
|
||||||
|
enp1s0.vlan = 1;
|
||||||
|
};
|
||||||
|
description = lib.mdDoc ''
|
||||||
|
Network interfaces to add to the VM.
|
||||||
|
'';
|
||||||
|
type = with types; attrsOf (submodule {
|
||||||
|
options = {
|
||||||
|
vlan = mkOption {
|
||||||
|
type = types.ints.unsigned;
|
||||||
|
description = lib.mdDoc ''
|
||||||
|
VLAN to which the network interface is connected.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
assignIP = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = lib.mdDoc ''
|
||||||
|
Automatically assign an IP address to the network interface using the same scheme as
|
||||||
|
virtualisation.vlans.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
virtualisation.writableStore =
|
virtualisation.writableStore =
|
||||||
mkOption {
|
mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
|
|
|
@ -93,18 +93,19 @@ let
|
||||||
name = "Static";
|
name = "Static";
|
||||||
nodes.router = router;
|
nodes.router = router;
|
||||||
nodes.client = { pkgs, ... }: with pkgs.lib; {
|
nodes.client = { pkgs, ... }: with pkgs.lib; {
|
||||||
virtualisation.vlans = [ 1 2 ];
|
virtualisation.interfaces.enp1s0.vlan = 1;
|
||||||
|
virtualisation.interfaces.enp2s0.vlan = 2;
|
||||||
networking = {
|
networking = {
|
||||||
useNetworkd = networkd;
|
useNetworkd = networkd;
|
||||||
useDHCP = false;
|
useDHCP = false;
|
||||||
defaultGateway = "192.168.1.1";
|
defaultGateway = "192.168.1.1";
|
||||||
defaultGateway6 = "fd00:1234:5678:1::1";
|
defaultGateway6 = "fd00:1234:5678:1::1";
|
||||||
interfaces.eth1.ipv4.addresses = mkOverride 0 [
|
interfaces.enp1s0.ipv4.addresses = [
|
||||||
{ address = "192.168.1.2"; prefixLength = 24; }
|
{ address = "192.168.1.2"; prefixLength = 24; }
|
||||||
{ address = "192.168.1.3"; prefixLength = 32; }
|
{ address = "192.168.1.3"; prefixLength = 32; }
|
||||||
{ address = "192.168.1.10"; prefixLength = 32; }
|
{ address = "192.168.1.10"; prefixLength = 32; }
|
||||||
];
|
];
|
||||||
interfaces.eth2.ipv4.addresses = mkOverride 0 [
|
interfaces.enp2s0.ipv4.addresses = [
|
||||||
{ address = "192.168.2.2"; prefixLength = 24; }
|
{ address = "192.168.2.2"; prefixLength = 24; }
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
@ -170,12 +171,12 @@ let
|
||||||
# Disable test driver default config
|
# Disable test driver default config
|
||||||
networking.interfaces = lib.mkForce {};
|
networking.interfaces = lib.mkForce {};
|
||||||
networking.useNetworkd = networkd;
|
networking.useNetworkd = networkd;
|
||||||
virtualisation.vlans = [ 1 ];
|
virtualisation.interfaces.enp1s0.vlan = 1;
|
||||||
};
|
};
|
||||||
testScript = ''
|
testScript = ''
|
||||||
start_all()
|
start_all()
|
||||||
client.wait_for_unit("multi-user.target")
|
client.wait_for_unit("multi-user.target")
|
||||||
client.wait_until_succeeds("ip addr show dev eth1 | grep '192.168.1'")
|
client.wait_until_succeeds("ip addr show dev enp1s0 | grep '192.168.1'")
|
||||||
client.shell_interact()
|
client.shell_interact()
|
||||||
client.succeed("ping -c 1 192.168.1.1")
|
client.succeed("ping -c 1 192.168.1.1")
|
||||||
router.succeed("ping -c 1 192.168.1.1")
|
router.succeed("ping -c 1 192.168.1.1")
|
||||||
|
@ -187,20 +188,13 @@ let
|
||||||
name = "SimpleDHCP";
|
name = "SimpleDHCP";
|
||||||
nodes.router = router;
|
nodes.router = router;
|
||||||
nodes.client = { pkgs, ... }: with pkgs.lib; {
|
nodes.client = { pkgs, ... }: with pkgs.lib; {
|
||||||
virtualisation.vlans = [ 1 2 ];
|
virtualisation.interfaces.enp1s0.vlan = 1;
|
||||||
|
virtualisation.interfaces.enp2s0.vlan = 2;
|
||||||
networking = {
|
networking = {
|
||||||
useNetworkd = networkd;
|
useNetworkd = networkd;
|
||||||
useDHCP = false;
|
useDHCP = false;
|
||||||
interfaces.eth1 = {
|
interfaces.enp1s0.useDHCP = true;
|
||||||
ipv4.addresses = mkOverride 0 [ ];
|
interfaces.enp2s0.useDHCP = true;
|
||||||
ipv6.addresses = mkOverride 0 [ ];
|
|
||||||
useDHCP = true;
|
|
||||||
};
|
|
||||||
interfaces.eth2 = {
|
|
||||||
ipv4.addresses = mkOverride 0 [ ];
|
|
||||||
ipv6.addresses = mkOverride 0 [ ];
|
|
||||||
useDHCP = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
testScript = { ... }:
|
testScript = { ... }:
|
||||||
|
@ -211,10 +205,10 @@ let
|
||||||
router.wait_for_unit("network-online.target")
|
router.wait_for_unit("network-online.target")
|
||||||
|
|
||||||
with subtest("Wait until we have an ip address on each interface"):
|
with subtest("Wait until we have an ip address on each interface"):
|
||||||
client.wait_until_succeeds("ip addr show dev eth1 | grep -q '192.168.1'")
|
client.wait_until_succeeds("ip addr show dev enp1s0 | grep -q '192.168.1'")
|
||||||
client.wait_until_succeeds("ip addr show dev eth1 | grep -q 'fd00:1234:5678:1:'")
|
client.wait_until_succeeds("ip addr show dev enp1s0 | grep -q 'fd00:1234:5678:1:'")
|
||||||
client.wait_until_succeeds("ip addr show dev eth2 | grep -q '192.168.2'")
|
client.wait_until_succeeds("ip addr show dev enp2s0 | grep -q '192.168.2'")
|
||||||
client.wait_until_succeeds("ip addr show dev eth2 | grep -q 'fd00:1234:5678:2:'")
|
client.wait_until_succeeds("ip addr show dev enp2s0 | grep -q 'fd00:1234:5678:2:'")
|
||||||
|
|
||||||
with subtest("Test vlan 1"):
|
with subtest("Test vlan 1"):
|
||||||
client.wait_until_succeeds("ping -c 1 192.168.1.1")
|
client.wait_until_succeeds("ping -c 1 192.168.1.1")
|
||||||
|
@ -243,16 +237,15 @@ let
|
||||||
name = "OneInterfaceDHCP";
|
name = "OneInterfaceDHCP";
|
||||||
nodes.router = router;
|
nodes.router = router;
|
||||||
nodes.client = { pkgs, ... }: with pkgs.lib; {
|
nodes.client = { pkgs, ... }: with pkgs.lib; {
|
||||||
virtualisation.vlans = [ 1 2 ];
|
virtualisation.interfaces.enp1s0.vlan = 1;
|
||||||
|
virtualisation.interfaces.enp2s0.vlan = 2;
|
||||||
networking = {
|
networking = {
|
||||||
useNetworkd = networkd;
|
useNetworkd = networkd;
|
||||||
useDHCP = false;
|
useDHCP = false;
|
||||||
interfaces.eth1 = {
|
interfaces.enp1s0 = {
|
||||||
ipv4.addresses = mkOverride 0 [ ];
|
|
||||||
mtu = 1343;
|
mtu = 1343;
|
||||||
useDHCP = true;
|
useDHCP = true;
|
||||||
};
|
};
|
||||||
interfaces.eth2.ipv4.addresses = mkOverride 0 [ ];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
testScript = { ... }:
|
testScript = { ... }:
|
||||||
|
@ -264,10 +257,10 @@ let
|
||||||
router.wait_for_unit("network.target")
|
router.wait_for_unit("network.target")
|
||||||
|
|
||||||
with subtest("Wait until we have an ip address on each interface"):
|
with subtest("Wait until we have an ip address on each interface"):
|
||||||
client.wait_until_succeeds("ip addr show dev eth1 | grep -q '192.168.1'")
|
client.wait_until_succeeds("ip addr show dev enp1s0 | grep -q '192.168.1'")
|
||||||
|
|
||||||
with subtest("ensure MTU is set"):
|
with subtest("ensure MTU is set"):
|
||||||
assert "mtu 1343" in client.succeed("ip link show dev eth1")
|
assert "mtu 1343" in client.succeed("ip link show dev enp1s0")
|
||||||
|
|
||||||
with subtest("Test vlan 1"):
|
with subtest("Test vlan 1"):
|
||||||
client.wait_until_succeeds("ping -c 1 192.168.1.1")
|
client.wait_until_succeeds("ping -c 1 192.168.1.1")
|
||||||
|
@ -286,16 +279,15 @@ let
|
||||||
};
|
};
|
||||||
bond = let
|
bond = let
|
||||||
node = address: { pkgs, ... }: with pkgs.lib; {
|
node = address: { pkgs, ... }: with pkgs.lib; {
|
||||||
virtualisation.vlans = [ 1 2 ];
|
virtualisation.interfaces.enp1s0.vlan = 1;
|
||||||
|
virtualisation.interfaces.enp2s0.vlan = 2;
|
||||||
networking = {
|
networking = {
|
||||||
useNetworkd = networkd;
|
useNetworkd = networkd;
|
||||||
useDHCP = false;
|
useDHCP = false;
|
||||||
bonds.bond0 = {
|
bonds.bond0 = {
|
||||||
interfaces = [ "eth1" "eth2" ];
|
interfaces = [ "enp1s0" "enp2s0" ];
|
||||||
driverOptions.mode = "802.3ad";
|
driverOptions.mode = "802.3ad";
|
||||||
};
|
};
|
||||||
interfaces.eth1.ipv4.addresses = mkOverride 0 [ ];
|
|
||||||
interfaces.eth2.ipv4.addresses = mkOverride 0 [ ];
|
|
||||||
interfaces.bond0.ipv4.addresses = mkOverride 0
|
interfaces.bond0.ipv4.addresses = mkOverride 0
|
||||||
[ { inherit address; prefixLength = 30; } ];
|
[ { inherit address; prefixLength = 30; } ];
|
||||||
};
|
};
|
||||||
|
@ -326,12 +318,11 @@ let
|
||||||
};
|
};
|
||||||
bridge = let
|
bridge = let
|
||||||
node = { address, vlan }: { pkgs, ... }: with pkgs.lib; {
|
node = { address, vlan }: { pkgs, ... }: with pkgs.lib; {
|
||||||
virtualisation.vlans = [ vlan ];
|
virtualisation.interfaces.enp1s0.vlan = vlan;
|
||||||
networking = {
|
networking = {
|
||||||
useNetworkd = networkd;
|
useNetworkd = networkd;
|
||||||
useDHCP = false;
|
useDHCP = false;
|
||||||
interfaces.eth1.ipv4.addresses = mkOverride 0
|
interfaces.enp1s0.ipv4.addresses = [ { inherit address; prefixLength = 24; } ];
|
||||||
[ { inherit address; prefixLength = 24; } ];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
|
@ -339,11 +330,12 @@ let
|
||||||
nodes.client1 = node { address = "192.168.1.2"; vlan = 1; };
|
nodes.client1 = node { address = "192.168.1.2"; vlan = 1; };
|
||||||
nodes.client2 = node { address = "192.168.1.3"; vlan = 2; };
|
nodes.client2 = node { address = "192.168.1.3"; vlan = 2; };
|
||||||
nodes.router = { pkgs, ... }: with pkgs.lib; {
|
nodes.router = { pkgs, ... }: with pkgs.lib; {
|
||||||
virtualisation.vlans = [ 1 2 ];
|
virtualisation.interfaces.enp1s0.vlan = 1;
|
||||||
|
virtualisation.interfaces.enp2s0.vlan = 2;
|
||||||
networking = {
|
networking = {
|
||||||
useNetworkd = networkd;
|
useNetworkd = networkd;
|
||||||
useDHCP = false;
|
useDHCP = false;
|
||||||
bridges.bridge.interfaces = [ "eth1" "eth2" ];
|
bridges.bridge.interfaces = [ "enp1s0" "enp2s0" ];
|
||||||
interfaces.eth1.ipv4.addresses = mkOverride 0 [ ];
|
interfaces.eth1.ipv4.addresses = mkOverride 0 [ ];
|
||||||
interfaces.eth2.ipv4.addresses = mkOverride 0 [ ];
|
interfaces.eth2.ipv4.addresses = mkOverride 0 [ ];
|
||||||
interfaces.bridge.ipv4.addresses = mkOverride 0
|
interfaces.bridge.ipv4.addresses = mkOverride 0
|
||||||
|
@ -377,7 +369,7 @@ let
|
||||||
nodes.router = router;
|
nodes.router = router;
|
||||||
nodes.client = { pkgs, ... }: with pkgs.lib; {
|
nodes.client = { pkgs, ... }: with pkgs.lib; {
|
||||||
environment.systemPackages = [ pkgs.iptables ]; # to debug firewall rules
|
environment.systemPackages = [ pkgs.iptables ]; # to debug firewall rules
|
||||||
virtualisation.vlans = [ 1 ];
|
virtualisation.interfaces.enp1s0.vlan = 1;
|
||||||
networking = {
|
networking = {
|
||||||
useNetworkd = networkd;
|
useNetworkd = networkd;
|
||||||
useDHCP = false;
|
useDHCP = false;
|
||||||
|
@ -385,14 +377,9 @@ let
|
||||||
# reverse path filtering rules for the macvlan interface seem
|
# reverse path filtering rules for the macvlan interface seem
|
||||||
# to be incorrect, causing the test to fail. Disable temporarily.
|
# to be incorrect, causing the test to fail. Disable temporarily.
|
||||||
firewall.checkReversePath = false;
|
firewall.checkReversePath = false;
|
||||||
macvlans.macvlan.interface = "eth1";
|
macvlans.macvlan.interface = "enp1s0";
|
||||||
interfaces.eth1 = {
|
interfaces.enp1s0.useDHCP = true;
|
||||||
ipv4.addresses = mkOverride 0 [ ];
|
interfaces.macvlan.useDHCP = true;
|
||||||
useDHCP = true;
|
|
||||||
};
|
|
||||||
interfaces.macvlan = {
|
|
||||||
useDHCP = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
testScript = { ... }:
|
testScript = { ... }:
|
||||||
|
@ -404,7 +391,7 @@ let
|
||||||
router.wait_for_unit("network.target")
|
router.wait_for_unit("network.target")
|
||||||
|
|
||||||
with subtest("Wait until we have an ip address on each interface"):
|
with subtest("Wait until we have an ip address on each interface"):
|
||||||
client.wait_until_succeeds("ip addr show dev eth1 | grep -q '192.168.1'")
|
client.wait_until_succeeds("ip addr show dev enp1s0 | grep -q '192.168.1'")
|
||||||
client.wait_until_succeeds("ip addr show dev macvlan | grep -q '192.168.1'")
|
client.wait_until_succeeds("ip addr show dev macvlan | grep -q '192.168.1'")
|
||||||
|
|
||||||
with subtest("Print lots of diagnostic information"):
|
with subtest("Print lots of diagnostic information"):
|
||||||
|
@ -431,23 +418,22 @@ let
|
||||||
fou = {
|
fou = {
|
||||||
name = "foo-over-udp";
|
name = "foo-over-udp";
|
||||||
nodes.machine = { ... }: {
|
nodes.machine = { ... }: {
|
||||||
virtualisation.vlans = [ 1 ];
|
virtualisation.interfaces.enp1s0.vlan = 1;
|
||||||
networking = {
|
networking = {
|
||||||
useNetworkd = networkd;
|
useNetworkd = networkd;
|
||||||
useDHCP = false;
|
useDHCP = false;
|
||||||
interfaces.eth1.ipv4.addresses = mkOverride 0
|
interfaces.enp1s0.ipv4.addresses = [ { address = "192.168.1.1"; prefixLength = 24; } ];
|
||||||
[ { address = "192.168.1.1"; prefixLength = 24; } ];
|
|
||||||
fooOverUDP = {
|
fooOverUDP = {
|
||||||
fou1 = { port = 9001; };
|
fou1 = { port = 9001; };
|
||||||
fou2 = { port = 9002; protocol = 41; };
|
fou2 = { port = 9002; protocol = 41; };
|
||||||
fou3 = mkIf (!networkd)
|
fou3 = mkIf (!networkd)
|
||||||
{ port = 9003; local.address = "192.168.1.1"; };
|
{ port = 9003; local.address = "192.168.1.1"; };
|
||||||
fou4 = mkIf (!networkd)
|
fou4 = mkIf (!networkd)
|
||||||
{ port = 9004; local = { address = "192.168.1.1"; dev = "eth1"; }; };
|
{ port = 9004; local = { address = "192.168.1.1"; dev = "enp1s0"; }; };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
systemd.services = {
|
systemd.services = {
|
||||||
fou3-fou-encap.after = optional (!networkd) "network-addresses-eth1.service";
|
fou3-fou-encap.after = optional (!networkd) "network-addresses-enp1s0.service";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
testScript = { ... }:
|
testScript = { ... }:
|
||||||
|
@ -470,22 +456,22 @@ let
|
||||||
"gue": None,
|
"gue": None,
|
||||||
"family": "inet",
|
"family": "inet",
|
||||||
"local": "192.168.1.1",
|
"local": "192.168.1.1",
|
||||||
"dev": "eth1",
|
"dev": "enp1s0",
|
||||||
} in fous, "fou4 exists"
|
} in fous, "fou4 exists"
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
sit = let
|
sit = let
|
||||||
node = { address4, remote, address6 }: { pkgs, ... }: with pkgs.lib; {
|
node = { address4, remote, address6 }: { pkgs, ... }: with pkgs.lib; {
|
||||||
virtualisation.vlans = [ 1 ];
|
virtualisation.interfaces.enp1s0.vlan = 1;
|
||||||
networking = {
|
networking = {
|
||||||
useNetworkd = networkd;
|
useNetworkd = networkd;
|
||||||
useDHCP = false;
|
useDHCP = false;
|
||||||
sits.sit = {
|
sits.sit = {
|
||||||
inherit remote;
|
inherit remote;
|
||||||
local = address4;
|
local = address4;
|
||||||
dev = "eth1";
|
dev = "enp1s0";
|
||||||
};
|
};
|
||||||
interfaces.eth1.ipv4.addresses = mkOverride 0
|
interfaces.enp1s0.ipv4.addresses = mkOverride 0
|
||||||
[ { address = address4; prefixLength = 24; } ];
|
[ { address = address4; prefixLength = 24; } ];
|
||||||
interfaces.sit.ipv6.addresses = mkOverride 0
|
interfaces.sit.ipv6.addresses = mkOverride 0
|
||||||
[ { address = address6; prefixLength = 64; } ];
|
[ { address = address6; prefixLength = 64; } ];
|
||||||
|
@ -685,10 +671,10 @@ let
|
||||||
vlan-ping = let
|
vlan-ping = let
|
||||||
baseIP = number: "10.10.10.${number}";
|
baseIP = number: "10.10.10.${number}";
|
||||||
vlanIP = number: "10.1.1.${number}";
|
vlanIP = number: "10.1.1.${number}";
|
||||||
baseInterface = "eth1";
|
baseInterface = "enp1s0";
|
||||||
vlanInterface = "vlan42";
|
vlanInterface = "vlan42";
|
||||||
node = number: {pkgs, ... }: with pkgs.lib; {
|
node = number: {pkgs, ... }: with pkgs.lib; {
|
||||||
virtualisation.vlans = [ 1 ];
|
virtualisation.interfaces.enp1s0.vlan = 1;
|
||||||
networking = {
|
networking = {
|
||||||
#useNetworkd = networkd;
|
#useNetworkd = networkd;
|
||||||
useDHCP = false;
|
useDHCP = false;
|
||||||
|
@ -785,12 +771,12 @@ let
|
||||||
privacy = {
|
privacy = {
|
||||||
name = "Privacy";
|
name = "Privacy";
|
||||||
nodes.router = { ... }: {
|
nodes.router = { ... }: {
|
||||||
virtualisation.vlans = [ 1 ];
|
virtualisation.interfaces.enp1s0.vlan = 1;
|
||||||
boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = true;
|
boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = true;
|
||||||
networking = {
|
networking = {
|
||||||
useNetworkd = networkd;
|
useNetworkd = networkd;
|
||||||
useDHCP = false;
|
useDHCP = false;
|
||||||
interfaces.eth1.ipv6.addresses = singleton {
|
interfaces.enp1s0.ipv6.addresses = singleton {
|
||||||
address = "fd00:1234:5678:1::1";
|
address = "fd00:1234:5678:1::1";
|
||||||
prefixLength = 64;
|
prefixLength = 64;
|
||||||
};
|
};
|
||||||
|
@ -798,7 +784,7 @@ let
|
||||||
services.radvd = {
|
services.radvd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
config = ''
|
config = ''
|
||||||
interface eth1 {
|
interface enp1s0 {
|
||||||
AdvSendAdvert on;
|
AdvSendAdvert on;
|
||||||
AdvManagedFlag on;
|
AdvManagedFlag on;
|
||||||
AdvOtherConfigFlag on;
|
AdvOtherConfigFlag on;
|
||||||
|
@ -812,11 +798,11 @@ let
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
nodes.client_with_privacy = { pkgs, ... }: with pkgs.lib; {
|
nodes.client_with_privacy = { pkgs, ... }: with pkgs.lib; {
|
||||||
virtualisation.vlans = [ 1 ];
|
virtualisation.interfaces.enp1s0.vlan = 1;
|
||||||
networking = {
|
networking = {
|
||||||
useNetworkd = networkd;
|
useNetworkd = networkd;
|
||||||
useDHCP = false;
|
useDHCP = false;
|
||||||
interfaces.eth1 = {
|
interfaces.enp1s0 = {
|
||||||
tempAddress = "default";
|
tempAddress = "default";
|
||||||
ipv4.addresses = mkOverride 0 [ ];
|
ipv4.addresses = mkOverride 0 [ ];
|
||||||
ipv6.addresses = mkOverride 0 [ ];
|
ipv6.addresses = mkOverride 0 [ ];
|
||||||
|
@ -825,11 +811,11 @@ let
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
nodes.client = { pkgs, ... }: with pkgs.lib; {
|
nodes.client = { pkgs, ... }: with pkgs.lib; {
|
||||||
virtualisation.vlans = [ 1 ];
|
virtualisation.interfaces.enp1s0.vlan = 1;
|
||||||
networking = {
|
networking = {
|
||||||
useNetworkd = networkd;
|
useNetworkd = networkd;
|
||||||
useDHCP = false;
|
useDHCP = false;
|
||||||
interfaces.eth1 = {
|
interfaces.enp1s0 = {
|
||||||
tempAddress = "enabled";
|
tempAddress = "enabled";
|
||||||
ipv4.addresses = mkOverride 0 [ ];
|
ipv4.addresses = mkOverride 0 [ ];
|
||||||
ipv6.addresses = mkOverride 0 [ ];
|
ipv6.addresses = mkOverride 0 [ ];
|
||||||
|
@ -847,9 +833,9 @@ let
|
||||||
|
|
||||||
with subtest("Wait until we have an ip address"):
|
with subtest("Wait until we have an ip address"):
|
||||||
client_with_privacy.wait_until_succeeds(
|
client_with_privacy.wait_until_succeeds(
|
||||||
"ip addr show dev eth1 | grep -q 'fd00:1234:5678:1:'"
|
"ip addr show dev enp1s0 | grep -q 'fd00:1234:5678:1:'"
|
||||||
)
|
)
|
||||||
client.wait_until_succeeds("ip addr show dev eth1 | grep -q 'fd00:1234:5678:1:'")
|
client.wait_until_succeeds("ip addr show dev enp1s0 | grep -q 'fd00:1234:5678:1:'")
|
||||||
|
|
||||||
with subtest("Test vlan 1"):
|
with subtest("Test vlan 1"):
|
||||||
client_with_privacy.wait_until_succeeds("ping -c 1 fd00:1234:5678:1::1")
|
client_with_privacy.wait_until_succeeds("ping -c 1 fd00:1234:5678:1::1")
|
||||||
|
@ -947,7 +933,7 @@ let
|
||||||
), "The IPv6 routing table has not been properly cleaned:\n{}".format(ipv6Residue)
|
), "The IPv6 routing table has not been properly cleaned:\n{}".format(ipv6Residue)
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
rename = {
|
rename = if networkd then {
|
||||||
name = "RenameInterface";
|
name = "RenameInterface";
|
||||||
nodes.machine = { pkgs, ... }: {
|
nodes.machine = { pkgs, ... }: {
|
||||||
virtualisation.vlans = [ 1 ];
|
virtualisation.vlans = [ 1 ];
|
||||||
|
@ -955,23 +941,20 @@ let
|
||||||
useNetworkd = networkd;
|
useNetworkd = networkd;
|
||||||
useDHCP = false;
|
useDHCP = false;
|
||||||
};
|
};
|
||||||
} //
|
systemd.network.links."10-custom_name" = {
|
||||||
(if networkd
|
matchConfig.MACAddress = "52:54:00:12:01:01";
|
||||||
then { systemd.network.links."10-custom_name" = {
|
linkConfig.Name = "custom_name";
|
||||||
matchConfig.MACAddress = "52:54:00:12:01:01";
|
};
|
||||||
linkConfig.Name = "custom_name";
|
};
|
||||||
};
|
|
||||||
}
|
|
||||||
else { boot.initrd.services.udev.rules = ''
|
|
||||||
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:12:01:01", KERNEL=="eth*", NAME="custom_name"
|
|
||||||
'';
|
|
||||||
});
|
|
||||||
testScript = ''
|
testScript = ''
|
||||||
machine.succeed("udevadm settle")
|
machine.succeed("udevadm settle")
|
||||||
print(machine.succeed("ip link show dev custom_name"))
|
print(machine.succeed("ip link show dev custom_name"))
|
||||||
'';
|
'';
|
||||||
};
|
} else {
|
||||||
|
name = "RenameInterface";
|
||||||
nodes = { };
|
nodes = { };
|
||||||
|
testScript = "";
|
||||||
|
};
|
||||||
# even with disabled networkd, systemd.network.links should work
|
# even with disabled networkd, systemd.network.links should work
|
||||||
# (as it's handled by udev, not networkd)
|
# (as it's handled by udev, not networkd)
|
||||||
link = {
|
link = {
|
||||||
|
@ -1015,6 +998,21 @@ let
|
||||||
machine.fail("ip address show wlan0 | grep -q ${testMac}")
|
machine.fail("ip address show wlan0 | grep -q ${testMac}")
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
caseSensitiveRenaming = {
|
||||||
|
name = "CaseSensitiveRenaming";
|
||||||
|
nodes.machine = { pkgs, ... }: {
|
||||||
|
virtualisation.interfaces.enCustom.vlan = 11;
|
||||||
|
networking = {
|
||||||
|
useNetworkd = networkd;
|
||||||
|
useDHCP = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
testScript = ''
|
||||||
|
machine.succeed("udevadm settle")
|
||||||
|
print(machine.succeed("ip link show dev enCustom"))
|
||||||
|
machine.wait_until_succeeds("ip link show dev enCustom | grep -q '52:54:00:12:0b:01")
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
in mapAttrs (const (attrs: makeTest (attrs // {
|
in mapAttrs (const (attrs: makeTest (attrs // {
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -126,12 +126,12 @@
|
||||||
};
|
};
|
||||||
c = buildGrammar {
|
c = buildGrammar {
|
||||||
language = "c";
|
language = "c";
|
||||||
version = "0.0.0+rev=cac392a";
|
version = "0.0.0+rev=a015709";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "tree-sitter";
|
owner = "tree-sitter";
|
||||||
repo = "tree-sitter-c";
|
repo = "tree-sitter-c";
|
||||||
rev = "cac392ac3d7d365c469971b117e92a0df3bc8305";
|
rev = "a015709e7d1bb4f823a2fc53175e0cbee96c1c3e";
|
||||||
hash = "sha256-ck6OEjljRReUl10W6yLu1dxa8ln8n8GMUz01BDj/kFk=";
|
hash = "sha256-q+jXkhhk46NoKAxVj7fWiUZ2iosW1bRJ0A244Cf4zCA=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-c";
|
meta.homepage = "https://github.com/tree-sitter/tree-sitter-c";
|
||||||
};
|
};
|
||||||
|
@ -258,12 +258,12 @@
|
||||||
};
|
};
|
||||||
cuda = buildGrammar {
|
cuda = buildGrammar {
|
||||||
language = "cuda";
|
language = "cuda";
|
||||||
version = "0.0.0+rev=7f6b482";
|
version = "0.0.0+rev=9c20a31";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "theHamsta";
|
owner = "theHamsta";
|
||||||
repo = "tree-sitter-cuda";
|
repo = "tree-sitter-cuda";
|
||||||
rev = "7f6b48249b8500d506bd424cfa8e4c9d83e17754";
|
rev = "9c20a3120c405db9efda9349cd005c29f2aace3c";
|
||||||
hash = "sha256-A9AI3S/wToFvkj0Oe4UQ/B30r1a/tdgqRuObxazZlHs=";
|
hash = "sha256-LOCC9Si6RFlxK3TQrApYjAquuhYFp2empRnZMwVSO30=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/theHamsta/tree-sitter-cuda";
|
meta.homepage = "https://github.com/theHamsta/tree-sitter-cuda";
|
||||||
};
|
};
|
||||||
|
@ -1597,12 +1597,12 @@
|
||||||
};
|
};
|
||||||
scala = buildGrammar {
|
scala = buildGrammar {
|
||||||
language = "scala";
|
language = "scala";
|
||||||
version = "0.0.0+rev=78ae129";
|
version = "0.0.0+rev=5aefc0a";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "tree-sitter";
|
owner = "tree-sitter";
|
||||||
repo = "tree-sitter-scala";
|
repo = "tree-sitter-scala";
|
||||||
rev = "78ae129292990224bcae025e7d3f4873a88f772d";
|
rev = "5aefc0ae4c174fa74d6e973faefa28692e081954";
|
||||||
hash = "sha256-g9jx06MvdMdAk12dK0yFwTP0gkqsd+efQbPAxD47pnU=";
|
hash = "sha256-3FV3MuOx/sZ6NqeewbKhrhUFfnc1mjWpF3TetAlkkBg=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-scala";
|
meta.homepage = "https://github.com/tree-sitter/tree-sitter-scala";
|
||||||
};
|
};
|
||||||
|
@ -1685,12 +1685,12 @@
|
||||||
};
|
};
|
||||||
sql = buildGrammar {
|
sql = buildGrammar {
|
||||||
language = "sql";
|
language = "sql";
|
||||||
version = "0.0.0+rev=721087c";
|
version = "0.0.0+rev=63a6bad";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "derekstride";
|
owner = "derekstride";
|
||||||
repo = "tree-sitter-sql";
|
repo = "tree-sitter-sql";
|
||||||
rev = "721087c8819cda10ca37f974e914ab9be46b290f";
|
rev = "63a6bad6d4ca2192cf252e10db73627414546732";
|
||||||
hash = "sha256-R23co3mAH6ToFzfgnq9PWyX/uu15vbnMAB+dRVB00oI=";
|
hash = "sha256-M7+uDzqTqUcYAvRBeO9ncaFlRGa5iRBPurnwyjdr9Lw=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/derekstride/tree-sitter-sql";
|
meta.homepage = "https://github.com/derekstride/tree-sitter-sql";
|
||||||
};
|
};
|
||||||
|
@ -1774,13 +1774,13 @@
|
||||||
};
|
};
|
||||||
t32 = buildGrammar {
|
t32 = buildGrammar {
|
||||||
language = "t32";
|
language = "t32";
|
||||||
version = "0.0.0+rev=c5ab392";
|
version = "0.0.0+rev=b4dca35";
|
||||||
src = fetchFromGitea {
|
src = fetchFromGitea {
|
||||||
domain = "codeberg.org";
|
domain = "codeberg.org";
|
||||||
owner = "xasc";
|
owner = "xasc";
|
||||||
repo = "tree-sitter-t32";
|
repo = "tree-sitter-t32";
|
||||||
rev = "c5ab392fece192875d2206da487449b856afcdef";
|
rev = "b4dca3527463274de1f3263c0e1c329bc3b4f514";
|
||||||
hash = "sha256-OalZs7pP00j3qyQv7mwVx1/jnoM91ZbqwEC17iTxZ/4=";
|
hash = "sha256-qWtlk7r6UmEEsbz6k7eGTv4WdWbcaUn2rUQsQ4SxqJA=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://codeberg.org/xasc/tree-sitter-t32";
|
meta.homepage = "https://codeberg.org/xasc/tree-sitter-t32";
|
||||||
};
|
};
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "kyverno";
|
pname = "kyverno";
|
||||||
version = "1.9.3";
|
version = "1.9.4";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "kyverno";
|
owner = "kyverno";
|
||||||
repo = "kyverno";
|
repo = "kyverno";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-SiupfSBdk006xSCdQS1peLABZc+LNjMXxL5wr6R+aTc=";
|
sha256 = "sha256-rpqhDnXxbWKa1WB7WBS6Ri7XiPWv3e0evCXFSBcaD6c=";
|
||||||
};
|
};
|
||||||
|
|
||||||
ldflags = [
|
ldflags = [
|
||||||
|
|
|
@ -27,7 +27,7 @@ let
|
||||||
# Earlier versions of cudatoolkit use pre-8.x CUDNN, so we use the default.
|
# Earlier versions of cudatoolkit use pre-8.x CUDNN, so we use the default.
|
||||||
cudnn = if lib.versionOlder cudatoolkit.version "10.1"
|
cudnn = if lib.versionOlder cudatoolkit.version "10.1"
|
||||||
then cudaPackages.cudnn
|
then cudaPackages.cudnn
|
||||||
else cudaPackages.cudnn_7_6_5;
|
else cudaPackages.cudnn_7_6;
|
||||||
in
|
in
|
||||||
|
|
||||||
assert leveldbSupport -> (leveldb != null && snappy != null);
|
assert leveldbSupport -> (leveldb != null && snappy != null);
|
||||||
|
|
|
@ -230,7 +230,7 @@ rec {
|
||||||
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
writeScriptBin = name: text: writeTextFile {inherit name text; executable = true; destination = "/bin/${name}";};
|
writeScriptBin = name: text: writeTextFile {inherit name text; executable = true; destination = "/bin/${name}"; meta.mainProgram = name;};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Similar to writeScript. Writes a Shell script and checks its syntax.
|
Similar to writeScript. Writes a Shell script and checks its syntax.
|
||||||
|
@ -288,6 +288,7 @@ rec {
|
||||||
checkPhase = ''
|
checkPhase = ''
|
||||||
${stdenv.shellDryRun} "$target"
|
${stdenv.shellDryRun} "$target"
|
||||||
'';
|
'';
|
||||||
|
meta.mainProgram = name;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -291,6 +291,10 @@ backendStdenv.mkDerivation rec {
|
||||||
'' + lib.optionalString (lib.versionOlder version "8.0") ''
|
'' + lib.optionalString (lib.versionOlder version "8.0") ''
|
||||||
# Hack to fix building against recent Glibc/GCC.
|
# Hack to fix building against recent Glibc/GCC.
|
||||||
echo "NIX_CFLAGS_COMPILE+=' -D_FORCE_INLINES'" >> $out/nix-support/setup-hook
|
echo "NIX_CFLAGS_COMPILE+=' -D_FORCE_INLINES'" >> $out/nix-support/setup-hook
|
||||||
|
''
|
||||||
|
# 11.8 includes a broken symlink, include/include, pointing to targets/x86_64-linux/include
|
||||||
|
+ lib.optionalString (lib.versions.majorMinor version == "11.8") ''
|
||||||
|
rm $out/include/include
|
||||||
'' + ''
|
'' + ''
|
||||||
runHook postInstall
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -2,17 +2,19 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "doctest";
|
pname = "doctest";
|
||||||
version = "2.4.9";
|
version = "2.4.11";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "doctest";
|
owner = "doctest";
|
||||||
repo = "doctest";
|
repo = "doctest";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-ugmkeX2PN4xzxAZpWgswl4zd2u125Q/ADSKzqTfnd94=";
|
sha256 = "sha256-hotO6QVpPn8unYTaQHFgi40A3oLUd++I3aTe293e4Aw=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake ];
|
nativeBuildInputs = [ cmake ];
|
||||||
|
|
||||||
|
doCheck = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://github.com/doctest/doctest";
|
homepage = "https://github.com/doctest/doctest";
|
||||||
description = "The fastest feature-rich C++11/14/17/20 single-header testing framework";
|
description = "The fastest feature-rich C++11/14/17/20 single-header testing framework";
|
||||||
|
|
|
@ -47,6 +47,7 @@ let
|
||||||
./patches/0004-qtbase-fix-locating-tzdir-on-NixOS.patch
|
./patches/0004-qtbase-fix-locating-tzdir-on-NixOS.patch
|
||||||
./patches/0005-qtbase-deal-with-a-font-face-at-index-0-as-Regular-f.patch
|
./patches/0005-qtbase-deal-with-a-font-face-at-index-0-as-Regular-f.patch
|
||||||
./patches/0006-qtbase-qt-cmake-always-use-cmake-from-path.patch
|
./patches/0006-qtbase-qt-cmake-always-use-cmake-from-path.patch
|
||||||
|
./patches/0007-qtbase-find-qt-tools-in-QTTOOLSPATH.patch
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
env = callPackage ./qt-env.nix { };
|
env = callPackage ./qt-env.nix { };
|
||||||
|
|
|
@ -49,6 +49,20 @@ else # Only set up Qt once.
|
||||||
}
|
}
|
||||||
envBuildHostHooks+=(qmakePathHook)
|
envBuildHostHooks+=(qmakePathHook)
|
||||||
|
|
||||||
|
export QTTOOLSPATH=
|
||||||
|
|
||||||
|
declare -Ag qttoolsPathSeen=()
|
||||||
|
qtToolsHook() {
|
||||||
|
# Skip this path if we have seen it before.
|
||||||
|
# MUST use 'if' because 'qttoolsPathSeen[$]' may be unset.
|
||||||
|
if [ -n "${qttoolsPathSeen[$1]-}" ]; then return; fi
|
||||||
|
qttoolsPathSeen[$1]=1
|
||||||
|
if [ -d "$1/libexec" ]; then
|
||||||
|
QTTOOLSPATH="${QTTOOLSPATH}${QTTOOLSPATH:+:}$1/libexec"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
addEnvHooks "$hostOffset" qtToolsHook
|
||||||
|
|
||||||
postPatchMkspecs() {
|
postPatchMkspecs() {
|
||||||
# Prevent this hook from running multiple times
|
# Prevent this hook from running multiple times
|
||||||
dontPatchMkspecs=1
|
dontPatchMkspecs=1
|
||||||
|
|
|
@ -1,9 +1,26 @@
|
||||||
{ qtModule
|
{ qtModule
|
||||||
, qtdeclarative
|
, qtdeclarative
|
||||||
|
, qtbase
|
||||||
|
, qttools
|
||||||
}:
|
}:
|
||||||
|
|
||||||
qtModule {
|
qtModule {
|
||||||
pname = "qtdoc";
|
pname = "qtdoc";
|
||||||
|
# avoid fix-qt-builtin-paths hook substitute QT_INSTALL_DOCS to qtdoc's path
|
||||||
|
postPatch = ''
|
||||||
|
for file in $(grep -rl '$QT_INSTALL_DOCS'); do
|
||||||
|
substituteInPlace $file \
|
||||||
|
--replace '$QT_INSTALL_DOCS' "${qtbase}/share/doc"
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
nativeBuildInputs = [ qttools ];
|
||||||
qtInputs = [ qtdeclarative ];
|
qtInputs = [ qtdeclarative ];
|
||||||
|
cmakeFlags = [
|
||||||
|
"-DCMAKE_MESSAGE_LOG_LEVEL=STATUS"
|
||||||
|
];
|
||||||
|
dontUseNinjaBuild = true;
|
||||||
|
buildFlags = [ "docs" ];
|
||||||
|
dontUseNinjaInstall = true;
|
||||||
|
installFlags = [ "install_docs" ];
|
||||||
outputs = [ "out" ];
|
outputs = [ "out" ];
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,12 +3,16 @@
|
||||||
, lib
|
, lib
|
||||||
, qtbase
|
, qtbase
|
||||||
, qtdeclarative
|
, qtdeclarative
|
||||||
|
, llvmPackages
|
||||||
, cups
|
, cups
|
||||||
, substituteAll
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
qtModule {
|
qtModule {
|
||||||
pname = "qttools";
|
pname = "qttools";
|
||||||
|
buildInputs = [
|
||||||
|
llvmPackages.libclang
|
||||||
|
llvmPackages.llvm
|
||||||
|
];
|
||||||
qtInputs = [ qtbase qtdeclarative ];
|
qtInputs = [ qtbase qtdeclarative ];
|
||||||
propagatedBuildInputs = lib.optionals stdenv.isDarwin [ cups ];
|
propagatedBuildInputs = lib.optionals stdenv.isDarwin [ cups ];
|
||||||
patches = [
|
patches = [
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
From 31d808a7b0d52a01c3f2875202cd29410a94b39a Mon Sep 17 00:00:00 2001
|
||||||
|
From: rewine <luhongxu@deepin.org>
|
||||||
|
Date: Wed, 29 Mar 2023 11:51:33 +0800
|
||||||
|
Subject: [PATCH] qtbase-find-tools-in-PATH
|
||||||
|
|
||||||
|
1. find qt's tools in `QTTOOLSPATH` env
|
||||||
|
qt assumes that all components use the same install prefix
|
||||||
|
we can't get the real prefix for qttools when build qtbase
|
||||||
|
we will add /libexec to `QTTOOLSPATH` in qtToolsHook
|
||||||
|
find_path will also search in 'PATH' by default
|
||||||
|
see `CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH`
|
||||||
|
|
||||||
|
2. disable tool_dependencies_enabled
|
||||||
|
We can guarantee the build order of qt components in nixpkgs
|
||||||
|
tools in qttools always build before qtdoc
|
||||||
|
qdoc_bin is not a build target now, since we find it in `QTTOOLSPATH`
|
||||||
|
|
||||||
|
---
|
||||||
|
cmake/QtDocsHelpers.cmake | 11 ++++++++---
|
||||||
|
1 file changed, 8 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/cmake/QtDocsHelpers.cmake b/cmake/QtDocsHelpers.cmake
|
||||||
|
index 48ed5a32..9409d22d 100644
|
||||||
|
--- a/cmake/QtDocsHelpers.cmake
|
||||||
|
+++ b/cmake/QtDocsHelpers.cmake
|
||||||
|
@@ -47,9 +47,14 @@ function(qt_internal_add_docs)
|
||||||
|
set(doc_tools_libexec "${QT_BUILD_INTERNALS_RELOCATABLE_INSTALL_PREFIX}/${INSTALL_LIBEXECDIR}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
- set(qdoc_bin "${doc_tools_bin}/qdoc${CMAKE_EXECUTABLE_SUFFIX}")
|
||||||
|
- set(qtattributionsscanner_bin "${doc_tools_libexec}/qtattributionsscanner${CMAKE_EXECUTABLE_SUFFIX}")
|
||||||
|
- set(qhelpgenerator_bin "${doc_tools_libexec}/qhelpgenerator${CMAKE_EXECUTABLE_SUFFIX}")
|
||||||
|
+ set(tool_dependencies_enabled FALSE)
|
||||||
|
+
|
||||||
|
+ find_path(qdoc_path name qdoc PATHS ENV QTTOOLSPATH)
|
||||||
|
+ find_path(qtattributionsscanner_path name qtattributionsscanner PATHS ENV QTTOOLSPATH)
|
||||||
|
+ find_path(qhelpgenerator_path name qhelpgenerator PATHS ENV QTTOOLSPATH)
|
||||||
|
+ set(qdoc_bin "${qdoc_path}/qdoc${CMAKE_EXECUTABLE_SUFFIX}")
|
||||||
|
+ set(qtattributionsscanner_bin "${qtattributionsscanner_path}/qtattributionsscanner${CMAKE_EXECUTABLE_SUFFIX}")
|
||||||
|
+ set(qhelpgenerator_bin "${qhelpgenerator_path}/qhelpgenerator${CMAKE_EXECUTABLE_SUFFIX}")
|
||||||
|
|
||||||
|
get_target_property(target_type ${target} TYPE)
|
||||||
|
if (NOT target_type STREQUAL "INTERFACE_LIBRARY")
|
||||||
|
--
|
||||||
|
2.38.1
|
||||||
|
|
|
@ -11,29 +11,23 @@
|
||||||
final: prev: let
|
final: prev: let
|
||||||
inherit (final) callPackage;
|
inherit (final) callPackage;
|
||||||
inherit (prev) cudaVersion;
|
inherit (prev) cudaVersion;
|
||||||
inherit (prev.lib) attrsets lists versions strings trivial;
|
inherit (prev.lib) attrsets lists versions;
|
||||||
|
inherit (prev.lib.strings) replaceStrings versionAtLeast versionOlder;
|
||||||
# Utilities
|
|
||||||
# majorMinorPatch :: String -> String
|
|
||||||
majorMinorPatch = (trivial.flip trivial.pipe) [
|
|
||||||
(versions.splitVersion)
|
|
||||||
(lists.take 3)
|
|
||||||
(strings.concatStringsSep ".")
|
|
||||||
];
|
|
||||||
|
|
||||||
# Compute versioned attribute name to be used in this package set
|
# Compute versioned attribute name to be used in this package set
|
||||||
|
# Patch version changes should not break the build, so we only use major and minor
|
||||||
# computeName :: String -> String
|
# computeName :: String -> String
|
||||||
computeName = version: "cudnn_${strings.replaceStrings ["."] ["_"] (majorMinorPatch version)}";
|
computeName = version: "cudnn_${replaceStrings ["."] ["_"] (versions.majorMinor version)}";
|
||||||
|
|
||||||
# Check whether a CUDNN release supports our CUDA version
|
# Check whether a CUDNN release supports our CUDA version
|
||||||
# Thankfully we're able to do lexicographic comparison on the version strings
|
# Thankfully we're able to do lexicographic comparison on the version strings
|
||||||
# isSupported :: Release -> Bool
|
# isSupported :: Release -> Bool
|
||||||
isSupported = release:
|
isSupported = release:
|
||||||
strings.versionAtLeast cudaVersion release.minCudaVersion
|
versionAtLeast cudaVersion release.minCudaVersion
|
||||||
&& strings.versionAtLeast release.maxCudaVersion cudaVersion;
|
&& versionAtLeast release.maxCudaVersion cudaVersion;
|
||||||
|
|
||||||
# useCudatoolkitRunfile :: Bool
|
# useCudatoolkitRunfile :: Bool
|
||||||
useCudatoolkitRunfile = strings.versionOlder cudaVersion "11.3.999";
|
useCudatoolkitRunfile = versionOlder cudaVersion "11.3.999";
|
||||||
|
|
||||||
# buildCuDnnPackage :: Release -> Derivation
|
# buildCuDnnPackage :: Release -> Derivation
|
||||||
buildCuDnnPackage = callPackage ./generic.nix {inherit useCudatoolkitRunfile;};
|
buildCuDnnPackage = callPackage ./generic.nix {inherit useCudatoolkitRunfile;};
|
||||||
|
|
|
@ -155,17 +155,31 @@
|
||||||
hash = "sha256-l2xMunIzyXrnQAavq1Fyl2MAukD1slCiH4z3H1nJ920=";
|
hash = "sha256-l2xMunIzyXrnQAavq1Fyl2MAukD1slCiH4z3H1nJ920=";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
version = "8.8.0.121";
|
version = "8.8.1.3";
|
||||||
minCudaVersion = "11.0";
|
minCudaVersion = "11.0";
|
||||||
maxCudaVersion = "11.8";
|
maxCudaVersion = "11.8";
|
||||||
url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-8.8.0.121_cuda11-archive.tar.xz";
|
url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-8.8.1.3_cuda11-archive.tar.xz";
|
||||||
hash = "sha256-YgRkdgdtG0VfsT+3izjTSWusr7/bsElPszkiQKBEZuo=";
|
hash = "sha256-r3WEyuDMVSS1kT7wjCm6YVQRPGDrCjegWQqRtRWoqPk=";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
version = "8.8.0.121";
|
version = "8.8.1.3";
|
||||||
minCudaVersion = "12.0";
|
minCudaVersion = "12.0";
|
||||||
maxCudaVersion = "12.0";
|
maxCudaVersion = "12.0";
|
||||||
url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-8.8.0.121_cuda12-archive.tar.xz";
|
url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-8.8.1.3_cuda12-archive.tar.xz";
|
||||||
hash = "sha256-oHkrZmyq9ZOp3UEwl5V4/Tp4Iw9EB2RcKVcA7456qvI=";
|
hash = "sha256-edd6dpx+cXWrx7XC7VxJQUjAYYqGQThyLIh/lcYjd3w=";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
version = "8.9.1.23";
|
||||||
|
minCudaVersion = "11.0";
|
||||||
|
maxCudaVersion = "11.8";
|
||||||
|
url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-8.9.1.23_cuda11-archive.tar.xz";
|
||||||
|
hash = "sha256-ptmIcmfihZDJ25XOZcvpamaN8DUjOLfTN+BTLe0zSFw=";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
version = "8.9.1.23";
|
||||||
|
minCudaVersion = "12.0";
|
||||||
|
maxCudaVersion = "12.1";
|
||||||
|
url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-8.9.1.23_cuda12-archive.tar.xz";
|
||||||
|
hash = "sha256-NRY8XFQr4MURc4sn4lI1GTy+7cXg4AbkSxzerxki6D4=";
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -124,7 +124,7 @@ in stdenvNoCC.mkDerivation ({
|
||||||
'' +
|
'' +
|
||||||
(if enableStatic then ''
|
(if enableStatic then ''
|
||||||
install -Dm0644 -t $out/lib opt/intel/oneapi/mkl/${mklVersion}/lib/${lib.optionalString stdenvNoCC.isLinux "intel64"}/*.a
|
install -Dm0644 -t $out/lib opt/intel/oneapi/mkl/${mklVersion}/lib/${lib.optionalString stdenvNoCC.isLinux "intel64"}/*.a
|
||||||
install -Dm0644 -t $out/lib/pkgconfig opt/intel/oneapi/mkl/${mklVersion}/tools/pkgconfig/*.pc
|
install -Dm0644 -t $out/lib/pkgconfig opt/intel/oneapi/mkl/${mklVersion}/lib/pkgconfig/*.pc
|
||||||
'' else ''
|
'' else ''
|
||||||
cp opt/intel/oneapi/mkl/${mklVersion}/lib/${lib.optionalString stdenvNoCC.isLinux "intel64"}/*${shlibExt}* $out/lib
|
cp opt/intel/oneapi/mkl/${mklVersion}/lib/${lib.optionalString stdenvNoCC.isLinux "intel64"}/*${shlibExt}* $out/lib
|
||||||
install -Dm0644 -t $out/lib/pkgconfig opt/intel/oneapi/mkl/${mklVersion}/lib/pkgconfig/*dynamic*.pc
|
install -Dm0644 -t $out/lib/pkgconfig opt/intel/oneapi/mkl/${mklVersion}/lib/pkgconfig/*dynamic*.pc
|
||||||
|
|
54
pkgs/development/libraries/taco/default.nix
Normal file
54
pkgs/development/libraries/taco/default.nix
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
{ stdenv
|
||||||
|
, lib
|
||||||
|
, fetchgit
|
||||||
|
, cmake
|
||||||
|
, llvmPackages
|
||||||
|
, enablePython ? false
|
||||||
|
, python ? null
|
||||||
|
}:
|
||||||
|
|
||||||
|
let pyEnv = python.withPackages (p: with p; [ numpy scipy ]);
|
||||||
|
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
|
pname = "taco";
|
||||||
|
version = "unstable-2022-08-02";
|
||||||
|
|
||||||
|
src = fetchgit {
|
||||||
|
url = "https://github.com/tensor-compiler/${pname}.git";
|
||||||
|
rev = "2b8ece4c230a5f0f0a74bc6f48e28edfb6c1c95e";
|
||||||
|
fetchSubmodules = true;
|
||||||
|
hash = "sha256-PnBocyRLiLALuVS3Gkt/yJeslCMKyK4zdsBI8BFaTSg=";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Remove test cases from cmake build as they violate modern C++ expectations
|
||||||
|
patches = [ ./taco.patch ];
|
||||||
|
|
||||||
|
nativeBuildInputs = [ cmake ];
|
||||||
|
|
||||||
|
buildInputs = lib.optional stdenv.isDarwin llvmPackages.openmp;
|
||||||
|
|
||||||
|
propagatedBuildInputs = lib.optional enablePython pyEnv;
|
||||||
|
|
||||||
|
cmakeFlags = [
|
||||||
|
"-DOPENMP=ON"
|
||||||
|
] ++ lib.optional enablePython "-DPYTHON=ON" ;
|
||||||
|
|
||||||
|
postInstall = lib.strings.optionalString enablePython ''
|
||||||
|
mkdir -p $out/${python.sitePackages}
|
||||||
|
cp -r lib/pytaco $out/${python.sitePackages}/.
|
||||||
|
'';
|
||||||
|
|
||||||
|
# The standard CMake test suite fails a single test of the CLI interface.
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
# Cython somehow gets built with references to /build/.
|
||||||
|
# However, the python module works flawlessly.
|
||||||
|
dontFixup = enablePython;
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Computes sparse tensor expressions on CPUs and GPUs";
|
||||||
|
license = licenses.mit;
|
||||||
|
homepage = "https://github.com/tensor-compiler/taco";
|
||||||
|
maintainers = [ maintainers.sheepforce ];
|
||||||
|
};
|
||||||
|
}
|
13
pkgs/development/libraries/taco/taco.patch
Normal file
13
pkgs/development/libraries/taco/taco.patch
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
diff --git a/test/tests-tensor_types.cpp b/test/tests-tensor_types.cpp
|
||||||
|
index 39d1b30a..c507da81 100644
|
||||||
|
--- a/test/tests-tensor_types.cpp
|
||||||
|
+++ b/test/tests-tensor_types.cpp
|
||||||
|
@@ -45,7 +45,7 @@ TYPED_TEST_P(VectorTensorTest, types) {
|
||||||
|
ASSERT_EQ(t, a.getComponentType());
|
||||||
|
ASSERT_EQ(1, a.getOrder());
|
||||||
|
ASSERT_EQ(5, a.getDimension(0));
|
||||||
|
- map<vector<int>,TypeParam> vals = {{{0}, 1.0}, {{2}, 2.0}};
|
||||||
|
+ map<vector<int>,TypeParam> vals = {{{0}, (TypeParam)1.0}, {{2}, (TypeParam)2.0}};
|
||||||
|
for (auto& val : vals) {
|
||||||
|
a.insert(val.first, val.second);
|
||||||
|
}
|
|
@ -20,5 +20,6 @@ buildPythonPackage rec {
|
||||||
description = "Use libguestfs from Python";
|
description = "Use libguestfs from Python";
|
||||||
license = licenses.lgpl2Plus;
|
license = licenses.lgpl2Plus;
|
||||||
maintainers = with maintainers; [ grahamc ];
|
maintainers = with maintainers; [ grahamc ];
|
||||||
|
inherit (libguestfs.meta) platforms;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "owslib";
|
pname = "owslib";
|
||||||
version = "0.28.1";
|
version = "0.29.2";
|
||||||
format = "setuptools";
|
format = "setuptools";
|
||||||
|
|
||||||
disabled = pythonOlder "3.7";
|
disabled = pythonOlder "3.7";
|
||||||
|
@ -24,7 +24,7 @@ buildPythonPackage rec {
|
||||||
owner = "geopython";
|
owner = "geopython";
|
||||||
repo = "OWSLib";
|
repo = "OWSLib";
|
||||||
rev = "refs/tags/${version}";
|
rev = "refs/tags/${version}";
|
||||||
hash = "sha256-qiH6teCJ/4oftSRyBTtiJdlmJn02VwacU72dWi6OXdc=";
|
hash = "sha256-dbL4VdnPszwiDO+UjluuyqeBRMKojTnZPEFKEYiIWS0=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
@ -61,6 +61,7 @@ buildPythonPackage rec {
|
||||||
"test_wfs_200_remotemd"
|
"test_wfs_200_remotemd"
|
||||||
"test_wms_130_remotemd"
|
"test_wms_130_remotemd"
|
||||||
"test_wmts_example_informatievlaanderen"
|
"test_wmts_example_informatievlaanderen"
|
||||||
|
"test_opensearch_creodias"
|
||||||
] ++ lib.optionals stdenv.isDarwin [
|
] ++ lib.optionals stdenv.isDarwin [
|
||||||
"test_ogcapi_records_pygeoapi"
|
"test_ogcapi_records_pygeoapi"
|
||||||
"test_wms_getfeatureinfo_130"
|
"test_wms_getfeatureinfo_130"
|
||||||
|
@ -71,6 +72,6 @@ buildPythonPackage rec {
|
||||||
homepage = "https://www.osgeo.org/projects/owslib/";
|
homepage = "https://www.osgeo.org/projects/owslib/";
|
||||||
changelog = "https://github.com/geopython/OWSLib/blob/${version}/CHANGES.rst";
|
changelog = "https://github.com/geopython/OWSLib/blob/${version}/CHANGES.rst";
|
||||||
license = licenses.bsd3;
|
license = licenses.bsd3;
|
||||||
maintainers = with maintainers; [ ];
|
maintainers = teams.geospatial.members;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,5 +21,6 @@ buildPythonPackage rec {
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "A Python extension module which gives access to the extended attributes for filesystem objects available in some operating systems";
|
description = "A Python extension module which gives access to the extended attributes for filesystem objects available in some operating systems";
|
||||||
license = licenses.lgpl21Plus;
|
license = licenses.lgpl21Plus;
|
||||||
|
inherit (pkgs.attr.meta) platforms;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
{ lib
|
{ lib
|
||||||
, buildPythonPackage
|
, buildPythonPackage
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
|
, setuptools
|
||||||
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
|
@ -15,6 +17,10 @@ buildPythonPackage rec {
|
||||||
hash = "sha256-uXJUA70JOGWT2NmS6S7fPrTWAJZ0mZ/hICahIUzjfbw=";
|
hash = "sha256-uXJUA70JOGWT2NmS6S7fPrTWAJZ0mZ/hICahIUzjfbw=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
setuptools # for pkg_resources
|
||||||
|
];
|
||||||
|
|
||||||
pythonImportsCheck = [ "stopit" ];
|
pythonImportsCheck = [ "stopit" ];
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
|
|
|
@ -65,10 +65,10 @@ assert !cudaSupport || magma.cudaPackages.cudatoolkit == cudatoolkit;
|
||||||
let
|
let
|
||||||
setBool = v: if v then "1" else "0";
|
setBool = v: if v then "1" else "0";
|
||||||
|
|
||||||
# https://github.com/pytorch/pytorch/blob/v1.13.1/torch/utils/cpp_extension.py#L1751
|
# https://github.com/pytorch/pytorch/blob/v2.0.1/torch/utils/cpp_extension.py#L1744
|
||||||
supportedTorchCudaCapabilities =
|
supportedTorchCudaCapabilities =
|
||||||
let
|
let
|
||||||
real = ["3.5" "3.7" "5.0" "5.2" "5.3" "6.0" "6.1" "6.2" "7.0" "7.2" "7.5" "8.0" "8.6"];
|
real = ["3.5" "3.7" "5.0" "5.2" "5.3" "6.0" "6.1" "6.2" "7.0" "7.2" "7.5" "8.0" "8.6" "8.9" "9.0"];
|
||||||
ptx = lists.map (x: "${x}+PTX") real;
|
ptx = lists.map (x: "${x}+PTX") real;
|
||||||
in
|
in
|
||||||
real ++ ptx;
|
real ++ ptx;
|
||||||
|
|
|
@ -1,21 +1,21 @@
|
||||||
{
|
{
|
||||||
"version": "1.0.0-RC2",
|
"version": "1.0.0",
|
||||||
"assets": {
|
"assets": {
|
||||||
"aarch64-darwin": {
|
"aarch64-darwin": {
|
||||||
"asset": "scala-cli-aarch64-apple-darwin.gz",
|
"asset": "scala-cli-aarch64-apple-darwin.gz",
|
||||||
"sha256": "1wrr1s3dhymvcz5j0vbd038p3yd2d5q3bgb0590wing04hc4hl6s"
|
"sha256": "0lkgfcbwmrrxvdyi76zgj2mbz6nyzc0raq4sd1lcyiyavnr3mxgq"
|
||||||
},
|
},
|
||||||
"aarch64-linux": {
|
"aarch64-linux": {
|
||||||
"asset": "scala-cli-aarch64-pc-linux.gz",
|
"asset": "scala-cli-aarch64-pc-linux.gz",
|
||||||
"sha256": "008g95srb34286akk2cbnz1qf5pw9qaws1cppynxzbzpcj3jx5mk"
|
"sha256": "1z7i2jq8lrrnw4wj78xb5c49nrbilr3yi1mda9vanssdy8x27ybh"
|
||||||
},
|
},
|
||||||
"x86_64-darwin": {
|
"x86_64-darwin": {
|
||||||
"asset": "scala-cli-x86_64-apple-darwin.gz",
|
"asset": "scala-cli-x86_64-apple-darwin.gz",
|
||||||
"sha256": "00ifbdp6lxpbwk3yjqy6scywarl44rn1f54jds4xfvh6i22bga1g"
|
"sha256": "1qgqp0cybijbz4nryrsb1x48kf0sja35rvmv1skg8m6ld7hwkn9s"
|
||||||
},
|
},
|
||||||
"x86_64-linux": {
|
"x86_64-linux": {
|
||||||
"asset": "scala-cli-x86_64-pc-linux.gz",
|
"asset": "scala-cli-x86_64-pc-linux.gz",
|
||||||
"sha256": "14kk1z7fx8j3kwlhnadhvclnccbnwr97xiw8w2g6nd19b95hnfnf"
|
"sha256": "0z94spyx8x9p0jzaq90vm6yrycyvfi11w1lpv9fzlwldpzk50lq8"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,13 +6,13 @@
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "cirrus-cli";
|
pname = "cirrus-cli";
|
||||||
version = "0.98.0";
|
version = "0.99.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "cirruslabs";
|
owner = "cirruslabs";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-cuStFYtHBNnKkBTUs8QU0JOdgfQ68ZmV25XHOfYJKKQ=";
|
sha256 = "sha256-ekNdifSAwB2w5xys1B4eexgqlXwpkkvxJ6FQNTkIQEw=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorHash = "sha256-BtcuqdVOOBG/yPdKaj+8nCvg050F/s/davblLUval+o=";
|
vendorHash = "sha256-BtcuqdVOOBG/yPdKaj+8nCvg050F/s/davblLUval+o=";
|
||||||
|
|
|
@ -6,15 +6,15 @@
|
||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "protoc-gen-rust";
|
pname = "protoc-gen-rust";
|
||||||
version = "3.1.0";
|
version = "3.2.0";
|
||||||
|
|
||||||
src = fetchCrate {
|
src = fetchCrate {
|
||||||
inherit version;
|
inherit version;
|
||||||
pname = "protobuf-codegen";
|
pname = "protobuf-codegen";
|
||||||
sha256 = "sha256-DaydUuENqmN812BgQmpewRPhkq9lT6+g+VPuytLc25Y=";
|
sha256 = "sha256-9Rf7GI/qxoqlISD169TJwUVAdJn8TpxTXDNxiQra2UY=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoSha256 = "sha256-kzc2Wd+Y3mNmOHxRj5R1LIbvXz5NyGcRnz2e0jdfdPg=";
|
cargoSha256 = "sha256-i1ZIEbU6tw7xA1w+ffD/h1HIkOwVep9wQJys9Bydvv0=";
|
||||||
|
|
||||||
cargoBuildFlags = ["--bin" pname];
|
cargoBuildFlags = ["--bin" pname];
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
, dbus
|
, dbus
|
||||||
, dejavu_fonts
|
, dejavu_fonts
|
||||||
, fetchurl
|
, fetchurl
|
||||||
|
, fetchpatch
|
||||||
, fontconfig
|
, fontconfig
|
||||||
, gawk
|
, gawk
|
||||||
, ghostscript
|
, ghostscript
|
||||||
|
@ -40,6 +41,14 @@ stdenv.mkDerivation rec {
|
||||||
sha256 = "sha256-qQfsdp+7cu+/v5tUCyUKCOM7bjc6inw0P5hA+6TQR4s=";
|
sha256 = "sha256-qQfsdp+7cu+/v5tUCyUKCOM7bjc6inw0P5hA+6TQR4s=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
(fetchpatch {
|
||||||
|
name = "CVE-2023-24805.patch";
|
||||||
|
url = "https://github.com/OpenPrinting/cups-filters/commit/93e60d3df358c0ae6f3dba79e1c9684657683d89.patch";
|
||||||
|
hash = "sha256-KgWTYFr2uShL040azzE+KaNyBPy7Gs/hCnEgQmmPCys=";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config makeWrapper ];
|
nativeBuildInputs = [ pkg-config makeWrapper ];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, ... } @ args:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
buildLinux (args // rec {
|
|
||||||
version = "6.2.16";
|
|
||||||
|
|
||||||
# modDirVersion needs to be x.y.z, will automatically add .0 if needed
|
|
||||||
modDirVersion = versions.pad 3 version;
|
|
||||||
|
|
||||||
# branchVersion needs to be x.y
|
|
||||||
extraMeta.branch = versions.majorMinor version;
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "mirror://kernel/linux/kernel/v6.x/linux-${version}.tar.xz";
|
|
||||||
sha256 = "04w76lfkfiq7z4dl3cnq6yiqmiwjayhw3n7n81hv8d3919w0vzq6";
|
|
||||||
};
|
|
||||||
} // (args.argsOverride or { }))
|
|
|
@ -1,21 +0,0 @@
|
||||||
--- a/lib/maple_tree.c
|
|
||||||
+++ b/lib/maple_tree.c
|
|
||||||
@@ -5317,15 +5317,9 @@
|
|
||||||
|
|
||||||
mt = mte_node_type(mas->node);
|
|
||||||
pivots = ma_pivots(mas_mn(mas), mt);
|
|
||||||
- if (offset)
|
|
||||||
- mas->min = pivots[offset - 1] + 1;
|
|
||||||
-
|
|
||||||
- if (offset < mt_pivots[mt])
|
|
||||||
- mas->max = pivots[offset];
|
|
||||||
-
|
|
||||||
- if (mas->index < mas->min)
|
|
||||||
- mas->index = mas->min;
|
|
||||||
-
|
|
||||||
+ min = mas_safe_min(mas, pivots, offset);
|
|
||||||
+ if (mas->index < min)
|
|
||||||
+ mas->index = min;
|
|
||||||
mas->last = mas->index + size - 1;
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -58,12 +58,6 @@
|
||||||
patch = ./export-rt-sched-migrate.patch;
|
patch = ./export-rt-sched-migrate.patch;
|
||||||
};
|
};
|
||||||
|
|
||||||
# https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git/patch/?id=39bf07d812b888b23983a9443ad967ca9b61551d
|
|
||||||
make-maple-state-reusable-after-mas_empty_area = {
|
|
||||||
name = "make-maple-state-reusable-after-mas_empty_area";
|
|
||||||
patch = ./make-maple-state-reusable-after-mas_empty_area.patch;
|
|
||||||
};
|
|
||||||
|
|
||||||
CVE-2023-32233 = rec {
|
CVE-2023-32233 = rec {
|
||||||
name = "CVE-2023-32233";
|
name = "CVE-2023-32233";
|
||||||
patch = fetchpatch {
|
patch = fetchpatch {
|
||||||
|
|
|
@ -14,10 +14,7 @@ callPackage ./generic.nix args {
|
||||||
if stdenv'.isx86_64
|
if stdenv'.isx86_64
|
||||||
then kernel.kernelOlder "6.3"
|
then kernel.kernelOlder "6.3"
|
||||||
else kernel.kernelOlder "6.2";
|
else kernel.kernelOlder "6.2";
|
||||||
latestCompatibleLinuxPackages =
|
latestCompatibleLinuxPackages = linuxKernel.packages.linux_6_1;
|
||||||
if stdenv'.isx86_64
|
|
||||||
then linuxKernel.packages.linux_6_2
|
|
||||||
else linuxKernel.packages.linux_6_1;
|
|
||||||
|
|
||||||
# this package should point to the latest release.
|
# this package should point to the latest release.
|
||||||
version = "2.1.11";
|
version = "2.1.11";
|
||||||
|
|
|
@ -16,10 +16,7 @@ callPackage ./generic.nix args {
|
||||||
kernelCompatible = if stdenv'.isx86_64
|
kernelCompatible = if stdenv'.isx86_64
|
||||||
then kernel.kernelOlder "6.3"
|
then kernel.kernelOlder "6.3"
|
||||||
else kernel.kernelOlder "6.2";
|
else kernel.kernelOlder "6.2";
|
||||||
latestCompatibleLinuxPackages =
|
latestCompatibleLinuxPackages = linuxKernel.packages.linux_6_1;
|
||||||
if stdenv'.isx86_64
|
|
||||||
then linuxKernel.packages.linux_6_2
|
|
||||||
else linuxKernel.packages.linux_6_1;
|
|
||||||
|
|
||||||
# this package should point to a version / git revision compatible with the latest kernel release
|
# this package should point to a version / git revision compatible with the latest kernel release
|
||||||
# IMPORTANT: Always use a tagged release candidate or commits from the
|
# IMPORTANT: Always use a tagged release candidate or commits from the
|
||||||
|
|
|
@ -37,20 +37,20 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "389-ds-base";
|
pname = "389-ds-base";
|
||||||
version = "2.3.1";
|
version = "2.4.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "389ds";
|
owner = "389ds";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "${pname}-${version}";
|
rev = "${pname}-${version}";
|
||||||
sha256 = "sha256-14zl0zGVb8ykgtjao8QGakFyr+b5Cve0NbiZeZig/Ac=";
|
hash = "sha256-LoM2iztWC/HEq0jBKzzi+T6euXcNIDqsEzAeWfQSr90=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||||
inherit src;
|
inherit src;
|
||||||
sourceRoot = "source/src";
|
sourceRoot = "source/src";
|
||||||
name = "${pname}-${version}";
|
name = "${pname}-${version}";
|
||||||
hash = "sha256-C7HFv6tTBXoi0a1yEQeGjcKjruvBrm/kiu5zgUUTse0=";
|
hash = "sha256-+eJgWeLVoJ8j8J2QNM91EY3DBy4zicTwKAU1rcLr8R4=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|
|
@ -14,13 +14,14 @@
|
||||||
|
|
||||||
let
|
let
|
||||||
pname = "pgadmin";
|
pname = "pgadmin";
|
||||||
version = "7.0";
|
version = "7.1";
|
||||||
|
yarnSha256 = "sha256-9iuD0cy0PEtx9Jc626LtE0sAOtP451TGlFKGtC8Tjs4=";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "pgadmin-org";
|
owner = "pgadmin-org";
|
||||||
repo = "pgadmin4";
|
repo = "pgadmin4";
|
||||||
rev = "REL-${lib.versions.major version}_${lib.versions.minor version}";
|
rev = "REL-${lib.versions.major version}_${lib.versions.minor version}";
|
||||||
hash = "sha256-m2mO37qNjrznpdKeFHq6yE8cZx4sHBvPB2RHUtS1Uis=";
|
hash = "sha256-oqOjWfmBJNqCCSyKzbdJkdNql7Him2HgAcRovWtjfbE=";
|
||||||
};
|
};
|
||||||
|
|
||||||
# keep the scope, as it is used throughout the derivation and tests
|
# keep the scope, as it is used throughout the derivation and tests
|
||||||
|
@ -28,8 +29,8 @@ let
|
||||||
pythonPackages = python3.pkgs.overrideScope (final: prev: rec { });
|
pythonPackages = python3.pkgs.overrideScope (final: prev: rec { });
|
||||||
|
|
||||||
offlineCache = fetchYarnDeps {
|
offlineCache = fetchYarnDeps {
|
||||||
yarnLock = src + "/web/yarn.lock";
|
yarnLock = ./yarn.lock;
|
||||||
hash = "sha256-cnn7CJcnT+TUeeZoeJVX3bO85vuJmVrO7CPR/CYTCS0=";
|
hash = yarnSha256;
|
||||||
};
|
};
|
||||||
|
|
||||||
in
|
in
|
||||||
|
@ -101,6 +102,10 @@ pythonPackages.buildPythonApplication rec {
|
||||||
cd web
|
cd web
|
||||||
export HOME="$TMPDIR"
|
export HOME="$TMPDIR"
|
||||||
yarn config --offline set yarn-offline-mirror "${offlineCache}"
|
yarn config --offline set yarn-offline-mirror "${offlineCache}"
|
||||||
|
# replace with converted yarn.lock file
|
||||||
|
rm yarn.lock
|
||||||
|
cp ${./yarn.lock} yarn.lock
|
||||||
|
chmod +w yarn.lock
|
||||||
fixup_yarn_lock yarn.lock
|
fixup_yarn_lock yarn.lock
|
||||||
yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
|
yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
|
||||||
patchShebangs node_modules/
|
patchShebangs node_modules/
|
||||||
|
|
109
pkgs/tools/admin/pgadmin/update.sh
Executable file
109
pkgs/tools/admin/pgadmin/update.sh
Executable file
|
@ -0,0 +1,109 @@
|
||||||
|
#!/usr/bin/env nix-shell
|
||||||
|
#!nix-shell -i bash -p curl wget jq yq common-updater-scripts prefetch-yarn-deps yarn-lock-converter
|
||||||
|
|
||||||
|
set -eu -o pipefail
|
||||||
|
|
||||||
|
TMPDIR=/tmp/pgadmin-update-script
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# This script will update pgadmin4 in nixpkgs #
|
||||||
|
# Due to recent changes upstream, we will need to convert the #
|
||||||
|
# `yarn.lock` file back to version 1. #
|
||||||
|
# This isn't trivially done and relies on 3rd party tools #
|
||||||
|
# and a hand-written converter (in this script). #
|
||||||
|
# Also, the converter cannot check for `github` repos in the #
|
||||||
|
# `yarn.lock` file, which this script will add automatically #
|
||||||
|
################################################################
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
if [ -e $TMPDIR/.done ]
|
||||||
|
then
|
||||||
|
rm -rf "$TMPDIR"
|
||||||
|
else
|
||||||
|
echo
|
||||||
|
read -p "Script exited prematurely. Do you want to delete the temporary directory $TMPDIR ? " -n 1 -r
|
||||||
|
echo
|
||||||
|
if [[ $REPLY =~ ^[Yy]$ ]]
|
||||||
|
then
|
||||||
|
rm -rf "$TMPDIR"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
trap cleanup EXIT
|
||||||
|
|
||||||
|
scriptDir=$(cd "${BASH_SOURCE[0]%/*}" && pwd)
|
||||||
|
nixpkgs=$(realpath "$scriptDir"/../../../..)
|
||||||
|
|
||||||
|
newest_version="$(curl -s https://www.pgadmin.org/versions.json | jq -r .pgadmin4.version)"
|
||||||
|
old_version=$(nix-instantiate --eval -E "(import \"$nixpkgs\" { config = {}; overlays = []; }).pgadmin4.version" | tr -d '"')
|
||||||
|
url="https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v${newest_version}/source/pgadmin4-${newest_version}.tar.gz"
|
||||||
|
|
||||||
|
if [[ $newest_version == $old_version ]]; then
|
||||||
|
printf "Already at latest version $newest_version\n"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
printf "New version: $newest_version \n"
|
||||||
|
|
||||||
|
# don't use mktemp, so if a network error happens, we can resume from there
|
||||||
|
mkdir -p $TMPDIR
|
||||||
|
pushd $TMPDIR
|
||||||
|
wget -c $url
|
||||||
|
tar -xzf "pgadmin4-$newest_version.tar.gz"
|
||||||
|
cd "pgadmin4-$newest_version/web"
|
||||||
|
|
||||||
|
printf "Will now convert the v2 lockfile. This will download the npm packages to get the metadata.\n"
|
||||||
|
printf "Please note: This will take some time! For details, see the logfile ${TMPDIR}/update.log\n"
|
||||||
|
yarn-lock-converter -i yarn.lock -o yarn_v1.lock --cache .cache > $TMPDIR/update.log
|
||||||
|
printf "Conversion done\n"
|
||||||
|
|
||||||
|
printf "Will now do some regex substitution post-processing\n"
|
||||||
|
sed -i -E "s|(.), |\1\", \"|g" yarn_v1.lock
|
||||||
|
printf "Substituion done\n"
|
||||||
|
|
||||||
|
printf "Will now add missing github packages back to the v1 yarn.lock file\n"
|
||||||
|
# remove header
|
||||||
|
tail +8 yarn.lock > yarn_mod.lock
|
||||||
|
LENGTH=$(yq '. | with_entries(select(.value.resolution | contains("github"))) | keys | length' yarn_mod.lock)
|
||||||
|
for i in $(seq 0 $(($LENGTH-1)));
|
||||||
|
do
|
||||||
|
ENTRY=$(yq ". | with_entries(select(.value.resolution | contains(\"github\"))) | keys | .[$i]" yarn_mod.lock)
|
||||||
|
URL=$(echo $ENTRY | cut -d "@" -f 2)
|
||||||
|
VERSION=$(yq ".$ENTRY.version" yarn_mod.lock)
|
||||||
|
LENGTH_DEP=$(yq ".$ENTRY.dependencies | keys | length" yarn_mod.lock)
|
||||||
|
echo "$ENTRY:" >> adendum.lock
|
||||||
|
echo " version $VERSION" >> adendum.lock
|
||||||
|
echo " resolved \"$URL" >> adendum.lock
|
||||||
|
echo " dependencies:" >> adendum.lock
|
||||||
|
|
||||||
|
for j in $(seq 0 $(($LENGTH_DEP-1)));
|
||||||
|
do
|
||||||
|
DEPENDENCY_KEY=$(yq ".$ENTRY.dependencies | keys | .[$j]" yarn_mod.lock)
|
||||||
|
DEPENDENCY_VALUE=$(yq ".$ENTRY.dependencies.$DEPENDENCY_KEY" yarn_mod.lock)
|
||||||
|
# remove '"'
|
||||||
|
DEPENDENCY_KEY=${DEPENDENCY_KEY//\"}
|
||||||
|
echo " \"$DEPENDENCY_KEY\" $DEPENDENCY_VALUE" >> adendum.lock
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "" >> yarn_v1.lock
|
||||||
|
cat adendum.lock >> yarn_v1.lock
|
||||||
|
printf "Done\n"
|
||||||
|
|
||||||
|
rm yarn.lock
|
||||||
|
mv yarn_v1.lock yarn.lock
|
||||||
|
|
||||||
|
printf "Will now generate the hash. This will download the packages to the nix store and also take some time\n"
|
||||||
|
YARN_HASH=$(prefetch-yarn-deps yarn.lock)
|
||||||
|
YARN_HASH=$(nix hash to-sri --type sha256 "$YARN_HASH")
|
||||||
|
printf "Done\n"
|
||||||
|
|
||||||
|
printf "Copy files to nixpkgs\n"
|
||||||
|
cp yarn.lock "$nixpkgs/pkgs/tools/admin/pgadmin/"
|
||||||
|
printf "Done\n"
|
||||||
|
popd
|
||||||
|
|
||||||
|
sed -i -E -e "s#yarnSha256 = \".*\"#yarnSha256 = \"$YARN_HASH\"#" ${scriptDir}/default.nix
|
||||||
|
|
||||||
|
update-source-version pgadmin4 "$newest_version" --print-changes
|
||||||
|
touch $TMPDIR/.done
|
10790
pkgs/tools/admin/pgadmin/yarn.lock
Normal file
10790
pkgs/tools/admin/pgadmin/yarn.lock
Normal file
File diff suppressed because it is too large
Load diff
|
@ -15,27 +15,47 @@
|
||||||
, nlohmann_json
|
, nlohmann_json
|
||||||
, libsixel
|
, libsixel
|
||||||
, microsoft-gsl
|
, microsoft-gsl
|
||||||
|
, chafa
|
||||||
|
, libuuid
|
||||||
|
, libossp_uuid
|
||||||
|
, enableOpencv ? stdenv.isLinux
|
||||||
, opencv
|
, opencv
|
||||||
|
, enableSway ? stdenv.isLinux
|
||||||
|
, extra-cmake-modules
|
||||||
|
, wayland
|
||||||
|
, wayland-protocols
|
||||||
|
, enableX11 ? stdenv.isLinux
|
||||||
, xorg
|
, xorg
|
||||||
, withOpencv ? stdenv.isLinux
|
, withoutStdRanges ? stdenv.isDarwin
|
||||||
, withX11 ? stdenv.isLinux
|
, range-v3
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "ueberzugpp";
|
pname = "ueberzugpp";
|
||||||
version = "2.8.3";
|
version = "2.8.5";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "jstkdng";
|
owner = "jstkdng";
|
||||||
repo = "ueberzugpp";
|
repo = "ueberzugpp";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-U6jw1VQmc/E/vXBCVvjBsmLjhVf0MFuK+FK8jnEEl1M=";
|
hash = "sha256-WnrKwbh7m84xlKMuixkB8LLw8Pzb8+mZV9cHWiI6cBY=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# error: no member named 'ranges' in namespace 'std'
|
||||||
|
postPatch = lib.optionalString withoutStdRanges ''
|
||||||
|
for f in src/canvas/chafa.cpp src/canvas/iterm2/iterm2.cpp; do
|
||||||
|
sed -i "1i #include <range/v3/algorithm/for_each.hpp>" $f
|
||||||
|
substituteInPlace $f \
|
||||||
|
--replace "#include <ranges>" "" \
|
||||||
|
--replace "std::ranges" "ranges"
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
strictDeps = true;
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
cmake
|
cmake
|
||||||
pkg-config
|
pkg-config
|
||||||
cli11
|
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
@ -50,16 +70,27 @@ stdenv.mkDerivation rec {
|
||||||
nlohmann_json
|
nlohmann_json
|
||||||
libsixel
|
libsixel
|
||||||
microsoft-gsl
|
microsoft-gsl
|
||||||
] ++ lib.optionals withOpencv [
|
chafa
|
||||||
|
cli11
|
||||||
|
(if stdenv.isLinux then libuuid else libossp_uuid)
|
||||||
|
] ++ lib.optionals enableOpencv [
|
||||||
opencv
|
opencv
|
||||||
] ++ lib.optionals withX11 [
|
] ++ lib.optionals enableSway [
|
||||||
|
extra-cmake-modules
|
||||||
|
wayland
|
||||||
|
wayland-protocols
|
||||||
|
] ++ lib.optionals enableX11 [
|
||||||
xorg.libX11
|
xorg.libX11
|
||||||
xorg.xcbutilimage
|
xorg.xcbutilimage
|
||||||
|
] ++ lib.optionals withoutStdRanges [
|
||||||
|
range-v3
|
||||||
];
|
];
|
||||||
|
|
||||||
cmakeFlags = lib.optionals (!withOpencv) [
|
cmakeFlags = lib.optionals (!enableOpencv) [
|
||||||
"-DENABLE_OPENCV=OFF"
|
"-DENABLE_OPENCV=OFF"
|
||||||
] ++ lib.optionals (!withX11) [
|
] ++ lib.optionals enableSway [
|
||||||
|
"-DENABLE_SWAY=ON"
|
||||||
|
] ++ lib.optionals (!enableX11) [
|
||||||
"-DENABLE_X11=OFF"
|
"-DENABLE_X11=OFF"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -68,11 +99,14 @@ stdenv.mkDerivation rec {
|
||||||
export MACOSX_DEPLOYMENT_TARGET=10.14
|
export MACOSX_DEPLOYMENT_TARGET=10.14
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
ln -s $out/bin/ueberzug $out/bin/ueberzugpp
|
||||||
|
'';
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Drop in replacement for ueberzug written in C++";
|
description = "Drop in replacement for ueberzug written in C++";
|
||||||
homepage = "https://github.com/jstkdng/ueberzugpp";
|
homepage = "https://github.com/jstkdng/ueberzugpp";
|
||||||
license = licenses.gpl3Plus;
|
license = licenses.gpl3Plus;
|
||||||
mainProgram = "ueberzug";
|
|
||||||
maintainers = with maintainers; [ aleksana wegank ];
|
maintainers = with maintainers; [ aleksana wegank ];
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
};
|
};
|
||||||
|
|
|
@ -3,7 +3,8 @@
|
||||||
, e2fsprogs, enjarify, file, findutils, fontforge-fonttools, ffmpeg, fpc, gettext, ghc, ghostscriptX, giflib, gnumeric, gnupg, gnutar
|
, e2fsprogs, enjarify, file, findutils, fontforge-fonttools, ffmpeg, fpc, gettext, ghc, ghostscriptX, giflib, gnumeric, gnupg, gnutar
|
||||||
, gzip, html2text, hdf5, imagemagick, jdk, libarchive, libcaca, llvm, lz4, mono, ocaml, oggvideotools, openssh, openssl, pdftk, pgpdump, poppler_utils, procyon, qemu, R
|
, gzip, html2text, hdf5, imagemagick, jdk, libarchive, libcaca, llvm, lz4, mono, ocaml, oggvideotools, openssh, openssl, pdftk, pgpdump, poppler_utils, procyon, qemu, R
|
||||||
, radare2, sng, sqlite, squashfsTools, tcpdump, ubootTools, odt2txt, unzip, wabt, xmlbeans, xxd, xz, zip, zstd
|
, radare2, sng, sqlite, squashfsTools, tcpdump, ubootTools, odt2txt, unzip, wabt, xmlbeans, xxd, xz, zip, zstd
|
||||||
, enableBloat ? false
|
, enableBloat ? true
|
||||||
|
, enableUnfree ? false
|
||||||
# updater only
|
# updater only
|
||||||
, writeScript
|
, writeScript
|
||||||
}:
|
}:
|
||||||
|
@ -43,21 +44,32 @@ python3Packages.buildPythonApplication rec {
|
||||||
# To help figuring out what's missing from the list, run: ./pkgs/tools/misc/diffoscope/list-missing-tools.sh
|
# To help figuring out what's missing from the list, run: ./pkgs/tools/misc/diffoscope/list-missing-tools.sh
|
||||||
#
|
#
|
||||||
# Still missing these tools: docx2txt lipo otool r2pipe
|
# Still missing these tools: docx2txt lipo otool r2pipe
|
||||||
pythonPath = [
|
# We filter automatically all packages for the host platform (some dependencies are not supported on Darwin, aarch64, etc.).
|
||||||
|
pythonPath = lib.filter (lib.meta.availableOn stdenv.hostPlatform) ([
|
||||||
binutils-unwrapped-all-targets bzip2 colordiff coreutils cpio db diffutils
|
binutils-unwrapped-all-targets bzip2 colordiff coreutils cpio db diffutils
|
||||||
e2fsprogs file findutils fontforge-fonttools gettext gnutar gzip
|
e2fsprogs file findutils fontforge-fonttools gettext gnutar gzip
|
||||||
html2text libarchive lz4 openssl pgpdump sng sqlite squashfsTools unzip xxd
|
html2text libarchive lz4 openssl pgpdump sng sqlite squashfsTools unzip xxd
|
||||||
xz zip zstd
|
xz zip zstd cdrkit dtc
|
||||||
]
|
]
|
||||||
++ (with python3Packages; [
|
++ (with python3Packages; [
|
||||||
argcomplete debian defusedxml jsondiff jsbeautifier libarchive-c
|
argcomplete debian defusedxml jsondiff jsbeautifier libarchive-c
|
||||||
python-magic progressbar33 pypdf2 tlsh
|
python-magic progressbar33 pypdf2 tlsh pyxattr rpm
|
||||||
])
|
])
|
||||||
++ lib.optionals stdenv.isLinux [ python3Packages.pyxattr python3Packages.rpm acl cdrkit dtc ]
|
++ lib.optionals enableBloat (
|
||||||
++ lib.optionals enableBloat ([
|
[
|
||||||
abootimg apksigcopier apksigner apktool cbfstool colord enjarify ffmpeg fpc ghc ghostscriptX giflib gnupg gnumeric
|
apksigcopier apksigner enjarify ffmpeg fpc ghc ghostscriptX giflib gnupg pdftk
|
||||||
hdf5 imagemagick libcaca llvm jdk mono ocaml odt2txt oggvideotools openssh pdftk poppler_utils procyon qemu R tcpdump ubootTools wabt radare2 xmlbeans
|
hdf5 imagemagick libcaca llvm jdk mono ocaml odt2txt openssh
|
||||||
] ++ (with python3Packages; [ androguard binwalk guestfs h5py pdfminer-six ]));
|
poppler_utils procyon qemu R tcpdump wabt radare2 xmlbeans
|
||||||
|
abootimg cbfstool colord ubootTools
|
||||||
|
]
|
||||||
|
++ (with python3Packages; [ androguard binwalk h5py pdfminer-six guestfs ])
|
||||||
|
# oggvideotools is broken on Darwin, please put it back when it will be fixed?
|
||||||
|
++ lib.optionals stdenv.isLinux [ oggvideotools ]
|
||||||
|
# This doesn't work on aarch64-darwin
|
||||||
|
++ lib.optionals (stdenv.hostPlatform != "aarch64-darwin") [ gnumeric ]
|
||||||
|
# `apktool` depend on `build-tools` which requires Android SDK acceptance, therefore, the whole thing is unfree.
|
||||||
|
++ lib.optionals enableUnfree [ apktool ]
|
||||||
|
));
|
||||||
|
|
||||||
nativeCheckInputs = with python3Packages; [ pytestCheckHook ] ++ pythonPath;
|
nativeCheckInputs = with python3Packages; [ pytestCheckHook ] ++ pythonPath;
|
||||||
|
|
||||||
|
@ -121,7 +133,7 @@ python3Packages.buildPythonApplication rec {
|
||||||
'';
|
'';
|
||||||
homepage = "https://diffoscope.org/";
|
homepage = "https://diffoscope.org/";
|
||||||
license = licenses.gpl3Plus;
|
license = licenses.gpl3Plus;
|
||||||
maintainers = with maintainers; [ dezgeg danielfullmer ];
|
maintainers = with maintainers; [ dezgeg danielfullmer raitobezarius ];
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
1286
pkgs/tools/misc/lighthouse-steamvr/Cargo.lock
generated
Normal file
1286
pkgs/tools/misc/lighthouse-steamvr/Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load diff
|
@ -2,16 +2,25 @@
|
||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "Lighthouse";
|
pname = "Lighthouse";
|
||||||
version = "unstable-2021-03-28";
|
version = "1.0.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "ShayBox";
|
owner = "ShayBox";
|
||||||
repo = "Lighthouse";
|
repo = pname;
|
||||||
rev = "a090889077557fe92610ca503979b5cfc0724d61";
|
rev = version;
|
||||||
sha256 = "0vfl4y61cdrah98x6xcnb3cyi8rwhlws8ps6vfdlmr3dv30mbnbb";
|
sha256 = "0628v6fq9dcv1w4spgnypgyxf1qw5x03yhasink5s9nqpcip0w4h";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoSha256 = "0aqd9ixszwq6qmj751gxx453gwbhwqi16m72bkbkj9s6nfyqihql";
|
cargoLock = {
|
||||||
|
lockFile = ./Cargo.lock;
|
||||||
|
outputHashes = {
|
||||||
|
"clap-verbosity-flag-2.0.0" = "125b8ki3dqj2kilimmvpi9wslwky8xacydi75c2bdrxpi926nya6";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
cp ${./Cargo.lock} Cargo.lock
|
||||||
|
'';
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config ];
|
nativeBuildInputs = [ pkg-config ];
|
||||||
|
|
||||||
|
@ -22,7 +31,6 @@ rustPlatform.buildRustPackage rec {
|
||||||
description = "VR Lighthouse power state management";
|
description = "VR Lighthouse power state management";
|
||||||
homepage = "https://github.com/ShayBox/Lighthouse";
|
homepage = "https://github.com/ShayBox/Lighthouse";
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
maintainers = with maintainers; [ expipiplus1 ];
|
maintainers = with maintainers; [ expipiplus1 bddvlpr ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,5 +43,9 @@ stdenv.mkDerivation rec {
|
||||||
homepage = "http://www.streamnik.de/oggvideotools.html";
|
homepage = "http://www.streamnik.de/oggvideotools.html";
|
||||||
license = licenses.gpl2Only;
|
license = licenses.gpl2Only;
|
||||||
maintainers = with maintainers; [ SuperSandro2000 ];
|
maintainers = with maintainers; [ SuperSandro2000 ];
|
||||||
|
# Compilation error on Darwin:
|
||||||
|
# error: invalid argument '--std=c++0x' not allowed with 'C'
|
||||||
|
# make[2]: *** [src/libresample/CMakeFiles/resample.dir/build.make:76: src/libresample/CMakeFiles/resample.dir/filterkit.c.o] Error 1
|
||||||
|
broken = stdenv.isDarwin;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,16 +7,16 @@
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "gotrue";
|
pname = "gotrue";
|
||||||
version = "2.67.1";
|
version = "2.69.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "supabase";
|
owner = "supabase";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-aJQCd4azeEvZiC1MUEPz1siy7ljSqvSYbEvQQHY14KM=";
|
hash = "sha256-OMAicqkwx/9OjM3Q42LOrv2gIkUNV7I9+UGuxNfL39U=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorHash = "sha256-67IGkVQja1tBNBBV9KCSrQqkF6glvS0GAGZPINiTZu8=";
|
vendorHash = "sha256-gv6ZzteQmx8AwYv6+EbZMSVKttf2T0okQyvfrvKpozM=";
|
||||||
|
|
||||||
ldflags = [
|
ldflags = [
|
||||||
"-s"
|
"-s"
|
||||||
|
|
|
@ -1,33 +0,0 @@
|
||||||
{ stdenv, lib, buildGoModule, fetchFromGitHub, installShellFiles }:
|
|
||||||
|
|
||||||
buildGoModule rec {
|
|
||||||
pname = "sget";
|
|
||||||
version = "unstable-2022-10-04";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "sigstore";
|
|
||||||
repo = pname;
|
|
||||||
rev = "d7d1e53b21ca906000e74474729854cb5ac48dbc";
|
|
||||||
sha256 = "sha256-BgxTlLmtKqtDq3HgLoH+j0vBrpRujmL9Wr8F4d+jPi0=";
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [ installShellFiles ];
|
|
||||||
|
|
||||||
vendorSha256 = "sha256-KPQHS7Hfco1ljOJgStIXMaol7j4dglcr0w+6Boj7GK8=";
|
|
||||||
|
|
||||||
ldflags = [ "-s" "-w" ];
|
|
||||||
|
|
||||||
postInstall = ''
|
|
||||||
installShellCompletion --cmd sget \
|
|
||||||
--bash <($out/bin/sget completion bash) \
|
|
||||||
--fish <($out/bin/sget completion fish) \
|
|
||||||
--zsh <($out/bin/sget completion zsh)
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
homepage = "https://github.com/sigstore/sget";
|
|
||||||
description = "Command for safer, automatic verification of signatures and integration with Sigstore's binary transparency log, Rekor";
|
|
||||||
license = licenses.asl20;
|
|
||||||
maintainers = with maintainers; [ lesuisse ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ lib, libnotify, buildGoModule, fetchFromGitHub, pkg-config }:
|
{ lib, libnotify, buildGoModule, fetchFromGitHub, fetchurl, pkg-config, iconColor ? "#84bd00" }:
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "yubikey-touch-detector";
|
pname = "yubikey-touch-detector";
|
||||||
|
@ -12,13 +12,31 @@ buildGoModule rec {
|
||||||
};
|
};
|
||||||
vendorHash = "sha256-OitI9Yp4/mRMrNH4yrWSL785+3mykPkvzarrc6ipOeg=";
|
vendorHash = "sha256-OitI9Yp4/mRMrNH4yrWSL785+3mykPkvzarrc6ipOeg=";
|
||||||
|
|
||||||
|
iconSrc = fetchurl {
|
||||||
|
url = "https://github.com/Yubico/yubioath-flutter/raw/yubioath-desktop-5.0.0/images/touch.svg";
|
||||||
|
hash = "sha256-+jC9RKjl1uMBaNqLX5WXN+E4CuOcIEx5IGXWxgxzA/k=";
|
||||||
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config ];
|
nativeBuildInputs = [ pkg-config ];
|
||||||
|
|
||||||
buildInputs = [ libnotify ];
|
buildInputs = [ libnotify ];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
cp $iconSrc yubikey-touch-detector.svg
|
||||||
|
substituteInPlace yubikey-touch-detector.svg \
|
||||||
|
--replace '#284c61' ${lib.escapeShellArg iconColor}
|
||||||
|
|
||||||
|
substituteInPlace notifier/libnotify.go \
|
||||||
|
--replace \
|
||||||
|
'AppIcon: "yubikey-touch-detector"' \
|
||||||
|
"AppIcon: \"$out/share/icons/yubikey-touch-detector.svg\""
|
||||||
|
'';
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
install -Dm444 -t $out/share/doc/${pname} *.md
|
install -Dm444 -t $out/share/doc/${pname} *.md
|
||||||
|
|
||||||
|
install -Dm444 -t $out/share/icons yubikey-touch-detector.svg
|
||||||
|
|
||||||
install -Dm444 -t $out/lib/systemd/user *.{service,socket}
|
install -Dm444 -t $out/lib/systemd/user *.{service,socket}
|
||||||
|
|
||||||
substituteInPlace $out/lib/systemd/user/*.service \
|
substituteInPlace $out/lib/systemd/user/*.service \
|
||||||
|
@ -29,7 +47,7 @@ buildGoModule rec {
|
||||||
description = "A tool to detect when your YubiKey is waiting for a touch (to send notification or display a visual indicator on the screen).";
|
description = "A tool to detect when your YubiKey is waiting for a touch (to send notification or display a visual indicator on the screen).";
|
||||||
homepage = "https://github.com/maximbaz/yubikey-touch-detector";
|
homepage = "https://github.com/maximbaz/yubikey-touch-detector";
|
||||||
maintainers = with maintainers; [ sumnerevans ];
|
maintainers = with maintainers; [ sumnerevans ];
|
||||||
license = licenses.isc;
|
license = with licenses; [ bsd2 isc ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,16 +5,16 @@
|
||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "angle-grinder";
|
pname = "angle-grinder";
|
||||||
version = "0.19.0";
|
version = "0.19.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "rcoh";
|
owner = "rcoh";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-CAfbV5WKDMjKv2TSdnxpDEqdAwGWME/9PXLcU/TtM2U=";
|
sha256 = "sha256-/OYIG4s0hH/bkAPxt/x5qHopDIoMN9AJLQ8Sx8USgsM=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoHash = "sha256-EDU+8sbCz4eyBwByHJwQc1Z0ftTZakGcYePbpl8sp08=";
|
cargoHash = "sha256-pOW2jFQxaf2zQWL5+URvHVeCAvSI0u8iALPO5fCoqmI=";
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Slice and dice logs on the command line";
|
description = "Slice and dice logs on the command line";
|
||||||
|
|
|
@ -1507,6 +1507,7 @@ mapAliases ({
|
||||||
seeks = throw "seeks has been removed from nixpkgs, as it was unmaintained"; # Added 2020-06-21
|
seeks = throw "seeks has been removed from nixpkgs, as it was unmaintained"; # Added 2020-06-21
|
||||||
sepolgen = throw "sepolgen was merged into selinux-python"; # Added 2021-11-11
|
sepolgen = throw "sepolgen was merged into selinux-python"; # Added 2021-11-11
|
||||||
session-desktop-appimage = session-desktop;
|
session-desktop-appimage = session-desktop;
|
||||||
|
sget = throw "sget has been removed from nixpkgs, as it is not supported upstream anymore see https://github.com/sigstore/sget/issues/145"; # Added 2023-05-26
|
||||||
shared_mime_info = throw "'shared_mime_info' has been renamed to/replaced by 'shared-mime-info'"; # Converted to throw 2022-02-22
|
shared_mime_info = throw "'shared_mime_info' has been renamed to/replaced by 'shared-mime-info'"; # Converted to throw 2022-02-22
|
||||||
inherit (libsForQt5.mauiPackages) shelf; # added 2022-05-17
|
inherit (libsForQt5.mauiPackages) shelf; # added 2022-05-17
|
||||||
shellinabox = throw "shellinabox has been removed from nixpkgs, as it was unmaintained upstream"; # Added 2021-12-15
|
shellinabox = throw "shellinabox has been removed from nixpkgs, as it was unmaintained upstream"; # Added 2021-12-15
|
||||||
|
|
|
@ -6852,12 +6852,12 @@ with pkgs;
|
||||||
|
|
||||||
diction = callPackage ../tools/text/diction { };
|
diction = callPackage ../tools/text/diction { };
|
||||||
|
|
||||||
diffoscopeMinimal = callPackage ../tools/misc/diffoscope {
|
diffoscope = callPackage ../tools/misc/diffoscope {
|
||||||
jdk = jdk8;
|
jdk = jdk8;
|
||||||
};
|
};
|
||||||
|
|
||||||
diffoscope = diffoscopeMinimal.override {
|
diffoscopeMinimal = diffoscope.override {
|
||||||
enableBloat = !stdenv.isDarwin;
|
enableBloat = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
diffr = callPackage ../tools/text/diffr {
|
diffr = callPackage ../tools/text/diffr {
|
||||||
|
@ -12248,8 +12248,6 @@ with pkgs;
|
||||||
|
|
||||||
sg3_utils = callPackage ../tools/system/sg3_utils { };
|
sg3_utils = callPackage ../tools/system/sg3_utils { };
|
||||||
|
|
||||||
sget = callPackage ../tools/security/sget { };
|
|
||||||
|
|
||||||
sha1collisiondetection = callPackage ../tools/security/sha1collisiondetection { };
|
sha1collisiondetection = callPackage ../tools/security/sha1collisiondetection { };
|
||||||
|
|
||||||
shadowsocks-libev = callPackage ../tools/networking/shadowsocks-libev { };
|
shadowsocks-libev = callPackage ../tools/networking/shadowsocks-libev { };
|
||||||
|
@ -22957,6 +22955,8 @@ with pkgs;
|
||||||
|
|
||||||
dbcsr = callPackage ../development/libraries/science/math/dbcsr { };
|
dbcsr = callPackage ../development/libraries/science/math/dbcsr { };
|
||||||
|
|
||||||
|
taco = callPackage ../development/libraries/taco { };
|
||||||
|
|
||||||
## libGL/libGLU/Mesa stuff
|
## libGL/libGLU/Mesa stuff
|
||||||
|
|
||||||
# Default libGL implementation, should provide headers and
|
# Default libGL implementation, should provide headers and
|
||||||
|
@ -34791,7 +34791,7 @@ with pkgs;
|
||||||
|
|
||||||
ueberzug = with python3Packages; toPythonApplication ueberzug;
|
ueberzug = with python3Packages; toPythonApplication ueberzug;
|
||||||
|
|
||||||
ueberzugpp = callPackage ../tools/graphics/ueberzugpp { };
|
ueberzugpp = darwin.apple_sdk_11_0.callPackage ../tools/graphics/ueberzugpp { };
|
||||||
|
|
||||||
uefi-run = callPackage ../tools/virtualization/uefi-run { };
|
uefi-run = callPackage ../tools/virtualization/uefi-run { };
|
||||||
|
|
||||||
|
|
|
@ -180,14 +180,6 @@ in {
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
linux_6_2 = callPackage ../os-specific/linux/kernel/linux-6.2.nix {
|
|
||||||
kernelPatches = [
|
|
||||||
kernelPatches.bridge_stp_helper
|
|
||||||
kernelPatches.request_key_helper
|
|
||||||
kernelPatches.make-maple-state-reusable-after-mas_empty_area
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
linux_6_3 = callPackage ../os-specific/linux/kernel/linux-6.3.nix {
|
linux_6_3 = callPackage ../os-specific/linux/kernel/linux-6.3.nix {
|
||||||
kernelPatches = [
|
kernelPatches = [
|
||||||
kernelPatches.bridge_stp_helper
|
kernelPatches.bridge_stp_helper
|
||||||
|
@ -277,6 +269,7 @@ in {
|
||||||
linux_5_18 = throw "linux 5.18 was removed because it has reached its end of life upstream";
|
linux_5_18 = throw "linux 5.18 was removed because it has reached its end of life upstream";
|
||||||
linux_5_19 = throw "linux 5.19 was removed because it has reached its end of life upstream";
|
linux_5_19 = throw "linux 5.19 was removed because it has reached its end of life upstream";
|
||||||
linux_6_0 = throw "linux 6.0 was removed because it has reached its end of life upstream";
|
linux_6_0 = throw "linux 6.0 was removed because it has reached its end of life upstream";
|
||||||
|
linux_6_2 = throw "linux 6.2 was removed because it has reached its end of life upstream";
|
||||||
|
|
||||||
linux_xanmod_tt = throw "linux_xanmod_tt was removed because upstream no longer offers this option";
|
linux_xanmod_tt = throw "linux_xanmod_tt was removed because upstream no longer offers this option";
|
||||||
|
|
||||||
|
@ -576,13 +569,13 @@ in {
|
||||||
linux_5_10 = recurseIntoAttrs (packagesFor kernels.linux_5_10);
|
linux_5_10 = recurseIntoAttrs (packagesFor kernels.linux_5_10);
|
||||||
linux_5_15 = recurseIntoAttrs (packagesFor kernels.linux_5_15);
|
linux_5_15 = recurseIntoAttrs (packagesFor kernels.linux_5_15);
|
||||||
linux_6_1 = recurseIntoAttrs (packagesFor kernels.linux_6_1);
|
linux_6_1 = recurseIntoAttrs (packagesFor kernels.linux_6_1);
|
||||||
linux_6_2 = recurseIntoAttrs (packagesFor kernels.linux_6_2);
|
|
||||||
linux_6_3 = recurseIntoAttrs (packagesFor kernels.linux_6_3);
|
linux_6_3 = recurseIntoAttrs (packagesFor kernels.linux_6_3);
|
||||||
} // lib.optionalAttrs config.allowAliases {
|
} // lib.optionalAttrs config.allowAliases {
|
||||||
linux_4_9 = throw "linux 4.9 was removed because it will reach its end of life within 22.11"; # Added 2022-11-08
|
linux_4_9 = throw "linux 4.9 was removed because it will reach its end of life within 22.11"; # Added 2022-11-08
|
||||||
linux_5_18 = throw "linux 5.18 was removed because it reached its end of life upstream"; # Added 2022-09-17
|
linux_5_18 = throw "linux 5.18 was removed because it reached its end of life upstream"; # Added 2022-09-17
|
||||||
linux_5_19 = throw "linux 5.19 was removed because it reached its end of life upstream"; # Added 2022-11-01
|
linux_5_19 = throw "linux 5.19 was removed because it reached its end of life upstream"; # Added 2022-11-01
|
||||||
linux_6_0 = throw "linux 6.0 was removed because it reached its end of life upstream"; # Added 2023-01-20
|
linux_6_0 = throw "linux 6.0 was removed because it reached its end of life upstream"; # Added 2023-01-20
|
||||||
|
linux_6_2 = throw "linux 6.2 was removed because it reached its end of life upstream"; # Added 2023-05-26
|
||||||
};
|
};
|
||||||
|
|
||||||
rtPackages = {
|
rtPackages = {
|
||||||
|
|
|
@ -11799,6 +11799,11 @@ self: super: with self; {
|
||||||
|
|
||||||
tabview = callPackage ../development/python-modules/tabview { };
|
tabview = callPackage ../development/python-modules/tabview { };
|
||||||
|
|
||||||
|
taco = toPythonModule (pkgs.taco.override {
|
||||||
|
inherit (self) python;
|
||||||
|
enablePython = true;
|
||||||
|
});
|
||||||
|
|
||||||
tadasets = callPackage ../development/python-modules/tadasets { };
|
tadasets = callPackage ../development/python-modules/tadasets { };
|
||||||
|
|
||||||
tag-expressions = callPackage ../development/python-modules/tag-expressions { };
|
tag-expressions = callPackage ../development/python-modules/tag-expressions { };
|
||||||
|
|
Loading…
Reference in a new issue