Merge staging-next into staging
This commit is contained in:
@@ -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: {
|
||||
|
||||
@@ -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 =
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
})
|
||||
@@ -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
|
||||
];
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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=";
|
||||
|
||||
@@ -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=";
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 { };
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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" ];
|
||||
};
|
||||
})
|
||||
@@ -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}";
|
||||
};
|
||||
})
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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" ];
|
||||
|
||||
@@ -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
|
||||
];
|
||||
|
||||
|
||||
@@ -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 "" ; \
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user