Merge staging-next into staging

This commit is contained in:
nixpkgs-ci[bot]
2025-07-23 18:05:43 +00:00
committed by GitHub
61 changed files with 1030 additions and 409 deletions
+6
View File
@@ -679,6 +679,12 @@
githubId = 25004152;
name = "Adrian Gunnar Lauterer";
};
AdrienLemaire = {
email = "lemaire.adrien@gmail.com";
github = "AdrienLemaire";
githubId = 260983;
name = "Adrien Lemaire";
};
AdsonCicilioti = {
name = "Adson Cicilioti";
email = "adson.cicilioti@live.com";
@@ -145,6 +145,15 @@
- `services.monero` now includes the `environmentFile` option for adding secrets to the Monero daemon config.
- The new option [networking.ipips](#opt-networking.ipips) has been added to create IP within IP kind of tunnels (including 4in6, ip6ip6 and ipip).
With the existing [networking.sits](#opt-networking.sits) option (6in4), it is now possible to create all combinations of IPv4 and IPv6 encapsulation.
- It is now possible to configure the default source address using the new options [networking.defaultGateway.source](#opt-networking.defaultGateway.source),
[networking.defaultGateway6.source](#opt-networking.defaultGateway6.source).
- Potential race conditions in the network setup when using `networking.interfaces` have been fixed by disabling duplicate address detection (DAD)
for statically configured IPv6 addresses.
- `amdgpu` kernel driver overdrive mode can now be enabled by setting [hardware.amdgpu.overdrive.enable](#opt-hardware.amdgpu.overdrive.enable) and customized through [hardware.amdgpu.overdrive.ppfeaturemask](#opt-hardware.amdgpu.overdrive.ppfeaturemask).
This allows for fine-grained control over the GPU's performance and maybe required by overclocking softwares like Corectrl and Lact. These new options replace old options such as {option}`programs.corectrl.gpuOverclock.enable` and {option}`programs.tuxclocker.enableAMD`.
@@ -41,6 +41,7 @@ in
cniVersion = "0.3.1";
delegate = {
isDefaultGateway = true;
hairpinMode = true;
bridge = "mynet";
};
}
@@ -53,6 +53,11 @@ in
topic = lib.mkOption {
type = lib.types.str;
description = ''
__Note:__ when using ntfy.sh and other public instances
it is recommended to set this option to an empty string and set the actual topic via
[](#opt-services.prometheus.alertmanager-ntfy.extraConfigFiles) since
the `topic` in `ntfy.sh` is essentially a password.
The topic to which alerts should be published.
Can either be a hardcoded string or a gval expression that evaluates to a string.
'';
@@ -42,6 +42,14 @@ let
ip link del dev "${i}" 2>/dev/null || true
'';
formatIpArgs =
args:
lib.pipe args [
(lib.filterAttrs (n: v: v != null))
(lib.mapAttrsToList (n: v: "${n} ${toString v}"))
(lib.concatStringsSep " ")
];
# warn that these attributes are deprecated (2017-2-2)
# Should be removed in the release after next
bondDeprecation = rec {
@@ -99,6 +107,7 @@ let
|| (hasAttr dev cfg.bonds)
|| (hasAttr dev cfg.macvlans)
|| (hasAttr dev cfg.sits)
|| (hasAttr dev cfg.ipips)
|| (hasAttr dev cfg.vlans)
|| (hasAttr dev cfg.greTunnels)
|| (hasAttr dev cfg.vswitches)
@@ -160,39 +169,41 @@ let
EOF
''}
# Set the default gateway.
${optionalString (cfg.defaultGateway != null && cfg.defaultGateway.address != "") ''
${optionalString (cfg.defaultGateway.interface != null) ''
ip route replace ${cfg.defaultGateway.address} dev ${cfg.defaultGateway.interface} ${
optionalString (cfg.defaultGateway.metric != null) "metric ${toString cfg.defaultGateway.metric}"
} proto static
''}
ip route replace default ${
optionalString (cfg.defaultGateway.metric != null) "metric ${toString cfg.defaultGateway.metric}"
} via "${cfg.defaultGateway.address}" ${
optionalString (
cfg.defaultGatewayWindowSize != null
) "window ${toString cfg.defaultGatewayWindowSize}"
} ${
optionalString (cfg.defaultGateway.interface != null) "dev ${cfg.defaultGateway.interface}"
} proto static
''}
${optionalString (cfg.defaultGateway6 != null && cfg.defaultGateway6.address != "") ''
${optionalString (cfg.defaultGateway6.interface != null) ''
ip -6 route replace ${cfg.defaultGateway6.address} dev ${cfg.defaultGateway6.interface} ${
optionalString (cfg.defaultGateway6.metric != null) "metric ${toString cfg.defaultGateway6.metric}"
} proto static
''}
ip -6 route replace default ${
optionalString (cfg.defaultGateway6.metric != null) "metric ${toString cfg.defaultGateway6.metric}"
} via "${cfg.defaultGateway6.address}" ${
optionalString (
cfg.defaultGatewayWindowSize != null
) "window ${toString cfg.defaultGatewayWindowSize}"
} ${
optionalString (cfg.defaultGateway6.interface != null) "dev ${cfg.defaultGateway6.interface}"
} proto static
''}
# Set the default gateway
${flip concatMapStrings
[
{
version = "-4";
gateway = cfg.defaultGateway;
}
{
version = "-6";
gateway = cfg.defaultGateway6;
}
]
(
{ version, gateway }:
optionalString (gateway != null && gateway.address != "") ''
${optionalString (gateway.interface != null) ''
ip ${version} route replace ${gateway.address} proto static ${
formatIpArgs {
metric = gateway.metric;
dev = gateway.interface;
}
}
''}
ip ${version} route replace default proto static ${
formatIpArgs {
metric = gateway.metric;
via = gateway.address;
window = cfg.defaultGatewayWindowSize;
dev = gateway.interface;
src = gateway.source;
}
}
''
)
}
'';
};
@@ -240,10 +251,10 @@ let
''
echo "${cidr}" >> $state
echo -n "adding address ${cidr}... "
if out=$(ip addr replace "${cidr}" dev "${i.name}" 2>&1); then
if out=$(ip addr replace "${cidr}" dev "${i.name}" nodad 2>&1); then
echo "done"
else
echo "'ip addr replace \"${cidr}\" dev \"${i.name}\"' failed: $out"
echo "'ip addr replace \"${cidr}\" dev \"${i.name}\"' nodad failed: $out"
exit 1
fi
''
@@ -617,7 +628,7 @@ let
deps = deviceDependency v.dev;
in
{
description = "6-to-4 Tunnel Interface ${n}";
description = "IPv6 in IPv4 Tunnel Interface ${n}";
wantedBy = [
"network-setup.service"
(subsystemDevice n)
@@ -631,18 +642,65 @@ let
script = ''
# Remove Dead Interfaces
ip link show dev "${n}" >/dev/null 2>&1 && ip link delete dev "${n}"
ip link add name "${n}" type sit \
${optionalString (v.remote != null) "remote \"${v.remote}\""} \
${optionalString (v.local != null) "local \"${v.local}\""} \
${optionalString (v.ttl != null) "ttl ${toString v.ttl}"} \
${optionalString (v.dev != null) "dev \"${v.dev}\""} \
${optionalString (v.encapsulation != null)
"encap ${v.encapsulation.type} encap-dport ${toString v.encapsulation.port} ${
optionalString (
v.encapsulation.sourcePort != null
) "encap-sport ${toString v.encapsulation.sourcePort}"
}"
ip link add name "${n}" type sit ${
formatIpArgs {
inherit (v)
remote
local
ttl
dev
;
encap = if v.encapsulation.type == "6in4" then null else v.encapsulation.type;
encap-dport = v.encapsulation.port;
encap-sport = v.encapsulation.sourcePort;
}
}
ip link set dev "${n}" up
'';
postStop = ''
ip link delete dev "${n}" || true
'';
}
);
createIpipDevice =
n: v:
nameValuePair "${n}-netdev" (
let
deps = deviceDependency v.dev;
in
{
description = "IP in IP Tunnel Interface ${n}";
wantedBy = [
"network-setup.service"
(subsystemDevice n)
];
bindsTo = deps;
after = [ "network-pre.target" ] ++ deps;
before = [ "network-setup.service" ];
serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true;
path = [ pkgs.iproute2 ];
script = ''
# Remove Dead Interfaces
ip link show dev "${n}" >/dev/null 2>&1 && ip link delete dev "${n}"
ip tunnel add name "${n}" ${
formatIpArgs {
inherit (v)
remote
local
ttl
dev
;
mode =
{
"4in6" = "ipip6";
"ipip" = "ipip";
}
.${v.encapsulation.type};
encaplimit = if v.encapsulation.type == "ipip" then null else v.encapsulation.limit;
}
}
ip link set dev "${n}" up
'';
postStop = ''
@@ -732,6 +790,7 @@ let
// mapAttrs' createMacvlanDevice cfg.macvlans
// mapAttrs' createFouEncapsulation cfg.fooOverUDP
// mapAttrs' createSitDevice cfg.sits
// mapAttrs' createIpipDevice cfg.ipips
// mapAttrs' createGreDevice cfg.greTunnels
// mapAttrs' createVlanDevice cfg.vlans
// {
@@ -748,6 +807,9 @@ let
in
{
meta.maintainers = with lib.maintainers; [ rnhmjoj ];
config = mkMerge [
bondWarnings
(mkIf (!cfg.useNetworkd) normalConfig)
@@ -24,6 +24,7 @@ let
concatLists (map (bond: bond.interfaces) (attrValues cfg.bonds))
++ concatLists (map (bridge: bridge.interfaces) (attrValues cfg.bridges))
++ map (sit: sit.dev) (attrValues cfg.sits)
++ map (ipip: ipip.dev) (attrValues cfg.ipips)
++ map (gre: gre.dev) (attrValues cfg.greTunnels)
++ map (vlan: vlan.interface) (attrValues cfg.vlans)
# add dependency to physical or independently created vswitch member interface
@@ -46,6 +47,9 @@ let
// optionalAttrs (gateway.metric != null) {
Metric = gateway.metric;
}
// optionalAttrs (gateway.source != null) {
PreferredSource = gateway.source;
}
)
];
};
@@ -435,7 +439,7 @@ in
// (optionalAttrs (sit.ttl != null) {
TTL = sit.ttl;
})
// (optionalAttrs (sit.encapsulation != null) (
// (optionalAttrs (sit.encapsulation.type != "6in4") (
{
FooOverUDP = true;
Encapsulation = if sit.encapsulation.type == "fou" then "FooOverUDP" else "GenericUDPEncapsulation";
@@ -454,6 +458,38 @@ in
}
)
))
(mkMerge (
flip mapAttrsToList cfg.ipips (
name: ipip: {
netdevs."40-${name}" = {
netdevConfig = {
Name = name;
Kind = if ipip.encapsulation.type == "ipip" then "ipip" else "ip6tnl";
};
tunnelConfig =
(optionalAttrs (ipip.remote != null) {
Remote = ipip.remote;
})
// (optionalAttrs (ipip.local != null) {
Local = ipip.local;
})
// (optionalAttrs (ipip.ttl != null) {
TTL = ipip.ttl;
})
// (optionalAttrs (ipip.encapsulation.type != "ipip") {
# IPv6 tunnel options
Mode = if ipip.encapsulation.type == "4in6" then "ipip6" else "ip6ip6";
EncapsulationLimit = ipip.encapsulation.type;
});
};
networks = mkIf (ipip.dev != null) {
"40-${ipip.dev}" = {
tunnel = [ name ];
};
};
}
)
))
(mkMerge (
flip mapAttrsToList cfg.greTunnels (
name: gre: {
+159 -23
View File
@@ -19,7 +19,8 @@ let
hasSits = cfg.sits != { };
hasGres = cfg.greTunnels != { };
hasBonds = cfg.bonds != { };
hasFous = cfg.fooOverUDP != { } || filterAttrs (_: s: s.encapsulation != null) cfg.sits != { };
hasFous =
cfg.fooOverUDP != { } || filterAttrs (_: s: s.encapsulation.type != "6in4") cfg.sits != { };
slaves =
concatMap (i: i.interfaces) (attrValues cfg.bonds)
@@ -180,6 +181,12 @@ let
description = "The default gateway metric/preference.";
};
source = mkOption {
type = types.nullOr types.str;
default = null;
description = "The default source address.";
};
};
};
@@ -656,6 +663,7 @@ in
example = {
address = "131.211.84.1";
interface = "enp3s0";
source = "131.211.84.2";
};
type = types.nullOr (types.coercedTo types.str gatewayCoerce (types.submodule gatewayOpts));
description = ''
@@ -669,6 +677,7 @@ in
example = {
address = "2001:4d0:1e04:895::1";
interface = "enp3s0";
source = "2001:4d0:1e04:895::2";
};
type = types.nullOr (types.coercedTo types.str gatewayCoerce (types.submodule gatewayOpts));
description = ''
@@ -1134,6 +1143,104 @@ in
});
};
networking.ipips = mkOption {
default = { };
example = literalExpression ''
{
wan4in6 = {
remote = "2001:db8::1";
local = "2001:db8::3";
dev = "wan6";
encapsulation.type = "4in6";
encapsulation.limit = 0;
};
}
'';
description = ''
This option allows you to define interfaces encapsulating IP
packets within IP packets; which should be automatically created.
For example, this allows you to create 4in6 (RFC 2473)
or IP within IP (RFC 2003) tunnels.
'';
type =
with types;
attrsOf (submodule {
options = {
remote = mkOption {
type = types.str;
example = "2001:db8::1";
description = ''
The address of the remote endpoint to forward traffic over.
'';
};
local = mkOption {
type = types.str;
example = "2001:db8::3";
description = ''
The address of the local endpoint which the remote
side should send packets to.
'';
};
ttl = mkOption {
type = types.nullOr types.int;
default = null;
example = 255;
description = ''
The time-to-live of the connection to the remote tunnel endpoint.
'';
};
dev = mkOption {
type = types.nullOr types.str;
default = null;
example = "wan6";
description = ''
The underlying network device on which the tunnel resides.
'';
};
encapsulation.type = mkOption {
type = types.enum [
"ipip"
"4in6"
"ip6ip6"
];
default = "ipip";
description = ''
Select the encapsulation type:
- `ipip` to create an IPv4 within IPv4 tunnel (RFC 2003).
- `4in6` to create a 4in6 tunnel (RFC 2473);
- `ip6ip6` to create an IPv6 within IPv6 tunnel (RFC 2473);
::: {.note}
For encapsulating IPv6 within IPv4 packets, see
the ad-hoc {option}`networking.sits` option.
:::
'';
};
encapsulation.limit = mkOption {
type = types.either (types.enum [ "none" ]) types.ints.unsigned;
default = 4;
example = "none";
description = ''
For an IPv6-based tunnel, the maximum number of nested
encapsulation to allow. 0 means no nesting, "none" unlimited.
'';
};
};
});
};
networking.sits = mkOption {
default = { };
example = literalExpression ''
@@ -1151,7 +1258,8 @@ in
}
'';
description = ''
This option allows you to define 6-to-4 interfaces which should be automatically created.
This option allows you to define interfaces encapsulating IPv6
packets within IPv4 packets; which should be automatically created.
'';
type =
with types;
@@ -1195,50 +1303,76 @@ in
'';
};
encapsulation =
with types;
mkOption {
type = nullOr (submodule {
encapsulation = mkOption {
type = types.nullOr (
types.submodule {
options = {
type = mkOption {
type = enum [
type = types.enum [
"6in4"
"fou"
"gue"
];
default = "6in4";
description = ''
Selects encapsulation type. See
{manpage}`ip-link(8)` for details.
Select the encapsulation type:
- `6in4`: the IPv6 packets are encapsulated using the
6in4 protocol (formerly known as SIT, RFC 4213);
- `gue`: the IPv6 packets are encapsulated in UDP packets
using the Generic UDP Encapsulation (GUE) scheme;
- `foo`: the IPv6 packets are encapsulated in UDP packets
using the Foo over UDP (FOU) scheme.
'';
};
port = mkOption {
type = port;
type = types.nullOr types.port;
default = null;
example = 9001;
description = ''
Destination port for encapsulated packets.
Destination port when using UDP encapsulation.
'';
};
sourcePort = mkOption {
type = nullOr types.port;
type = types.nullOr types.port;
default = null;
example = 9002;
description = ''
Source port for encapsulated packets. Will be chosen automatically by
the kernel if unset.
Source port when using UDP encapsulation.
Will be chosen automatically by the kernel if unset.
'';
};
};
});
default = null;
example = {
type = "fou";
port = 9001;
};
description = ''
Configures encapsulation in UDP packets.
'';
}
);
apply =
x:
if x == null then
lib.warn
''
The option networking.sits.*.encapsulation no longer accepts `null`
as a valid value. To fix this warning simply remove this definition.
''
{
type = "6in4";
port = null;
sourcePort = null;
}
else
x;
default = { };
example = {
type = "fou";
port = 9001;
};
description = ''
Configures the type of encapsulation.
'';
};
};
@@ -1541,6 +1675,8 @@ in
###### implementation
meta.maintainers = with lib.maintainers; [ rnhmjoj ];
config = {
warnings =
+2 -2
View File
@@ -144,7 +144,7 @@ rec {
(onFullSupported "nixos.tests.networking.scripted.macvlan")
(onFullSupported "nixos.tests.networking.scripted.privacy")
(onFullSupported "nixos.tests.networking.scripted.routes")
(onFullSupported "nixos.tests.networking.scripted.sit")
(onFullSupported "nixos.tests.networking.scripted.sit-fou")
(onFullSupported "nixos.tests.networking.scripted.static")
(onFullSupported "nixos.tests.networking.scripted.virtual")
(onFullSupported "nixos.tests.networking.scripted.vlan")
@@ -158,7 +158,7 @@ rec {
#(onFullSupported "nixos.tests.networking.networkd.macvlan")
(onFullSupported "nixos.tests.networking.networkd.privacy")
(onFullSupported "nixos.tests.networking.networkd.routes")
(onFullSupported "nixos.tests.networking.networkd.sit")
(onFullSupported "nixos.tests.networking.networkd.sit-fou")
(onFullSupported "nixos.tests.networking.networkd.static")
(onFullSupported "nixos.tests.networking.networkd.virtual")
(onFullSupported "nixos.tests.networking.networkd.vlan")
@@ -39,11 +39,23 @@ let
defaultGateway = {
address = "192.168.1.1";
interface = "enp1s0";
source = "192.168.1.3";
};
defaultGateway6 = {
address = "fd00:1234:5678:1::1";
interface = "enp1s0";
source = "fd00:1234:5678:1::3";
};
interfaces.enp1s0.ipv6.addresses = [
{
address = "fd00:1234:5678:1::2";
prefixLength = 64;
}
{
address = "fd00:1234:5678:1::3";
prefixLength = 128;
}
];
interfaces.enp1s0.ipv4.addresses = [
{
address = "192.168.1.2";
@@ -89,7 +101,11 @@ let
with subtest("Test default gateway"):
client.wait_until_succeeds("ping -c 1 192.168.3.1")
client.wait_until_succeeds("ping -c 1 fd00:1234:5678:3::1")
client.wait_until_succeeds("ping -c 1 fd00:1234:5678:1::1")
with subtest("Test default addresses"):
client.succeed("ip -4 route show default | grep -q 'src 192.168.1.3'")
client.succeed("ip -6 route show default | grep -q 'src fd00:1234:5678:1::3'")
'';
};
routeType = {
@@ -481,7 +497,73 @@ let
} in fous, "fou4 exists"
'';
};
sit =
sit-6in4 =
let
node =
{
address4,
remote,
address6,
}:
{
virtualisation.interfaces.enp1s0.vlan = 1;
networking = {
useNetworkd = networkd;
useDHCP = false;
sits.sit = {
inherit remote;
local = address4;
dev = "enp1s0";
};
nftables.enable = true;
firewall.extraInputRules = "meta l4proto 41 accept";
interfaces.enp1s0.ipv4.addresses = lib.mkOverride 0 [
{
address = address4;
prefixLength = 24;
}
];
interfaces.sit.ipv6.addresses = lib.mkOverride 0 [
{
address = address6;
prefixLength = 64;
}
];
};
};
in
{
name = "Sit-6in4";
nodes.client1 = node {
address4 = "192.168.1.1";
remote = "192.168.1.2";
address6 = "fc00::1";
};
nodes.client2 = node {
address4 = "192.168.1.2";
remote = "192.168.1.1";
address6 = "fc00::2";
};
testScript = ''
start_all()
with subtest("Wait for networking to be configured"):
client1.wait_for_unit("network.target")
client2.wait_for_unit("network.target")
# Print diagnostic information
client1.succeed("ip addr >&2")
client2.succeed("ip addr >&2")
with subtest("Test ipv6"):
client1.wait_until_succeeds("ping -c 1 fc00::1")
client1.wait_until_succeeds("ping -c 1 fc00::2")
client2.wait_until_succeeds("ping -c 1 fc00::1")
client2.wait_until_succeeds("ping -c 1 fc00::2")
'';
};
sit-fou =
let
node =
{
@@ -516,7 +598,7 @@ let
};
in
{
name = "Sit";
name = "Sit-fou";
# note on firewalling: the two nodes are explicitly asymmetric.
# client1 sends SIT packets in UDP, but accepts only proto-41 incoming.
# client2 does the reverse, sending in proto-41 and accepting only UDP incoming.
@@ -531,7 +613,8 @@ let
} args)
{
networking = {
firewall.extraCommands = "iptables -A INPUT -p 41 -j ACCEPT";
nftables.enable = true;
firewall.extraInputRules = "meta l4proto 41 accept";
sits.sit.encapsulation = {
type = "fou";
port = 9001;
@@ -576,6 +659,140 @@ let
client2.wait_until_succeeds("ping -c 1 fc00::2")
'';
};
ipip-4in6 =
let
node =
{
address4,
remote,
address6,
}:
{
virtualisation.interfaces.enp1s0.vlan = 1;
networking = {
useNetworkd = networkd;
useDHCP = false;
ipips."4in6" = {
inherit remote;
local = address6;
dev = "enp1s0";
encapsulation.type = "4in6";
};
firewall.enable = false;
nftables.enable = true;
firewall.extraInputRules = "meta l4proto ipip accept";
interfaces.enp1s0.ipv6.addresses = lib.mkOverride 0 [
{
address = address6;
prefixLength = 64;
}
];
interfaces."4in6".ipv4.addresses = lib.mkOverride 0 [
{
address = address4;
prefixLength = 24;
}
];
};
};
in
{
name = "ipip-4in6";
nodes.client1 = node {
address6 = "fc00::1";
address4 = "192.168.1.1";
remote = "fc00::2";
};
nodes.client2 = node {
address6 = "fc00::2";
address4 = "192.168.1.2";
remote = "fc00::1";
};
testScript = ''
start_all()
with subtest("Wait for networking to be configured"):
client1.wait_for_unit("network.target")
client2.wait_for_unit("network.target")
# Print diagnostic information
client1.succeed("ip addr >&2")
client2.succeed("ip addr >&2")
with subtest("Test ipv6"):
client1.wait_until_succeeds("ping -c 1 192.168.1.1")
client1.wait_until_succeeds("ping -c 1 192.168.1.2")
client2.wait_until_succeeds("ping -c 1 192.168.1.1")
client2.wait_until_succeeds("ping -c 1 192.168.1.2")
'';
};
ipip =
let
node =
{
local,
remote,
address,
}:
{
virtualisation.interfaces.enp1s0.vlan = 1;
networking = {
useNetworkd = networkd;
useDHCP = false;
ipips.ipip = {
inherit local remote;
dev = "enp1s0";
encapsulation.type = "ipip";
};
nftables.enable = true;
firewall.extraInputRules = "meta l4proto 4 accept";
interfaces.enp1s0.ipv4.addresses = lib.mkOverride 0 [
{
address = local;
prefixLength = 24;
}
];
interfaces.ipip.ipv4.addresses = lib.mkOverride 0 [
{
inherit address;
prefixLength = 24;
}
];
};
};
in
{
name = "ipip";
nodes.client1 = node {
local = "192.168.1.1";
remote = "192.168.1.2";
address = "192.168.10.1";
};
nodes.client2 = node {
local = "192.168.1.2";
remote = "192.168.1.1";
address = "192.168.10.2";
};
testScript = ''
start_all()
with subtest("Wait for networking to be configured"):
client1.wait_for_unit("network.target")
client2.wait_for_unit("network.target")
# Print diagnostic information
client1.succeed("ip addr >&2")
client2.succeed("ip addr >&2")
with subtest("Test IPIP tunnel"):
client1.wait_until_succeeds("ping -c 1 192.168.10.1")
client1.wait_until_succeeds("ping -c 1 192.168.10.2")
client2.wait_until_succeeds("ping -c 1 192.168.10.1")
client2.wait_until_succeeds("ping -c 1 192.168.10.2")
'';
};
gre =
let
node =
@@ -1241,6 +1458,7 @@ lib.mapAttrs (lib.const (
attrs
// {
name = "${attrs.name}-Networking-${if networkd then "Networkd" else "Scripted"}";
meta.maintainers = with lib.maintainers; [ rnhmjoj ];
}
)
)) testCases
@@ -9,16 +9,16 @@
buildGoModule rec {
pname = "helmfile";
version = "1.1.2";
version = "1.1.3";
src = fetchFromGitHub {
owner = "helmfile";
repo = "helmfile";
rev = "v${version}";
hash = "sha256-mnY8cUaE5NS+Ty3tqxg6DATitZQNLFgxEf8ITufI0g4=";
hash = "sha256-Nsfqd54QNRkeqUxUA05+0gtcoopz090/wW+zdFsEii8=";
};
vendorHash = "sha256-P9ubNA0eiriAA90UPrhU+x76i8667vPvAWLH7rduYLo=";
vendorHash = "sha256-fiwxmF91UCTNi3jgrJnWgPswWXQFLg70d+h3frnu7kU=";
proxyVendor = true; # darwin/linux hash mismatch
+1
View File
@@ -121,6 +121,7 @@ rec {
xorg.xrandr
which
perl
xdg-user-dirs # flutter desktop apps
xdg-utils
iana-etc
krb5
@@ -4,6 +4,7 @@
stdenv,
callPackages,
runCommand,
cctools,
}:
let
@@ -204,11 +205,14 @@ lib.fix (self: {
}
// derivationArgs
// {
nativeBuildInputs = [
nodejs
nodejs.passthru.python
hooks.npmConfigHook
] ++ derivationArgs.nativeBuildInputs or [ ];
nativeBuildInputs =
[
nodejs
nodejs.passthru.python
hooks.npmConfigHook
]
++ lib.optionals stdenv.hostPlatform.isDarwin [ cctools ]
++ derivationArgs.nativeBuildInputs or [ ];
passAsFile = [
"package"
@@ -42,7 +42,7 @@ linkFarm "writeShellApplication-tests" {
};
in
assert script.meta.mainProgram == "test-meta";
assert script.meta.description == "A test for the `writeShellApplication` `meta` argument.";
assert script.meta.description == "A test for the `writeShellApplication` `meta` argument";
script;
test-runtime-inputs = checkShellApplication {
+3 -3
View File
@@ -22,16 +22,16 @@ let
in
buildNpmPackage' rec {
pname = "balena-cli";
version = "22.1.2";
version = "22.1.4";
src = fetchFromGitHub {
owner = "balena-io";
repo = "balena-cli";
rev = "v${version}";
hash = "sha256-akrZca9bRKqEVgmTKS0n1XliVhDq2eeH1Bo5ubjpYnc=";
hash = "sha256-tf9VQN2eI+YXTeQBwIXlxCL3mRi1JcYS+n5wA/L1mQY=";
};
npmDepsHash = "sha256-Xq5pp1NNOXyCXnq1mNDaxktbjSzz3T0vOYsYZ7drUNQ=";
npmDepsHash = "sha256-Nqpj04OdTynAtDLcXHJLa+eFzC/juwws6a67Ds/eIZQ=";
postPatch = ''
ln -s npm-shrinkwrap.json package-lock.json
@@ -26,8 +26,8 @@ stdenv.mkDerivation {
inherit version;
src = fetchzip {
url = "https://github.com/lighttigerXIV/catppuccinifier/releases/download/${version}/Catppuccinifer-Linux-${version}.tar.xz";
hash = "sha256-FtsO+3C5Ll1aYYCuohrPI2IQZsLyvBseXPzfK1sQgNc=";
url = "https://github.com/lighttigerXIV/catppuccinifier/releases/download/${version}/Catppuccinifier-Linux-${version}.tar.xz";
hash = "sha256-wGj0mWxmGqG/z/jmQ5pw1LdxYKzHaf+eOUXhpMT3kgs=";
};
nativeBuildInputs = [
+4 -4
View File
@@ -6,13 +6,13 @@
"packages": {
"": {
"dependencies": {
"@anthropic-ai/claude-code": "^1.0.57"
"@anthropic-ai/claude-code": "^1.0.58"
}
},
"node_modules/@anthropic-ai/claude-code": {
"version": "1.0.57",
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-1.0.57.tgz",
"integrity": "sha512-zMymGZzjG+JO9iKC5N5pAy8AxyHIMPCL6U3HYCR3vCj5M+Y0s3GAMma6GkvCXWFixRN6KSZItKw3HbQiaIBYlw==",
"version": "1.0.58",
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-1.0.58.tgz",
"integrity": "sha512-XcfqklHSCuBRpVV9vZaAGvdJFAyVKb/UHz2VG9osvn1pRqY7e+HhIOU9X7LeI+c116QhmjglGwe+qz4jOC83CQ==",
"license": "SEE LICENSE IN README.md",
"bin": {
"claude": "cli.js"
+3 -3
View File
@@ -7,16 +7,16 @@
buildNpmPackage rec {
pname = "claude-code";
version = "1.0.57";
version = "1.0.58";
nodejs = nodejs_20; # required for sandboxed Nix builds on Darwin
src = fetchzip {
url = "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${version}.tgz";
hash = "sha256-BNaBl4NGS1x1emJux610HXwUg1QC1wauRZ6UXn3gcR0=";
hash = "sha256-Mp3S269iifNGSEz83IF6bqbgdy6Im1bQjR8oaaL3W8c=";
};
npmDepsHash = "sha256-TxKqpiPpxEfYowQswMrcWIotAdmLvHJyQ56vK39asNs=";
npmDepsHash = "sha256-iAckljEIJFVtlySHjS414HUFg6XVSlPr8azYqTo1py8=";
postPatch = ''
cp ${./package-lock.json} package-lock.json
+79
View File
@@ -0,0 +1,79 @@
{
lib,
buildGoModule,
fetchFromGitHub,
gitUpdater,
versionCheckHook,
installShellFiles,
stdenv,
nix-update-script,
}:
buildGoModule (finalAttrs: {
pname = "cortex-tools";
version = "0.11.3";
src = fetchFromGitHub {
owner = "grafana";
repo = "cortex-tools";
tag = "v${finalAttrs.version}";
hash = "sha256-+GWUC+lnCn5Nw2WytSvW/UsIMmMelCCsnKdBCHuue24=";
};
vendorHash = null;
subPackages = [
"cmd/benchtool"
"cmd/cortextool"
"cmd/e2ealerting"
"cmd/logtool"
];
env.CGO_ENABLED = 0;
ldflags = [
"-X github.com/grafana/cortex-tools/pkg/version.Version=${finalAttrs.src.tag}"
"-s"
"-w"
];
doCheck = true;
passthru.updateScript = nix-update-script { };
nativeBuildInputs = [ installShellFiles ];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd cortextool \
--bash <($out/bin/cortextool --completion-script-bash) \
--zsh <($out/bin/cortextool --completion-script-zsh)
$out/bin/cortextool --help-man > cortextool.1
installManPage cortextool.1
'';
doInstallCheck = true;
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = "version";
meta = {
changelog = "https://github.com/grafana/cortex-tools/releases/tag/${finalAttrs.src.tag}";
description = "Tools used for interacting with Cortex, a Prometheus-compatible server";
longDescription = ''
Tools used for interacting with Cortex, a horizontally scalable, highly available, multi-tenant, long term Prometheus server:
- benchtool: A powerful YAML driven tool for benchmarking Cortex write and query API.
- cortextool: Interacts with user-facing Cortex APIs and backend storage components.
- logtool: Tool which parses Cortex query-frontend logs and formats them for easy analysis.
- e2ealerting: Tool that helps measure how long an alert takes from scrape of sample to Alertmanager notification delivery.
'';
homepage = "https://github.com/grafana/cortex-tools";
license = lib.licenses.asl20;
platforms = lib.platforms.linux ++ lib.platforms.windows ++ lib.platforms.darwin;
maintainers = with lib.maintainers; [ videl ];
mainProgram = "cortextool";
};
})
+61 -68
View File
@@ -1,96 +1,89 @@
{
pkgs,
lib,
stdenv,
fetchurl,
autoPatchelfHook,
dpkg,
makeWrapper,
wrapGAppsHook3,
...
buildNpmPackage,
fetchFromGitHub,
electron,
p7zip,
# there's a setting "use zenity for dialogs"
zenity,
copyDesktopItems,
makeBinaryWrapper,
makeDesktopItem,
}:
stdenv.mkDerivation (finalAttrs: {
buildNpmPackage (finalAttrs: {
pname = "figma-linux";
version = "0.11.5";
src = fetchurl {
url = "https://github.com/Figma-Linux/figma-linux/releases/download/v${finalAttrs.version}/figma-linux_${finalAttrs.version}_linux_amd64.deb";
hash = "sha256-6lFeiecliyuTdnUCCbLpoQWiu5k3OPHxb+VF17GtERo=";
src = fetchFromGitHub {
owner = "Figma-Linux";
repo = "figma-linux";
tag = "v${finalAttrs.version}";
hash = "sha256-pa0GgAmi9Os4EtZpbo0hSgr4s+WX95zLUrZR8a33TeI=";
};
nativeBuildInputs = [
autoPatchelfHook
dpkg
makeWrapper
wrapGAppsHook3
copyDesktopItems
makeBinaryWrapper
];
buildInputs =
with pkgs;
[
alsa-lib
at-spi2-atk
cairo
cups.lib
dbus.lib
expat
gdk-pixbuf
glib
gtk3
libdrm
libxkbcommon
libgbm
nspr
nss
pango
]
++ (with pkgs.xorg; [
libX11
libXcomposite
libXdamage
libXext
libXfixes
libXrandr
libxcb
libxshmfence
]);
npmDepsHash = "sha256-FqgcG52Nkj0wlwsHwIWTXNuIeAs7b+TPkHcg7m5D2og=";
runtimeDependencies = with pkgs; [ eudev ];
env = {
ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
};
unpackCmd = "dpkg -x $src .";
sourceRoot = ".";
# Instead of double wrapping the binary, simply pass the `gappsWrapperArgs`
# to `makeWrapper` directly
dontWrapGApps = true;
desktopItems = [
(makeDesktopItem {
name = "figma-linux";
desktopName = "Figma Linux";
comment = "Unofficial Figma desktop application for Linux";
exec = "figma-linux %U";
icon = "figma-linux";
terminal = false;
})
];
installPhase = ''
runHook preInstall
mkdir -p $out/lib && cp -r opt/figma-linux/* $_
mkdir -p $out/bin && ln -s $out/lib/figma-linux $_/figma-linux
mkdir -p $out/share/figma-linux/resources
cp -r usr/* $out
rm -rf node_modules/7zip-bin
wrapProgramShell $out/bin/figma-linux \
"''${gappsWrapperArgs[@]}" \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime=true}}"
cp -r node_modules $out/share/figma-linux/resources
# transpose [name][size] into [size][name]
for icon in resources/icons/*.png; do
basename="$(basename "$icon")"
size="''${basename%.png}"
install -Dm444 "$icon" -T "$out/share/icons/hicolor/$size/figma-linux.png"
done
cp -r dist $out/share/figma-linux/resources/app
makeWrapper ${lib.getExe electron} $out/bin/figma-linux \
--add-flag $out/share/figma-linux/resources/app \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime=true}}" \
--prefix PATH : "${
lib.makeBinPath [
p7zip
zenity
]
}" \
--inherit-argv0
runHook postInstall
'';
postFixup = ''
substituteInPlace $out/share/applications/figma-linux.desktop \
--replace "Exec=/opt/figma-linux/figma-linux" "Exec=$out/bin/figma-linux"
'';
meta = with lib; {
meta = {
description = "Unofficial Electron-based Figma desktop app for Linux";
homepage = "https://github.com/Figma-Linux/figma-linux";
platforms = [ "x86_64-linux" ];
license = licenses.gpl2Plus;
maintainers = with maintainers; [
platforms = lib.platforms.linux;
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [
ercao
kashw2
];
+11 -3
View File
@@ -34,13 +34,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "freedv";
version = "2.0.0";
version = "2.0.1";
src = fetchFromGitHub {
owner = "drowe67";
repo = "freedv-gui";
tag = "v${finalAttrs.version}";
hash = "sha256-3vwFB+3LloumEAGlSJZc2+/I8uI6KLP/KuDGeDOj87k=";
hash = "sha256-+hVh5GgSz8MWib10dVV6gx9EvocvLAJm2Eid/4y//2E=";
};
patches = [
@@ -58,6 +58,8 @@ stdenv.mkDerivation (finalAttrs: {
--replace-fail "GIT_REPOSITORY https://github.com/drowe67/radae.git" "URL $(realpath radae)" \
--replace-fail "GIT_TAG main" ""
patchShebangs test/test_*.sh
substituteInPlace cmake/CheckGit.cmake \
--replace-fail "git describe --abbrev=4 --always HEAD" "echo v${finalAttrs.version}"
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace CMakeLists.txt \
@@ -74,7 +76,13 @@ stdenv.mkDerivation (finalAttrs: {
python3
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
macdylibbundler
(macdylibbundler.overrideAttrs {
# incompatible with darwin.sigtool in Nixpkgs
postPatch = ''
substituteInPlace src/Utils.cpp \
--replace-fail "--deep --preserve-metadata=entitlements,requirements,flags,runtime" ""
'';
})
makeWrapper
darwin.autoSignDarwinBinariesHook
darwin.sigtool
+2 -2
View File
@@ -7,7 +7,7 @@
}:
let
version = "18.2.0";
version = "18.2.1";
package_version = "v${lib.versions.major version}";
gitaly_package = "gitlab.com/gitlab-org/gitaly/${package_version}";
@@ -21,7 +21,7 @@ let
owner = "gitlab-org";
repo = "gitaly";
rev = "v${version}";
hash = "sha256-e78kokFzVqFGgurlqThxHhfrGiRuZ+XG2g5hRrCuF3Y=";
hash = "sha256-h4JklXImKwudJT3pb/UhHwQHKd87c5aSH1xYC0lRWKo=";
};
vendorHash = "sha256-RjDV4NGmmdT9STQBHiYf3UUYwPmuSg6970/W/ekxin0=";
+2 -2
View File
@@ -6,14 +6,14 @@
buildGoModule rec {
pname = "gitlab-pages";
version = "18.2.0";
version = "18.2.1";
# nixpkgs-update: no auto update
src = fetchFromGitLab {
owner = "gitlab-org";
repo = "gitlab-pages";
rev = "v${version}";
hash = "sha256-TcDk816n4483SzTuz5bc8e2efrd2eJdM8jWXpM3DMvY=";
hash = "sha256-z1Pl3xeaoqeF/9qOVcuCpuciu1r6NQ4UhlLe9gy9+nE=";
};
vendorHash = "sha256-OubXCpvGtGqegQmdb6R1zw/0DfQ4FdbJGt7qYYRnWnA=";
+6 -6
View File
@@ -1,15 +1,15 @@
{
"version": "18.2.0",
"repo_hash": "0wkxnhrxq3x2ahbb1hffd2c321mz3y1wi7qh89drg8rn4qgz09cd",
"version": "18.2.1",
"repo_hash": "1i0y46w18476gn98fmkixdjiyrwajz2347p57dg2ijch4ivzpmlv",
"yarn_hash": "04mqinnbhr6zgab2p1bq6y6b20bf4c4cynkgfc67mzm9xhybr3fk",
"owner": "gitlab-org",
"repo": "gitlab",
"rev": "v18.2.0-ee",
"rev": "v18.2.1-ee",
"passthru": {
"GITALY_SERVER_VERSION": "18.2.0",
"GITLAB_PAGES_VERSION": "18.2.0",
"GITALY_SERVER_VERSION": "18.2.1",
"GITLAB_PAGES_VERSION": "18.2.1",
"GITLAB_SHELL_VERSION": "14.43.0",
"GITLAB_ELASTICSEARCH_INDEXER_VERSION": "5.7.0",
"GITLAB_WORKHORSE_VERSION": "18.2.0"
"GITLAB_WORKHORSE_VERSION": "18.2.1"
}
}
@@ -10,7 +10,7 @@ in
buildGoModule rec {
pname = "gitlab-workhorse";
version = "18.2.0";
version = "18.2.1";
# nixpkgs-update: no auto update
src = fetchFromGitLab {
@@ -22,7 +22,7 @@ buildGoModule rec {
sourceRoot = "${src.name}/workhorse";
vendorHash = "sha256-fJ1QqVn2t591ZQv9ilwgk+sPwNZNy6bHvpdCPs7S0+s=";
vendorHash = "sha256-A+hCyi4P0JkBY2NYGWSpMsHjEgD43g9ZlPrxWL9Vx7Q=";
buildInputs = [ git ];
ldflags = [ "-X main.Version=${version}" ];
doCheck = false;
+3 -3
View File
@@ -7,18 +7,18 @@
rustPlatform.buildRustPackage rec {
pname = "harper";
version = "0.51.0";
version = "0.52.0";
src = fetchFromGitHub {
owner = "Automattic";
repo = "harper";
rev = "v${version}";
hash = "sha256-jMifo0vhcCFY8DTuqRYzz483R2NGOWeWr1SR7xkTM/s=";
hash = "sha256-Mwgdombfc01Ss8Sy/pMwHNWeI1lxC1riFql9FtqaBmY=";
};
buildAndTestSubdir = "harper-ls";
useFetchCargoVendor = true;
cargoHash = "sha256-PSyJ9EDmxevU/b3xWZS3eqQPfcQ7Us/Bi6SA7WB70J4=";
cargoHash = "sha256-aOajrh2NZShP1vXSUEDzY1ULTeMs8dY+BDIspCi1BfY=";
passthru.updateScript = nix-update-script { };
+13 -13
View File
@@ -1,29 +1,32 @@
{
lib,
stdenv,
fetchurl,
fetchgit,
autoreconfHook,
callPackage,
texinfo,
guile,
guile-commonmark,
guile-reader,
makeWrapper,
makeBinaryWrapper,
pkg-config,
gitUpdater,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "haunt";
version = "0.3.0";
src = fetchurl {
url = "https://files.dthompson.us/haunt/haunt-${finalAttrs.version}.tar.gz";
hash = "sha256-mLq+0GvlSgZsPryUQQqR63zEg2fpTVKBMdO6JxSZmSs=";
src = fetchgit {
url = "https://git.dthompson.us/haunt.git";
tag = "v${finalAttrs.version}";
hash = "sha256-i6MI0eaRiA/JNgkIBJGLAsqMnyJz47aavyD6kOL7sqU=";
};
nativeBuildInputs = [
autoreconfHook
makeWrapper
makeBinaryWrapper
pkg-config
texinfo
];
buildInputs = [
@@ -32,8 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
guile-reader
];
# Test suite is non-deterministic in later versions
doCheck = false;
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
postInstall = ''
wrapProgram $out/bin/haunt \
@@ -42,9 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
'';
passthru = {
tests = {
expectVersion = callPackage ./tests/001-test-version.nix { };
};
updateScript = gitUpdater { rev-prefix = "v"; };
};
meta = {
@@ -68,7 +68,7 @@ stdenv.mkDerivation (finalAttrs: {
to do things that aren't provided out-of-the-box.
'';
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ ];
maintainers = with lib.maintainers; [ normalcea ];
inherit (guile.meta) platforms;
};
})
@@ -1,21 +0,0 @@
{
stdenv,
haunt,
}:
stdenv.mkDerivation {
pname = "haunt-test-version";
inherit (haunt) version;
nativeBuildInputs = [ haunt ];
dontInstall = true;
buildCommand = ''
haunt --version
touch $out
'';
meta.timeout = 10;
}
+2 -2
View File
@@ -12,13 +12,13 @@
stdenv.mkDerivation rec {
pname = "mediawriter";
version = "5.2.7";
version = "5.2.8";
src = fetchFromGitHub {
owner = "FedoraQt";
repo = "MediaWriter";
tag = version;
hash = "sha256-wowhV8h8vUw1eehcoXS0DFZtPfLmPfQUTcNDiZjWL3A=";
hash = "sha256-8nTWwBf8I4IENh0wColzPg3xjsXg3bubg6ZqNpfLE3c=";
};
nativeBuildInputs = [
+6 -5
View File
@@ -14,12 +14,12 @@
protoc-gen-validate,
}:
let
version = "0.24.4";
version = "0.25.0";
src = fetchFromGitHub {
owner = "usememos";
repo = "memos";
rev = "v${version}";
hash = "sha256-Vimc9Z6X1+UBm2UnNnlsYqXEnOV3JcEPm9SD3obKkLc=";
hash = "sha256-M1o7orU4xw/t9PjSFXNj7tiYTarBv7kIIj8X0r3QD8s=";
};
memos-protobuf-gen = stdenvNoCC.mkDerivation {
@@ -52,7 +52,7 @@ let
outputHashMode = "recursive";
outputHashAlgo = "sha256";
outputHash = "sha256-cJK9wT5uj1MYjYZkzgMSL9nShCO2xPJOYZT+ebndwlY=";
outputHash = "sha256-lV92s/KLzWs/KSLbsb61FaA9+PEDMLshl/srDcjdRcU=";
};
memos-web = stdenvNoCC.mkDerivation (finalAttrs: {
@@ -62,7 +62,7 @@ let
inherit (finalAttrs) pname version src;
sourceRoot = "${finalAttrs.src.name}/web";
fetcherVersion = 1;
hash = "sha256-AyQYY1vtBB6DTcieC7nw5aOOVuwESJSDs8qU6PGyaTw=";
hash = "sha256-TEWaFWFQ0sHdgfFFvolnwoa4hTaFkzqqyFep56Cevp4=";
};
pnpmRoot = "web";
nativeBuildInputs = [
@@ -93,7 +93,7 @@ buildGoModule {
memos-protobuf-gen
;
vendorHash = "sha256-EzVgQpWJJA7EUKdnnnCIvecaOXg856f/WQyfV/WuWFU=";
vendorHash = "sha256-xiBxnrjJsskRCcUBGKnrc5s5tuhMFSqRoELcr5ww/XU=";
preBuild = ''
rm -rf server/router/frontend/dist
@@ -113,6 +113,7 @@ buildGoModule {
meta = {
homepage = "https://usememos.com";
description = "Lightweight, self-hosted memo hub";
changelog = "https://github.com/usememos/memos/releases/tag/${src.rev}";
maintainers = with lib.maintainers; [
indexyz
kuflierl
+3 -3
View File
@@ -10,14 +10,14 @@
stdenvNoCC.mkDerivation {
pname = "mint-l-icons";
version = "1.7.4";
version = "1.7.5";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "mint-l-icons";
# They don't really do tags, this is just a named commit.
rev = "b442277c822c92f7bb68282cb82c7d1a98e3fd37";
hash = "sha256-vPDEribE/CZwoAK1C9fjbWQEO/NWMWCKCUO/Xw/SxZ0=";
rev = "64ee205dc270b13f3816030330eed108eaa30360";
hash = "sha256-4tavRQ1bWzVYcAAJtZ4avRHcBB+oTDhdXp6dlSGO4C8=";
};
propagatedBuildInputs = [
+8 -2
View File
@@ -10,13 +10,13 @@
stdenvNoCC.mkDerivation rec {
pname = "mint-y-icons";
version = "1.8.3";
version = "1.8.4";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "mint-y-icons";
rev = version;
hash = "sha256-xGPihqXUraJy9lDCSVjQlNxrhETEcjBTYhyFsZGJRGo=";
hash = "sha256-ftiV9l7hTmWdtw36Z2GKpJZuRwQQ3MQWYIgb62VBde0=";
};
propagatedBuildInputs = [
@@ -31,6 +31,12 @@ stdenvNoCC.mkDerivation rec {
dontDropIconThemeCache = true;
postPatch = ''
# Breaks gtk-update-icon-cache
# https://github.com/linuxmint/mint-y-icons/issues/494
find usr/share/icons/Mint-Y/apps/ -type l -name "1AC2_Battle.net Launcher.0.png" -delete
'';
installPhase = ''
runHook preInstall
+3 -3
View File
@@ -13,16 +13,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "moon";
version = "1.38.3";
version = "1.38.5";
src = fetchFromGitHub {
owner = "moonrepo";
repo = "moon";
tag = "v${finalAttrs.version}";
hash = "sha256-PDXH+61Awx9sG/xPvvt78xlcHjU1bV3f9FRqx8I262g=";
hash = "sha256-jWLyg7K+ucCsrHwFNrpmWAXznSD+3TaYGfbZ2hWlnP0=";
};
cargoHash = "sha256-yB0sbS3OXFnDQkq/bHYIsCDxnuzXCxvcGKSOxXpiE8U=";
cargoHash = "sha256-2E59P0d3SDZUgbN5V52Rr9liONiKcFUFv3dSrtFJ8NE=";
env = {
RUSTFLAGS = "-C strip=symbols";
+6 -2
View File
@@ -51,11 +51,11 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "mysql-workbench";
version = "8.0.42";
version = "8.0.43";
src = fetchurl {
url = "https://cdn.mysql.com/Downloads/MySQLGUITools/mysql-workbench-community-${finalAttrs.version}-src.tar.gz";
hash = "sha256-d4SnNALK76AXWEu0WHX0dZv4co6Q+oCMTYAVV3pd9gU=";
hash = "sha256-E9fn72r35WrGzIOoDouIvJFZdpfw9sgDNHwEe/0DdUI=";
};
patches = [
@@ -90,6 +90,8 @@ stdenv.mkDerivation (finalAttrs: {
patchShebangs tools/get_wb_version.sh
'';
strictDeps = true;
nativeBuildInputs = [
cmake
ninja
@@ -115,6 +117,8 @@ stdenv.mkDerivation (finalAttrs: {
libsecret
libiodbc
bash # for shebangs
# python dependencies:
paramiko
pycairo
+4 -3
View File
@@ -17,19 +17,19 @@
stdenv.mkDerivation (finalAttrs: {
pname = "n8n";
version = "1.100.1";
version = "1.103.0";
src = fetchFromGitHub {
owner = "n8n-io";
repo = "n8n";
tag = "n8n@${finalAttrs.version}";
hash = "sha256-S5GGJRLTpr1HfXnXRXO6hcVjgjRWvbknABEsGkTq428=";
hash = "sha256-3Dob4GLTyM6QbdWQBIfC/5rSlM1olYsAFwHS3zwxCj0=";
};
pnpmDeps = pnpm_10.fetchDeps {
inherit (finalAttrs) pname version src;
fetcherVersion = 1;
hash = "sha256-HzJej2Mt110n+1KX0wzuAn6j69zQOzI42EGxQB6PYbc=";
hash = "sha256-LierbGPkVIy5/2vtBl94TQcSpmNX9OUDMntDdo5BeiU=";
};
nativeBuildInputs =
@@ -113,6 +113,7 @@ stdenv.mkDerivation (finalAttrs: {
changelog = "https://github.com/n8n-io/n8n/releases/tag/n8n@${finalAttrs.version}";
maintainers = with lib.maintainers; [
gepbird
AdrienLemaire
];
license = lib.licenses.sustainableUse;
mainProgram = "n8n";
@@ -0,0 +1,37 @@
{
lib,
buildGoModule,
fetchFromGitHub,
nix-update-script,
}:
buildGoModule (finalAttrs: {
pname = "nextcloud-spreed-signaling";
version = "2.0.3";
src = fetchFromGitHub {
owner = "strukturag";
repo = "nextcloud-spreed-signaling";
tag = "v${finalAttrs.version}";
hash = "sha256-JBYhmIXDpovkXM8oYO3B9n2bs+H0GjmuT4Dl3gEQjPo=";
};
vendorHash = "sha256-MGz0tj6QwDXYDtamgN6d5yfIFHToE+XF3HYVsFRxHhM=";
strictDeps = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "Dedicated signaling backend for nextcloud talk";
homepage = "https://github.com/strukturag/nextcloud-spreed-signaling";
downloadPage = "https://github.com/strukturag/nextcloud-spreed-signaling/releases/tag/v${finalAttrs.version}";
changelog = "https://github.com/strukturag/nextcloud-spreed-signaling/releases/tag/v${finalAttrs.version}";
mainProgram = "server";
license = lib.licenses.agpl3Only;
maintainers = with lib.maintainers; [
hensoko
];
platforms = [ "x86_64-linux" ];
};
})
+8 -5
View File
@@ -27,13 +27,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "open5gs";
version = "2.7.2";
version = "2.7.6";
diameter = fetchFromGitHub {
owner = "open5gs";
repo = "freeDiameter";
rev = "20196a265aecb7b1573ceb526bb619e092c1fd3f"; # r1.5.0
hash = "sha256-0sxzQtKBx313+x3TRsmeswAq90Vk5jNA//rOJcEZJTQ=";
rev = "13f5a5996b5fa1a46ed780635c7fc6fcd09b4290"; # r1.5.0
hash = "sha256-S8jL+9rW9RDwQc7NU8MOzMe9/iRbshWa2QLqXoiV85Q=";
};
libtins = fetchFromGitHub {
@@ -59,7 +59,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "open5gs";
repo = "open5gs";
tag = "v${finalAttrs.version}";
hash = "sha256-XSDjVW+5l2trrilKMcSfX6QIfh/ijWxjoJg33Bn1DBU=";
hash = "sha256-2k+S+OXfdskJPtDUFSxb/+2UZcUiOZzRSSGgsEJWolc=";
};
webui = buildNpmPackage {
@@ -129,7 +129,10 @@ stdenv.mkDerivation (finalAttrs: {
description = "4G/5G core network components";
license = lib.licenses.agpl3Only;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ bot-wxt1221 ];
maintainers = with lib.maintainers; [
bot-wxt1221
xddxdd
];
changelog = "https://github.com/open5gs/open5gs/releases/tag/v${finalAttrs.version}";
};
})
+3 -2
View File
@@ -16,13 +16,13 @@
stdenv.mkDerivation rec {
pname = "p2pool";
version = "4.8.1";
version = "4.9";
src = fetchFromGitHub {
owner = "SChernykh";
repo = "p2pool";
rev = "v${version}";
hash = "sha256-UnvMR4s6o8n7K+9hig3iSFtbN/BmR6yqjc64X443ctk=";
hash = "sha256-nFoR5n6vm6Q1UBxX+3U6O6NExcrM1Mab+WjEOgRSKCE=";
fetchSubmodules = true;
};
@@ -64,5 +64,6 @@ stdenv.mkDerivation rec {
];
mainProgram = "p2pool";
platforms = platforms.all;
broken = stdenv.hostPlatform.isDarwin;
};
}
+24 -18
View File
@@ -128,24 +128,30 @@ buildPythonPackage rec {
unset no_proxy
'';
disabledTests = [
"test_builder_should_execute_build_scripts"
"test_env_system_packages_are_relative_to_lib"
"test_install_warning_corrupt_root"
"test_no_additional_output_in_verbose_mode"
"test_project_plugins_are_installed_in_project_folder"
"test_application_command_not_found_messages"
# PermissionError: [Errno 13] Permission denied: '/build/pytest-of-nixbld/pytest-0/popen-gw3/test_find_poetry_managed_pytho1/.local/share/pypoetry/python/pypy@3.10.8/bin/python'
"test_list_poetry_managed"
"test_list_poetry_managed"
"test_find_all_with_poetry_managed"
"test_find_poetry_managed_pythons"
# Flaky
"test_threading_property_types"
"test_threading_single_thread_safe"
"test_threading_property_caching"
"test_threading_atomic_cached_property_different_instances"
];
disabledTests =
[
"test_builder_should_execute_build_scripts"
"test_env_system_packages_are_relative_to_lib"
"test_install_warning_corrupt_root"
"test_no_additional_output_in_verbose_mode"
"test_project_plugins_are_installed_in_project_folder"
"test_application_command_not_found_messages"
# PermissionError: [Errno 13] Permission denied: '/build/pytest-of-nixbld/pytest-0/popen-gw3/test_find_poetry_managed_pytho1/.local/share/pypoetry/python/pypy@3.10.8/bin/python'
"test_list_poetry_managed"
"test_list_poetry_managed"
"test_find_all_with_poetry_managed"
"test_find_poetry_managed_pythons"
# Flaky
"test_threading_property_types"
"test_threading_single_thread_safe"
"test_threading_property_caching"
"test_threading_atomic_cached_property_different_instances"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# Sandbox violation:
# PermissionError: [Errno 1] Operation not permitted: '/Library/Frameworks/Python.framework/Versions'
"test_find_all"
];
disabledTestMarks = [
"network"
+3 -3
View File
@@ -9,16 +9,16 @@
php84.buildComposerProject2 (finalAttrs: {
pname = "snipe-it";
version = "8.1.18";
version = "8.2.0";
src = fetchFromGitHub {
owner = "grokability";
repo = "snipe-it";
tag = "v${finalAttrs.version}";
hash = "sha256-S11RUvblLQNS+LX66zBlVATJTvOMNBxf//zpo+b4AB0=";
hash = "sha256-mXcc6wSDoO7z2xYUjwn6hU39OBmsZOw4JeZTpwZMMbI=";
};
vendorHash = "sha256-wWm7bB+TUzeRDRPYCL53c9/KspAdsHSEKK759ntiLWo=";
vendorHash = "sha256-84kllssopKRAC/Dws+5s6e61/O56B+Uy19jjIV8yLUo=";
postInstall = ''
snipe_it_out="$out/share/php/snipe-it"
+3 -3
View File
@@ -11,13 +11,13 @@
stdenv.mkDerivation rec {
pname = "soapyuhd";
version = "0.4.1";
version = "0.4.1-unstable-2025-02-13";
src = fetchFromGitHub {
owner = "pothosware";
repo = "SoapyUHD";
rev = "soapy-uhd-${version}";
sha256 = "14rk9ap9ayks2ma6mygca08yfds9bgfmip8cvwl87l06hwhnlwhj";
rev = "6b521393cc45c66770f3d4bc69eac7dda982174c";
sha256 = "qg0mbw3S973cnok6tVx7Y38ijOQcJdHtPLi889uo7tI=";
};
nativeBuildInputs = [
+3 -3
View File
@@ -6,7 +6,7 @@
}:
let
pname = "ts_query_ls";
version = "3.3.0";
version = "3.8.0";
in
rustPlatform.buildRustPackage {
inherit pname version;
@@ -15,13 +15,13 @@ rustPlatform.buildRustPackage {
owner = "ribru17";
repo = "ts_query_ls";
rev = "v${version}";
hash = "sha256-CtR5NDvpE8d5KlmATEwk9LVtVHB6NfGMEtT50s1HsWI=";
hash = "sha256-CBsiHK+mt3acyR0HGfx0kIzmTO5FLFjkL2wFK+yILx4=";
};
nativeBuildInputs = [ cmake ];
useFetchCargoVendor = true;
cargoHash = "sha256-I47MCmRumJW50dPOaL8rGB7hRvxvF2gx+XmwzKL67Ok=";
cargoHash = "sha256-b2lfuWX2c489Sw76TBbFj/krnNS27QL0u7lVWhx1WwM=";
meta = {
description = "LSP implementation for Tree-sitter's query files";
@@ -35,13 +35,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "vmware-workstation";
version = "17.6.3";
build = "24583834";
version = "17.6.4";
build = "24832109";
src = requireFile {
name = "VMware-Workstation-Full-${finalAttrs.version}-${finalAttrs.build}.x86_64.bundle";
url = "https://support.broadcom.com/group/ecx/productdownloads?subfamily=VMware%20Workstation%20Pro&freeDownloads=true";
hash = "sha256-eVdZF3KN7UxtC4n0q2qBvpp3PADuto0dEqwNsSVHjuA=";
hash = "sha256-ZPv7rqzEiGVGgRQ2Kiu6rekRDMnoe8O9k4OWun8Zqb0=";
};
vmware-unpack-env = buildFHSEnv {
+2 -2
View File
@@ -10,7 +10,7 @@
stdenv.mkDerivation rec {
pname = "vpl-gpu-rt";
version = "25.2.6";
version = "25.3.0";
outputs = [
"out"
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
owner = "intel";
repo = "vpl-gpu-rt";
rev = "intel-onevpl-${version}";
hash = "sha256-Le21JODzWgJNLWojGyoYeyJUfi8zk2JNC4C27PC3RlA=";
hash = "sha256-S4HjNZrrHxTiHao102fODrUE4isqd2QR7dFfqxEQRx8=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -36,13 +36,13 @@
stdenv.mkDerivation rec {
pname = "xreader";
version = "4.2.6";
version = "4.2.7";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "xreader";
rev = version;
hash = "sha256-ELqO8pYMWgU6DUS5vg+F+xFp3w3H6u0Jzms3xaNlTqE=";
hash = "sha256-APBVrrvLS5CFtfi0UlIDtYyg4pfCS8qLc2a4KDOU1Zk=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -28,13 +28,13 @@
stdenv.mkDerivation rec {
pname = "xviewer";
version = "3.4.8";
version = "3.4.9";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "xviewer";
rev = version;
hash = "sha256-Wn1a/tGNIJNGbgDKoMMMo/oCXrqCXDM1nTUgCZt0O/U=";
hash = "sha256-WYGX57PUX+WUVVZ1F+oE3QNwKB7ii5FlJdQ/3j5heUA=";
};
nativeBuildInputs = [
+1 -3
View File
@@ -33,9 +33,7 @@ lib.makeScope pkgs.newScope (
#### DESKTOP
gtksourceview = callPackage ./desktop/gtksourceview {
autoreconfHook = pkgs.autoreconfHook269;
};
gtksourceview = callPackage ./desktop/gtksourceview { };
}
)
@@ -4,6 +4,7 @@
fetchpatch,
fetchurl,
autoreconfHook,
gtk-doc,
pkg-config,
atk,
cairo,
@@ -48,10 +49,16 @@ stdenv.mkDerivation (finalAttrs: {
# Fix build with gcc 14
env.NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types";
nativeBuildInputs = [
pkg-config
intltool
] ++ lib.optionals stdenv.hostPlatform.isDarwin [ autoreconfHook ];
nativeBuildInputs =
[
pkg-config
intltool
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
autoreconfHook
gtk-doc
];
buildInputs =
[
atk
@@ -68,10 +75,6 @@ stdenv.mkDerivation (finalAttrs: {
gtk-mac-integration-gtk2
];
preConfigure = lib.optionalString stdenv.hostPlatform.isDarwin ''
intltoolize --force
'';
doCheck = false; # requires X11 daemon
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+76 -84
View File
@@ -15,99 +15,91 @@
rustc,
auditable ? !cargo-auditable.meta.broken,
cargo-auditable,
pkgsBuildBuild,
}:
rustPlatform.buildRustPackage.override
{
cargo-auditable = cargo-auditable.bootstrap;
}
(
{
pname = "cargo";
inherit (rustc.unwrapped) version src;
{
pname = "cargo";
inherit (rustc.unwrapped) version src;
# the rust source tarball already has all the dependencies vendored, no need to fetch them again
cargoVendorDir = "vendor";
buildAndTestSubdir = "src/tools/cargo";
# the rust source tarball already has all the dependencies vendored, no need to fetch them again
cargoVendorDir = "vendor";
buildAndTestSubdir = "src/tools/cargo";
inherit auditable;
inherit auditable;
passthru = {
rustc = rustc;
inherit (rustc.unwrapped) tests;
};
passthru = {
rustc = rustc;
inherit (rustc.unwrapped) tests;
};
# changes hash of vendor directory otherwise
dontUpdateAutotoolsGnuConfigScripts = true;
# changes hash of vendor directory otherwise
dontUpdateAutotoolsGnuConfigScripts = true;
nativeBuildInputs = [
pkg-config
cmake
installShellFiles
makeWrapper
(lib.getDev pkgsHostHost.curl)
zlib
nativeBuildInputs = [
pkg-config
cmake
installShellFiles
makeWrapper
(lib.getDev pkgsHostHost.curl)
zlib
];
buildInputs = [
file
curl
python3
openssl
zlib
];
# cargo uses git-rs which is made for a version of libgit2 from recent master that
# is not compatible with the current version in nixpkgs.
#LIBGIT2_SYS_USE_PKG_CONFIG = 1;
# fixes: the cargo feature `edition` requires a nightly version of Cargo, but this is the `stable` channel
RUSTC_BOOTSTRAP = 1;
postInstall = ''
wrapProgram "$out/bin/cargo" --suffix PATH : "${rustc}/bin"
installManPage src/tools/cargo/src/etc/man/*
installShellCompletion --bash --name cargo \
src/tools/cargo/src/etc/cargo.bashcomp.sh
installShellCompletion --zsh src/tools/cargo/src/etc/_cargo
'';
checkPhase = ''
# Disable cross compilation tests
export CFG_DISABLE_CROSS_TESTS=1
cargo test
'';
# Disable check phase as there are failures (4 tests fail)
doCheck = false;
doInstallCheck = !stdenv.hostPlatform.isStatic && stdenv.hostPlatform.isElf;
installCheckPhase = ''
runHook preInstallCheck
${stdenv.cc.targetPrefix}readelf -a $out/bin/.cargo-wrapped | grep -F 'Shared library: [libcurl.so'
runHook postInstallCheck
'';
meta = with lib; {
homepage = "https://crates.io";
description = "Downloads your Rust project's dependencies and builds your project";
mainProgram = "cargo";
teams = [ teams.rust ];
license = [
licenses.mit
licenses.asl20
];
buildInputs = [
file
curl
python3
openssl
zlib
];
# cargo uses git-rs which is made for a version of libgit2 from recent master that
# is not compatible with the current version in nixpkgs.
#LIBGIT2_SYS_USE_PKG_CONFIG = 1;
# fixes: the cargo feature `edition` requires a nightly version of Cargo, but this is the `stable` channel
RUSTC_BOOTSTRAP = 1;
postInstall = ''
wrapProgram "$out/bin/cargo" --suffix PATH : "${rustc}/bin"
installManPage src/tools/cargo/src/etc/man/*
installShellCompletion --bash --name cargo \
src/tools/cargo/src/etc/cargo.bashcomp.sh
installShellCompletion --zsh src/tools/cargo/src/etc/_cargo
'';
checkPhase = ''
# Disable cross compilation tests
export CFG_DISABLE_CROSS_TESTS=1
cargo test
'';
# Disable check phase as there are failures (4 tests fail)
doCheck = false;
doInstallCheck = !stdenv.hostPlatform.isStatic && stdenv.hostPlatform.isElf;
installCheckPhase = ''
runHook preInstallCheck
${stdenv.cc.targetPrefix}readelf -a $out/bin/.cargo-wrapped | grep -F 'Shared library: [libcurl.so'
runHook postInstallCheck
'';
meta = with lib; {
homepage = "https://crates.io";
description = "Downloads your Rust project's dependencies and builds your project";
mainProgram = "cargo";
teams = [ teams.rust ];
license = [
licenses.mit
licenses.asl20
];
platforms = platforms.unix;
# https://github.com/alexcrichton/nghttp2-rs/issues/2
broken = stdenv.hostPlatform.isx86 && stdenv.buildPlatform != stdenv.hostPlatform;
};
}
//
lib.optionalAttrs (stdenv.buildPlatform.rust.rustcTarget != stdenv.hostPlatform.rust.rustcTarget)
{
HOST_PKG_CONFIG_PATH = "${pkgsBuildBuild.pkg-config}/bin/pkg-config";
}
)
platforms = platforms.unix;
# https://github.com/alexcrichton/nghttp2-rs/issues/2
broken = stdenv.hostPlatform.isx86 && stdenv.buildPlatform != stdenv.hostPlatform;
};
}
@@ -20,7 +20,7 @@
buildPythonPackage rec {
pname = "amaranth";
version = "0.5.6";
version = "0.5.7";
pyproject = true;
disabled = pythonOlder "3.8";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
owner = "amaranth-lang";
repo = "amaranth";
tag = "v${version}";
hash = "sha256-fc9mCq7AgxjlR/+KKebV1GGlF5NXN/1Vee5ZLwkNjow=";
hash = "sha256-E/PJrvBmlS39KgzDz9sArq4BXwk/JmIMtdxL7MdrWlc=";
};
postPatch = ''
@@ -22,14 +22,14 @@
buildPythonPackage rec {
pname = "langchain-ollama";
version = "0.3.4";
version = "0.3.5";
pyproject = true;
src = fetchFromGitHub {
owner = "langchain-ai";
repo = "langchain";
tag = "langchain-ollama==${version}";
hash = "sha256-biPQAYF9VfF6z0244v1+iXaqX0IAiKCuJ+XyXzxD/Jg=";
hash = "sha256-UmfbCctAb0D8mETICl5OJ58vghwhQKWkM1drkPt1aAg=";
};
sourceRoot = "${src.name}/libs/partners/ollama";
@@ -15,14 +15,14 @@
buildPythonPackage rec {
pname = "llm-grok";
version = "1.1.1";
version = "1.2.0";
pyproject = true;
src = fetchFromGitHub {
owner = "Hiepler";
repo = "llm-grok";
tag = "v${version}";
hash = "sha256-Zwvf33XSoULJxJMBHftysY3RzGEQ+L46UJ0V8b/+UXQ=";
hash = "sha256-YSpo7dsQ0/s+sS2DXeLq7zHBdktxCr0P96vr6PtEu9o=";
};
build-system = [ setuptools ];
@@ -10,14 +10,14 @@
buildPythonPackage rec {
pname = "llm-groq";
version = "0.8";
version = "0.9";
pyproject = true;
src = fetchFromGitHub {
owner = "angerman";
repo = "llm-groq";
tag = "v${version}";
hash = "sha256-sZ5d9w43NvypaPrebwZ5BLgRaCHAhd7gBU6uHEdUaF4=";
hash = "sha256-9obDB5xz/YFKdnqM/70SC4Ud1t62AsGzAkbGsZTL5Nc=";
};
build-system = [
@@ -15,14 +15,14 @@
buildPythonPackage rec {
pname = "llm-mistral";
version = "0.14";
version = "0.15";
pyproject = true;
src = fetchFromGitHub {
owner = "simonw";
repo = "llm-mistral";
tag = version;
hash = "sha256-NuiqRA/SCjGq0hJsnHJ/vgdncIKu3oE9WqWGht7QRMc=";
hash = "sha256-4ajvsq0sm3/vdiHUuNxHsHKdX58VNNpHIwhWI0ws+08=";
};
build-system = [
@@ -49,7 +49,7 @@ buildPythonPackage rec {
meta = {
description = "LLM plugin providing access to Mistral models using the Mistral API";
homepage = "https://github.com/simonw/llm-mistral";
changelog = "https://github.com/simonw/llm-mistral/releases/tag/${version}/CHANGELOG.md";
changelog = "https://github.com/simonw/llm-mistral/releases/tag/${src.tag}/CHANGELOG.md";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ philiptaron ];
};
+8 -3
View File
@@ -19,6 +19,7 @@
# Not currently part of PyQt6
#, withConnectivity ? true
withPrintSupport ? true,
withSerialPort ? false,
cups,
}:
@@ -103,7 +104,8 @@ buildPythonPackage rec {
# ++ lib.optional withConnectivity qtconnectivity
++ lib.optional withMultimedia qtmultimedia
++ lib.optional withWebSockets qtwebsockets
++ lib.optional withLocation qtlocation;
++ lib.optional withLocation qtlocation
++ lib.optional withSerialPort qtserialport;
buildInputs =
with qt6Packages;
@@ -117,7 +119,8 @@ buildPythonPackage rec {
]
# ++ lib.optional withConnectivity qtconnectivity
++ lib.optional withWebSockets qtwebsockets
++ lib.optional withLocation qtlocation;
++ lib.optional withLocation qtlocation
++ lib.optional withSerialPort qtserialport;
propagatedBuildInputs =
# ld: library not found for -lcups
@@ -127,6 +130,7 @@ buildPythonPackage rec {
inherit sip pyqt6-sip;
multimediaEnabled = withMultimedia;
WebSocketsEnabled = withWebSockets;
serialPortEnabled = withSerialPort;
};
dontConfigure = true;
@@ -145,7 +149,8 @@ buildPythonPackage rec {
++ lib.optional withWebSockets "PyQt6.QtWebSockets"
++ lib.optional withMultimedia "PyQt6.QtMultimedia"
# ++ lib.optional withConnectivity "PyQt6.QtConnectivity"
++ lib.optional withLocation "PyQt6.QtPositioning";
++ lib.optional withLocation "PyQt6.QtPositioning"
++ lib.optional withSerialPort "PyQt6.QtSerialPort";
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isDarwin "-Wno-address-of-temporary";
@@ -16,9 +16,9 @@ let
variants = {
# ./update-zen.py zen
zen = {
version = "6.15.6"; # zen
version = "6.15.7"; # zen
suffix = "zen1"; # zen
sha256 = "11nfmnyyqph9d0hihss9dg96z7dgiqk3p16c2i2li6q52walbj6g"; # zen
sha256 = "1q68jvcghn5bw1hfnk06kh1b89mq13b84g2f0nal9i5wzrx4qxbr"; # zen
isLqx = false;
};
# ./update-zen.py lqx
@@ -34,6 +34,11 @@ stdenv.mkDerivation rec {
revert = true;
})
./unsurprising-ext-password.patch
(fetchpatch {
name = "suppress-ctrl-event-signal-change.patch";
url = "https://w1.fi/cgit/hostap/patch/?id=c330b5820eefa8e703dbce7278c2a62d9c69166a";
hash = "sha256-5ti5OzgnZUFznjU8YH8Cfktrj4YBzsbbrEbNvec+ppQ=";
})
];
# TODO: Patch epoll so that the dbus actually responds
+6 -6
View File
@@ -2,18 +2,18 @@
lib,
stdenv,
kernel,
fetchFromGitLab,
fetchFromGitHub,
}:
stdenv.mkDerivation rec {
pname = "zenpower";
version = "unstable-2025-02-28";
version = "unstable-2025-06-17";
src = fetchFromGitLab {
owner = "shdwchn10";
src = fetchFromGitHub {
owner = "AliEmreSenel";
repo = "zenpower3";
rev = "138fa0637b46a0b0a087f2ba4e9146d2f9ba2475";
sha256 = "sha256-kLtkG97Lje+Fd5FoYf+UlSaEyxFaETtXrSjYzFnHkjY=";
rev = "41e042935ee9840c0b9dd55d61b6ddd58bc4fde6";
hash = "sha256-0U/JmEd6OJJeUm1ZLFYxpKH15n7+QTWYOgtKIFAuf/4=";
};
hardeningDisable = [ "pic" ];
+5
View File
@@ -74,6 +74,11 @@ lib.warnIf (withDocs != null)
patchFlags = [ "-p0" ];
patches = upstreamPatches ++ [
# Enable PGRP_PIPE independently of the kernel of the build machine.
# This doesn't seem to be upstreamed despite such a mention of in https://github.com/NixOS/nixpkgs/pull/77196,
# which originally introduced the patch
# Some related discussion can be found in
# https://lists.gnu.org/archive/html/bug-bash/2015-05/msg00071.html
./pgrp-pipe-5.patch
];
+6 -4
View File
@@ -22,11 +22,13 @@ set -e
rm -vf "$PATCH_LIST"
wget "https://tiswww.case.edu/php/chet/gpgkey.asc"
echo "4ef5051ce7200241e65d29c11eb57df8 gpgkey.asc" > gpgkey.asc.md5
md5sum -c gpgkey.asc.md5
# https://savannah.gnu.org/projects/bash/: Group Admins: Chet Ramey
# https://savannah.gnu.org/users/chet: Download GPG Key
wget "https://savannah.gnu.org/people/viewgpg.php?user_id=2590" -O gpgkey.asc
echo "db4041b4d3896b9f21250e6c29861958bd5d4781f521f06beda849a9ed79fae8 gpgkey.asc" > gpgkey.asc.sha256
sha256sum -c gpgkey.asc.sha256
gpg --import ./gpgkey.asc
rm gpgkey.asc{,.md5}
rm gpgkey.asc{,.sha256}
( echo "# Automatically generated by \`$(basename "$0")'; do not edit." ; \
echo "" ; \
+1 -1
View File
@@ -208,7 +208,7 @@ let
# Make sure that we are not shadowing something from all-packages.nix.
checkInPkgs =
n: alias:
if builtins.hasAttr n super then throw "Alias ${n} is still in all-packages.nix" else alias;
if builtins.hasAttr n super then abort "Alias ${n} is still in all-packages.nix" else alias;
mapAliases =
aliases: lib.mapAttrs (n: alias: removeRecurseForDerivations (checkInPkgs n alias)) aliases;
+21 -6
View File
@@ -879,11 +879,18 @@ with pkgs;
name = "set-java-classpath-hook";
} ../build-support/setup-hooks/set-java-classpath.sh;
fixDarwinDylibNames = makeSetupHook {
name = "fix-darwin-dylib-names-hook";
substitutions = { inherit (darwin.binutils) targetPrefix; };
meta.platforms = lib.platforms.darwin;
} ../build-support/setup-hooks/fix-darwin-dylib-names.sh;
fixDarwinDylibNames = callPackage (
{
lib,
targetPackages,
makeSetupHook,
}:
makeSetupHook {
name = "fix-darwin-dylib-names-hook";
substitutions = { inherit (targetPackages.stdenv.cc) targetPrefix; };
meta.platforms = lib.platforms.darwin;
} ../build-support/setup-hooks/fix-darwin-dylib-names.sh
) { };
writeDarwinBundle = callPackage ../build-support/make-darwin-bundle/write-darwin-bundle.nix { };
@@ -16124,7 +16131,15 @@ with pkgs;
};
};
nixosOptionsDoc = attrs: (import ../../nixos/lib/make-options-doc) ({ inherit pkgs lib; } // attrs);
nixosOptionsDoc =
attrs:
(import ../../nixos/lib/make-options-doc) (
{
pkgs = pkgs.__splicedPackages;
inherit lib;
}
// attrs
);
nix-eval-jobs = callPackage ../tools/package-management/nix-eval-jobs {
nix = nixVersions.nix_2_29;