Compare commits

..

802 Commits

Author SHA1 Message Date
yaya
8c50a710dd Release NixOS 26.05 2026-05-30 14:58:09 +02:00
Jo
ae717416fd [Backport release-26.05] doc/rl-2605: Fix broken links (#525929) 2026-05-30 12:10:37 +00:00
Yt
e63e3510a3 [Backport release-26.05] lnx: unstable-2022-06-25 -> 0.9.0-master (#525914) 2026-05-30 12:07:02 +00:00
Yt
39712f4237 [Backport release-26.05] nixos/stalwart: Allow AF_UNIX address family for journal tracer (#525915) 2026-05-30 12:06:09 +00:00
yaya
c380dc08e6 doc/rl-2605: documentation fixups
(cherry picked from commit d9affaa686)
2026-05-30 11:56:49 +00:00
yaya
82f1b82cd2 doc/rl-2605: Move entries from nixpkgs to nixos doc
(cherry picked from commit 97bc04fb44)
2026-05-30 11:56:49 +00:00
yaya
1a9673de83 doc/rl-2605: Move entries from nixos to nixpkgs doc
(cherry picked from commit 0f48c24eb5)
2026-05-30 11:56:49 +00:00
yaya
f1f0a90e32 doc/rl-2605: Fix broken links
(cherry picked from commit 0264f06d5c)
2026-05-30 11:56:49 +00:00
yaya
32fe9f8cd8 doc/rl-2605: Remove a note about headplane
This is not a backwards incompatible change, as this module is being
introduced with NixOS 26.05.

(cherry picked from commit f154bcae55)
2026-05-30 11:56:49 +00:00
Felix Bargfeldt
2ee7a48270 [Backport release-26.05] olivetin-3k: 3000.12.0 -> 3000.13.0 (#525913) 2026-05-30 11:28:15 +00:00
provokateurin
5df5a25ad5 nixos/stalwart: Allow AF_UNIX address family for journal tracer
(cherry picked from commit 546e8cadac)
2026-05-30 11:02:28 +00:00
Harinn
0565b9bdc5 lnx: unstable-2022-06-25 -> 0.9.0-master
(cherry picked from commit 61ccc33e3b)
2026-05-30 10:58:00 +00:00
Harinn
e93a273b1a lnx: switch to finalAttrs
(cherry picked from commit 69eecf1846)
2026-05-30 10:57:59 +00:00
R. Ryantm
80d5912728 olivetin-3k: 3000.12.0 -> 3000.13.0
(cherry picked from commit 2ca6de6084)
2026-05-30 10:56:47 +00:00
Nikolay Korotkiy
595f093d6b [Backport release-26.05] drawio: update license (#525907) 2026-05-30 10:49:08 +00:00
DarkOnion0
2329cf0c0f drawio: update license
81a267568d
(cherry picked from commit 2c4a507ec6)
2026-05-30 10:43:52 +00:00
Nikolay Korotkiy
198ebc1547 [Backport release-26.05] miniflux: 2.3.0 -> 2.3.1 (#525779) 2026-05-30 10:24:32 +00:00
Martin Weinelt
4c3975adad [Backport release-26.05] teams/python: drop natsukium (#525897) 2026-05-30 10:15:07 +00:00
Rémi NICOLE
72ed9ece4d [Backport release-26.05] gelly: 1.3.0 -> 1.4.0 (#525896) 2026-05-30 10:05:17 +00:00
Martin Weinelt
a9a2f57213 ci/OWNERS: drop natsukium for top-level python files
No active package set maintenance for over a year.

(cherry picked from commit cf8d099cdc)
2026-05-30 10:03:53 +00:00
Martin Weinelt
cc683f249d teams/python: drop natsukium
No active interpreter or core package set maintenance for over a year.

(cherry picked from commit 2687ff42d8)
2026-05-30 10:03:53 +00:00
R. Ryantm
72fd08b93f gelly: 1.3.0 -> 1.4.0
(cherry picked from commit f04f96a2c2)
2026-05-30 09:57:05 +00:00
OTABI Tomoya
a061b460d3 [Backport release-26.05] online-judge-verify-helper: remove from python3Packages (#525880) 2026-05-30 09:38:35 +00:00
nixpkgs-ci[bot]
eddd5cc0a5 [Backport release-26.05] repath-studio: also fetch git dependencies in FOD (#525875) 2026-05-30 09:08:48 +00:00
toyboot4e
7ffc523f69 online-judge-verify-helper: remove from python3Packages
(cherry picked from commit 025dd7a538)
2026-05-30 08:35:53 +00:00
TomaSajt
7587644979 repath-studio: also fetch git dependencies in FOD
(cherry picked from commit d961206948)
2026-05-30 08:22:52 +00:00
nixpkgs-ci[bot]
cc8609d47c [Backport release-26.05] talosctl: 1.13.2 -> 1.13.3 (#525854) 2026-05-30 07:23:37 +00:00
R. Ryantm
2eb01a542f talosctl: 1.13.2 -> 1.13.3
(cherry picked from commit 0b756ed647)
2026-05-30 06:22:51 +00:00
nixpkgs-ci[bot]
b49d8de8ee [Backport release-26.05] asciinema-agg: 1.8.1 -> 1.9.0 (#525826) 2026-05-30 06:16:07 +00:00
R. Ryantm
b381e29a3c asciinema-agg: 1.8.1 -> 1.9.0
(cherry picked from commit 54bf6d7b30)
2026-05-30 03:39:33 +00:00
Michael Daniels
6751dd6836 [Backport release-26.05] .github/labeler.yml: add staging-nixos to workflow backport (#525802) 2026-05-30 01:31:09 +00:00
zowoq
b6583ed594 .github/labeler.yml: add staging-nixos to workflow backport
follow up from 10056dd40d

(cherry picked from commit 420f10510b)
2026-05-30 01:28:14 +00:00
Michael Daniels
6002ccf982 [26.05] sm64baserom: don't build on hydra (#525765) 2026-05-30 01:18:06 +00:00
Austin Horstman
545f264912 [Backport release-26.05] vimPlugins.vim-table-mode: override license to mit (#525794) 2026-05-30 01:10:01 +00:00
0xferrous
b1da8f7266 vimPlugins.vim-table-mode: override license to mit
(cherry picked from commit 262da060ad)
2026-05-30 01:05:18 +00:00
Adam C. Stephens
73b63a1840 [Backport release-26.05] beamPackages.ex_doc: 0.40.1 -> 0.40.3 (#525717) 2026-05-29 23:53:21 +00:00
Sandro
2d110ab9ef [Backport release-26.05] python3Packages.oslo-config: 10.3.0 -> 10.4.0 (#525055) 2026-05-29 23:52:45 +00:00
R. Ryantm
dbca4e84de miniflux: 2.3.0 -> 2.3.1
(cherry picked from commit 45230095f8)
2026-05-29 23:52:28 +00:00
Sandro
8d0c4e117b [Backport release-26.05] subunit: 1.4.5 -> 1.4.6 (#525049) 2026-05-29 23:52:03 +00:00
Sandro
4c9f0c9415 [Backport release-26.05] python3Packages.keystoneauth1: 5.13.1 -> 5.14.0 (#525057) 2026-05-29 23:51:43 +00:00
Adam C. Stephens
51834a0509 [Backport release-26.05] elvis-erlang: 5.0.3 -> 5.0.4 (#525705) 2026-05-29 23:45:40 +00:00
Yohann Boniface
bd154320bf [Backport release-26.05] xautoclick: remove pcre (#525749) 2026-05-29 23:44:51 +00:00
Adam C. Stephens
382d19cbfe [Backport release-26.05] doc/beam: update documentation to reflect tree and recommendations (#525771) 2026-05-29 23:44:21 +00:00
Sandro
36da57041e [Backport release-26.05] python3Packages.nethsm: 2.0.1 -> 2.1.1, python3Packages.pynitrokey: 0.11.4 -> 0.12.2 (#525763) 2026-05-29 23:41:32 +00:00
Toma
dcfab359e1 [Backport release-26.05] stirling-pdf: re-enable additional features, but make them toggleable (#525762) 2026-05-29 23:31:03 +00:00
Adam C. Stephens
87b1a7e6e9 doc/beam: update documentation to reflect tree and recommendations
(cherry picked from commit 1a5492d942)
2026-05-29 23:30:54 +00:00
Tom Hunze
9a32911ada sm64baserom: don't build on hydra
This avoids an unfixable Hydra build failure [1] caused by the file
required by `requireFile` not being present in Hydra's store.

A long-term fix for this and similar issues is already on `master` [2]
but constitutes a breaking change, which is why we cannot backport it.

[1] https://hydra.nixos.org/build/329892892
[2] https://github.com/NixOS/nixpkgs/pull/515536

Not-cherry-picked-because: Different fix on master, not backportable
2026-05-30 01:11:51 +02:00
Nicolas Benes
eca4745b97 python3Packages.pynitrokey: 0.11.4 -> 0.12.2
https://github.com/Nitrokey/pynitrokey/releases/tag/v0.12.0
https://github.com/Nitrokey/pynitrokey/releases/tag/v0.12.1
https://github.com/Nitrokey/pynitrokey/releases/tag/v0.12.2
(cherry picked from commit b1382f9711)
2026-05-29 23:04:39 +00:00
Nicolas Benes
a56b24f8d8 python3Packages.nethsm: 2.0.1 -> 2.1.1
https://github.com/Nitrokey/nethsm-sdk-py/releases/tag/v2.1.0
https://github.com/Nitrokey/nethsm-sdk-py/releases/tag/v2.1.1
(cherry picked from commit d1969fca9e)
2026-05-29 23:04:39 +00:00
nixpkgs-ci[bot]
d36ad44302 [Backport release-26.05] poco: 1.15.2 -> 1.15.3 (#525709) 2026-05-29 23:02:39 +00:00
nixpkgs-ci[bot]
085a72b077 [Backport release-26.05] bambu-studio: make this package functional/usable again (various fixes) (#524870) 2026-05-29 23:02:23 +00:00
TomaSajt
01746262da stirling-pdf: re-enable additional features, but make them toggleable
(cherry picked from commit e001ff1301)
2026-05-29 23:01:12 +00:00
Emily
abc6505905 [Backport release-26.05] forgejo-runner: 12.10.1 -> 12.10.2 (#525757) 2026-05-29 22:50:30 +00:00
Chris Moultrie
846af8382e forgejo-runner: 12.10.1 -> 12.10.2
changelog: https://code.forgejo.org/forgejo/runner/releases/tag/v12.10.2
(cherry picked from commit da7842f1a7)
2026-05-29 22:43:14 +00:00
zowoq
80c79ee3a8 [Backport release-26.05] linux: add stable staging-nixos workflow (#525747) 2026-05-29 22:31:13 +00:00
nixpkgs-ci[bot]
be8020d408 [Backport release-26.05] librewolf-unwrapped: 151.0.1 -> 151.0.2 (#525732) 2026-05-29 22:29:48 +00:00
Sigmanificient
b138336bec xautoclick: remove pcre
(cherry picked from commit f4a52323a1)
2026-05-29 22:28:14 +00:00
zowoq
fcf9006e23 linux: add stable staging-nixos workflow
stable counterpart to d28cc2a2f5

(cherry picked from commit 10056dd40d)
2026-05-29 22:26:23 +00:00
R. Ryantm
5c10ee7158 librewolf-unwrapped: 151.0.1 -> 151.0.2
(cherry picked from commit ce872a603b)
2026-05-29 21:57:16 +00:00
Peder Bergebakken Sundt
47f525d427 [Backport release-26.05] threema-desktop: 1.2.49 -> 1.2.50 (#525568) 2026-05-29 21:52:07 +00:00
Peder Bergebakken Sundt
627e056b6d [Backport release-26.05] spotiflac: fix desktop icon (#525697) 2026-05-29 21:36:05 +00:00
Peder Bergebakken Sundt
4041d4304c [Backport release-26.05] harper: 2.2.1 -> 2.3.0 (#525691) 2026-05-29 21:34:57 +00:00
Peder Bergebakken Sundt
fff9a69a14 [Backport release-26.05] SDL_net: 1.2.8-unstable-2026-03-17 -> 1.2.8-unstable-2026-05-27 (#525706) 2026-05-29 21:34:10 +00:00
Adam C. Stephens
f4f0ce8511 beamPackages.ex_doc: 0.40.1 -> 0.40.3
(cherry picked from commit f1f14a5dc1)
2026-05-29 21:32:13 +00:00
R. Ryantm
5c40e92742 poco: 1.15.2 -> 1.15.3
(cherry picked from commit 5f82f3c151)
2026-05-29 21:12:36 +00:00
R. Ryantm
6038b92f4e SDL_net: 1.2.8-unstable-2026-03-17 -> 1.2.8-unstable-2026-05-27
(cherry picked from commit 375ccaac58)
2026-05-29 21:08:31 +00:00
nixpkgs-ci[bot]
257de32294 [Backport release-26.05] cargo-guppy: 0.17.25 -> 0.17.26 (#525696) 2026-05-29 21:06:34 +00:00
nixpkgs-ci[bot]
f8fda9583d [Backport release-26.05] r2modman: 3.2.16 -> 3.2.17 (#525694) 2026-05-29 21:06:33 +00:00
R. Ryantm
f55b79048f elvis-erlang: 5.0.3 -> 5.0.4
(cherry picked from commit f0ed87f7d8)
2026-05-29 21:04:52 +00:00
Toma
b1608ab20c [Backport release-26.05] stirling-pdf: 2.8.0 -> 2.10.1 (#525682) 2026-05-29 20:44:42 +00:00
Superredstone
489041ceea spotiflac: fix desktop icon
(cherry picked from commit a33e477fba)
2026-05-29 20:25:14 +00:00
R. Ryantm
0027f7f92a cargo-guppy: 0.17.25 -> 0.17.26
(cherry picked from commit ceb865704d)
2026-05-29 20:20:21 +00:00
Hayley Sparham
295cee7871 r2modman: 3.2.16 -> 3.2.17
(cherry picked from commit 741658bdb2)
2026-05-29 20:14:23 +00:00
Jost Alemann
f73301795d harper: 2.2.1 -> 2.3.0
Changelog: https://github.com/Automattic/harper/releases/tag/v2.3.0
Diff: https://github.com/Automattic/harper/compare/v2.2.1...v2.3.0
(cherry picked from commit f66a43c7a9)
2026-05-29 20:08:53 +00:00
Sandro
9b82faa938 [Backport release-26.05] fvs2: init at 0.1.5; bottles-unwrapped: add fvs2 (#524212) 2026-05-29 20:06:22 +00:00
K900
bb6e9ff99d [Backport release-26.05] rusty-path-of-building: 0.2.17 -> 0.2.18 (#525666) 2026-05-29 20:01:57 +00:00
Martin Weinelt
dc4e8b7543 [Backport release-26.05] buildMozillaMach: update MOZ_PKG_FORMAT value for forward compat (#525586) 2026-05-29 19:59:41 +00:00
Peder Bergebakken Sundt
fcd6dd28fc [Backport release-26.05] python3Packages.brax: disable flaky test (#525648) 2026-05-29 19:57:05 +00:00
Peder Bergebakken Sundt
f0629402f7 [Backport release-26.05] librewolf-bin-unwrapped: 150.0.2-1 -> 151.0.1-2 (#525678) 2026-05-29 19:37:15 +00:00
staticdev
75f22aaeaa stirling-pdf: 2.8.0 -> 2.10.1
(cherry picked from commit 8f218eef6a)
2026-05-29 19:10:13 +00:00
Hythera
4e61b81b3e librewolf-bin-unwrapped: 150.0.2-1 -> 151.0.1-2
diff: https://codeberg.org/librewolf/source/compare/150.0.2-1...151.0.1-2

mfsa: https://www.mozilla.org/en-US/security/advisories/mfsa2026-45/
(cherry picked from commit 7c359e5b51)
2026-05-29 18:58:20 +00:00
Nick Cao
571a81dc39 [Backport release-26.05] framework-tool: drop leonas maintainership (#525675) 2026-05-29 18:57:02 +00:00
Leona Maroni
925fc1eda2 framework-tool: drop leonas maintainership
I don't have a working Framework Laptop anymore, so I have no way to
test changes.

(cherry picked from commit 94068096f8)
2026-05-29 18:52:15 +00:00
Nick Cao
6e5a848ad8 [Backport release-26.05] espresso: fix build (#525576) 2026-05-29 18:40:23 +00:00
Nick Cao
d757b5d092 [Backport release-26.05] sope: 5.12.8 -> 5.12.9 (#525641) 2026-05-29 18:16:51 +00:00
Nick Cao
af76a16a02 [Backport release-26.05] sogo: 5.12.8 -> 5.12.9 (#525640) 2026-05-29 18:16:49 +00:00
Christoph Hollizeck
56b4980d8c rusty-path-of-building: 0.2.17 -> 0.2.18
(cherry picked from commit 0531732d3c)
2026-05-29 18:13:09 +00:00
Jo
eb50eae849 [Backport release-26.05] docs: more fixes to release notes (#525659) 2026-05-29 17:43:17 +00:00
NotAShelf
646f3698e1 doc/rl-2605: more typo/grammar fixes; fix Markdown lints
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I4244fa38682ec62a19035c7662a7a0e36a6a6964
(cherry picked from commit efc84cdfc4)
2026-05-29 17:38:19 +00:00
NotAShelf
f0af141b32 doc/rl-2511: more typo/grammar fixes; fix Markdown lints
Fixes odd bulletpoints and bare URLs that are prohibited by most
Markdown linters and specs.

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Iae14dce3d158ac11c59d9117694ccde46a6a6964
(cherry picked from commit b786821e13)
2026-05-29 17:38:19 +00:00
Peder Bergebakken Sundt
54d277eb6b python3Packages.brax: disable flaky test
(cherry picked from commit f01e842256)
2026-05-29 17:00:28 +00:00
dotlambda
38a28556af [Backport release-26.05] nextcloud32: 32.0.9 -> 32.0.10, nextcloud33: 33.0.3 -> 33.0.4 (#525620) 2026-05-29 16:50:11 +00:00
Peder Bergebakken Sundt
5e75a734ac [Backport release-26.05] picoshare: 1.5.1 -> 1.5.2 (#525362) 2026-05-29 16:44:39 +00:00
Jan Christoph Ebersbach
dc4c7d5403 sope: 5.12.8 -> 5.12.9
(cherry picked from commit 3c5295265a)
2026-05-29 16:19:00 +00:00
R. Ryantm
36ba5a16c8 sogo: 5.12.8 -> 5.12.9
(cherry picked from commit ab524c2465)
2026-05-29 16:18:36 +00:00
nixpkgs-ci[bot]
5b63e61da0 [Backport release-26.05] omnissa-horizon-client: 2512->2605 (#525347) 2026-05-29 15:59:00 +00:00
Robert Schütz
168f475676 nextcloud33Packages: update
(cherry picked from commit 0aabcea9df)
2026-05-29 15:30:23 +00:00
Robert Schütz
2b986401be nextcloud33: 33.0.3 -> 33.0.4
Changelog: https://nextcloud.com/changelog/#33-0-4
(cherry picked from commit b5ea2fd1b0)
2026-05-29 15:30:23 +00:00
Robert Schütz
6141debf9a nextcloud32Packages: update
(cherry picked from commit f374778400)
2026-05-29 15:30:23 +00:00
Robert Schütz
898a43b91c nextcloud32: 32.0.9 -> 32.0.10
Changelog: https://nextcloud.com/changelog/#32-0-10
(cherry picked from commit 968ba198fe)
2026-05-29 15:30:23 +00:00
dotlambda
83be6f21f0 [Backport release-26.05] radicale: 3.7.3 -> 3.7.4 (#525601) 2026-05-29 15:24:16 +00:00
Atemu
676cc844a9 [Backport release-26.05] ffmpeg_7: 7.1.3 -> 7.1.4 (#525598) 2026-05-29 15:10:24 +00:00
Adam C. Stephens
9103ffc9e0 [Backport release-26.05] halloy: 2026.6 -> 2026.7 (#525597) 2026-05-29 14:57:25 +00:00
Robert Schütz
0c894a9bdc radicale: 3.7.3 -> 3.7.4
Diff: https://github.com/Kozea/Radicale/compare/v3.7.3...v3.7.4

Changelog: https://github.com/Kozea/Radicale/blob/v3.7.4/CHANGELOG.md
(cherry picked from commit c71cba682d)
2026-05-29 14:35:38 +00:00
Nick Cao
d5c220575c [Backport release-26.05] fosrl-pangolin: 1.18.3 -> 1.18.4 (#525545) 2026-05-29 14:35:25 +00:00
Robert Schütz
fad7d17433 ffmpeg_7: 7.1.3 -> 7.1.4
Changelog: https://github.com/FFmpeg/FFmpeg/blob/n7.1.4/Changelog
(cherry picked from commit 8dc509bf40)
2026-05-29 14:26:06 +00:00
Rina
0306430d28 halloy: 2026.6 -> 2026.7
(cherry picked from commit fbe90a598d)
2026-05-29 14:25:20 +00:00
Gaétan Lepage
662f1e622f [Backport release-26.05] vimPlugins.blink-pairs: 0.4.1 -> 0.5.0 (#525582) 2026-05-29 14:25:02 +00:00
Atemu
5148ff353b [Backport release-26.05] ffmpeg_6: 6.1.4 -> 6.1.5 (#525422) 2026-05-29 14:15:27 +00:00
Martin Weinelt
76575a23ce buildMozillaMach: establish MOZ_PKG_FORMAT forward compat
Lowercae `tar` will throw a KeyError in future mach versions.

(cherry picked from commit cb9090f062)
2026-05-29 13:59:15 +00:00
Florian Klink
0dd3d96623 [Backport release-26.05] mycelium: 0.7.8 -> 0.7.9 (#525550) 2026-05-29 13:50:41 +00:00
isabel
278f82a5d0 vimPlugins.blink-pairs: 0.4.1 -> 0.5.0
Diff: https://github.com/Saghen/blink.pairs/compare/v0.4.1...v0.5.0

Changelog: https://github.com/Saghen/blink.pairs/blob/v0.5.0/CHANGELOG.md
(cherry picked from commit c70c207e6f)
2026-05-29 13:49:20 +00:00
Adam C. Stephens
d25c3202b1 [Backport release-26.05] audiobookshelf: 2.35.0 -> 2.35.1 (#525557) 2026-05-29 13:45:00 +00:00
Sigmanificient
3d2d2e85e3 espresso: fix build
(cherry picked from commit 86126347f9)
2026-05-29 13:39:11 +00:00
Kim Lindberger
e9cd3787ec [Backport release-26.05] nomachine-client: 9.4.14 -> 9.5.7 (#525007) 2026-05-29 13:29:01 +00:00
Nick Cao
966e117bcf [Backport release-26.05] python3Packages.brother-ql: 0.11.2 -> 0.12.0 (#524630) 2026-05-29 13:28:56 +00:00
nixpkgs-ci[bot]
9cae56a1fa [Backport release-26.05] incus: 7.0.0 -> 7.1.0 (#525548) 2026-05-29 13:28:28 +00:00
nixpkgs-ci[bot]
0ad1c04346 [Backport release-26.05] psysh: 0.12.22 -> 0.12.23 (#525149) 2026-05-29 13:28:03 +00:00
Nico Felbinger
2130c97a6c threema-desktop: 1.2.49 -> 1.2.50
(cherry picked from commit ed689a7d5a)
2026-05-29 13:00:27 +00:00
Chris Moultrie
63aec6daef audiobookshelf: 2.35.0 -> 2.35.1
changelog: https://github.com/advplyr/audiobookshelf/releases/tag/v2.35.1
(cherry picked from commit 5cbf28e510)
2026-05-29 12:44:16 +00:00
isabel
282bc8530e [Backport release-26.05] porxie: 0.3.1 -> 0.3.3, nixos/porxie: update options for version (#525552) 2026-05-29 12:39:56 +00:00
Lyna
6f4d835574 nixos/porxie: update options for version
(cherry picked from commit e244279d81)
2026-05-29 12:34:51 +00:00
Lyna
51f30d5560 porxie: 0.3.1 -> 0.3.3
(cherry picked from commit 9bea721ff0)
2026-05-29 12:34:51 +00:00
R. Ryantm
d49bbfdf30 mycelium: 0.7.8 -> 0.7.9
(cherry picked from commit 58dd5d72c4)
2026-05-29 12:30:00 +00:00
nixpkgs-ci[bot]
9f3fbdebc9 [Backport release-26.05] alire: 2.1.0 -> 2.1.1 (#525547) 2026-05-29 12:26:19 +00:00
Tom Herbers
ba22692228 incus: 7.0.0 -> 7.1.0
Changelog: https://github.com/lxc/incus/releases/tag/v7.1.0

Advisories:
- https://github.com/lxc/incus/security/advisories/GHSA-8g7m-96c8-8wwc (Low)
- https://github.com/lxc/incus/security/advisories/GHSA-xhqx-mgh3-3h7q (Low)
- https://github.com/lxc/incus/security/advisories/GHSA-4xg6-52mh-fpw8 (Low)
- https://github.com/lxc/incus/security/advisories/GHSA-ccjc-4qc3-jxqc (Critical)

(cherry picked from commit dd25e36577)
2026-05-29 12:21:03 +00:00
R. Ryantm
dd51397f22 alire: 2.1.0 -> 2.1.1
(cherry picked from commit d5255d6a01)
2026-05-29 12:20:57 +00:00
Kilian Koeltzsch
f6d63cecde fosrl-pangolin: 1.18.3 -> 1.18.4
(cherry picked from commit f5a0531174)
2026-05-29 12:06:50 +00:00
nixpkgs-ci[bot]
bdb1bd6114 [Backport release-26.05] vacuum-tube: 1.7.0 -> 1.7.1 (#525540) 2026-05-29 12:01:47 +00:00
Jo
9c7186464b [Backport release-26.05] docs: fix various typos and grammar errors in release notes (#525537) 2026-05-29 11:44:39 +00:00
R. Ryantm
f4215d1c99 vacuum-tube: 1.7.0 -> 1.7.1
(cherry picked from commit 2c429e37f1)
2026-05-29 11:44:08 +00:00
NotAShelf
70ba751c60 doc/rl-2605: fix various typos and grammar errors in release notes
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I5cfb88c6574cadb0a677b2d8003179af6a6a6964
(cherry picked from commit 02dd3281fe)
2026-05-29 11:39:31 +00:00
NotAShelf
02348a6bc2 doc/rl-2511: fix various typos and grammar errors in release notes
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I51346308f175aabf51751cab517173286a6a6964
(cherry picked from commit 30e3206c5f)
2026-05-29 11:39:31 +00:00
Vincent Laporte
8ab24dc538 [Backport release-26.05] ocamlPackages.odoc: 3.1.0 → 3.2.1 (#525522) 2026-05-29 11:24:28 +00:00
Vincent Laporte
2c26f9b9c9 ocamlPackages.odoc: 3.1.0 → 3.2.1
(cherry picked from commit 3300636ab3)
2026-05-29 10:53:36 +00:00
Vladimír Čunát
e8e446a361 [Backport release-26.05] libvisio: 0.1.10 -> 0.1.11 (#525184) 2026-05-29 10:40:19 +00:00
Vladimír Čunát
9c57e8dde2 [Backport release-26.05] python3Packages.vllm: mark insecure (#525146) 2026-05-29 10:33:23 +00:00
Vincent Laporte
e4bd3958f9 [Backport release-26.05] rocqPackages.micromega-plugin: 1.0.0 -> 1.1.0 (#525506) 2026-05-29 10:08:12 +00:00
Pierre Roux
1d84ac4414 rocqPackages.micromega-plugin: 1.0.0 -> 1.1.0
(cherry picked from commit 34725c072b)
2026-05-29 09:35:25 +00:00
Ivan Mincik
a2c881b2fd [Backport release-26.05] nixos/nominatim: make UI optional (#525471) 2026-05-29 09:20:23 +00:00
Thomas Gerbet
c5b3df2ef9 [Backport release-26.05] putty: 0.83 -> 0.84 (#525480) 2026-05-29 09:02:03 +00:00
Hythera
8fdcbe1246 putty: 0.83 -> 0.84
changelog: https://www.chiark.greenend.org.uk/~sgtatham/putty/changes.html
(cherry picked from commit 4ea6010b39)
2026-05-29 08:41:49 +00:00
Taeer Bar-Yam
ba2260f4c7 nixos/nominatim: make UI optional
(cherry picked from commit a3d43e3230)
2026-05-29 07:59:34 +00:00
Michele Guerini Rocco
14b2626ea7 [Backport release-26.05] monero-{cli,gui}: 0.18.4.6 -> 0.18.5.0 (#525264) 2026-05-29 07:54:00 +00:00
yaya
4b0db36abd [26.05] clash-rs: fix build with Rust ≥1.95 (#525460) 2026-05-29 07:44:45 +00:00
Aaron Jheng
c01aa2b1bb clash-rs: fix build with Rust ≥1.95
(cherry picked from commit 90f40502b1)
2026-05-29 09:28:03 +02:00
yaya
67b859a1fd [Backport release-26.05] python3Packages.httpx-auth: fix tests with pyjwt 2.11+ (#525453) 2026-05-29 07:18:07 +00:00
Harinn
513eab96e0 python3Packages.httpx-auth: fix tests with pyjwt 2.11+
(cherry picked from commit 92bb21a2e8)
2026-05-29 07:13:16 +00:00
yaya
afaa1e9941 [Backport release-26.05] stereotool: fix build (#525448) 2026-05-29 07:11:25 +00:00
Sigmanificient
11bc4f0115 stereotool: fix build
(cherry picked from commit 9d4033cb3f)
2026-05-29 07:02:21 +00:00
Jonas Heinrich
7808e72111 [Backport release-26.05] waydroid-nftables: 1.6.2 -> 1.6.3 (#525434) 2026-05-29 05:55:54 +00:00
R. Ryantm
b82dc19c10 waydroid-nftables: 1.6.2 -> 1.6.3
(cherry picked from commit 1de6bbe5e7)
2026-05-29 05:49:10 +00:00
yaya
41cc72fd94 [Backport release-26.05] nixos/doc: Update stable channel in upgrading chapter (#525387) 2026-05-29 05:44:57 +00:00
Robert Schütz
23363ea584 ffmpeg_6: 6.1.4 -> 6.1.5
Changelog: https://github.com/FFmpeg/FFmpeg/blob/n6.1.5/Changelog
(cherry picked from commit e6d8fec34c)
2026-05-29 03:28:41 +00:00
nixpkgs-ci[bot]
c85dc29a9b [Backport release-26.05] sub-store-frontend: 2.17.8 -> 2.17.19 (#525417) 2026-05-29 02:03:59 +00:00
R. Ryantm
d669d597f5 sub-store-frontend: 2.17.8 -> 2.17.19
(cherry picked from commit 214e3393e4)
2026-05-29 01:58:06 +00:00
Peder Bergebakken Sundt
8f72f1dec8 [Backport release-26.05] nocturne: 1.1.1 -> 1.2.1 (#525400) 2026-05-29 00:41:06 +00:00
Emily
071b0d8523 [Backport release-26.05] ungoogled-chromium: 148.0.7778.178-1 -> 148.0.7778.215-1 (#525402) 2026-05-29 00:29:00 +00:00
networkException
038d4f43e3 ungoogled-chromium: 148.0.7778.178-1 -> 148.0.7778.215-1
https://chromereleases.googleblog.com/2026/05/stable-channel-update-for-desktop_0877304591.html

This update includes 151 security fixes.

CVEs:
CVE-2026-9872 CVE-2026-9873 CVE-2026-9874 CVE-2026-9875 CVE-2026-9876
CVE-2026-9877 CVE-2026-9878 CVE-2026-9879 CVE-2026-9880 CVE-2026-9881
CVE-2026-9882 CVE-2026-9883 CVE-2026-9884 CVE-2026-9885 CVE-2026-9886
CVE-2026-9887 CVE-2026-9888 CVE-2026-9889 CVE-2026-9890 CVE-2026-9891
CVE-2026-9892 CVE-2026-9893 CVE-2026-9894 CVE-2026-9895 CVE-2026-9896
CVE-2026-9897 CVE-2026-9898 CVE-2026-9899 CVE-2026-9900 CVE-2026-9901
CVE-2026-9902 CVE-2026-9903 CVE-2026-9904 CVE-2026-9905 CVE-2026-9906
CVE-2026-9907 CVE-2026-9908 CVE-2026-9909 CVE-2026-9910 CVE-2026-9911
CVE-2026-9912 CVE-2026-9913 CVE-2026-9914 CVE-2026-9915 CVE-2026-9916
CVE-2026-9917 CVE-2026-9918 CVE-2026-9919 CVE-2026-9920 CVE-2026-9921
CVE-2026-9922 CVE-2026-9923 CVE-2026-9924 CVE-2026-9925 CVE-2026-9926
CVE-2026-9927 CVE-2026-9928 CVE-2026-9929 CVE-2026-9930 CVE-2026-9931
CVE-2026-9932 CVE-2026-9933 CVE-2026-9934 CVE-2026-9935 CVE-2026-9936
CVE-2026-9937 CVE-2026-9938 CVE-2026-9939 CVE-2026-9940 CVE-2026-9941
CVE-2026-9942 CVE-2026-9943 CVE-2026-9944 CVE-2026-9945 CVE-2026-9946
CVE-2026-9947 CVE-2026-9948 CVE-2026-9949 CVE-2026-9950 CVE-2026-9951
CVE-2026-9952 CVE-2026-9953 CVE-2026-9954 CVE-2026-9955 CVE-2026-9956
CVE-2026-9957 CVE-2026-9958 CVE-2026-9959 CVE-2026-9960 CVE-2026-9961
CVE-2026-9962 CVE-2026-9963 CVE-2026-9964 CVE-2026-9965 CVE-2026-9966
CVE-2026-9967 CVE-2026-9968 CVE-2026-9969 CVE-2026-9970 CVE-2026-9971
CVE-2026-9972 CVE-2026-9973 CVE-2026-9974 CVE-2026-9975 CVE-2026-9976
CVE-2026-9977 CVE-2026-9978 CVE-2026-9979 CVE-2026-9980 CVE-2026-9981
CVE-2026-9982 CVE-2026-9983 CVE-2026-9984 CVE-2026-9985 CVE-2026-9986
CVE-2026-9987 CVE-2026-9988 CVE-2026-9989 CVE-2026-9990 CVE-2026-9991
CVE-2026-9992 CVE-2026-9993 CVE-2026-9994 CVE-2026-9995 CVE-2026-9996
CVE-2026-9997 CVE-2026-9998 CVE-2026-9999 CVE-2026-10000 CVE-2026-10001
CVE-2026-10002 CVE-2026-10003 CVE-2026-10004 CVE-2026-10005
CVE-2026-10006 CVE-2026-10007 CVE-2026-10008 CVE-2026-10009
CVE-2026-10010 CVE-2026-10011 CVE-2026-10012 CVE-2026-10013
CVE-2026-10014 CVE-2026-10015 CVE-2026-10016 CVE-2026-10017
CVE-2026-10018 CVE-2026-10019 CVE-2026-10020 CVE-2026-10021
CVE-2026-10022

(cherry picked from commit 86522e097a)
2026-05-29 00:19:29 +00:00
Peder Bergebakken Sundt
045d09d3f4 nocturne: 1.1.1 -> 1.2.1
Diff: https://github.com/Jeffser/Nocturne/compare/1.1.1...1.2.1

Changelog:
https://github.com/Jeffser/Nocturne/releases/tag/1.2.0
https://github.com/Jeffser/Nocturne/releases/tag/1.2.1
(cherry picked from commit 9fd1ea5959)
2026-05-29 00:12:32 +00:00
yaya
cb0ad9e216 nixos/doc: Update stable channel in upgrading chapter
(cherry picked from commit 88d8d2c5d5)
2026-05-28 23:31:52 +00:00
nixpkgs-ci[bot]
4d87331c27 [Backport release-26.05] flaresolverr: 3.4.6 -> 3.5.0 (#525215) 2026-05-28 23:27:07 +00:00
Thomas Gerbet
fa08af56e4 [Backport release-26.05] wireshark{,-cli}: 4.6.5 -> 4.6.6 (#525373) 2026-05-28 23:12:48 +00:00
Ryan Omasta
dc09c1655c wireshark{,-cli}: 4.6.5 -> 4.6.6
https://www.wireshark.org/docs/relnotes/wireshark-4.6.6.html
Diff: https://gitlab.com/wireshark/wireshark/-/compare/v4.6.5...v4.6.6
(cherry picked from commit 1c88add0ef)
2026-05-28 22:15:43 +00:00
Pol Dellaiera
2fd826550f [Backport release-26.05] zotero: fix the checks phase (#525367) 2026-05-28 22:04:14 +00:00
Mynacol
bee22226fb zotero: fix the checks phase
Follow-up to the 9.0.4 update in aa9f3b7824 that broke the (completely
optional) tests, because upstream renamed the already ignored tests (as
they try to access internet resources) in 5ebe8ea15f.

(cherry picked from commit 45185e91bf)
2026-05-28 21:59:27 +00:00
Pol Dellaiera
45d46aef15 [Backport release-26.05] zotero: 9.0.2 -> 9.0.4 (#525357) 2026-05-28 21:54:07 +00:00
blokyk
0a5c99add2 picoshare: 1.5.1 -> 1.5.2
(cherry picked from commit 36f8a3d976)
2026-05-28 21:42:19 +00:00
R. Ryantm
57a58cb97e zotero: 9.0.2 -> 9.0.4
(cherry picked from commit aa9f3b7824)
2026-05-28 21:26:43 +00:00
Jhonas Wernery
33fc755767 [Backport release-26.05] docker: 29.5.1 -> 29.5.2 (#525321) 2026-05-28 20:51:26 +00:00
Domenic Marcelli
2700478faf omnissa-horizon-client: 2512->2605
(cherry picked from commit a118c9f7f4)
2026-05-28 20:48:11 +00:00
Vincent Laporte
a7d993bba7 [Backport release-26.05] ocamlPackages.rpclib: 9.0.0 → 10.2.0 (#525224) 2026-05-28 20:12:49 +00:00
Leona Maroni
08ee4f278e [Backport release-26.05] gitlab: 18.11.3 -> 18.11.4 (#525230) 2026-05-28 20:06:18 +00:00
Gergő Gutyina
bb22b237eb [Backport release-26.05] pnpm_11: 11.3.0 -> 11.4.0 (#525307) 2026-05-28 19:44:56 +00:00
R. Ryantm
5e560b69d5 docker: 29.5.1 -> 29.5.2
(cherry picked from commit e5b4a4fa18)
2026-05-28 18:58:38 +00:00
Jhonas Wernery
0b5e03d43f [Backport release-26.05] penpot-desktop: 0.23.0 -> 0.23.1 (#525162) 2026-05-28 18:44:55 +00:00
Gutyina Gergő
07b2a6cde8 pnpm_11: 11.3.0 -> 11.4.0
(cherry picked from commit 6793768126)
2026-05-28 18:20:00 +00:00
Sefa Eyeoglu
e755565475 [Backport release-26.05] pnpm: 11.1.2 -> 11.3.0 (#525251) 2026-05-28 18:11:43 +00:00
rnhmjoj
f8bb4852b0 monero-{cli,gui}: 0.18.4.6 -> 0.18.5.0
(cherry picked from commit b447e25ce6)
2026-05-28 17:40:44 +00:00
StepBroBD
97852de5fa [Backport release-26.05] ocamlPackages.arp: 4.0.0 → 4.1.0 (#525225) 2026-05-28 17:21:27 +00:00
Sefa Eyeoglu
59f1da01ad pnpm: 11.1.2 -> 11.3.0
https://github.com/pnpm/pnpm/releases/tag/v11.3.0
https://github.com/pnpm/pnpm/releases/tag/v11.2.2
https://github.com/pnpm/pnpm/releases/tag/v11.2.1
https://github.com/pnpm/pnpm/releases/tag/v11.2.0
https://github.com/pnpm/pnpm/releases/tag/v11.1.3

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
(cherry picked from commit 1d74018091)
2026-05-28 16:26:13 +00:00
Sefa Eyeoglu
174f12335a fetchPnpmDeps,pnpmConfigHook: print final config before install
This should help debugging config values. I verified that `pnpm config
list` works across pnpm_8, pnpm_9, pnpm_10, pnpm_10_29_2 and pnpm_11.

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
(cherry picked from commit d5cbb9e641)
2026-05-28 16:26:13 +00:00
Sefa Eyeoglu
ea262e4380 pnpmConfigHook: disable lockfile verification against supply-chain policies
These checks are still performed in fetchPnpmDeps. These checks require
access to the registries used in the lockfile, making it infeasible to
run during configurePhase in a sandboxed build.

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
(cherry picked from commit 599909067c)
2026-05-28 16:26:12 +00:00
Philip Taron
820ce7d303 [Backport release-26.05] meta.donationPage: add and set for a few projects (#525112) 2026-05-28 15:46:15 +00:00
Emily
805a45fe92 [Backport release-26.05] chromium,chromedriver: 148.0.7778.178 -> 148.0.7778.216 (#525234) 2026-05-28 15:08:40 +00:00
emilylange
b91bd8766d chromium,chromedriver: 148.0.7778.178 -> 148.0.7778.216
https://chromereleases.googleblog.com/2026/05/stable-channel-update-for-desktop_0877304591.html
(cherry picked from commit ffc6db2fe6)
2026-05-28 14:59:40 +00:00
yaya
8420d8d19a gitlab: 18.11.3 -> 18.11.4
https://gitlab.com/gitlab-org/gitlab/-/blob/v18.11.4-ee/CHANGELOG.md
(cherry picked from commit cec4baa1d7)
2026-05-28 14:39:10 +00:00
Vincent Laporte
abb378034d ocamlPackages.arp: 4.0.0 → 4.1.0
(cherry picked from commit 71af050348)
2026-05-28 14:24:51 +00:00
Vincent Laporte
f957fe70cd ocamlPackages.rpclib: 9.0.0 → 10.2.0
(cherry picked from commit f6045c0002)
2026-05-28 14:23:26 +00:00
Florian Klink
0a2f69320b [Backport release-26.05] python3Packages.authlib: 1.7.0 -> 1.7.2 (#525220) 2026-05-28 14:17:45 +00:00
Fabian Affolter
3f554c010f python3Packages.authlib: 1.7.0 -> 1.7.2
Diff: https://github.com/lepture/authlib/compare/v1.7.0...v1.7.2

Changelog: https://github.com/lepture/authlib/blob/v1.7.2/docs/upgrades/changelog.rst
(cherry picked from commit 9f1e6fd49c)
2026-05-28 14:06:17 +00:00
R. Ryantm
f3156ab0a0 flaresolverr: 3.4.6 -> 3.5.0
(cherry picked from commit fee788e2f6)
2026-05-28 13:52:05 +00:00
Vladimír Čunát
ec942ba042 [Backport release-26.05] openldap: skip a problematic test on i686 already (#525201) 2026-05-28 12:39:19 +00:00
Vladimír Čunát
1e8aeb2f77 [Backport release-26.05] python3Packages.diffusers: 0.36.0 -> 0.38.0 (#524942) 2026-05-28 12:38:41 +00:00
Vladimír Čunát
21aa1b5dec openldap: skip a problematic test on i686 already
See 63147b12a5

Apparently on i686-linux the test isn't flaky but failing reliably.
So restarting on Hydra won't help, and waiting for staging*
would take a few weeks.

(cherry picked from commit 664e60aa95)
2026-05-28 12:34:13 +00:00
R. Ryantm
74dd899517 libvisio: 0.1.10 -> 0.1.11
(cherry picked from commit 26021e8db0)
2026-05-28 11:40:27 +00:00
isabel
0e829cfa01 [Backport release-26.05] npins: 0.4.0 -> 0.4.1; add coca to maintainers (#525181) 2026-05-28 11:31:03 +00:00
yaya
94519887cb [Backport release-26.05] liferea: 1.16.9 -> 1.16.10 (#525172) 2026-05-28 11:25:16 +00:00
Coca
90eb6c5540 npins: add coca to maintainers
(cherry picked from commit 973497fcd1)
2026-05-28 11:23:46 +00:00
Coca
02088a3f8b npins: 0.4.0 -> 0.4.1
(cherry picked from commit bf490ae938)
2026-05-28 11:23:45 +00:00
Sergei Trofimovich
7b108a0f7a liferea: 1.16.9 -> 1.16.10
Changes: https://github.com/lwindolf/liferea/releases/tag/v1.16.10
(cherry picked from commit 7a5669f0f2)
2026-05-28 11:03:17 +00:00
nixpkgs-ci[bot]
aa3f0aa551 [Backport release-26.05] sandhole: 0.9.4 -> 0.9.5 (#524913) 2026-05-28 10:59:29 +00:00
Vincent Laporte
c7775ede84 [Backport release-26.05] coqPackages.equations: 1.3.1 -> 1.3.2 (#525160) 2026-05-28 10:55:45 +00:00
yaya
343964b5a1 [Backport release-26.05] activitywatch: pin aw-webui nodejs version (#524739) 2026-05-28 10:53:31 +00:00
yaya
e8db22aee1 [Backport release-26.05] electron-source.electron_39: remove, electron_39-bin: mark as insecure (#525165) 2026-05-28 10:52:50 +00:00
teutat3s
6848e31194 electron_39-bin: mark as insecure
(cherry picked from commit 4e2f3b4904)
2026-05-28 10:48:00 +00:00
teutat3s
f7a7eec83f electron-source.electron_39: remove
(cherry picked from commit 65b67d5ec1)
2026-05-28 10:48:00 +00:00
Vincent Laporte
04281c6fbf [Backport release-26.05] slothy: init at 0.2.0 (#525159) 2026-05-28 10:42:54 +00:00
NTBBloodbath
84460b65f9 penpot-desktop: 0.23.0 -> 0.23.1
(cherry picked from commit 599cef92f5)
2026-05-28 10:28:49 +00:00
Jhonas Wernery
adf1867414 [Backport release-26.05] docker_25: 25.0.13 -> 25.0.16 (#524111) 2026-05-28 10:18:52 +00:00
4ever2
dd689bfc16 coqPackages.equations: 1.3.1 -> 1.3.2
(cherry picked from commit 811493b89b)
2026-05-28 10:15:58 +00:00
Matthias J. Kannwischer
d3c64ecbb5 slothy: init at 0.2.0
(cherry picked from commit ecf8d2a749)
2026-05-28 10:14:47 +00:00
Matthias J. Kannwischer
711735a851 python3Packages.slothy: init at 0.2.0
(cherry picked from commit 774c5a22ff)
2026-05-28 10:14:46 +00:00
Matthias J. Kannwischer
cf4cb9a166 python3Packages.ortools: extract into separate buildPythonPackage
(cherry picked from commit 25390f5536)
2026-05-28 10:14:46 +00:00
Matthias J. Kannwischer
8d4a938401 or-tools: fix darwin install_name
(cherry picked from commit ca06979777)
2026-05-28 10:14:46 +00:00
R. Ryantm
b739a5d6d2 psysh: 0.12.22 -> 0.12.23
(cherry picked from commit 044893a214)
2026-05-28 09:41:15 +00:00
Robert Schütz
d44f5aa98d python3Packages.vllm: mark insecure
(cherry picked from commit 1d8573f85c)
2026-05-28 09:14:06 +00:00
Vladimír Čunát
84e5858728 [Backport release-26.05] gdb: fix mainProgram for cross (#524229) 2026-05-28 08:18:08 +00:00
Vladimír Čunát
cb5b261021 [Backport release-26.05] Blahtexml fixes (#524218) 2026-05-28 08:16:54 +00:00
Ramses
70a8482d86 [Backport release-26.05] karakeep: 0.31.0 -> 0.32.0 (#525041) 2026-05-28 08:14:49 +00:00
Vladimír Čunát
672ef6274b [Backport release-26.05] python3Packages.obspec: skip pytest-mypy-plugins test under sandbox (#523686) 2026-05-28 08:13:18 +00:00
Vladimír Čunát
e85be5731f [Backport release-26.05] python313Packages.eth-utils: fix build (#524203) 2026-05-28 08:11:37 +00:00
Vladimír Čunát
40e812eeea [Backport release-26.05] veila: init at 0.4.0 (#524441) 2026-05-28 08:08:23 +00:00
Vladimír Čunát
30454a5b63 [Backport release-26.05] losslesscut: init at 3.68.0 (#524314) 2026-05-28 08:07:27 +00:00
Vladimír Čunát
0ea771a19d [Backport release-26.05] fence: remove development only tool from bin (#524198) 2026-05-28 08:06:16 +00:00
Vladimír Čunát
b476551b7a [Backport release-26.05] python3Packages.wasmtime: fix darwin shared library path (#523758) 2026-05-28 08:05:25 +00:00
Vladimír Čunát
8d17759d0e [Backport release-26.05] netease-cloud-music-gtk: 2.5.2 -> 2.5.3 (#523618) 2026-05-28 08:03:58 +00:00
Ramses
a5d0c86795 [Backport release-26.05] nixos/immich: fix matplotlib warning in machine-learning; python314Packages.rapidocr: fix compatibility with Immich (#525088) 2026-05-28 07:43:02 +00:00
Ramses
2d32735e59 [Backport release-26.05] ffmpeg_4: 4.4.6 -> 4.4.7 (#525114) 2026-05-28 07:42:25 +00:00
Ramses
d01282e09d [Backport release-26.05] libsolv: 0.7.36 -> 0.7.37 (#523650) 2026-05-28 07:38:56 +00:00
Ramses
b9e4730dee [Backport release-26.05] dropbear: 2025.89 -> 2026.91 (#524217) 2026-05-28 07:36:56 +00:00
Ramses
a0e70a9d91 [Backport release-26.05] acl2-minimal: fix aarch64-linux build (#524232) 2026-05-28 07:36:21 +00:00
Ramses
b831ff6f14 [Backport release-26.05] roundcube: 1.7.0 -> 1.7.1 (#524431) 2026-05-28 07:35:26 +00:00
Ramses
25a37541ef [Backport release-26.05] fastnetmon: 2.0.372 -> 2.0.380 (#524878) 2026-05-28 07:33:50 +00:00
Ramses
7b0c12f420 [Backport release-26.05] thunderbird-esr: 140.7.2esr -> 140.11.1esr (#524921) 2026-05-28 07:31:59 +00:00
Ramses
b534faced5 [Backport release-26.05] github-runner: Disable node20 runtime by default (#524963) 2026-05-28 07:31:20 +00:00
Ramses
a67dc02f03 [Backport release-26.05] gh: 2.92.0 -> 2.93.0 (#525052) 2026-05-28 07:30:35 +00:00
Ramses
4940084bff [Backport release-26.05] limine-full: 12.3.0 -> 12.3.1 (#525107) 2026-05-28 07:29:27 +00:00
nixpkgs-ci[bot]
8d2b13b41c [Backport release-26.05] reaction: 2.3.1 -> 2.4.0 (#525101) 2026-05-28 06:36:21 +00:00
Robert Schütz
40c6436513 ffmpeg_4: 4.4.6 -> 4.4.7
Changelog: https://github.com/FFmpeg/FFmpeg/blob/n4.4.7/Changelog
(cherry picked from commit 2dbc8d9a66)
2026-05-28 05:46:42 +00:00
Ethan Carter Edwards
601732ceb5 neovim-unwrapped: add donationPage
Good software deserves our money.

Signed-off-by: Ethan Carter Edwards <ethan@ethancedwards.com>
(cherry picked from commit d0b7c0e631)
2026-05-28 05:41:25 +00:00
Ethan Carter Edwards
73b30875cd kdePackages: add donationPage
Good software deserves our money.

Signed-off-by: Ethan Carter Edwards <ethan@ethancedwards.com>
(cherry picked from commit 142d500318)
2026-05-28 05:41:25 +00:00
Ethan Carter Edwards
e898225914 vlc: add donationPage
Good software deserves our money.

Signed-off-by: Ethan Carter Edwards <ethan@ethancedwards.com>
(cherry picked from commit 98f712b1ff)
2026-05-28 05:41:25 +00:00
Ethan Carter Edwards
41158df9ab ffmpeg: add donationPage
Signed-off-by: Ethan Carter Edwards <ethan@ethancedwards.com>
(cherry picked from commit 7807078906)
2026-05-28 05:41:24 +00:00
Ethan Carter Edwards
6229beed42 doc: add meta.donationPage
This might be a nice way to use our reach to remind users to donate to
FLOSS projects that they use and love.

Signed-off-by: Ethan Carter Edwards <ethan@ethancedwards.com>
(cherry picked from commit 9d2f2d71e4)
2026-05-28 05:41:24 +00:00
R. Ryantm
759f33b6ce limine-full: 12.3.0 -> 12.3.1
(cherry picked from commit b1e9dd7f55)
2026-05-28 04:41:00 +00:00
Martin Weinelt
1878b8943d reaction: port patch for aarch64-linux nftables compat
This patch is merged upstream and can be reverted on the next update.

Fetchpatch does not work against framagit.org, which is why I vendored
the patch instead.

(cherry picked from commit 1a7b7c7ddf)
2026-05-28 03:39:55 +00:00
Martin Weinelt
2d3e3eecc8 reaction: build plugins in passthru
(cherry picked from commit d961402c8f)
2026-05-28 03:39:55 +00:00
Martin Weinelt
1e0f951c2b reaction: 2.3.1 -> 2.4.0
https://framagit.org/ppom/reaction/-/releases/v2.4.0
(cherry picked from commit ff099fc9e9)
2026-05-28 03:39:55 +00:00
Sandro Jäckel
0e11e4ef47 python314Packages.rapidocr: fix compatibility with Immich
(cherry picked from commit 59339c9893)
2026-05-28 02:08:33 +00:00
Sandro Jäckel
c80226c424 nixos/immich: fix matplotlib warning in machine-learning
machine-learning[1920443]: mkdir -p failed for path /var/empty/.config/matplotlib: [Errno 1] Operation not permitted: '/var/empty/.config'
machine-learning[1920443]: Matplotlib created a temporary cache directory at /tmp/matplotlib-uo52wf71 because there was an issue with the default path (/var/empty/.config/matplotlib); it is highly recommended to set the MPLCONFIGDIR environment variable to a writable directory, in particular to speed up the import of Matplotlib and to better support multiprocessing.

(cherry picked from commit cb2ed10279)
2026-05-28 02:08:33 +00:00
Nick Cao
ea99d29d34 [Backport release-26.05] python3Packages.item-synchronizer: relax bubop bound (#525074) 2026-05-28 00:43:37 +00:00
Philip Taron
1ce38c1d14 [Backport release-26.05] fetchgit: disable git maintenance (#525073) 2026-05-28 00:18:38 +00:00
Harinn
1eb4733f58 python3Packages.item-synchronizer: relax bidict and bubop bounds
(cherry picked from commit 2aabfbbca9)
2026-05-28 00:16:42 +00:00
Adam Dinwoodie
ab35d8b57a fetchgit: disable git maintenance
By default, Git commands will trigger background processes to perform
repository maintenance.  As of Git v2.54.0, and in particular as of
452b12c2e0 (builtin/maintenance: use "geometric" strategy by default,
2026-02-24), Git has changed the strategy it uses to decide whether
maintenance needs performing, and as a result will kick off background
maintenance processes much more often.

These background processes will potentially change the contents of the
`.git` directory while `nix-prefetch-git` is deleting it.  This results in
effectively random failures, when files are added to the `.git`
directory during the `rm -rf` operation (causing it to fail) or after
the operation has completed (causing the `.git` directory to be
recreated and resulting in a FOD hash mismatch).

This also causes problems for the determinism of Git's own tests.
They've resolved this in 09505b1115 (t: fix races caused by background
maintenance, 2026-02-24) by having the maintenance processes run in the
foreground.  The discussion in that commit explains they considered just
disabling maintenance entirely, but opted for the foreground option
because disabling maintenance would mean the tests looked even less like
how most Git users work with Git.

`nix-prefetch-git` is nothing like most Git users.  In almost every
case, the `.git` directory will be deleted during or immediately after
the script is called.  The repositories certainly don't benefit from
ongoing maintenance.  To avoid the non-determinism created by the
background maintenance processes, just disable maintenance entirely.

This is done with `git config` after initialising the repository, rather
than `git config --global` earlier in the script, as `git config
--global` will fail if `fetchgit` was called with a `gitConfig`
argument.

It would be possible to set this option with
`GIT_CONFIG_[COUNT|KEY_<n>|VALUE_<n>]` environment variables; I've opted
against that because (a) they're less familiar to most people who might
want to come to edit this script in future and (b) because if someone is
using those values themselves via `impureEnvVars` or similar, making our
configuration play nicely with someone else's would require some fairly
complex logic.

I haven't made this a configurable option: any use of `nix-prefetch-git`
will run with maintenance disabled, as I cannot think of a use case
where it would be useful.  If there is such a use case, it would be
straightforward to extend `nix-prefetch-git` and `fetchgit` to allow
users to change the behaviour.

Fixes #524215.

(cherry picked from commit 011471c7f2)
2026-05-28 00:13:45 +00:00
Martin Weinelt
68bfb20566 [Backport release-26.05] samba: 4.23.5 -> 4.23.8 (#524924) 2026-05-27 23:30:07 +00:00
Nick Cao
923d852840 [Backport release-26.05] matrix-authentication-service: 1.16.0 -> 1.17.0 (#524995) 2026-05-27 23:29:26 +00:00
Nick Cao
a850fbbc71 [Backport release-26.05] python3Packages.flask-security: 5.8.0 -> 5.8.1 (#524525) 2026-05-27 23:24:21 +00:00
Nick Cao
a1dd22216d [Backport release-26.05] grafanaPlugins.marcusolsson-dynamictext-panel: 6.2.0 -> 6.2.3 (#524565) 2026-05-27 23:23:13 +00:00
Martin Weinelt
9df5c6a2a0 [Backport release-26.05] libredwg: 0.13.4 -> 0.13.4.8200 (#525051) 2026-05-27 23:07:23 +00:00
R. Ryantm
014a311fef python3Packages.keystoneauth1: 5.13.1 -> 5.14.0
(cherry picked from commit aaae6a5e0a)
2026-05-27 22:57:21 +00:00
R. Ryantm
d3425f3bda python3Packages.oslo-config: 10.3.0 -> 10.4.0
(cherry picked from commit feb2e1ae96)
2026-05-27 22:47:28 +00:00
Michael Daniels
0dbe92f4d6 gh: 2.92.0 -> 2.93.0
Diff: https://github.com/cli/cli/compare/v2.92.0...v2.93.0

Changelog: https://github.com/cli/cli/releases/tag/v2.93.0
(cherry picked from commit 3b0e4f9cbd)
2026-05-27 22:43:32 +00:00
Thorsten Weber
26c9e1dd65 libredwg: 0.13.4 -> 0.13.4.8200
Update to latest pre-release to fix multiple security vulnerabilities:

- CVE-2026-9500: heap-buffer-overflow in decode.c (decompress_R2004_section)
- CVE-2026-9501: heap-buffer-overflow in decode.c (read_2004_compressed_section)
- CVE-2026-9502: heap-buffer-overflow in decode.c (decompress_R2004_section)
- CVE-2026-9503: heap-buffer-overflow in decode.c (decompress_R2004_section)
- CVE-2026-9504: null pointer dereference in dwggrep.c (main)
- CVE-2026-9529: heap-buffer-overflow in decode.c (decompress_R2004_section)
- CVE-2026-9530: heap-buffer-overflow in decode.c (decompress_R2004_section)
- CVE-2026-9605: heap-buffer-overflow in decode.c (decompress_R2004_section)

Individual backports were not feasible as the decompressor was significantly
refactored on upstream's main branch between 0.13.4 and the fixes.

(cherry picked from commit b27ee09e7d)
2026-05-27 22:43:22 +00:00
Michael Daniels
157a942887 [Backport release-26.05] google-chrome: 148.0.7778.178 -> 148.0.7778.215 (#525047) 2026-05-27 22:43:14 +00:00
Maevi
4f1742f1bd subunit: 1.4.5 -> 1.4.6
(cherry picked from commit 9f677545c9)
2026-05-27 22:39:48 +00:00
Eric Roberts
6ec76b678a karakeep: 0.31.0 -> 0.32.0
(cherry picked from commit 4dc5ccb246)
2026-05-27 22:24:38 +00:00
Martin Weinelt
d3b41ceaf2 [Backport release-26.05] buildMozillaMach: fix darwin build for 140.x (#524917) 2026-05-27 22:16:13 +00:00
Felix Bargfeldt
b28ed0c87d [Backport release-26.05] chhoto-url: 7.0.4 -> 7.1.5 (#525033) 2026-05-27 22:07:27 +00:00
Michael Daniels
d8b97a63f9 google-chrome: 148.0.7778.178 -> 148.0.7778.215
(cherry picked from commit 2c044ef431)
2026-05-27 22:02:53 +00:00
R. Ryantm
255103898a chhoto-url: 7.0.4 -> 7.1.5
(cherry picked from commit 442080f1fd)
2026-05-27 22:02:32 +00:00
Michael Daniels
8594958d8e [Backport release-26.05] python3Packages.monosat: fix build with cython 3.1 (#524740) 2026-05-27 20:53:12 +00:00
Bad3r
5ede757685 nomachine-client: 9.4.14 -> 9.5.7
The 9.4.14 tarball is no longer hosted at download.nomachine.com; the
old URL now redirects to the vendor homepage and breaks fetchurl. Bump
to the current upstream release. Both x86_64 and i686 release tarballs
use build suffix _2.

Hashes recomputed via nix-prefetch-url against
https://download.nomachine.com/download/9.5/Linux/.

(cherry picked from commit 0f906ee9b4)
2026-05-27 20:45:30 +00:00
R. Ryantm
7a55590207 matrix-authentication-service: 1.16.0 -> 1.17.0
(cherry picked from commit e5d373f0e5)
2026-05-27 20:27:33 +00:00
Martin Weinelt
a0252785ea [Backport release-26.05] pretix: 2026.4.1 -> 2026.4.2 (#524974) 2026-05-27 20:13:17 +00:00
Philip Taron
6fefc7cc19 [Backport release-26.05] rustPlatform.importCargoLock: download crates from static.crates.io (#524989) 2026-05-27 20:09:35 +00:00
Philip Taron
9b7dc789ca rustPlatform.importCargoLock: download crates from static.crates.io
The crates.io API server's 1 req/sec rate limit currently surfaces as
intermittent HTTP 403 errors when vendoring lockfiles. Switch to the CDN
endpoint as recommended by upstream (rust-lang/crates.io#13482), mirroring
the fix already applied to fetchCargoVendor in #512735.

fetchurl is content-addressed by sha256, so the URL change does not affect
any downstream store paths.

Fixes #524979

(cherry picked from commit f830e6112b)
2026-05-27 20:04:32 +00:00
Adam C. Stephens
65f5d22619 [Backport release-26.05] beamMinimal27Packages.erlang: fix build failure from ignored DOC_TARGETS (#524973) 2026-05-27 19:36:21 +00:00
Martin Weinelt
4bff5d284f pretix: 2026.4.1 -> 2026.4.2
https://pretix.eu/about/en/blog/20260527-release-2026-4-2/
https://github.com/pretix/pretix/compare/v2026.4.1...v2026.4.2

Fixes: CVE-2026-9712
(cherry picked from commit 6f917118f8)
2026-05-27 19:32:45 +00:00
Adam C. Stephens
36598bcf49 beamMinimal27Packages.erlang: fix build failure from ignored DOC_TARGETS
Assisted-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
(cherry picked from commit 8a63423119)
2026-05-27 19:26:09 +00:00
Yuriy Taraday
eca36e4374 github-runner: Disable node20 runtime by default
Node.js 20 is now EOL, see https://github.com/NixOS/nixpkgs/issues/515284
Remove it from the default list of runtimes, but keep the support around
as long as upstream supports it.

(cherry picked from commit 505e8321d8)
2026-05-27 18:57:55 +00:00
Ramses
da06ce0147 [Backport release-26.05] authelia: 4.39.19 -> 4.39.20 (#524958) 2026-05-27 18:53:47 +00:00
Alex Epelde
f70c0a4cbb authelia: 4.39.19 -> 4.39.20
(cherry picked from commit 85a19d4995)
2026-05-27 18:47:28 +00:00
nixpkgs-ci[bot]
f2513f069b [Backport release-26.05] html2pdf: add versionCheckHook (#524912) 2026-05-27 18:28:59 +00:00
Robert Schütz
f9928938a6 python3Packages.diffusers: 0.36.0 -> 0.38.0
Diff: https://github.com/huggingface/diffusers/compare/v0.36.0...v0.38.0

Changelog: https://github.com/huggingface/diffusers/releases/tag/v0.38.0
(cherry picked from commit 94a8a565c0)
2026-05-27 17:52:59 +00:00
dotlambda
ba8efbb42b [Backport release-26.05] perlPackages.Imager: 1.025 -> 1.031 (#524898) 2026-05-27 17:12:51 +00:00
dotlambda
60eaa38f4b [Backport release-26.05] python3Packages.tensorboard: set meta.sourceProvenance (#524888) 2026-05-27 17:10:29 +00:00
Martin Weinelt
850d000d00 samba: 4.23.5 -> 4.23.8
https://www.samba.org/samba/history/samba-4.23.6.html
https://www.samba.org/samba/history/samba-4.23.7.html
https://www.samba.org/samba/history/samba-4.23.8.html

Fixes:
CVE-2026-1933, CVE-2026-2340, CVE-2026-3012, CVE-2026-3238,
CVE-2026-4408, CVE-2026-4480

(cherry picked from commit 125ed23f31)
2026-05-27 17:05:59 +00:00
Vladimír Čunát
ee220bf480 thunderbird-esr: 140.7.2esr -> 140.11.1esr
Uh, I'm sorry.  I forgot to keep updating after r-ryantm
stopped doing so unexpectedly (because this upstream bug).
There are basically no changes beyond security improvements.

(further info composed by mweinelt)
https://www.thunderbird.net/en-US/thunderbird/140.8.0esr/releasenotes/
https://www.thunderbird.net/en-US/thunderbird/140.8.1esr/releasenotes/
https://www.thunderbird.net/en-US/thunderbird/140.9.0esr/releasenotes/
https://www.thunderbird.net/en-US/thunderbird/140.9.1esr/releasenotes/
https://www.thunderbird.net/en-US/thunderbird/140.10.0esr/releasenotes/
https://www.thunderbird.net/en-US/thunderbird/140.10.1esr/releasenotes/
https://www.thunderbird.net/en-US/thunderbird/140.10.2esr/releasenotes/
https://www.thunderbird.net/en-US/thunderbird/140.11.0esr/releasenotes/
https://www.thunderbird.net/en-US/thunderbird/140.11.1esr/releasenotes/

Fixes:
CVE-2025-59375, CVE-2026-2757, CVE-2026-2758, CVE-2026-2759,
CVE-2026-2760, CVE-2026-2761, CVE-2026-2762, CVE-2026-2763,
CVE-2026-2764, CVE-2026-2765, CVE-2026-2766, CVE-2026-2767,
CVE-2026-2768, CVE-2026-2769, CVE-2026-2770, CVE-2026-2771,
CVE-2026-2772, CVE-2026-2773, CVE-2026-2774, CVE-2026-2775,
CVE-2026-2776, CVE-2026-2777, CVE-2026-2778, CVE-2026-2779,
CVE-2026-2780, CVE-2026-2781, CVE-2026-2782, CVE-2026-2783,
CVE-2026-2784, CVE-2026-2785, CVE-2026-2786, CVE-2026-2787,
CVE-2026-2788, CVE-2026-2789, CVE-2026-2790, CVE-2026-2791,
CVE-2026-2792, CVE-2026-2793, CVE-2026-3889, CVE-2026-4371,
CVE-2026-4684, CVE-2026-4685, CVE-2026-4686, CVE-2026-4687,
CVE-2026-4688, CVE-2026-4689, CVE-2026-4690, CVE-2026-4691,
CVE-2026-4692, CVE-2026-4693, CVE-2026-4694, CVE-2026-4695,
CVE-2026-4696, CVE-2026-4697, CVE-2026-4698, CVE-2026-4699,
CVE-2026-4700, CVE-2026-4701, CVE-2026-4702, CVE-2026-4704,
CVE-2026-4705, CVE-2026-4706, CVE-2026-4707, CVE-2026-4708,
CVE-2026-4709, CVE-2026-4710, CVE-2026-4711, CVE-2026-4712,
CVE-2026-4713, CVE-2026-4714, CVE-2026-4715, CVE-2026-4716,
CVE-2026-4717, CVE-2026-4718, CVE-2026-4719, CVE-2026-4720,
CVE-2026-4721, CVE-2026-5731, CVE-2026-5732, CVE-2026-5734,
CVE-2026-6746, CVE-2026-6747, CVE-2026-6748, CVE-2026-6749,
CVE-2026-6750, CVE-2026-6751, CVE-2026-6752, CVE-2026-6753,
CVE-2026-6754, CVE-2026-6757, CVE-2026-6759, CVE-2026-6761,
CVE-2026-6762, CVE-2026-6763, CVE-2026-6764, CVE-2026-6765,
CVE-2026-6766, CVE-2026-6767, CVE-2026-6769, CVE-2026-6770,
CVE-2026-6771, CVE-2026-6772, CVE-2026-6776, CVE-2026-6785,
CVE-2026-6786, CVE-2026-7320, CVE-2026-7321, CVE-2026-7322,
CVE-2026-7323, CVE-2026-8090, CVE-2026-8091, CVE-2026-8092,
CVE-2026-8094, CVE-2026-8388, CVE-2026-8391, CVE-2026-8401,
CVE-2026-8946, CVE-2026-8947, CVE-2026-8949, CVE-2026-8950,
CVE-2026-8953, CVE-2026-8954, CVE-2026-8955, CVE-2026-8956,
CVE-2026-8957, CVE-2026-8958, CVE-2026-8959, CVE-2026-8961,
CVE-2026-8962, CVE-2026-8968, CVE-2026-8970, CVE-2026-8974,
CVE-2026-8975

(cherry picked from commit ecd827db1f)
2026-05-27 16:47:46 +00:00
Ihar Hrachyshka
2a56605ab1 buildMozillaMach: fix darwin build
Versions before 144 vendor bindgen 0.69, which emits invalid Rust for
libc++ 21's attributed basic_string::__self_view alias on Darwin.

This was exposed by commit 0758fc3add ("darwin.libcxx:
20.1.0+apple-sdk-26.0 -> 21.1.6+apple-sdk-26.4"), where libc++
changed `basic_string::__self_view` from a typedef to an attributed
`using` alias. bindgen then drops the alias template parameter and emits
`basic_string___self_view = ...<_CharT>`.

The solution is to blocklist the unused `string_view` internals for the
profiler Rust API. They are not used in the actual build.

Note: Mozilla 144 updated vendored bindgen via:
https://bugzilla.mozilla.org/show_bug.cgi?id=1985509

Assisted-by: Codex gpt-5.5 xhigh
(cherry picked from commit c19203e06f)
2026-05-27 16:36:15 +00:00
Eric Rodrigues Pires
1bab1397c0 sandhole: 0.9.4 -> 0.9.5
(cherry picked from commit 18ccf74b16)
2026-05-27 16:27:56 +00:00
Kenichi Kamiya
2f3e6779d3 html2pdf: add versionCheckHook
version flag is available in 0.8.3:
4886ded651

(cherry picked from commit 8c7c19f27a)
2026-05-27 16:27:28 +00:00
nixpkgs-ci[bot]
31f8371c17 [Backport release-26.05] speed-cloudflare-cli: 2.0.3-unstable-2024-05-15 -> 2.0.3-unstable-2025-07-31 (#524884) 2026-05-27 16:13:16 +00:00
nixpkgs-ci[bot]
ddfd13ac90 [Backport release-26.05] kicad: 10.0.2 -> 10.0.3 (#523790) 2026-05-27 16:11:54 +00:00
misuzu
d7430ff4f4 [Backport release-26.05] qsv: 19.1.0 -> 20.1.0 (#524687) 2026-05-27 15:54:51 +00:00
Robert Schütz
e0d74c6906 perlPackages.Imager: 1.025 -> 1.031
Changelog: https://metacpan.org/release/TONYC/Imager-1.031/source/Changes
(cherry picked from commit 8c5161adf0)
2026-05-27 15:29:19 +00:00
Robert Schütz
61c6be594b python3Packages.tensorboard: set meta.sourceProvenance
(cherry picked from commit 17b0fa54fe)
2026-05-27 15:16:17 +00:00
Colorman
90381dc2af speed-cloudflare-cli: apply patches to fix broken upstream
(cherry picked from commit 0f56ae0e57)
2026-05-27 15:09:25 +00:00
Colorman
638de81183 speed-cloudflare-cli: switch to buildNpmPackage
(cherry picked from commit cfa6db5411)
2026-05-27 15:09:25 +00:00
Colorman
96187d7d4e speed-cloudflare-cli: 2.0.3-unstable-2024-05-15 -> 2.0.3-unstable-2025-07-31
(cherry picked from commit b9c17f2e4c)
2026-05-27 15:09:25 +00:00
Yureka
a7d9e04f3a nixos/tests/fastnetmon-advanced: adjust gobgp peer up message
(cherry picked from commit 0020162e2e)
2026-05-27 14:56:57 +00:00
Yureka
0ce502e774 nixos/fastnetmon: always define global hostgroup
Fixes nixosTests.fastnetmon-advanced with fastnetmon-advanced 2.0.376+

(cherry picked from commit 334db00fa1)
2026-05-27 14:56:57 +00:00
Yureka
e81d553fd5 fastnetmon-advanced: 2.0.372 -> 2.0.380
https://github.com/FastNetMon/fastnetmon-advanced-releases/releases/tag/v2.0.380

Fixes:
CVE-2026-48691, CVE-2026-48690, CVE-2026-48688, CVE-2026-48683,
CVE-2026-48684, CVE-2026-48689, CVE-2026-48686

(cherry picked from commit f9f9f1be27)
2026-05-27 14:56:56 +00:00
nixpkgs-ci[bot]
70f3f87ca7 [Backport release-26.05] pyright: 1.1.409 -> 1.1.410 (#524690) 2026-05-27 14:44:25 +00:00
Peder Bergebakken Sundt
2b134a8fea [Backport release-26.05] alliance: unbreak (#524228) 2026-05-27 14:40:57 +00:00
Vincent Laporte
e842d5cb7f [Backport release-26.05] ocamlPackages.camlp5: 8.05.00 → 8.05.01 (#524866) 2026-05-27 14:39:50 +00:00
Harinn
13b979d756 bambu-studio: drop unused binutils and pcre
(cherry picked from commit 0fb1e5d791)
2026-05-27 14:34:57 +00:00
Harinn
75436e1d55 bambu-studio: use lib.cmake* helpers in cmakeFlags
(cherry picked from commit c134e4840f)
2026-05-27 14:34:57 +00:00
Harinn
fad42bedaf bambu-studio: fix various issues
- https://github.com/NixOS/nixpkgs/issues/440951
- https://github.com/NixOS/nixpkgs/issues/498307
- https://github.com/NixOS/nixpkgs/issues/498311

(cherry picked from commit 751b80c68c)
2026-05-27 14:34:57 +00:00
Vincent Laporte
e7be25e617 ocamlPackages.camlp5: 8.05.00 → 8.05.01
(cherry picked from commit b5143834f6)
2026-05-27 14:19:21 +00:00
Adam C. Stephens
9ae1c8233e [Backport release-26.05] erlang: 27.3.4.11 -> 27.3.4.12, 28.5 -> 28.5.0.1, 29.0 -> 29.0.1 (#524847) 2026-05-27 13:43:51 +00:00
Vincent Laporte
17afae0268 [Backport release-26.05] ocamlPackages.lua-ml: 0.9.4 → 0.9.5 (#524841) 2026-05-27 13:36:37 +00:00
Adam C. Stephens
3b63ed363b beam29Packages.erlang: 29.0 -> 29.0.1
Changelog: https://github.com/erlang/otp/releases/tag/OTP-29.0.1
(cherry picked from commit 0824a9b88c)
2026-05-27 13:31:24 +00:00
Adam C. Stephens
174b0d0afc beam28Packages.erlang: 28.5 -> 28.5.0.1
Changelog: https://github.com/erlang/otp/releases/tag/OTP-28.5.0.1
(cherry picked from commit 5658d98da4)
2026-05-27 13:31:24 +00:00
Adam C. Stephens
c8a3fa3084 beam27Packages.erlang: 27.3.4.11 -> 27.3.4.12
Changelog: https://github.com/erlang/otp/releases/tag/OTP-27.3.4.12
(cherry picked from commit 69dd41b69e)
2026-05-27 13:31:23 +00:00
Vincent Laporte
ed1fdb4766 [Backport release-26.05] ocamlPackages.tar: 3.3.0 → 3.5.0 (#524840) 2026-05-27 13:26:28 +00:00
Martin Weinelt
99011e674e [Backport release-26.05] bambu-studio: mark license as agpl3Plus + unfree (#524842) 2026-05-27 13:26:14 +00:00
Harinn
4acf48b2b6 bambu-studio: mark license as agpl3Plus + unfree
(cherry picked from commit c1083c5fbf)
2026-05-27 13:21:13 +00:00
Vincent Laporte
35ee486b4f ocamlPackages.lua-ml: 0.9.4 → 0.9.5
(cherry picked from commit bcd7a4e4cb)
2026-05-27 13:18:47 +00:00
Vincent Laporte
899b40ceb0 ocamlPackages.tar: 3.3.0 → 3.5.0
(cherry picked from commit a8d1e46e75)
2026-05-27 13:18:42 +00:00
StepBroBD
a76ae2dcfc [Backport release-26.05] ocamlPackages.mirage-crypto-rng: fix tests on x86_64-darwin (#524755) 2026-05-27 12:56:06 +00:00
Martin Weinelt
64ee1fe246 [Backport release-26.05] firefox/wrapper: better way to disable update checks (#524823) 2026-05-27 12:32:55 +00:00
K900
f426a0a151 firefox/wrapper: better way to disable update checks
See https://bugzilla.mozilla.org/show_bug.cgi?id=2042197

(cherry picked from commit 1da3ca7373)
2026-05-27 12:26:48 +00:00
nixpkgs-ci[bot]
abedc5cdc7 [Backport release-26.05] nezha-agent: 2.0.3 -> 2.0.4 (#524729) 2026-05-27 12:19:16 +00:00
Alyssa Ross
11d823ef22 [Backport release-26.05] seatd: fix broken sd notify (#524811) 2026-05-27 11:25:54 +00:00
sinanmohd
73f7fa84f6 Revert "sdnotify-wrapper: drop"
reverts commit e801953990.
drop deprecated header from sdnotify-wrapper

(cherry picked from commit 09384d7270)
2026-05-27 11:17:16 +00:00
nixpkgs-ci[bot]
05f4885600 [Backport release-26.05] jackett: 0.24.1879 -> 0.24.1954 (#524731) 2026-05-27 11:02:08 +00:00
yaya
b87f577e95 [Backport release-26.05] halide: backport upstream simd_op_check_x86 zen4/zen5 fix (#524754) 2026-05-27 09:37:30 +00:00
Angel J
c686adf961 ocamlPackages.mirage-crypto-rng: fix tests on x86_64-darwin
(cherry picked from commit 1bcf9b24d8)
2026-05-27 09:35:48 +00:00
yaya
9e649b4d77 [Backport release-26.05] gnat16Packages.{gprbuild{,-boot},gnatcoll-core}: fix build (#524753) 2026-05-27 09:35:32 +00:00
Harinn
ff0d179490 halide: fix correctness_simd_op_check_x86 bf16 disagreement
(cherry picked from commit 7513744a7a)
2026-05-27 09:32:32 +00:00
Tom Hunze
0851e70d9c gnat15Packages.gnatprove: fix build on aarch64-linux
Co-Authored-By: sempiternal-aurora <78790545+sempiternal-aurora@users.noreply.github.com>
(cherry picked from commit f1840faeb1)
2026-05-27 09:28:01 +00:00
Tom Hunze
70d7ddf85a gnatPackages.gnatcoll-core: remove redundant gnat 12 patch
We don't ship gnat 12 anymore.

(cherry picked from commit a261d6ec3c)
2026-05-27 09:28:01 +00:00
Tom Hunze
dbfdf9cd0c gnat16Packages.gnatcoll-core: fix build
b266466e0a
(cherry picked from commit 9c940973d4)
2026-05-27 09:28:01 +00:00
Tom Hunze
4481e80f31 gnat16Packages.gprbuild{,-boot}: fix build
6421e35027
6b6be939d6

Hydra: https://hydra.nixos.org/build/329281640
(cherry picked from commit 41b2d01449)
2026-05-27 09:28:01 +00:00
yaya
74fe587af7 [Backport release-26.05] trurl: fix tests with libcurl 8.20.0 uppercase hex (#524751) 2026-05-27 09:25:41 +00:00
yaya
90c54eeb85 [Backport release-26.05] python3Packages.stim: fix build with pybind11 3.0 (#524749) 2026-05-27 09:24:01 +00:00
Harinn
967edda59b trurl: fix tests with libcurl 8.20.0 uppercase hex
(cherry picked from commit 051cb3d9ca)
2026-05-27 09:20:44 +00:00
Harinn
63e3952d1f python3Packages.stim: fix build with pybind11 3.0
(cherry picked from commit f6ce4ceeec)
2026-05-27 09:19:09 +00:00
yaya
8193eb6f3e [Backport release-26.05] python3Packages.pytest-notebook: fix build with pytest 9 (#524745) 2026-05-27 09:16:42 +00:00
Harinn
f66ebcfba1 python3Packages.pytest-notebook: fix build with pytest 9
(cherry picked from commit 81a7ca2c6d)
2026-05-27 09:11:44 +00:00
Harinn
2973d2ebae python3Packages.monosat: fix build with cython 3.1
(cherry picked from commit 50779b6ae8)
2026-05-27 09:10:17 +00:00
Alex Epelde
659c7f088f activitywatch: pin aw-webui nodejs version
I suspect it was commit 0968bb28e2 that
broke the build with nodejs_24, presumably because of npm updating from
11.11.1 to 11.12.1.

(cherry picked from commit 78df8f88a5)
2026-05-27 09:07:28 +00:00
Doron Behar
1a76d54453 [Backport release-26.05] gnomeExtensions.gsconnect: 71 -> 72 (#524732) 2026-05-27 08:30:07 +00:00
Tom Hunze
8bbcfa1b00 gnomeExtensions.gsconnect: add meta.changelog
(cherry picked from commit 3ca26fd785)
2026-05-27 08:25:13 +00:00
Tom Hunze
03a8cf1316 gnomeExtensions.gsconnect: 71 -> 72
Changelog: https://github.com/GSConnect/gnome-shell-extension-gsconnect/releases/tag/v72
Diff: https://github.com/GSConnect/gnome-shell-extension-gsconnect/compare/v71...v72
(cherry picked from commit dbe5b90834)
2026-05-27 08:25:12 +00:00
R. Ryantm
bf7b3158b9 jackett: 0.24.1879 -> 0.24.1954
(cherry picked from commit 629f87d2bd)
2026-05-27 08:23:09 +00:00
R. Ryantm
9c9a58d149 nezha-agent: 2.0.3 -> 2.0.4
(cherry picked from commit 58cce8fabf)
2026-05-27 08:21:58 +00:00
Vladimír Čunát
dad03392cd [Backport release-26.05] jay: 1.12.0 -> 1.13.0 (#524721) 2026-05-27 08:05:44 +00:00
uku
b3fae191b5 jay: add uku3lig to maintainers
(cherry picked from commit f94260b829)
2026-05-27 07:53:52 +00:00
uku
73c771cef2 jay: disable failing io_uring tests
Some tests fail in the Lix sandbox which disables io_uring.

Hydra log: https://hydra.nixos.org/build/326198517

(cherry picked from commit 14d54f4886)
2026-05-27 07:53:52 +00:00
uku
5c5ef4b520 jay: 1.12.0 -> 1.13.0
Release notes: https://github.com/mahkoh/jay/releases/tag/v1.13.0

(cherry picked from commit 1073ba4022)
2026-05-27 07:53:52 +00:00
nixpkgs-ci[bot]
eee7b3e24b [Backport release-26.05] buf: 1.69.0 -> 1.70.0 (#524562) 2026-05-27 06:52:11 +00:00
misuzu
398f17d7c6 [Backport release-26.05] olive-editor: drop (#524688) 2026-05-27 06:19:42 +00:00
R. Ryantm
3f8016807c pyright: 1.1.409 -> 1.1.410
(cherry picked from commit 81a059ee93)
2026-05-27 05:12:18 +00:00
Christoph Heiss
1cd74962e1 olive-editor: drop
Upstream is dead/unmaintained since 12-2024.

The build also has been broken since at least 24-11-2025 [0].

[0] https://hydra.nixos.org/build/314410468

Signed-off-by: Christoph Heiss <christoph@c8h4.io>
(cherry picked from commit 2e48fef4ca)
2026-05-27 04:59:25 +00:00
Chenglun Hu
d28dad7577 qsv: 19.1.0 -> 20.1.0
(cherry picked from commit 2a49571673)
2026-05-27 04:53:22 +00:00
yaya
2f00f9d6f1 [Backport release-26.05] brainflow: 5.22.1 -> 5.22.2 (#524678) 2026-05-27 04:02:19 +00:00
R. Ryantm
3b9599a13d brainflow: 5.22.1 -> 5.22.2
(cherry picked from commit f51d9b7e4f)
2026-05-27 03:56:29 +00:00
Felix Bargfeldt
8d49b1947e [Backport release-26.05] kdlfmt: 0.1.6 -> 0.1.7 (#524637) 2026-05-27 01:37:27 +00:00
nixpkgs-ci[bot]
2a451d74ee [Backport release-26.05] lockbook: 26.4.13 -> 26.5.22 (#524627) 2026-05-27 01:25:29 +00:00
nixpkgs-ci[bot]
1d5b973fe4 [Backport release-26.05] lockbook-desktop: 26.4.13 -> 26.5.22 (#524626) 2026-05-27 01:25:28 +00:00
Austin Horstman
6e6a50bcb1 [Backport release-26.05] treewide: don't accidentally package electron-dist into .asar file (#524529) 2026-05-27 00:44:03 +00:00
Martin Weinelt
7386ebeda4 [Backport release-26.05] Thunderbird: 150.0.2 -> 151.0.1 (#524617) 2026-05-27 00:34:39 +00:00
Vincent Laporte
299e70af76 [Backport release-26.05] hol_light: fix (#524643) 2026-05-27 00:33:56 +00:00
Vincent Laporte
92f4a739a4 hol_light: fix
(cherry picked from commit 823a2a5430)
2026-05-27 00:18:46 +00:00
R. Ryantm
334d1973fa kdlfmt: 0.1.6 -> 0.1.7
(cherry picked from commit dd5e5a35e8)
2026-05-26 23:49:49 +00:00
Sandro Jäckel
c89e4ac282 python3Packages.brother-ql: 0.11.2 -> 0.12.0
(cherry picked from commit d69b3cb45d)
2026-05-26 23:35:11 +00:00
R. Ryantm
6b8a22fb3b lockbook: 26.4.13 -> 26.5.22
(cherry picked from commit 80a62624d8)
2026-05-26 23:22:23 +00:00
R. Ryantm
634627ffcc lockbook-desktop: 26.4.13 -> 26.5.22
(cherry picked from commit ceb5bf53b2)
2026-05-26 23:22:07 +00:00
nixpkgs-ci[bot]
75225ee8c0 [Backport release-26.05] zulip: factor out pinned electron, use electron.dist (#524610) 2026-05-26 22:45:06 +00:00
Martin Weinelt
7c81f43ed4 thunderbird-unwrapped: 150.0.2 -> 151.0.1
https://www.thunderbird.net/en-US/thunderbird/151.0/releasenotes/
https://www.thunderbird.net/en-US/thunderbird/151.0.1/releasenotes/
https://www.mozilla.org/en-US/security/advisories/mfsa2026-50/

Fixes:
CVE-2026-8946, CVE-2026-8947, CVE-2026-8948, CVE-2026-8950,
CVE-2026-8952, CVE-2026-8953, CVE-2026-8954, CVE-2026-8955,
CVE-2026-8956, CVE-2026-8957, CVE-2026-8958, CVE-2026-8960,
CVE-2026-8961, CVE-2026-8962, CVE-2026-8963, CVE-2026-8964,
CVE-2026-8965, CVE-2026-8966, CVE-2026-8967, CVE-2026-8968,
CVE-2026-8969, CVE-2026-8970, CVE-2026-8971, CVE-2026-8972,
CVE-2026-8973, CVE-2026-8974, CVE-2026-8975

(cherry picked from commit 6327c29984)
2026-05-26 22:34:17 +00:00
TomaSajt
59c867174a zulip: factor out pinned electron, use electron.dist
(cherry picked from commit 717a72680b)
2026-05-26 22:24:28 +00:00
zowoq
c981866397 [Backport release-26.05] pkgs/stdenv/freebsd: update x86_64-unknown-freebsd bootstrap-files (#524460) 2026-05-26 22:00:43 +00:00
Michele Guerini Rocco
0895daecb6 [Backport release-26.05] ddcutil: 2.2.6 -> 2.2.7 (#524552) 2026-05-26 21:51:31 +00:00
nixpkgs-ci[bot]
959041ceb1 [Backport release-26.05] bird2: 2.18.1 -> 2.19.0; bird3: 3.2.1 -> 3.3.0 (#524569) 2026-05-26 21:29:40 +00:00
nixpkgs-ci[bot]
490fd7f31b [Backport release-26.05] gitoxide: 0.53.0 -> 0.54.0 (#524490) 2026-05-26 21:29:31 +00:00
nixpkgs-ci[bot]
ed6d9c93f3 [Backport release-26.05] libffi_3_3: fix gcc-15 build (#524468) 2026-05-26 20:50:14 +00:00
Ramses
e6cda3ecd0 [Backport release-26.05] command-not-found: don't require lib.mkForce to set dbPath (#524578) 2026-05-26 20:50:02 +00:00
d-r-a-b
8878bfe827 nixos/command-not-found: set enable default with module system
(cherry picked from commit 213f12982d)
2026-05-26 20:37:40 +00:00
d-r-a-b
b4b9c8f6fa nixos/command-not-found: set dbPath default with module system options
(cherry picked from commit 626fddace8)
2026-05-26 20:37:40 +00:00
d-r-a-b
c8b332ba4f nixos/command-not-found: don't require lib.mkForce to set dbPath
(cherry picked from commit f99d745319)
2026-05-26 20:37:40 +00:00
Martin Weinelt
11ada9c063 [Backport release-26.05] gonic: 0.20.1 -> 0.21.0 (#524362) 2026-05-26 20:32:28 +00:00
Tom Herbers
d0b64f5c9e bird3: 3.2.1 -> 3.3.0
Diff: https://gitlab.nic.cz/labs/bird/-/compare/v3.2.1...v3.3.0

Changelog: https://gitlab.nic.cz/labs/bird/-/blob/v3.3.0/NEWS
(cherry picked from commit 2ee9c5f475)
2026-05-26 19:59:03 +00:00
Tom Herbers
04f1170f5e bird2: 2.18.1 -> 2.19.0
Diff: https://gitlab.nic.cz/labs/bird/-/compare/v2.18.1...v2.19.0

Changelog: https://gitlab.nic.cz/labs/bird/-/blob/v2.19.0/NEWS
(cherry picked from commit 197d3402b3)
2026-05-26 19:59:02 +00:00
R. Ryantm
0c2f5e4c31 grafanaPlugins.marcusolsson-dynamictext-panel: 6.2.0 -> 6.2.3
(cherry picked from commit b58bb8e017)
2026-05-26 19:51:01 +00:00
R. Ryantm
101f3b55c5 buf: 1.69.0 -> 1.70.0
(cherry picked from commit cbd08798ce)
2026-05-26 19:45:59 +00:00
Christoffer Lundell
df864ac331 ddcutil: 2.2.6 -> 2.2.7
Add acl and dbus to buildInputs as required by upstream configure script.

(cherry picked from commit ccf5b48c1f)
2026-05-26 19:15:36 +00:00
TomaSajt
ecd15da62e ivpn-ui: don't place electronDist in cwd
(cherry picked from commit 50d308b4a3)
2026-05-26 18:00:07 +00:00
TomaSajt
0601d867a9 repath-studio: don't place electronDist in cwd
(cherry picked from commit ceba9e3044)
2026-05-26 18:00:07 +00:00
TomaSajt
770ec36f45 mqtt-explorer: don't place electronDist in cwd
(cherry picked from commit d9dc678568)
2026-05-26 18:00:07 +00:00
TomaSajt
40b4cb9eeb caprine: don't place electronDist in cwd
(cherry picked from commit c4f908d08e)
2026-05-26 18:00:07 +00:00
TomaSajt
5692452170 teams-for-linux: don't place electronDist in cwd
(cherry picked from commit 6aee68d364)
2026-05-26 18:00:07 +00:00
TomaSajt
eafcb0c234 shogihome: remove workaround
(cherry picked from commit b038c3cd5b)
2026-05-26 18:00:06 +00:00
R. Ryantm
0d052627a4 python3Packages.flask-security: 5.8.0 -> 5.8.1
(cherry picked from commit 579885fa4e)
2026-05-26 17:55:01 +00:00
Felix Bargfeldt
c331fb6f1d [Backport release-26.05] nixos/containers: fix default gateway with privateNetwork (v2) (#524449) 2026-05-26 17:19:20 +00:00
Sandro
a2836c188f [Backport release-26.05] pihole: fix nix-update, 6.4 -> 6.4.2 (#524089) 2026-05-26 16:28:56 +00:00
Austin Horstman
96a72fbaed [Backport release-26.05] vimPlugins.{BufOnly-vim, caw-vim, colorizer, Colour-Sampler-Pack, ...}: override license (#524501) 2026-05-26 16:20:34 +00:00
yaya
60b9e1dc3c [Backport release-26.05] jitsi-meet-electron: 2025.2.0 -> 2026.5.0 (#524492) 2026-05-26 16:19:19 +00:00
Tomas Rivera
1135c0f766 vimPlugins.vim-tmux: override license to mit and publicDomain
Co-authored-by: ShadowRZ <shadowrz+nixpkgs@disroot.org>
(cherry picked from commit 0838a16c21)
2026-05-26 16:15:39 +00:00
Tomas Rivera
ab8312e2d5 vimPlugins.clang_complete: override license to bsd3 and ncsa
Co-authored-by: ShadowRZ <shadowrz+nixpkgs@disroot.org>
(cherry picked from commit 2ff8b1a9b2)
2026-05-26 16:15:36 +00:00
Tomas Rivera
e7f04f94b4 vimPlugins.psc-ide-vim: override license to mit and wtfpl
(cherry picked from commit d08faf89be)
2026-05-26 16:15:35 +00:00
Tomas Rivera
2bffcb8989 vimPlugins.neotest-foundry: override license to asl20 and mit
(cherry picked from commit a71318b1de)
2026-05-26 16:15:35 +00:00
Tomas Rivera
f5f814139c vimPlugins.vim-sile: override license to bsd0, cc0 and gpl2Plus
(cherry picked from commit 2859715681)
2026-05-26 16:15:35 +00:00
Tomas Rivera
7f0d3a844d vimPlugins.vim-dirdiff: override license to bsd3
Co-authored-by: ShadowRZ <shadowrz+nixpkgs@disroot.org>
(cherry picked from commit 19dbf8f8b8)
2026-05-26 16:15:35 +00:00
Tomas Rivera
6ef2dfbb97 vimPlugins.vim-protobuf: override license to bsd3
Co-authored-by: ShadowRZ <shadowrz+nixpkgs@disroot.org>
(cherry picked from commit 587b8ec0f7)
2026-05-26 16:15:34 +00:00
Tomas Rivera
232872cf59 vimPlugins.ncm2-utlisnips: override license to mit
Co-authored-by: ShadowRZ <shadowrz+nixpkgs@disroot.org>
(cherry picked from commit 7fb4620688)
2026-05-26 16:15:34 +00:00
Tomas Rivera
13bcbeb89d vimPlugins.last256: override license to mit
Co-authored-by: ShadowRZ <shadowrz+nixpkgs@disroot.org>
(cherry picked from commit 7004cffa32)
2026-05-26 16:15:34 +00:00
Tomas Rivera
2c8590c277 vimPlugins.vim-watchdogs: override license to artistic1
Co-authored-by: ShadowRZ <shadowrz+nixpkgs@disroot.org>
(cherry picked from commit 02bfaa65d2)
2026-05-26 16:15:34 +00:00
Tomas Rivera
9a1524f0a3 vimPlugins.vim-addon-async: override license to vim
Co-authored-by: ShadowRZ <shadowrz+nixpkgs@disroot.org>
(cherry picked from commit f0cbe3c5d9)
2026-05-26 16:15:34 +00:00
Tomas Rivera
6876f432c2 vimPlugins.vim-sentence-chopper: override license to wtfpl
(cherry picked from commit 74668db9a0)
2026-05-26 16:15:34 +00:00
Tomas Rivera
5e23ac95f1 vimPlugins.vim-CtrlXA: override license to wtfpl
(cherry picked from commit 01a50a394d)
2026-05-26 16:15:33 +00:00
Tomas Rivera
9c104004c9 vimPlugins.fastfold: override license to wtfpl
(cherry picked from commit adcd15eba6)
2026-05-26 16:15:33 +00:00
Tomas Rivera
1e1294a640 vimPlugins.zeavim-vim: override license to publicDomain
(cherry picked from commit c3690cce4e)
2026-05-26 16:15:33 +00:00
Tomas Rivera
0d1936c8c0 vimPlugins.zoomwintab-vim: override license to vim
(cherry picked from commit 13b3305464)
2026-05-26 16:15:33 +00:00
Tomas Rivera
15bb2dbda5 vimPlugins.whitespace-nvim: override license to mit
(cherry picked from commit b2577b6633)
2026-05-26 16:15:33 +00:00
Tomas Rivera
3aceba606e vimPlugins.vivify-vim: override license to gpl3
(cherry picked from commit 7ef0a988d5)
2026-05-26 16:15:33 +00:00
Tomas Rivera
6723eb42c3 vimPlugins.vissort-vim: override license to vim
(cherry picked from commit f309ce4588)
2026-05-26 16:15:33 +00:00
Tomas Rivera
fd9e0e2a14 vimPlugins.vimshell: override license to mit
(cherry picked from commit 3b40d5becf)
2026-05-26 16:15:32 +00:00
Tomas Rivera
594a718819 vimPlugins.vimproc: override license to mit
(cherry picked from commit 703533c4d0)
2026-05-26 16:15:32 +00:00
Tomas Rivera
221d3819c1 vimPlugins.vim-yapf: override license to mit
(cherry picked from commit ff849b47d7)
2026-05-26 16:15:32 +00:00
Tomas Rivera
327f16f847 vimPlugins.vim-visualstar: override license to zlib
(cherry picked from commit 957df4c1fd)
2026-05-26 16:15:32 +00:00
Tomas Rivera
0e0ca99858 vimPlugins.vim-twiggy: override license to vim
(cherry picked from commit fd7fdb5d60)
2026-05-26 16:15:32 +00:00
Tomas Rivera
4f17aa01c1 vimPlugins.vim-textobj-line: override license to mit
(cherry picked from commit 58a6464a06)
2026-05-26 16:15:30 +00:00
Tomas Rivera
c34b067aa1 vimPlugins.vim-textobj-function: override license to mit
(cherry picked from commit 2c49f42734)
2026-05-26 16:15:30 +00:00
Tomas Rivera
454271cb7d vimPlugins.vim-textobj-entire: override license to mit
(cherry picked from commit e614f45602)
2026-05-26 16:15:30 +00:00
Tomas Rivera
153866bfe2 vimPlugins.vim-textobj-comment: override license to vim
(cherry picked from commit 4a2a31be6b)
2026-05-26 16:15:29 +00:00
Tomas Rivera
0f2774f80a vimPlugins.vim-tabpagecd: override license to mit
(cherry picked from commit f2104cf035)
2026-05-26 16:15:29 +00:00
Tomas Rivera
52ddaa37a1 vimPlugins.vim-smalls: override license to cc-by-30
(cherry picked from commit 6db2e797b3)
2026-05-26 16:15:29 +00:00
Tomas Rivera
3a5811a964 vimPlugins.vim-prosession: override license to vim
(cherry picked from commit 442f053c36)
2026-05-26 16:15:29 +00:00
Tomas Rivera
b3720aa01e vimPlugins.vim-printer: override license to mit
(cherry picked from commit 7da58fee8a)
2026-05-26 16:15:29 +00:00
Tomas Rivera
30dbdee6e3 vimPlugins.vim-prettyprint: override license to zlib
(cherry picked from commit 3a2483f383)
2026-05-26 16:15:29 +00:00
Tomas Rivera
902d19f7e2 vimPlugins.vim-pony: override license to vim
(cherry picked from commit a163063ad8)
2026-05-26 16:15:28 +00:00
Tomas Rivera
1948b0d114 vimPlugins.vim-operator-user: override license to mit
(cherry picked from commit f6d9adccdb)
2026-05-26 16:15:28 +00:00
Tomas Rivera
87070ced98 vimPlugins.vim-operator-replace: override license to mit
(cherry picked from commit 47997d7dcb)
2026-05-26 16:15:28 +00:00
Tomas Rivera
4ac7d8e47e vimPlugins.vim-opencl: override license to gpl3
(cherry picked from commit c8c8d60f48)
2026-05-26 16:15:28 +00:00
Tomas Rivera
36582c3341 vimPlugins.vim-niceblock: override license to mit
(cherry picked from commit 62fa4468e8)
2026-05-26 16:15:28 +00:00
Tomas Rivera
5fa68180ec vimPlugins.vim-merginal: override license to vim
(cherry picked from commit 83bd698316)
2026-05-26 16:15:28 +00:00
Tomas Rivera
fa3884c0e3 vimPlugins.vim-lion: override license to vim
(cherry picked from commit 9fff3287e3)
2026-05-26 16:15:27 +00:00
Tomas Rivera
5aa0e33e6f vimPlugins.vim-hybrid: override license to mit
(cherry picked from commit f4a445fd55)
2026-05-26 16:15:27 +00:00
Tomas Rivera
2ae8f80a7a vimPlugins.vim-hexokinase: override license to vim
(cherry picked from commit 47c7e68783)
2026-05-26 16:15:27 +00:00
Tomas Rivera
53d282aed5 vimPlugins.vim-habamax: override license to vim
(cherry picked from commit 145eb1d9ab)
2026-05-26 16:15:27 +00:00
Tomas Rivera
d54f68253a vimPlugins.vim-ft-diff_fold: override license to zlib
(cherry picked from commit 5cb146875d)
2026-05-26 16:15:27 +00:00
Tomas Rivera
7b304d5b29 vimPlugins.vim-fold-cycle: override license to wtfpl
(cherry picked from commit 2bd1692f73)
2026-05-26 16:15:26 +00:00
Tomas Rivera
a175342a9f vimPlugins.vim-figlet: override license to vim
(cherry picked from commit 64dfacf9d2)
2026-05-26 16:15:26 +00:00
Tomas Rivera
bf51a9c2de vimPlugins.vim-erlang-runtime: override license to vim
(cherry picked from commit 8d64e0c04b)
2026-05-26 16:15:26 +00:00
Tomas Rivera
27a614a5ce vimPlugins.vim-erlang-compiler: override license to vim
(cherry picked from commit c16bac4237)
2026-05-26 16:15:26 +00:00
Tomas Rivera
1b5b4b0404 vimPlugins.vim-emoji: override license to mit
(cherry picked from commit 9ea141de0a)
2026-05-26 16:15:26 +00:00
Tomas Rivera
dda7625e77 vimPlugins.vim-diminactive: override license to publicDomain
(cherry picked from commit 0986bf8b8b)
2026-05-26 16:15:25 +00:00
Tomas Rivera
34bec04d13 vimPlugins.verilog_systemverilog-vim: override license to vim
(cherry picked from commit 837a718f74)
2026-05-26 16:15:25 +00:00
Tomas Rivera
b9f5c1e419 vimPlugins.todo-txt-vim: override license to vim
(cherry picked from commit a26b51d0b5)
2026-05-26 16:15:25 +00:00
Tomas Rivera
31ff1cf723 vimPlugins.timestamp-vim: override license to publicDomain
(cherry picked from commit 29699948ed)
2026-05-26 16:15:25 +00:00
Tomas Rivera
cf7b308a25 vimPlugins.tabpagebuffer-vim: override license to mit
(cherry picked from commit facbb57b41)
2026-05-26 16:15:25 +00:00
Tomas Rivera
b5b6f0ccb0 vimPlugins.tabmerge: override license to vim
(cherry picked from commit 118d5e7dcc)
2026-05-26 16:15:25 +00:00
Tomas Rivera
27bc1e0a1f vimPlugins.starrynight: override license to vim
(cherry picked from commit c017dcacde)
2026-05-26 16:15:24 +00:00
Tomas Rivera
f39f6df443 vimPlugins.vim-snipmate: override license to mit
(cherry picked from commit 5faa6c918f)
2026-05-26 16:15:24 +00:00
Tomas Rivera
deec732956 vimPlugins.readline-vim: override license to vim
(cherry picked from commit 977ca5dbf0)
2026-05-26 16:15:24 +00:00
Tomas Rivera
b9419538ef vimPlugins.quickfixstatus: override license to vim
(cherry picked from commit 4cebc42211)
2026-05-26 16:15:24 +00:00
Tomas Rivera
760ee4df33 vimPlugins.pgsql-vim: override license to vim
(cherry picked from commit 7bb5f4bdb2)
2026-05-26 16:15:24 +00:00
Tomas Rivera
def8ae4d4a vimPlugins.omnisharp-extended-lsp-nvim: override license to mit
(cherry picked from commit 779153e128)
2026-05-26 16:15:23 +00:00
Tomas Rivera
3f06aa825f vimPlugins.neotest-vitest: override license to mit
(cherry picked from commit 691565623e)
2026-05-26 16:15:23 +00:00
Tomas Rivera
836b59c280 vimPlugins.neotest-mocha: override license to mit
(cherry picked from commit 97f2b66930)
2026-05-26 16:15:23 +00:00
Tomas Rivera
39dfa7bc79 vimPlugins.neocomplete-vim: override license to mit
(cherry picked from commit 1efe8904c1)
2026-05-26 16:15:23 +00:00
Tomas Rivera
0e8b8ecf89 vimPlugins.ncm2-dictionary: override license to mit
(cherry picked from commit ad7d3d25f3)
2026-05-26 16:15:23 +00:00
Tomas Rivera
9699ff7370 vimPlugins.moonscript-vim: override license to wtfpl
(cherry picked from commit 6c46f6888e)
2026-05-26 16:15:22 +00:00
Tomas Rivera
bfd65e9a21 vimPlugins.mark-radar-nvim: override license to mit
(cherry picked from commit 8d887b6a5b)
2026-05-26 16:15:22 +00:00
Tomas Rivera
bb0550d2a4 vimPlugins.lsp-rooter-nvim: override license to wtfpl
(cherry picked from commit 5d4f4c0658)
2026-05-26 16:15:22 +00:00
Tomas Rivera
1730cf98dc vimPlugins.litee-nvim: override license to mit
(cherry picked from commit e3e98c2665)
2026-05-26 16:15:22 +00:00
Tomas Rivera
45ce5b1fba vimPlugins.litee-symboltree-nvim: override license to mit
(cherry picked from commit 0d69d3c60c)
2026-05-26 16:15:22 +00:00
Tomas Rivera
bc68793f57 vimPlugins.litee-filetree-nvim: override license to mit
(cherry picked from commit 8bca764646)
2026-05-26 16:15:22 +00:00
Tomas Rivera
0521704373 vimPlugins.litee-calltree-nvim: override license to mit
(cherry picked from commit c5d95d363b)
2026-05-26 16:15:22 +00:00
Tomas Rivera
087e5b630c vimPlugins.lf-vim: override license to mit
(cherry picked from commit 05027049aa)
2026-05-26 16:15:22 +00:00
Tomas Rivera
4e6aad3d71 vimPlugins.lexima-vim: override license to mit
(cherry picked from commit 1a5d93caf8)
2026-05-26 16:15:21 +00:00
Tomas Rivera
80b58151da vimPlugins.jellybeans-vim: override license to mit
(cherry picked from commit 30351ec6da)
2026-05-26 16:15:21 +00:00
Tomas Rivera
6c61841def vimPlugins.jdaddy-vim: override license to vim
(cherry picked from commit fc75d42bfd)
2026-05-26 16:15:21 +00:00
Tomas Rivera
54b9bb7668 vimPlugins.iosvkem: override license to publicDomain
(cherry picked from commit 0ef2a0b1f5)
2026-05-26 16:15:21 +00:00
Tomas Rivera
a34b19c925 vimPlugins.incsearch-easymotion-vim: override license to mit
(cherry picked from commit 386031652e)
2026-05-26 16:15:21 +00:00
Tomas Rivera
d53d306c0a vimPlugins.hoon-vim: override license to publicDomain
(cherry picked from commit 8104ddb8e8)
2026-05-26 16:15:21 +00:00
Tomas Rivera
3a75bdbb4a vimPlugins.gv-vim: override license to mit
(cherry picked from commit 1ac892e186)
2026-05-26 16:15:21 +00:00
Tomas Rivera
140b61c984 vimPlugins.gitv: override license to vim
(cherry picked from commit 648574de41)
2026-05-26 16:15:21 +00:00
Tomas Rivera
66d1276b57 vimPlugins.colorizer: override license to vim
(cherry picked from commit e76e02bb6e)
2026-05-26 16:15:20 +00:00
Tomas Rivera
8e1367a936 vimPlugins.caw-vim: override license to bsd3
(cherry picked from commit cb95e464bd)
2026-05-26 16:15:20 +00:00
Tomas Rivera
845e295cdd vimPlugins.bclose-vim: override license to cc-by-sa-30
(cherry picked from commit bc6284f24b)
2026-05-26 16:15:20 +00:00
Tomas Rivera
682104475a vimPlugins.VimOrganizer: override license to vim
(cherry picked from commit 787f81f741)
2026-05-26 16:15:20 +00:00
Tomas Rivera
c763e2327a vimPlugins.Rename: override license to vim
(cherry picked from commit 5745e286e3)
2026-05-26 16:15:20 +00:00
Tomas Rivera
b1ec51efd8 vimPlugins.QFEnter: override license to mit
(cherry picked from commit 059d94688e)
2026-05-26 16:15:20 +00:00
Tomas Rivera
9b8e0b12cd vimPlugins.PreserveNoEOL: override license to vim
(cherry picked from commit 20207d3425)
2026-05-26 16:15:20 +00:00
Tomas Rivera
e96bdf6ed7 vimPlugins.NotebookNavigator-nvim: override license to mit
(cherry picked from commit b339489e22)
2026-05-26 16:15:20 +00:00
Tomas Rivera
ed88353018 vimPlugins.Improved-AnsiEsc: override license to vim
(cherry picked from commit 6be5e086b4)
2026-05-26 16:15:19 +00:00
Tomas Rivera
21135470b4 vimPlugins.Colour-Sampler-Pack: override license to publicDomain
(cherry picked from commit 5439dad0c7)
2026-05-26 16:15:19 +00:00
Tomas Rivera
b2a1d9207d vimPlugins.BufOnly-vim: override license to vim
(cherry picked from commit ea41e18f56)
2026-05-26 16:15:19 +00:00
TomaSajt
ccba28dd47 jitsi-meet-electron: 2025.2.0 -> 2026.5.0
(cherry picked from commit e4c536d0c7)
2026-05-26 16:00:21 +00:00
Mauricio Collares
323dfd4232 [Backport release-26.05] sage: 10.7 -> 10.9 (#524477) 2026-05-26 15:56:53 +00:00
R. Ryantm
d9ec6a3f24 gitoxide: 0.53.0 -> 0.54.0
(cherry picked from commit 1aac3e5113)
2026-05-26 15:50:19 +00:00
Toma
4b2e906049 [Backport release-26.05] python3Packages.dep-logic: 0.5.2 -> 0.6.0 (#524476) 2026-05-26 15:21:56 +00:00
Mauricio Collares
cbe752c149 sage: 10.7 -> 10.9
(cherry picked from commit a4277219ac)
2026-05-26 15:11:00 +00:00
Mauricio Collares
89692a46b8 python313Packages.cypari2: 2.2.2 -> 2.2.4
(cherry picked from commit 166e16038c)
2026-05-26 15:11:00 +00:00
Mauricio Collares
89f482e666 giac: 1.9.0-993 -> 2.0.0-19
(cherry picked from commit a0b58af6d0)
2026-05-26 15:10:59 +00:00
Mauricio Collares
04de8ffd1d libbraiding: 1.3.1 -> 1.3.2
(cherry picked from commit ed9839c27a)
2026-05-26 15:10:59 +00:00
R. Ryantm
1b0a83cc7d python3Packages.dep-logic: 0.5.2 -> 0.6.0
(cherry picked from commit daed87fd04)
2026-05-26 15:09:53 +00:00
dram
331eb8035d [Backport release-26.05] Revert "nixos/security: warn if wrappers are disabled and wrappers are defined" (#524472) 2026-05-26 15:04:55 +00:00
dram
e9413dda55 Revert "nixos/security: warn if wrappers are disabled and wrappers are defined"
(cherry picked from commit 42de2da71a)
2026-05-26 14:59:37 +00:00
Sergei Trofimovich
a4464ae19c libffi_3_3: fix gcc-15 build
Without the chnage the build fails in `master` as
https://hydra.nixos.org/build/329329821:

```
FAIL: libffi.call/va_struct2.c -W -Wall -Wno-psabi -O0 (test for excess errors)
FAIL: libffi.call/va_struct2.c -W -Wall -Wno-psabi -O2 (test for excess errors)
FAIL: libffi.call/va_struct3.c -W -Wall -Wno-psabi -O0 (test for excess errors)
FAIL: libffi.call/va_struct3.c -W -Wall -Wno-psabi -O2 (test for excess errors)
```

ZHF: #516381
(cherry picked from commit bc58993f99)
2026-05-26 14:52:14 +00:00
yaya
081aca7aeb [Backport release-26.05] gitlab-runner: 18.11.2 -> 18.11.3 (#524433) 2026-05-26 14:50:52 +00:00
yaya
5f775d7ea3 [Backport release-26.05] sieve-editor-gui: Pin nodejs to nodejs22 (#524458) 2026-05-26 14:29:59 +00:00
zowoq
dab389d7b6 pkgs/stdenv/freebsd: update x86_64-unknown-freebsd bootstrap-files
sha256sum of files to be uploaded:

$ sha256sum /nix/store/9hjgqrmhvny7fxg90w8j7d97f7ny8l8w-build/on-server/*
27ed036ed3e7c58cf0637f8f09d1abe986250b3c373afe44328c48d36aecfbd5  /nix/store/9hjgqrmhvny7fxg90w8j7d97f7ny8l8w-build/on-server/bootstrap-tools.tar.xz
89428a0d543e25f14b0529d17309a426d30a312d5f5db512a5218a3ffc18e52f  /nix/store/9hjgqrmhvny7fxg90w8j7d97f7ny8l8w-build/on-server/unpack.nar.xz

Suggested commands to upload files to 'tarballs.nixos.org':

    $ nix-store --realize /nix/store/9hjgqrmhvny7fxg90w8j7d97f7ny8l8w-build
    $ aws s3 cp --recursive --acl public-read /nix/store/9hjgqrmhvny7fxg90w8j7d97f7ny8l8w-build/on-server/ s3://nixpkgs-tarballs/stdenv/x86_64-unknown-freebsd/87c888eedeced2c577b21a86b5bce79b3067ab20
    $ aws s3 cp --recursive s3://nixpkgs-tarballs/stdenv/x86_64-unknown-freebsd/87c888eedeced2c577b21a86b5bce79b3067ab20 ./
    $ sha256sum bootstrap-tools.tar.xz unpack.nar.xz
    $ sha256sum /nix/store/9hjgqrmhvny7fxg90w8j7d97f7ny8l8w-build/on-server/*

(cherry picked from commit 4ed8c15708)
2026-05-26 14:25:53 +00:00
Felix Leitz
b2eada3a05 sieve-editor-gui: Pin nodejs to nodejs22
Co-authored-by: Gergő Gutyina <gutyina.gergo.2@gmail.com>
(cherry picked from commit 2b76436a65)
2026-05-26 14:18:59 +00:00
George Shammas
6a1ecb18ab nixos/containers: fix default gateway with privateNetwork (v2)
The fix in #523016 fixes an issue with the default gateway, however it
does so by unconditionally defining `networking.interfaces.eth0`. This
makes so if you had other methods of defining the addresses for eth0,
those now get blanked out.

Instead, move the logic around so we only define
networking.interfaces.eth0 if we really have to.

(cherry picked from commit 217d834eb9)
2026-05-26 13:27:50 +00:00
nixpkgs-ci[bot]
09d2088fea [Backport release-26.05] vivaldi: 8.0.4033.26 -> 8.0.4033.34 (#524377) 2026-05-26 13:23:11 +00:00
naurissteins
9929c7e9e4 veila: init at 0.4.0
(cherry picked from commit a429079627)
2026-05-26 13:09:44 +00:00
naurissteins
612cc9ae5e maintainers: add naurissteins
(cherry picked from commit 8587780260)
2026-05-26 13:09:44 +00:00
Felix Bargfeldt
d84405d974 [Backport release-26.05] clorinde: 1.4.1 -> 2.0.0 (#524406) 2026-05-26 13:03:38 +00:00
yaya
68a93745d3 gitlab-runner: add meta.changelog
(cherry picked from commit 1309675d1c)
2026-05-26 12:56:44 +00:00
yaya
d0444f46f9 gitlab-runner: 18.11.2 -> 18.11.3
- Changelog: https://gitlab.com/gitlab-org/gitlab-runner/blob/v18.11.3/CHANGELOG.md
- Diff: https://gitlab.com/gitlab-org/gitlab-runner/-/compare/v18.11.2...v18.11.3

(cherry picked from commit 0050e4fdae)
2026-05-26 12:56:44 +00:00
Maximilian Bosch
6aeccf8562 roundcube: 1.7.0 -> 1.7.1
ChangeLog: https://github.com/roundcube/roundcubemail/releases/tag/1.7.1
(cherry picked from commit fde782a9eb)
2026-05-26 12:56:22 +00:00
R. Ryantm
887789e977 clorinde: 1.4.1 -> 2.0.0
(cherry picked from commit 955fec5622)
2026-05-26 10:33:29 +00:00
Felix Bargfeldt
cb6554026c [Backport release-26.05] zipline: 4.6.0 -> 4.6.1 (#524255) 2026-05-26 10:12:26 +00:00
R. Ryantm
149e7fb745 vivaldi: 8.0.4033.26 -> 8.0.4033.34
(cherry picked from commit 522ef4b01c)
2026-05-26 09:34:37 +00:00
nixpkgs-ci[bot]
8b2a452dd5 [Backport release-26.05] gelly: 1.1.2 -> 1.3.0 (#524370) 2026-05-26 09:28:39 +00:00
André Silva
231c6d79dd [Backport release-26.05] qbittorrent-nox: 5.2.0 -> 5.2.1 (#524346) 2026-05-26 09:14:30 +00:00
R. Ryantm
bbb918b1f6 gelly: 1.1.2 -> 1.3.0
(cherry picked from commit 13e00792bc)
2026-05-26 09:04:20 +00:00
Michal Koutenský
5619af9d05 doc/rl-2605: add a note about recommended gonic library rescan
(cherry picked from commit cdb7b3d592)
2026-05-26 08:28:12 +00:00
Michal Koutenský
3c8909d356 gonic: use finalAttrs
(cherry picked from commit 738acf24b8)
2026-05-26 08:28:12 +00:00
Michal Koutenský
9e111f94a8 gonic: 0.20.1 -> 0.21.0
(cherry picked from commit 3b042d8236)
2026-05-26 08:28:12 +00:00
Vincent Laporte
52463989a1 [Backport release-26.05] ocamlPackages.iri: 1.1.0 -> 1.2.0 (#524328) 2026-05-26 08:11:12 +00:00
Vincent Laporte
4d63832378 [Backport release-26.05] cvc5: 1.3.3 → 1.3.4 (#524325) 2026-05-26 08:05:09 +00:00
R. Ryantm
4b19988c94 qbittorrent-nox: 5.2.0 -> 5.2.1
(cherry picked from commit 79d682bd41)
2026-05-26 07:36:13 +00:00
Martin Weinelt
5888ab115d [Backport release-26.05] Firefox: 151.0.1 -> 151.0.2 (#524337) 2026-05-26 06:57:20 +00:00
@mjones
ab905305b5 [Backport release-26.05] mattermost: add .patch files for user limit and banner removal (#524332) 2026-05-26 06:54:20 +00:00
Martin Weinelt
4df567a2f1 firefox-bin-unwrapped: 151.0.1 -> 151.0.2
https://www.firefox.com/en-US/firefox/151.0.2/releasenotes/
(cherry picked from commit a8ec6de44b)
2026-05-26 06:48:43 +00:00
Martin Weinelt
b997463fc2 firefox-unwrapped: 151.0.1 -> 151.0.2
https://www.firefox.com/en-US/firefox/151.0.2/releasenotes/
(cherry picked from commit 1c2cf917ce)
2026-05-26 06:48:43 +00:00
Morgan Jones
11e32c793e nixos/mattermost: add v11 user limit changes to release notes
(cherry picked from commit 9ea1835918)
2026-05-26 06:39:00 +00:00
jose
f009f2d3a9 mattermost: add patches for user limit and banner removal
(cherry picked from commit fc9f1c91b2)
2026-05-26 06:39:00 +00:00
R. Ryantm
7e41cf4173 ocamlPackages.iri: 1.1.0 -> 1.2.0
(cherry picked from commit 365964046e)
2026-05-26 06:12:02 +00:00
Jenny
0c739c2565 [Backport release-26.05] librenms: 26.3.1 -> 26.5.1 (#524209) 2026-05-26 06:05:34 +00:00
Vincent Laporte
c57fe4bc08 cvc5: 1.3.3 → 1.3.4
symfpu: 0-unstable-2019-05-17 → 1.2.0-unstable-2026-05-13
(cherry picked from commit 2748725328)
2026-05-26 05:58:52 +00:00
Vincent Laporte
f7b9110ef4 [Backport release-26.05] ocamlPackages.caqti: 2.2.4 -> 2.3.1 (#524305) 2026-05-26 05:03:52 +00:00
Shelvacu
106b28babf losslesscut: init at 3.68.0
(cherry picked from commit 9812036e85)
2026-05-26 05:01:19 +00:00
nixpkgs-ci[bot]
1941fa2ce5 [Backport release-26.05] shogihome: 1.27.2 -> 1.27.3 (#524294) 2026-05-26 05:00:55 +00:00
nixpkgs-ci[bot]
4ae09cbfdd [Backport release-26.05] fluxcd-operator: 0.48.0 -> 0.49.0 (#524270) 2026-05-26 05:00:49 +00:00
Vincent Laporte
2ad81b95e9 [Backport release-26.05] ocamlPackages.awa: 0.5.2 -> 0.6.0 (#524306) 2026-05-26 04:53:48 +00:00
Vincent Laporte
41d5cd7e7e [Backport release-26.05] gajim: fix spell checking (#524304) 2026-05-26 04:44:45 +00:00
Vincent Laporte
fec5bcf841 ocamlPackages.awa: 0.5.2 → 0.6.0
(cherry picked from commit dd22c1adea)
2026-05-26 04:13:21 +00:00
R. Ryantm
a090168385 ocamlPackages.caqti: 2.2.4 -> 2.3.1
(cherry picked from commit 242ddaf0de)
2026-05-26 04:13:15 +00:00
haansn08
6ecc9c6467 gajim: fix spell checking
Gajim switched from gspell to libspelling for spell checking

(cherry picked from commit 5bba640bac)
2026-05-26 04:11:35 +00:00
R. Ryantm
b3277c7dcc shogihome: 1.27.2 -> 1.27.3
(cherry picked from commit 086e5644a0)
2026-05-26 03:39:12 +00:00
Michael Daniels
9e008ca2a4 [Backport release-26.05] maintainers: remove dsferruzza (#523965) 2026-05-26 01:42:31 +00:00
Michael Daniels
362844e8d7 [Backport release-26.05] maintainers: remove ciil (#523960) 2026-05-26 01:42:00 +00:00
Michael Daniels
5447a68e1c [Backport release-26.05] workflows: migrate from app-id to client-id (#524272) 2026-05-26 01:31:27 +00:00
Martin Weinelt
36d3b814e6 workflows: migrate from app-id to client-id
See https://github.com/actions/create-github-app-token/releases/tag/v3.1.0.

(cherry picked from commit 1cf127e528)
2026-05-26 01:27:20 +00:00
R. Ryantm
a4e57357d6 fluxcd-operator: 0.48.0 -> 0.49.0
(cherry picked from commit c4a8a1cd04)
2026-05-26 01:26:13 +00:00
Michael Daniels
07be792e52 [Backport release-26.05] fwts: link against zlib (#524135) 2026-05-26 01:23:48 +00:00
nixpkgs-ci[bot]
bf8cc53bb8 [Backport release-26.05] fluxcd-operator-mcp: 0.48.0 -> 0.50.0 (#524258) 2026-05-26 01:20:41 +00:00
Martin Weinelt
f587b4798a [Backport release-26.05] radvd: 2.20 -> 2.21 (#524256) 2026-05-26 00:23:36 +00:00
R. Ryantm
11169ea95f fluxcd-operator-mcp: 0.48.0 -> 0.50.0
(cherry picked from commit eadab7eb4e)
2026-05-26 00:23:10 +00:00
Martin Weinelt
e9181fae4e radvd: 2.20 -> 2.21
https://github.com/radvd-project/radvd/blob/refs/tags/v2.21/CHANGES

Fixes: CVE-2026-48715
(cherry picked from commit 161ac6ef6b)
2026-05-26 00:18:49 +00:00
nixpkgs-ci[bot]
26976edf65 [Backport release-26.05] fluxcd: 2.8.7 -> 2.8.8 (#524253) 2026-05-26 00:17:31 +00:00
R. Ryantm
18fc9349b7 zipline: 4.6.0 -> 4.6.1
(cherry picked from commit 7e694d8797)
2026-05-26 00:14:48 +00:00
R. Ryantm
bb58603cf8 fluxcd: 2.8.7 -> 2.8.8
(cherry picked from commit e1ea2e5ee3)
2026-05-26 00:01:24 +00:00
Yohann Boniface
c4d62d97d1 [Backport release-26.05] python3Packages.qtile{,-extras}: 0.35.0 -> 0.36.0 (#524246) 2026-05-25 23:54:53 +00:00
Sigmanificient
c0ff8c5ea5 python3Packages.qtile-extras: 0.35.0 -> 0.36.0
(cherry picked from commit f69ebe0945)
2026-05-25 23:50:09 +00:00
Sigmanificient
e713b4f218 python3Packages.qtile: add meta.changelog
(cherry picked from commit 83b8ff5ad3)
2026-05-25 23:50:08 +00:00
Sigmanificient
e8b485c354 python3Packages.qtile: add pytest-rerunfailures
(cherry picked from commit e25a46d54d)
2026-05-25 23:50:08 +00:00
Sigmanificient
27c6fb79cf python3Packages.qtile: 0.35.0 -> 0.36.0
(cherry picked from commit 6caca57e47)
2026-05-25 23:50:08 +00:00
@mjones
14bd57aedd [Backport release-26.05] dfhack: move env variables into env for structuredAttrs (#524238) 2026-05-25 23:30:05 +00:00
@mjones
c14d877ac6 [Backport release-26.05] androidStudioPackages.beta: 2025.3.4.5 -> 2026.1.1.6 (#524239) 2026-05-25 23:29:42 +00:00
Martin Weinelt
7f7385c363 [Backport release-26.05] nixos/lix: load tun kmod for pasta (#524227) 2026-05-25 23:27:26 +00:00
R. Ryantm
c1b5ed33c8 androidStudioPackages.beta: 2025.3.4.5 -> 2026.1.1.6
(cherry picked from commit d3cb5d71c2)
2026-05-25 23:17:06 +00:00
Morgan Jones
cbe69277cf dfhack: fix hash
The provided hash was for -r1, not -r2, which didn't work if you didn't
have a FOD cached.

(cherry picked from commit 12272aedde)
2026-05-25 23:17:04 +00:00
Stefan Frijters
55f0fdf30b dfhack: move env variables into env for structuredAttrs
(cherry picked from commit b58a49e4e4)
2026-05-25 23:17:03 +00:00
Sam Estep
8897ef8dfb acl2-minimal: fix aarch64-linux build
Assisted-by: Codex:gpt-5.5
(cherry picked from commit 2eb11ad6be)
2026-05-25 22:57:27 +00:00
Sandro
636542dce1 [Backport release-26.05] nextcloud-notify_push: 1.3.1 -> 1.3.3 (#523944) 2026-05-25 22:51:28 +00:00
Ryan Burns
cec5ecbe39 gdb: fix mainProgram for cross
This fixes the versionCheckHook, allowing
us to build for non-native target arches.

(cherry picked from commit 3e2c7006a7)
2026-05-25 22:51:27 +00:00
Thomas Butter
ca57ca7d33 alliance: unbreak
(cherry picked from commit a2e94ff957)
2026-05-25 22:47:20 +00:00
Martin Weinelt
abae498e43 nixos/lix: load tun kmod for pasta
With kernel lockdown the tun kmod is not necessarily available in stage2,
but Lix dependes on it through pasta.

nix-daemon[682677]: remote pid 682659 is user build (trusted)
nix-daemon[682711]: Failed to open() /dev/net/tun: No such device
nix-daemon[682702]: Failed to set up tap device in namespace

(cherry picked from commit 34fbf0285a)
2026-05-25 22:47:20 +00:00
Sandro
f0ddca605d [Backport release-26.05] python3Packages.openrazer: 3.12.2 -> 3.12.3 (#524105) 2026-05-25 22:28:29 +00:00
Martin Weinelt
b85031e3b9 [Backport release-26.05] python3Packages.voluptuous-stubs: migrate to pyproject (#524216) 2026-05-25 22:18:08 +00:00
Vincenzo Mantova
e25f81495e blahtexml: change --replace into --replace-fail
(cherry picked from commit 72b5b9ee5c)
2026-05-25 22:16:28 +00:00
Vincenzo Mantova
093a53d7ad blahtexml: build with texliveBasic instead of texliveFull
(cherry picked from commit 8a3fcf9c9e)
2026-05-25 22:16:28 +00:00
Vincenzo Mantova
14e686e1c3 blahtexml: ensure xsltproc is available during build
(cherry picked from commit 0370b27ebb)
2026-05-25 22:16:28 +00:00
R. Ryantm
7aa3948eab dropbear: 2025.89 -> 2026.91
(cherry picked from commit 3befc22a1f)
2026-05-25 22:05:35 +00:00
SkohTV
f8290a6360 python3Packages.voluptuous-stubs: modernize
(cherry picked from commit 36b5a88fc0)
2026-05-25 22:03:37 +00:00
SkohTV
1bfa2844d7 python3Packages.voluptuous-stubs: migrate to pyproject
(cherry picked from commit 9994343799)
2026-05-25 22:03:37 +00:00
Gliczy
8a727e5615 python3Packages.fvs: drop
(cherry picked from commit 450da25909)
2026-05-25 21:48:38 +00:00
Gliczy
b74795eb8c bottles-unwrapped: add fvs2
(cherry picked from commit b528953e93)
2026-05-25 21:48:38 +00:00
Gliczy
1713d3aa03 fvs2: init at 0.1.5
(cherry picked from commit ac41d890a9)
2026-05-25 21:48:38 +00:00
Jennifer Graul
06faf434dd librenms: 26.3.1 -> 26.5.1
(cherry picked from commit 8af543b74b)
2026-05-25 21:41:33 +00:00
hellwolf
94e656c187 python313Packages.eth-utils: fix build
- tests/core/functional-utils/test_type_inference.py

(cherry picked from commit 69a1cd8199)
2026-05-25 21:18:24 +00:00
Pol Dellaiera
3bf9dfe2ea [Backport release-26.05] mago: 1.23.0 -> 1.29.0 (#524187) 2026-05-25 21:14:36 +00:00
Martin Häcker
dde36afcea fence: remove development only tool from bin
(cherry picked from commit a5c63ea729)
2026-05-25 21:02:20 +00:00
R. Ryantm
89f35aab25 mago: 1.23.0 -> 1.29.0
(cherry picked from commit a2f0aea9bd)
2026-05-25 20:41:49 +00:00
Michael Daniels
5ee9ad1b7c [Backport release-26.05] rlottie: fix build on darwin (#524176) 2026-05-25 20:31:49 +00:00
Mathis Antony
a778ae0abd rlottie: fix build on darwin
(cherry picked from commit 890d046e97)
2026-05-25 20:24:28 +00:00
Michael Daniels
4d9189447a [Backport release-26.05] simgrid: fix build with pybind11 3.x (#524165) 2026-05-25 20:23:38 +00:00
Michael Daniels
65ab15fdd5 [Backport release-26.05] nixos/tests/vsftpd: enable vsftpd pam service (#524171) 2026-05-25 20:23:22 +00:00
Peder Bergebakken Sundt
196fe731e7 [Backport release-26.05] cccc: unbreak on GCC 15, 3.1.4 -> 3.2.0 (#524045) 2026-05-25 20:21:14 +00:00
Philippe Hürlimann
f6ebec3edc nixos/tests/vsftpd: enable vsftpd pam service to fix/workaround 5aa9012 regression
(cherry picked from commit 4fc18e6255)
2026-05-25 20:17:02 +00:00
Michael Daniels
0936562f09 [Backport release-26.05] nixos/vsftpd: release note PAM regression (#524166) 2026-05-25 19:58:10 +00:00
Adam Dinwoodie
612a2e73cf nixos/vsftpd: release note PAM regression
Commit 5aa9012bb3 (nixos: replace 'text' with structured PAM rules
(#420889), 2026-04-14) resulted in the vsftpd module no longer creating
a PAM module, and therefore configurations relying on `cfg.localUsers`
stopped permitting logins unless the PAM module was being set up by
other configuration.

In the absence of a better fix, document this change of behaviour as a
regression. Per the discussion at [0], provide a mechanims to restore
the previous behaviour, but with the caveat that this may be insecure.
I'd prefer more useful advice, but if I had a better understanding of
NixOS's PAM configuration and how it interacts with vsftpd, I'd just be
providing the better fix in the first place.

[0]: https://github.com/NixOS/nixpkgs/issues/515531#issuecomment-4367747991

(cherry picked from commit 93699b88a5)
2026-05-25 19:53:27 +00:00
Harinn
04e78b4065 simgrid: fix build with pybind11 3.x
(cherry picked from commit e1467260b6)
2026-05-25 19:51:47 +00:00
Michael Daniels
8e5c732a6c [Backport release-26.05] rubyPackages.glib2: 4.3.3 -> 4.3.6 (#524148) 2026-05-25 19:37:36 +00:00
Michael Daniels
49943a6043 [Backport release-26.05] python3Packages.eth-utils: disable failing typing tests (#524147) 2026-05-25 19:37:25 +00:00
Michael Daniels
375a836bdb [Backport release-26.05] python3Packages.sqlalchemy-continuum: drop sqlalchemy-{i18n,utils} removed in 1.5.x (#524155) 2026-05-25 19:30:49 +00:00
Michael Daniels
da778ea3df [Backport release-26.05] applgrid: fix Linux build (#524149) 2026-05-25 19:30:24 +00:00
Marc Jakobi
88e7af78ca [Backport release-26.05] luaPackages.lgi: Backport fix for GLib 2.88 (#524145) 2026-05-25 19:27:45 +00:00
Michael Daniels
91ff8d91dc [Backport release-26.05] corkscrew: fix build on Darwin (#524140) 2026-05-25 19:11:58 +00:00
Michael Daniels
763d6e189a [Backport release-26.05] shim-unsigned: fix build with binutils 2.46 (#524154) 2026-05-25 19:11:33 +00:00
Michael Daniels
6204830f7b [Backport release-26.05] git-run: regenerate package-lock.json for npm 11 (#524151) 2026-05-25 19:11:15 +00:00
Michael Daniels
db933900f0 [Backport release-26.05] python3Packages.sphinx-toolbox: relax ruamel.yaml and sphinx-tabs (#524142) 2026-05-25 19:11:06 +00:00
Michael Daniels
1d207fc18d [Backport release-26.05] python313Packages.coq-tools: fix build, modernize; python313Packages.subprocess4: init at 0.1.1 (#524141) 2026-05-25 19:10:46 +00:00
Michael Daniels
f06baa4b12 [Backport release-26.05] fauna-shell: fix build (#524134) 2026-05-25 19:03:36 +00:00
Michael Daniels
6a131d5e10 [Backport release-26.05] python3Packages.aspy-refactor-imports: drop (#524136) 2026-05-25 19:02:53 +00:00
Harinn
b7f6ae77f4 python3Packages.sqlalchemy-continuum: drop sqlalchemy-{i18n,utils} removed in 1.5.x
(cherry picked from commit 0c5ae31676)
2026-05-25 19:02:26 +00:00
Michael Daniels
b85bf0189f [Backport release-26.05] aw-notify: fix Darwin build (#524128) 2026-05-25 19:02:23 +00:00
Harinn
3ecffaa913 shim-unsigned: fix build with binutils 2.46
(cherry picked from commit 0ffae4a1de)
2026-05-25 19:02:13 +00:00
Michael Daniels
edb670c9a4 [Backport release-26.05] foonathan-memory: add patch to fix build on Darwin (#524132) 2026-05-25 19:00:57 +00:00
Michael Daniels
746bf9e72e [Backport release-26.05] nixosTests.pam-zfs-key: fix dataset mounting (#524130) 2026-05-25 19:00:34 +00:00
Michael Daniels
7141e726cf [Backport release-26.05] python3Packages.docstr-coverage: disable failing tests with click 8.3 (#524131) 2026-05-25 19:00:05 +00:00
Harinn
f352236954 git-run: regenerate package-lock.json for npm 11
(cherry picked from commit ffeed7553e)
2026-05-25 18:58:22 +00:00
Sam Estep
4c323a3a09 applgrid: fix aarch64-linux build
Assisted-by: Claude:opus-4.7
(cherry picked from commit bc93fb2af4)
2026-05-25 18:58:08 +00:00
Sam Estep
40b20ce2fe applgrid: fix build after root update
Assisted-by: Claude:opus-4.7
(cherry picked from commit 2977d737de)
2026-05-25 18:58:08 +00:00
Sam Estep
548109cb5c rubyPackages.glib2: 4.3.3 -> 4.3.6
Assisted-by: Claude:opus-4.7
(cherry picked from commit 4a4c0f5b9e)
2026-05-25 18:57:30 +00:00
Tom Hunze
5892eeb5c6 python3Packages.eth-utils: disable failing typing tests
Matching on mypy output is brittle.

Hydra: https://hydra.nixos.org/build/329150192
(cherry picked from commit d6c392b6f1)
2026-05-25 18:57:11 +00:00
benaryorg
7b47888eed luaPackages.lgi: Backport fix for GLib 2.88
This replaces the earlier 2.86 patch.
One may consider bumping the source to something newer than the 8 year old release, but that's out of scope for this fix.

Signed-off-by: benaryorg <binary@benary.org>
(cherry picked from commit 79f6dec101)
2026-05-25 18:54:08 +00:00
Robert Schaffar-Taurok
bfa198d3cb python3Packages.sphinx-toolbox: relax ruamel.yaml and sphinx-tabs
Assisted-by: OpenAI GPT 5.4
(cherry picked from commit a244258567)
2026-05-25 18:49:52 +00:00
Moraxyc
3ed77f6be2 python313Packages.coq-tools: 0.0.42 -> 0.0.44
(cherry picked from commit 0884eb6bab)
2026-05-25 18:49:24 +00:00
Moraxyc
efae21db94 python313Packages.coq-tools: switch to finalAttrs
(cherry picked from commit afa949fd3b)
2026-05-25 18:49:24 +00:00
Moraxyc
c7813fbe8c python313Packages.coq-tools: fix build
(cherry picked from commit a996ee27d5)
2026-05-25 18:49:24 +00:00
Moraxyc
161b8c8d92 python313Packages.subprocess4: init at 0.1.1
(cherry picked from commit a4b372b5f8)
2026-05-25 18:49:24 +00:00
Georgy Charkseliani
0cb195e653 corkscrew: fix build on Darwin
Define ANSI_FUNC so corkscrew uses ANSI C function definitions instead of legacy K&R definitions rejected by modern Clang/C23.

Assisted-by: OpenCode (openai/gpt-5.5)
(cherry picked from commit 47eb5f6f4d)
2026-05-25 18:49:22 +00:00
Michael Daniels
aac45e7c5d [Backport release-26.05] python3Packages.ipv8-rust-tunnels: enable pyo3 abi3 forward compat for python 3.14 (#524118) 2026-05-25 18:41:37 +00:00
Willy Hille
1f84a84fd8 python3Packages.aspy-refactor-imports: drop
upstream repo was renamed to classify-imports, which is already packaged in nixpkgs

(cherry picked from commit d59900aa17)
2026-05-25 18:41:33 +00:00
Harinn
50e9abd4d5 fwts: link against zlib
(cherry picked from commit e78b4e7f91)
2026-05-25 18:39:55 +00:00
Harinn
4ea4af20af fauna-shell: fix build
(cherry picked from commit 8b3e7a03b4)
2026-05-25 18:39:45 +00:00
Nicolas Benes
29824d0819 foonathan-memory: add patch to fix build on Darwin
(cherry picked from commit 1e0281f611)
2026-05-25 18:36:36 +00:00
Harinn
4e926c69c2 python3Packages.docstr-coverage: disable failing tests with click 8.3
(cherry picked from commit fe2096ee4b)
2026-05-25 18:34:50 +00:00
Shogo Takata
9ce5dd3a61 nixosTests.pam-zfs-key: fix dataset mounting
The test created ZFS datasets with canmount=noauto, but pam_zfs_key's
mount_dataset() now checks canmount == ZFS_CANMOUNT_ON and skips
mounting otherwise (added in
https://github.com/openzfs/zfs/commit/387ed5ca41). Use the default
canmount=on and unmount before unloading the key to compensate for
the auto-mount that happens when the key is loaded during creation.
This also silences the warning for forceImportRoot.

Assisted-by: opencode with DeepSeek V4 Flash Free
(cherry picked from commit 3fdfb983c7)
2026-05-25 18:34:49 +00:00
Sam Estep
61ea2bb237 aw-notify: fix Darwin build
Assisted-by: Codex:gpt-5.5
(cherry picked from commit f403883c2d)
2026-05-25 18:33:11 +00:00
Michael Daniels
71698205b8 [Backport release-26.05] python3Packages.psycopg2cffi: disable test_notify on python 3.13+ (#524117) 2026-05-25 18:30:58 +00:00
Florian Klink
9dde6d6888 [Backport release-26.05] lensfun: update lens database (#524109) 2026-05-25 18:07:39 +00:00
Harinn
1675be7358 python3Packages.ipv8-rust-tunnels: enable pyo3 abi3 forward compat for python 3.14
(cherry picked from commit 6674230b24)
2026-05-25 18:03:42 +00:00
Harinn
e35e0188ba python3Packages.psycopg2cffi: disable test_notify on python 3.13+
(cherry picked from commit b6a14fbf9f)
2026-05-25 18:00:56 +00:00
Michael Daniels
e94c35b322 [Backport release-26.05] monophony: drop quadradical from maintainers (#524113) 2026-05-25 17:46:39 +00:00
Michael Daniels
ec9eeb85c3 [Backport release-26.05] python3Packages.pytest-pylint: fix tests with newer pytest (#523868) 2026-05-25 17:45:28 +00:00
nixpkgs-ci[bot]
085b1395e9 [Backport release-26.05] adguardhome: 0.107.74 -> 0.107.76 (#524102) 2026-05-25 17:43:19 +00:00
Henry-Hiles
8d4f54dc55 monophony: drop quadradical from maintainers
(cherry picked from commit cb714a85ad)
2026-05-25 17:41:56 +00:00
teutat3s
7b5f224cf8 docker_25: 25.0.13 -> 25.0.16
https://github.com/moby/moby/milestone/212?closed=1
https://github.com/moby/moby/milestone/215?closed=1
https://github.com/moby/moby/milestone/237?closed=1

Upstream did not tag a new release for docker/cli, and there are no new
commits in the 25.0 branch:
43987fca48...25.0

https://github.com/moby/moby/compare/v25.0.13...v25.0.16
(cherry picked from commit ff2f4a4013)
2026-05-25 17:34:57 +00:00
James Connolly
6a5409cb98 lensfun: update lens database
also switches to the new `generate_db.py` script
this was done because the old `lensfun_convert_db_v2_to_v1.py` script has been
removed upstream and this is the new preferred method

additionally, this adds the optional `lensfunDatabases` argument which can be
used to override the lens database used when building the package

(cherry picked from commit f652ee5019)
2026-05-25 17:34:04 +00:00
arch-fan
8072d62389 python3Packages.openrazer: 3.12.2 -> 3.12.3
(cherry picked from commit 99643def59)
2026-05-25 17:13:27 +00:00
Alyssa Ross
82065d16f0 [Backport release-26.05] llvmPackages_git: 23.0.0-unstable-2026-05-17 -> 23.0.0-unstable-2026-… (#524086) 2026-05-25 17:13:15 +00:00
Michael Daniels
7fcb458a06 [Backport release-26.05] age-plugin-fido2prf: fix darwin build by patching hardcoded Homebrew paths (#523860) 2026-05-25 17:08:53 +00:00
R. Ryantm
a0d03c9ddc adguardhome: 0.107.74 -> 0.107.76
(cherry picked from commit 49b3abff50)
2026-05-25 17:05:24 +00:00
Michael Daniels
ee3f02e689 [Backport release-26.05] armTrustedFirmwareTools: include dtc and gcc in nativeBuildInputs to fix darwin build (#523866) 2026-05-25 16:45:50 +00:00
Michael Daniels
8d3fb58c90 [Backport release-26.05] python3Packages.bezier: unbreak on Darwin (#524087) 2026-05-25 16:45:01 +00:00
Michael Daniels
8f84d93eea [Backport release-26.05] akkoma-admin-fe: use cctools libtool on darwin to fix node-sass build (#523864) 2026-05-25 16:39:32 +00:00
Sandro Jäckel
4d87df77fe pihole: 6.4 -> 6.4.2
Changelog: https://github.com/pi-hole/pi-hole/releases/tag/v6.4.2
(cherry picked from commit e34409871f)
2026-05-25 16:21:20 +00:00
Sandro Jäckel
8ed0934a96 pihole: fix nix-update, move meta before passhtru
(cherry picked from commit 09594b5d07)
2026-05-25 16:21:20 +00:00
Michael Daniels
8d2eaa762a python3Packages.bezier: unbreak on Darwin
(cherry picked from commit 3bb9a2d4e5)
2026-05-25 16:16:05 +00:00
Tristan Ross
45aa6e3456 llvmPackages_git: 23.0.0-unstable-2026-05-17 -> 23.0.0-unstable-2026-05-24
(cherry picked from commit cf95967217)
2026-05-25 16:15:56 +00:00
Gaétan Lepage
88aeab524d [Backport release-26.05] invidious: unpin crystal version (#524053) 2026-05-25 16:00:03 +00:00
Alex Epelde
5cc04113ec invidious: unpin crystal version
(cherry picked from commit 85ff4f4eb1)
2026-05-25 14:58:14 +00:00
Adam C. Stephens
b8d260dd14 [Backport release-26.05] sabnzbd: 5.0.1 -> 5.0.3 (#524035) 2026-05-25 14:50:04 +00:00
André Silva
9b87281b89 [Backport release-26.05] easyeffects: 8.2.2 -> 8.2.4 (#524043) 2026-05-25 14:45:48 +00:00
Thomas Butter
29598a7627 cccc: 3.1.4 -> 3.2.0
(cherry picked from commit ddf6f37d4f)
2026-05-25 14:45:47 +00:00
André Silva
97b4b665f9 easyeffects: 8.2.2 -> 8.2.4
(cherry picked from commit 20680deac9)
2026-05-25 14:40:03 +00:00
R. Ryantm
59e94373e8 sabnzbd: 5.0.1 -> 5.0.3
(cherry picked from commit 28dae30fee)
2026-05-25 14:14:37 +00:00
nixpkgs-ci[bot]
67de202206 [Backport release-26.05] mystmd: 1.9.0 -> 1.9.1 (#523946) 2026-05-25 13:59:09 +00:00
André Silva
34bf125ce3 [Backport release-26.05] easyeffects: hide x42-plugins behind isx86 (#524022) 2026-05-25 13:48:46 +00:00
Sandro
01ba43d795 [Backport release-26.05] podofo{_1_0,}: remove wrong version from name (#520658) 2026-05-25 13:43:09 +00:00
Ingo Reitz
15e630ca35 easyeffects: hide x42-plugins behind isx86
(cherry picked from commit 820de37604)
2026-05-25 13:41:20 +00:00
Martin Weinelt
d8fb34e72f [Backport release-26.05] evcc: 0.307.0 -> 0.307.1 (#524018) 2026-05-25 13:39:05 +00:00
Martin Weinelt
944a00877a evcc: 0.307.0 -> 0.307.1
https://github.com/evcc-io/evcc/releases/tag/0.307.1
(cherry picked from commit b766c1fe3a)
2026-05-25 13:30:55 +00:00
nixpkgs-ci[bot]
99cbef2888 [Backport release-26.05] garnet: 1.1.6 -> 1.1.9 (#523976) 2026-05-25 12:48:19 +00:00
nixpkgs-ci[bot]
19b722db14 [Backport release-26.05] pipeline: 4.0.2 -> 4.0.3 (#523971) 2026-05-25 12:48:16 +00:00
R. Ryantm
3c2cac77ea garnet: 1.1.6 -> 1.1.9
(cherry picked from commit 0deb8382a8)
2026-05-25 11:45:25 +00:00
Gaétan Lepage
dc6361e63e [Backport release-26.05] python3Packages.numpy: fix riscv64-linux build (#523685) 2026-05-25 11:44:33 +00:00
nixpkgs-ci[bot]
3dc9d7878d [Backport release-26.05] authentik: 2025.12.4 -> 2025.12.5 (#523942) 2026-05-25 11:33:51 +00:00
nixpkgs-ci[bot]
e7680378ae [Backport release-26.05] kimai: 2.56.0 -> 2.57.0 (#523941) 2026-05-25 11:33:48 +00:00
R. Ryantm
f336998635 pipeline: 4.0.2 -> 4.0.3
(cherry picked from commit 64c21a0dd8)
2026-05-25 11:31:31 +00:00
Ryan Omasta
1b60b62749 maintainers: remove dsferruzza
(cherry picked from commit 15ee393152)
2026-05-25 11:08:09 +00:00
Ryan Omasta
8f4f8924be maintainers: remove ciil
(cherry picked from commit ec5e8f914c)
2026-05-25 11:03:24 +00:00
Thomas Butter
3eb2a1b52a mystmd: 1.9.0 -> 1.9.1
(cherry picked from commit 609f02dc37)
2026-05-25 10:27:17 +00:00
Sandro Jäckel
cf143940f9 nextcloud-notify_push: 1.3.1 -> 1.3.3
Diff: https://github.com/nextcloud/notify_push/compare/v1.3.1...v1.3.3

Changelog: https://github.com/nextcloud/notify_push/releases/tag/v1.3.3
(cherry picked from commit 9b24328fda)
2026-05-25 10:22:56 +00:00
Robert Schütz
221ecd7001 authentik: 2025.12.4 -> 2025.12.5
Diff: https://github.com/goauthentik/authentik/compare/version/2025.12.4...version/2025.12.5

Changelog: https://github.com/goauthentik/authentik/releases/tag/version%2F2025.12.5
(cherry picked from commit 37249a0a29)
2026-05-25 10:07:37 +00:00
R. Ryantm
182cfbd047 kimai: 2.56.0 -> 2.57.0
(cherry picked from commit 39c9142f83)
2026-05-25 10:06:55 +00:00
André Silva
632e240fd5 [Backport release-26.05] jellyfin{,-web}: 10.11.8 -> 10.11.10 (#523927) 2026-05-25 09:20:11 +00:00
Victor Jacobs
aec8047ca6 jellyfin: 10.11.8 -> 10.11.10
(cherry picked from commit de7a08e42e)
2026-05-25 09:14:17 +00:00
Wolfgang Walther
1aa63e4f5f [Backport release-26.05] workflows/periodic-merge: update haskell-updates PR's base branch (#523918) 2026-05-25 08:09:20 +00:00
Wolfgang Walther
b1619a4ef0 workflows/periodic-merge: update haskell-updates PR's base branch
This gives us better UI in the PR by hiding the commits that are already
on the base branch (mostly staging) after the periodic merge. Without
this, the PR has 100s of commits listed after a few days.

(cherry picked from commit 5439176950)
2026-05-25 08:06:03 +00:00
Wolfgang Walther
3dc0105541 workflows/periodic-merge: allow testing in forks
Manually dispatching in your fork should still trigger the workflow to
test.

(cherry picked from commit fe5cea9c90)
2026-05-25 08:06:03 +00:00
@mjones
f6ebb8c223 [Backport release-26.05] dwarf-fortress: 53.11 -> 53.14 (#523905) 2026-05-25 07:10:22 +00:00
Morgan Jones
7596362959 dwarf-fortress: 53.11 -> 53.14
(cherry picked from commit be347c722d)
2026-05-25 06:55:15 +00:00
@mjones
4af760ff20 [Backport release-26.05] androidStudioPackages.canary: 2026.1.1.5 -> 2026.1.2.2 (#523891) 2026-05-25 05:34:52 +00:00
R. Ryantm
ab0df422bd androidStudioPackages.canary: 2026.1.1.5 -> 2026.1.2.2
(cherry picked from commit 86664a0f9d)
2026-05-25 05:29:19 +00:00
@mjones
b968491899 [Backport release-26.05] tpm2-pkcs11: 1.9.2 -> 1.10.0 (#523884) 2026-05-25 05:24:44 +00:00
@mjones
953cc572a3 [Backport release-26.05] lmstudio: 0.4.13.1 -> 0.4.14.4 (#523882) 2026-05-25 05:24:38 +00:00
nixpkgs-ci[bot]
50aea46f4f [Backport release-26.05] field-monitor: 50.0 -> 50.1 (#523870) 2026-05-25 05:17:19 +00:00
Morgan Jones
a909cc52ed tpm2-pkcs11: 1.9.2 -> 1.10.0
(cherry picked from commit 4b9ac442e4)
2026-05-25 04:51:27 +00:00
crertel
571318a88f lmstudio: 0.4.13.1 -> 0.4.14.4
(cherry picked from commit 1609924c67)
2026-05-25 04:43:52 +00:00
R. Ryantm
00e44259f4 field-monitor: 50.0 -> 50.1
(cherry picked from commit f533f85387)
2026-05-25 03:49:47 +00:00
Harinn
95521573a4 python3Packages.pytest-pylint: fix tests with newer pytest
(cherry picked from commit c514b3f9d1)
2026-05-25 03:40:04 +00:00
Thierry Delafontaine
a81e27cbbd armTrustedFirmwareTools: include dtc and gcc in nativeBuildInputs to fix darwin build
(cherry picked from commit 538fb9d3df)
2026-05-25 03:37:58 +00:00
Thierry Delafontaine
d5ca66cf88 akkoma-admin-fe: use cctools libtool on darwin to fix node-sass build
(cherry picked from commit 6e7e69cc25)
2026-05-25 03:34:52 +00:00
Michael Daniels
955b98c8eb [Backport release-26.05] python3Packages.libarcus: drop (#523859) 2026-05-25 03:29:58 +00:00
Thierry Delafontaine
0496d850d3 age-plugin-fido2prf: fix darwin build by patching hardcoded Homebrew paths
(cherry picked from commit 91aac5dc91)
2026-05-25 03:14:22 +00:00
Sam Estep
864d6f3032 python3Packages.libarcus: drop
Assisted-by: Codex:gpt-5.5
Assisted-by: Claude:opus-4.7
(cherry picked from commit 2436990329)
2026-05-25 03:13:07 +00:00
Michael Daniels
df3a038f6d [Backport release-26.05] python3Packages.irc: fix tests on python 3.14 (#523833) 2026-05-25 03:03:18 +00:00
Michael Daniels
44e4222a59 [Backport release-26.05] python3packages.braintree: 4.41.0 -> 4.43.0 (#523837) 2026-05-25 02:37:07 +00:00
Michael Daniels
6eac63c88a [Backport release-26.05] perlPackages.SessionToken: fix build with gcc15 (#523831) 2026-05-25 02:29:42 +00:00
Michael Daniels
3c0ec23127 [Backport release-26.05] python3Packages.aiotarfile: skip tests on python 3.14 (#523836) 2026-05-25 02:29:10 +00:00
Michael Daniels
50e5328693 [Backport release-26.05] mini-httpd: fix build with boost 1.89 (#523832) 2026-05-25 02:25:34 +00:00
Michael Daniels
cfd88eaba1 [Backport release-26.05] python3Packages.bezier: fix executable stack import error on linux (#523834) 2026-05-25 02:23:42 +00:00
Martin Weinelt
86a3bb014d [Backport release-26.05] esphome: 2026.5.0 -> 2026.5.1 (#523830) 2026-05-25 01:54:50 +00:00
Conor
bbde42c80f python3Packages.braintree: 4.41.0 -> 4.43.0
(cherry picked from commit fab38f96a8)
2026-05-25 01:50:20 +00:00
Harinn
0d3b353aaf python3Packages.aiotarfile: skip tests on python 3.14
(cherry picked from commit 1bb8e5da7c)
2026-05-25 01:49:05 +00:00
Harinn
7d28e0e202 python3Packages.bezier: fix executable stack import error
(cherry picked from commit ac828aaf0f)
2026-05-25 01:47:40 +00:00
Harinn
5009939ae3 python3Packages.irc: fix tests on python 3.14
(cherry picked from commit 435f8d720c)
2026-05-25 01:45:54 +00:00
Xiangyan Sun
94a342c366 perlPackages.SessionToken: fix build with gcc15
(cherry picked from commit 4d8b678ec6)
2026-05-25 01:45:44 +00:00
Xiangyan Sun
3f913b77ef mini-httpd: fix build with boost 1.89
(cherry picked from commit 94eb7e93f2)
2026-05-25 01:45:44 +00:00
Martin Weinelt
24797747de esphome: 2026.5.0 -> 2026.5.1
https://github.com/esphome/esphome/releases/tag/2026.5.1
(cherry picked from commit e69efbba69)
2026-05-25 01:43:39 +00:00
Felix Bargfeldt
810dae540a [Backport release-26.05] python314Packages.django-valkey: fix python version conditions in optional dependencies, cleanup; python314Packages.django-vcache: 1.0.0 -> 2.1.1; python314Packages.django-vtasks: 1.0.3 -> 2.1.1 (#523799) 2026-05-25 00:37:03 +00:00
kuflierl
95f9aff0d9 podofo{_1_0,}: remove wrong version from name 2026-05-25 02:33:36 +02:00
nixpkgs-ci[bot]
f3d2476517 [Backport release-26.05] tlrc: 1.13.0 -> 1.13.1 (#523807) 2026-05-24 23:09:46 +00:00
Lena Pastwa
69f605171d tlrc: 1.13.0 -> 1.13.1
(cherry picked from commit 23b2162124)
2026-05-24 22:57:39 +00:00
zowoq
c345638ec7 [Backport release-26.05] linuxKernel.kernels.linux_zen: 7.0.9-zen2 -> 7.0.10-zen1 (#523804) 2026-05-24 22:48:05 +00:00
Linus Karl
79b46bcf71 linuxKernel.kernels.linux_zen: 7.0.9-zen2 -> 7.0.10-zen1
(cherry picked from commit 619e382a1d)
2026-05-24 22:43:20 +00:00
Sandro Jäckel
fd04332791 python314Packages.django-vtasks: 1.0.3 -> 2.1.1
Diff: https://gitlab.com/glitchtip/django-vtasks/-/compare/v1.0.3...v2.1.1
(cherry picked from commit f8c8dab2ae)
2026-05-24 22:33:04 +00:00
Sandro Jäckel
d6db5aabf7 python314Packages.django-vcache: 1.0.0 -> 2.1.1
Changelog: https://gitlab.com/glitchtip/django-vcache/-/blob/v2.1.1/CHANGELOG.md
Diff: https://gitlab.com/glitchtip/django-vcache/-/compare/v1.0.0...v2.1.1
(cherry picked from commit 677fd63287)
2026-05-24 22:33:04 +00:00
Sandro Jäckel
f20c9d6a13 python314Packages.django-valkey: fix python version conditions in optional dependencies, cleanup
(cherry picked from commit 415b61226a)
2026-05-24 22:33:04 +00:00
zowoq
cf73e8d78d [Backport release-26.05] kernel updates for 2026-05-23 (part 2) (#523798) 2026-05-24 22:27:33 +00:00
zowoq
8c25e6bdc0 linux_5_10: 5.10.256 -> 5.10.257
(cherry picked from commit fdee877a17)
2026-05-24 22:22:51 +00:00
zowoq
f851b430ce linux_5_15: 5.15.207 -> 5.15.208
(cherry picked from commit be8e6fc62c)
2026-05-24 22:22:51 +00:00
zowoq
22bff227a1 linux_6_1: 6.1.173 -> 6.1.174
(cherry picked from commit a217e612d1)
2026-05-24 22:22:51 +00:00
Niklas Korz
9e308aa8c0 [Backport release-26.05] gram: 2.1.0 -> 2.1.2 (#523792) 2026-05-24 22:00:49 +00:00
R. Ryantm
4bffbfab77 gram: 2.1.0 -> 2.1.2
(cherry picked from commit 4a598a0ca7)
2026-05-24 21:56:11 +00:00
Makuru
d5797cb22d kicad: 10.0.2 -> 10.0.3
(cherry picked from commit 25dd50acb7)
2026-05-24 21:46:11 +00:00
Niklas Korz
36dd490504 [Backport release-26.05] wesnoth-devel: 1.19.23 -> 1.19.24 (#523785) 2026-05-24 21:43:59 +00:00
R. Ryantm
7acb2d19b5 wesnoth-devel: 1.19.23 -> 1.19.24
(cherry picked from commit 2378e087dc)
2026-05-24 21:39:19 +00:00
nixpkgs-ci[bot]
297b2d795b [Backport release-26.05] simplex-chat-desktop: fix updates for aarch64-linux (#523775) 2026-05-24 20:56:54 +00:00
Terry Garcia
a820ef2699 simplex-chat-desktop: fix updates for aarch64-linux
Replace gitUpdater with a shell script that invokes
update-source-version once per system using
--source-key, so both per-arch AppImage hashes are
refreshed on each version bump.

(cherry picked from commit ec5d28b85b)
2026-05-24 20:51:46 +00:00
Matt Sturgeon
31e79603d1 [Backport release-26.05] python3Packages.otter-grader: init at 6.1.6; python3Packages.fica: init at 0.4.1 (#523764) 2026-05-24 20:49:52 +00:00
HHR2020
bb48016b3b python3Packages.otter-grader: init at 6.1.6
(cherry picked from commit 72e2be4cfb)
2026-05-24 20:39:10 +00:00
HHR2020
08544ba5cb python3Packages.fica: init at 0.4.1
(cherry picked from commit dde7586eb4)
2026-05-24 20:39:10 +00:00
winston
2bb3bae9d6 python3Packages.wasmtime: fix meta, changelog url typo & refine license
(cherry picked from commit b4b7b6c9d1)
2026-05-24 20:30:33 +00:00
winston
287ff70762 python3Packages.wasmtime: fix darwin shared library path
(cherry picked from commit 587a3ef79a)
2026-05-24 20:30:33 +00:00
nixpkgs-ci[bot]
88ce442adc [Backport release-26.05] qbz: wrap pactl and pw-metadata into PATH (#523630) 2026-05-24 19:50:33 +00:00
Marcus Ramberg
981e7ce009 [Backport release-26.05] texlive: merge withDocs, tlDeps updates and remove texlive.combine from the documentation (#523671) 2026-05-24 18:05:11 +00:00
nixpkgs-ci[bot]
38e2454f01 [Backport release-26.05] fluffychat: 2.5.1 -> 2.6.0 (#523656) 2026-05-24 17:46:27 +00:00
Harinn
9545cb0146 python3Packages.obspec: fix pytest-mypy-plugins under sandbox
(cherry picked from commit 83d906581b)
2026-05-24 17:11:49 +00:00
liberodark
3930a2c1cc python3Packages.numpy: fix riscv64-linux build
(cherry picked from commit 65ae5aabf4)
2026-05-24 17:08:14 +00:00
nixpkgs-ci[bot]
77d41323e7 [Backport release-26.05] cargo-codspeed: 4.6.0 -> 4.7.0 (#523648) 2026-05-24 16:46:35 +00:00
Martin Weinelt
9a0a0c0d8b [Backport release-26.05] nixos/music-assistant: disable MemoryDenyWriteExecute (#523670) 2026-05-24 16:37:37 +00:00
Vincenzo Mantova
6081b0320c doc: remove texlive.combine from the TeX Live documentation
(cherry picked from commit 022d9ebeeb)
2026-05-24 16:33:09 +00:00
Vincenzo Mantova
614cdd7b0e R: make tlDeps a function
(cherry picked from commit af229eadca)
2026-05-24 16:33:09 +00:00
Vincenzo Mantova
4f5a6cb074 R: remove legacy tlType, pkgs attributes
(cherry picked from commit f53f80a757)
2026-05-24 16:33:09 +00:00
Vincenzo Mantova
fd3e3d317f perlPackages.LaTeXML: remove legacy tlType, pkgs attributes
(cherry picked from commit 9dd731c4bf)
2026-05-24 16:33:09 +00:00
Vincenzo Mantova
fadc6cb95d noweb: remove legacy tlType, pkgs attributes
(cherry picked from commit 539315b6fc)
2026-05-24 16:33:09 +00:00
Vincenzo Mantova
1b741c8b22 mftrace: make tlDeps a function
(cherry picked from commit 089f87d34b)
2026-05-24 16:33:09 +00:00
Vincenzo Mantova
b8b34804b5 junicode: make tlDeps a function
(cherry picked from commit deedb05a23)
2026-05-24 16:33:08 +00:00
Vincenzo Mantova
ebd63f6886 eukleides: make tlDeps a function
(cherry picked from commit 7751dd9cbe)
2026-05-24 16:33:08 +00:00
Vincenzo Mantova
978486f839 eukleides: remove legacy tlType, pkgs attributes
(cherry picked from commit 27f106cf12)
2026-05-24 16:33:08 +00:00
Vincenzo Mantova
5909aede31 auto-multiple-choice: remove legacy tlType, pkgs attributes
(cherry picked from commit aaf6a1e1f4)
2026-05-24 16:33:08 +00:00
Vincenzo Mantova
2df4274007 auctex: remove legacy tlType, pkgs attributes
(cherry picked from commit dbeafe9461)
2026-05-24 16:33:08 +00:00
Vincenzo Mantova
891d109b27 texlive.withPackages: allow tlDeps to be a function, drop unused requiredTeXPackages
(cherry picked from commit 3a6bafbdf5)
2026-05-24 16:33:08 +00:00
Vincenzo Mantova
4b682b2ce7 texlive.withPackages: replace force-output.sh with preHook
(cherry picked from commit c8b6540469)
2026-05-24 16:33:08 +00:00
Vincenzo Mantova
51cbf2738d texlive.withPackages: add withDocs, withSources to default attributes
(cherry picked from commit 27da8a3737)
2026-05-24 16:33:08 +00:00
Vincenzo Mantova
56adf3a77f texlive.withPackages: enable strictDeps
(cherry picked from commit d40578e2b1)
2026-05-24 16:33:08 +00:00
Vincenzo Mantova
be4b75107f tests.texlive.texdoc: use withDocs to add the doc containers
(cherry picked from commit 96c9b622de)
2026-05-24 16:33:08 +00:00
Vincenzo Mantova
995debc65c texliveFullWithDocs: init at 2025-r78234-final
(cherry picked from commit 38a19e2d2f)
2026-05-24 16:33:08 +00:00
Vincenzo Mantova
321284d69f texlive.withPackages: move withDocs, withSources from passthru to derivation arguments
(cherry picked from commit 41d265c82a)
2026-05-24 16:33:08 +00:00
Vincenzo Mantova
622109b905 texlive.withPackages: use buildenv (finalAttrs: ...)
(cherry picked from commit 62b7051f28)
2026-05-24 16:33:08 +00:00
Vincenzo Mantova
4bd0192e93 texlive.withPackages: remove unused arguments
(cherry picked from commit f5804647d9)
2026-05-24 16:33:08 +00:00
Marie Ramlow
621d246e27 nixos/music-assistant: disable MemoryDenyWriteExecute
MemoryDenyWriteExecute=true breaks pyopenssl's cffi calls, used in the remote access feature.

```
2026-05-24 17:32:58.344 ERROR (MainThread) [music_assistant] Error doing task: Task exception was never retrieved
Traceback (most recent call last):
  File "/nix/store/mmv9717wjskv3q5v4768dq0fq5hf4jry-python3.13-aiortc-1.14.0/lib/python3.13/site-packages/aiortc/rtcpeerconnection.py", line 1084, in __connect
    await dtlsTransport.start(self.__remoteDtls[self.__sctp])
  File "/nix/store/mmv9717wjskv3q5v4768dq0fq5hf4jry-python3.13-aiortc-1.14.0/lib/python3.13/site-packages/aiortc/rtcdtlstransport.py", line 518, in start
    self.__local_certificate._create_ssl_context(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        srtp_profiles=self._srtp_profiles
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/nix/store/mmv9717wjskv3q5v4768dq0fq5hf4jry-python3.13-aiortc-1.14.0/lib/python3.13/site-packages/aiortc/rtcdtlstransport.py", line 198, in _create_ssl_context
    ctx.set_verify(
    ~~~~~~~~~~~~~~^
        SSL.VERIFY_PEER | SSL.VERIFY_FAIL_IF_NO_PEER_CERT, lambda *args: True
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/nix/store/5kwsndvbzfj3dv4fwpdlgin42mgbd4xk-python3.13-pyopenssl-26.0.0/lib/python3.13/site-packages/OpenSSL/SSL.py", line 867, in inner
    return f(self, *args, **kwargs)
  File "/nix/store/5kwsndvbzfj3dv4fwpdlgin42mgbd4xk-python3.13-pyopenssl-26.0.0/lib/python3.13/site-packages/OpenSSL/SSL.py", line 1390, in set_verify
    self._verify_helper = _VerifyHelper(callback)
                          ~~~~~~~~~~~~~^^^^^^^^^^
  File "/nix/store/5kwsndvbzfj3dv4fwpdlgin42mgbd4xk-python3.13-pyopenssl-26.0.0/lib/python3.13/site-packages/OpenSSL/SSL.py", line 527, in __init__
    self.callback = _ffi.callback(
                    ~~~~~~~~~~~~~^
        "int (*)(int, X509_STORE_CTX *)", wrapper
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
MemoryError: Cannot allocate write+execute memory for ffi.callback(). You might be running on a system that prevents this. For more information, see https://cffi.readthedocs.io/en/latest/using.html#callbacks
```

(cherry picked from commit 6b53fc13e3)
2026-05-24 16:33:03 +00:00
Matt Sturgeon
f32d36ae38 [Backport release-26.05] .github: Add release-26.05 CI config (#523662) 2026-05-24 16:09:15 +00:00
yaya
353aa7f888 .github: Add release-26.05 CI config
(cherry picked from commit 41a5348c15)
2026-05-24 16:03:14 +00:00
Peder Bergebakken Sundt
ebdb5acac5 [Backport release-26.05] manifold: 3.4.1 -> 3.5.0 (#523640) 2026-05-24 16:02:00 +00:00
twoneis
40cd680020 fluffychat: 2.5.1 -> 2.6.0
(cherry picked from commit e9ea113abd)
2026-05-24 15:57:46 +00:00
nixpkgs-ci[bot]
5c1be16756 [Backport release-26.05] librewolf-unwrapped: 150.0.3-1 -> 151.0.1-2 (#523628) 2026-05-24 15:49:24 +00:00
Peder Bergebakken Sundt
239fd9e7ad [Backport release-26.05] nocturne: init at 1.1.1 (#523642) 2026-05-24 17:34:24 +02:00
Peder Bergebakken Sundt
3d68ffd154 [Backport release-26.05] python3Packages.hdf5plugin: parametrize cpu features (#523644) 2026-05-24 17:33:31 +02:00
Peder Bergebakken Sundt
f8e3d3bd26 [Backport release-26.05] goperf: 0-unstable-2026-04-09 -> 0-unstable-2026-05-12 (#523643) 2026-05-24 17:33:07 +02:00
Hythera
7c24763f98 libsolv: 0.7.36 -> 0.7.37
changelog: https://github.com/openSUSE/libsolv/blob/0.7.37/NEWS

diff: https://github.com/openSUSE/libsolv/compare/0.7.36...0.7.37
(cherry picked from commit 82679a6d3f)
2026-05-24 15:26:28 +00:00
R. Ryantm
3ad8c3222d cargo-codspeed: 4.6.0 -> 4.7.0
(cherry picked from commit 8487ffb9d7)
2026-05-24 15:24:58 +00:00
isabel
148c1057f2 [Backport release-26.05] metadata: fix build with ffmpeg 8.1 (#523639) 2026-05-24 16:14:16 +01:00
isabel
9f9c38223a [Backport release-26.05] larswm: drop (#523636) 2026-05-24 16:13:57 +01:00
Peder Bergebakken Sundt
15c6cd83d5 python3Packages.hdf5plugin: parametrize cpu features
Co-Authored-By: Grimmauld <Grimmauld@grimmauld.de>
Co-Authored-By: Sam Estep <sam@samestep.com>
(cherry picked from commit 5fd9b32603)
2026-05-24 15:09:18 +00:00
R. Ryantm
9c1ff69fc2 goperf: 0-unstable-2026-04-09 -> 0-unstable-2026-05-12
(cherry picked from commit 1e61ab15a6)
2026-05-24 15:08:27 +00:00
Peder Bergebakken Sundt
9eb740507b nocturne: init at 1.1.1
Assisted-by: nix-init
(cherry picked from commit 0de7dbe165)
2026-05-24 15:07:11 +00:00
Peder Bergebakken Sundt
f48e2500ce python3Packages.mpris-server: adopt, fixup
I assume quadradical doesn't want to re-assume maintainership simply because I reverted the package drop for my own purposes.

(cherry picked from commit 261eac2ed0)
2026-05-24 15:07:11 +00:00
Peder Bergebakken Sundt
a57d3837bb Revert "python3Packages.mpris-server: drop"
This commit reverts d698f37523

(cherry picked from commit 481a260d76)
2026-05-24 15:07:11 +00:00
R. Ryantm
4c0cad3482 manifold: 3.4.1 -> 3.5.0
(cherry picked from commit 8499fe1164)
2026-05-24 14:59:23 +00:00
Harinn
d1319eeba0 metadata: fix build with ffmpeg 8.1
(cherry picked from commit cbb314acf6)
2026-05-24 14:59:15 +00:00
Harinn
9ffe8b6b6e larswm: drop
(cherry picked from commit aef777d2cb)
2026-05-24 14:54:01 +00:00
William Weiskopf
0d1aeb93c0 qbz: wrap pactl and pw-metadata into PATH
qbz uses pactl for PipeWire device enumeration and sink routing, and
pw-metadata for bit-perfect sample rate queries. Without these on PATH,
audio playback fails with "Failed to run pactl: No such file or directory".

(cherry picked from commit feafc3f846)
2026-05-24 14:25:35 +00:00
Hythera
1fa88c7c27 librewolf-unwrapped: 150.0.3-1 -> 151.0.1-2
diff: https://codeberg.org/librewolf/source/compare/150.0.3-1...151.0.1-2

mfsa: https://www.mozilla.org/en-US/security/advisories/mfsa2026-46/
(cherry picked from commit 9e94033741)
2026-05-24 14:23:40 +00:00
Martin Weinelt
ef21843689 [Backport release-26.05] Migrate variouis test to nspawn container (#523620) 2026-05-24 15:58:17 +02:00
Martin Weinelt
ff6703771d nixosTests.postfix-tlspol: use nspawn container
(cherry picked from commit fbc588f146)
2026-05-24 13:50:25 +00:00
Martin Weinelt
688915f6e4 nixosTests.pinnwand: use nspawn container
(cherry picked from commit 27c670ba57)
2026-05-24 13:50:25 +00:00
Martin Weinelt
bd507c09ea nixosTests.evcc: use nspawn container
(cherry picked from commit 043c78f155)
2026-05-24 13:50:24 +00:00
Martin Weinelt
679a8a401e nixosTests.zigbee2mqtt: use nspawn container
(cherry picked from commit 9b4eefdf38)
2026-05-24 13:50:24 +00:00
Michael Daniels
c4413a5097 netease-cloud-music-gtk: 2.5.2 -> 2.5.3
Changelog: https://github.com/gmg137/netease-cloud-music-gtk/releases/tag/2.5.3
Diff: https://github.com/gmg137/netease-cloud-music-gtk/compare/2.5.2...2.5.3
(cherry picked from commit 902b89a52a)
2026-05-24 13:40:48 +00:00
yaya
705e992991 26.05 beta release 2026-05-24 13:32:15 +02:00
3792 changed files with 57745 additions and 89856 deletions

6
.github/ISSUE_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,6 @@
<!--
Please note: This blank issue template is meant for extraordinary issues
that do not fit the templates. Unless you know your issue is relevant to
Nixpkgs and requires the free-form blank issue, please use the issue
templates instead.
-->

View File

@@ -35,8 +35,8 @@ body:
If you are using an older version, please update to the latest stable version and check if the issue persists before continuing this bug report.
options:
- "Please select a version."
- "- Unstable (26.11)"
- "- Stable (26.05)"
- "- Unstable (26.05)"
- "- Stable (25.11)"
default: 0
validations:
required: true

View File

@@ -35,8 +35,8 @@ body:
If you are using an older version, please update to the latest stable version and check if the issue persists before continuing this bug report.
options:
- "Please select a version."
- "- Unstable (26.11)"
- "- Stable (26.05)"
- "- Unstable (26.05)"
- "- Stable (25.11)"
default: 0
validations:
required: true
@@ -99,7 +99,7 @@ body:
attributes:
label: "Are you using nix-darwin?"
description: |
[`nix-darwin`](https://github.com/nix-darwin/nix-darwin) is a set of NixOS-like modules for macOS systems. Depending on your issue, this information may be relevant.
[`nix-darwin`](https://github.com/LnL7/nix-darwin) is a set of NixOS-like modules for macOS systems. Depending on your issue, this information may be relevant.
options:
- "Yes, I am using nix-darwin."
- "No, I am not using nix-darwin."

View File

@@ -35,8 +35,8 @@ body:
If you are using an older version, please update to the latest stable version and check if the issue persists before continuing this bug report.
options:
- "Please select a version."
- "- Unstable (26.11)"
- "- Stable (26.05)"
- "- Unstable (26.05)"
- "- Stable (25.11)"
default: 0
validations:
required: true

View File

@@ -37,8 +37,8 @@ body:
If you are purposefully trying to build an ancient version of a package in an older Nixpkgs, please coordinate with the [NixOS Archivists](https://matrix.to/#/#archivists:nixos.org).
options:
- "Please select a version."
- "- Unstable (26.11)"
- "- Stable (26.05)"
- "- Unstable (26.05)"
- "- Stable (25.11)"
default: 0
validations:
required: true

View File

@@ -37,8 +37,8 @@ body:
If the package has been updated in unstable, but you believe the update should be backported to the stable release of Nixpkgs, please file the '**Request: backport to stable**' form instead.
options:
- "Please select a version."
- "- Unstable (26.11)"
- "- Stable (26.05)"
- "- Unstable (26.05)"
- "- Stable (25.11)"
default: 0
validations:
required: true

View File

@@ -35,8 +35,8 @@ body:
If you are using an older or stable version, please update to the latest **unstable** version and check if the module still does not exist before continuing this request.
options:
- "Please select a version."
- "- Unstable (26.11)"
- "- Stable (26.05)"
- "- Unstable (26.05)"
- "- Stable (25.11)"
default: 0
validations:
required: true

View File

@@ -36,7 +36,7 @@ jobs:
permission-pull-requests: write
permission-workflows: write
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: ${{ github.event.pull_request.head.sha }}
token: ${{ steps.app-token.outputs.token }}

View File

@@ -46,7 +46,7 @@ jobs:
# https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
sparse-checkout: |

View File

@@ -52,7 +52,7 @@ jobs:
runs-on: ${{ matrix.runner }}
timeout-minutes: 60
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
sparse-checkout: .github/actions

View File

@@ -43,7 +43,7 @@ jobs:
runs-on: ubuntu-slim
timeout-minutes: 3
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
path: trusted
@@ -95,7 +95,7 @@ jobs:
runs-on: ubuntu-slim
timeout-minutes: 3
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
path: trusted
@@ -137,7 +137,7 @@ jobs:
runs-on: ubuntu-24.04-arm
timeout-minutes: 5
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
sparse-checkout: .github/actions

View File

@@ -23,7 +23,7 @@ jobs:
timeout-minutes: 2
if: contains(github.event.comment.body, '@NixOS/nixpkgs-merge-bot merge')
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
sparse-checkout: |

View File

@@ -47,7 +47,7 @@ jobs:
ciPinBumpCommit: ${{ steps.find-pinned-commit.outputs.ciPinBumpCommit }}
ciPinBumpCommitShort: ${{ steps.find-pinned-commit.outputs.ciPinBumpCommitShort }}
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
path: trusted
@@ -55,7 +55,7 @@ jobs:
ci/supportedVersions.nix
- name: Check out the PR at the test merge commit
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
ref: ${{ inputs.mergedSha }}
@@ -171,7 +171,7 @@ jobs:
sudo mkswap /swap
sudo swapon /swap
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
sparse-checkout: .github/actions
@@ -256,7 +256,7 @@ jobs:
statuses: write # creating 'Eval Summary' commit statuses
timeout-minutes: 5
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
sparse-checkout: .github/actions
@@ -471,7 +471,7 @@ jobs:
runs-on: ubuntu-24.04-arm
timeout-minutes: 10
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
sparse-checkout: .github/actions

View File

@@ -26,7 +26,7 @@ jobs:
runs-on: ubuntu-24.04-arm
timeout-minutes: 10
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
sparse-checkout: .github/actions
@@ -61,7 +61,7 @@ jobs:
runs-on: ubuntu-24.04-arm
timeout-minutes: 10
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
sparse-checkout: .github/actions
@@ -90,7 +90,7 @@ jobs:
runs-on: ubuntu-24.04-arm
timeout-minutes: 10
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
sparse-checkout: .github/actions
@@ -134,7 +134,7 @@ jobs:
runs-on: ubuntu-slim
timeout-minutes: 5
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: true # Needed to run git fetch for large PRs.
path: trusted

View File

@@ -25,7 +25,7 @@ jobs:
targetSha: ${{ steps.prepare.outputs.targetSha }}
systems: ${{ steps.prepare.outputs.systems }}
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
sparse-checkout: |

View File

@@ -34,7 +34,7 @@ jobs:
permission-contents: write
permission-pull-requests: write
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false

View File

@@ -36,7 +36,7 @@ jobs:
systems: ${{ steps.prepare.outputs.systems }}
touched: ${{ steps.prepare.outputs.touched }}
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
sparse-checkout-cone-mode: true # default, for clarity

View File

@@ -20,7 +20,7 @@ jobs:
runs-on: ubuntu-slim
timeout-minutes: 2
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
sparse-checkout: |

View File

@@ -30,7 +30,7 @@ jobs:
permission-pull-requests: write
- name: Fetch source
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
sparse-checkout: |

View File

@@ -19,7 +19,7 @@ jobs:
push: ${{ steps.files.outputs.push }}
targetSha: ${{ steps.prepare.outputs.targetSha }}
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
sparse-checkout-cone-mode: true # default, for clarity

View File

@@ -13,7 +13,7 @@
<a href="https://opencollective.com/nixos"><img src="https://opencollective.com/nixos/tiers/supporter/badge.svg?label=supporters&color=brightgreen" alt="Open Collective supporters" /></a>
</p>
[Nixpkgs](https://github.com/nixos/nixpkgs) is a collection of over 140,000 software packages that can be installed with the [Nix](https://nixos.org/nix/) package manager.
[Nixpkgs](https://github.com/nixos/nixpkgs) is a collection of over 120,000 software packages that can be installed with the [Nix](https://nixos.org/nix/) package manager.
It also implements [NixOS](https://nixos.org/nixos/), a purely-functional Linux distribution.
# Manuals
@@ -47,9 +47,9 @@ Here are some of the main ones:
Nixpkgs and NixOS are built and tested by our continuous integration system, [Hydra](https://hydra.nixos.org/).
* [Continuous package builds for unstable/master](https://hydra.nixos.org/jobset/nixos/trunk-combined)
* [Continuous package builds for the NixOS 26.05 release](https://hydra.nixos.org/jobset/nixos/release-26.05)
* [Continuous package builds for the NixOS 25.11 release](https://hydra.nixos.org/jobset/nixos/release-25.11)
* [Tests for unstable/master](https://hydra.nixos.org/job/nixos/trunk-combined/tested#tabs-constituents)
* [Tests for the NixOS 26.05 release](https://hydra.nixos.org/job/nixos/release-26.05/tested#tabs-constituents)
* [Tests for the NixOS 25.11 release](https://hydra.nixos.org/job/nixos/release-25.11/tested#tabs-constituents)
Artifacts successfully built with Hydra are published to cache at https://cache.nixos.org/.
When successful build and test criteria are met, the Nixpkgs expressions are distributed via [Nix channels](https://nix.dev/manual/nix/stable/command-ref/nix-channel.html).

View File

@@ -56,12 +56,6 @@
/pkgs/top-level/splice.nix @Ericson2314
/pkgs/top-level/release-cross.nix @Ericson2314
/pkgs/top-level/by-name-overlay.nix @infinisil @philiptaron
/pkgs/top-level/config.nix @jopejoe1
/pkgs/top-level/make-tarball.nix @jopejoe1
/pkgs/top-level/packages-config.nix @jopejoe1
/pkgs/top-level/packages-info.nix @jopejoe1
/pkgs/top-level/release-lib.nix @jopejoe1
/pkgs/top-level/release.nix @jopejoe1
/pkgs/stdenv @philiptaron @NixOS/stdenv
/pkgs/stdenv/generic @Ericson2314 @NixOS/stdenv
/pkgs/stdenv/generic/problems.nix @infinisil
@@ -79,7 +73,6 @@
## Format generators/serializers
/pkgs/pkgs-lib @Stunkymonkey @h7x4
/pkgs/pkgs-lib/formats/json2x @Stunkymonkey @h7x4 @figsoda
# Nixpkgs build-support
/pkgs/build-support/writers @lassulus
@@ -131,7 +124,6 @@ nixos/modules/installer/tools/nix-fallback-paths.nix @Artturin @Ericson2314 @lo
# NixOS integration test driver
/nixos/lib/test-driver @tfc
/nixos/lib/testing @tfc
# NixOS QEMU virtualisation
/nixos/modules/virtualisation/qemu-vm.nix @raitobezarius
@@ -277,15 +269,15 @@ pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt
/lib/licenses @alyssais @emilazy @jopejoe1
# Qt
/pkgs/development/libraries/qt-5 @K900 @NickCao @SuperSandro2000
/pkgs/development/libraries/qt-6 @K900 @NickCao @SuperSandro2000
/pkgs/development/libraries/qt-5 @K900 @NickCao @SuperSandro2000 @ttuegel
/pkgs/development/libraries/qt-6 @K900 @NickCao @SuperSandro2000 @ttuegel
# KDE Frameworks 5
/pkgs/development/libraries/kde-frameworks @K900 @NickCao @SuperSandro2000
/pkgs/development/libraries/kde-frameworks @K900 @NickCao @SuperSandro2000 @ttuegel
# KDE / Plasma 6
/pkgs/kde @K900 @NickCao @SuperSandro2000
/maintainers/scripts/kde @K900 @NickCao @SuperSandro2000
/pkgs/kde @K900 @NickCao @SuperSandro2000 @ttuegel
/maintainers/scripts/kde @K900 @NickCao @SuperSandro2000 @ttuegel
# PostgreSQL and related stuff
/pkgs/by-name/po/postgresqlTestHook @NixOS/postgres
@@ -445,7 +437,6 @@ nixos/tests/forgejo.nix @adamcstephens @bendlas @christoph-heiss @
/doc/languages-frameworks/javascript.section.md @winterqt
/pkgs/development/tools/pnpm @Scrumplex @gepbird
/pkgs/build-support/node/fetch-pnpm-deps @Scrumplex @gepbird
/pkgs/test/pnpm @Scrumplex @gepbird
# OCaml
/pkgs/build-support/ocaml @ulrikstrid
@@ -533,6 +524,3 @@ pkgs/by-name/wa/warp-terminal/ @emilytrau @imadnyc @FlameFlag @johnrtitor
# Radicle
/pkgs/build-support/fetchradicle/ @NixOS/radicle
/pkgs/build-support/fetchradiclepatch/ @NixOS/radicle
# Zellij plugins
/pkgs/by-name/ze/zellij/plugins/ @PerchunPak

View File

@@ -207,8 +207,6 @@ When needed, each convention explains why it exists, so you can make a decision
Note that these conventions are about the **structure** of the manual (and its source files), not about the content that goes in it.
You, as the writer of documentation, are still in charge of its content.
**For prose style, see the [documentation styleguide](./styleguide.md).**
### One sentence per line
Put each sentence in its own line.
@@ -221,16 +219,17 @@ When changing existing content, update formatting if possible, but avoid excessi
### Examples first
Put examples before detailed explanations (see the [styleguide](./styleguide.md) for the rationale).
Readers look at examples first: an example communicates what something does faster than a description.
Put examples before detailed explanations.
Use this structure for each documented item:
Prefer this structure for each documented item:
1. Title
2. Abstract (optional, one sentence max)
2. Abstract (optional, one sentence max, the example often speaks for itself)
3. Example
4. Explanation (details, edge cases, types, defaults)
Rendered example:
For instance:
````markdown
## `lib.toUpper`
@@ -282,9 +281,11 @@ Returns the difference as a number.
Use the [admonition syntax](#admonitions) for callouts and examples.
### `callPackage`-compatible examples
### Provide self-contained examples
Provide at least one example per function.
Provide at least one example per function, and make examples self-contained.
This is easier to understand for beginners.
It also helps with testing that it actually works especially once we introduce automation.
Example code should be such that it can be passed to `pkgs.callPackage`.
Instead of something like:

View File

@@ -37,7 +37,6 @@ npm-install-hook.section.md
patch-rc-path-hooks.section.md
perl.section.md
pkg-config.section.md
pnpm.section.md
postgresql-test-hook.section.md
premake.section.md
python.section.md
@@ -49,7 +48,6 @@ unzip.section.md
validatePkgConfig.section.md
versionCheckHook.section.md
waf.section.md
writable-tmpdir-as-home-hook.section.md
zig.section.md
xcbuild.section.md
xfce4-dev-tools.section.md

View File

@@ -1,142 +0,0 @@
# pnpmBuildHook {#pnpm-build-hook}
[pnpm](https://pnpm.io/) is a an NPM-compatible package manager focused on increasing managment speeds, and reducing disk space.
The `pnpmBuildHook` in Nixpkgs overrides the default build phase for building packages that use pnpm.
:::{.example #ex-pnpm-build-hook}
## pnpmBuildHook example code snippet {#pnpm-build-hook-code-snippet}
```
{
lib,
stdenv,
fetchFromGitHub,
fetchPnpmDeps,
pnpmConfigHook,
pnpmBuildHook,
makeBinaryWrapper,
pnpm_10,
}:
let
pnpm = pnpm_10;
in
stdenv.mkDerivation (finalAttrs: {
pname = "coolPackages";
version = "1.0";
src = fetchFromGitHub {
owner = "JaneCool";
repo = "coolpackage";
tag = finalAttrs.version;
hash = lib.fakeHash;
};
__structuredAttrs = true;
strictDeps = true;
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
inherit pnpm;
fetcherversion = 4;
hash = lib.fakeHash;
};
nativeBuildInputs = [
pnpmConfigHook
pnpmBuildHook
makeBinaryWrapper
];
pnpmBuildScript = "build";
pnpmBuildFlags = [
"--mode"
"production"
];
pnpmWorkspaces = [
"test"
];
installPhase = ''
runHook preInstall
mkdir "$out"
cp -r dist/. "$out"
runHook postInstall
'';
meta = {
description = "very cool package that does cool things";
mainProgram = "cool";
};
})
```
:::
## Variables controlling pnpmBuildHook {#pnpm-build-hook-variables}
### pnpm Exclusive Variables {#pnpm-build-hook-exclusive-variables}
#### `pnpmBuildScript` {#pnpm-build-hook-script}
Controls the script ran to build the package, by default the script is `build`.
#### `pnpmFlags` {#pnpm-build-hook-flags}
Controls flags used for all invocations of pnpm across all hooks local to this derivation.
#### `pnpmBuildFlags` {#pnpm-build-hook-build-flags}
Controls the flags pass only to the pnpm build script invocation.
#### `dontPnpmBuild` {#pnpm-build-hook-dont}
Disables automatically running `pnpmBuildHook`. The build can still be run manually if needed, for example:
```
{
lib,
rustPlatform,
pnpmBuildHook,
pnpmConfigHook,
fetchPnpmDeps,
emptyDirectory,
pnpm_10,
}:
let
pnpm = pnpm_10;
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "super-fast-application";
version = "1.0";
src = emptyDirectory;
cargoHash = lib.fakeHash;
nativeBuildInputs = [
pnpmBuildHook
pnpmConfigHook
];
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
inherit pnpm;
fetcherversion = 3;
hash = lib.fakeHash;
}
dontPnpmBuild = true;
postBuild = ''
pnpmBuildHook
'';
})
```
### Honored Variables {#pnpm-build-hook-honored-variables}
The following variables are honored by `pnpmBuildHook`.
* [`pnpmRoot`](#javascript-pnpm-sourceRoot)
* [`pnpmWorkspaces`](#javascript-pnpm-workspaces)

View File

@@ -1,5 +0,0 @@
# writableTmpDirAsHomeHook {#writableTmpDirAsHomeHook}
This setup hook provides a writable home directory for packages that require it.
To use, just add the hook to the `nativeBuildInputs` of the package.

View File

@@ -309,8 +309,6 @@ pnpm is available as the top-level package `pnpm`. Additionally, there are varia
When packaging an application that includes a `pnpm-lock.yaml`, you need to fetch the pnpm store for that project using a fixed-output-derivation. The function `fetchPnpmDeps` can create this pnpm store derivation. In conjunction, the setup hook `pnpmConfigHook` will prepare the build environment to install the pre-fetched dependencies store. Here is an example for a package that contains `package.json` and a `pnpm-lock.yaml` files using the fetcher and setup hook above:
There is also the [`pnpmBuildHook`](#pnpm-build-hook) for building packages with `pnpm`, as seen in [](#ex-pnpm-build-hook).
```nix
{
fetchPnpmDeps,
@@ -366,7 +364,7 @@ It is highly recommended to use a pinned version of pnpm (i.e., `pnpm_9` or `pnp
+let
+ # Optionally override pnpm to use a custom nodejs version
+ # Make sure that the same nodejs version is referenced in nativeBuildInputs
+ # pnpm = pnpm_10.override { nodejs-slim = nodejs-slim_22; };
+ # pnpm = pnpm_10.override { nodejs = nodejs-slim_22; };
+in
stdenv.mkDerivation (finalAttrs: {
pname = "foo";
@@ -513,10 +511,10 @@ Changes can include workarounds or bug fixes to existing PNPM issues.
##### Version history {#javascript-pnpm-fetcherVersion-versionHistory}
Version 3 is the minimum supported value. Versions 1 and 2 were removed in the 26.11 release; packages that still use them fail to evaluate and must migrate to `fetcherVersion = 3` (or later) and regenerate their hashes.
Version 3 is the recommended value for new packages. Versions 1 and 2 are deprecated and scheduled for removal in the 26.11 release; existing packages must migrate.
- 1: Initial version, nothing special. (removed in 26.11)
- 2: [Ensure consistent permissions](https://github.com/NixOS/nixpkgs/pull/422975) (removed in 26.11)
- 1: Initial version, nothing special.
- 2: [Ensure consistent permissions](https://github.com/NixOS/nixpkgs/pull/422975)
- 3: [Build a reproducible tarball](https://github.com/NixOS/nixpkgs/pull/469950)
- 4: [Dump SQLite database to an SQL file](https://github.com/NixOS/nixpkgs/pull/522703)

View File

@@ -232,7 +232,7 @@ The following is an example:
vyp
lblasc
];
license = lib.licenses.mit;
license.fullName = "MIT/X11";
};
};
}

View File

@@ -48,6 +48,7 @@ Based on the packages defined in `pkgs/top-level/python-packages.nix` an
attribute set is created for each available Python interpreter. The available
sets are
* `pkgs.python27Packages`
* `pkgs.python3Packages`
* `pkgs.python311Packages`
* `pkgs.python312Packages`
@@ -59,7 +60,9 @@ sets are
and the aliases
* `pkgs.python2Packages` pointing to `pkgs.python27Packages`
* `pkgs.python3Packages` pointing to `pkgs.python313Packages`
* `pkgs.pythonPackages` pointing to `pkgs.python2Packages`
* `pkgs.pypy2Packages` pointing to `pkgs.pypy27Packages`
* `pkgs.pypy3Packages` pointing to `pkgs.pypy310Packages`
* `pkgs.pypyPackages` pointing to `pkgs.pypy2Packages`
@@ -284,27 +287,29 @@ because their behaviour is different:
The `buildPythonPackage` function has a `overridePythonAttrs` method that can be
used to override the package. In the following example we create an environment
where we have the `blaze` package using an older version of `pandas`. We
first override the Python package set, then instantiate an interpreter with
that package set.
override first the Python interpreter and pass `packageOverrides` which contains
the overrides for packages in the package set.
```nix
with import <nixpkgs> { };
let
pythonPackages = python3Packages.overrideScope (
final: prev: {
pandas = prev.pandas.overridePythonAttrs (old: rec {
version = "0.19.1";
src = fetchPypi {
pname = "pandas";
inherit version;
hash = "sha256-JQn+rtpy/OA2deLszSKEuxyttqBzcAil50H+JDHUdCE=";
};
});
}
);
python = pkgs.python3.override {
packageOverrides = self: super: {
pandas = super.pandas.overridePythonAttrs (
finalAttrs: prevAttrs: {
version = "0.19.1";
src = fetchPypi {
pname = "pandas";
inherit (finalAttrs) version;
hash = "sha256-JQn+rtpy/OA2deLszSKEuxyttqBzcAil50H+JDHUdCE=";
};
}
);
};
};
in
(pythonPackages.python.withPackages (ps: [ ps.blaze ])).env
(python.withPackages (ps: [ ps.blaze ])).env
```
The next example shows a non trivial overriding of the `blas` implementation to
@@ -312,16 +317,15 @@ be used through out all of the Python package set:
```nix
{
python3PackagesWithBlas = python3Packages.overrideScope (
final: prev: {
python3MyBlas = pkgs.python3.override {
packageOverrides = self: super: {
# We need toPythonModule for the package set to evaluate this
blas = final.toPythonModule (prev.blas.override { blasProvider = final.mkl; });
lapack = final.toPythonModule (prev.lapack.override { lapackProvider = final.mkl; });
}
);
blas = super.toPythonModule (super.pkgs.blas.override { blasProvider = super.pkgs.mkl; });
lapack = super.toPythonModule (super.pkgs.lapack.override { lapackProvider = super.pkgs.mkl; });
};
};
}
```
This will create a new Python package set with the blas and lapack implementation set to Intel MKL.
This is particularly useful for numpy and scipy users who want to gain speed with other blas implementations.
Note that using `scipy = super.scipy.override { blas = super.pkgs.mkl; };` will likely result in
@@ -453,10 +457,11 @@ Note that overriding packages deeper in the dependency graph _can_ work, but it'
let
pyproject = pkgs.lib.importTOML ./pyproject.toml;
myPython3Packages = pkgs.python3Packages.overrideScope (
final: _: {
myPython = pkgs.python.override {
self = myPython;
packageOverrides = pyfinal: pyprev: {
# An editable package with a script that loads our mutable location
my-editable = final.mkPythonEditablePackage {
my-editable = pyfinal.mkPythonEditablePackage {
# Inherit project metadata from pyproject.toml
pname = pyproject.project.name;
inherit (pyproject.project) version;
@@ -467,10 +472,10 @@ let
# Inject a script (other PEP-621 entrypoints are also accepted)
inherit (pyproject.project) scripts;
};
}
);
};
};
pythonEnv = myPython3Packages.python.withPackages (ps: [ ps.my-editable ]);
pythonEnv = myPython.withPackages (ps: [ ps.my-editable ]);
in
pkgs.mkShell { packages = [ pythonEnv ]; }
@@ -570,6 +575,9 @@ In contrast to [`python.buildEnv`](#python.buildenv-function), [`python.withPack
more advanced options such as `ignoreCollisions = true` or `postBuild`. If you
need them, you have to use [`python.buildEnv`](#python.buildenv-function).
Python 2 namespace packages may provide `__init__.py` that collide. In that case
[`python.buildEnv`](#python.buildenv-function) should be used with `ignoreCollisions = true`.
#### Setup hooks {#setup-hooks}
The following are setup hooks specifically for Python packages. Most of these
@@ -621,9 +629,10 @@ buildPythonPackage.override { stdenv = customStdenv; } {
Several versions of the Python interpreter are available on Nix, as well as a
high amount of packages. The attribute `python3` refers to the default
interpreter, which is currently CPython 3.13. It is also possible to refer to
specific versions, e.g., `python313` refers to CPython 3.13, and `pypy` refers
to the default PyPy interpreter.
interpreter, which is currently CPython 3.13. The attribute `python` refers to
CPython 2.7 for backwards compatibility. It is also possible to refer to
specific versions, e.g., `python313` refers to CPython 3.13, and `pypy` refers to
the default PyPy interpreter.
Python is used a lot, and in different ways. This affects also how it is
packaged. In the case of Python on Nix, an important distinction is made between
@@ -635,6 +644,14 @@ In the Nixpkgs tree Python applications can be found throughout, depending on
what they do, and are called from the main package set. Python libraries,
however, are in separate sets, with one set per interpreter version.
The interpreters have several common attributes. One of these attributes is
`pkgs`, which is a package set of Python libraries for this specific
interpreter. E.g., the `toolz` package corresponding to the default interpreter
is `python3.pkgs.toolz`, and the CPython 3.13 version is `python313.pkgs.toolz`.
The main package set contains aliases to these package sets, e.g.
`pythonPackages` refers to `python.pkgs` and `python313Packages` to
`python313.pkgs`.
#### Installing Python and packages {#installing-python-and-packages}
The Nix and NixOS manuals explain how packages are generally installed. In the
@@ -1004,7 +1021,7 @@ information. The output of the function is a derivation.
An expression for `toolz` can be found in the Nixpkgs repository. As explained
in the introduction of this Python section, a derivation of `toolz` is available
for each interpreter version, e.g. `python313Packages.toolz` refers to the `toolz`
for each interpreter version, e.g. `python313.pkgs.toolz` refers to the `toolz`
derivation corresponding to the CPython 3.13 interpreter.
The above example works when you're directly working on
@@ -1019,7 +1036,7 @@ with import <nixpkgs> { };
(
let
my_toolz = python313Packages.buildPythonPackage (finalAttrs: {
my_toolz = python313.pkgs.buildPythonPackage (finalAttrs: {
pname = "toolz";
version = "0.10.0";
pyproject = true;
@@ -1029,7 +1046,7 @@ with import <nixpkgs> { };
hash = "sha256-CP3V73yWSArRHBLUct4hrNMjWZlvaaUlkpm1QP66RWA=";
};
build-system = [ python313Packages.setuptools ];
build-system = [ python313.pkgs.setuptools ];
# has no tests
doCheck = false;
@@ -1042,7 +1059,7 @@ with import <nixpkgs> { };
});
in
python313Packages.python.withPackages (
python313.withPackages (
ps: with ps; [
numpy
my_toolz
@@ -1063,11 +1080,6 @@ of [`withPackages`](#python.withpackages-function) we used a `let` expression. Y
`toolz` from the Nixpkgs package set this time, but instead took our own version
that we introduced with the `let` expression.
There is also a legacy API that can be accessed via `python3.pkgs`, which will also give access to
the Python package set for a given interpreter. This API is not recommended to be used anymore
because the package set at `python3.pkgs` is not spliced, while the package set at `python3Packages`
is. This can lead to strange errors during cross-compilation, or if Python is used at build time.
#### Handling dependencies {#handling-dependencies}
Our example, `toolz`, does not have any dependencies on other Python packages or system libraries.
@@ -1705,22 +1717,27 @@ should also be done when packaging `A`.
### How to override a Python package? {#how-to-override-a-python-package}
We can override the Python package set, then instantiate an interpreter with it.
In the following example we rename the `pandas` package and build it.
We can override the interpreter and pass `packageOverrides`. In the following
example we rename the `pandas` package and build it.
```nix
with import <nixpkgs> { };
let
pythonPackages = python3Packages.overrideScope (
final: prev: {
pandas = prev.pandas.overridePythonAttrs {
name = "foo";
};
}
);
in
(pythonPackages.python.withPackages (ps: [ ps.pandas ])).env
(
let
python =
let
packageOverrides = self: super: {
pandas = super.pandas.overridePythonAttrs (old: {
name = "foo";
});
};
in
pkgs.python313.override { inherit packageOverrides; };
in
python.withPackages (ps: [ ps.pandas ])
).env
```
Using `nix-build` on this expression will build an environment that contains the
@@ -1736,10 +1753,12 @@ the updated `scipy` version.
```nix
with import <nixpkgs> { };
let
pythonPackages = python313Packages.overrideScope (_: prev: { scipy = prev.scipy_0_17; });
in
(pythonPackages.python.withPackages (ps: [ ps.blaze ])).env
(
let
packageOverrides = self: super: { scipy = super.scipy_0_17; };
in
(pkgs.python313.override { inherit packageOverrides; }).withPackages (ps: [ ps.blaze ])
).env
```
The requested package `blaze` depends on `pandas` which itself depends on `scipy`.
@@ -1753,16 +1772,14 @@ let
pkgs = import <nixpkgs> { };
newpkgs = import pkgs.path {
overlays = [
(_: prev: {
(self: super: {
python313 =
let
pythonPackages = prev.python313Packages.overrideScope (
_: prev: {
numpy = prev.numpy_1_18;
}
);
packageOverrides = python-self: python-super: {
numpy = python-super.numpy_1_18;
};
in
pythonPackages.python3;
super.python313.override { inherit packageOverrides; };
})
];
};
@@ -1903,8 +1920,9 @@ pkgs.mkShell rec {
}
```
In case the supplied venvShellHook is insufficient, you can define your own
shell hook and adapt to your needs like in the following example:
In case the supplied venvShellHook is insufficient, or when Python 2 support is
needed, you can define your own shell hook and adapt to your needs like in the
following example:
```nix
with import <nixpkgs> { };
@@ -1917,6 +1935,8 @@ pkgs.mkShell rec {
name = "impurePythonEnv";
buildInputs = [
pythonPackages.python
# Needed when using python 2.7
# pythonPackages.virtualenv
# ...
];
@@ -1929,6 +1949,8 @@ pkgs.mkShell rec {
echo "Skipping venv creation, '${venvDir}' already exists"
else
echo "Creating new venv environment in path: '${venvDir}'"
# Note that the module venv was only introduced in python 3, so for 2.7
# this needs to be replaced with a call to virtualenv
${pythonPackages.python.interpreter} -m venv "${venvDir}"
fi
@@ -1955,17 +1977,19 @@ If you need to change a package's attribute(s) from `configuration.nix` you coul
```nix
{
nixpkgs.config.packageOverrides = final: _: {
python3Packages = super.python3Packages.overrideScope (pySuper: {
twisted = pySuper.twisted.overridePythonAttrs {
src = final.fetchPypi {
pname = "Twisted";
version = "19.10.0";
hash = "sha256-c5S6fycq5yKnTz2Wnc9Zm8TvCTvDkgOHSKSQ8XJKUV0=";
extension = "tar.bz2";
};
nixpkgs.config.packageOverrides = super: {
python3 = super.python3.override {
packageOverrides = python-self: python-super: {
twisted = python-super.twisted.overridePythonAttrs (oldAttrs: {
src = super.fetchPypi {
pname = "Twisted";
version = "19.10.0";
hash = "sha256-c5S6fycq5yKnTz2Wnc9Zm8TvCTvDkgOHSKSQ8XJKUV0=";
extension = "tar.bz2";
};
});
};
});
};
};
}
```
@@ -1981,7 +2005,7 @@ this snippet:
```nix
{
myPythonPackages = python3Packages.overrideScope (final: super: { twisted = <...>; });
myPythonPackages = python3Packages.override { overrides = self: super: { twisted = <...>; }; };
}
```
@@ -1990,17 +2014,19 @@ this snippet:
Use the following overlay template:
```nix
self: _: {
python3Packages = super.python3Packages.overrideScope (pySuper: {
twisted = pySuper.twisted.overrideAttrs {
src = final.fetchPypi {
pname = "Twisted";
version = "19.10.0";
hash = "sha256-c5S6fycq5yKnTz2Wnc9Zm8TvCTvDkgOHSKSQ8XJKUV0=";
extension = "tar.bz2";
};
self: super: {
python = super.python.override {
packageOverrides = python-self: python-super: {
twisted = python-super.twisted.overrideAttrs (oldAttrs: {
src = super.fetchPypi {
pname = "Twisted";
version = "19.10.0";
hash = "sha256-c5S6fycq5yKnTz2Wnc9Zm8TvCTvDkgOHSKSQ8XJKUV0=";
extension = "tar.bz2";
};
});
};
});
};
}
```

View File

@@ -89,7 +89,7 @@ Note that if the builder is running and you have created the above ssh conf file
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-22.11-darwin";
darwin.url = "github:nix-darwin/nix-darwin/master";
darwin.url = "github:lnl7/nix-darwin/master";
darwin.inputs.nixpkgs.follows = "nixpkgs";
};

View File

@@ -113,9 +113,6 @@
"ex-pkgs-replace-vars-with": [
"index.html#ex-pkgs-replace-vars-with"
],
"ex-pnpm-build-hook": [
"index.html#ex-pnpm-build-hook"
],
"ex-shfmt": [
"index.html#ex-shfmt"
],
@@ -349,33 +346,6 @@
"pkgs.treefmt.withConfig": [
"index.html#pkgs.treefmt.withConfig"
],
"pnpm-build-hook": [
"index.html#pnpm-build-hook"
],
"pnpm-build-hook-build-flags": [
"index.html#pnpm-build-hook-build-flags"
],
"pnpm-build-hook-code-snippet": [
"index.html#pnpm-build-hook-code-snippet"
],
"pnpm-build-hook-dont": [
"index.html#pnpm-build-hook-dont"
],
"pnpm-build-hook-exclusive-variables": [
"index.html#pnpm-build-hook-exclusive-variables"
],
"pnpm-build-hook-flags": [
"index.html#pnpm-build-hook-flags"
],
"pnpm-build-hook-script": [
"index.html#pnpm-build-hook-script"
],
"pnpm-build-hook-variables": [
"index.html#pnpm-build-hook-variables"
],
"pnpm-build-hook-honored-variables": [
"index.html#pnpm-build-hook-honored-variables"
],
"preface": [
"index.html#preface"
],
@@ -442,9 +412,6 @@
"sec-meta-identifiers-cpe": [
"index.html#sec-meta-identifiers-cpe"
],
"sec-meta-identifiers-purl": [
"index.html#sec-meta-identifiers-purl"
],
"sec-modify-via-packageOverrides": [
"index.html#sec-modify-via-packageOverrides"
],
@@ -466,30 +433,6 @@
"chap-overlays": [
"index.html#chap-overlays"
],
"sec-nixpkgs-release-26.11": [
"release-notes.html#sec-nixpkgs-release-26.11"
],
"sec-nixpkgs-release-26.11-highlights": [
"release-notes.html#sec-nixpkgs-release-26.11-highlights"
],
"sec-nixpkgs-release-26.11-incompatibilities": [
"release-notes.html#sec-nixpkgs-release-26.11-incompatibilities"
],
"sec-nixpkgs-release-26.11-lib": [
"release-notes.html#sec-nixpkgs-release-26.11-lib"
],
"sec-nixpkgs-release-26.11-lib-breaking": [
"release-notes.html#sec-nixpkgs-release-26.11-lib-breaking"
],
"sec-nixpkgs-release-26.11-lib-deprecations": [
"release-notes.html#sec-nixpkgs-release-26.11-lib-deprecations"
],
"sec-nixpkgs-release-26.11-lib-additions-improvements": [
"release-notes.html#sec-nixpkgs-release-26.11-lib-additions-improvements"
],
"sec-nixpkgs-release-26.11-notable-changes": [
"release-notes.html#sec-nixpkgs-release-26.11-notable-changes"
],
"sec-nixpkgs-release-26.05": [
"release-notes.html#sec-nixpkgs-release-26.05"
],
@@ -968,15 +911,6 @@
"var-meta-identifiers-possibleCPEs": [
"index.html#var-meta-identifiers-possibleCPEs"
],
"var-meta-identifiers-purl": [
"index.html#var-meta-identifiers-purl"
],
"var-meta-identifiers-purlParts": [
"index.html#var-meta-identifiers-purlParts"
],
"var-meta-identifiers-purls": [
"index.html#var-meta-identifiers-purls"
],
"var-meta-teams": [
"index.html#var-meta-teams"
],
@@ -1085,9 +1019,6 @@
"tar-files": [
"index.html#tar-files"
],
"writableTmpDirAsHomeHook": [
"index.html#writableTmpDirAsHomeHook"
],
"x86_64-darwin-26.05": [
"release-notes.html#x86_64-darwin-26.05"
],

View File

@@ -3,7 +3,6 @@
This section lists the release notes for each stable version of Nixpkgs and the current unstable revision.
```{=include=} sections
rl-2611.section.md
rl-2605.section.md
rl-2511.section.md
rl-2505.section.md

View File

@@ -1,4 +1,4 @@
# Nixpkgs 26.11 ("Zokor", 2026.11/??) {#sec-nixpkgs-release-26.11}
# Nixpkgs 26.11 (2026.11/??) {#sec-nixpkgs-release-26.11}
## Highlights {#sec-nixpkgs-release-26.11-highlights}
@@ -10,41 +10,13 @@
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
- `databricks-cli` has been updated from `0.290.2` to `1.x.x`, the first major release. OAuth tokens for interactive logins (`auth_type = databricks-cli`) are now stored in the OS-native secure store by default (Secret Service on Linux) instead of `~/.databricks/token-cache.json`; cached tokens from older versions are not migrated, so run `databricks auth login` once per profile after upgrading. To keep the previous file-backed storage, set `DATABRICKS_AUTH_STORAGE=plaintext` or add `auth_storage = plaintext` under `[__settings__]` in `~/.databrickscfg`. Additionally, the `vector_search_endpoints` DABs resource renamed `min_qps` to `target_qps` (and the `vector-search-endpoints` command renamed `--min-qps` to `--target-qps`). See the [upstream changelog](https://github.com/databricks/cli/blob/main/CHANGELOG.md) for details.
- `hurl` has been updated to `8.x.x` which has some breaking changes. See [upstream changelog](https://github.com/Orange-OpenSource/hurl/releases/tag/8.0.0) for details.
- `python3Packages.django-health-check` has been updated to major version 4. See its [migration guide](https://codingjoe.dev/django-health-check/migrate-to-v4/) and [changelog](https://github.com/codingjoe/django-health-check/releases/tag/4.0.0) for breaking changes.
- `libgdata` has been removed, as it was archived upstream and relied on the insecure libsoup 2.4.
- `uhttpmock` providing 0.0 ABI was removed. `uhttpmock_1_0` providing 1.0 ABI was renamed to `uhttpmock` and `uhttpmock_1_0` was kept as an alias.
- The ARMv5 Linux kernel build now uses a standard configuration and generates a standard compressed image instead of the deprecated legacy UBoot image format.
`lib.systems.{examples,platforms}.{sheevaplug,pogoplug4}` have been unified into `lib.systems.examples.armv5tel-multiplatform`.
Note that there is no official support for ARMv5 and it is not possible to build even a simple NixOS configuration out of the box.
- Support for the legacy UBoot image format has been removed from the Linux kernel builders, as it is deprecated upstream and no longer used by any platform in Nixpkgs.
- `requireFile` now sets `meta.license = lib.licenses.unfree` by default. Users of `requireFile`-based derivations that preserve this default will need to explicitly allow their evaluation as described in [](#sec-allow-unfree).
- `librest` providing 0.7 ABI was removed. `librest_1_0` providing 1.0 ABI was renamed to `librest` and `librest_1_0` was kept as an alias.
- `fetchPnpmDeps`' `fetcherVersion = 1` and `fetcherVersion = 2` have been
removed, as announced in the 26.05 release. Packages still using them now
throw an evaluation error and must migrate to `fetcherVersion = 3` (or later)
and regenerate their hashes. See the
[pnpm `fetcherVersion` section](#javascript-pnpm-fetcherVersion) of the manual
for details.
- Create the first release note entry in this section!
## Other Notable Changes {#sec-nixpkgs-release-26.11-notable-changes}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
- Package-URL (PURL, https://github.com/package-url/purl-spec) metadata identifier has been added for `fetchgit`, `fetchpypi` and `fetchFromGithub` fetchers.
`mkDerivation` has been adjusted to reuse this information.
Package-URLs allow reliably identifying and locating software packages.
Maintainers of derivations using the adapted fetchers should rely on the `drv.src.meta.identifiers.v1.purl` default identifier and can enhance their `drv.meta.identifiers.v1.purls` list once they would like to have additional identifiers.
Maintainers using `fetchurl` for `drv.src` are urged to adapt their `drv.meta.identifiers.purlParts` for proper identification.
- Create the first release note entry in this section!
## Nixpkgs Library {#sec-nixpkgs-release-26.11-lib}

View File

@@ -157,8 +157,6 @@ The list of Nix platform types for which the [Hydra](https://github.com/nixos/hy
}
```
Note that this does not affect whether reverse dependencies of the package are built on Hydra.
### `broken` {#var-meta-broken}
If set to `true`, the package is marked as "broken", meaning that it wont show up in [search.nixos.org](https://search.nixos.org/packages), and cannot be built or installed unless [explicitly allowed](#sec-allow-broken).
@@ -342,30 +340,3 @@ A readonly attribute that concatenates all CPE parts in one string.
#### `meta.identifiers.possibleCPEs` {#var-meta-identifiers-possibleCPEs}
A readonly attribute containing the list of guesses for what CPE for this package can look like. It includes all variants of version handling mentioned above. Each item is an attrset with attributes `cpeParts` and `cpe` for each guess.
### Package URL {#sec-meta-identifiers-purl}
[Package-URL](https://github.com/package-url/purl-spec) (PURL) is a specification to reliably identify and locate software packages.
Through identification of software packages, additional (non-major) use cases are e.g. software license cross-verification via third party databases or initial vulnerability response management.
Package-URLs shall default to the `mkDerivation.src`, as the original consumed software package is the single source of truth.
#### `meta.identifiers.purlParts` {#var-meta-identifiers-purlParts}
This attribute contains an attribute set of all parts of the PURL for this package.
* `type` mandatory [type](https://github.com/package-url/purl-spec/blob/18fd3e395dda53c00bc8b11fe481666dc7b3807a/docs/standard/summary.md) which needs to be provided
* `spec` specify the PURL in accordance with the [purl-spec](https://github.com/package-url/purl-spec/blob/18fd3e395dda53c00bc8b11fe481666dc7b3807a/purl-specification.md)
#### `meta.identifiers.purl` {#var-meta-identifiers-purl}
An extendable attribute which is built based on `purlParts`.
This is the main identifier of the software package.
For handling edge cases, consider using the list interface [`meta.identifiers.purls`](#var-meta-identifiers-purls).
#### `meta.identifiers.purls` {#var-meta-identifiers-purls}
An extendable list attribute which defaults to a single element equal to [`meta.identifiers.purl`](#var-meta-identifiers-purl).
It provides an interface for additional identifiers of `mkDerivation.src` or for identifiers of vendored dependencies inside `mkDerivation.src`, which maintainers may carefully consider to specify as well.
Additional identifiers are generally not recommended, as they might cause maintenance overhead or diverge.
For example, a source distribution `pkg:github` may be hard to keep correctly aligned with the corresponding binary distribution `pkg:pypi`.

View File

@@ -1,420 +0,0 @@
# Styleguide
## Writing Principles
A consistent style greatly increases the usability of all documentation and communication.
Use this page as a reference and style guide for our internal and external documentation.
### Knowledge Expectations
**Assume competence, not familiarity.**
Write for someone who knows a great deal — up to but not including this project.
**What readers know:**
- Basic computer operation
- Command line familiarity
- General interest in systems configuration
**What readers don't know:**
- NixOS-specific concepts
- NixOS ecosystem details or grammar
- NixOS workflows
If specific knowledge is required, mention it at the start of the page.
#### Show, Don't Tell
The fastest path to understanding is a working example.
People learn by doing, not by reading about doing.
**Recommended structure:**
- Start with the minimal working code or command
- Briefly explain what it does
- Cover edge cases or variations
- Link to further information instead of including it
#### Grammar and Style
**Sentence structure:**
- Use simple, direct sentences
- Break complex ideas into multiple short sentences
- Avoid nested clauses
**Bad:**
> The following command, which utilizes nixos-generate-config to produce a comprehensive hardware configuration, will write the results back into the respective configuration directory located on your local machine.
What the user does is hidden in the middle.
`nixos-generate-config` is a leaked implementation detail.
Users care about *detecting hardware*, not *the tool that does it*.
**Good:**
> This command detects your hardware and saves the configuration.
#### Content Organization
Lead with value. State what the reader will accomplish before explaining how.
**Bad:**
> To create a new NixOS configuration that you can later use as a webserver, first navigate to your project directory, then add a new host configuration file with the desired machine name.
**Good:**
Add a webserver configuration to your NixOS setup:
```nix
# hosts/webserver/configuration.nix
{ ... }:
{
services.nginx.enable = true;
}
```
Use **progressive disclosure**. Introduce concepts only when needed.
**Recommended structure:**
1. State the goal (one sentence)
2. Show the simplest working example
3. Explain concepts if needed
4. Provide advanced options separately or link to the reference
#### No Meta-commentary
Don't describe what the documentation does. Just do it.
**Don't:**
> This section explains how to configure networking.
> The following guide walks you through setting up a web server.
**Do:**
> Configure networking by setting:
> Set up a web server:
#### Code Examples
**Keep examples focused:**
- Show one concept at a time
- Use realistic but simple scenarios
- Avoid dependencies on other examples
**Minimal comments**
Let the code speak for itself.
Paste code examples directly and without further alteration.
**Bad:**
```nix
# This sets the hostname for the machine
{
networking.hostName = "webserver"; # Change this to your machine's hostname
# This enables SSH access
services.openssh.enable = true; # Required for remote deployment
}
```
**Good:**
```nix
{
networking.hostName = "webserver";
services.openssh.enable = true;
}
```
#### Lead with Practical Examples
Don't front-load theory. Readers want to accomplish something first, then understand why it works.
- Show configuration as *what you want*, not *how the module system works*
- Introduce Nix-specific concepts only when they are needed to complete the task
- Defer language mechanics to reference pages or `nix.dev`
**Bad:**
> Before adding a service, you need to understand the NixOS module system and attribute set merging.
**Good:**
Enable nginx:
```nix
{ services.nginx.enable = true; }
```
This adds nginx to your system configuration. Rebuild to apply:
```bash
sudo nixos-rebuild switch
```
#### Teach Nix through examples, not theory
Users learn the NixOS module system by seeing patterns first.
- Start with a working example
- Explanation follows the code
- Link deeper concepts instead of inlining them
- Link to `nix.dev` for optional learning
#### General Rules
- Abbreviate keys like `ssh-ed25519 AAAAC3NzaC…`
- Abbreviate IP addresses like `192.168.XXX.XXX`
- Variables are capitalized and start with `$`, e.g. `$YOUR_HOSTNAME`
- Variables should be directly usable during copy-paste
- Do **not** describe missing code parts (`#elided`, `#omitted`)
- **Machine vs Host**: use "machine" for the NixOS system identity, "host" for the physical or virtual hardware
#### Capitalization
- GB / RAM / HDD
- bootable USB drive
- Wi-Fi / DHCP / DNS
- macOS / NixOS / Nix / Linux
- Flakes
- git
#### Headings
Use sentence case. A reader scanning only headings should understand the page.
**Don't:**
> Getting Started
> Overview
> Configure The Database
**Do:**
> Set up a PostgreSQL database
> Configure networking
> Add a user to the system
#### Imperative Mood, Voice, and Person
Use imperative mood for instructions. Address the reader as "you", not "the user". Use active voice; in other words, make the subject do the action.
**Don't:**
> The user should run the following command.
> The configuration will need to be updated.
> The key is generated by the system.
**Do:**
> Run the command.
> Update the configuration.
> The system generates the key.
#### Tense
Use present tense for descriptions. Future tense makes documentation feel tentative.
**Don't:**
> This will create a new folder.
> Running this command will install the package.
**Do:**
> This creates a new folder.
> Running this command installs the package.
#### Be Confident
State facts. Don't hedge with "should," "might," "typically," or "usually" unless the behavior genuinely varies.
**Don't:**
> This should create the configuration file.
> The service will usually start automatically.
**Do:**
> This creates the configuration file.
> The service starts automatically.
#### Avoid Nominalizations
A nominalization is a verb turned into a noun, often by adding *-tion*, *-meant*, or *-ance* (e.g. "explanation", "selection"). The fix: find the hidden verb and use it directly.
**Don't:**
> Make a selection from the list.
> Provide an explanation of the error.
**Do:**
> Select from the list.
> Explain the error.
#### Plain Words
Technical precision for technical terms; plain language for everything else.
- "use" not "utilize"
- "start" not "initiate"
- "end" not "terminate"
- "help" not "facilitate"
- "send" not "transmit"
- "set up" not "establish"
- "find out" not "ascertain"
#### Filler Words and Weak Phrases
Cut words and phrases that add length without meaning.
Delete on sight:
- "simply", "just", "easily", "basically", "obviously"
- "in order to" → use "to"
- "allows you to" → use the verb directly
- "it's worth noting that" → just say the thing
- no exclamation marks in technical prose
**Don't:**
> Simply run `nixos-rebuild switch`.
> In order to deploy, you first need to run the command, which allows you to push the config.
> It's worth noting that this requires root access.
**Do:**
> Run `nixos-rebuild switch`.
> To deploy, run:
> This requires root access.
Every word must earn its place.
#### Writing Procedures
One instruction per sentence. Don't pack multiple actions into one sentence.
**Don't:**
> Navigate to your project directory and run the command, then check the output.
**Do:**
1. Navigate to your project directory.
2. Run the command.
3. Check the output.
Don't bury the negative. Key limitations should be prominent, not a footnote after a positive description.
**Don't:**
> This service supports multiple roles, integrates with existing modules, and works great for most setups (note that multiple instances are not supported).
**Do:**
> This service does not support multiple instances.
#### Consistent Terminology
Pick a term and stick to it. Don't swap synonyms to avoid repetition. In technical documentation, repetition is clarity.
**Don't:**
> Create a machine... configure the host... deploy the node.
**Do:**
> Create a machine... configure the machine... deploy the machine.
#### Links
Use descriptive link text. Never use "click here" or "this link."
**Don't:**
> For more information, see `[this page](url)`.
> Click `[here](url)` to read the reference.
**Do:**
> See the `[NixOS options reference](url)` for details.
> Read the `[NixOS module system guide](url)`.
Only link when the destination is directly relevant, not for generic background context (sometimes known as "Wikipedia-style links"). Readers feel obligated to click links, fearing they'll miss something important. Don't send them to a generic article about a technology when they're looking for how *your* system uses it.
**Don't:**
> Our software uses [SQLite](https://sqlite.org/) for storage.
> *(Reader clicks expecting schema details — finds a generic product page instead.)*
(Note that in the above example, the SQLite link is the SQLite home page, which is likely not pertinent.)
**Do:**
> See `[database schema](url)` for the full table structure.
#### UI Language
Match UI element names exactly: wording, casing, and spacing (even if a label seems oddly worded).
**Don't:**
> Click the generator button.
> Select the save option.
**Do:**
> Click **Generate a Key**.
> Click **Save Changes**.
Someone will go looking for a button labeled "generator." They will not find it. They will be frustrated.
Consistency between documentation and interface builds confidence. Words are part of the interface.
:::{.tip}
This can be tricky as UI changes; we don't yet have a policy in place for how to handle this. We welcome comments and suggestions.
:::
#### Clean system discipline
Your machine has things new users don't: cached credentials, installed tools, environment variables, existing configuration. When writing or updating documentation:
**Don't:**
> Write steps from memory on your development machine, assuming what works there will work everywhere.
**Do:**
> - Start on a clean system — a fresh VM or new user account
> - Take notes in real time as you work through the steps
> - Document every warning, prompt, or unexpected output the system shows
Also think in combinations: WSL vs native Linux, with and without existing keys. You don't need to test every matrix square — but you need to know which ones diverge.
#### Never type code — always copy-paste
Always copy commands and code from a terminal where you just ran them successfully. Never retype from memory.
**Don't:**
> Retype a command from memory into the documentation.
> Retype code into a code-block from memory
**Do:**
> Paste commands directly from the shell or IDE.
> Paste code that has been successfully validated with nix-instantiate or nix-build
Replace sensitive values with placeholders: `<YOUR-KEY>`, `<YOUR-HOST>`, `<YOUR-TOKEN>`.
Typed-from-memory commands introduce subtle errors. Even the most experienced software developers have occasional typos.

View File

@@ -1 +1 @@
26.11
26.05

View File

@@ -400,25 +400,7 @@ rec {
condition: passthru: drv:
let
commonAttrs =
drv
// listToAttrs (
outputsList
++ [
{
name = "all";
value = map (x: x.value) outputsList;
}
]
)
// passthru
// {
drvPath =
assert condition;
drv.drvPath;
outPath =
assert condition;
drv.outPath;
};
drv // (listToAttrs outputsList) // { all = map (x: x.value) outputsList; } // passthru;
outputsList = map (outputName: {
name = outputName;
@@ -440,7 +422,15 @@ rec {
};
}) (drv.outputs or [ "out" ]);
in
commonAttrs;
commonAttrs
// {
drvPath =
assert condition;
drv.drvPath;
outPath =
assert condition;
drv.outPath;
};
/**
Strip a derivation of all non-essential attributes, returning

View File

@@ -23,12 +23,9 @@
let
inherit (lib)
addErrorContext
any
assertMsg
attrNames
attrValues
concatLists
concatMap
concatMapStringsSep
concatStrings
concatStringsSep
@@ -55,7 +52,6 @@ let
isString
last
length
genAttrs
mapAttrs
mapAttrsToList
optionals
@@ -383,69 +379,55 @@ rec {
See the [git-config documentation](https://git-scm.com/docs/git-config#_variables) for possible values.
*/
toGitINI =
attrs:
let
mkSectionName =
let
containsQuote = hasInfix ''"'';
in
name:
let
containsQuote = hasInfix ''"'' name;
sections = splitString "." name;
section = head sections;
subsections = tail sections;
subsection = concatStringsSep "." subsections;
in
if containsQuote name || length sections == 1 then
name
else
''${head sections} "${concatStringsSep "." (tail sections)}"'';
if containsQuote || subsections == [ ] then name else ''${section} "${subsection}"'';
mkValueString =
v:
let
escape = replaceStrings [ "\n" " " ''"'' "\\" ] [ "\\n" "\\t" ''\"'' "\\\\" ];
escapedV = ''"${replaceStrings [ "\n" " " ''"'' "\\" ] [ "\\n" "\\t" ''\"'' "\\\\" ] v}"'';
in
v: mkValueStringDefault { } (if isString v then ''"${escape v}"'' else v);
mkValueStringDefault { } (if isString v then escapedV else v);
# generation for multiple ini values
mkKeyValue =
k: v:
let
mkKeyValue = mkKeyValueDefault { inherit mkValueString; } " = ";
attrToString = k: v: "\t" + mkKeyValue k v;
mkKeyValue = mkKeyValueDefault { inherit mkValueString; } " = " k;
in
k: v: if isList v then concatStringsSep "\n" (map (attrToString k) v) else attrToString k v;
concatStringsSep "\n" (map (kv: "\t" + mkKeyValue kv) (toList v));
# converts { a.b.c = 5; } to { "a.b".c = 5; } for toINI
gitFlattenAttrs =
let
isNonDrvAttrs = value: isAttrs value && !isDerivation value;
recurse =
path: value:
if isNonDrvAttrs value then
concatMap (name: recurse ([ name ] ++ path) value.${name}) (attrNames value)
if isAttrs value && !isDerivation value then
mapAttrsToList (name: value: recurse ([ name ] ++ path) value) value
else if length path > 1 then
[
{
${concatStringsSep "." (reverseList (tail path))}.${head path} = value;
}
]
{
${concatStringsSep "." (reverseList (tail path))}.${head path} = value;
}
else
[
{
${head path} = value;
}
];
{
${head path} = value;
};
in
attrs:
let
# Filter the names for any that contain nested attrsets. attrs that
# don't contain nested attrsets can stay the same =
namesToRewrite = filter (
name: isAttrs attrs.${name} && any isNonDrvAttrs (attrValues attrs.${name})
) (attrNames attrs);
attrsToRewrite = genAttrs namesToRewrite (name: attrs.${name});
in
removeAttrs attrs namesToRewrite // foldl recursiveUpdate { } (recurse [ ] attrsToRewrite);
attrs: foldl recursiveUpdate { } (flatten (recurse [ ] attrs));
toINI_ = toINI { inherit mkKeyValue mkSectionName; };
in
attrs: toINI_ (gitFlattenAttrs attrs);
toINI_ (gitFlattenAttrs attrs);
/**
`mkKeyValueDefault` wrapper that handles dconf INI quirks.

View File

@@ -575,13 +575,6 @@ lib.mapAttrs mkLicense (
free = false;
};
enpl = {
fullName = "Emmi AI Non-Production License";
url = "https://github.com/Emmi-AI/noether/blob/main/LICENSE.txt";
free = false;
redistributable = true;
};
epl10 = {
spdxId = "EPL-1.0";
fullName = "Eclipse Public License 1.0";
@@ -1157,12 +1150,6 @@ lib.mapAttrs mkLicense (
redistributable = true; # Only if used in Netdata products.
};
netboxLimitedUse = {
fullName = "NetBox Limited Use License 1.0";
free = false;
url = "https://github.com/netboxlabs/netbox-branching/blob/8465b9aee69ded23930cfe1a522695bfb8955a5a/LICENSE.md";
};
ngpl = {
spdxId = "NGPL";
fullName = "Nethack General Public License";

View File

@@ -1158,10 +1158,8 @@ let
value = if opt ? apply then opt.apply res.mergedValue else res.mergedValue;
warnDeprecation =
if (opt.type.deprecationMessage != null) then
warn "The type `types.${opt.type.name}' of option `${showOption loc}' defined in ${showFiles opt.declarations} is deprecated. ${opt.type.deprecationMessage}"
else
x: x;
warnIf (opt.type.deprecationMessage != null)
"The type `types.${opt.type.name}' of option `${showOption loc}' defined in ${showFiles opt.declarations} is deprecated. ${opt.type.deprecationMessage}";
in
warnDeprecation opt
@@ -1600,28 +1598,6 @@ let
inherit priority content;
};
/**
Applies a function to the value inside a definition,
preserving all surrounding properties (`mkForce`, `mkOrder`, `mkIf`, etc.).
*/
mapDefinitionValue =
f: def:
if def ? _type then
if def._type == "merge" then
def // { contents = map (mapDefinitionValue f) def.contents; }
else if def._type == "if" then
def // { content = mapDefinitionValue f def.content; }
else if def._type == "override" then
def // { content = mapDefinitionValue f def.content; }
else if def._type == "order" then
def // { content = mapDefinitionValue f def.content; }
else if def._type == "definition" then
def // { value = mapDefinitionValue f def.value; }
else
f def
else
f def;
mkBefore = mkOrder 500;
defaultOrderPriority = 1000;
mkAfter = mkOrder 1500;
@@ -2326,7 +2302,6 @@ private
importApply
importJSON
importTOML
mapDefinitionValue
mergeDefinitions
mergeAttrDefinitionsWithPrio
mergeOptionDecls # should be private?

View File

@@ -7,19 +7,12 @@ let
match
split
storeDir
escapeRegex
removePrefix
;
inherit (lib)
boolToString
filter
isString
readFile
concatStrings
length
elemAt
isList
any
;
inherit (lib.filesystem)
pathIsRegularFile
@@ -520,113 +513,6 @@ let
else
throw "repoRevToName: invalid kind";
/**
Filter a source tree by a list of doublestar-style glob patterns,
returning a source that only contains paths matching at least one
pattern. `*` matches a single path component, and `**` matches any
number of components.
# Inputs
`src`
: The source tree to filter.
`patterns`
: List of glob patterns to include, e.g. `[ "*.py" "src/**" ]`.
A leading `**` (e.g. `**\/*.py` for all `.py` files at any depth)
is also supported; the `\` here is just a Nix string escape used
to avoid closing this comment.
# Examples
:::{.example}
## `sourceByGlobs` usage example
- Include everything under a subdirectory
```nix
src = sourceByGlobs ./. [ "src/**" "tests/**" ]
```
- Include all .py files in root directory only
```nix
src = sourceByGlobs ./. [ "*.py" ]
```
:::
*/
sourceByGlobs =
let
splitPath = path: filter isString (split "/" path);
# Make component regex
mkRe =
s:
if s == "**" then
".*" # Has special handling below
else
concatStrings (map (tok: if isList tok then "[^/]*" else escapeRegex tok) (split "\\*+" s));
# Make a source filter function from pattern
mkMatcher =
pat:
let
globs = map mkRe (splitPath pat);
glen = length globs;
in
path: type:
let
path' = splitPath path;
plen = length path';
recurse =
gi: pi:
let
g = elemAt globs gi;
p = elemAt path' pi;
m = match g p != null;
in
if pi >= plen then # Reached end of path
gi >= glen || (type == "directory" || type == "symlink") # Only allow partial matches for directories
else if gi >= glen then # Reached end of globs
false
else if g == ".*" then # Special handling for **
(
# Lookahead for next glob match
if (gi + 1) == glen then
true
else if (match (elemAt globs (gi + 1)) p != null) then
recurse (gi + 1) pi
else if m then
recurse gi (pi + 1)
else
false
)
else if m then
recurse (gi + 1) (pi + 1)
else
false;
in
recurse 0 0;
mkSourceFilter =
root: patterns:
let
root' = "${toString root}/";
matchers = map mkMatcher patterns;
in
name: type:
let
name' = removePrefix root' name;
in
any (m: m name' type) matchers;
in
src: patterns:
lib.cleanSourceWith {
filter = mkSourceFilter src patterns;
inherit src;
};
in
{
inherit
@@ -646,7 +532,6 @@ in
sourceByRegex
sourceFilesBySuffices
sourceByGlobs
trace
;

View File

@@ -40,9 +40,10 @@ rec {
rust.rustcTarget = "powerpc-unknown-linux-gnu";
};
armv5tel-multiplatform = {
sheevaplug = {
config = "armv5tel-unknown-linux-gnueabi";
};
}
// platforms.sheevaplug;
raspberryPi = {
config = "armv6l-unknown-linux-gnueabihf";
@@ -98,6 +99,11 @@ rec {
useLLVM = true;
};
pogoplug4 = {
config = "armv5tel-unknown-linux-gnueabi";
}
// platforms.pogoplug4;
ben-nanonote = {
config = "mipsel-unknown-linux-uclibc";
}
@@ -149,6 +155,7 @@ rec {
gnu64 = {
config = "x86_64-unknown-linux-gnu";
};
gnu64_simplekernel = gnu64 // platforms.pc_simplekernel; # see test/cross/default.nix
gnu32 = {
config = "i686-unknown-linux-gnu";
};

View File

@@ -18,6 +18,10 @@ rec {
};
};
pc_simplekernel = lib.recursiveUpdate pc {
linux-kernel.autoModules = false;
};
##
## POWER
##
@@ -46,15 +50,138 @@ rec {
## ARM
##
armv5tel-multiplatform = {
pogoplug4 = {
linux-kernel = {
name = "armv5tel-multiplatform";
name = "pogoplug4";
baseConfig = "multi_v5_defconfig";
DTB = true;
autoModules = true;
preferBuiltin = true;
target = "zImage";
autoModules = false;
extraConfig = ''
# Ubi for the mtd
MTD_UBI y
UBIFS_FS y
UBIFS_FS_XATTR y
UBIFS_FS_ADVANCED_COMPR y
UBIFS_FS_LZO y
UBIFS_FS_ZLIB y
UBIFS_FS_DEBUG n
'';
makeFlags = [ "LOADADDR=0x8000" ];
target = "uImage";
# TODO reenable once manual-config's config actually builds a .dtb and this is checked to be working
#DTB = true;
};
gcc = {
arch = "armv5te";
};
};
sheevaplug = {
linux-kernel = {
name = "sheevaplug";
baseConfig = "multi_v5_defconfig";
autoModules = false;
extraConfig = ''
BLK_DEV_RAM y
BLK_DEV_INITRD y
BLK_DEV_CRYPTOLOOP m
BLK_DEV_DM m
DM_CRYPT m
MD y
BTRFS_FS m
XFS_FS m
JFS_FS m
EXT4_FS m
USB_STORAGE_CYPRESS_ATACB m
# mv cesa requires this sw fallback, for mv-sha1
CRYPTO_SHA1 y
# Fast crypto
CRYPTO_TWOFISH y
CRYPTO_TWOFISH_COMMON y
CRYPTO_BLOWFISH y
CRYPTO_BLOWFISH_COMMON y
IP_PNP y
IP_PNP_DHCP y
NFS_FS y
ROOT_NFS y
TUN m
NFS_V4 y
NFS_V4_1 y
NFS_FSCACHE y
NFSD m
NFSD_V2_ACL y
NFSD_V3 y
NFSD_V3_ACL y
NFSD_V4 y
NETFILTER y
IP_NF_IPTABLES y
IP_NF_FILTER y
IP_NF_MATCH_ADDRTYPE y
IP_NF_TARGET_LOG y
IP_NF_MANGLE y
IPV6 m
VLAN_8021Q m
CIFS y
CIFS_XATTR y
CIFS_POSIX y
CIFS_FSCACHE y
CIFS_ACL y
WATCHDOG y
WATCHDOG_CORE y
ORION_WATCHDOG m
ZRAM m
NETCONSOLE m
# Disable OABI to have seccomp_filter (required for systemd)
# https://github.com/raspberrypi/firmware/issues/651
OABI_COMPAT n
# Fail to build
DRM n
SCSI_ADVANSYS n
USB_ISP1362_HCD n
SND_SOC n
SND_ALI5451 n
FB_SAVAGE n
SCSI_NSP32 n
ATA_SFF n
SUNGEM n
IRDA n
ATM_HE n
SCSI_ACARD n
BLK_DEV_CMD640_ENHANCED n
FUSE_FS m
# systemd uses cgroups
CGROUPS y
# Latencytop
LATENCYTOP y
# Ubi for the mtd
MTD_UBI y
UBIFS_FS y
UBIFS_FS_XATTR y
UBIFS_FS_ADVANCED_COMPR y
UBIFS_FS_LZO y
UBIFS_FS_ZLIB y
UBIFS_FS_DEBUG n
# Kdb, for kernel troubles
KGDB y
KGDB_SERIAL_CONSOLE y
KGDB_KDB y
'';
makeFlags = [ "LOADADDR=0x0200000" ];
target = "uImage";
DTB = true; # Beyond 3.10
};
gcc = {
arch = "armv5te";
@@ -69,6 +196,11 @@ rec {
DTB = true;
autoModules = true;
preferBuiltin = true;
extraConfig = ''
# Disable OABI to have seccomp_filter (required for systemd)
# https://github.com/raspberrypi/firmware/issues/651
OABI_COMPAT n
'';
target = "zImage";
};
gcc = {
@@ -89,6 +221,15 @@ rec {
};
zero-gravitas = {
linux-kernel = {
name = "zero-gravitas";
baseConfig = "zero-gravitas_defconfig";
# Target verified by checking /boot on reMarkable 1 device
target = "zImage";
autoModules = false;
DTB = true;
};
gcc = {
fpu = "neon";
cpu = "cortex-a9";
@@ -96,6 +237,15 @@ rec {
};
zero-sugar = {
linux-kernel = {
name = "zero-sugar";
baseConfig = "zero-sugar_defconfig";
DTB = true;
autoModules = false;
preferBuiltin = true;
target = "zImage";
};
gcc = {
cpu = "cortex-a7";
fpu = "neon-vfpv4";
@@ -103,6 +253,49 @@ rec {
};
};
utilite = {
linux-kernel = {
name = "utilite";
maseConfig = "multi_v7_defconfig";
autoModules = false;
extraConfig = ''
# Ubi for the mtd
MTD_UBI y
UBIFS_FS y
UBIFS_FS_XATTR y
UBIFS_FS_ADVANCED_COMPR y
UBIFS_FS_LZO y
UBIFS_FS_ZLIB y
UBIFS_FS_DEBUG n
'';
makeFlags = [ "LOADADDR=0x10800000" ];
target = "uImage";
DTB = true;
};
gcc = {
cpu = "cortex-a9";
fpu = "neon";
};
};
guruplug = lib.recursiveUpdate sheevaplug {
# Define `CONFIG_MACH_GURUPLUG' (see
# <http://kerneltrap.org/mailarchive/git-commits-head/2010/5/19/33618>)
# and other GuruPlug-specific things. Requires the `guruplug-defconfig'
# patch.
linux-kernel.baseConfig = "guruplug_defconfig";
};
beaglebone = lib.recursiveUpdate armv7l-hf-multiplatform {
linux-kernel = {
name = "beaglebone";
baseConfig = "bb.org_defconfig";
autoModules = false;
extraConfig = ""; # TBD kernel config
target = "zImage";
};
};
# https://developer.android.com/ndk/guides/abis#v7a
armv7a-android = {
linux-kernel.name = "armeabi-v7a";
@@ -116,11 +309,32 @@ rec {
armv7l-hf-multiplatform = {
linux-kernel = {
name = "armv7l-hf-multiplatform";
baseConfig = "defconfig";
Major = "2.6"; # Using "2.6" enables 2.6 kernel syscalls in glibc.
baseConfig = "multi_v7_defconfig";
DTB = true;
autoModules = true;
preferBuiltin = true;
target = "zImage";
extraConfig = ''
# Serial port for Raspberry Pi 3. Wasn't included in ARMv7 defconfig
# until 4.17.
SERIAL_8250_BCM2835AUX y
SERIAL_8250_EXTENDED y
SERIAL_8250_SHARE_IRQ y
# Hangs ODROID-XU4
ARM_BIG_LITTLE_CPUIDLE n
# Disable OABI to have seccomp_filter (required for systemd)
# https://github.com/raspberrypi/firmware/issues/651
OABI_COMPAT n
# >=5.12 fails with:
# drivers/net/ethernet/micrel/ks8851_common.o: in function `ks8851_probe_common':
# ks8851_common.c:(.text+0x179c): undefined reference to `__this_module'
# See: https://lore.kernel.org/netdev/20210116164828.40545-1-marex@denx.de/T/
KS8851_MLL y
'';
};
gcc = {
# Some table about fpu flags:
@@ -153,6 +367,22 @@ rec {
autoModules = true;
preferBuiltin = true;
extraConfig = ''
# Raspberry Pi 3 stuff. Not needed for s >= 4.10.
ARCH_BCM2835 y
BCM2835_MBOX y
BCM2835_WDT y
RASPBERRYPI_FIRMWARE y
RASPBERRYPI_POWER y
SERIAL_8250_BCM2835AUX y
SERIAL_8250_EXTENDED y
SERIAL_8250_SHARE_IRQ y
# Cavium ThunderX stuff.
PCI_HOST_THUNDER_ECAM y
# Nvidia Tegra stuff.
PCI_TEGRA y
# The default (=y) forces us to have the XHCI firmware available in initrd,
# which our initrd builder can't currently do easily.
USB_XHCI_TEGRA m
@@ -186,6 +416,74 @@ rec {
};
fuloong2f_n32 = {
linux-kernel = {
name = "fuloong2f_n32";
baseConfig = "lemote2f_defconfig";
autoModules = false;
extraConfig = ''
MIGRATION n
COMPACTION n
# nixos mounts some cgroup
CGROUPS y
BLK_DEV_RAM y
BLK_DEV_INITRD y
BLK_DEV_CRYPTOLOOP m
BLK_DEV_DM m
DM_CRYPT m
MD y
EXT4_FS m
USB_STORAGE_CYPRESS_ATACB m
IP_PNP y
IP_PNP_DHCP y
IP_PNP_BOOTP y
NFS_FS y
ROOT_NFS y
TUN m
NFS_V4 y
NFS_V4_1 y
NFS_FSCACHE y
NFSD m
NFSD_V2_ACL y
NFSD_V3 y
NFSD_V3_ACL y
NFSD_V4 y
# Fail to build
DRM n
SCSI_ADVANSYS n
USB_ISP1362_HCD n
SND_SOC n
SND_ALI5451 n
FB_SAVAGE n
SCSI_NSP32 n
ATA_SFF n
SUNGEM n
IRDA n
ATM_HE n
SCSI_ACARD n
BLK_DEV_CMD640_ENHANCED n
FUSE_FS m
# Needed for udev >= 150
SYSFS_DEPRECATED_V2 n
VGA_CONSOLE n
VT_HW_CONSOLE_BINDING y
SERIAL_8250_CONSOLE y
FRAMEBUFFER_CONSOLE y
EXT2_FS y
EXT3_FS y
MAGIC_SYSRQ y
# The kernel doesn't boot at all, with FTRACE
FTRACE n
'';
target = "vmlinux";
};
gcc = {
arch = "loongson2f";
float = "hard";
@@ -231,6 +529,35 @@ rec {
};
};
# based on:
# https://www.mail-archive.com/qemu-discuss@nongnu.org/msg05179.html
# https://gmplib.org/~tege/qemu.html#mips64-debian
mips64el-qemu-linux-gnuabi64 = {
linux-kernel = {
name = "mips64el";
baseConfig = "64r2el_defconfig";
target = "vmlinuz";
autoModules = false;
DTB = true;
# for qemu 9p passthrough filesystem
extraConfig = ''
MIPS_MALTA y
PAGE_SIZE_4KB y
CPU_LITTLE_ENDIAN y
CPU_MIPS64_R2 y
64BIT y
CPU_MIPS64_R2 y
NET_9P y
NET_9P_VIRTIO y
9P_FS y
9P_FS_POSIX_ACL y
PCI y
VIRTIO_PCI y
'';
};
};
##
## Other
##
@@ -284,7 +611,7 @@ rec {
if version == null then
pc
else if lib.versionOlder version "6" then
armv5tel-multiplatform
sheevaplug
else if lib.versionOlder version "7" then
raspberrypi
else

View File

@@ -5114,96 +5114,4 @@ runTests {
);
expected = false;
};
# mapDefinitionValue
testMapDefinitionValuePlain = {
expr = lib.modules.mapDefinitionValue (x: x + 1) 5;
expected = 6;
};
testMapDefinitionValueMkForce = {
expr = lib.modules.mapDefinitionValue (x: x + 1) (lib.mkForce 5);
expected = lib.mkForce 6;
};
testMapDefinitionValueMkDefault = {
expr = lib.modules.mapDefinitionValue (x: x + 1) (lib.mkDefault 5);
expected = lib.mkDefault 6;
};
testMapDefinitionValueMkOrder = {
expr = lib.modules.mapDefinitionValue (x: x + 1) (lib.mkOrder 500 5);
expected = lib.mkOrder 500 6;
};
testMapDefinitionValueMkOverrideNested = {
expr = lib.modules.mapDefinitionValue (x: x + 1) (lib.mkForce (lib.mkOrder 500 5));
expected = lib.mkForce (lib.mkOrder 500 6);
};
testMapDefinitionValueMkIf = {
expr = lib.modules.mapDefinitionValue (x: x + 1) (lib.mkIf true 5);
expected = lib.mkIf true 6;
};
testMapDefinitionValueMkMerge = {
expr = lib.modules.mapDefinitionValue (x: x + 1) (
lib.mkMerge [
5
10
]
);
expected = lib.mkMerge [
6
11
];
};
testMapDefinitionValueMkDefinition = {
expr = lib.modules.mapDefinitionValue (x: x + 1) (
lib.mkDefinition {
file = "test";
value = 5;
}
);
expected = lib.mkDefinition {
file = "test";
value = 6;
};
};
testMapDefinitionValueDeep = {
expr = lib.modules.mapDefinitionValue (x: x + 1) (lib.mkIf true (lib.mkForce (lib.mkOrder 500 5)));
expected = lib.mkIf true (lib.mkForce (lib.mkOrder 500 6));
};
testMapDefinitionValueAllNested = {
expr = lib.modules.mapDefinitionValue (x: x + 1) (
lib.mkMerge [
(lib.mkIf true (
lib.mkForce (
lib.mkOrder 500 (
lib.mkDefinition {
file = "test";
value = lib.mkBefore 5;
}
)
)
))
]
);
expected = lib.mkMerge [
(lib.mkIf true (
lib.mkForce (
lib.mkOrder 500 (
lib.mkDefinition {
file = "test";
value = lib.mkBefore 6;
}
)
)
))
];
};
}

View File

@@ -899,19 +899,6 @@ checkConfigError 'Did you mean .enable., .ebe. or .enabled.\?' config ./error-ty
checkConfigError 'Did you mean .services\.myservice\.port. or .services\.myservice\.enable.\?' config.services.myservice ./error-typo-submodule.nix
checkConfigError 'Did you mean .services\.nginx\.virtualHosts\."example\.com"\.ssl\.certificate. or .services\.nginx\.virtualHosts\."example\.com"\.ssl\.certificateKey.\?' config.services.nginx.virtualHosts.\"example.com\" ./error-typo-deeply-nested.nix
# types.attrListOf
checkConfigOutput '"ok"' config.assertions ./declare-attrList.nix
checkConfigError 'A definition for option .attrListInt.badValue.a. is not of type .signed integer.. Definition values:' config.attrListIntStrict.badValue ./declare-attrList.nix
checkConfigError 'A definition for option .attrList.badListElem. is not of type .attribute list of string.. Each list element must be a single-key attribute set, but got 2 keys' config.attrListStrict.badListElem ./declare-attrList.nix
checkConfigError 'A definition for option .attrList.badString. is not of type .attribute list of string.. TypeError: Definition values:' config.attrListStrict.badString ./declare-attrList.nix
checkConfigError 'A definition for option .attrList.badListString. is not of type .attribute list of string.. Each list element must be an attribute set, but got string' config.attrListStrict.badListString ./declare-attrList.nix
# attrListWith valueMeta.definitions: file propagation
checkConfigError 'the-defs-file\.nix' config.argv ./attrList-valueMeta-definitions-file-diagnostic-forwarding.nix
# attrListOf does not support type merging
checkConfigError 'The option .merged. in .*/declare-attrList-type-merge.nix. is already declared in .*/declare-attrList-type-merge.nix' config.merged ./declare-attrList-type-merge.nix
cat <<EOF
====== module tests ======
$pass Pass

View File

@@ -1,25 +0,0 @@
{ lib, options, ... }:
let
inherit (lib) mkOption mkMerge types;
in
{
imports = [
{
_file = "the-defs-file.nix";
config.flags.my-flag = 3.14;
}
];
options.flags = mkOption {
type = types.attrListWith {
elemType = types.anything;
asAttrs = true;
mergeAttrValues = _name: vs: lib.head vs;
};
};
options.argv = mkOption { type = types.listOf types.str; };
# Feed definitions into argv; the float from the-defs-file.nix should cause
# a type error mentioning that file
config.argv = mkMerge options.flags.valueMeta.definitions;
}

View File

@@ -1,12 +0,0 @@
# Test that attrListOf does not support type merging:
# two declarations of the same option should fail.
{ lib, ... }:
let
inherit (lib) mkOption types;
in
{
imports = [
{ options.merged = mkOption { type = types.attrListOf types.str; }; }
{ options.merged = mkOption { type = types.attrListOf types.str; }; }
];
}

View File

@@ -1,925 +0,0 @@
# Run with:
# cd nixpkgs
# ./lib/tests/modules.sh
{ lib, config, ... }:
let
inherit (lib)
mkOption
mkOrder
mkMerge
mkBefore
mkAfter
mkIf
mkOverride
mkDefault
mkForce
types
;
in
{
options = {
attrList = mkOption {
type = types.lazyAttrsOf (types.attrListOf types.str);
};
attrListInt = mkOption {
type = types.lazyAttrsOf (types.attrListOf types.int);
};
attrListSubmodule = mkOption {
type = types.attrListOf (
types.submodule {
options.port = mkOption {
type = types.int;
description = "Port number";
};
options.host = mkOption {
type = types.str;
default = "localhost";
description = "Hostname";
};
}
);
};
# asAttrs: value is a merged attrset, ordered list in valueMeta
asAttrs = mkOption {
type = types.lazyAttrsOf (
types.attrListWith {
elemType = types.str;
asAttrs = true;
mergeAttrValues = _name: values: lib.last values;
}
);
};
# asAttrs with default mergeAttrValues: duplicates collected into lists
asAttrsDefault = mkOption {
type = types.lazyAttrsOf (
types.attrListWith {
elemType = types.int;
asAttrs = true;
}
);
};
# Strict wrappers that force deep evaluation, for testing error cases
attrListStrict = mkOption {
type = types.lazyAttrsOf types.raw;
};
attrListIntStrict = mkOption {
type = types.lazyAttrsOf types.raw;
};
# either picks attrList when input is list/attrset, int when input is int
eitherAttrListOrInt = mkOption {
type = types.either (types.attrListOf types.str) types.int;
};
eitherAttrListOrIntFallback = mkOption {
type = types.either (types.attrListOf types.str) types.int;
};
eitherIntOrAttrList = mkOption {
type = types.either types.int (types.attrListOf types.str);
};
eitherIntOrAttrListFallback = mkOption {
type = types.either types.int (types.attrListOf types.str);
};
assertions = mkOption { };
};
imports = [
# Second module contributing to multiModule
{
attrListInt.multiModule = [
{ b = 2; }
];
}
];
config = {
# List input: pass-through
attrList.listInput = [
{ a = "alpha"; }
{ b = "beta"; }
];
# Attrset input with explicit ordering
attrList.attrsetOrdered = {
x = mkOrder 200 "x-val";
y = mkOrder 100 "y-val";
};
# Mixed: list elements at default priority, attrset with mkOrder
attrList.mixed = mkMerge [
[
{ m = "from-list"; }
]
{
n = mkOrder 50 "from-attrset";
}
];
# Multiple list definitions from separate modules
attrListInt.multiModule = [
{ a = 1; }
];
# Attrset without mkOrder uses default priority
attrList.attrsetNoOrder = {
foo = "bar";
baz = "qux";
};
# Empty list
attrList.empty = [ ];
# Ordering test: lower priority first
attrList.ordering = mkMerge [
{
last = mkOrder 1500 "last";
}
{
first = mkOrder 500 "first";
}
[
{ middle = "middle"; }
]
];
# List elements support mkOrder/mkBefore/mkAfter
attrList.listOrdering = [
(mkAfter { z = "after"; })
{ m = "default"; }
(mkBefore { a = "before"; })
];
# Plain list entries land at default priority (1000):
# they appear after mkOrder 999 and before mkOrder 1001.
attrList.listDefaultPrio = mkMerge [
{ after = mkOrder 1001 "after"; }
[
{ mid = "list-entry"; }
]
{ before = mkOrder 999 "before"; }
];
# mkBefore and mkAfter
attrList.beforeAfter = mkMerge [
{
z = mkAfter "after";
}
{
a = mkBefore "before";
}
[
{ m = "default"; }
]
];
# mkIf: conditional definition
attrList.withMkIf = mkMerge [
(mkIf true [
{ yes = "included"; }
])
(mkIf false [
{ no = "excluded"; }
])
];
# mkOverride: higher priority override wins
attrList.withOverride = mkMerge [
(mkOverride 100 [
{ replaced = "gone"; }
])
(mkOverride 50 [
{ winner = "wins"; }
])
];
# mkDefault: lower priority than normal
attrList.withDefault = mkMerge [
(mkDefault [
{ default = "overridden"; }
])
[
{ normal = "wins"; }
]
];
# mkForce on the whole option (should discard other defs)
attrList.withForce = mkMerge [
[
{ discarded = "gone"; }
]
(mkForce [
{ forced = "wins"; }
])
];
# mkForce with mkOrder inside
attrList.forceWithOrder = mkForce [
(mkAfter { second = "after"; })
(mkBefore { first = "before"; })
];
# mkForce on individual element values; non-forced entries are discarded.
# Discarded values use a mix of: plain value, mkDefault(abort ...), mkOverride 100 (abort ...).
# The abort variants verify laziness: peelProperties sees the wrapper without forcing the content.
attrListInt.forceElementValue = [
{ a = mkDefault (abort "overridden by mkForce; laziness guarantee: MUST NOT be evaluated"); }
{ a = mkForce 42; }
{ a = mkOverride 100 (abort "overridden by mkForce; laziness guarantee: MUST NOT be evaluated"); }
{ b = 2; }
];
# mkForce on attrset format
attrList.forceAttrset = mkMerge [
[
{ discarded = "gone"; }
]
(mkForce {
x = mkOrder 200 "x-val";
y = mkOrder 100 "y-val";
})
];
# mkForce on repeated key: forced entries override non-forced
attrList.forceRepeatedKey = [
{ x = mkOverride 100 (abort "overridden by mkForce; laziness guarantee: MUST NOT be evaluated"); }
{ x = mkForce "wins"; }
{ x = mkForce "wins 2"; }
];
# mkForce on repeated key across mkMerge
attrList.forceRepeatedKeyMerge = mkMerge [
[
{ x = "unused: overridden by mkForce"; }
{ x = mkDefault (abort "overridden by mkForce; laziness guarantee: MUST NOT be evaluated"); }
]
[
{ x = mkOverride 100 (abort "overridden by mkForce; laziness guarantee: MUST NOT be evaluated"); }
]
[
{ x = mkForce "forced"; }
]
];
# mkForce on repeated key in attrset format across mkMerge
attrList.forceRepeatedKeyAttrs = mkMerge [
{
x = mkDefault (abort "overridden by mkForce; laziness guarantee: MUST NOT be evaluated");
y = "kept";
}
{ x = mkForce "forced"; }
];
# mkForce only affects the key it's on, other keys survive
attrList.forcePartialAttrs = mkMerge [
{
x = "unused: overridden by mkForce";
y = "normal y";
}
{ x = mkForce "forced x"; }
];
# mkForce in attrset format overrides same key from list format
attrList.forceMixedFormats = mkMerge [
[
{ x = mkOverride 100 (abort "overridden by mkForce; laziness guarantee: MUST NOT be evaluated"); }
{ y = "list y"; }
]
{ x = mkForce "attrset forced x"; }
];
# Nesting: list format, mkOrder on element + mkForce on value
attrList.nestListOrderForce = mkMerge [
[
{ x = mkDefault (abort "overridden by mkForce; laziness guarantee: MUST NOT be evaluated"); }
(mkOrder 500 { x = mkForce "forced-early"; })
(mkOrder 1500 { y = "late"; })
]
[
(mkOrder 100 { z = "earliest"; })
]
];
# Nesting: list format, mkOrder(mkForce(val)) on value
attrList.nestListOrderOfForce = mkMerge [
[
{ x = mkOverride 100 (abort "overridden by mkForce; laziness guarantee: MUST NOT be evaluated"); }
{ y = "plain-early"; }
]
[
{ x = mkOrder 1500 (mkForce "forced-late"); }
{ z = mkOrder 500 "earliest"; }
]
[
{ x = "unused: overridden by mkForce"; }
{ w = mkOrder 1200 "mid"; }
]
];
# Nesting: list format, mkForce(mkOrder(val)) on value
attrList.nestListForceOfOrder = mkMerge [
[
{ x = "unused: overridden by mkForce"; }
{ y = "plain-early"; }
]
[
{ x = mkForce (mkOrder 1500 "forced-late"); }
{ z = mkOrder 500 "earliest"; }
]
[
{ x = mkDefault (abort "overridden by mkForce; laziness guarantee: MUST NOT be evaluated"); }
{ w = mkOrder 1200 "mid"; }
]
];
# Nesting: attrset format, mkOrder wrapping mkForce
attrList.nestAttrsOrderOfForce = mkMerge [
{
x = mkOverride 100 (abort "overridden by mkForce; laziness guarantee: MUST NOT be evaluated");
y = "plain-early";
}
{
x = mkOrder 1500 (mkForce "forced-late");
z = mkOrder 500 "earliest";
}
{
x = "unused: overridden by mkForce";
w = mkOrder 1200 "mid";
}
];
# Nesting: attrset format, mkForce wrapping mkOrder
attrList.nestAttrsForceOfOrder = mkMerge [
{
x = "unused: overridden by mkForce";
y = "plain-early";
}
{
x = mkForce (mkOrder 1500 "forced-late");
z = mkOrder 500 "earliest";
}
{
x = mkDefault (abort "overridden by mkForce; laziness guarantee: MUST NOT be evaluated");
w = mkOrder 1200 "mid";
}
];
# mkIf false on individual element value filters it out (list format)
attrListInt.optionalValueList = [
{ a = mkIf true 1; }
{ b = mkIf false 2; }
{ c = 3; }
];
# mkIf false on individual element value filters it out (attrset format)
attrListInt.optionalValueAttrs = {
a = mkIf true 1;
b = mkIf false 2;
c = 3;
};
# submodule elemType: produces real valueMeta
attrListSubmodule = [
{
web = {
port = 80;
};
}
{
db = {
port = 5432;
host = "dbhost";
};
}
];
# asAttrs: unique keys — value is a plain attrset
asAttrs.unique = [
{ a = "alpha"; }
{ b = "beta"; }
];
# asAttrs: duplicate keys — last in order wins
asAttrs.duplicateKeys = mkMerge [
{ x = mkOrder 500 "first"; }
{ x = mkOrder 1500 "last"; }
{ y = "only"; }
];
# asAttrs: with ordering — value is attrset, ordered list in valueMeta
asAttrs.ordered = {
z = mkOrder 200 "z-val";
a = mkOrder 100 "a-val";
};
# asAttrs: with mkForce — forced key overrides
asAttrs.withForce = mkMerge [
{ x = "unused: overridden by mkForce"; }
{
x = mkForce "forced";
y = "kept";
}
];
# asAttrs: empty
asAttrs.empty = [ ];
# asAttrsDefault: unique keys
asAttrsDefault.unique = [
{ a = 1; }
{ b = 2; }
];
# asAttrsDefault: duplicate keys — default collects into lists
asAttrsDefault.duplicates = mkMerge [
{ x = mkOrder 500 10; }
{ x = mkOrder 1500 30; }
{ y = 99; }
[
{ x = 20; }
]
];
# either: attrList branch matches for list input
eitherAttrListOrInt = [
{ a = "hello"; }
{ b = "world"; }
];
# either: int input falls through to int branch
eitherAttrListOrIntFallback = 42;
# either (swapped): int first, attrList second — int input matches int
eitherIntOrAttrList = 42;
# either (swapped): list input falls through to attrList branch
eitherIntOrAttrListFallback = [
{ a = "hello"; }
];
# Bad: string where int expected
attrListInt.badValue = [
{ a = "not-an-int"; }
];
# Bad: list element with multiple keys
attrList.badListElem = [
{
a = "ok";
b = "extra";
}
];
# Bad: plain string instead of list or attrset
attrList.badString = "not-a-container";
# Bad: list element is a bare string, not a singleton attrset
attrList.badListString = [
"not a singleton attribute"
];
attrListStrict = builtins.mapAttrs (k: v: builtins.deepSeq v v) config.attrList;
attrListIntStrict = builtins.mapAttrs (k: v: builtins.deepSeq v v) config.attrListInt;
assertions =
let
c = lib.evalModules {
modules = [ ./declare-attrList.nix ];
};
cfg = c.config;
in
# List input preserves elements
assert
cfg.attrList.listInput == [
{ a = "alpha"; }
{ b = "beta"; }
];
# Attrset input with mkOrder: lower priority comes first
assert
cfg.attrList.attrsetOrdered == [
{ y = "y-val"; }
{ x = "x-val"; }
];
# Mixed input: mkOrder 50 < default 1000
assert
cfg.attrList.mixed == [
{ n = "from-attrset"; }
{ m = "from-list"; }
];
# Multiple definitions from separate modules concatenate
# (import module's definition comes before this module's)
assert
cfg.attrListInt.multiModule == [
{ b = 2; }
{ a = 1; }
];
# Attrset without mkOrder: all at default priority
assert builtins.length cfg.attrList.attrsetNoOrder == 2;
# Empty list stays empty
assert cfg.attrList.empty == [ ];
# List elements support mkOrder/mkBefore/mkAfter
assert
cfg.attrList.listOrdering == [
{ a = "before"; }
{ m = "default"; }
{ z = "after"; }
];
# Plain list entries are at default priority (1000)
assert
cfg.attrList.listDefaultPrio == [
{ before = "before"; }
{ mid = "list-entry"; }
{ after = "after"; }
];
# Ordering: 500 < 1000 (default) < 1500
assert
cfg.attrList.ordering == [
{ first = "first"; }
{ middle = "middle"; }
{ last = "last"; }
];
# mkBefore (500) < default (1000) < mkAfter (1500)
assert
cfg.attrList.beforeAfter == [
{ a = "before"; }
{ m = "default"; }
{ z = "after"; }
];
# mkIf true includes, mkIf false excludes
assert
cfg.attrList.withMkIf == [
{ yes = "included"; }
];
# mkOverride: only lowest priority override survives
assert
cfg.attrList.withOverride == [
{ winner = "wins"; }
];
# mkDefault is overridden by normal definitions
assert
cfg.attrList.withDefault == [
{ normal = "wins"; }
];
# mkForce discards other definitions
assert
cfg.attrList.withForce == [
{ forced = "wins"; }
];
# mkForce with mkOrder inside: ordering still works
assert
cfg.attrList.forceWithOrder == [
{ first = "before"; }
{ second = "after"; }
];
# mkForce on individual element values passes through
assert
cfg.attrListInt.forceElementValue == [
{ a = 42; }
{ b = 2; }
];
# mkForce on attrset format: discards other defs, ordering preserved
assert
cfg.attrList.forceAttrset == [
{ y = "y-val"; }
{ x = "x-val"; }
];
# mkForce on repeated key: forced entries override non-forced
assert
cfg.attrList.forceRepeatedKey == [
{ x = "wins"; }
{ x = "wins 2"; }
];
# mkForce on repeated key across mkMerge: forced wins
assert
cfg.attrList.forceRepeatedKeyMerge == [
{ x = "forced"; }
];
# mkForce on repeated key in attrset format: discards other x, keeps y
assert
cfg.attrList.forceRepeatedKeyAttrs == [
{ y = "kept"; }
{ x = "forced"; }
];
# mkForce only affects its own key
assert
cfg.attrList.forcePartialAttrs == [
{ y = "normal y"; }
{ x = "forced x"; }
];
# mkForce in attrset format overrides same key from list format
assert
cfg.attrList.forceMixedFormats == [
{ y = "list y"; }
{ x = "attrset forced x"; }
];
# Nesting: list format, mkOrder on element + mkForce on value
# z(100) < x-forced(500) < y(1500); x-discarded filtered by mkForce
assert
cfg.attrList.nestListOrderForce == [
{ z = "earliest"; }
{ x = "forced-early"; }
{ y = "late"; }
];
# Nesting: list format, mkOrder(mkForce(val)) on value
# z(500) < y(1000) < w(1200) < x-forced(1500); x-discarded entries filtered
assert
cfg.attrList.nestListOrderOfForce == [
{ z = "earliest"; }
{ y = "plain-early"; }
{ w = "mid"; }
{ x = "forced-late"; }
];
# Nesting: list format, mkForce(mkOrder(val)) on value
# z(500) < y(1000) < w(1200) < x-forced(1500); x-discarded entries filtered
assert
cfg.attrList.nestListForceOfOrder == [
{ z = "earliest"; }
{ y = "plain-early"; }
{ w = "mid"; }
{ x = "forced-late"; }
];
# Nesting: attrset format, mkOrder(mkForce(val))
# z(500) < y(1000) < w(1200) < x-forced(1500); x-discarded entries filtered
assert
cfg.attrList.nestAttrsOrderOfForce == [
{ z = "earliest"; }
{ y = "plain-early"; }
{ w = "mid"; }
{ x = "forced-late"; }
];
# Nesting: attrset format, mkForce(mkOrder(val))
# z(500) < y(1000) < w(1200) < x-forced(1500); x-discarded entries filtered
assert
cfg.attrList.nestAttrsForceOfOrder == [
{ z = "earliest"; }
{ y = "plain-early"; }
{ w = "mid"; }
{ x = "forced-late"; }
];
# mkIf false on individual element value filters it out (list format)
assert
cfg.attrListInt.optionalValueList == [
{ a = 1; }
{ c = 3; }
];
# mkIf false on individual element value filters it out (attrset format)
assert
cfg.attrListInt.optionalValueAttrs == [
{ a = 1; }
{ c = 3; }
];
# submodule: value, option descriptions, and valueMeta with real configuration metadata
assert
cfg.attrListSubmodule == [
{
web = {
host = "localhost";
port = 80;
};
}
{
db = {
host = "dbhost";
port = 5432;
};
}
];
assert
builtins.map (m: m.configuration.config) c.options.attrListSubmodule.valueMeta.attrList == [
{
host = "localhost";
port = 80;
}
{
host = "dbhost";
port = 5432;
}
];
assert
builtins.map (
m:
builtins.mapAttrs (n: o: o.description) (builtins.removeAttrs m.configuration.options [ "_module" ])
) c.options.attrListSubmodule.valueMeta.attrList == [
{
host = "Hostname";
port = "Port number";
}
{
host = "Hostname";
port = "Port number";
}
];
# valueMeta.attrList has one entry per (non-filtered) element
assert
c.options.attrList.valueMeta.attrs.listInput.attrList == [
{ }
{ }
];
assert
c.options.attrList.valueMeta.attrs.attrsetOrdered.attrList == [
{ }
{ }
];
assert
c.options.attrList.valueMeta.attrs.mixed.attrList == [
{ }
{ }
];
assert c.options.attrList.valueMeta.attrs.empty.attrList == [ ];
assert
c.options.attrListInt.valueMeta.attrs.optionalValueList.attrList == [
{ }
{ }
];
# either: headError is null for valid attrList input, so attrList branch is picked
assert
cfg.eitherAttrListOrInt == [
{ a = "hello"; }
{ b = "world"; }
];
# either: headError is non-null for int input, so int branch is picked
assert cfg.eitherAttrListOrIntFallback == 42;
# either (swapped): int first — int input matches
assert cfg.eitherIntOrAttrList == 42;
# either (swapped): list input falls through to attrList branch
assert
cfg.eitherIntOrAttrListFallback == [
{ a = "hello"; }
];
# asAttrs: unique keys — value is a plain attrset
assert
cfg.asAttrs.unique == {
a = "alpha";
b = "beta";
};
# ordered list preserved in valueMeta
assert
c.options.asAttrs.valueMeta.attrs.unique.attrListValue == [
{ a = "alpha"; }
{ b = "beta"; }
];
# asAttrs: duplicate keys — last in order wins
assert
cfg.asAttrs.duplicateKeys == {
x = "last";
y = "only";
};
assert
c.options.asAttrs.valueMeta.attrs.duplicateKeys.attrListValue == [
{ x = "first"; }
{ y = "only"; }
{ x = "last"; }
];
# asAttrs: ordered — value is attrset (unordered), list in valueMeta preserves order
assert
cfg.asAttrs.ordered == {
a = "a-val";
z = "z-val";
};
assert
c.options.asAttrs.valueMeta.attrs.ordered.attrListValue == [
{ a = "a-val"; }
{ z = "z-val"; }
];
# asAttrs: mkForce — forced key overrides, value is attrset
assert
cfg.asAttrs.withForce == {
x = "forced";
y = "kept";
};
# asAttrs: empty — value is empty attrset
assert cfg.asAttrs.empty == { };
# asAttrsDefault: unique keys — each value wrapped in singleton list
assert
cfg.asAttrsDefault.unique == {
a = [ 1 ];
b = [ 2 ];
};
# asAttrsDefault: duplicate keys — values collected into list in order
assert
cfg.asAttrsDefault.duplicates == {
x = [
10
20
30
];
y = [ 99 ];
};
assert
c.options.asAttrsDefault.valueMeta.attrs.duplicates.attrListValue == [
{ x = 10; }
{ y = 99; }
{ x = 20; }
{ x = 30; }
];
# valueMeta.definitions: mkDefinition records with mkOrder-wrapped single-key attrsets
# Use duplicateKeys which has mixed priorities and repeated keys
assert
let
defs = c.options.asAttrs.valueMeta.attrs.duplicateKeys.definitions;
extract = d: {
prio = d.value.priority;
value = d.value.content;
};
in
map extract defs == [
{
prio = 500;
value = {
x = "first";
};
}
{
prio = 1000;
value = {
y = "only";
};
}
{
prio = 1500;
value = {
x = "last";
};
}
];
# Round-trip: feed definitions through mapDefinitionValue + mkMerge into a listOf option
assert
let
rendered = lib.modules.mapDefinitionValue (attr: lib.cli.toCommandLineGNU { } attr) (
mkMerge c.options.asAttrs.valueMeta.attrs.duplicateKeys.definitions
);
result =
(lib.evalModules {
modules = [
{ options.out = mkOption { type = types.listOf types.str; }; }
{ config.out = rendered; }
# Interleave: mkOrder 800 lands between x(500) and y(1000)
{ config.out = mkOrder 800 [ "--interleaved" ]; }
];
}).config.out;
in
result == [
"-xfirst"
"--interleaved"
"-yonly"
"-xlast"
];
# Error cases are tested via checkConfigError in modules.sh
"ok";
};
}

View File

@@ -167,28 +167,6 @@ in
elemType = str;
lazy = false;
}).description == "attribute set of string";
assert (attrListOf str).description == "attribute list of string";
assert (attrListOf int).description == "attribute list of signed integer";
assert (attrListOf bool).description == "attribute list of boolean";
assert (attrListOf (either int str)).description == "attribute list of (signed integer or string)";
assert (attrListOf (nullOr str)).description == "attribute list of (null or string)";
assert (attrListOf (listOf str)).description == "attribute list of list of string";
assert
(attrListOf (attrsOf int)).description == "attribute list of attribute set of signed integer";
assert (attrListOf (attrListOf str)).description == "attribute list of attribute list of string";
assert (attrListOf ints.positive).description == "attribute list of (positive integer, meaning >0)";
assert
(attrListOf (enum [
"a"
"b"
])).description == "attribute list of (one of \"a\", \"b\")";
assert
(attrListOf (strMatching "[0-9]+")).description
== "attribute list of string matching the pattern [0-9]+";
assert
(attrListOf (nonEmptyListOf str)).description == "attribute list of non-empty (list of string)";
assert (attrListOf (submodule { })).description == "attribute list of (submodule)";
assert (coercedTo str abort int).description == "signed integer or string convertible to it";
assert (coercedTo int abort str).description == "string or signed integer convertible to it";
assert (coercedTo bool abort str).description == "string or boolean convertible to it";

View File

@@ -70,16 +70,4 @@ dir="$(nix-instantiate --eval --strict --read-write-mode --json --expr '(with im
EOF
) || die "cleanSourceWith + cleanSource"
dir="$(nix-instantiate --eval --strict --read-write-mode --json --expr '(with import <nixpkgs/lib>; "${
sources.sourceByGlobs '"$work"' [ "*.md" "**/*.o" ]
}")' | crudeUnquoteJSON)"
(cd "$dir"; find) | sort -f | diff -U10 - <(cat <<EOF
.
./module.o
./README.md
EOF
) || die "sourceByGlobs 1"
echo >&2 tests ok

View File

@@ -504,7 +504,7 @@ in
On each release the first letter is bumped and a new animal is chosen
starting with that new letter.
*/
codeName = "Zokor";
codeName = "Yarara";
/**
Returns the current nixpkgs version suffix as string.

View File

@@ -20,7 +20,6 @@ let
isStorePath
isString
substring
sort
throwIf
toDerivation
toList
@@ -28,7 +27,6 @@ let
;
inherit (lib.lists)
concatLists
concatMap
elemAt
filter
foldl'
@@ -72,11 +70,6 @@ let
mergeDefinitions
fixupOptionType
mergeOptionDecls
defaultOrderPriority
defaultOverridePriority
mkDefinition
mkOrder
mkOverride
;
inherit (lib.fileset)
isFileset
@@ -812,179 +805,6 @@ rec {
substSubModules = m: nonEmptyListOf (elemType.substSubModules m);
};
attrListOf = elemType: attrListWith { inherit elemType; };
attrListWith =
{
elemType,
asAttrs ? false,
mergeAttrValues ? _name: values: values,
}:
mkOptionType rec {
name = "attrListOf";
description = "attribute list of ${
optionDescriptionPhrase (class: class == "noun" || class == "composite") elemType
}";
descriptionClass = "composite";
check = {
__functor = _self: x: isList x || isAttrs x;
isV2MergeCoherent = true;
};
merge = {
__functor =
self: loc: defs:
(self.v2 { inherit loc defs; }).value;
v2 =
{ loc, defs }:
let
# Peel order and override properties from a value in any nesting order.
# Returns { value, prio, overridePrio }.
# mkOrder is stripped (we consume it for sorting).
# mkOverride is preserved in value (mergeDefinitions strips it).
peelProperties =
value:
let
type = value._type or null;
in
if type == "order" then
let
inner = peelProperties value.content;
in
{
inherit (inner) value overridePrio;
prio = value.priority;
}
else if type == "override" then
let
inner = peelProperties value.content;
in
{
inherit (inner) prio;
overridePrio = value.priority;
# Re-wrap mkOverride around the inner value (with mkOrder stripped)
value = mkOverride value.priority inner.value;
}
else
{
inherit value;
prio = defaultOrderPriority;
overridePrio = defaultOverridePriority;
};
# Extract { file, key, value, prio, overridePrio } from a single-key attrset,
# optionally wrapped in mkOrder at the element level (list format).
extractItem =
file: raw:
let
hasOrder = isType "order" raw;
item = if hasOrder then raw.content else raw;
key = head (attrNames item);
peeled = peelProperties item.${key};
in
if isAttrs item && length (attrNames item) == 1 then
peeled
// {
inherit file key;
prio = if hasOrder then raw.priority else peeled.prio;
}
else
throw "A definition for option `${showOption loc}' is not of type `${description}'. ${
if !isAttrs item then
"Each list element must be an attribute set, but got ${builtins.typeOf item}"
else
"Each list element must be a single-key attribute set, but got ${toString (length (attrNames item))} keys"
}.${
showDefs [
{
inherit file;
value = raw;
}
]
}";
# Convert a definition to a flat list of { file, key, value, prio, overridePrio }
defToItems =
def:
if isList def.value then
map (extractItem def.file) def.value
else
# isAttrs: properties are on the values directly
map (
key:
peelProperties def.value.${key}
// {
inherit (def) file;
inherit key;
}
) (attrNames def.value);
allItems = concatMap defToItems defs;
# Per key, find the highest override priority (lowest number)
winningOverridePrio = foldl' (
acc: item:
let
prev = acc.${item.key} or defaultOverridePriority;
in
if item.overridePrio < prev then
acc // { ${item.key} = item.overridePrio; }
else
# minimize `//` operations
acc
) { } allItems;
# Keep only items at the winning override priority for their key
items = sort (a: b: a.prio < b.prio) (
filter (
item: item.overridePrio == winningOverridePrio.${item.key} or defaultOverridePriority
) allItems
);
evals = filter (e: e.eval.optionalValue ? value) (
map (item: {
inherit (item) key file prio;
eval = mergeDefinitions (loc ++ [ item.key ]) elemType [
{
inherit (item) file value;
}
];
}) items
);
attrListValue = map (e: { ${e.key} = e.eval.optionalValue.value or e.eval.mergedValue; }) evals;
in
{
headError = checkDefsForError check loc defs;
value = if asAttrs then zipAttrsWith mergeAttrValues attrListValue else attrListValue;
valueMeta.attrList = map (e: e.eval.checkedAndMerged.valueMeta) evals;
/**
The ordered list representation, especially useful when asAttrs is set.
*/
valueMeta.attrListValue = attrListValue;
valueMeta.definitions = map (
e:
mkDefinition {
inherit (e) file;
value = mkOrder e.prio { ${e.key} = e.eval.optionalValue.value or e.eval.mergedValue; };
}
) evals;
};
};
emptyValue = {
value = if asAttrs then { } else [ ];
};
getSubOptions = prefix: elemType.getSubOptions (prefix ++ [ "*" ]);
getSubModules = elemType.getSubModules;
substSubModules =
m:
attrListWith {
inherit asAttrs mergeAttrValues;
elemType = elemType.substSubModules m;
};
typeMerge = t: null; # Disable type merging
nestedTypes.elemType = elemType;
};
attrsOf = elemType: attrsWith { inherit elemType; };
# A version of attrsOf that's lazy in its values at the expense of

View File

@@ -309,7 +309,8 @@
"members": {
"AndersonTorres": 5954806,
"adisbladis": 63286,
"panchoh": 471059
"panchoh": 471059,
"ttuegel": 563054
},
"name": "emacs"
},
@@ -406,13 +407,12 @@
"gnome": {
"description": "Maintain GNOME desktop environment and platform.",
"id": 3806133,
"maintainers": {
"jtojnar": 705123
},
"maintainers": {},
"members": {
"bobby285271": 20080233,
"dasj19": 7589338,
"hedning": 71978
"hedning": 71978,
"jtojnar": 705123
},
"name": "GNOME"
},
@@ -702,7 +702,6 @@
"Mic92": 96200,
"Radvendii": 1239929,
"edolstra": 1148549,
"lisanna-dettwyler": 72424138,
"lovesegfault": 7243783,
"xokdvium": 145775305
},
@@ -820,13 +819,14 @@
"description": "Maintain the Qt framework, KDE application suite, Plasma desktop environment and related projects",
"id": 4341481,
"maintainers": {
"K900": 386765,
"NickCao": 15247171,
"SuperSandro2000": 7258858
"ttuegel": 563054
},
"members": {
"FRidh": 2129135,
"K900": 386765,
"LunNova": 782440,
"NickCao": 15247171,
"SuperSandro2000": 7258858,
"bkchr": 5718007,
"ilya-fedin": 17829319,
"mjm": 1181,
@@ -896,7 +896,8 @@
"id": 7304571,
"maintainers": {
"Mic92": 96200,
"winterqt": 78392041
"winterqt": 78392041,
"zowoq": 59103226
},
"members": {},
"name": "rust"
@@ -935,7 +936,6 @@
"infinisil": 20525370
},
"members": {
"andir": 638836,
"pyrox0": 35778371
},
"name": "Security review"

View File

@@ -118,6 +118,13 @@
github = "0xB10C";
githubId = 19157360;
};
_0xbe7a = {
email = "nix@be7a.de";
name = "Bela Stoyan";
github = "0xbe7a";
githubId = 6232980;
keys = [ { fingerprint = "2536 9E86 1AA5 9EB7 4C47 B138 6510 870A 77F4 9A99"; } ];
};
_0xC45 = {
email = "jason@0xc45.com";
name = "Jason Vigil";
@@ -703,12 +710,6 @@
githubId = 25004152;
name = "Adrian Gunnar Lauterer";
};
adrielvelazquez = {
email = "AdrielVelazquez@gmail.com";
github = "AdrielVelazquez";
githubId = 3443378;
name = "Adriel Velazquez";
};
AdrienLemaire = {
email = "lemaire.adrien@gmail.com";
github = "AdrienLemaire";
@@ -1875,10 +1876,7 @@
github = "ap-1";
githubId = 67872951;
name = "Anish Pallati";
keys = [
{ fingerprint = "2A0A 16F5 E026 BE3B A47F B7A6 841A FB68 9A5B ACCB"; }
{ fingerprint = "B89E A3F3 16A7 411C B5B2 8A14 B1CA 8321 35A8 C503"; }
];
keys = [ { fingerprint = "2A0A 16F5 E026 BE3B A47F B7A6 841A FB68 9A5B ACCB"; } ];
};
ankhers = {
email = "me@ankhers.dev";
@@ -4158,13 +4156,6 @@
githubId = 30717258;
name = "bubblepipe";
};
bubylou = {
email = "bubylou@pm.me";
matrix = "@bubylou:matrix.org";
github = "bubylou";
githubId = 3878640;
name = "Nicholas Malcolm";
};
buckley310 = {
email = "sean.bck@gmail.com";
matrix = "@buckley310:matrix.org";
@@ -4291,12 +4282,6 @@
{ fingerprint = "D088 A5AF C45B 78D1 CD4F 457C 6957 B3B6 46F2 BB4E"; }
];
};
c6rg0 = {
email = "c6rg0@protonmail.com";
github = "c6rg0";
githubId = 64259221;
name = "c6rg0";
};
caarlos0 = {
name = "Carlos A Becker";
email = "carlos@becker.software";
@@ -4377,6 +4362,12 @@
githubId = 1516457;
name = "Christian Albrecht";
};
callahad = {
email = "dan.callahan@gmail.com";
github = "callahad";
githubId = 24193;
name = "Dan Callahan";
};
callumio = {
email = "git@cleslie.uk";
github = "callumio";
@@ -4564,12 +4555,6 @@
githubId = 53847249;
name = "Casey Avila";
};
castorNova2 = {
email = "solemnsquire@gmail.com";
github = "castorNova2";
githubId = 84083897;
name = "Nidhish Chauhan";
};
catap = {
email = "kirill@korins.ky";
github = "catap";
@@ -7619,11 +7604,6 @@
githubId = 54573;
name = "Edward Amsden";
};
eana = {
github = "eana";
githubId = 18534280;
name = "Jonas Eana";
};
earldouglas = {
email = "james@earldouglas.com";
github = "earldouglas";
@@ -7660,12 +7640,6 @@
github = "eclairevoyant";
name = "éclairevoyant";
};
eConnah = {
email = "git@econnah.uk";
github = "eConnah";
githubId = 63052937;
name = "Connor Alecks";
};
edanaher = {
email = "nixos@edanaher.net";
github = "edanaher";
@@ -8322,11 +8296,6 @@
githubId = 5427394;
name = "Ersin Akinci";
};
es-sai-fi = {
name = "es-sai-fi";
github = "es-sai-fi";
githubId = 96452903;
};
esau79p = {
github = "EsAu79p";
githubId = 21313906;
@@ -8683,13 +8652,6 @@
githubId = 88741530;
name = "Fabian Rigoll";
};
fabiob = {
email = "fabio@atelie.dev.br";
github = "fabiob";
githubId = 140875;
name = "Fábio Batista";
keys = [ { fingerprint = "D2D8 69D8 5EEC 30AD D327 B4A5 6CD5 5257 DB01 8B72"; } ];
};
fallenbagel = {
name = "fallenbagel";
github = "fallenbagel";
@@ -9256,12 +9218,6 @@
githubId = 119691;
name = "Michael Gough";
};
fraggerfox = {
email = "santhosh.raju@gmail.com";
github = "fraggerfox";
githubId = 189939;
name = "Santhosh Raju";
};
fraioveio = {
email = "francesco@vecchia.lol";
github = "FraioVeio";
@@ -9372,6 +9328,14 @@
githubId = 1943632;
name = "fro_ozen";
};
frogamic = {
email = "frogamic@protonmail.com";
github = "frogamic";
githubId = 10263813;
name = "Dominic Shelton";
matrix = "@frogamic:beeper.com";
keys = [ { fingerprint = "779A 7CA8 D51C C53A 9C51 43F7 AAE0 70F0 67EC 00A5"; } ];
};
frontear = {
name = "Ali Rizvi";
email = "perm-iterate-0b@icloud.com";
@@ -10160,12 +10124,6 @@
githubId = 6893840;
name = "Yacine Hmito";
};
gquetel = {
email = "gregor.quetel@telecom-paris.fr";
github = "gquetel";
githubId = 48437427;
name = "Grégor Quetel";
};
gracicot = {
email = "dev@gracicot.com";
matrix = "@gracicot-59e8f173d73408ce4f7ac803:gitter.im";
@@ -11091,7 +11049,7 @@
name = "Hugo Tavares Reis";
};
httprafa = {
email = "rafa.kienitz@proton.me";
email = "rafael.kienitz@gmail.com";
github = "HttpRafa";
githubId = 60099368;
name = "Rafael Kienitz";
@@ -11712,12 +11670,6 @@
githubId = 7348004;
name = "Benjamin Levy";
};
iogamaster = {
email = "iogamastercode+nixpkgs@gmail.com";
name = "IogaMaster";
github = "IogaMaster";
githubId = 67164465;
};
ionutnechita = {
email = "ionut_n2001@yahoo.com";
github = "ionutnechita";
@@ -12619,12 +12571,6 @@
githubId = 30251156;
name = "Jesse Moore";
};
jesssullivan = {
email = "jess@sulliwood.org";
github = "Jesssullivan";
githubId = 37297218;
name = "Jess Sullivan";
};
jethair = {
email = "jethair@duck.com";
github = "JetHair";
@@ -14387,6 +14333,12 @@
githubId = 451835;
name = "Kirill Elagin";
};
kirikaza = {
email = "k@kirikaza.ru";
github = "kirikaza";
githubId = 804677;
name = "Kirill Kazakov";
};
kirillrdy = {
email = "kirillrdy@gmail.com";
github = "kirillrdy";
@@ -15631,6 +15583,12 @@
githubId = 4312404;
name = "Chris Rendle-Short";
};
lightdiscord = {
email = "root@arnaud.sh";
github = "lightdiscord";
githubId = 24509182;
name = "Arnaud Pascal";
};
lightquantum = {
email = "self@lightquantum.me";
github = "PhotonQuantum";
@@ -15837,6 +15795,12 @@
githubId = 23727619;
name = "Luca Ruperto";
};
lnl7 = {
email = "daiderd@gmail.com";
github = "LnL7";
githubId = 689294;
name = "Daiderd Jordan";
};
lo1tuma = {
email = "schreck.mathias@gmail.com";
github = "lo1tuma";
@@ -16301,11 +16265,6 @@
githubId = 26020062;
name = "lumi";
};
luminarleaf = {
github = "LuminarLeaf";
githubId = 80571430;
name = "Luminar Leaf";
};
luna_1024 = {
email = "contact@luna.computer";
github = "luna-1024";
@@ -16484,12 +16443,6 @@
githubId = 8094643;
keys = [ { fingerprint = "BAA9 7711 58CA D457 B4AE 8B06 8188 423D 2FA2 0A65"; } ];
};
m4r1vs = {
email = "marius.niveri@gmail.com";
name = "Marius Niveri";
github = "m4r1vs";
githubId = 26097311;
};
m7medvision = {
name = "Mohammed";
github = "m7medVision";
@@ -17428,6 +17381,12 @@
githubId = 613740;
name = "Martin Baillie";
};
mbbx6spp = {
email = "me@susanpotter.net";
github = "mbbx6spp";
githubId = 564;
name = "Susan Potter";
};
mbe = {
email = "brandonedens@gmail.com";
github = "brandonedens";
@@ -18301,6 +18260,13 @@
githubId = 52108954;
name = "Matias Zwinger";
};
mkf = {
email = "m@mikf.pl";
github = "mkf";
githubId = 7753506;
name = "Michał Krzysztof Feiler";
keys = [ { fingerprint = "1E36 9940 CC7E 01C4 CFE8 F20A E35C 2D7C 2C6A C724"; } ];
};
mkg = {
email = "mkg@vt.edu";
github = "mkgvt";
@@ -18733,10 +18699,10 @@
keys = [ { fingerprint = "3B66 ACFA D10F 02AA B1D5  2CB1 8DD0 D81D 7D1F C61A"; } ];
};
mshnwq = {
email = "hmachnouk@proton.me";
email = "mshnwq.com@gmail.com";
github = "mshnwq";
githubId = 68467027;
name = "Mshnwq";
name = "Hayan Al-Machnouk";
};
msiedlarek = {
email = "mikolaj@siedlarek.pl";
@@ -19405,11 +19371,6 @@
githubId = 79978224;
name = "winston";
};
nelind = {
name = "Nel";
github = "nelind3";
githubId = 57587152;
};
nelsonjeppesen = {
email = "nix@jeppesen.io";
github = "NelsonJeppesen";
@@ -19438,12 +19399,6 @@
name = "neo";
email = "chojs990222@gmail.com";
};
neonvoid = {
email = "me@neonvoid.dev";
github = "neonvoidx";
githubId = 25580051;
name = "neonvoid";
};
neosimsim = {
email = "me@abn.sh";
github = "neosimsim";
@@ -19508,12 +19463,6 @@
githubId = 1488603;
name = "François Espinet";
};
netpleb = {
email = "netpleb@proton.me";
github = "netpleb";
githubId = 130105838;
name = "netpleb";
};
netthier = {
email = "netthier@proton.me";
name = "nett_hier";
@@ -20405,12 +20354,6 @@
email = "nyu@nyuku.ru";
githubId = 97425873;
};
nyxar77 = {
name = "nyxar77";
github = "nyxar77";
email = "dev@nyxar.space";
githubId = 153492661;
};
nyxonios = {
name = "nyxonios";
github = "Nyxonios";
@@ -21444,12 +21387,6 @@
githubId = 7420227;
name = "Peter Tri Ho";
};
peterwaller-arm = {
email = "peter.waller@arm.com";
github = "peterwaller-arm";
githubId = 52030119;
name = "Peter Waller";
};
peterwilli = {
email = "peter@codebuffet.co";
github = "peterwilli";
@@ -22165,12 +22102,6 @@
githubId = 246631;
keys = [ { fingerprint = "3E46 7EF1 54AA A1D0 C7DF A694 E45C B17F 1940 CA52"; } ];
};
pretentiousUsername = {
name = "Ian Mitchell";
email = "mitchell.ian.2001@gmail.com";
github = "pretentiousUsername";
githubId = 94192644;
};
priegger = {
email = "philipp@riegger.name";
github = "priegger";
@@ -23405,6 +23336,12 @@
githubId = 6047658;
name = "Ryan Horiguchi";
};
rht = {
email = "rhtbot@protonmail.com";
github = "rht";
githubId = 395821;
name = "rht";
};
rhydianjenkins = {
name = "Rhydian Jenkins";
github = "RhydianJenkins";
@@ -23440,13 +23377,6 @@
githubId = 61013287;
name = "Ricardo Steijn";
};
ricardomaps = {
email = "ricardomapurungajunior@gmail.com";
github = "ricardomaps";
githubId = 49507078;
name = "Ricardo Mapurunga Junior";
matrix = "@ricmaps:matrix.org";
};
richar = {
github = "ri-char";
githubId = 17962023;
@@ -25096,12 +25026,6 @@
githubId = 2049686;
name = "Sebastián Estrella";
};
seudonym = {
name = "Wahid Khan";
email = "wk170179+nixpkgs@gmail.com";
github = "seudonym";
githubId = 80459261;
};
seven_bear = {
name = "Edmond Freeman";
email = "edmondfreeman7@gmail.com";
@@ -25374,6 +25298,12 @@
githubId = 487050;
name = "Shea Levy";
};
shlok = {
email = "sd-nix-maintainer@quant.is";
github = "shlok";
githubId = 3000933;
name = "Shlok Datye";
};
shmish111 = {
email = "shmish111@gmail.com";
github = "shmish111";
@@ -25716,6 +25646,12 @@
githubId = 216167;
name = "Steve Jones";
};
sjmackenzie = {
email = "setori88@gmail.com";
github = "sjmackenzie";
githubId = 158321;
name = "Stewart Mackenzie";
};
skaphi = {
name = "Oskar Philipsson";
email = "oskar.philipsson@gmail.com";
@@ -25758,7 +25694,6 @@
};
skyesoss = {
name = "Skye Soss";
email = "skye@soss.website";
matrix = "@skyesoss:matrix.org";
github = "Skyb0rg007";
githubId = 30806179;
@@ -26156,12 +26091,6 @@
name = "sportshead";
keys = [ { fingerprint = "A6B6 D031 782E BDF7 631A 8E7E A874 DB2C BFD3 CFD0"; } ];
};
spotdemo4 = {
email = "me@trev.xyz";
github = "spotdemo4";
githubId = 3732640;
name = "spotdemo4";
};
spreetin = {
email = "spreetin@protonmail.com";
name = "David Falk";
@@ -28407,6 +28336,12 @@
githubId = 77488956;
name = "Timothy Tschnitzel";
};
ttuegel = {
email = "ttuegel@mailbox.org";
github = "ttuegel";
githubId = 563054;
name = "Thomas Tuegel";
};
tu-maurice = {
email = "valentin.gehrke+nixpkgs@zom.bi";
github = "tu-maurice";
@@ -28593,12 +28528,6 @@
githubId = 30677291;
name = "u2x1";
};
u3kkasha = {
email = "fida.waseque@gmail.com";
github = "u3kkasha";
githubId = 146055002;
name = "Fida Waseque Choudhury";
};
uakci = {
name = "uakci";
email = "git@uakci.space";
@@ -29498,12 +29427,6 @@
github = "wdavidw";
githubId = 46896;
};
wduo87391 = {
name = "wduo87391";
email = "wduo87391@gmail.com";
github = "wduo87391";
githubId = 197874825;
};
weathercold = {
name = "Weathercold";
email = "weathercold.scr@proton.me";
@@ -29690,11 +29613,6 @@
}
];
};
wilaz = {
name = "Wilaz";
github = "Wilaz";
githubId = 98198668;
};
wildsebastian = {
name = "Sebastian Wild";
email = "sebastian@wild-siena.com";

View File

@@ -49,7 +49,6 @@ lpeglabel,,,,1.6.0,,
lrexlib-gnu,,,,,,
lrexlib-oniguruma,,,,,,junestepp
lrexlib-pcre,,,,,,
lrexlib-pcre2,,,,,,wishstudio
lrexlib-posix,,,,,,
lsp-progress.nvim,,,,,5.1,gepbird
lsqlite3,,,,,,
@@ -168,7 +167,6 @@ telescope.nvim,,,,,5.1,
tiktoken_core,,,,,,natsukium
tl,,,,,,mephistophiles
toml-edit,,,,,5.1,mrcjkb
tomlua,,,,,,birdee
tree-sitter-cli,,,,,,
tree-sitter-http,,,,0.0.33-1,,
tree-sitter-norg,,,,,5.1,mrcjkb
@@ -176,7 +174,6 @@ tree-sitter-norg-meta,,,,,,
tree-sitter-orgmode,,,,,5.1,
utf8,,,,,,
tree-sitter-teal,,,,,,
vicious,,,,,,
vstruct,,,,,,
vusted,,,,,,
xml2lua,,,,,,teto
1 name rockspec ref server version luaversion maintainers
49 lrexlib-gnu
50 lrexlib-oniguruma junestepp
51 lrexlib-pcre
lrexlib-pcre2 wishstudio
52 lrexlib-posix
53 lsp-progress.nvim 5.1 gepbird
54 lsqlite3
167 tiktoken_core natsukium
168 tl mephistophiles
169 toml-edit 5.1 mrcjkb
tomlua birdee
170 tree-sitter-cli
171 tree-sitter-http 0.0.33-1
172 tree-sitter-norg 5.1 mrcjkb
174 tree-sitter-orgmode 5.1
175 utf8
176 tree-sitter-teal
vicious
177 vstruct
178 vusted
179 xml2lua teto

View File

@@ -2,7 +2,7 @@
Common configuration for headless machines (e.g., Amazon EC2 instances).
Disables serial consoles,
Disables [vesa](#opt-boot.vesa), serial consoles,
[emergency mode](#opt-systemd.enableEmergencyMode),
[grub splash images](#opt-boot.loader.grub.splashImage)
and configures the kernel to reboot automatically on panic.

View File

@@ -6,7 +6,7 @@ Status: in development. This functionality is new in NixOS 25.11, and significan
Traditionally, NixOS services were defined using sets of options *in* modules, not *as* modules. This made them non-modular, resulting in problems with composability, reuse, and portability.
A configuration management framework is an application of `evalModules` with the `class` and `specialArgs` input attribute set to particular values.
NixOS is such a configuration management framework, and so are [Home Manager](https://github.com/nix-community/home-manager) and [`nix-darwin`](https://github.com/nix-darwin/nix-darwin).
NixOS is such a configuration management framework, and so are [Home Manager](https://github.com/nix-community/home-manager) and [`nix-darwin`](https://github.com/lnl7/nix-darwin).
The service management component of a configuration management framework is the set of module options that connects Nix expressions with the underlying service (or process) manager.
For NixOS this is the module wrapping [`systemd`](https://systemd.io/), on `nix-darwin` this is the module wrapping [`launchd`](https://en.wikipedia.org/wiki/Launchd).

View File

@@ -494,47 +494,6 @@ Composed types are types that take a type as parameter. `listOf
Displays the option as `foo.<id>` in the manual.
`types.attrListOf` *`t`*
: An ordered list of single-attribute attribute sets, where each value is of *`t`* type.
The output is always `[ { name1 = value1; } { name2 = value2; } ... ]`.
Definitions can be provided in two formats, which may be mixed via `lib.mkMerge`, `imports`, etc:
- **List format**: `[ { a = 1; } { b = 2; } ]` — each element must be a single-attribute attribute set.
Elements may be wrapped in `lib.mkOrder` (or `lib.mkBefore`/`lib.mkAfter`) to control ordering;
unwrapped elements use the default order priority.
- **Attribute set format**: `{ a = lib.mkOrder 100 1; b = 2; }` — each name-value pair becomes a single-attribute attribute set in the output.
Values may be wrapped in `lib.mkOrder` (or `lib.mkBefore`/`lib.mkAfter`) to control ordering.
Values without `lib.mkOrder` use the default priority.
Multiple definitions of the same option are concatenated and then sorted by priority.
Entries at the same priority level preserve their definition order.
`types.attrListWith` { *`elemType`*, *`asAttrs`* ? false, *`mergeAttrValues`* ? _name: values: values }
: An ordered list of single-attribute attribute sets, where each value is of *`elemType`* type.
**Parameters**
`elemType` (Required)
: Specifies the type of each value in the attribute list.
`asAttrs`
: When `true`, the option value is an attribute set instead of a list.
Duplicate keys are merged using `mergeAttrValues`.
The ordered list is always available via `valueMeta.attrListValue`.
`mergeAttrValues`
: A function `name: values: mergedValue` that controls how duplicate keys
are combined when `asAttrs = true`. This is passed as the callback to
`lib.zipAttrsWith`. The `values` list is in order of priority.
By default, all values are collected into a list.
**Behavior**
- `attrListWith { elemType = t; }` is equivalent to `attrListOf t`
`types.uniq` *`t`*

View File

@@ -65,42 +65,6 @@
"module-services-keycloak-unix-socket": [
"index.html#module-services-keycloak-unix-socket"
],
"module-services-mautrix-discord": [
"index.html#module-services-mautrix-discord"
],
"module-services-mautrix-discord-advanced": [
"index.html#module-services-mautrix-discord-advanced"
],
"module-services-mautrix-discord-authentication": [
"index.html#module-services-mautrix-discord-authentication"
],
"module-services-mautrix-discord-backfill": [
"index.html#module-services-mautrix-discord-backfill"
],
"module-services-mautrix-discord-basic-example": [
"index.html#module-services-mautrix-discord-basic-example"
],
"module-services-mautrix-discord-basic-usage": [
"index.html#module-services-mautrix-discord-basic-usage"
],
"module-services-mautrix-discord-double-puppet": [
"index.html#module-services-mautrix-discord-double-puppet"
],
"module-services-mautrix-discord-encryption": [
"index.html#module-services-mautrix-discord-encryption"
],
"module-services-mautrix-discord-server-defaults": [
"index.html#module-services-mautrix-discord-server-defaults"
],
"module-services-mautrix-discord-setup": [
"index.html#module-services-mautrix-discord-setup"
],
"module-services-mautrix-discord-synapse": [
"index.html#module-services-mautrix-discord-synapse"
],
"module-services-mautrix-discord-troubleshooting": [
"index.html#module-services-mautrix-discord-troubleshooting"
],
"module-services-tandoor-recipes-migrating-media-option-move": [
"index.html#module-services-tandoor-recipes-migrating-media-option-move",
"index.html#module-services-tandoor-recipes-migrating-media-option-1"
@@ -2399,21 +2363,6 @@
"ch-release-notes": [
"release-notes.html#ch-release-notes"
],
"sec-release-26.11": [
"release-notes.html#sec-release-26.11"
],
"sec-release-26.11-highlights": [
"release-notes.html#sec-release-26.11-highlights"
],
"sec-release-26.11-new-modules": [
"release-notes.html#sec-release-26.11-new-modules"
],
"sec-release-26.11-incompatibilities": [
"release-notes.html#sec-release-26.11-incompatibilities"
],
"sec-release-26.11-notable-changes": [
"release-notes.html#sec-release-26.11-notable-changes"
],
"sec-release-26.05": [
"release-notes.html#sec-release-26.05"
],

View File

@@ -3,7 +3,6 @@
This section lists the release notes for each stable version of NixOS and current unstable revision.
```{=include=} sections
rl-2611.section.md
rl-2605.section.md
rl-2511.section.md
rl-2505.section.md

View File

@@ -13,7 +13,6 @@
- If you use LUKS disk encryption, ensure that `fileSystems."/".device` is set to `"/dev/mapper/<name>"`, where `<name>` matches the name in your `boot.initrd.luks.devices.<name>` definition, to avoid systemd timing out while prompting for a passphrase. If you have a more complex setup, e.g. with LVM on top of LUKS, you may need to add `"x-systemd.device-timeout=infinity"` to `fileSystems."/".options` instead. If you need to disable the timeout before you can boot into the system, pass `systemd.default_device_timeout_sec=infinity` on the kernel command line.
- The `cryptsetup-askpass` program is not available; use `systemctl default` instead, which will prompt for passphrases as necessary. If you pipe password responses into SSH over stdin, use `ssh -o RequestTTY=force` to ensure `systemctl default` gets a TTY to prompt on.
- Many kernel parameters have been replaced with native systemd versions; see [](#sec-boot-problems).
- `/dev/root` is not available with the systemd stage 1. In the old scripted stage 1, `/dev/root` was a symlink created by the init script from the `root=` kernel command line. With systemd stage 1, this symlink is not provided. If your configuration uses `/dev/root` in `fileSystems`, replace it with a stable device path such as `/dev/disk/by-label/...`, `/dev/disk/by-uuid/...`, or the appropriate `/dev/mapper/...` path.
- The system.nix file has been added as an alternative entry point to configuration.nix (and flake.nix) that allows configuring NixOS without using `nix-channel`.
This file must evaluate to a NixOS system derivation or an attribute set of such derivations, in which case the attribute to build has to be selected with the `--attr` option of `nixos-rebuild` or `nixos-install`.
@@ -96,8 +95,6 @@
- [kiwix-serve](https://wiki.kiwix.org/wiki/Kiwix-serve), a service that serves ZIM files (such as Wikipedia archives) over HTTP. Available as [services.kiwix-serve](#opt-services.kiwix-serve.enable).
- [matterjs-server](https://github.com/matter-js/matterjs-server), a Matter controller with a Home Assistant compatible WebSocket API. Available as [services.matterjs-server](#opt-services.matterjs-server.enable).
- [Remark42](https://remark42.com/), a self-hosted comment engine. Available as [services.remark42](#opt-services.remark42.enable).
- [LibreChat](https://www.librechat.ai/), open-source self-hostable ChatGPT clone with Agents and RAG APIs. Available as [services.librechat](#opt-services.librechat.enable).
@@ -197,8 +194,6 @@
- `services.home-assistant.config.lovelace.mode` has been renamed to `lovelace.dashboards` and `lovelace.resource_mode` to match the [configuration format](https://www.home-assistant.io/dashboards/dashboards/) required by Home Assistant 2026.8. Users who explicitly set `lovelace.mode` should remove it; the module generates the correct entries automatically.
- `fulcrum` has been updated to 2.x. If run against an existing v1.x database without the `--db-upgrade` flag it refuses to start; the upgrade takes around an hour on Bitcoin mainnet.
- `opentrack`, `slushload`, `synthesia`, `vtfedit`, `winbox`, `wineasio`, and `yabridge` use wineWow64Packages instead of wineWowPackages as wine versions >= 11.0 have deprecated wineWowPackages. As such, the prefixes for these packages are NOT backwards compatible and need to be regenerated with potential for data loss.
- []{#sec-release-26.05-incompatibilities-profiles-hardened-removed} `profiles/hardened` has been removed, because:

View File

@@ -1,4 +1,4 @@
# Release 26.11 ("Zokor", 2026.11/??) {#sec-release-26.11}
# Release 26.11 (2026.11/??) {#sec-release-26.11}
## Highlights {#sec-release-26.11-highlights}
@@ -10,26 +10,16 @@
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
- [tranquil](https://tangled.org/tranquil.farm/tranquil-pds) is an ATProto PDS (personal data server) implementation in Rust. A featureful, spec conscious and community driven alternative to the Bluesky reference implementation PDS. Available as [services.tranquil-pds](#opt-services.tranquil-pds.enable).
- [FlapAlerted](https://github.com/Kioubit/FlapAlerted), detects BGP flapping events and provides statistics based on BGP update messages. Available as [services.flap-alerted](#opt-services.flap-alerted.enable).
- Create the first release note entry in this section!
## Backward Incompatibilities {#sec-release-26.11-incompatibilities}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
- `boot.vesa` has been removed. It was deprecated in 2020 because Xorg now works better with kernel modesetting. If you still need the legacy VESA 800x600 fallback, set `boot.kernelParams = [ "vga=0x317" "nomodeset" ];` directly.
- Support for the legacy UBoot image format has been removed from the initrd generators, as it is deprecated upstream and no longer used by any platform in Nixpkgs.
- Python 2 has been removed from the top-level package set, as it is long past end-of-life. The `python2`, `python27`, `python2Full`, `python27Full`, `python2Packages`, and `python27Packages` attributes, along with the legacy `python`, `pythonFull`, and `pythonPackages` aliases, now throw an error directing you to `python3`. The `isPy2` and `isPy27` package flags have been removed accordingly. The only remaining Python 2 interpreter is vendored inside the `resholve` package for its `oil` dependency and is not exposed for general use.
- `services.timesyncd.extraConfig` has been removed in favor of the structured [](#opt-services.timesyncd.settings.Time) option. Use `services.timesyncd.settings.Time` to set any `timesyncd.conf(5)` option directly. For example, replace `services.timesyncd.extraConfig = "PollIntervalMaxSec=180";` with `services.timesyncd.settings.Time.PollIntervalMaxSec = 180;`.
- Create the first release note entry in this section!
## Other Notable Changes {#sec-release-26.11-notable-changes}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
- `boot.loader.systemd-boot` gained support for [Automatic Boot Assessment](https://systemd.io/AUTOMATIC_BOOT_ASSESSMENT/) via the new [`boot.loader.systemd-boot.bootCounting`](#opt-boot.loader.systemd-boot.bootCounting.enable) options, allowing automatic detection of and recovery from bad NixOS generations. As part of this change, boot loader entries on the ESP/XBOOTLDR partition are now named `nixos-<content-hash>.conf` instead of `nixos-generation-<n>.conf`; existing entries are migrated automatically on the next `nixos-rebuild boot`/`switch`.
- The `newuidmap` and `newgidmap` security wrappers are now installed with `cap_setuid`/`cap_setgid` file capabilities instead of the setuid-root bit, matching shadow's `--with-fcaps` install mode and other major distributions. Rootless containers (podman, docker-rootless, unprivileged user namespaces) are unaffected. The only behavioural change is that mapping host uid 0 via `/etc/subuid` (which NixOS never configures by default) additionally requires `cap_setfcap`; users who explicitly grant uid 0 in a subuid range can restore the previous behaviour with `security.wrappers.newuidmap.capabilities = lib.mkForce "cap_setuid,cap_setfcap+ep";`.
- Create the first release note entry in this section!

View File

@@ -1031,7 +1031,6 @@ class QemuMachine(BaseMachine):
As soon as we read some data from the socket here, we assume that
our root shell is operational.
"""
assert self.shell
(ready, _, _) = select.select([self.shell], [], [], timeout_secs)
return bool(ready)

View File

@@ -5,12 +5,7 @@
...
}:
let
inherit (lib)
mkOption
types
literalExpression
literalMD
;
inherit (lib) mkOption types literalMD;
inherit (config) sshBackdoor;
@@ -122,10 +117,9 @@ in
{
options = {
pythonTestDriverPackage = mkOption {
description = "Package containing the python NixOS test driver implementation";
description = "Package containing the python NixOS test driver implemetnation";
type = types.package;
default = hostPkgs.nixos-test-driver;
defaultText = literalExpression "hostPkgs.nixos-test-driver";
readOnly = true;
};

View File

@@ -217,7 +217,7 @@ in
# When imperative, seed /etc/vconsole.conf on first boot from declared
# defaults so the keymap isn't lost before localectl is ever used
systemd.tmpfiles.rules = lib.mkIf i18nCfg.imperativeLocale [
"C /etc/vconsole.conf - - - - ${vconsoleConf true}"
"C /etc/vconsole.conf - - - - ${vconsoleConf}"
];
systemd.services.reload-systemd-vconsole-setup = {

View File

@@ -47,8 +47,6 @@ in
gyre-fonts # TrueType substitutes for standard PostScript fonts
liberation_ttf
unifont
noto-fonts-cjk-sans
noto-fonts-cjk-serif
noto-fonts-color-emoji
]
);

View File

@@ -6,16 +6,12 @@
- ./nix.nix
- ./nix-flakes.nix
*/
{
config,
lib,
pkgs,
...
}:
{ config, lib, ... }:
let
inherit (lib)
mkIf
mkOption
stringAfter
types
;
@@ -74,7 +70,7 @@ in
defaultChannel = mkOption {
internal = true;
type = types.str;
default = "https://channels.nixos.org/nixos-unstable";
default = "https://channels.nixos.org/nixos-26.05";
description = "Default NixOS channel to which the root user is subscribed.";
};
};
@@ -102,10 +98,8 @@ in
''f /root/.nix-channels - - - - ${config.system.defaultChannel} nixos\n''
];
system.preSwitchChecks.no-nix-channel = mkIf (!cfg.channel.enable) (
lib.replaceStrings [ "@getent@" ] [ (lib.getExe pkgs.getent) ] (
builtins.readFile ./nix-channel/pre-switch-check.sh
)
system.activationScripts.no-nix-channel = mkIf (!cfg.channel.enable) (
stringAfter [ "etc" "users" ] (builtins.readFile ./nix-channel/activation-check.sh)
);
};
}

View File

@@ -1,6 +1,4 @@
warn() {
printf "\033[1;35mwarning:\033[0m %s\n" "$*" >&2
}
# shellcheck shell=bash
explainChannelWarning=0
if [[ -e "/root/.nix-defexpr/channels" ]]; then
@@ -13,13 +11,11 @@ if [[ -e "/nix/var/nix/profiles/per-user/root/channels" ]]; then
fi
while IFS=: read -r _ _ _ _ _ home _ ; do
if [[ -n "$home" && -e "$home/.nix-defexpr/channels" ]]; then
warn "$home/.nix-defexpr/channels exists, but channels have been disabled."
warn "$home/.nix-defexpr/channels exists, but channels have been disabled." 1>&2
explainChannelWarning=1
fi
done < <(@getent@ passwd)
done < <(getent passwd)
if [[ $explainChannelWarning -eq 1 ]]; then
echo "Due to https://github.com/NixOS/nix/issues/9574, Nix may still use these channels when NIX_PATH is unset." >&2
echo "Delete the above directory or directories to prevent this." >&2
echo "Due to https://github.com/NixOS/nix/issues/9574, Nix may still use these channels when NIX_PATH is unset." 1>&2
echo "Delete the above directory or directories to prevent this." 1>&2
fi
# This check is informational only and must never block a switch.
true

View File

@@ -0,0 +1,20 @@
# Run:
# nix-build -A nixosTests.nix-channel
{ lib, testers }:
let
inherit (lib) fileset;
runShellcheck = testers.shellcheck {
name = "activation-check";
src = fileset.toSource {
root = ./.;
fileset = fileset.unions [
./activation-check.sh
];
};
};
in
lib.recurseIntoAttrs {
inherit runShellcheck;
}

View File

@@ -36,22 +36,25 @@
# Avoid bundling an entire MariaDB installation on the ISO.
programs.kde-pim.enable = false;
systemd.tmpfiles.settings."10-installer-desktop" =
system.activationScripts.installerDesktop =
let
# Comes from documentation.nix when xserver and nixos.enable are true.
manualDesktopFile = "/run/current-system/sw/share/applications/nixos-manual.desktop";
homeDir = "/home/nixos/";
desktopDir = homeDir + "Desktop/";
in
{
"/home/nixos/Desktop".d = {
user = "nixos";
group = "users";
mode = "0755";
};
"/home/nixos/Desktop/nixos-manual.desktop"."L+".argument = manualDesktopFile;
"/home/nixos/Desktop/gparted.desktop"."L+".argument =
"${pkgs.gparted}/share/applications/gparted.desktop";
"/home/nixos/Desktop/calamares.desktop"."L+".argument =
"${pkgs.calamares-nixos}/share/applications/calamares.desktop";
};
''
mkdir -p ${desktopDir}
chown nixos ${homeDir} ${desktopDir}
ln -sfT ${manualDesktopFile} ${desktopDir + "nixos-manual.desktop"}
ln -sfT ${pkgs.gparted}/share/applications/gparted.desktop ${desktopDir + "gparted.desktop"}
ln -sfT ${pkgs.calamares-nixos}/share/applications/calamares.desktop ${
desktopDir + "calamares.desktop"
}
'';
}

View File

@@ -787,10 +787,9 @@ in
options = [ "mode=0755" ];
};
# With systemd stage 1, the ISO is identified by its volume label.
# With the scripted stage 1, /dev/root is a symlink to the actual
# root device specified on the kernel command line, created by the
# stage 1 init script.
# Note that /dev/root is a symlink to the actual root device
# specified on the kernel command line, created in the stage 1
# init script.
"/iso" = lib.mkImageMediaOverride {
device =
if config.boot.initrd.systemd.enable then

View File

@@ -314,27 +314,6 @@ in
name = "nixos-rebuild";
package = config.system.build.nixos-rebuild;
})
(
{ config, ... }:
{
options.system.tools.nixos-rebuild.enableRun0Elevation = lib.mkEnableOption ''
support for being targeted by `nixos-rebuild --elevate=run0
--ask-elevate-password`.
This enables polkit and adds {command}`polkit-stdin-agent` to
{option}`environment.systemPackages` so that a deploying host
can find a target-architecture agent at
{file}`<toplevel>/sw/bin/polkit-stdin-agent` after copying the
closure (which is required for cross-architecture deploys and
mismatched nixpkgs revisions to work).
'';
config = lib.mkIf config.system.tools.nixos-rebuild.enableRun0Elevation {
security.polkit.enable = lib.mkDefault true;
environment.systemPackages = [ pkgs.polkit-stdin-agent ];
};
}
)
(mkToolModule {
name = "nixos-version";
package = nixos-version;

View File

@@ -51,6 +51,7 @@ let
VENDOR_URL = optionalString isNixos "https://nixos.org/";
DOCUMENTATION_URL = optionalString isNixos "https://nixos.org/learn.html";
SUPPORT_URL = optionalString isNixos "https://nixos.org/community.html";
SUPPORT_END = "2026-12-31";
BUG_REPORT_URL = optionalString isNixos "https://github.com/NixOS/nixpkgs/issues";
ANSI_COLOR = optionalString isNixos "0;38;2;126;186;228";
IMAGE_ID = optionalString (config.system.image.id != null) config.system.image.id;

View File

@@ -394,6 +394,7 @@
./security/ca.nix
./security/chromium-suid-sandbox.nix
./security/default.nix
./security/dhparams.nix
./security/doas.nix
./security/duosec.nix
./security/google_oslogin.nix
@@ -732,7 +733,6 @@
./services/home-automation/home-assistant.nix
./services/home-automation/homebridge.nix
./services/home-automation/matter-server.nix
./services/home-automation/matterjs-server.nix
./services/home-automation/openthread-border-router.nix
./services/home-automation/wyoming/faster-whisper.nix
./services/home-automation/wyoming/openwakeword.nix
@@ -887,7 +887,6 @@
./services/misc/ihaskell.nix
./services/misc/iio-niri.nix
./services/misc/input-remapper.nix
./services/misc/inventree.nix
./services/misc/invidious-router.nix
./services/misc/irkerd.nix
./services/misc/jackett.nix
@@ -1018,7 +1017,6 @@
./services/monitoring/das_watchdog.nix
./services/monitoring/datadog-agent.nix
./services/monitoring/do-agent.nix
./services/monitoring/flap-alerted.nix
./services/monitoring/fluent-bit.nix
./services/monitoring/fusion-inventory.nix
./services/monitoring/gatus.nix
@@ -1794,7 +1792,6 @@
./services/web-apps/suwayomi-server.nix
./services/web-apps/szurubooru.nix
./services/web-apps/tabbyapi.nix
./services/web-apps/tranquil-pds.nix
./services/web-apps/trilium.nix
./services/web-apps/tt-rss.nix
./services/web-apps/tuliprox.nix

View File

@@ -15,8 +15,6 @@ in
programs.gamemode = {
enable = lib.mkEnableOption "GameMode to optimise system performance on demand";
package = lib.mkPackageOption pkgs "gamemode" { };
enableRenice =
lib.mkEnableOption "CAP_SYS_NICE on gamemoded to support lowering process niceness"
// {
@@ -55,7 +53,7 @@ in
config = lib.mkIf cfg.enable {
environment = {
systemPackages = [ cfg.package ];
systemPackages = [ pkgs.gamemode ];
etc."gamemode.ini".source = configFile;
};
@@ -65,14 +63,14 @@ in
gamemoded = {
owner = "root";
group = "root";
source = "${cfg.package}/bin/gamemoded";
source = "${pkgs.gamemode}/bin/gamemoded";
capabilities = "cap_sys_nice+ep";
};
};
};
systemd = {
packages = [ cfg.package ];
packages = [ pkgs.gamemode ];
user.services.gamemoded = {
# Use pkexec from the security wrappers to allow users to
# run libexec/cpugovctl & libexec/gpuclockctl as root with

View File

@@ -26,8 +26,6 @@ in
package = lib.mkPackageOption pkgs "gamescope" { };
enableWsi = lib.mkEnableOption "gamescope-wsi, the Vulkan WSI layer, alongside gamescope";
capSysNice = lib.mkOption {
type = lib.types.bool;
default = false;
@@ -78,11 +76,6 @@ in
};
environment.systemPackages = lib.mkIf (!cfg.capSysNice) [ gamescope ];
hardware.graphics = lib.optionalAttrs cfg.enableWsi {
extraPackages = with pkgs; [ gamescope-wsi ];
extraPackages32 = with pkgs; [ pkgsi686Linux.gamescope-wsi ];
};
};
meta.maintainers = [ ];

View File

@@ -12,15 +12,9 @@ in
options = {
programs.iotop = {
enable = lib.mkEnableOption "iotop + setcap wrapper";
package = lib.mkPackageOption pkgs "iotop" { example = "iotop-c"; };
enableDelayacct = lib.mkEnableOption ''
the task_delayacct kernel task delay accounting in order to show all
statistics'';
};
};
config = lib.mkIf cfg.enable {
security.wrappers.iotop = {
owner = "root";
@@ -28,7 +22,5 @@ in
capabilities = "cap_net_admin+p";
source = lib.getExe cfg.package;
};
boot.kernel.sysctl = lib.mkIf cfg.enableDelayacct { "kernel.task_delayacct" = 1; };
};
}

View File

@@ -267,22 +267,13 @@ in
group = "root";
inherit source;
};
mkCapRoot = capabilities: source: {
inherit capabilities source;
owner = "root";
group = "root";
};
in
{
su = mkSetuidRoot "${config.security.shadow.su.package}/bin/su";
sg = mkSetuidRoot "${cfg.package.out}/bin/sg";
newgrp = mkSetuidRoot "${cfg.package.out}/bin/newgrp";
# File capabilities instead of setuid root, mirroring shadow's
# own --with-fcaps install mode and what Arch/Fedora/Debian ship.
# The kernel only requires CAP_SETUID/CAP_SETGID over the parent
# userns to write a multi-line /proc/<pid>/[ug]id_map.
newuidmap = mkCapRoot "cap_setuid+ep" "${cfg.package.out}/bin/newuidmap";
newgidmap = mkCapRoot "cap_setgid+ep" "${cfg.package.out}/bin/newgidmap";
newuidmap = mkSetuidRoot "${cfg.package.out}/bin/newuidmap";
newgidmap = mkSetuidRoot "${cfg.package.out}/bin/newgidmap";
}
// lib.optionalAttrs config.users.mutableUsers {
chsh = mkSetuidRoot "${cfg.package.out}/bin/chsh";

View File

@@ -56,29 +56,38 @@ in
'';
apply =
steam:
steam.override (prev: {
extraEnv =
(lib.optionalAttrs (cfg.extraCompatPackages != [ ]) {
STEAM_EXTRA_COMPAT_TOOLS_PATHS = extraCompatPaths;
})
// (lib.optionalAttrs cfg.extest.enable {
LD_PRELOAD = "${pkgs.pkgsi686Linux.extest}/lib/libextest.so";
})
// (prev.extraEnv or { });
extraLibraries =
pkgs:
let
prevLibs = if prev ? extraLibraries then prev.extraLibraries pkgs else [ ];
additionalLibs =
with config.hardware.graphics;
if pkgs.stdenv.hostPlatform.is64bit then
[ package ] ++ extraPackages
else
[ package32 ] ++ extraPackages32;
in
prevLibs ++ additionalLibs;
extraPkgs = p: (cfg.extraPackages ++ lib.optionals (prev ? extraPkgs) (prev.extraPkgs p));
});
steam.override (
prev:
{
extraEnv =
(lib.optionalAttrs (cfg.extraCompatPackages != [ ]) {
STEAM_EXTRA_COMPAT_TOOLS_PATHS = extraCompatPaths;
})
// (lib.optionalAttrs cfg.extest.enable {
LD_PRELOAD = "${pkgs.pkgsi686Linux.extest}/lib/libextest.so";
})
// (prev.extraEnv or { });
extraLibraries =
pkgs:
let
prevLibs = if prev ? extraLibraries then prev.extraLibraries pkgs else [ ];
additionalLibs =
with config.hardware.graphics;
if pkgs.stdenv.hostPlatform.is64bit then
[ package ] ++ extraPackages
else
[ package32 ] ++ extraPackages32;
in
prevLibs ++ additionalLibs;
extraPkgs = p: (cfg.extraPackages ++ lib.optionals (prev ? extraPkgs) (prev.extraPkgs p));
}
// lib.optionalAttrs (cfg.gamescopeSession.enable && gamescopeCfg.capSysNice) {
buildFHSEnv = pkgs.buildFHSEnv.override {
# use the setuid wrapped bubblewrap
bubblewrap = "${config.security.wrapperDir}/..";
};
}
);
description = ''
The Steam package to use. Additional libraries are added from the system
configuration to ensure graphics work properly.
@@ -209,6 +218,16 @@ in
enable32Bit = true;
};
security.wrappers = lib.mkIf (cfg.gamescopeSession.enable && gamescopeCfg.capSysNice) {
# needed or steam fails
bwrap = {
owner = "root";
group = "root";
source = "${pkgs.bubblewrap}/bin/bwrap";
setuid = true;
};
};
programs.steam.extraPackages = cfg.fontPackages;
programs.gamescope.enable = lib.mkDefault cfg.gamescopeSession.enable;

View File

@@ -23,7 +23,7 @@ in
enable = lib.mkEnableOption "TUN mode of Throne";
setuid = lib.mkEnableOption ''
setting suid bit for ThroneCore to run as root, which is less
setting suid bit for throne-core to run as root, which is less
secure than default setcap method but closer to upstream assumptions.
Enable this if you find the default setcap method configured in
this module doesn't work for you
@@ -36,8 +36,8 @@ in
environment.systemPackages = [ cfg.package ];
security.wrappers."ThroneCore" = lib.mkIf cfg.tunMode.enable {
source = "${cfg.package}/share/throne/ThroneCore";
security.wrappers.throne-core = lib.mkIf cfg.tunMode.enable {
source = "${cfg.package}/share/throne/Core";
owner = "root";
group = "root";
setuid = lib.mkIf cfg.tunMode.setuid true;
@@ -49,7 +49,7 @@ in
# avoid resolvectl password prompt popping up three times
# https://github.com/SagerNet/sing-tun/blob/0686f8c4f210f4e7039c352d42d762252f9d9cf5/tun_linux.go#L1062
# We use a hack here to determine whether the requested process is ThroneCore
# We use a hack here to determine whether the requested process is throne-core
# Detect whether its capabilities contain at least `net_admin` and `net_raw`.
# This does not reduce security, as we can already bypass `resolved` with them.
# Alternatives to consider:
@@ -61,7 +61,7 @@ in
# change its own cmdline. `/proc/<pid>/exe` is reliable but kernel forbids
# checking that entry of process from different users, and polkit runs `spawn`
# as an unprivileged user.
# 3. Put ThroneCore into a systemd service, and let polkit check service name.
# 3. Put throne-core into a systemd service, and let polkit check service name.
# This is the most secure and convenient way but requires heavy modification
# to Throne source code. Would be good to let upstream support that eventually.
security.polkit.extraConfig =
@@ -69,7 +69,6 @@ in
''
polkit.addRule(function(action, subject) {
const allowedActionIds = [
"org.freedesktop.resolve1.revert",
"org.freedesktop.resolve1.set-domains",
"org.freedesktop.resolve1.set-default-route",
"org.freedesktop.resolve1.set-dns-servers"

View File

@@ -249,8 +249,8 @@ in
setopt ${builtins.concatStringsSep " " cfg.setOptions}
''}
# Determine current fqdn hostname
HOST=$(hostname --fqdn)
# Alternative method of determining short and full hostname.
HOST=${config.networking.fqdnOrHostName}
# Setup command line history.
# Don't export these, otherwise other shells (bash) will try to use same HISTFILE.

View File

@@ -125,9 +125,6 @@ in
(mkRemovedOptionModule [ "programs" "yabar" ]
"programs.yabar has been removed from NixOS. This is because the yabar repository has been archived upstream."
)
(mkRemovedOptionModule [ "security" "dhparams" ] ''
The security.dhparams module has been removed as RFC 7919 has shown that generating your own params is problematic.
'')
(mkRemovedOptionModule [ "security" "hideProcessInformation" ] ''
The hidepid module was removed, since the underlying machinery
is broken when using cgroups-v2.

View File

@@ -0,0 +1,223 @@
{
config,
lib,
options,
pkgs,
...
}:
let
inherit (lib) literalExpression mkOption types;
cfg = config.security.dhparams;
opt = options.security.dhparams;
bitType = types.addCheck types.int (b: b >= 16) // {
name = "bits";
description = "integer of at least 16 bits";
};
paramsSubmodule =
{ name, config, ... }:
{
options.bits = mkOption {
type = bitType;
default = cfg.defaultBitSize;
defaultText = literalExpression "config.${opt.defaultBitSize}";
description = ''
The bit size for the prime that is used during a Diffie-Hellman
key exchange.
'';
};
options.path = mkOption {
type = types.path;
readOnly = true;
description = ''
The resulting path of the generated Diffie-Hellman parameters
file for other services to reference. This could be either a
store path or a file inside the directory specified by
{option}`security.dhparams.path`.
'';
};
config.path =
let
generated = pkgs.runCommand "dhparams-${name}.pem" {
nativeBuildInputs = [ pkgs.openssl ];
} "openssl dhparam -out \"$out\" ${toString config.bits}";
in
if cfg.stateful then "${cfg.path}/${name}.pem" else generated;
};
in
{
options = {
security.dhparams = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to generate new DH params and clean up old DH params.
'';
};
params = mkOption {
type =
with types;
let
coerce = bits: { inherit bits; };
in
attrsOf (coercedTo int coerce (submodule paramsSubmodule));
default = { };
example = lib.literalExpression "{ nginx.bits = 3072; }";
description = ''
Diffie-Hellman parameters to generate.
The value is the size (in bits) of the DH params to generate. The
generated DH params path can be found in
`config.security.dhparams.params.«name».path`.
::: {.note}
The name of the DH params is taken as being the name of
the service it serves and the params will be generated before the
said service is started.
:::
::: {.warning}
If you are removing all dhparams from this list, you
have to leave {option}`security.dhparams.enable` for at
least one activation in order to have them be cleaned up. This also
means if you rollback to a version without any dhparams the
existing ones won't be cleaned up. Of course this only applies if
{option}`security.dhparams.stateful` is
`true`.
:::
::: {.note}
**For module implementers:** It's recommended
to not set a specific bit size here, so that users can easily
override this by setting
{option}`security.dhparams.defaultBitSize`.
:::
'';
};
stateful = mkOption {
type = types.bool;
default = true;
description = ''
Whether generation of Diffie-Hellman parameters should be stateful or
not. If this is enabled, PEM-encoded files for Diffie-Hellman
parameters are placed in the directory specified by
{option}`security.dhparams.path`. Otherwise the files are
created within the Nix store.
::: {.note}
If this is `false` the resulting store
path will be non-deterministic and will be rebuilt every time the
`openssl` package changes.
:::
'';
};
defaultBitSize = mkOption {
type = bitType;
default = 2048;
description = ''
This allows to override the default bit size for all of the
Diffie-Hellman parameters set in
{option}`security.dhparams.params`.
'';
};
path = mkOption {
type = types.str;
default = "/var/lib/dhparams";
description = ''
Path to the directory in which Diffie-Hellman parameters will be
stored. This only is relevant if
{option}`security.dhparams.stateful` is
`true`.
'';
};
};
};
config = lib.mkMerge [
(lib.mkIf cfg.enable {
warnings = [
''
The `security.dhparams` module is deprecated and scheduled for removal in NixOS 26.11.
Generating your own params has been shown to be problematic in RFC 7919 (2016).
Remove any uses of DHE and migrate to ECDHE (RFC 8422, 2018) and
Hybrid PQ (draft-ietf-tls-ecdhe-mlkem, 2026) key exchange algorithms.
''
];
})
(lib.mkIf (cfg.enable && cfg.stateful) {
systemd.services = {
dhparams-init = {
description = "Clean Up Old Diffie-Hellman Parameters";
# Clean up even when no DH params is set
wantedBy = [ "multi-user.target" ];
serviceConfig.RemainAfterExit = true;
serviceConfig.Type = "oneshot";
script = ''
if [ ! -d ${cfg.path} ]; then
mkdir -p ${cfg.path}
fi
# Remove old dhparams
for file in ${cfg.path}/*; do
if [ ! -f "$file" ]; then
continue
fi
${lib.concatStrings (
lib.mapAttrsToList (
name:
{ bits, path, ... }:
''
if [ "$file" = ${lib.escapeShellArg path} ] && \
${pkgs.openssl}/bin/openssl dhparam -in "$file" -text \
| head -n 1 | grep "(${toString bits} bit)" > /dev/null; then
continue
fi
''
) cfg.params
)}
rm "$file"
done
# TODO: Ideally this would be removing the *former* cfg.path, though
# this does not seem really important as changes to it are quite
# unlikely
rmdir --ignore-fail-on-non-empty ${cfg.path}
'';
};
}
// lib.mapAttrs' (
name:
{ bits, path, ... }:
lib.nameValuePair "dhparams-gen-${name}" {
description = "Generate Diffie-Hellman Parameters for ${name}";
after = [ "dhparams-init.service" ];
before = [ "${name}.service" ];
requiredBy = [ "${name}.service" ];
wantedBy = [ "multi-user.target" ];
unitConfig.ConditionPathExists = "!${path}";
serviceConfig.Type = "oneshot";
script = ''
mkdir -p ${lib.escapeShellArg cfg.path}
${pkgs.openssl}/bin/openssl dhparam -out ${lib.escapeShellArg path} \
${toString bits}
'';
}
) cfg.params;
})
];
}

View File

@@ -8,21 +8,6 @@
...
}:
let
inherit (lib)
attrNames
catAttrs
concatLines
concatMap
filter
unique
flip
elem
attrValues
concatMapStrings
hasPrefix
concatStringsSep
sort
;
moduleSettingsType =
with lib.types;
@@ -896,30 +881,41 @@ let
text =
let
ensureUniqueOrder =
type: rules:
let
checkPair =
a: b:
assert lib.assertMsg (a.order != b.order)
"security.pam.services.${name}.rules.${type}: rules '${a.name}' and '${b.name}' cannot have the same order value (${toString a.order})";
b;
checked = lib.zipListsWith checkPair rules (lib.drop 1 rules);
in
lib.take 1 rules ++ checked;
# Formats a string for use in `module-arguments`. See `man pam.conf`.
formatModuleArgument =
token: if lib.hasInfix " " token then "[${lib.replaceStrings [ "]" ] [ "\\]" ] token}]" else token;
formatRules =
type:
concatStringsSep "\n" (
map
(
rule:
"${type} ${rule.control} ${rule.modulePath}${
if rule.args == [ ] then "" else " " + concatStringsSep " " (map formatModuleArgument rule.args)
} # ${rule.name} (order ${toString rule.order})"
lib.pipe cfg.rules.${type} [
lib.attrValues
(lib.filter (rule: rule.enable))
(lib.sort (a: b: a.order < b.order))
(ensureUniqueOrder type)
(map (
rule:
lib.concatStringsSep " " (
[
type
rule.control
rule.modulePath
]
++ map formatModuleArgument rule.args
++ [ "# ${rule.name} (order ${toString rule.order})" ]
)
(
sort (
a: b:
if a.order != b.order then
a.order < b.order
else
throw "security.pam.services.${name}.rules.${type}: rules '${a.name}' and '${b.name}' cannot have the same order value (${toString a.order})"
) (filter (rule: rule.enable) (attrValues cfg.rules.${type}))
)
);
))
(lib.concatStringsSep "\n")
];
in
lib.mkDefault ''
# Account management.
@@ -2641,29 +2637,35 @@ in
};
security.apparmor.includes."abstractions/pam" =
concatMapStrings (name: "r ${config.environment.etc."pam.d/${name}".source},\n") (
attrNames enabledServices
lib.concatMapStrings (name: "r ${config.environment.etc."pam.d/${name}".source},\n") (
lib.attrNames enabledServices
)
+ (
let
types = concatMap attrValues (catAttrs "rules" (attrValues enabledServices));
rules = concatMap attrValues types;
isDirect = flip elem [
"include"
"substack"
];
activeRules = filter (rule: rule.enable && !isDirect rule.control) rules;
modulePaths = concatMap (
with lib;
pipe enabledServices [
lib.attrValues
(catAttrs "rules")
(lib.concatMap lib.attrValues)
(lib.concatMap lib.attrValues)
(lib.filter (rule: rule.enable))
(lib.filter (
rule:
if (!hasPrefix "/" rule.modulePath) then
throw ''non-absolute PAM modulePath "${rule.modulePath}" is unsupported by apparmor''
else
[ rule.modulePath ]
) activeRules;
in
concatLines (map (module: "mr ${module},") (unique modulePaths))
!builtins.elem rule.control [
"include"
"substack"
]
))
(lib.catAttrs "modulePath")
(map (
modulePath:
lib.throwIfNot (lib.hasPrefix "/" modulePath)
''non-absolute PAM modulePath "${modulePath}" is unsupported by apparmor''
modulePath
))
lib.unique
(map (module: "mr ${module},"))
concatLines
]
);
security.sudo.extraConfig = optionalSudoConfigForSSHAgentAuth;

View File

@@ -179,10 +179,10 @@ in
}" />
<!-- specify the binaries to be called -->
<!-- the comma in front of the options is necessary for empty options -->
<fusemount>${pkgs.fuse3}/bin/mount.fuse3 %(VOLUME) %(MNTPT) -o ,${
<fusemount>${pkgs.fuse}/bin/mount.fuse %(VOLUME) %(MNTPT) -o ,${
lib.concatStringsSep "," (cfg.fuseMountOptions ++ [ "%(OPTIONS)" ])
}'</fusemount>
<fuseumount>${pkgs.fuse3}/bin/fusermount3 -u %(MNTPT)</fuseumount>
<fuseumount>${pkgs.fuse}/bin/fusermount -u %(MNTPT)</fuseumount>
<!-- the comma in front of the options is necessary for empty options -->
<cryptmount>${pkgs.pam_mount}/bin/mount.crypt -o ,${
lib.concatStringsSep "," (cfg.cryptMountOptions ++ [ "%(OPTIONS)" ])

View File

@@ -181,23 +181,8 @@ in
###### interface
options = {
security.enableWrappers = lib.mkEnableOption "" // {
security.enableWrappers = lib.mkEnableOption "SUID/SGID wrappers" // {
default = true;
description = ''
Whether to enable SUID/SGID wrappers.
::: {.warning}
ONLY DISABLE THIS OPTION IF YOU KNOW WHAT YOU'RE DOING.
:::
A normal interactive NixOS system requires SUID/SGID wrappers (e.g. for
PAM and sudo). Disabling them, thus will lock you out from your system.
Disabling the SUID/SGID binaries is useful for non-interactive systems
(like a firewall appliance) to minimize the attack surface. In the
future, this might become available for interactive systems as well
(e.g. with systemd's [run0](https://www.freedesktop.org/software/systemd/man/latest/run0)).
'';
};
security.wrappers = lib.mkOption {

View File

@@ -189,15 +189,11 @@ let
[ "--docker-image ${service.dockerImage}" ]
++ optional service.dockerDisableCache "--docker-disable-cache"
++ optional service.dockerPrivileged "--docker-privileged"
++ optional service.dockerServicesPrivileged "--docker-services_privileged true"
++ optional (service.dockerPullPolicy != null) "--docker-pull-policy ${service.dockerPullPolicy}"
++ map (v: "--docker-volumes ${escapeShellArg v}") service.dockerVolumes
++ map (v: "--docker-extra-hosts ${escapeShellArg v}") service.dockerExtraHosts
++ map (v: "--docker-allowed-images ${escapeShellArg v}") service.dockerAllowedImages
++ map (v: "--docker-allowed-services ${escapeShellArg v}") service.dockerAllowedServices
++ map (
v: "--docker-allowed-privileged-services ${escapeShellArg v}"
) service.dockerAllowedPrivilegedServices
)
)
)
@@ -525,13 +521,6 @@ in
Give extended privileges to container.
'';
};
dockerServicesPrivileged = mkOption {
type = types.bool;
default = false;
description = ''
Give extended privileges to services.
'';
};
dockerExtraHosts = mkOption {
type = types.listOf types.str;
default = [ ];
@@ -565,19 +554,6 @@ in
Whitelist allowed services.
'';
};
dockerAllowedPrivilegedServices = mkOption {
type = types.listOf types.str;
default = [ ];
example = [
"docker.io/library/docker:*-dind-rootless"
"docker.io/library/docker:dind-rootless"
"docker:*-dind-rootless"
"docker:dind-rootless"
];
description = ''
Whitelist allowed privileged services.
'';
};
preGetSourcesScript = mkOption {
type = types.nullOr (types.either types.str types.path);
default = null;

View File

@@ -36,8 +36,6 @@ in
'';
};
package = lib.mkPackageOption pkgs "gemstash" { };
settings = lib.mkOption {
default = { };
description = ''
@@ -98,7 +96,7 @@ in
after = [ "network.target" ];
serviceConfig = lib.mkMerge [
{
ExecStart = "${lib.getExe cfg.package} start --no-daemonize --config-file ${settingsFormat.generate "gemstash.yaml" (prefixColon cfg.settings)}";
ExecStart = "${pkgs.gemstash}/bin/gemstash start --no-daemonize --config-file ${settingsFormat.generate "gemstash.yaml" (prefixColon cfg.settings)}";
NoNewPrivileges = true;
User = "gemstash";
Group = "gemstash";

View File

@@ -26,7 +26,6 @@ in
config = lib.mkIf cfg.enable {
environment.systemPackages = [
pkgs.cosmic-comp
pkgs.cosmic-icons
cfg.package
];

View File

@@ -1,6 +1,5 @@
{
config,
options,
lib,
pkgs,
...
@@ -8,9 +7,6 @@
let
cfg = config.services.displayManager;
opts = options.services.displayManager;
toPretty = lib.generators.toPretty { };
installedSessions =
pkgs.runCommand "desktops"
@@ -83,7 +79,7 @@ in
default = config.user != null;
defaultText = lib.literalExpression "config.${options.user} != null";
description = ''
Automatically log in as {option}`${options.user}`.
Automatically log in as {option}`autoLogin.user`.
'';
};
@@ -105,7 +101,16 @@ in
};
defaultSession = lib.mkOption {
type = lib.types.nullOr (lib.types.str // { description = "session name"; });
type = lib.types.nullOr lib.types.str // {
description = "session name";
check =
d:
lib.assertMsg (d != null -> (lib.types.str.check d && lib.elem d cfg.sessionData.sessionNames)) ''
Default graphical session, '${d}', not found.
Valid names for 'services.displayManager.defaultSession' are:
${lib.concatStringsSep "\n " cfg.sessionData.sessionNames}
'';
};
default = null;
example = "gnome";
description = ''
@@ -125,12 +130,26 @@ in
sessionPackages = lib.mkOption {
type = lib.types.listOf (
lib.types.addCheck lib.types.package (
p: p ? providedSessions && p.providedSessions != [ ] && lib.all lib.isString p.providedSessions
)
lib.types.package
// {
description = "package with provided sessions";
descriptionClass = "composite";
check =
p:
lib.assertMsg
(
lib.types.package.check p
&& p ? providedSessions
&& p.providedSessions != [ ]
&& lib.all lib.isString p.providedSessions
)
''
Package, '${p.name}', did not specify any session names, as strings, in
'passthru.providedSessions'. This is required when used as a session package.
The session names can be looked up in:
${p}/share/xsessions
${p}/share/wayland-sessions
'';
}
);
default = [ ];
@@ -189,15 +208,7 @@ in
{
assertion = cfg.autoLogin.enable -> cfg.autoLogin.user != null;
message = ''
`${opts.autoLogin}.enable` requires `${opts.autoLogin}.user` to be set
'';
}
{
assertion = cfg.defaultSession == null || lib.elem cfg.defaultSession cfg.sessionData.sessionNames;
message = ''
Default graphical session, ${toPretty cfg.defaultSession}, not found. Definitions:${lib.options.showDefs opts.defaultSession.definitionsWithLocations}.
Valid names for `${opts.defaultSession}` are:
${lib.concatMapStringsSep "\n " toPretty cfg.sessionData.sessionNames}
services.displayManager.autoLogin.enable requires services.displayManager.autoLogin.user to be set
'';
}
];

View File

@@ -455,22 +455,6 @@ in
settings.conffile = "/etc/pam/environment";
settings.readenv = 0;
}
# make sure the spawned session has the same variables as `display-manager.service`
# https://github.com/NixOS/nixpkgs/issues/523332
{
name = "env-greeter";
control = "required";
modulePath = "${config.security.pam.package}/lib/security/pam_env.so";
settings.conffile =
let
env = config.services.displayManager.generic.environment;
in
pkgs.writeText "gdm-launch-environment-env-conf" ''
PATH DEFAULT="''${PATH}:${pkgs.gnome-session}/bin"
XDG_DATA_DIRS DEFAULT="''${XDG_DATA_DIRS}:${env.XDG_DATA_DIRS}"
'';
settings.readenv = 0;
}
{
name = "systemd";
control = "optional";

View File

@@ -30,6 +30,7 @@ let
mapAttrsToList
mergeAttrsList
mkEnableOption
mkDefault
mkIf
mkMerge
mkOption
@@ -776,25 +777,7 @@ in
openFirewall = mkOption {
default = false;
type = types.bool;
description = ''
Whether to open the firewall for the specified frontend port
:::{.note}
For components specific ports see {option}`services.home-assistant.openFirewallForComponents`.
:::
'';
};
openFirewallForComponents = mkOption {
default = false;
type = types.bool;
description = ''
Whether to open required firewall ports for enabled components.
:::{.note}
For the frontend see {option}`services.home-assistant.openFirewall`.
:::
'';
description = "Whether to open the firewall for the specified port.";
};
blueprints = mergeAttrsList (
@@ -862,13 +845,7 @@ in
}
];
networking.firewall.allowedTCPPorts = mkMerge [
(mkIf cfg.openFirewall [ cfg.config.http.server_port ])
(mkIf cfg.openFirewallForComponents
# https://www.home-assistant.io/integrations/sonos/#network-requirements
(optionals (useComponent "sonos") [ 1400 ])
)
];
networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.config.http.server_port ];
# symlink the configuration to /etc/home-assistant
environment.etc = mkMerge [

View File

@@ -1,127 +0,0 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.services.matterjs-server;
in
{
options.services.matterjs-server = {
enable = lib.mkEnableOption "matterjs-server, a Matter Controller WebSocket server based on Matter.js";
package = lib.mkPackageOption pkgs "matterjs-server" { };
listenAddress = lib.mkOption {
type = lib.types.str;
default = "127.0.0.1";
description = "IP address the WebSocket API binds to.";
};
port = lib.mkOption {
type = lib.types.port;
default = 5580;
description = "TCP port the WebSocket API listens on.";
};
openFirewall = lib.mkEnableOption null // {
description = "Whether to open the WebSocket API port in the firewall.";
};
bluetoothSupport = lib.mkEnableOption ''
BLE (Bluetooth Low Energy) commissioning support. Select an adapter with
`--bluetooth-adapter=<id>` in
{option}`services.matterjs-server.extraArgs`
'';
extraArgs = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ ];
example = [
"--primary-interface=enp11s0"
"--log-level=debug"
];
description = ''
Additional command-line arguments passed to `matterjs-server`. See
`matterjs-server --help` for the full list of options.
'';
};
};
config = lib.mkIf cfg.enable {
networking.firewall = lib.mkIf cfg.openFirewall {
allowedTCPPorts = [ cfg.port ];
};
systemd.services.matterjs-server = {
description = "Matter Controller WebSocket server based on Matter.js";
documentation = [ "https://github.com/matter-js/matterjs-server" ];
wantedBy = [ "multi-user.target" ];
after = [ "network-online.target" ];
wants = [ "network-online.target" ];
serviceConfig =
let
bluetoothCaps = [
"CAP_NET_RAW"
"CAP_NET_ADMIN"
];
in
{
ExecStart = lib.escapeShellArgs (
[
(lib.getExe cfg.package)
"--storage-path=%S/matterjs-server"
"--listen-address=${cfg.listenAddress}"
"--port=${toString cfg.port}"
"--production-mode"
]
++ cfg.extraArgs
);
StateDirectory = "matterjs-server";
StateDirectoryMode = "0700";
DynamicUser = true;
# Required for interaction with hci devices and bluetooth sockets
AmbientCapabilities = lib.optionals cfg.bluetoothSupport bluetoothCaps;
CapabilityBoundingSet = lib.optionals cfg.bluetoothSupport bluetoothCaps;
LockPersonality = true;
NoNewPrivileges = true;
PrivateTmp = true;
PrivateUsers = !cfg.bluetoothSupport; # Prevents gaining capabilities in the host namespace
ProcSubset = "pid";
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectProc = "invisible";
ProtectSystem = "strict";
RestrictAddressFamilies = [
"AF_INET"
"AF_INET6"
"AF_NETLINK"
"AF_UNIX"
]
++ lib.optional cfg.bluetoothSupport "AF_BLUETOOTH";
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
SystemCallArchitectures = "native";
SystemCallFilter = [
"@system-service"
"~@privileged"
];
UMask = "0077";
};
};
};
meta.maintainers = with lib.maintainers; [ kranzes ];
}

View File

@@ -91,9 +91,9 @@ let
# files required to exist also won't be present, so missingok is forced.
user=$(${pkgs.buildPackages.coreutils}/bin/id -un)
group=$(${pkgs.buildPackages.coreutils}/bin/id -gn)
sed -E -e "s/\bsu\s.*/su $user $group/" \
-e "s/\b((create|createolddir)\b(\s+[0-9]+)?).*/\1 $user $group/" \
-e "1imissingok" -e "s/\bnomissingok\b//" \
sed -e "s/\bsu\s.*/su $user $group/" \
-e "s/\b\(create\s\+[0-9]*\s*\|createolddir\s\+[0-9]*\s\+\).*/\1$user $group/" \
-e "1imissingok" -e "s/\bnomissingok\b//" \
$out > logrotate.conf
# Since this makes for very verbose builds only show real error.
# There is no way to control log level, but logrotate hardcodes

View File

@@ -1,156 +0,0 @@
# Mautrix-Discord {#module-services-mautrix-discord}
*Source:* {file}`modules/services/matrix/mautrix-discord`
*Upstream documentation:* <https://docs.mau.fi/bridges/go/discord/index.html>
[Mautrix-Discord](https://github.com/mautrix/discord) is a Matrix-Discord bridge.
## Basic Usage {#module-services-mautrix-discord-basic-usage}
The common setup is to enable the bridge, point it at your homeserver, and set the permissions you want to allow:
1. Set `services.mautrix-discord.enable` to `true`.
2. Set `services.mautrix-discord.settings.homeserver.address` and `services.mautrix-discord.settings.homeserver.domain`.
3. Override `services.mautrix-discord.settings.bridge.permissions` if the default relay permissions do not fit your deployment.
The module provides sensible defaults for the appservice listener, registration tokens, and relay permissions.
### Basic Example {#module-services-mautrix-discord-basic-example}
```nix
{
services.mautrix-discord = {
enable = true;
registerToSynapse = true;
settings = {
homeserver = {
address = "http://localhost:8008";
domain = "example.com";
};
bridge.permissions = {
"example.com" = "user";
"@admin:example.com" = "admin";
};
};
};
}
```
### Server Defaults {#module-services-mautrix-discord-server-defaults}
By default, the bridge listens on `http://localhost:29334` and generates its appservice tokens automatically.
## Authentication {#module-services-mautrix-discord-authentication}
If you want to store the bridge database outside the default SQLite file, set `settings.appservice.database` to use PostgreSQL instead of SQLite:
```nix
{
services.mautrix-discord.settings.appservice.database = {
type = "postgres";
uri = "postgresql:///mautrix-discord?host=/run/postgresql";
};
}
```
If the connection needs a password, combine it with `services.mautrix-discord.environmentFile`:
```nix
{
services.mautrix-discord = {
environmentFile = "/run/secrets/mautrix-discord-env";
settings.appservice.database.uri = "postgresql://mautrix:$DB_PASSWORD@localhost/mautrix-discord";
};
}
```
Use `services.mautrix-discord.environmentFile` for any secret you do not want in the Nix store.
This includes database passwords, shared secrets, and similar values.
Example:
```nix
{
services.mautrix-discord = {
environmentFile = "/run/secrets/mautrix-discord-env";
settings.bridge.login_shared_secret_map = {
"example.com" = "$SHARED_SECRET";
};
};
}
```
## Bridge Setup {#module-services-mautrix-discord-setup}
After the service starts, open a chat with `@discordbot:example.com`, send `login`, and follow the instructions to link your Discord account.
For more detail, see the [Mautrix-Discord documentation](https://docs.mau.fi/bridges/go/discord/index.html).
## Advanced Configuration {#module-services-mautrix-discord-advanced}
The upstream default configuration is available at [example-config.yaml](https://github.com/mautrix/discord/blob/main/example-config.yaml). To print the generated default configuration from the package, run:
```bash
nix-shell -p mautrix-discord --run "mautrix-discord -e"
```
### Encryption {#module-services-mautrix-discord-encryption}
```nix
{
services.mautrix-discord.settings.bridge.encryption = {
allow = true;
default = true;
require = false;
};
}
```
Encryption needs additional bridge-side setup. See the [bridge encryption documentation](https://docs.mau.fi/bridges/general/end-to-bridge-encryption.html) for details.
### Backfill {#module-services-mautrix-discord-backfill}
```nix
{
services.mautrix-discord.settings.bridge.backfill.forward_limits.initial = {
dm = 50;
channel = 50;
thread = 50;
};
}
```
### Double Puppeting {#module-services-mautrix-discord-double-puppet}
```nix
{
services.mautrix-discord = {
environmentFile = "/run/secrets/mautrix-discord-env";
settings.bridge.login_shared_secret_map = {
"example.com" = "$SHARED_SECRET";
};
};
}
```
where `/run/secrets/mautrix-discord-env` contains
```
SHARED_SECRET=aProtectedSecret
```
## Synapse Integration {#module-services-mautrix-discord-synapse}
When `services.mautrix-discord.registerToSynapse` is `true`, the bridge writes its registration file automatically and Synapse picks it up.
If Synapse is enabled, this option defaults to `true`.
## Troubleshooting {#module-services-mautrix-discord-troubleshooting}
- View logs with `journalctl -u mautrix-discord.service -f`.
- Check `systemctl status mautrix-discord` if the bridge does not start.
- Verify the homeserver can reach the configured appservice address.
- Ensure the registration file exists and Synapse can read it.
For more help, see the
[Mautrix-Discord documentation](https://docs.mau.fi/bridges/go/discord/index.html)
or the support room at [#discord:maunium.net](https://matrix.to/#/#discord:maunium.net).

View File

@@ -5,59 +5,15 @@
...
}:
let
defaultDataDir = "/var/lib/mautrix-discord";
cfg = config.services.mautrix-discord;
dataDir = cfg.dataDir;
format = pkgs.formats.yaml { };
serviceDependencies = [
"mautrix-discord-registration.service"
]
++ (lib.lists.optional config.services.matrix-synapse.enable config.services.matrix-synapse.serviceUnit)
++ (lib.lists.optional config.services.matrix-conduit.enable "matrix-conduit.service")
++ (lib.lists.optional config.services.dendrite.enable "dendrite.service");
registrationFile = "${dataDir}/discord-registration.yaml";
settingsFile = "${dataDir}/config.yaml";
settingsFileUnformatted = format.generate "discord-config-unsubstituted.yaml" cfg.settings;
default_token = "This value is generated when generating the registration";
settingsDefault = {
homeserver = {
address = "";
domain = "";
};
appservice = {
address = "http://localhost:29334";
hostname = "0.0.0.0";
port = 29334;
database = {
type = "sqlite3";
uri = "file:${defaultDataDir}/mautrix-discord.db?_txlock=immediate";
};
id = "discord";
bot = {
username = "discordbot";
displayname = "Discord bridge bot";
avatar = "mxc://maunium.net/nIdEykemnwdisvHbpxflpDlC";
};
as_token = default_token;
hs_token = default_token;
};
bridge.permissions."*" = "relay";
logging = {
min_level = "info";
writers = [
{
type = "stdout";
format = "pretty-colored";
time_format = " ";
}
];
};
};
in
{
options = {
@@ -67,14 +23,238 @@ in
package = lib.mkPackageOption pkgs "mautrix-discord" { };
settings = lib.mkOption {
apply = lib.recursiveUpdate settingsDefault;
type = format.type;
default = settingsDefault;
type = lib.types.submodule {
freeformType = format.type;
config = {
_module.args = { inherit cfg lib; };
};
options = {
homeserver = lib.mkOption {
type = lib.types.attrs;
default = {
software = "standard";
status_endpoint = null;
message_send_checkpoint_endpoint = null;
async_media = false;
websocket = false;
ping_interval_seconds = 0;
};
description = ''
fullDataDiration.
See [example-config.yaml](https://github.com/mautrix/discord/blob/main/example-config.yaml)
for more information.
'';
};
appservice = lib.mkOption {
type = lib.types.attrs;
default = {
address = "http://localhost:29334";
hostname = "0.0.0.0";
port = 29334;
database = {
type = "sqlite3";
uri = "file:/var/lib/mautrix-discord/mautrix-discord.db?_txlock=immediate";
max_open_conns = 20;
max_idle_conns = 2;
max_conn_idle_time = null;
max_conn_lifetime = null;
};
id = "discord";
bot = {
username = "discordbot";
displayname = "Discord bridge bot";
avatar = "mxc://maunium.net/nIdEykemnwdisvHbpxflpDlC";
};
ephemeral_events = true;
async_transactions = false;
as_token = "This value is generated when generating the registration";
hs_token = "This value is generated when generating the registration";
};
defaultText = lib.literalExpression ''
{
address = "http://localhost:29334";
hostname = "0.0.0.0";
port = 29334;
database = {
type = "sqlite3";
uri = "file:''${config.services.mautrix-discord.dataDir}/mautrix-discord.db?_txlock=immediate";
max_open_conns = 20;
max_idle_conns = 2;
max_conn_idle_time = null;
max_conn_lifetime = null;
};
id = "discord";
bot = {
username = "discordbot";
displayname = "Discord bridge bot";
avatar = "mxc://maunium.net/nIdEykemnwdisvHbpxflpDlC";
};
ephemeral_events = true;
async_transactions = false;
as_token = "This value is generated when generating the registration";
hs_token = "This value is generated when generating the registration";
}
'';
description = ''
Appservice configuration.
See [example-config.yaml](https://github.com/mautrix/discord/blob/main/example-config.yaml)
for more information.
'';
};
bridge = lib.mkOption {
type = lib.types.attrs;
default = {
username_template = "discord_{{.}}";
displayname_template = "{{if .Webhook}}Webhook{{else}}{{or .GlobalName .Username}}{{if .Bot}} (bot){{end}}{{end}}";
channel_name_template = "{{if or (eq .Type 3) (eq .Type 4)}}{{.Name}}{{else}}#{{.Name}}{{end}}";
guild_name_template = "{{.Name}}";
private_chat_portal_meta = "default";
public_address = null;
avatar_proxy_key = "generate";
portal_message_buffer = 128;
startup_private_channel_create_limit = 5;
delivery_receipts = false;
message_status_events = false;
message_error_notices = true;
restricted_rooms = true;
autojoin_thread_on_open = true;
embed_fields_as_tables = true;
mute_channels_on_create = false;
sync_direct_chat_list = false;
resend_bridge_info = false;
custom_emoji_reactions = true;
delete_portal_on_channel_delete = false;
delete_guild_on_leave = true;
federate_rooms = true;
prefix_webhook_messages = true;
enable_webhook_avatars = false;
use_discord_cdn_upload = true;
#proxy =
cache_media = "unencrypted";
direct_media = {
enabled = false;
#server_name = "discord-media.example.com";
#well_known_response =
allow_proxy = true;
server_key = "generate";
};
animated_sticker = {
target = "webp";
args = {
width = 320;
height = 320;
fps = 25;
};
};
double_puppet_server_map = {
#"example.com" = "https://example.com";
};
double_puppet_allow_discovery = false;
login_shared_secret_map = {
#"example.com" = "foobar";
};
command_prefix = "!discord";
management_room_text = {
welcome = "Hello, I'm a Discord bridge bot.";
welcome_connected = "Use `help` for help.";
welcome_unconnected = "Use `help` for help or `login` to log in.";
additional_help = "";
};
backfill = {
forward_limits = {
initial = {
dm = 0;
channel = 0;
thread = 0;
};
missed = {
dm = 0;
channel = 0;
thread = 0;
};
max_guild_members = -1;
};
};
encryption = {
allow = false;
default = false;
appservice = false;
msc4190 = false;
require = false;
allow_key_sharing = false;
plaintext_mentions = false;
delete_keys = {
delete_outbound_on_ack = false;
dont_store_outbound = false;
ratchet_on_decrypt = false;
delete_fully_used_on_decrypt = false;
delete_prev_on_new_session = false;
delete_on_device_delete = false;
periodically_delete_expired = false;
delete_outdated_inbound = false;
};
verification_levels = {
receive = "unverified";
send = "unverified";
share = "cross-signed-tofu";
};
rotation = {
enable_custom = false;
milliseconds = 604800000;
messages = 100;
disable_device_change_key_rotation = false;
};
};
provisioning = {
prefix = "/_matrix/provision";
shared_secret = "generate";
debug_endpoints = false;
};
permissions = {
"*" = "relay";
#"example.com" = "user";
#"@admin:example.com": "admin";
};
};
description = ''
Bridge configuration.
See [example-config.yaml](https://github.com/mautrix/discord/blob/main/example-config.yaml)
for more information.
'';
};
logging = lib.mkOption {
type = lib.types.attrs;
default = {
min_level = "info";
writers = lib.singleton {
type = "stdout";
format = "pretty-colored";
time_format = " ";
};
};
description = ''
Logging configuration.
See [example-config.yaml](https://github.com/mautrix/discord/blob/main/example-config.yaml)
for more information.
'';
};
};
};
default = { };
example = lib.literalExpression ''
{
homeserver = {
address = "http://localhost:8008";
domain = "example.com";
domain = "public-domain.tld";
};
appservice.public = {
prefix = "/public";
external = "https://public-appservice-address/public";
};
bridge.permissions = {
@@ -85,12 +265,8 @@ in
'';
description = ''
{file}`config.yaml` configuration as a Nix attribute set.
Configuration options should match those described in
[example-config.yaml](https://github.com/mautrix/discord/blob/main/example-config.yaml).
Secret tokens should be specified using {option}`environmentFile`
instead of this world-readable attribute set.
'';
};
@@ -106,9 +282,12 @@ in
dataDir = lib.mkOption {
type = lib.types.path;
default = defaultDataDir;
defaultText = defaultDataDir;
description = "Directory to store the bridge's data.";
default = "/var/lib/mautrix-discord";
defaultText = "/var/lib/mautrix-discord";
description = ''
Directory to store the bridge's configuration and database files.
This directory will be created if it does not exist.
'';
};
# TODO: Get upstream to add an environment File option. Refer to https://github.com/NixOS/nixpkgs/pull/404871#issuecomment-2895663652 and https://github.com/mautrix/discord/issues/187
@@ -116,31 +295,92 @@ in
type = lib.types.nullOr lib.types.path;
default = null;
description = ''
File containing environment variables for secret substitution.
Variables in the config like `$VARIABLE` will be replaced.
File containing environment variables to substitute when copying the configuration
out of Nix store to the `services.mautrix-discord.dataDir`.
Can be used for storing the secrets without making them available in the Nix store.
For example, you can set `services.mautrix-discord.settings.appservice.as_token = "$MAUTRIX_DISCORD_APPSERVICE_AS_TOKEN"`
and then specify `MAUTRIX_DISCORD_APPSERVICE_AS_TOKEN="{token}"` in the environment file.
This value will get substituted into the configuration file as a token.
'';
};
serviceUnit = lib.mkOption {
type = lib.types.str;
readOnly = true;
default = "mautrix-discord.service";
description = ''
The systemd unit (a service or a target) for other services to depend on if they
need to be started after matrix-synapse.
This option is useful as the actual parent unit for all matrix-synapse processes
changes when configuring workers.
'';
};
registrationServiceUnit = lib.mkOption {
type = lib.types.str;
readOnly = true;
default = "mautrix-discord-registration.service";
description = ''
The registration service that generates the registration file.
Systemd unit (a service or a target) for other services to depend on if they
need to be started after mautrix-discord registration service.
This option is useful as the actual parent unit for all matrix-synapse processes
changes when configuring workers.
'';
};
serviceDependencies = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [
cfg.registrationServiceUnit
]
++ (lib.lists.optional config.services.matrix-synapse.enable config.services.matrix-synapse.serviceUnit)
++ (lib.lists.optional config.services.matrix-conduit.enable "matrix-conduit.service")
++ (lib.lists.optional config.services.dendrite.enable "dendrite.service");
defaultText = ''
[ cfg.registrationServiceUnit ] ++
(lib.lists.optional config.services.matrix-synapse.enable config.services.matrix-synapse.serviceUnit) ++
(lib.lists.optional config.services.matrix-conduit.enable "matrix-conduit.service") ++
(lib.lists.optional config.services.dendrite.enable "dendrite.service");
'';
description = ''
List of Systemd services to require and wait for when starting the application service.
'';
};
};
};
config = lib.mkIf cfg.enable {
assertions = [
{
assertion =
cfg.settings.homeserver.address or "" != "" && cfg.settings.homeserver.domain or "" != "";
message = "services.mautrix-discord.settings.homeserver.{address,domain} must be set.";
cfg.settings.homeserver.domain or "" != "" && cfg.settings.homeserver.address or "" != "";
message = ''
The options with information about the homeserver:
`services.mautrix-discord.settings.homeserver.domain` and
`services.mautrix-discord.settings.homeserver.address` have to be set.
'';
}
{
assertion = cfg.settings.bridge.permissions or { } != { };
message = ''
The option `services.mautrix-discord.settings.bridge.permissions` has to be set.
'';
}
];
users.users.mautrix-discord = {
isSystemUser = true;
group = "mautrix-discord";
extraGroups = [ "mautrix-discord-registration" ];
home = dataDir;
description = "Mautrix-Discord bridge user";
};
users.groups.mautrix-discord = { };
users.groups.mautrix-discord-registration = {
members = lib.lists.optional config.services.matrix-synapse.enable "matrix-synapse";
};
services.matrix-synapse = lib.mkIf cfg.registerToSynapse {
settings.app_service_config_files = [ registrationFile ];
@@ -152,9 +392,7 @@ in
systemd.services = {
matrix-synapse = lib.mkIf cfg.registerToSynapse {
serviceConfig.SupplementaryGroups = [
"mautrix-discord"
];
serviceConfig.SupplementaryGroups = [ "mautrix-discord-registration" ];
# Make synapse depend on the registration service when auto-registering
wants = [ "mautrix-discord-registration.service" ];
after = [ "mautrix-discord-registration.service" ];
@@ -233,18 +471,15 @@ in
'${settingsFile}' '${registrationFile}' > '${registrationFile}.tmp'
mv '${registrationFile}.tmp' '${registrationFile}'
# Application services should not be rate limited by default.
yq -Y '.rate_limited = false' '${registrationFile}' > '${registrationFile}.tmp'
mv '${registrationFile}.tmp' '${registrationFile}'
umask $old_umask
chown :mautrix-discord-registration '${registrationFile}'
chmod 640 '${registrationFile}'
'';
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
UMask = "027";
UMask = 27;
User = "mautrix-discord";
Group = "mautrix-discord";
@@ -266,8 +501,8 @@ in
description = "Mautrix-Discord, a Matrix-Discord puppeting/relaybot bridge";
wantedBy = [ "multi-user.target" ];
wants = [ "network-online.target" ] ++ serviceDependencies;
after = [ "network-online.target" ] ++ serviceDependencies;
wants = [ "network-online.target" ] ++ cfg.serviceDependencies;
after = [ "network-online.target" ] ++ cfg.serviceDependencies;
path = [
pkgs.lottieconverter
pkgs.ffmpeg-headless
@@ -301,8 +536,6 @@ in
ProtectHostname = true;
ProtectClock = true;
UMask = "027";
SystemCallArchitectures = "native";
SystemCallErrorNumber = "EPERM";
SystemCallFilter = "@system-service";
@@ -313,12 +546,10 @@ in
};
};
};
meta = {
maintainers = with lib.maintainers; [
mistyttm
];
doc = ./mautrix-discord.md;
meta = {
maintainers = with lib.maintainers; [
mistyttm
];
};
};
}

View File

@@ -1,411 +0,0 @@
{
config,
pkgs,
lib,
...
}:
let
cfg = config.services.inventree;
pkg = cfg.package;
mysqlLocal = cfg.database.createLocally && cfg.database.dbtype == "mysql";
pgsqlLocal = cfg.database.createLocally && cfg.database.dbtype == "postgresql";
manage = pkgs.writeShellScriptBin "inventree-manage" ''
set -a
${lib.toShellVars cfg.settings}
${lib.optionalString (
cfg.database.passwordFile != null
) ''INVENTREE_DB_PASSWORD="$(<${lib.escapeShellArg cfg.database.passwordFile})"''}
set +a
pushd ${lib.escapeShellArg cfg.dataDir}
expectedUser=${lib.escapeShellArg cfg.user}
sudo=()
if [[ "$USER" != "$expectedUser" ]]; then
${
if config.security.sudo.enable then
''sudo+=(${config.security.wrapperDir}/sudo -u "$expectedUser" -E)''
else
''printf 'Aborting, inventree-manage must be run as user %s\n!' "$expectedUser" >&2; exit 2''
}
fi
exec "''${sudo[@]}" ${cfg.package}/bin/inventree "$@"
'';
in
{
meta.buildDocsInSandbox = false;
meta.maintainers = with lib.maintainers; [
kurogeek
];
options.services.inventree = {
enable = lib.mkEnableOption "inventree";
dataDir = lib.mkOption {
type = lib.types.str;
default = "/var/lib/inventree";
description = "Inventree's data storage path. Will be `/var/lib/inventree` by default.";
};
package = lib.mkOption {
type = lib.types.package;
description = "Which package to use for the InvenTree instance.";
default = pkgs.inventree;
defaultText = lib.literalExpression "pkgs.inventree";
};
adminPasswordFile = lib.mkOption {
type = lib.types.nullOr lib.types.path;
default = null;
example = "/run/keys/inventree-password";
description = "Path to a file containing admin password";
};
secretKeyFile = lib.mkOption {
type = lib.types.path;
default = "${cfg.dataDir}/secret_key.txt";
defaultText = lib.literalExpression ''"''${cfg.dataDir}/secret_key.txt"'';
example = "/run/keys/inventree-secret-key";
description = ''
Path to a file containing the secret key
'';
};
database = {
dbtype = lib.mkOption {
type = lib.types.nullOr (
lib.types.enum [
"postgresql"
"mysql"
]
);
default = "postgresql";
description = "Database type.";
};
dbhost = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = null;
example = "localhost";
description = "Database host or socket path.";
};
dbport = lib.mkOption {
type = lib.types.nullOr lib.types.port;
default = null;
example = 5432;
description = "Database host port.";
};
dbname = lib.mkOption {
type = lib.types.str;
default = "inventree";
description = "Database name.";
};
dbuser = lib.mkOption {
type = lib.types.str;
default = "inventree";
description = "Database username.";
};
passwordFile = lib.mkOption {
type = with lib.types; nullOr path;
default = null;
example = "/run/keys/inventree-dbpassword";
description = ''
A file containing the password corresponding to
<option>database.dbuser</option>.
'';
};
createLocally = lib.mkOption {
type = lib.types.bool;
default = true;
description = "Create the database and database user locally.";
};
};
domain = lib.mkOption {
type = lib.types.str;
default = "localhost";
example = "inventree.example.com";
description = ''
The INVENTREE_SITE_URL option defines the base URL for the
InvenTree server. This is a critical setting, and it is required
for correct operation of the server. If not specified, the
server will attempt to determine the site URL automatically -
but this may not always be correct!
The site URL is the URL that users will use to access the
InvenTree server. For example, if the server is accessible at
`https://inventree.example.com`, the site URL should be set to
`https://inventree.example.com`. Note that this is not
necessarily the same as the internal URL that the server is
running on - the internal URL will depend entirely on your
server configuration and may be obscured by a reverse proxy or
other such setup.
'';
};
user = lib.mkOption {
type = lib.types.str;
default = "inventree";
description = "User under which InvenTree runs.";
};
group = lib.mkOption {
type = lib.types.str;
default = "inventree";
description = "Group under which InvenTree runs.";
};
settings = lib.mkOption {
type =
with lib.types;
attrsOf (
nullOr (oneOf [
path
str
])
);
default = { };
description = ''
InvenTree config options.
See [the documentation](https://docs.inventree.org/en/stable/start/config/) for available options.
'';
example = {
INVENTREE_CACHE_ENABLED = true;
INVENTREE_CACHE_HOST = "localhost";
INVENTREE_EMAIL_HOST = "smtp.example.com";
INVENTREE_EMAIL_PORT = 25;
};
};
};
config = lib.mkIf cfg.enable (
lib.mkMerge [
{
services.inventree.settings = {
INVENTREE_DB_ENGINE = cfg.database.dbtype;
INVENTREE_DB_NAME = cfg.database.dbname;
INVENTREE_DB_HOST = cfg.database.dbhost;
INVENTREE_DB_USER = cfg.database.dbuser;
INVENTREE_DB_PORT = if cfg.database.dbport != null then toString cfg.database.dbport else null;
INVENTREE_CONFIG_FILE = lib.mkDefault "${cfg.dataDir}/config/config.yaml";
INVENTREE_OIDC_PRIVATE_KEY_FILE = lib.mkDefault "${cfg.dataDir}/config/oidc_private_key.txt";
INVENTREE_STATIC_ROOT = lib.mkDefault "${cfg.package}/lib/inventree/static";
INVENTREE_MEDIA_ROOT = lib.mkDefault "${cfg.dataDir}/data/media";
INVENTREE_BACKUP_DIR = lib.mkDefault "${cfg.dataDir}/data/backups";
INVENTREE_SITE_URL = lib.mkDefault "http://${cfg.domain}";
INVENTREE_PLUGIN_FILE = lib.mkDefault "${cfg.dataDir}/data/plugins/plugins.txt";
INVENTREE_PLUGIN_DIR = lib.mkDefault "${cfg.dataDir}/data/plugins";
INVENTREE_ADMIN_USER = lib.mkDefault "admin";
INVENTREE_ADMIN_EMAIL = lib.mkDefault "admin@${cfg.domain}";
INVENTREE_ADMIN_PASSWORD_FILE = lib.mkDefault cfg.adminPasswordFile;
INVENTREE_SECRET_KEY_FILE = lib.mkDefault cfg.secretKeyFile;
INVENTREE_AUTO_UPDATE = lib.mkDefault "false";
};
environment.systemPackages = [ manage ];
systemd.tmpfiles.rules = (
map (dir: "d ${dir} 0755 inventree inventree") [
"${cfg.dataDir}"
"${cfg.dataDir}/config"
"${cfg.dataDir}/data"
"${cfg.dataDir}/data/media"
"${cfg.dataDir}/data/backups"
"${cfg.dataDir}/data/plugins"
]
);
services.postgresql = lib.mkIf pgsqlLocal {
enable = true;
ensureDatabases = [ cfg.database.dbname ];
ensureUsers = [
{
name = cfg.database.dbuser;
ensureDBOwnership = true;
}
];
};
services.mysql = lib.mkIf mysqlLocal {
enable = true;
package = lib.mkDefault pkgs.mariadb;
ensureDatabases = [ cfg.database.dbname ];
ensureUsers = [
{
name = cfg.database.dbuser;
ensurePermissions = {
"${cfg.database.dbname}.*" = "ALL PRIVILEGES";
};
}
];
};
services.nginx.enable = true;
services.nginx.virtualHosts.${cfg.domain} = {
locations =
let
unixPath = config.systemd.sockets.inventree-server.socketConfig.ListenStream;
in
{
"/" = {
extraConfig = ''
proxy_set_header Host $host;
proxy_set_header X-Forwarded-By $server_addr:$server_port;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header CLIENT_IP $remote_addr;
proxy_pass_request_headers on;
proxy_redirect off;
client_max_body_size 100M;
proxy_buffering off;
proxy_request_buffering off;
'';
proxyPass = "http://unix:${unixPath}";
};
"/auth" = {
extraConfig = ''
internal;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
proxy_set_header X-Original-URI $request_uri;
'';
proxyPass = "http://unix:${unixPath}:/auth/";
};
"/static/" = {
alias = "${cfg.settings.INVENTREE_STATIC_ROOT}/";
extraConfig = ''
autoindex on;
# Caching settings
expires 30d;
add_header Pragma public;
add_header Cache-Control "public";
'';
};
"/media/" = {
alias = "${cfg.settings.INVENTREE_MEDIA_ROOT}/";
extraConfig = ''
auth_request /auth;
add_header Content-disposition "attachment";
'';
};
};
};
systemd.services.inventree-setup = {
description = "Inventree setup";
wantedBy = [ "inventree.target" ];
partOf = [ "inventree.target" ];
after = lib.optional mysqlLocal "mysql.service" ++ lib.optional pgsqlLocal "postgresql.target";
requires = lib.optional mysqlLocal "mysql.service" ++ lib.optional pgsqlLocal "postgresql.target";
before = [
"inventree-server.service"
"inventree-qcluster.service"
];
serviceConfig = {
Type = "oneshot";
User = cfg.user;
Group = cfg.group;
RemainAfterExit = true;
PrivateTmp = true;
}
// lib.optionalAttrs (cfg.database.passwordFile != null) {
LoadCredential = "db_password:${cfg.database.passwordFile}";
};
environment = cfg.settings;
script = ''
set -euo pipefail
umask u=rwx,g=,o=
${
lib.optionalString (cfg.database.passwordFile != null) ''
INVENTREE_DB_PASSWORD=$(<"$CREDENTIALS_DIRECTORY/db_password")
''
} \
exec ${pkg}/bin/inventree migrate
'';
};
systemd.services.inventree-server = {
description = "Inventree Gunicorn service";
requiredBy = [ "inventree.target" ];
partOf = [ "inventree.target" ];
environment = cfg.settings;
serviceConfig = {
User = cfg.user;
Group = cfg.group;
StateDirectory = "inventree";
PrivateTmp = true;
}
// lib.optionalAttrs (cfg.database.passwordFile != null) {
LoadCredential = "db_password:${cfg.database.passwordFile}";
};
script = ''
${
lib.optionalString (cfg.database.passwordFile != null) ''
INVENTREE_DB_PASSWORD=$(<"$CREDENTIALS_DIRECTORY/db_password")
''
} \
exec ${pkg}/bin/gunicorn InvenTree.wsgi
'';
};
systemd.sockets.inventree-server = {
wantedBy = [ "sockets.target" ];
partOf = [ "inventree.target" ];
socketConfig.ListenStream = "/run/inventree/gunicorn.socket";
};
systemd.services.inventree-qcluster = {
description = "InvenTree qcluster server";
requiredBy = [ "inventree.target" ];
wantedBy = [ "inventree.target" ];
partOf = [ "inventree.target" ];
environment = cfg.settings;
serviceConfig = {
User = cfg.user;
Group = cfg.group;
StateDirectory = "inventree";
PrivateTmp = true;
}
// lib.optionalAttrs (cfg.database.passwordFile != null) {
LoadCredential = "db_password:${cfg.database.passwordFile}";
};
script = ''
${
lib.optionalString (cfg.database.passwordFile != null) ''
INVENTREE_DB_PASSWORD=$(<"$CREDENTIALS_DIRECTORY/db_password")
''
} \
exec ${pkg}/bin/inventree qcluster
'';
};
systemd.targets.inventree = {
description = "Target for all InvenTree services";
wantedBy = [ "multi-user.target" ];
wants = [ "network-online.target" ];
after = [ "network-online.target" ];
};
users = lib.optionalAttrs (cfg.user == cfg.user) {
users.${cfg.user} = {
group = cfg.group;
isSystemUser = true;
home = cfg.dataDir;
};
groups.${cfg.group}.members = [ cfg.user ];
};
}
]
);
}

View File

@@ -14,14 +14,7 @@ let
lib.generators.mkValueStringDefault { } (lib.head l)
else
lib.concatMapStrings (s: "\n ${lib.generators.mkValueStringDefault { } s}") l;
mkKeyValue =
key: value:
lib.generators.mkKeyValueDefault { } ":" key (
if builtins.isString value && lib.hasInfix "\n" value then
"\n ${lib.replaceString "\n" "\n " value}"
else
value
);
mkKeyValue = lib.generators.mkKeyValueDefault { } ":";
};
firmwareSubmodule = lib.types.submodule (
{ name, ... }@local:
@@ -40,27 +33,11 @@ let
'';
serial = lib.mkOption {
type = lib.types.nullOr lib.types.path;
description = "Path to serial port this mcu is connected to. Derived from `service.klipper.settings` by default.";
description = "Path to serial port this printer is connected to. Derived from `service.klipper.settings` by default.";
defaultText = lib.literalExpression "config.services.klipper.settings.<name>.serial";
default =
if lib.hasAttrByPath [ "${mcu}" "serial" ] cfg.settings then cfg.settings."${mcu}".serial else null;
};
canbus_uuid = lib.mkOption {
type = lib.types.nullOr lib.types.str;
description = "CAN bus uuid of this mcu. Derived from `service.klipper.settings` by default.";
defaultText = lib.literalExpression "config.services.klipper.settings.<name>.canbus_uuid";
default =
if lib.hasAttrByPath [ "${mcu}" "canbus_uuid" ] cfg.settings then
cfg.settings."${mcu}".canbus_uuid
else
null;
};
canbusNetwork = lib.mkOption {
type = lib.types.nullOr lib.types.str;
description = "CAN bus network this mcu is connected to. Defaults to can0 if canbus_uuid is set.";
defaultText = lib.literalExpression ''if canbus_uuid != null then "can0" else null'';
default = if subcfg.canbus_uuid != null then "can0" else null;
};
configFile = lib.mkOption {
type = lib.types.path;
description = "Path to firmware config which is generated using `klipper-genconf`";
@@ -94,8 +71,6 @@ let
klipper-firmware = subcfg.package;
mcu = lib.strings.sanitizeDerivationName mcu;
flashDevice = subcfg.serial;
canbusDevice = subcfg.canbus_uuid;
canbusNetwork = subcfg.canbusNetwork;
firmwareConfig = subcfg.configFile;
}
else
@@ -242,15 +217,12 @@ in
}
]
++ lib.mapAttrsToList (mcu: firmware: {
assertion =
firmware.enableKlipperFlash -> (firmware.serial != null || firmware.canbus_uuid != null);
assertion = firmware.enableKlipperFlash -> firmware.serial != null;
message = ''
Unable to determine the serial or canbus connection for services.klipper.firmwares."${mcu}". Please set one of the following:
Unable to determine the serial connection for services.klipper.firmwares."${mcu}". Please set one of the following:
- services.klipper.firmwares."${mcu}".serial
- services.klipper.firmwares."${mcu}".canbus_uuid
- services.klipper.settings."${mcu}".serial
- services.klipper.settings."${mcu}".canbus_uuid
'';
}) cfg.firmwares;
@@ -329,6 +301,7 @@ in
environment.systemPackages =
let
default = a: b: if a != null then a else b;
genconf = pkgs.klipper-genconf.override {
klipper = cfg.package;
};

View File

@@ -1,147 +0,0 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.services.flap-alerted;
settingsArgs = lib.pipe cfg.settings [
(lib.mapAttrsToList (
name: value:
if value == null || value == false then
[ ]
else if value == true then
[ "-${name}" ]
else
[
"-${name}"
(toString value)
]
))
lib.concatLists
];
in
{
meta.maintainers = with lib.maintainers; [ defelo ];
options.services.flap-alerted = {
enable = lib.mkEnableOption "FlapAlerted";
package = lib.mkPackageOption pkgs "flap-alerted" { };
environmentFiles = lib.mkOption {
type = lib.types.listOf lib.types.path;
default = [ ];
example = [ "/run/secrets/flap-alerted.env" ];
description = ''
Files to load environment variables from.
This is useful to avoid putting secrets into the nix store.
See <https://github.com/Kioubit/FlapAlerted> for a list of options.
'';
};
extraArgs = lib.mkOption {
type = lib.types.listOf lib.types.str;
description = ''
Extra command line arguments to pass to FlapAlerted.
See <https://github.com/Kioubit/FlapAlerted> for a list of options.
'';
default = [ ];
};
settings = lib.mkOption {
description = ''
Configuration of FlapAlerted.
See <https://github.com/Kioubit/FlapAlerted> for a list of options.
'';
default = { };
type = lib.types.submodule {
freeformType = lib.types.attrsOf (
lib.types.nullOr (
lib.types.oneOf [
lib.types.str
lib.types.int
lib.types.bool
]
)
);
options = {
asn = lib.mkOption {
type = lib.types.ints.u32;
description = "Your ASN number";
};
bgpListenAddress = lib.mkOption {
type = lib.types.str;
description = "Address to listen on for incoming BGP connections";
default = ":1790";
};
debug = lib.mkOption {
type = lib.types.bool;
description = "Enable debug mode (produces a lot of output)";
default = false;
};
};
};
};
};
config = lib.mkIf cfg.enable {
systemd.services.flap-alerted = {
wantedBy = [ "multi-user.target" ];
wants = [ "network-online.target" ];
after = [ "network-online.target" ];
serviceConfig = {
User = "flap-alerted";
Group = "flap-alerted";
DynamicUser = true;
EnvironmentFile = cfg.environmentFiles;
ExecStart = lib.escapeShellArgs ([ (lib.getExe cfg.package) ] ++ settingsArgs ++ cfg.extraArgs);
# Hardening
AmbientCapabilities = "";
CapabilityBoundingSet = [ "" ];
DevicePolicy = "closed";
LockPersonality = true;
MemoryDenyWriteExecute = true;
NoNewPrivileges = true;
PrivateDevices = true;
PrivateTmp = true;
PrivateUsers = true;
ProcSubset = "pid";
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectProc = "invisible";
ProtectSystem = "strict";
RemoveIPC = true;
RestrictAddressFamilies = [ "AF_INET AF_INET6" ];
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
SystemCallArchitectures = "native";
SystemCallFilter = [
"@system-service"
"~@privileged"
"~@resources"
];
UMask = "0077";
};
};
};
}

View File

@@ -93,7 +93,6 @@ in
systemd.services.bird = {
description = "BIRD Internet Routing Daemon";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
reloadTriggers = lib.optional cfg.autoReload config.environment.etc."bird/bird.conf".source;
serviceConfig = {
Type = "forking";

Some files were not shown because too many files have changed in this diff Show More