Skip to content

Commit ec3e8b8

Browse files
Merge staging-next into staging
2 parents c0a9cc6 + 66be93a commit ec3e8b8

108 files changed

Lines changed: 1520 additions & 318 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

doc/release-notes/rl-2605.section.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,11 @@
122122

123123
- Reloading or restarting systemd units from the NixOS activation script is deprecated, and will be removed in NixOS 26.11. This deprecation is part of a bigger effort to deprecate activation scripts altogether, which will take place over several releases. There are no in-tree usages of the now-deprecated reload/restart functionality.
124124

125+
- Keycloak has been updated to 26.6.X, bringing a lot new features like federated client authentication, JWT authorization grants, workflows and the ability to do
126+
zero-downtime patch releases. Read more about [all the exciting new capabilities in keycloak 26.6 here](https://github.com/keycloak/keycloak/releases/tag/26.6.0)
127+
and [consult the migration guide to 26.6](https://www.keycloak.org/docs/latest/upgrading/index.html#migrating-to-26-6-0) to find out wether this is a breaking
128+
change for your keycloak instance.
129+
125130
- `elegant-sddm` has been updated to be Qt6 compatible. Themes for SDDM are slightly different so read the [wiki](https://wiki.nixos.org/wiki/SDDM_Themes) for more.
126131

127132
- `forgejo` has been updated to major version 14. For more information, see the [release blog post](https://forgejo.org/2026-01-release-v14-0/) and [full release notes](https://codeberg.org/forgejo/forgejo/src/branch/forgejo/release-notes-published/14.0.0.md)

lib/strings.nix

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,6 @@ rec {
337337

338338
/**
339339
Concatenate a list of strings, adding a newline at the end of each one.
340-
Defined as `concatMapStrings (s: s + "\n")`.
341340
342341
# Inputs
343342
@@ -361,7 +360,7 @@ rec {
361360
362361
:::
363362
*/
364-
concatLines = concatMapStrings (s: s + "\n");
363+
concatLines = str: concatStringsSep "\n" str + "\n";
365364

366365
/**
367366
Given string `s`, replace every occurrence of the string `from` with the string `to`.

maintainers/maintainer-list.nix

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11408,6 +11408,11 @@
1140811408
githubId = 39416660;
1140911409
name = "Mladen Branković";
1141011410
};
11411+
imcvampire = {
11412+
github = "imcvampire";
11413+
githubId = 9426721;
11414+
name = "Quoc-Anh Nguyen";
11415+
};
1141111416
imgabe = {
1141211417
email = "gabrielpmonte@hotmail.com";
1141311418
github = "ImGabe";
@@ -14971,6 +14976,12 @@
1497114976
githubId = 61395246;
1497214977
name = "Lampros Pitsillos";
1497314978
};
14979+
landreussi = {
14980+
email = "lucasandreussi@gmail.com";
14981+
github = "landreussi";
14982+
githubId = 5938518;
14983+
name = "Lucas Andreussi";
14984+
};
1497414985
langsjo = {
1497514986
name = "langsjo";
1497614987
github = "langsjo";

nixos/doc/manual/release-notes/rl-2605.section.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,8 @@
102102

103103
- [Tinyauth](https://tinyauth.app/), a simple authentication middleware for web apps, with OAuth and LDAP support. Available as [services.tinyauth](#opt-services.tinyauth.enable).
104104

105+
- [Strichliste](https://www.strichliste.org), a digital self-service tallysheet used in hackerspaces, clubs and offices. Available as [services.strichliste](#opt-services.strichliste.enable).
106+
105107
- [Dawarich](https://dawarich.app/), a self-hostable location history tracker. Available as [services.dawarich](#opt-services.dawarich.enable).
106108

107109
- [Howdy](https://github.com/boltgolt/howdy), a Windows Hello™ style facial authentication program for Linux.
@@ -324,6 +326,8 @@ See <https://github.com/NixOS/nixpkgs/issues/481673>.
324326

325327
- [hardware.xpadneo](#opt-hardware.xpadneo.enable) now supports configuring kernel module parameters via a freeform [settings](#opt-hardware.xpadneo.settings) option, with convenience options for [rumble attenuation](#opt-hardware.xpadneo.rumbleAttenuation) and [controller quirks](#opt-hardware.xpadneo.quirks).
326328

329+
- The `services.prometheus.exporters` module interface now accepts an optional `socketOpts` attribute, allowing individual exporter modules to describe an accompanying `systemd.sockets.prometheus-${name}-exporter` unit alongside their service, enabling socket activation support.
330+
327331
- Wine has been updated to the 11.0 branch. Please check the [upstream announcement](https://gitlab.winehq.org/wine/wine/-/releases/wine-11.0) for more details.
328332

329333
- `security.acme` now defaults to a dynamic renewal duration, if

nixos/modules/module-list.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1779,6 +1779,7 @@
17791779
./services/web-apps/stash.nix
17801780
./services/web-apps/stirling-pdf.nix
17811781
./services/web-apps/strfry.nix
1782+
./services/web-apps/strichliste.nix
17821783
./services/web-apps/suwayomi-server.nix
17831784
./services/web-apps/szurubooru.nix
17841785
./services/web-apps/tabbyapi.nix

nixos/modules/services/monitoring/prometheus/exporters.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,12 +138,23 @@ example:
138138
DynamicUser = false;
139139
ExecStart = ''
140140
${pkgs.prometheus-postfix-exporter}/bin/postfix_exporter \
141-
--web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
141+
--web.systemd-socket \
142142
--web.telemetry-path ${cfg.telemetryPath} \
143143
${lib.concatStringsSep " \\\n " cfg.extraFlags}
144144
'';
145145
};
146146
};
147+
148+
# `socketOpts` is an optional attribute set describing a
149+
# `systemd.sockets.prometheus-${name}-exporter` unit that
150+
# accompanies the exporter's service. When set, it is merged
151+
# with a default definition that includes
152+
# `wantedBy = [ "sockets.target" ]`, enabling socket activation
153+
# for exporters that support it.
154+
# Note that this attribute is optional.
155+
socketOpts = {
156+
socketConfig.ListenStream = "${cfg.listenAddress}:${toString cfg.port}";
157+
};
147158
}
148159
```
149160
- This should already be enough for the postfix exporter. Additionally one

nixos/modules/services/monitoring/prometheus/exporters.nix

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,15 @@ let
3636
# - extraOpts (types.attrs): extra configuration options to
3737
# configure the exporter with, which
3838
# are appended to the default options
39+
# - socketOpts (types.attrs): optional config that is merged with
40+
# the default definition of the
41+
# exporter's systemd socket unit. When
42+
# set, a `prometheus-${name}-exporter.socket`
43+
# unit is created, enabling socket activation.
3944
#
40-
# Note that `extraOpts` is optional, but a script for the exporter's
41-
# systemd service must be provided by specifying either
42-
# `serviceOpts.script` or `serviceOpts.serviceConfig.ExecStart`
45+
# Note that `extraOpts` and `socketOpts` are optional, but a script
46+
# for the exporter's systemd service must be provided by specifying
47+
# either `serviceOpts.script` or `serviceOpts.serviceConfig.ExecStart`
4348

4449
exporterOpts =
4550
(genAttrs
@@ -311,6 +316,7 @@ let
311316
name,
312317
conf,
313318
serviceOpts,
319+
socketOpts,
314320
}:
315321
let
316322
enableDynamicUser = serviceOpts.serviceConfig.DynamicUser or true;
@@ -368,6 +374,12 @@ let
368374
"-m comment --comment ${name}-exporter -j nixos-fw-accept"
369375
]);
370376
networking.firewall.extraInputRules = mkIf (conf.openFirewall && nftables) conf.firewallRules;
377+
systemd.sockets."prometheus-${name}-exporter" = mkIf (socketOpts != null) (mkMerge [
378+
{
379+
wantedBy = [ "sockets.target" ];
380+
}
381+
socketOpts
382+
]);
371383
systemd.services."prometheus-${name}-exporter" = mkMerge [
372384
{
373385
wantedBy = [ "multi-user.target" ];
@@ -603,6 +615,7 @@ in
603615
mkExporterConf {
604616
inherit name;
605617
inherit (conf) serviceOpts;
618+
socketOpts = conf.socketOpts or null;
606619
conf = cfg.${name};
607620
}
608621
) exporterOpts)

nixos/modules/services/monitoring/prometheus/exporters/node.nix

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ in
3939
'';
4040
};
4141
};
42+
4243
serviceOpts = {
4344
serviceConfig = {
4445
DynamicUser = false;
@@ -47,7 +48,7 @@ in
4748
${pkgs.prometheus-node-exporter}/bin/node_exporter \
4849
${concatMapStringsSep " " (x: "--collector." + x) cfg.enabledCollectors} \
4950
${concatMapStringsSep " " (x: "--no-collector." + x) cfg.disabledCollectors} \
50-
--web.listen-address ${cfg.listenAddress}:${toString cfg.port} ${concatStringsSep " " cfg.extraFlags}
51+
--web.systemd-socket ${concatStringsSep " " cfg.extraFlags}
5152
'';
5253
RestrictAddressFamilies =
5354
optionals (collectorIsEnabled "logind" || collectorIsEnabled "systemd") [
@@ -67,4 +68,8 @@ in
6768
ProtectHome = true;
6869
};
6970
};
71+
72+
socketOpts = {
73+
socketConfig.ListenStream = "${cfg.listenAddress}:${toString cfg.port}";
74+
};
7075
}

nixos/modules/services/monitoring/prometheus/exporters/postfix.nix

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ in
8585
};
8686
};
8787
};
88+
8889
serviceOpts = {
8990
after = mkIf cfg.systemd.enable [ cfg.systemd.unit ];
9091
serviceConfig = {
@@ -95,7 +96,7 @@ in
9596
SupplementaryGroups = mkIf cfg.systemd.enable [ "systemd-journal" ];
9697
ExecStart = ''
9798
${lib.getExe cfg.package} \
98-
--web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
99+
--web.systemd-socket \
99100
--web.telemetry-path ${cfg.telemetryPath} \
100101
--postfix.showq_path ${escapeShellArg cfg.showqPath} \
101102
${concatStringsSep " \\\n " (
@@ -115,4 +116,8 @@ in
115116
'';
116117
};
117118
};
119+
120+
socketOpts = {
121+
socketConfig.ListenStream = "${cfg.listenAddress}:${toString cfg.port}";
122+
};
118123
}

0 commit comments

Comments
 (0)