Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
103 commits
Select commit Hold shift + click to select a range
243d0d3
conntrack-tools: replace `systemd` with `systemdLibs`
drupol Nov 21, 2025
9b61cb0
python313Packages.google-cloud-audit-log: 0.3.3 -> 0.4.0
fabaff Nov 25, 2025
4c559fd
python3Packages.llm-gemini: 0.28.1 -> 0.28.2
r-ryantm Dec 26, 2025
b0738f5
aflplusplus: 4.34c -> 4.35c
r-ryantm Dec 26, 2025
694bd7c
knot-resolver*_6: simplify path overrides
vcunat Dec 13, 2025
1e713ac
apk-tools: 2.14.10 -> 3.0.3
bjornfor Dec 19, 2025
fb01618
knot-resolver*_6: move extraFeatures to the -manager part
vcunat Dec 13, 2025
e40c378
pear-desktop: rename from youtube-music
thegu5 Dec 23, 2025
6cb8282
apk-tools: prepare for pkgs/by-name
bjornfor Dec 19, 2025
0885540
nixos/tests/os-prober.nix: fix
symphorien Dec 2, 2025
0be869e
nixos/knot-resolver: remove separate .package option
vcunat Dec 14, 2025
73fe107
spotify: 1.2.75.510 -> 1.2.78.418
hraban Dec 13, 2025
cc66ea5
linux/hardened/patches/6.12: v6.12.56-hardened1 -> v6.12.61-hardened1
mio-19 Dec 24, 2025
b2f7506
pear-desktop: migrate to by-name
thegu5 Dec 23, 2025
609ff43
edmarketconnector: 5.13.3 -> 6.0.0
ToasterUwU Dec 14, 2025
ddfdc17
apk-tools: move to pkgs/by-name
bjornfor Dec 19, 2025
2cac41d
itk: 5.4.4 -> 5.4.5
bcdarwin Nov 22, 2025
c156b94
samrewritten: 20250919.1 -> 20251216.1
r-ryantm Dec 20, 2025
28d644e
python3Packages.streamlit: 1.51.0 -> 1.52.2
r-ryantm Dec 22, 2025
590fe62
xnec2c: 4.4.17 -> 4.4.18
r-ryantm Dec 20, 2025
ad9aad3
rio: 0.2.36 -> 0.2.37
r-ryantm Dec 24, 2025
90fae24
haskellPackages.streamly-core: Fix cross-compilation
OPNA2608 Dec 22, 2025
3c56d04
nixos/slurm: add rest options
lisanna-dettwyler Dec 23, 2025
ca74d83
libretro.beetle-psx: 0-unstable-2025-11-28 -> 0-unstable-2025-12-19
r-ryantm Dec 26, 2025
c9ccf59
python3Packages.oslo-log: 7.2.1 -> 8.0.0
r-ryantm Dec 26, 2025
04fe084
freetype: fix build for structuredAttrs
SFrijters Dec 25, 2025
92bd5d2
duktape: fix for structuredAttrs
SFrijters Dec 24, 2025
19c635b
opa-envoy-plugin: 1.11.0-envoy -> 1.12.1-envoy
r-ryantm Dec 24, 2025
cd5d386
pt2-clone: 1.78 -> 1.80.1
r-ryantm Dec 25, 2025
39b3be1
kde6Packages.sddm: split unwrapped build out of wrapper expression
lheckemann Dec 26, 2025
93bc3c9
copybara: 20251215 -> 20251222
r-ryantm Dec 25, 2025
63d61bf
rain: 1.24.1 -> 1.24.2
r-ryantm Dec 25, 2025
f639a9a
libvgm: 0-unstable-2025-12-11 -> 0-unstable-2025-12-15
r-ryantm Dec 25, 2025
828e870
bqn386: 0-unstable-2022-05-16 -> 0-unstable-2025-03-23
Sigmanificient Dec 25, 2025
b04cd1e
resources: 1.9.0 -> 1.9.1
GraysonTinker Dec 24, 2025
1661568
python3Packages.netbox-contract: 2.4.2 -> 2.4.3
r-ryantm Dec 26, 2025
fb25942
xenia-canary: 0-unstable-2025-12-18 -> 0-unstable-2025-12-25
r-ryantm Dec 26, 2025
d93997e
numr: 0.3.0 -> 0.3.1
matthiasbeyer Dec 25, 2025
47b71a1
stable-diffusion-cpp: master-427-78e15bd -> master-445-860a78e
r-ryantm Dec 26, 2025
d5436c3
python3Packages.urlman: 2.0.1 -> 2.0.3
r-ryantm Dec 25, 2025
b314561
fix: resolve cross-compilation issue for dune and opaline
ecofighter Dec 24, 2025
4521816
haskell.compiler.ghc{914,HEAD}: fix Cabal Paths_ patch for darwin
sternenseemann Nov 6, 2025
de60fa8
home-assistant-custom-components.pirate-weather: init at 1.8.3
CodedNil Dec 25, 2025
ee60b3a
nixos/slurm: add rest options (#473479)
markuskowa Dec 26, 2025
d74ec5c
libretro.beetle-psx: 0-unstable-2025-11-28 -> 0-unstable-2025-12-19 (…
thiagokokada Dec 26, 2025
e318b09
python3Packages.oslo-log: 7.2.1 -> 8.0.0 (#474243)
SuperSandro2000 Dec 26, 2025
fe5bd4d
nixos/tests/os-prober.nix: fix (#467245)
symphorien Dec 26, 2025
421d171
dioxus-cli: drop xanderio as maintainer
xanderio Dec 26, 2025
2144aa5
knot-resolver-manager_6: simplify handling of paths, including in the…
SuperSandro2000 Dec 26, 2025
41f3a5e
freetype: fix build for structuredAttrs (#474082)
Aleksanaa Dec 26, 2025
adcfc0d
dioxus-cli: drop xanderio as maintainer (#474324)
Aleksanaa Dec 26, 2025
e5f6b4b
duktape: fix for structuredAttrs (#473906)
fgaz Dec 26, 2025
7bd52f5
spotify: 1.2.75.510 -> 1.2.78.418 (#470535)
gepbird Dec 26, 2025
e518cfb
opa-envoy-plugin: 1.11.0-envoy -> 1.12.1-envoy (#471692)
nixpkgs-ci[bot] Dec 26, 2025
20b67c5
pt2-clone: 1.78 -> 1.80.1 (#472140)
fgaz Dec 26, 2025
65803fd
nixos/plasma6: add kconfig to optional packages to fix xdg-terminal
SuperSandro2000 Dec 26, 2025
a1c33b0
kde6Packages.sddm: split unwrapped build out of wrapper expression (#…
K900 Dec 26, 2025
77839b0
copybara: 20251215 -> 20251222 (#474032)
Aleksanaa Dec 26, 2025
062e1be
nixos/plasma6: add kconfig to optional packages to fix xdg-terminal (…
K900 Dec 26, 2025
2c96949
rain: 1.24.1 -> 1.24.2 (#473983)
Aleksanaa Dec 26, 2025
9d72727
linux/hardened/patches/6.12: v6.12.56-hardened1 -> v6.12.61-hardened1…
alyssais Dec 26, 2025
9f300ff
libvgm: 0-unstable-2025-12-11 -> 0-unstable-2025-12-15 (#473978)
Aleksanaa Dec 26, 2025
47b490a
pear-desktop: rename from youtube-music, migrate to by-name (#473695)
SuperSandro2000 Dec 26, 2025
833ac24
maintainers: add mkleczek
mkleczek Dec 26, 2025
6cf1bdf
phpactor: 2025.10.17.0 -> 2025.12.21.0
r-ryantm Dec 26, 2025
89be86b
quarkus: 3.30.4 -> 3.30.5
r-ryantm Dec 26, 2025
a263a64
tlsinfo: 0.1.51 -> 0.1.52
r-ryantm Dec 26, 2025
e1010f5
bqn386: 0-unstable-2022-05-16 -> 0-unstable-2025-03-23 (#473970)
Aleksanaa Dec 26, 2025
6d40890
resources: 1.9.0 -> 1.9.1 (#473920)
Aleksanaa Dec 26, 2025
d4ec195
python3Packages.netbox-contract: 2.4.2 -> 2.4.3 (#474276)
Defelo Dec 26, 2025
009d5cd
edmarketconnector: 5.13.3 -> 6.0.0 (#470854)
doronbehar Dec 26, 2025
33a4e53
doc/stdenv: add a note about `strictDeps`
tobim Nov 10, 2024
9a6a4a8
nodejs: Exclude non-s390x BE platforms
OPNA2608 Dec 26, 2025
f6e1a8c
esphome: 2025.12.1 -> 2025.12.2
r-ryantm Dec 26, 2025
523f74e
postgresqlPackages.pg_background: init at 1.5
mkleczek Dec 23, 2025
853ddb4
unzip: fix patches urls
yuyuyureka Dec 22, 2025
34cbfe9
unzip: fix patches urls (#473324)
alyssais Dec 26, 2025
bae5ff7
conntrack-tools: replace `systemd` with `systemdLibs` (#463761)
doronbehar Dec 26, 2025
3c5330b
apk-tools: update and move to pkgs/by-name (#472471)
alyssais Dec 26, 2025
2117360
doc/stdenv: add a note about `strictDeps` (#354949)
Aleksanaa Dec 26, 2025
2ad38c3
nodejs: Mark most BE Linux targets unsupported (#473938)
Aleksanaa Dec 26, 2025
0ffc6e9
itk: 5.4.4 -> 5.4.5 (#473912)
Aleksanaa Dec 26, 2025
7d6d12b
samrewritten: 20250919.1 -> 20251216.1 (#472637)
nixpkgs-ci[bot] Dec 26, 2025
8474521
python313Packages.google-cloud-audit-log: 0.3.3 -> 0.4.0 (#464925)
gepbird Dec 26, 2025
6f5f2b0
python3Packages.streamlit: 1.51.0 -> 1.52.2 (#469002)
gepbird Dec 26, 2025
38b4dcf
phpactor: 2025.10.17.0 -> 2025.12.21.0 (#474295)
nixpkgs-ci[bot] Dec 26, 2025
cc899e0
xenia-canary: 0-unstable-2025-12-18 -> 0-unstable-2025-12-25 (#474252)
nixpkgs-ci[bot] Dec 26, 2025
a385f6f
xnec2c: 4.4.17 -> 4.4.18 (#472633)
nixpkgs-ci[bot] Dec 26, 2025
bcb1f9d
quarkus: 3.30.4 -> 3.30.5 (#474318)
nixpkgs-ci[bot] Dec 26, 2025
b7a7625
python3Packages.llm-gemini: 0.28.1 -> 0.28.2 (#474349)
philiptaron Dec 26, 2025
cd84fb7
numr: 0.3.0 -> 0.3.1 (#474104)
Aleksanaa Dec 26, 2025
4ea3a78
stable-diffusion-cpp: master-427-78e15bd -> master-445-860a78e (#472264)
nixpkgs-ci[bot] Dec 26, 2025
c4e6662
rio: 0.2.36 -> 0.2.37 (#473791)
nixpkgs-ci[bot] Dec 26, 2025
d182506
esphome: 2025.12.1 -> 2025.12.2 (#474311)
mweinelt Dec 26, 2025
8d8ece4
python3Packages.urlman: 2.0.1 -> 2.0.3 (#474074)
mweinelt Dec 26, 2025
65b1517
tlsinfo: 0.1.51 -> 0.1.52 (#474319)
nixpkgs-ci[bot] Dec 26, 2025
2fdd6e2
Fix OCaml cross-compilation issue for dune and opaline (#473890)
vbgl Dec 26, 2025
29c6b70
haskell.compiler.ghc{914,HEAD}: fix Cabal Paths_ patch for darwin (#4…
wolfgangwalther Dec 26, 2025
459e567
postgresqlPackages.pg_background: init at 1.5 (#473630)
wolfgangwalther Dec 26, 2025
ae3ca9c
haskellPackages.streamly-core: Fix cross-compilation (#473393)
wolfgangwalther Dec 26, 2025
91fd661
aflplusplus: 4.34c -> 4.35c (#474370)
Mindavi Dec 26, 2025
0e05500
home-assistant-custom-components.pirate-weather: init at 1.8.3 (#447709)
mweinelt Dec 26, 2025
2b53f77
zvbi: fix darwin build
kfiz Dec 26, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions doc/redirects.json
Original file line number Diff line number Diff line change
Expand Up @@ -788,6 +788,9 @@
"var-stdenv-depsTargetTargetPropagated": [
"index.html#var-stdenv-depsTargetTargetPropagated"
],
"var-stdenv-strictDeps": [
"index.html#var-stdenv-strictDeps"
],
"ssec-stdenv-attributes": [
"index.html#ssec-stdenv-attributes"
],
Expand Down
8 changes: 8 additions & 0 deletions doc/stdenv/stdenv.chapter.md
Original file line number Diff line number Diff line change
Expand Up @@ -487,6 +487,14 @@ The propagated equivalent of `buildInputs`. This would be called `depsHostTarget

The propagated equivalent of `depsTargetTarget`. This is prefixed for the same reason of alerting potential users.

##### `strictDeps` {#var-stdenv-strictDeps}

When using native compilation, `stdenv` is lenient towards incorrect placement of a dependency into one of the dependency lists described above. That means a dependency needed at runtime often works, even if it is only present in `nativeBuildInputs`. Vice-versa, dependencies containing binaries that need to be executed during the build will work even if they are only listed in `buildInputs`.

While convenient for getting to a package quickly, this behavior can break cross-compilation. Adding `strictDeps = true` as a parameter to `mkDerivation` or any of its language specific wrappers disables this behavior.

The specialized `build*` functions for dlang, emacs, go, nim, ocaml, python, and rust enable this option by default.

## Attributes {#ssec-stdenv-attributes}

### Variables affecting `stdenv` initialisation {#variables-affecting-stdenv-initialisation}
Expand Down
6 changes: 6 additions & 0 deletions maintainers/maintainer-list.nix
Original file line number Diff line number Diff line change
Expand Up @@ -17478,6 +17478,12 @@
name = "Maciej Krüger";
keys = [ { fingerprint = "E90C BA34 55B3 6236 740C 038F 0D94 8CE1 9CF4 9C5F"; } ];
};
mkleczek = {
name = "Michal Kleczek";
email = "michal@kleczek.org";
github = "mkleczek";
githubId = 11559480;
};
mksafavi = {
name = "MK Safavi";
email = "mksafavi@gmail.com";
Expand Down
2 changes: 2 additions & 0 deletions nixos/doc/manual/release-notes/rl-2605.section.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,3 +70,5 @@ of pulling the upstream container image from Docker Hub. If you want the old beh
- `services.frp` now supports multiple instances through `services.frp.instances` to make it possible to run multiple frp clients or servers at the same time.

- `services.openssh` now supports generating host SSH keys by setting `services.openssh.generateHostKeys = true` while leaving `services.openssh.enable` disabled. This is particularly useful for systems that have no need of an SSH daemon but want SSH host keys for other purposes such as using agenix or sops-nix.

- `services.slurm` now supports slurmrestd usage through the `services.slurm.rest` NixOS options.
278 changes: 180 additions & 98 deletions nixos/modules/services/computing/slurm/slurm.nix
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,45 @@ in
enable = lib.mkEnableOption "slurm client daemon";
};

rest = {
enable = lib.mkEnableOption "slurm REST daemon";

options = lib.mkOption {
type = lib.types.str;
default = "";
description = "Extra command-line options to pass to slurmrestd.";
};

environment = lib.mkOption {
default = { };
description = "Environment variables to set for the slurmrestd daemon, see slurmrestd(8).";
type = lib.types.submodule {
freeformType = with lib.types; attrsOf str;
options = {
SLURM_JWT = lib.mkOption {
type = lib.types.str;
default = "daemon";
description = "This variable must be set to use JWT token authentication.";
};
SLURMRESTD_LISTEN = lib.mkOption {
type = lib.types.str;
default = ":6820";
description = "Comma-delimited list of host:port pairs or unix sockets to listen on.";
};
SLURMRESTD_DEBUG = lib.mkOption {
type = lib.types.str;
default = "info";
description = ''
Set debug level explicitly. Valid values are 0-9, or the same
string values as the debug options such as SlurmctldDebug in
slurm.conf(5).
'';
};
};
};
};
};

enableStools = lib.mkOption {
type = lib.types.bool;
default = false;
Expand Down Expand Up @@ -359,131 +398,174 @@ in
'';

in
lib.mkIf (cfg.enableStools || cfg.client.enable || cfg.server.enable || cfg.dbdserver.enable) {
lib.mkIf
(
cfg.enableStools
|| cfg.client.enable
|| cfg.server.enable
|| cfg.dbdserver.enable
|| cfg.rest.enable
)
{

environment.systemPackages = [ wrappedSlurm ];

services.munge.enable = lib.mkDefault true;

# use a static uid as default to ensure it is the same on all nodes
users.users.slurm = lib.mkIf (cfg.user == defaultUser) {
name = defaultUser;
group = "slurm";
uid = config.ids.uids.slurm;
};

environment.systemPackages = [ wrappedSlurm ];
users.groups.slurm.gid = config.ids.uids.slurm;

services.munge.enable = lib.mkDefault true;
users.users.slurmrestd = lib.mkIf (cfg.rest.enable) {
name = "slurmrestd";
group = "slurmrestd";
isSystemUser = true;
};

# use a static uid as default to ensure it is the same on all nodes
users.users.slurm = lib.mkIf (cfg.user == defaultUser) {
name = defaultUser;
group = "slurm";
uid = config.ids.uids.slurm;
};
users.groups.slurmrestd = lib.mkIf (cfg.rest.enable) { };

users.groups.slurm.gid = config.ids.uids.slurm;
systemd.services.slurmd = lib.mkIf (cfg.client.enable) {
path =
with pkgs;
[
wrappedSlurm
coreutils
]
++ lib.optional cfg.enableSrunX11 slurm-spank-x11;

systemd.services.slurmd = lib.mkIf (cfg.client.enable) {
path =
with pkgs;
[
wrappedSlurm
coreutils
]
++ lib.optional cfg.enableSrunX11 slurm-spank-x11;

wantedBy = [ "multi-user.target" ];
after = [
"systemd-tmpfiles-clean.service"
"munge.service"
"network-online.target"
"remote-fs.target"
];
wants = [ "network-online.target" ];

serviceConfig = {
Type = "forking";
KillMode = "process";
ExecStart = "${wrappedSlurm}/bin/slurmd";
PIDFile = "/run/slurmd.pid";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
LimitMEMLOCK = "infinity";
Delegate = "Yes";
wantedBy = [ "multi-user.target" ];
after = [
"systemd-tmpfiles-clean.service"
"munge.service"
"network-online.target"
"remote-fs.target"
];
wants = [ "network-online.target" ];

serviceConfig = {
Type = "forking";
KillMode = "process";
ExecStart = "${wrappedSlurm}/bin/slurmd";
PIDFile = "/run/slurmd.pid";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
LimitMEMLOCK = "infinity";
Delegate = "Yes";
};
};
};

systemd.tmpfiles.rules = lib.optionals cfg.client.enable [
"d /var/spool/slurmd 755 root root -"
"d ${cfg.mpi.PmixCliTmpDirBase} 755 root root -"
];
systemd.tmpfiles.rules = lib.optionals cfg.client.enable [
"d /var/spool/slurmd 755 root root -"
"d ${cfg.mpi.PmixCliTmpDirBase} 755 root root -"
];

services.openssh.settings.X11Forwarding = lib.mkIf cfg.client.enable (lib.mkDefault true);
services.openssh.settings.X11Forwarding = lib.mkIf cfg.client.enable (lib.mkDefault true);

systemd.services.slurmctld = lib.mkIf (cfg.server.enable) {
path =
with pkgs;
[
wrappedSlurm
munge
coreutils
]
++ lib.optional cfg.enableSrunX11 slurm-spank-x11;
systemd.services.slurmctld = lib.mkIf (cfg.server.enable) {
path =
with pkgs;
[
wrappedSlurm
munge
coreutils
]
++ lib.optional cfg.enableSrunX11 slurm-spank-x11;

wantedBy = [ "multi-user.target" ];
after = [
"network.target"
"munged.service"
];
requires = [ "munged.service" ];
wantedBy = [ "multi-user.target" ];
after = [
"network.target"
"munged.service"
];
requires = [ "munged.service" ];

serviceConfig = {
Type = "forking";
ExecStart = "${wrappedSlurm}/bin/slurmctld";
PIDFile = "/run/slurmctld.pid";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
};

serviceConfig = {
Type = "forking";
ExecStart = "${wrappedSlurm}/bin/slurmctld";
PIDFile = "/run/slurmctld.pid";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
preStart = ''
mkdir -p ${cfg.stateSaveLocation}
chown -R ${cfg.user}:slurm ${cfg.stateSaveLocation}
'';
};

preStart = ''
mkdir -p ${cfg.stateSaveLocation}
chown -R ${cfg.user}:slurm ${cfg.stateSaveLocation}
'';
};
systemd.services.slurmdbd =
let
# slurm strips the last component off the path
configPath = "$RUNTIME_DIRECTORY/slurmdbd.conf";
in
lib.mkIf (cfg.dbdserver.enable) {
path = with pkgs; [
wrappedSlurm
munge
coreutils
];

wantedBy = [ "multi-user.target" ];
after = [
"network.target"
"munged.service"
"mysql.service"
];
requires = [
"munged.service"
"mysql.service"
];

preStart = ''
install -m 600 -o ${cfg.user} -T ${slurmdbdConf} ${configPath}
${lib.optionalString (cfg.dbdserver.storagePassFile != null) ''
echo "StoragePass=$(cat ${cfg.dbdserver.storagePassFile})" \
>> ${configPath}
''}
'';

script = ''
export SLURM_CONF=${configPath}
exec ${cfg.package}/bin/slurmdbd -D
'';

serviceConfig = {
RuntimeDirectory = "slurmdbd";
Type = "simple";
PIDFile = "/run/slurmdbd.pid";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
};
};

systemd.services.slurmdbd =
let
# slurm strips the last component off the path
configPath = "$RUNTIME_DIRECTORY/slurmdbd.conf";
in
lib.mkIf (cfg.dbdserver.enable) {
systemd.services.slurmrestd = lib.mkIf (cfg.rest.enable) {
path = with pkgs; [
wrappedSlurm
munge
coreutils
];

wantedBy = [ "multi-user.target" ];
after = [
"network.target"
"munged.service"
"mysql.service"
];
requires = [
"munged.service"
"mysql.service"
"systemd-tmpfiles-clean.service"
"network-online.target"
"remote-fs.target"
"slurmctld.service"
];

preStart = ''
install -m 600 -o ${cfg.user} -T ${slurmdbdConf} ${configPath}
${lib.optionalString (cfg.dbdserver.storagePassFile != null) ''
echo "StoragePass=$(cat ${cfg.dbdserver.storagePassFile})" \
>> ${configPath}
''}
'';

script = ''
export SLURM_CONF=${configPath}
exec ${cfg.package}/bin/slurmdbd -D
'';
wants = [ "network-online.target" ];

serviceConfig = {
RuntimeDirectory = "slurmdbd";
Type = "simple";
PIDFile = "/run/slurmdbd.pid";
ExecStart = "${wrappedSlurm}/bin/slurmrestd ${cfg.rest.options}";
PIDFile = "/run/slurmrestd.pid";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
LimitMEMLOCK = "infinity";
User = "slurmrestd";
Group = "slurmrestd";
};
};

};
environment = cfg.rest.environment;
};
};

}
1 change: 1 addition & 0 deletions nixos/modules/services/desktop-managers/plasma6.nix
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,7 @@ in
spectacle
ffmpegthumbs
krdp
kconfig # required for xdg-terminal from xdg-utils
]
++ lib.optionals config.hardware.sensor.iio.enable [
# This is required for autorotation in Plasma 6
Expand Down
Loading
Loading