Compare commits

..

356 Commits

Author SHA1 Message Date
Justin Bedő
476399fb33 rPackages: fix changed hashes (#527156) 2026-06-03 00:53:41 +00:00
Justin Bedo
1d7a5c4a40 rPackages.sjSDM: fix hash 2026-06-03 10:51:24 +10:00
Justin Bedo
6f46fbd12c rPackages.robust2sls: fix hash 2026-06-03 10:51:14 +10:00
Justin Bedo
5a36e09add rPackages.rYWAASB: fix hash 2026-06-03 10:51:05 +10:00
Justin Bedo
ee7a29379b rPackages.prospectr: fix hash 2026-06-03 10:50:56 +10:00
Justin Bedo
4389f0263b rPackages.poolr: fix hash 2026-06-03 10:50:48 +10:00
Justin Bedo
513d50ef4a rPackages.maczic: fix hash 2026-06-03 10:50:40 +10:00
Justin Bedo
a8cb43260b rPackages.complexlm: fix hash 2026-06-03 10:50:28 +10:00
Justin Bedo
7494fc7744 rPackages.clugenr: fix hash 2026-06-03 10:50:18 +10:00
Justin Bedo
4d6b55a1c9 rPackages.aglm: fix hash 2026-06-03 10:50:09 +10:00
Justin Bedo
6513602344 rPackages.Path_Analysis: fix hash 2026-06-03 10:49:58 +10:00
Justin Bedo
80cfb6fe57 rPackages.NCFP: fix hash 2026-06-03 10:49:46 +10:00
Justin Bedo
22ffe0a4ba rPackages.GOCompare: fix hash 2026-06-03 10:49:36 +10:00
Justin Bedo
208a93bc94 rPackages.lpsymphony: fix build 2026-06-02 17:22:43 +10:00
László Kupcsik
9ae23a4d52 rPackages.ramr: fix build 2026-06-02 17:21:51 +10:00
Justin Bedo
2f5857b93e postgresqlPackages.plr: 8.4.8 -> 8.4.8.6 2026-06-01 21:28:58 +10:00
Justin Bedo
15672e349c rPackages.FKF_SP: update hash 2026-05-29 09:02:11 +10:00
Bruno Rodrigues
56dec1ba0d rPackages.tinyimg: fixed build 2026-05-29 09:02:11 +10:00
Bruno Rodrigues
06437cadfd rPackages.survivalsvm: fixed build 2026-05-29 09:02:10 +10:00
Bruno Rodrigues
37edf38e79 rPackages.RProtoBuf: fixed build 2026-05-29 09:02:10 +10:00
Bruno Rodrigues
2ad1656d06 rPackages.metan: fixed build 2026-05-29 09:02:10 +10:00
Justin Bedo
79bcae29d4 rPackages.rlas: fix build 2026-05-29 09:02:10 +10:00
Justin Bedo
22d8ed93f3 rPackages.fixest: fix build 2026-05-29 09:02:09 +10:00
Justin Bedo
a52facf1eb rPackages.rhdf5: update patch 2026-05-29 09:02:09 +10:00
Justin Bedo
a4664b8196 rPackages.Rhdf5lib: fix build 2026-05-29 09:02:09 +10:00
Justin Bedo
8ee070ca0c rPackages.fs: fix build 2026-05-26 07:47:39 +10:00
Justin Bedo
c8c8e732c7 rPackages: CRAN and BioC update 2026-05-25 10:21:28 +10:00
Justin Bedo
bf309d01a0 R: 4.5.3 -> 4.6.0 2026-05-25 10:21:03 +10:00
Peder Bergebakken Sundt
d30e720ca6 vscode-extensions.shd101wyy.markdown-preview-enhanced: 0.8.26 -> 0.8.27 (#523772) 2026-05-24 21:57:46 +00:00
Sandro
a1faaa0cba libva1,libva1-minimal: drop (#519971) 2026-05-24 21:54:10 +00:00
Niklas Korz
21d59e9589 gram: 2.1.0 -> 2.1.2 (#523653) 2026-05-24 21:50:36 +00:00
Sandro
3ed5c4110c kicad: 10.0.2 -> 10.0.3 (#521752) 2026-05-24 21:40:39 +00:00
Michael Daniels
2621788f23 python3Packages.libtmux: 0.55.1 -> 0.58.0; tmuxp: 1.67.0 -> 1.70.0 (#523667) 2026-05-24 21:36:33 +00:00
Michael Daniels
dfa493b2b2 mysql-shell: fix build on darwin (#523285) 2026-05-24 21:34:28 +00:00
Niklas Korz
ac2d9da6a0 wesnoth-devel: 1.19.23 -> 1.19.24 (#523765) 2026-05-24 21:34:08 +00:00
Sandro
db02f2fd8a nextcloud-notify_push: 1.3.1 -> 1.3.3 (#521766) 2026-05-24 21:11:17 +00:00
nixpkgs-ci[bot]
54bc470b14 opentrack: 2026.1.0-unstable-2026-03-25 -> 2026.1.0-unstable-2026-05-23 (#523742) 2026-05-24 21:10:40 +00:00
Austin Horstman
12726aa648 luarocks-packages-updater: normalize license metadata (#523736) 2026-05-24 21:04:19 +00:00
Austin Horstman
a9a1cb6904 luaPackages: regenerate license metadata 2026-05-24 15:57:01 -05:00
Austin Horstman
5412d1d291 luarocks-packages-updater: normalize license metadata 2026-05-24 15:57:01 -05:00
Fabian Affolter
48ffbb5236 dontgo403: drop (#523716) 2026-05-24 20:51:37 +00:00
Fabian Affolter
7bc01158a0 python3Packages.frigidaire: 0.18.44 -> 0.18.45 (#523722) 2026-05-24 20:49:59 +00:00
R. Ryantm
8b543f5cbd vscode-extensions.shd101wyy.markdown-preview-enhanced: 0.8.26 -> 0.8.27 2026-05-24 20:41:21 +00:00
Sandro
e0266b7610 saber: 1.33.0 -> 1.33.3 (#520880) 2026-05-24 20:38:39 +00:00
Sandro
c949eb0197 rclone: remove fuse2 (#521729) 2026-05-24 20:37:32 +00:00
R. Ryantm
2378e087dc wesnoth-devel: 1.19.23 -> 1.19.24 2026-05-24 20:36:19 +00:00
Sandro
9bbd7b01ac tfenv: fix darwin ggrep lookup and writable config dir (#521878) 2026-05-24 20:35:05 +00:00
Sandro
e86c16190b python3Packages.otter-grader: init at 6.1.6; python3Packages.fica: init at 0.4.1 (#512278) 2026-05-24 20:33:46 +00:00
Yohann Boniface
fbf5b9627b public-sans: use installFonts (#516635) 2026-05-24 20:29:22 +00:00
Sandro
789ffd3bb8 learn6502: 0.6.3 -> 0.6.5 (#520767) 2026-05-24 20:29:11 +00:00
Sandro
263617423c butterfly: 2.5.0 -> 2.5.1 (#520764) 2026-05-24 20:28:40 +00:00
Sandro
c1a64c31b1 linux-wallpaperengine: 0-unstable-2026-03-01 -> 0-unstable-2026-05-12 (#520760) 2026-05-24 20:28:11 +00:00
Sandro
3a73d9970b ubootRock5ModelC: init (#506030) 2026-05-24 20:26:23 +00:00
Yohann Boniface
64b1dead2c oldsindhi: use installFonts, cleanup (#523749) 2026-05-24 20:25:18 +00:00
Fabian Affolter
709c9a8dc4 python3Packages.dissect-hypervisor: disable failing test (#523752) 2026-05-24 20:25:10 +00:00
Sandro
9d0599f0f8 python3Packages.wasmtime: fix darwin shared library path (#521114) 2026-05-24 20:25:09 +00:00
kaynetik
f412499a62 tfenv: add version test
Add passthru.tests.version so the wrapper is exercised on every refresh.
2026-05-24 22:21:05 +02:00
kaynetik
02f97fba63 tfenv: fix darwin writable config dir 2026-05-24 22:21:05 +02:00
kaynetik
d89708f0be tfenv: fix darwin ggrep lookup
tfenv uses brew's gnugrep which is prefixed with g
2026-05-24 22:21:05 +02:00
dotlambda
db1afdd808 libleidenalg: 0.12.0 -> 0.13.0 (#523746) 2026-05-24 20:19:16 +00:00
Fabian Affolter
04e87995bb python3Packages.dissect-hypervisor: migrate to finalAttrs 2026-05-24 22:18:58 +02:00
kaynetik
30fbbf1cce tfenv: add findutils to runtime PATH
tfenv-use, tfenv-list and tfenv-version-name shell out to a literal
\\find, which is missing from coreutils. On a clean Nix-only PATH this
breaks `
tfenv use <version>` on both Linux and Darwin.
2026-05-24 22:17:43 +02:00
nixpkgs-ci[bot]
d1f9717567 kin-openapi: 0.138.0 -> 0.139.0 (#523387) 2026-05-24 20:17:09 +00:00
Fabian Affolter
b408696382 python3Packages.dissect-hypervisor: disable failing test 2026-05-24 22:16:58 +02:00
kaynetik
ee42070627 tfenv: refactor wrapper PATH to let in 2026-05-24 22:16:25 +02:00
Gaétan Lepage
781f683900 kulala-core: init at 0.6.0; vimPlugins.kulala-nvim: 5.3.4 -> 6.1.0 (#523733) 2026-05-24 20:15:31 +00:00
Robert Schütz
f0159ae36c python3Packages.leidenalg: use finalAttrs 2026-05-24 13:12:49 -07:00
Robert Schütz
64f2ef6bd0 python3Packages.leidenalg: 0.11.0 -> 0.12.0
Diff: https://github.com/vtraag/leidenalg/compare/0.11.0...0.12.0

Changelog: https://github.com/vtraag/leidenalg/blob/0.12.0/CHANGELOG
2026-05-24 13:12:04 -07:00
pancaek
aaf15923a4 oldsindhi: modernize, cleanup 2026-05-24 13:11:15 -07:00
Pol Dellaiera
d17bdfaa4e simplex-chat-desktop: fix updates for aarch64-linux (#518068) 2026-05-24 20:08:20 +00:00
Sandro
a07f7cde1c osmium: improve icons (#516934) 2026-05-24 20:07:17 +00:00
Peder Bergebakken Sundt
1af09a5668 mystmd: 1.9.0 -> 1.9.1 (#523564) 2026-05-24 20:04:59 +00:00
Austin Horstman
9de5595639 vimPlugins.kulala-nvim: 5.3.4 -> 6.1.0 2026-05-24 15:04:25 -05:00
Austin Horstman
53b94eaffc kulala-core: init at 0.6.0 2026-05-24 15:04:25 -05:00
Yohann Boniface
ae91d8e2e4 udev-gothic-nf: use installFonts (#523744) 2026-05-24 20:04:08 +00:00
Yohann Boniface
24bf30fe5d udev-gothic: use installFonts (#523743) 2026-05-24 20:02:38 +00:00
pancaek
7985b58c3a oldsindhi: use installFonts 2026-05-24 13:02:01 -07:00
pancaek
fca183d36b udev-gothic-nf: use installFonts 2026-05-24 12:58:59 -07:00
R. Ryantm
befe2135a7 libleidenalg: 0.12.0 -> 0.13.0 2026-05-24 19:55:13 +00:00
pancaek
85e3fda3ef udev-gothic: use installFonts 2026-05-24 12:54:45 -07:00
Peder Bergebakken Sundt
62b2efc66f ballerina: 2201.10.3 -> 2201.13.4 (#523219) 2026-05-24 19:54:06 +00:00
Peder Bergebakken Sundt
ca0aed1145 tlrc: 1.13.0 -> 1.13.1 (#523111) 2026-05-24 19:52:16 +00:00
winston
b4b7b6c9d1 python3Packages.wasmtime: fix meta, changelog url typo & refine license 2026-05-24 21:52:11 +02:00
Peder Bergebakken Sundt
cfe0f35fad cantus: 0.6.6 -> 0.6.7 (#522981) 2026-05-24 19:51:11 +00:00
nixpkgs-ci[bot]
e0cdaa3216 sudo-font: 3.4 -> 3.6 (#523726) 2026-05-24 19:50:43 +00:00
nixpkgs-ci[bot]
70db1b313c fluxcd: 2.8.7 -> 2.8.8 (#523690) 2026-05-24 19:50:41 +00:00
nixpkgs-ci[bot]
c5b33f503a flyctl: 0.4.52 -> 0.4.54 (#523711) 2026-05-24 19:50:40 +00:00
nixpkgs-ci[bot]
4f2f3f584d spotatui: 0.38.2 -> 0.38.3 (#523554) 2026-05-24 19:50:31 +00:00
R. Ryantm
46a7f173cb opentrack: 2026.1.0-unstable-2026-03-25 -> 2026.1.0-unstable-2026-05-23 2026-05-24 19:50:29 +00:00
nixpkgs-ci[bot]
2797463e14 ltspice: 26.0.1 -> 26.0.2 (#523199) 2026-05-24 19:50:18 +00:00
Stefan Frijters
f51283ed3c ocf-resource-agents: enable strictDeps, modernize (#509237) 2026-05-24 19:43:25 +00:00
Peder Bergebakken Sundt
d4e672f800 globus-cli: relax jmespath bound (#523238) 2026-05-24 19:42:42 +00:00
Matthieu Coudron
f66b2aa4f5 luaPackages.tomlua: add updater entry (#523720) 2026-05-24 19:36:37 +00:00
winston
587a3ef79a python3Packages.wasmtime: fix darwin shared library path 2026-05-24 21:34:47 +02:00
Michael Daniels
4e471a384c gam: 7.21.01 -> 7.43.04 (#520536) 2026-05-24 19:34:26 +00:00
Peder Bergebakken Sundt
935b777fe6 opensaml-cpp: fix build for x86_64-linux; shibboleth-sp: fix build for x86_64-linux (#522781) 2026-05-24 19:31:47 +00:00
Sandro
e78dd19e96 cddlib: split outputs (#518890) 2026-05-24 19:31:14 +00:00
Gaétan Lepage
67832a2a27 linuxPackages.nvidiaPackages.dc_580: 580.159.03 -> 580.159.04 (#520219) 2026-05-24 19:25:57 +00:00
Thane Gill
d93635edd9 gam: 7.21.01 -> 7.43.04 2026-05-24 15:22:45 -04:00
Michael Daniels
8de9c01945 cups-brother-hl3150cdn: init at 1.1.4-0 (#490971) 2026-05-24 19:22:26 +00:00
nixpkgs-ci[bot]
47bf5f3748 fresh-editor: 0.3.6 -> 0.3.8 (#523718) 2026-05-24 19:17:59 +00:00
Jack Kelly
ac74cf2998 cups-brother-hl3150cdn: init at 1.1.4-0 2026-05-24 15:17:34 -04:00
dotlambda
c67afa6ada python3Packages.abjad: drop (#523703) 2026-05-24 19:09:59 +00:00
Terry Garcia
ec5d28b85b 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.
2026-05-24 14:08:58 -05:00
Austin Horstman
75b6878953 luarocks-packages-updater: commit updates separately (#523721) 2026-05-24 19:07:59 +00:00
Michael Daniels
577f4f868a pipeline: 4.0.2 -> 4.0.3 (#523249) 2026-05-24 19:04:34 +00:00
Michael Daniels
bed4e045a1 gotty: 1.7.1 -> 1.7.2 (#523110) 2026-05-24 19:04:12 +00:00
Michael Daniels
6e856aa13c kloak: 0.8.0-1 -> 0.8.3-1 (#523108) 2026-05-24 19:03:59 +00:00
R. Ryantm
0c49698f3d sudo-font: 3.4 -> 3.6 2026-05-24 18:57:28 +00:00
Austin Horstman
8b3db59251 luaPackages.tomlua: add updater entry
tomlua was added in dd55b96871 without a matching row in maintainers/scripts/luarocks-packages.csv, so the first generated-package update dropped it from generated-packages.nix. Add the missing source-of-truth entry so future regenerations preserve it.
2026-05-24 13:48:17 -05:00
R. Ryantm
77f20e25c0 python3Packages.frigidaire: 0.18.44 -> 0.18.45 2026-05-24 18:44:12 +00:00
Yohann Boniface
80be5efbf5 maintainers: add eana (#521861) 2026-05-24 18:40:53 +00:00
2kybe3
28a1184855 dontgo403: drop
dontgo403 is a duplicate of nomore403

b02ba0f2a3
2026-05-24 20:39:45 +02:00
Fabian Affolter
9c0c258dd6 python3Packages.cyclopts: 4.10.2 -> 4.16.0 (#514199) 2026-05-24 18:38:53 +00:00
R. Ryantm
f6d805db35 fresh-editor: 0.3.6 -> 0.3.8 2026-05-24 18:37:18 +00:00
Fabian Affolter
47e4ab83f9 embedxpl: init at 3.1.0 (#523134) 2026-05-24 18:27:28 +00:00
R. Ryantm
72c85dc9cd flyctl: 0.4.52 -> 0.4.54 2026-05-24 18:24:19 +00:00
Perchun Pak
be032485b3 python3Packages.cyclopts: 4.10.2 -> 4.16.0 2026-05-24 20:23:41 +02:00
Fabian Affolter
97b5740745 python3Packages.claude-agent-sdk: 0.2.82 -> 0.2.87 (#523557) 2026-05-24 18:20:53 +00:00
Fabian Affolter
b18f7aee84 python3Packages.avea: 1.7.0 -> 1.8.0 (#523558) 2026-05-24 18:20:46 +00:00
Fabian Affolter
6c9fb39f68 python3Packages.resend: 2.23.0 -> 2.30.1 (#523560) 2026-05-24 18:20:38 +00:00
Fabian Affolter
bba90a3e63 python3Packages.reolink-aio: 0.19.1 -> 0.20.0 (#523572) 2026-05-24 18:20:22 +00:00
Fabian Affolter
f4ab45a3c1 vuls: 0.39.1 -> 0.39.2 (#523573) 2026-05-24 18:20:15 +00:00
Fabian Affolter
1814d5ebd7 theharvester: 4.10.1 -> 4.11.0 (#523574) 2026-05-24 18:20:10 +00:00
Colin
4578154396 gdb: fix mainProgram for cross (#523286) 2026-05-24 18:17:23 +00:00
Michael Daniels
f6580c6302 python3Packages.viser: 1.0.27 -> 1.0.29; set __darwinAllowLocalNetworking (#523428) 2026-05-24 18:17:07 +00:00
Michael Daniels
6baf1264cd python3Packages.magic-wormhole-mailbox-server: 0.7.0 -> 0.8.0 (#523231) 2026-05-24 18:16:51 +00:00
nixpkgs-ci[bot]
589f8b685d tutanota-desktop: 348.260506.0 -> 348.260519.0 (#523551) 2026-05-24 18:15:58 +00:00
K900
debc92f205 netbird-proxy: init at 0.71.4 (#520039) 2026-05-24 21:19:57 +03:00
Sigmanificient
b98756dd81 python3Packages.abject: drop 2026-05-24 20:13:58 +02:00
Michael Daniels
2aee8a8fb0 tmuxp: 1.67.0 -> 1.70.0
Changelog: https://github.com/tmux-python/tmuxp/raw/v1.70.0/CHANGES
2026-05-24 14:08:02 -04:00
Michael Daniels
6807493779 python3Packages.libtmux: 0.55.1 -> 0.58.0
Changelog: https://github.com/tmux-python/libtmux/raw/v0.58.0/CHANGES
2026-05-24 14:08:02 -04:00
nixpkgs-ci[bot]
04960e51b0 mongodb-atlas-cli: 1.54.0 -> 1.55.0 (#523687) 2026-05-24 17:46:29 +00:00
Yohann Boniface
b40a34fc91 zoom: modernize the recipe a bit and mark as broken (#522776) 2026-05-24 17:30:47 +00:00
Austin Horstman
0c06524e4e luarocks-packages-updater: commit updates separately 2026-05-24 12:29:01 -05:00
Austin Horstman
ecf26afe7e yaziPlugins: update on 2026-05-24 (#523634) 2026-05-24 17:23:50 +00:00
R. Ryantm
e1ea2e5ee3 fluxcd: 2.8.7 -> 2.8.8 2026-05-24 17:17:07 +00:00
Will Cohen
ea54f690a7 emscripten: 5.0.6 -> 5.0.7 (#515568) 2026-05-24 17:16:20 +00:00
Austin Horstman
e8d5966492 yaziPlugins.close-and-restore-tab: 0-unstable-2025-05-29 → 0-unstable-2026-05-23
Compare: 5047217e59...d7638aadf1
2026-05-24 12:12:31 -05:00
Austin Horstman
cfe0e52405 yaziPlugins.clipboard: 0-unstable-2026-05-20 → 0-unstable-2026-05-22
Compare: a125df07ba...0ac03203a8
2026-05-24 12:12:25 -05:00
R. Ryantm
7cbc3f14b3 mongodb-atlas-cli: 1.54.0 -> 1.55.0 2026-05-24 17:08:21 +00:00
Sandro
7bae259bd3 apt: 3.3.0 -> 3.3.1 (#523401) 2026-05-24 17:07:52 +00:00
Sandro
82f71770b6 github-desktop: 3.5.8 -> 3.5.10, fix updateScript (#523449) 2026-05-24 17:07:39 +00:00
Sandro
0b6f9ac12f python3Packages.obspec: skip pytest-mypy-plugins test under sandbox (#523365) 2026-05-24 17:06:34 +00:00
Masum Reza
409939e9f4 mprime: fix fatal error with -march=znver1 (#430411) 2026-05-24 17:03:19 +00:00
Thiago Kenji Okada
d36811248e libretro.beetle-pce-fast: 0-unstable-2026-05-16 -> 0-unstable-2026-05-22 (#523680) 2026-05-24 17:03:02 +00:00
Sandro
57aeb7ad09 python3Packages.numpy: fix riscv64-linux build (#523194) 2026-05-24 17:02:56 +00:00
Pol Dellaiera
78df74c3ad antigravity-cli: init at 1.0.2 (#523246) 2026-05-24 17:01:57 +00:00
Felix Bargfeldt
e9100b5b9d hurl: 7.1.0 -> 8.0.1 (#513991) 2026-05-24 17:00:22 +00:00
Sefa Eyeoglu
a4a576df72 qpwgraph: 1.0.1 -> 1.0.2 (#523637) 2026-05-24 16:50:18 +00:00
Wolfgang Walther
d5a75ff28d postgresqlPackages.pg_net: 0.20.2 -> 0.20.3 (#523364) 2026-05-24 16:47:45 +00:00
R. Ryantm
8199c69f31 libretro.beetle-pce-fast: 0-unstable-2026-05-16 -> 0-unstable-2026-05-22 2026-05-24 16:46:24 +00:00
2kybe3
f5d28da11e hurl: 7.1.0 -> 8.0.1
Diff: https://github.com/Orange-OpenSource/hurl/compare/7.1.0...8.0.1

Changelogs:

- https://github.com/Orange-OpenSource/hurl/releases/tag/8.0.0
- https://github.com/Orange-OpenSource/hurl/releases/tag/8.0.1
2026-05-24 18:43:20 +02:00
Michael Daniels
554b454a25 grafanaPlugins.victoriametrics-logs-datasource: 0.26.3 -> 0.27.1 (#522998) 2026-05-24 16:30:12 +00:00
Michael Daniels
7f21229372 python3Packages.airos: 0.6.5 -> 0.6.7 (#523268) 2026-05-24 16:30:03 +00:00
Dmitry Kalinkin
383c59fb0e texlive: merge withDocs, tlDeps updates and remove texlive.combine from the documentation (#523350) 2026-05-24 16:27:43 +00:00
Martin Weinelt
f428686c39 nixos/music-assistant: disable MemoryDenyWriteExecute (#523654) 2026-05-24 16:27:24 +00:00
Masum Reza
4e7dbff92b nixos/cosmic-greeter: add cosmic icons (#523250) 2026-05-24 16:21:34 +00:00
nixpkgs-ci[bot]
95e0eee1bb pocketbase: 0.38.0 -> 0.38.2 (#523114) 2026-05-24 16:17:22 +00:00
eyjhb
32684cb628 netbird-proxy: init at 0.71.4 2026-05-24 18:16:45 +02:00
Marie Ramlow
6b53fc13e3 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
```
2026-05-24 18:08:35 +02:00
Sandro
61c388735c bazaar: 0.7.15 -> 0.8.1 (#521112) 2026-05-24 16:00:22 +00:00
Fernando Rodrigues
556e57ad06 ISSUE_TEMPLATE: deprecate (#521074) 2026-05-24 15:55:03 +00:00
Fernando Rodrigues
9a20611a9b keepassxc: fix pcsc for darwin (#520328) 2026-05-24 15:53:42 +00:00
Maciej Krüger
15da6513ac fluffychat: 2.5.1 -> 2.6.0 (#523624) 2026-05-24 15:51:58 +00:00
nixpkgs-ci[bot]
b3973d61d4 jamulus: 3.11.0 -> 3.12.0 (#516094) 2026-05-24 15:49:02 +00:00
Maciej Krüger
015c1c04c8 openclaw: 2026.5.7 -> 2026.5.12 (#521248) 2026-05-24 15:43:49 +00:00
Peder Bergebakken Sundt
3271a1e4d0 python3Packages.unidiff: modernize and migrate to pyproject (#522858) 2026-05-24 15:35:54 +00:00
R. Ryantm
4a598a0ca7 gram: 2.1.0 -> 2.1.2 2026-05-24 15:32:21 +00:00
Bobby Rong
540b71141a planify: 4.19.3 -> 4.19.4 (#523649) 2026-05-24 15:30:02 +00:00
nixpkgs-ci[bot]
87c888eede oxlint: 1.65.0 -> 1.66.0 (#523631) 2026-05-24 15:21:49 +00:00
nixpkgs-ci[bot]
db638e8c25 qdrant: 1.17.1 -> 1.18.1 (#520494) 2026-05-24 15:21:32 +00:00
Maciej Krüger
bd3d404295 openclaw: 2026.5.7 -> 2026.5.12
Assisted-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 17:17:41 +02:00
R. Ryantm
10a1b0fa88 planify: 4.19.3 -> 4.19.4 2026-05-24 15:17:19 +00:00
twoneis
e9ea113abd fluffychat: 2.5.1 -> 2.6.0 2026-05-24 17:16:46 +02:00
Stefan Frijters
3bbbe3e886 drbd-utils: 9.33.0 -> 9.34.0 (#515578) 2026-05-24 15:04:31 +00:00
Peder Bergebakken Sundt
898c0219b4 python3Packages.hdf5plugin: parametrize cpu features (#521031) 2026-05-24 15:04:03 +00:00
Peder Bergebakken Sundt
e51ee1ef2d goperf: 0-unstable-2026-04-09 -> 0-unstable-2026-05-12 (#522398) 2026-05-24 15:02:54 +00:00
Peder Bergebakken Sundt
8b9a8ab18e nocturne: init at 1.1.1 (#522380) 2026-05-24 15:01:42 +00:00
isabel
f9d097cefe metadata: fix build with ffmpeg 8.1 (#523282) 2026-05-24 14:53:35 +00:00
isabel
710fffb70b larswm: drop (#523242) 2026-05-24 14:47:06 +00:00
Sandro
a67513474a fossil: refactor install phase (#523445) 2026-05-24 14:47:03 +00:00
Austin Horstman
628847c94d vimPlugins.blink-calc: init at 0-unstable-2025-10-06 (#523599) 2026-05-24 14:46:33 +00:00
R. Ryantm
ca68ffba1e qpwgraph: 1.0.1 -> 1.0.2 2026-05-24 14:43:54 +00:00
Nikolay Korotkiy
23e9e83030 saga: 9.12.3 -> 9.12.4 (#523496) 2026-05-24 14:43:02 +00:00
Peder Bergebakken Sundt
2887859fa2 manifold: 3.4.1 -> 3.5.0 (#523248) 2026-05-24 14:30:29 +00:00
Maciej Krüger
8bb14203c5 rolldown: 1.0.0-rc.12 -> 1.0.0 2026-05-24 16:20:21 +02:00
Peder Bergebakken Sundt
91d59c7af0 qbz: wrap pactl and pw-metadata into PATH (#522039) 2026-05-24 14:19:02 +00:00
Sandro
0a7851832d librewolf-unwrapped: 150.0.3-1 -> 151.0.1-2 (#522154) 2026-05-24 14:17:29 +00:00
Sandro
ded3cab417 peertube: 8.1.5 -> 8.1.8 (#523443) 2026-05-24 14:15:56 +00:00
Nikolay Korotkiy
6802527b57 orbiton: 2.74.0 -> 2.74.2 (#523212) 2026-05-24 14:14:35 +00:00
Sandro
2af6bedac6 libsolv: 0.7.36 -> 0.7.37 (#522674) 2026-05-24 14:12:28 +00:00
nixpkgs-ci[bot]
68ac0b94b4 amdgpu_top: 0.11.4 -> 0.11.5 (#523508) 2026-05-24 13:42:10 +00:00
Toma
11db3d2b9f siyuan: support darwin (#521546) 2026-05-24 13:40:53 +00:00
Aleksana
2ec6f0187a nwg-dock-hyprland: 0.4.8 -> 0.4.9 (#519992) 2026-05-24 13:36:43 +00:00
Aleksana
6275b32ffa netease-cloud-music-gtk: 2.5.2 -> 2.5.3 (#521409) 2026-05-24 13:35:24 +00:00
zowoq
058b87331f terraform-providers.fastly_fastly: 9.1.1 -> 9.2.0 (#523615) 2026-05-24 13:27:51 +00:00
R. Ryantm
0e9652423b oxlint: 1.65.0 -> 1.66.0 2026-05-24 13:27:40 +00:00
zowoq
3288ec4f5d terraform-providers.aliyun_alicloud: 1.278.0 -> 1.279.0 (#523280) 2026-05-24 13:24:16 +00:00
zowoq
2549e16bf0 terraform-providers.gitlabhq_gitlab: 18.11.0 -> 19.0.0 (#523204) 2026-05-24 13:24:01 +00:00
yaya
a2e55e31d6 26.11 is Zokor 2026-05-24 15:07:40 +02:00
Austin Horstman
f69b2eb358 vimPlugins.blink-pairs: 0.4.1 -> 0.5.0 (#523577) 2026-05-24 13:01:55 +00:00
nixpkgs-ci[bot]
b3c2035bbd cargo-codspeed: 4.6.0 -> 4.7.0 (#523205) 2026-05-24 12:59:30 +00:00
Jo
56298ea069 .github: Add release-26.05 CI config (#523610) 2026-05-24 12:56:15 +00:00
Jo
3295052572 Update 26.11 documentation (#523605) 2026-05-24 12:52:53 +00:00
R. Ryantm
51e39c08a8 terraform-providers.fastly_fastly: 9.1.1 -> 9.2.0 2026-05-24 12:52:13 +00:00
yaya
41a5348c15 .github: Add release-26.05 CI config 2026-05-24 14:51:41 +02:00
yaya
ca22d15bca doc: Update for 26.11 2026-05-24 14:42:27 +02:00
Adam C. Stephens
6dce29a1d5 quickwit.tests: drop deleted test reference (#523603) 2026-05-24 12:33:10 +00:00
John Titor
fd2acaeefa mprime: add pre phase and post phase hooks 2026-05-24 18:00:13 +05:30
Aaron Jheng
5c8553d66b mysql-shell-innovation: fix build with libc++ 21 2026-05-24 20:29:11 +08:00
Aaron Jheng
8f85bca57f mysql-shell_9: fix build with libc++ 21 2026-05-24 20:29:11 +08:00
Aaron Jheng
70854d52a1 mysql-shell_8: fix build with clang 2026-05-24 20:29:11 +08:00
someplaceguy
f511847d35 mprime: fix fatal error with -march=znver1
Compiling for recent architectures causes rounding issues:

FATAL ERROR: Rounding was 0.4977243728, expected less than 0.4
2026-05-24 17:58:21 +05:30
Yohann Boniface
0ac780c690 python3Packages.github-webhook: modernize and migrate to pyproject (#522860) 2026-05-24 12:09:58 +00:00
Sergei Trofimovich
251367f734 quickwit.tests: drop deleted test reference
Without the change the eval fails as:

```
$ nix-instantiate -A quickwit.tests
error:
       … while evaluating the attribute 'syslog-quickwit'
         at pkgs/by-name/qu/quickwit/package.nix:112:35:
          111|       inherit (nixosTests) quickwit;
          112|       inherit (nixosTests.vector) syslog-quickwit;
             |                                   ^
          113|     };

       error: attribute 'syslog-quickwit' missing
       at pkgs/by-name/qu/quickwit/package.nix:112:35:
          111|       inherit (nixosTests) quickwit;
          112|       inherit (nixosTests.vector) syslog-quickwit;
             |                                   ^
          113|     };
```
2026-05-24 13:02:16 +01:00
Yohann Boniface
054616c9c7 python3Packages.unicurses: modernize and migrate to pyproject (#522866) 2026-05-24 11:59:07 +00:00
Yohann Boniface
258544fde3 python3Packages.github-to-sqlite: modernize and migrate to pyproject (#522868) 2026-05-24 11:58:53 +00:00
Harinn
83d906581b python3Packages.obspec: fix pytest-mypy-plugins under sandbox 2026-05-24 18:58:48 +07:00
Yohann Boniface
bf7361f4c3 treewide: resolve pypi.org and related redirects (#523187) 2026-05-24 11:57:04 +00:00
vimlinuz
8d31934cf8 vimPlugins.blink-calc: init at 0-unstable-2025-10-06
https://github.com/joelazar/blink-calc

vimPlugins.blink-calc: added overrides
2026-05-24 17:40:44 +05:45
Harinn
aef777d2cb larswm: drop 2026-05-24 18:51:34 +07:00
Fida Waseque Choudhury
f123c32d53 antigravity-cli: init at 1.0.2 2026-05-24 11:37:24 +00:00
Martin Weinelt
9dd9cfb239 Migrate variouis test to nspawn container (#523595) 2026-05-24 11:28:17 +00:00
nixpkgs-ci[bot]
4c6bd356f1 filebrowser: 2.63.3 -> 2.63.5 (#523590) 2026-05-24 11:25:16 +00:00
nixpkgs-ci[bot]
1ed51a257f openrct2: 0.5.0 -> 0.5.1 (#523582) 2026-05-24 11:25:15 +00:00
Yohann Boniface
6e23e628ca python3Packages.python-magic: modernize and migrate to pyproject (#523014) 2026-05-24 11:24:34 +00:00
Martin Weinelt
fbc588f146 nixosTests.postfix-tlspol: use nspawn container 2026-05-24 13:19:44 +02:00
Martin Weinelt
27c670ba57 nixosTests.pinnwand: use nspawn container 2026-05-24 13:18:22 +02:00
Sandro
3cdf3aad72 python3Packages.modern-colorthief: 0.2.0 -> 0.2.1 (#523319) 2026-05-24 11:17:38 +00:00
Sandro
bac573a799 python3Packages.rnginline: disable test_file_url_roundtrip on python 3.14+ (#523373) 2026-05-24 11:17:37 +00:00
Harinn
cbb314acf6 metadata: fix build with ffmpeg 8.1 2026-05-24 18:17:13 +07:00
Martin Weinelt
043c78f155 nixosTests.evcc: use nspawn container 2026-05-24 13:17:13 +02:00
Martin Weinelt
9b4eefdf38 nixosTests.zigbee2mqtt: use nspawn container 2026-05-24 13:15:09 +02:00
isabel
c70c207e6f 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
2026-05-24 11:49:50 +01:00
R. Ryantm
98eb541c26 filebrowser: 2.63.3 -> 2.63.5 2026-05-24 10:40:23 +00:00
R. Ryantm
5fca87544f openrct2: 0.5.0 -> 0.5.1 2026-05-24 09:50:12 +00:00
Kiskae
623d0b102e linuxPackages.nvidiaPackages.dc_580: 580.159.03 -> 580.159.04 2026-05-24 11:06:16 +02:00
Fabian Affolter
77d64e77e4 python3Packages.reolink-aio: 0.19.1 -> 0.20.0
Diff: https://github.com/starkillerOG/reolink_aio/compare/0.19.1...0.20.0

Changelog: https://github.com/starkillerOG/reolink_aio/releases/tag/0.20.0
2026-05-24 11:05:46 +02:00
Fabian Affolter
fde788cce2 vuls: 0.39.1 -> 0.39.2
Diff: https://github.com/future-architect/vuls/compare/v0.39.1...v0.39.2

Changelog: https://github.com/future-architect/vuls/blob/refs/tags/v0.39.2/CHANGELOG.md
2026-05-24 11:03:07 +02:00
Fabian Affolter
9391f599b8 theharvester: 4.10.1 -> 4.11.0
Diff: https://github.com/laramies/theharvester/compare/4.10.1...4.11.0

Changelog: https://github.com/laramies/theHarvester/releases/tag/4.11.0
2026-05-24 11:00:01 +02:00
Thomas Butter
609f02dc37 mystmd: 1.9.0 -> 1.9.1 2026-05-24 08:08:25 +00:00
Fabian Affolter
60f68d3536 python3Packages.resend: migrate to finalAttrs 2026-05-24 09:54:32 +02:00
Fabian Affolter
08ce913ab1 python3Packages.resend: 2.23.0 -> 2.30.1
Changelog: https://github.com/resend/resend-python/releases/tag/v2.30.1
2026-05-24 09:45:23 +02:00
Fabian Affolter
e6c48052d2 python3Packages.avea: 1.7.0 -> 1.8.0
Diff: https://github.com/k0rventen/avea/compare/v1.7.0...v1.8.0

Changelog: https://github.com/k0rventen/avea/releases/tag/v1.8.0
2026-05-24 09:38:13 +02:00
Fabian Affolter
7409f8a996 python3Packages.claude-agent-sdk: 0.2.82 -> 0.2.87
Diff: https://github.com/anthropics/claude-agent-sdk-python/compare/v0.2.82...v0.2.87

Changelog: https://github.com/anthropics/claude-agent-sdk-python/blob/v0.2.87/CHANGELOG.md
2026-05-24 09:37:01 +02:00
R. Ryantm
df58bf4a30 spotatui: 0.38.2 -> 0.38.3 2026-05-24 07:05:02 +00:00
R. Ryantm
36ca508783 tutanota-desktop: 348.260506.0 -> 348.260519.0 2026-05-24 06:43:10 +00:00
Acid Bong
c7b99aaff9 fossil: install both Bash and Zsh completions 2026-05-24 09:05:23 +03:00
Acid Bong
cac360f6c6 fossil: move install flags to the dedicated attr, manual and completion - to postInstall
also that `mkdir` was redundant, `make install` already does it
2026-05-24 09:05:23 +03:00
R. Ryantm
b2db63fc2f amdgpu_top: 0.11.4 -> 0.11.5 2026-05-24 01:41:06 +00:00
R. Ryantm
b28ce13125 saga: 9.12.3 -> 9.12.4 2026-05-24 00:32:41 +00:00
Hythera
82679a6d3f 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
2026-05-24 00:24:44 +02:00
Vincenzo Mantova
022d9ebeeb doc: remove texlive.combine from the TeX Live documentation 2026-05-23 22:10:53 +01:00
Tom Oostveen
e728f8675e github-desktop: 3.5.8 -> 3.5.10 2026-05-23 21:38:06 +02:00
Tom Oostveen
3a709ae573 github-desktop: update with nix-update --custom-dep 2026-05-23 21:37:53 +02:00
Tom Oostveen
a08c62de8c bazaar: 0.7.15 -> 0.8.1
Diff: https://github.com/kolunmi/bazaar/compare/v0.7.8...v0.8.1
2026-05-23 21:20:22 +02:00
Hythera
9e94033741 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/
2026-05-23 20:33:15 +02:00
Michael Daniels
65434d480d python3Packages.viser: set __darwinAllowLocalNetworking 2026-05-23 13:59:08 -04:00
Michael Daniels
8c9c251607 python3Packages.viser: 1.0.27 -> 1.0.29
Changelogs:
- https://github.com/viser-project/viser/releases/tag/v1.0.28
- https://github.com/viser-project/viser/releases/tag/v1.0.29

Diff: https://github.com/viser-project/viser/compare/v1.0.27...v1.0.29
2026-05-23 13:58:38 -04:00
nicknb
ac33fd62fd apt: 3.3.0 -> 3.3.1 2026-05-23 18:01:37 +02:00
R. Ryantm
6a900378fe kin-openapi: 0.138.0 -> 0.139.0 2026-05-23 14:42:58 +00:00
Malix - Alix Brunet
65e5f6f635 ISSUE_TEMPLATE: deprecate 2026-05-23 16:30:57 +02:00
R. Ryantm
a82f26a2cd postgresqlPackages.pg_net: 0.20.2 -> 0.20.3 2026-05-23 13:42:50 +00:00
Moraxyc
062581ebdc siyuan: switch to pnpm_10 2026-05-23 06:35:35 -07:00
Moraxyc
982047257d siyuan: refactor 2026-05-23 06:34:22 -07:00
Moraxyc
19094e7d7b siyuan: support darwin 2026-05-23 06:32:23 -07:00
Vincenzo Mantova
af229eadca R: make tlDeps a function 2026-05-23 14:05:26 +01:00
Vincenzo Mantova
f53f80a757 R: remove legacy tlType, pkgs attributes 2026-05-23 14:05:25 +01:00
Vincenzo Mantova
9dd731c4bf perlPackages.LaTeXML: remove legacy tlType, pkgs attributes 2026-05-23 14:05:25 +01:00
Vincenzo Mantova
539315b6fc noweb: remove legacy tlType, pkgs attributes 2026-05-23 14:05:25 +01:00
Vincenzo Mantova
089f87d34b mftrace: make tlDeps a function 2026-05-23 14:05:25 +01:00
Vincenzo Mantova
deedb05a23 junicode: make tlDeps a function 2026-05-23 14:05:24 +01:00
Vincenzo Mantova
7751dd9cbe eukleides: make tlDeps a function 2026-05-23 14:05:24 +01:00
Vincenzo Mantova
27f106cf12 eukleides: remove legacy tlType, pkgs attributes 2026-05-23 14:05:24 +01:00
Vincenzo Mantova
aaf6a1e1f4 auto-multiple-choice: remove legacy tlType, pkgs attributes 2026-05-23 14:05:24 +01:00
Vincenzo Mantova
dbeafe9461 auctex: remove legacy tlType, pkgs attributes 2026-05-23 14:05:23 +01:00
Vincenzo Mantova
3a6bafbdf5 texlive.withPackages: allow tlDeps to be a function, drop unused requiredTeXPackages 2026-05-23 14:05:23 +01:00
Harinn
924237ac66 python3Packages.rnginline: disable test_file_url_roundtrip on python 3.14+ 2026-05-23 19:54:31 +07:00
Vincenzo Mantova
c8b6540469 texlive.withPackages: replace force-output.sh with preHook 2026-05-23 13:51:07 +01:00
Vincenzo Mantova
27da8a3737 texlive.withPackages: add withDocs, withSources to default attributes 2026-05-23 13:50:52 +01:00
Vincenzo Mantova
d40578e2b1 texlive.withPackages: enable strictDeps 2026-05-23 13:50:52 +01:00
Vincenzo Mantova
96c9b622de tests.texlive.texdoc: use withDocs to add the doc containers 2026-05-23 13:50:52 +01:00
Vincenzo Mantova
38a19e2d2f texliveFullWithDocs: init at 2025-r78234-final 2026-05-23 13:50:52 +01:00
Vincenzo Mantova
41d265c82a texlive.withPackages: move withDocs, withSources from passthru to derivation arguments 2026-05-23 13:50:51 +01:00
Vincenzo Mantova
62b7051f28 texlive.withPackages: use buildenv (finalAttrs: ...) 2026-05-23 13:50:51 +01:00
Vincenzo Mantova
f5804647d9 texlive.withPackages: remove unused arguments 2026-05-23 13:50:51 +01:00
R. Ryantm
2fcafdef9f qdrant: 1.17.1 -> 1.18.1 2026-05-23 12:35:16 +00:00
R. Ryantm
dcb5276d18 python3Packages.modern-colorthief: 0.2.0 -> 0.2.1 2026-05-23 11:21:41 +00:00
ppom
9b6d76a89f peertube: 8.1.5 -> 8.1.8
Important security fix
2026-05-23 12:00:00 +02:00
liberodark
65ae5aabf4 python3Packages.numpy: fix riscv64-linux build 2026-05-23 11:27:36 +02:00
Ryan Burns
3e2c7006a7 gdb: fix mainProgram for cross
This fixes the versionCheckHook, allowing
us to build for non-native target arches.
2026-05-23 02:00:08 -07:00
R. Ryantm
f502e2e05d terraform-providers.aliyun_alicloud: 1.278.0 -> 1.279.0 2026-05-23 08:42:39 +00:00
R. Ryantm
af650700d8 python3Packages.airos: 0.6.5 -> 0.6.7 2026-05-23 07:45:00 +00:00
John Titor
178a6acd19 nixos/cosmic-greeter: add cosmic icons
Without this icons don't show up after the recent update.
2026-05-23 11:00:52 +05:30
R. Ryantm
64c21a0dd8 pipeline: 4.0.2 -> 4.0.3 2026-05-23 05:24:43 +00:00
Fida Waseque Choudhury
6ff0d66e40 maintainers: add u3kkasha 2026-05-23 05:15:49 +00:00
R. Ryantm
8499fe1164 manifold: 3.4.1 -> 3.5.0 2026-05-23 04:50:47 +00:00
R. Ryantm
6312829555 python3Packages.magic-wormhole-mailbox-server: 0.7.0 -> 0.8.0 2026-05-23 04:23:31 +00:00
Cameron Brown
a3ebf5d82c ballerina: 2201.10.3 -> 2201.13.4 2026-05-22 23:17:20 -04:00
R. Ryantm
86610acde4 orbiton: 2.74.0 -> 2.74.2 2026-05-23 02:22:21 +00:00
R. Ryantm
8487ffb9d7 cargo-codspeed: 4.6.0 -> 4.7.0 2026-05-23 01:41:24 +00:00
R. Ryantm
d728d63bc9 terraform-providers.gitlabhq_gitlab: 18.11.0 -> 19.0.0 2026-05-23 01:34:19 +00:00
R. Ryantm
4d20760a9d ltspice: 26.0.1 -> 26.0.2 2026-05-23 00:28:38 +00:00
Sandro Jäckel
0438d3a58c treewide: resolve pypi.org and related redirects 2026-05-23 01:48:10 +02:00
Fabian Affolter
2c9e355887 embedxpl: init at 3.1.0
Embedded Device Security Assessment Framework

https://github.com/mrhenrike/EmbedXPL-Forge
2026-05-23 00:54:47 +02:00
SandaruKasa
c4f962bd1d python3Packages.unicurses: modernize and migrate to pyproject 2026-05-23 01:07:02 +03:00
R. Ryantm
c72f24e355 pocketbase: 0.38.0 -> 0.38.2 2026-05-22 18:30:40 +00:00
Lena Pastwa
23b2162124 tlrc: 1.13.0 -> 1.13.1 2026-05-22 20:29:56 +02:00
R. Ryantm
4292c7107e gotty: 1.7.1 -> 1.7.2 2026-05-22 18:24:38 +00:00
R. Ryantm
f43812271a kloak: 0.8.0-1 -> 0.8.3-1 2026-05-22 18:15:26 +00:00
Harinn
01b4a75371 globus-cli: relax jmespath bound 2026-05-22 22:31:23 +07:00
SandaruKasa
2eefe047d2 python3Packages.python-magic: modernize and migrate to pyproject 2026-05-22 18:13:37 +03:00
SandaruKasa
deae2ad487 python3Packages.github-webhook: modernize and migrate to pyproject 2026-05-22 17:59:29 +03:00
SandaruKasa
6420294d54 zoom: mark as broken 2026-05-22 17:48:50 +03:00
R. Ryantm
400c8d45dc grafanaPlugins.victoriametrics-logs-datasource: 0.26.3 -> 0.27.1 2026-05-22 12:17:37 +00:00
Dan Lock
6aecfb572c cantus: 0.6.6 -> 0.6.7 2026-05-22 11:33:56 +01:00
SandaruKasa
023547a888 python3Packages.unidiff: modernize and migrate to pyproject 2026-05-22 03:50:11 +03:00
SandaruKasa
dae3da3628 python3Packages.github-to-sqlite: modernize and migrate to pyproject 2026-05-22 03:50:11 +03:00
Leon Schwarzäugl
82fa0bc966 shibboleth-sp: fix build for x86_64-linux 2026-05-21 22:18:15 +02:00
Leon Schwarzäugl
90d53229ff opensaml-cpp: fix build for x86_64-linux 2026-05-21 22:10:44 +02:00
William Weiskopf
feafc3f846 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".
2026-05-21 16:04:19 -04:00
SandaruKasa
78d513cbf0 zoom: do not use NIX_CFLAGS_COMPILE 2026-05-21 23:03:36 +03:00
SandaruKasa
da61b7c10a zoom: remove seemignly unused expat dependency 2026-05-21 23:03:36 +03:00
SandaruKasa
145bc24198 zoom: enable strictDeps 2026-05-21 23:03:30 +03:00
SandaruKasa
f31f0d2fe2 zoom: enable parallelBuilding and __structuredAttrs 2026-05-21 23:03:24 +03:00
Makuru
25dd50acb7 kicad: 10.0.2 -> 10.0.3 2026-05-21 17:55:18 +02:00
Peder Bergebakken Sundt
5fd9b32603 python3Packages.hdf5plugin: parametrize cpu features
Co-Authored-By: Grimmauld <Grimmauld@grimmauld.de>
Co-Authored-By: Sam Estep <sam@samestep.com>
2026-05-21 00:34:28 +02:00
R. Ryantm
1e61ab15a6 goperf: 0-unstable-2026-04-09 -> 0-unstable-2026-05-12 2026-05-20 21:57:34 +00:00
Peder Bergebakken Sundt
0de7dbe165 nocturne: init at 1.1.1
Assisted-by: nix-init
2026-05-20 23:21:46 +02:00
Peder Bergebakken Sundt
261eac2ed0 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.
2026-05-20 17:14:31 +02:00
Peder Bergebakken Sundt
481a260d76 Revert "python3Packages.mpris-server: drop"
This commit reverts d698f37523
2026-05-20 17:14:31 +02:00
Sandro Jäckel
a7e450a7ff rclone: remove fuse2 2026-05-20 11:02:37 +02:00
Sandro Jäckel
9b24328fda 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
2026-05-19 20:44:54 +02:00
Jonas Eana
1beecf4ef6 maintainers: add eana 2026-05-19 10:12:50 +02:00
Michael Daniels
902b89a52a 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
2026-05-17 20:49:02 -04:00
kyehn
4afc2190b6 saber: 1.33.0 -> 1.33.3 2026-05-16 21:01:39 +08:00
Ryan Omasta
3f3adda4cc keepassxc: fix pcsc for darwin 2026-05-16 03:22:49 -06:00
kyehn
7af64e1cf7 learn6502: 0.6.3 -> 0.6.5 2026-05-16 16:51:59 +08:00
kyehn
fcd0b5fe5d butterfly: 2.5.0 -> 2.5.1 2026-05-16 16:46:47 +08:00
kyehn
ae26d3a35b linux-wallpaperengine: 0-unstable-2026-03-01 -> 0-unstable-2026-05-12 2026-05-16 16:41:46 +08:00
pancaek
bb8d655251 public-sans: add pancaek to maintainers 2026-05-15 17:48:54 -07:00
pancaek
ed7147b32b public-sans: use installFonts 2026-05-15 17:47:55 -07:00
Sandro Jäckel
140b6e526a libva1,libva1-minimal: drop 2026-05-14 13:51:24 +02:00
R. Ryantm
8e09417e9f nwg-dock-hyprland: 0.4.8 -> 0.4.9 2026-05-14 03:11:10 +00:00
HHR2020
72e2be4cfb python3Packages.otter-grader: init at 6.1.6 2026-05-11 14:20:58 +08:00
HHR2020
dde7586eb4 python3Packages.fica: init at 0.4.1 2026-05-11 13:16:45 +08:00
Alex Epelde
433c68e842 cddlib: split outputs 2026-05-10 09:58:45 -04:00
twoneis
c500de46d8 osmium: add all icon sizes 2026-05-05 22:13:32 +02:00
twoneis
6d7ebac433 osmium: don't put icon in not spec-compliant location 2026-05-05 18:01:56 +02:00
R. Ryantm
a4022ccd6d jamulus: 3.11.0 -> 3.12.0 2026-05-03 12:28:19 +00:00
birkb
a4f8277747 drbd-utils: 9.33.0 -> 9.34.0
Signed-off-by: birkb <birkb@users.noreply.github.com>
2026-05-01 20:39:35 +02:00
R. Ryantm
8cc3f0cecc emscripten: 5.0.6 -> 5.0.7 2026-05-01 18:04:00 +00:00
Stefan Frijters
327fd39fab ocf-resource-agents: modernize 2026-04-12 13:01:17 +02:00
Stefan Frijters
34cb27edea ocf-resource-agents: enable strictDeps
We need a shell in buildInputs to allow the shebangs of many scripts
to be patched.
2026-04-12 12:58:15 +02:00
Marijan Petričević
6ab0eeb988 ubootRock5ModelC: init 2026-04-02 16:34:40 +02:00
585 changed files with 29370 additions and 29453 deletions

View File

@@ -1,6 +0,0 @@
<!--
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,7 +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.05)"
- "- Unstable (26.11)"
- "- Beta (26.05)"
- "- Stable (25.11)"
default: 0
validations:

View File

@@ -35,7 +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.05)"
- "- Unstable (26.11)"
- "- Beta (26.05)"
- "- Stable (25.11)"
default: 0
validations:

View File

@@ -35,7 +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.05)"
- "- Unstable (26.11)"
- "- Beta (26.05)"
- "- Stable (25.11)"
default: 0
validations:

View File

@@ -37,7 +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.05)"
- "- Unstable (26.11)"
- "- Beta (26.05)"
- "- Stable (25.11)"
default: 0
validations:

View File

@@ -37,7 +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.05)"
- "- Unstable (26.11)"
- "- Beta (26.05)"
- "- Stable (25.11)"
default: 0
validations:

View File

@@ -35,7 +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.05)"
- "- Unstable (26.11)"
- "- Beta (26.05)"
- "- Stable (25.11)"
default: 0
validations:

1
.github/labeler.yml vendored
View File

@@ -9,7 +9,6 @@
- '^release-'
- '^staging-\d'
- '^staging-next-\d'
- '^staging-nixos-\d'
# NOTE: bsd, darwin and cross-compilation labels are handled by ofborg
"6.topic: agda":

View File

@@ -21,7 +21,7 @@ defaults:
jobs:
backport:
name: Backport Pull Request
if: vars.NIXPKGS_CI_CLIENT_ID && github.event.pull_request.merged == true && (github.event.action != 'labeled' || startsWith(github.event.label.name, 'backport'))
if: vars.NIXPKGS_CI_APP_ID && github.event.pull_request.merged == true && (github.event.action != 'labeled' || startsWith(github.event.label.name, 'backport'))
runs-on: ubuntu-slim
timeout-minutes: 3
steps:
@@ -30,7 +30,7 @@ jobs:
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-token
with:
client-id: ${{ vars.NIXPKGS_CI_CLIENT_ID }}
app-id: ${{ vars.NIXPKGS_CI_APP_ID }}
private-key: ${{ secrets.NIXPKGS_CI_APP_PRIVATE_KEY }}
permission-contents: write
permission-pull-requests: write

View File

@@ -57,10 +57,10 @@ jobs:
# Use a GitHub App, because it has much higher rate limits: 12,500 instead of 5,000 req / hour.
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
if: github.event_name != 'pull_request' && vars.NIXPKGS_CI_CLIENT_ID
if: github.event_name != 'pull_request' && vars.NIXPKGS_CI_APP_ID
id: app-token
with:
client-id: ${{ vars.NIXPKGS_CI_CLIENT_ID }}
app-id: ${{ vars.NIXPKGS_CI_APP_ID }}
private-key: ${{ secrets.NIXPKGS_CI_APP_PRIVATE_KEY }}
permission-administration: read
permission-contents: write

View File

@@ -31,10 +31,10 @@ jobs:
# Use the GitHub App to make sure the reaction happens with the same user who will later merge.
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
if: github.event_name != 'pull_request' && vars.NIXPKGS_CI_CLIENT_ID
if: github.event_name != 'pull_request' && vars.NIXPKGS_CI_APP_ID
id: app-token
with:
client-id: ${{ vars.NIXPKGS_CI_CLIENT_ID }}
app-id: ${{ vars.NIXPKGS_CI_APP_ID }}
private-key: ${{ secrets.NIXPKGS_CI_APP_PRIVATE_KEY }}
permission-pull-requests: write

View File

@@ -39,7 +39,7 @@ jobs:
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-token
with:
client-id: ${{ vars.NIXPKGS_CI_CLIENT_ID }}
app-id: ${{ vars.NIXPKGS_CI_APP_ID }}
private-key: ${{ secrets.NIXPKGS_CI_APP_PRIVATE_KEY }}
permission-pull-requests: write

View File

@@ -22,7 +22,7 @@ defaults:
jobs:
periodic-merge:
if: github.repository_owner == 'NixOS' || github.event_name == 'workflow_dispatch'
if: github.repository_owner == 'NixOS'
strategy:
# don't fail fast, so that all pairs are tried
fail-fast: false
@@ -35,14 +35,10 @@ jobs:
into: staging-next-25.11
- from: staging-next-25.11
into: staging-25.11
- from: release-25.11
into: staging-nixos-25.11
- from: release-26.05
into: staging-next-26.05
- from: staging-next-26.05
into: staging-26.05
- from: release-26.05
into: staging-nixos-26.05
- name: merge-base(master,staging) → haskell-updates
from: master staging
into: haskell-updates
@@ -53,34 +49,3 @@ jobs:
name: ${{ matrix.pairs.name || format('{0} → {1}', matrix.pairs.from, matrix.pairs.into) }}
secrets:
NIXPKGS_CI_APP_PRIVATE_KEY: ${{ secrets.NIXPKGS_CI_APP_PRIVATE_KEY }}
# Resets the target branch of the current haskell-updates PR.
# This makes GitHub hide all the commits that are already part of staging and gives us a much clearer PR view.
haskell-updates:
needs: periodic-merge
runs-on: ubuntu-slim
permissions:
pull-requests: write
steps:
- name: Find PR and update target branch
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
with:
script: |
// There will at most be a single haskell-updates PR anyway, so no need to paginate.
await Promise.all(
(
await github.rest.pulls.list({
...context.repo,
state: 'open',
head: `${context.repo.owner}:haskell-updates`,
})
).data.map((pr) =>
github.rest.pulls.update({
...context.repo,
pull_number: pr.number,
// Just updating to the same branch to trigger a UI update.
// This is staging most of the time, but could be staging-next in rare cases.
base: pr.base.ref,
}),
),
)

View File

@@ -22,7 +22,7 @@ defaults:
jobs:
periodic-merge:
if: github.repository_owner == 'NixOS' || github.event_name == 'workflow_dispatch'
if: github.repository_owner == 'NixOS'
strategy:
# don't fail fast, so that all pairs are tried
fail-fast: false

View File

@@ -29,7 +29,7 @@ jobs:
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-token
with:
client-id: ${{ vars.NIXPKGS_CI_CLIENT_ID }}
app-id: ${{ vars.NIXPKGS_CI_APP_ID }}
private-key: ${{ secrets.NIXPKGS_CI_APP_PRIVATE_KEY }}
permission-contents: write
permission-pull-requests: write

View File

@@ -28,10 +28,10 @@ jobs:
# Use the GitHub App to make sure the reaction happens with the same user who will later merge.
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
if: github.event_name != 'pull_request' && vars.NIXPKGS_CI_CLIENT_ID
if: github.event_name != 'pull_request' && vars.NIXPKGS_CI_APP_ID
id: app-token
with:
client-id: ${{ vars.NIXPKGS_CI_CLIENT_ID }}
app-id: ${{ vars.NIXPKGS_CI_APP_ID }}
private-key: ${{ secrets.NIXPKGS_CI_APP_PRIVATE_KEY }}
permission-pull-requests: write

View File

@@ -22,7 +22,7 @@ jobs:
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-token
with:
client-id: ${{ vars.NIXPKGS_CI_CLIENT_ID }}
app-id: ${{ vars.NIXPKGS_CI_APP_ID }}
private-key: ${{ secrets.NIXPKGS_CI_APP_PRIVATE_KEY }}
permission-administration: read
permission-contents: write

View File

@@ -442,7 +442,6 @@ The staging workflow is used for all stable branches with corresponding names:
- `master`/`release-YY.MM`
- `staging`/`staging-YY.MM`
- `staging-next`/`staging-next-YY.MM`
- `staging-nixos`/`staging-nixos-YY.MM`
[^1]: Except changes that cause no more rebuilds than kernel updates
@@ -506,7 +505,7 @@ These PRs go to `staging-nixos`, see [the next section for more context](#change
Changes causing a rebuild of all NixOS tests get a special [`10.rebuild-nixos-tests`](https://github.com/NixOS/nixpkgs/issues?q=state%3Aopen%20label%3A10.rebuild-nixos-tests) label.
These changes pose a significant impact on the build infrastructure.
Hence, these PRs should either target a `staging`-branch or `staging-nixos`-branch, provided one of following conditions applies:
Hence, these PRs should either target a `staging`-branch or `staging-nixos`, provided one of following conditions applies:
* The label `10.rebuild-nixos-tests` is set, or
* The PR is a change affecting the Linux kernel.

View File

@@ -188,6 +188,8 @@ nixos/modules/installer/tools/nix-fallback-paths.nix @Artturin @Ericson2314 @lo
/maintainers/scripts/update-python-libraries @mweinelt @natsukium
/pkgs/by-name/up/update-python-libraries @mweinelt @natsukium
/pkgs/development/interpreters/python @mweinelt @natsukium
/pkgs/top-level/python-packages.nix @natsukium
/pkgs/top-level/release-python.nix @natsukium
# CUDA
/pkgs/top-level/cuda-packages.nix @NixOS/cuda-maintainers

View File

@@ -102,8 +102,9 @@ async function checkTargetBranch({ github, context, core, dry }) {
changed.attrdiff.changed.includes('nixosTests.simple-container') ||
changed.attrdiff.changed.includes('nixosTests.simple-vm')
// https://github.com/NixOS/nixpkgs/pull/521157
// These should go to master and release-xx.xx when backported
// https://github.com/NixOS/nixpkgs/pull/481205#issuecomment-3790123921
// These should go to staging-nixos instead of master,
// but release-xx.xx (not staging-xx.xx) when backported
let isExemptKernelUpdate = false
if (prInfo.changed_files === 1) {
const changedFiles = (
@@ -114,8 +115,11 @@ async function checkTargetBranch({ github, context, core, dry }) {
).data
isExemptKernelUpdate =
changedFiles.length === 1 &&
changedFiles[0].filename ===
'pkgs/os-specific/linux/kernel/xanmod-kernels.nix'
(changedFiles[0].filename ===
'pkgs/os-specific/linux/kernel/xanmod-kernels.nix' ||
(base.startsWith('release-') &&
changedFiles[0].filename ===
'pkgs/os-specific/linux/kernel/kernels-org.json'))
}
// https://github.com/NixOS/nixpkgs/pull/483194#issuecomment-3793393218
@@ -160,10 +164,8 @@ async function checkTargetBranch({ github, context, core, dry }) {
branchText = '(probably either `staging-nixos` or `staging`)'
} else if (base === 'master') {
branchText = '(probably `staging-nixos`)'
} else if (maxRebuildCount >= 500) {
branchText = `(probably either \`staging-nixos-${split(base).version}\` or \`staging-${split(base).version}\`)`
} else {
branchText = `(probably \`staging-nixos-${split(base).version}\`)`
branchText = `(probably \`staging-${split(base).version}\`)`
}
const body = [
`The PR's base branch is set to \`${base}\`, but this PR rebuilds all NixOS tests.`,

View File

@@ -6,68 +6,46 @@ In this document and related Nix expressions, we use the term, _BEAM_, to descri
## Available versions and deprecations schedule {#available-versions-and-deprecations-schedule}
### Erlang OTP {#erlang}
Nixpkgs follows upstream Erlang in their [support lifecycle](https://erlang.org/download/otp_versions_tree.html) and keeps up to the last 3 released versions of Erlang available. Due to upstream and NixOS release timings, this may mean removal of the oldest release prior to upstream fully dropping support.
### Elixir {#elixir}
Nixpkgs follows the [official elixir deprecation schedule](https://hexdocs.pm/elixir/compatibility-and-deprecations.html) and keeps up to the last 5 released versions of Elixir available.
Nixpkgs follows the [official elixir deprecation schedule](https://hexdocs.pm/elixir/compatibility-and-deprecations.html) and keeps the last 5 released versions of Elixir available.
## Structure {#beam-structure}
All BEAM-related expressions are available via top-level package sets. It is recommended to work with a single package set to ensure consistent versions.
All BEAM-related expressions are available via the top-level `beam` attribute, which includes:
- `beamPackages` - default OTP version
- `beamMinimalPackages` - default OTP version, without wxwidgets, which saves ~1GB in closure size
- `interpreters`: a set of compilers running on the BEAM, including multiple Erlang/OTP versions (`beam.interpreters.erlang_22`, etc), Elixir (`beam.interpreters.elixir`) and LFE (Lisp Flavoured Erlang) (`beam.interpreters.lfe`).
There are also OTP version specific package sets, e.g. for OTP 28:
- `packages`: a set of package builders (Mix and rebar3), each compiled with a specific Erlang/OTP version, e.g. `beam.packages.erlang22`.
- `beam28Packages`
- `beamMinimal28Packages`
The default Erlang compiler, defined by `beam.interpreters.erlang`, is aliased as `erlang`. The default BEAM package set is defined by `beam.packages.erlang` and aliased at the top level as `beamPackages`.
Inside each package set are:
To create a package builder built with a custom Erlang version, use the lambda, `beam.packagesWith`, which accepts an Erlang/OTP derivation and produces a package builder similar to `beam.packages.erlang`.
- erlang itself (version comes from package set)
- interpreters: elixir (multiple versions, e.g. elixir_1_18) and lfe
- packages: rebar3, hex, etc
- builders: mixRelease, buildRebar3, etc
- hooks: for composing builders and packages
Many Erlang/OTP distributions available in `beam.interpreters` have versions with ODBC and/or Java enabled or without wx (no observer support). For example, there's `beam.interpreters.erlang_22_odbc_javac`, which corresponds to `beam.interpreters.erlang_22` and `beam.interpreters.erlang_22_nox`, which corresponds to `beam.interpreters.erlang_22`.
To use a non-default Elixir it's important to keep the rest of the package set consistent, so it's recommended to use `.extend`. This ensures that builders like `mixRelease`, `fetchMixDeps`, and `buildMix` all pick up the overridden Elixir:
## Build Tools {#build-tools}
```nix
let
beamPackages = beam27Packages.extend (self: super: { elixir = self.elixir_1_18; });
in
beamPackages.mixRelease {
# ...
}
```
### Rebar3 {#build-tools-rebar3}
## Build Tools {#beam-build-tools}
We provide a version of Rebar3, under `rebar3`. We also provide a helper to fetch Rebar3 dependencies from a lockfile under `fetchRebar3Deps`.
### Rebar3 {#beam-build-tools-rebar3}
We provide a version of Rebar3, under `beamPackages.rebar3`. We also provide a helper to fetch Rebar3 dependencies from a lockfile under `beamPackages.fetchRebar3Deps`.
We also provide a version on Rebar3 with plugins included, under `beamPackages.rebar3WithPlugins`. This package is a function which takes two arguments: `plugins`, a list of nix derivations to include as plugins (loaded only when specified in `rebar.config`), and `globalPlugins`, which should always be loaded by rebar3. Example: `beamPackages.rebar3WithPlugins { globalPlugins = [beamPackages.pc]; }`.
We also provide a version on Rebar3 with plugins included, under `rebar3WithPlugins`. This package is a function which takes two arguments: `plugins`, a list of nix derivations to include as plugins (loaded only when specified in `rebar.config`), and `globalPlugins`, which should always be loaded by rebar3. Example: `rebar3WithPlugins { globalPlugins = [beamPackages.pc]; }`.
When adding a new plugin it is important that the `name` attribute is the same as the atom used by rebar3 to refer to the plugin.
### Erlang.mk {#beam-build-tools-erlangmk}
### Mix & Erlang.mk {#build-tools-other}
Erlang.mk works exactly as expected. There is a bootstrap process that needs to be run, which is supported by the `buildErlangMk` derivation.
### Mix {#beam-build-tools-mix}
For Elixir applications use `mixRelease` to make a release. See examples for more details.
For Elixir applications that use [mix release](https://hexdocs.pm/mix/Mix.Release.html), use the `mixRelease` builder to make a release. See examples for more details.
There is also a `buildMix` helper, whose behavior is closer to that of `buildErlangMk` and `buildRebar3`. The primary difference is that `mixRelease` makes a release, while `buildMix` only builds the package, which is more useful for libraries and other dependencies.
There is also a `buildMix` helper, whose behavior is closer to that of `buildErlangMk` and `buildRebar3`. The primary difference is that mixRelease makes a release, while buildMix only builds the package, making it useful for libraries and other dependencies.
## How to Install BEAM Packages {#how-to-install-beam-packages}
To use any of these builders in your environment, refer to them by their attribute path under `beamPackages` (or another BEAM package set), e.g. `beamPackages.rebar3`:
BEAM builders are not registered at the top level, because they are not relevant to the vast majority of Nix users.
To use any of those builders into your environment, refer to them by their attribute path under `beamPackages`, e.g. `beamPackages.rebar3`:
::: {.example #ex-beam-ephemeral-shell}
# Ephemeral shell
@@ -97,39 +75,35 @@ pkgs.mkShell { packages = [ pkgs.beamPackages.rebar3 ]; }
#### Rebar3 Packages {#rebar3-packages}
The builder `beamPackages.buildRebar3` can be used to build a derivation that understands how to build a Rebar3 project.
The Nix function, `buildRebar3`, defined in `beam.packages.erlang.buildRebar3` and aliased at the top level, can be used to build a derivation that understands how to build a Rebar3 project.
If a package needs to compile native code via Rebar3's port compilation mechanism, add `compilePort = true;` to the derivation.
#### Erlang.mk Packages {#erlang-mk-packages}
Erlang.mk functions similarly to Rebar3, except we use `beamPackages.buildErlangMk` instead of `beamPackages.buildRebar3`.
If a package needs to compile native code via Erlang.mk's port compilation mechanism, add `compilePorts = true;` to the derivation.
### Elixir Applications {#packaging-elixir-applications}
Erlang.mk functions similarly to Rebar3, except we use `buildErlangMk` instead of `buildRebar3`.
#### Mix Packages {#mix-packages}
`beamPackages.mixRelease` is used to make a release in the mix sense. Dependencies will need to be fetched with `beamPackages.fetchMixDeps` and passed to it.
`mixRelease` is used to make a release in the mix sense. Dependencies will need to be fetched with `fetchMixDeps` and passed to it.
#### mixRelease - Elixir Phoenix example {#mix-release-elixir-phoenix-example}
There are 3 steps: frontend dependencies (javascript), backend dependencies (elixir), and the final derivation that puts both of those together.
there are 3 steps: frontend dependencies (javascript), backend dependencies (elixir), and the final derivation that puts both of those together
##### mixRelease - Frontend dependencies (javascript) {#mix-release-javascript-deps}
For phoenix projects, inside of Nixpkgs you can either use `fetchYarnDeps` or `buildNpmPackage`. An example with `buildNpmPackage` can be found [here](https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/pl/plausible/package.nix), and an example with `fetchYarnDeps` can be found [here](https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/pi/pinchflat/package.nix).
For phoenix projects, inside of Nixpkgs you can either use `fetchYarnDeps` or `buildNpmPackage`. An example with `fetchYarnDeps` can be found [here](https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/pl/plausible/package.nix). An example with `fetchYarnDeps` will follow. To package something outside of nixpkgs, you have alternatives like [npmlock2nix](https://github.com/nix-community/npmlock2nix) or [nix-npm-buildpackage](https://github.com/serokell/nix-npm-buildpackage)
##### mixRelease - backend dependencies (mix) {#mix-release-mix-deps}
There are 2 ways to package backend dependencies: either per-dependency mix2nix or with a fixed-output-derivation (FOD).
When writing an elixir project targeting `mixRelease`, you can also consider using [deps_nix](https://github.com/code-supply/deps_nix) with `mixNixDeps`. `deps_nix` supports git dependencies, but is intended to be added to the project's `mix.exs` directly.
There are 2 ways to package backend dependencies. With mix2nix and with a fixed-output-derivation (FOD).
###### mix2nix {#mix2nix}
`mix2nix` is a cli tool available in Nixpkgs. It will generate a Nix expression from a `mix.lock` file. It is quite standard in the 2nix tool series.
Note that currently mix2nix can't handle git dependencies inside the mix.lock file. If you have git dependencies, you can either add them manually (see [example](https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/pl/pleroma/package.nix)) or use the FOD method.
Note that currently mix2nix can't handle git dependencies inside the mix.lock file. If you have git dependencies, you can either add them manually (see [example](https://github.com/NixOS/nixpkgs/blob/master/pkgs/servers/pleroma/default.nix#L20)) or use the FOD method.
The advantage of using mix2nix is that nix will know your whole dependency graph. On a dependency update, this won't trigger a full rebuild and download of all the dependencies, where FOD will do so.
@@ -177,7 +151,7 @@ You will need to run the build process once to fix the hash to correspond to you
###### FOD {#fixed-output-derivation}
A fixed output derivation will download mix dependencies from the internet. To ensure reproducibility, a hash will be supplied. Note that mix is relatively reproducible. An FOD generating a different hash on each run hasn't been observed (as opposed to npm where the chances are relatively high). See [akkoma](https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/ak/akkoma/package.nix) for a usage example of FOD.
A fixed output derivation will download mix dependencies from the internet. To ensure reproducibility, a hash will be supplied. Note that mix is relatively reproducible. An FOD generating a different hash on each run hasn't been observed (as opposed to npm where the chances are relatively high). See [elixir-ls](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/beam-modules/elixir-ls/default.nix) for a usage example of FOD.
Practical steps
@@ -202,11 +176,12 @@ Note that if after you've replaced the value, nix suggests another hash, then mi
Here is how your `default.nix` file would look for a Phoenix project.
```nix
{
# beam27Packages or beam29Packages is available if you need a particular version
beamPackages,
}:
with import <nixpkgs> { };
let
# beam.interpreters.erlang_26 is available if you need a particular version
packages = beam.packagesWith beam.interpreters.erlang;
pname = "your_project";
version = "0.0.1";
@@ -216,7 +191,7 @@ let
};
# if using mix2nix you can use the mixNixDeps attribute
mixFodDeps = beamPackages.fetchMixDeps {
mixFodDeps = packages.fetchMixDeps {
pname = "mix-deps-${pname}";
inherit src version;
# nix will complain and tell you the right value to replace this with
@@ -225,8 +200,11 @@ let
# if you have build time environment variables add them here
MY_ENV_VAR = "my_value";
};
nodeDependencies = (pkgs.callPackage ./assets/default.nix { }).shell.nodeDependencies;
in
beamPackages.mixRelease {
packages.mixRelease {
inherit
src
pname
@@ -237,6 +215,9 @@ beamPackages.mixRelease {
MY_ENV_VAR = "my_value";
postBuild = ''
ln -sf ${nodeDependencies}/lib/node_modules assets/node_modules
npm run deploy --prefix ./assets
# for external task you need a workaround for the no deps check flag
# https://github.com/phoenixframework/phoenix/issues/2690
mix do deps.loadpaths --no-deps-check, phx.digest
@@ -248,7 +229,7 @@ beamPackages.mixRelease {
Setup will require the following steps:
- Move your secrets to runtime environment variables. For more information refer to the [runtime.exs docs](https://hexdocs.pm/mix/Mix.Tasks.Release.html#module-runtime-configuration). On a fresh Phoenix build that would mean that both `DATABASE_URL` and `SECRET_KEY` need to be moved to `runtime.exs`.
- Generate a Nix expression for your frontend dependencies using `fetchNpmDeps`/`buildNpmPackage` or `fetchYarnDeps`, depending on whether the project uses npm or yarn
- `cd assets` and `nix-shell -p node2nix --run "node2nix --development"` will generate a Nix expression containing your frontend dependencies
- commit and push those changes
- you can now `nix-build .`
- To run the release, set the `RELEASE_TMP` environment variable to a directory that your program has write access to. It will be used to store the BEAM settings.
@@ -267,7 +248,7 @@ in your project with the following
}:
let
release = pkgs.callPackage ./default.nix { };
release = pkgs.callPackage ./default.nix;
release_name = "app";
working_directory = "/home/app";
in
@@ -339,10 +320,9 @@ Usually, we need to create a `shell.nix` file and do our development inside the
with pkgs;
let
# pin OTP via beam27Packages/beam28Packages/... and Elixir via .extend
beamPackages = beam27Packages.extend (self: super: { elixir = self.elixir_1_18; });
elixir = beam.packages.erlang_27.elixir_1_18;
in
mkShell { buildInputs = [ beamPackages.elixir ]; }
mkShell { buildInputs = [ elixir ]; }
```
### Using an overlay {#beam-using-overlays}
@@ -357,7 +337,7 @@ let
self: super: {
elixir_1_18 = super.elixir_1_18.override {
version = "1.18.1";
hash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
sha256 = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
};
}
);
@@ -375,17 +355,18 @@ Here is an example `shell.nix`.
with import <nixpkgs> { };
let
# pin OTP via beam27Packages/beam28Packages/... and Elixir via .extend
beamPackages = beam27Packages.extend (self: super: { elixir = self.elixir_1_18; });
# define packages to install
basePackages = [
git
beamPackages.elixir
# replace with beam.packages.erlang.elixir_1_18 if you need
beam.packages.erlang.elixir
nodejs
postgresql_14
# only used for frontend dependencies
# you are free to use yarn2nix as well
nodePackages.node2nix
# formatting js file
prettier
nodePackages.prettier
];
inputs = basePackages ++ lib.optionals stdenv.hostPlatform.isLinux [ inotify-tools ];
@@ -398,13 +379,13 @@ let
export HEX_HOME=$PWD/.nix-mix
# make hex from Nixpkgs available
# `mix local.hex` will install hex into MIX_HOME and should take precedence
export MIX_PATH="${beamPackages.hex}/lib/erlang/lib/hex/ebin"
export MIX_PATH="${beam.packages.erlang.hex}/lib/erlang/lib/hex/ebin"
export PATH=$MIX_HOME/bin:$HEX_HOME/bin:$PATH
export LANG=C.UTF-8
# keep your shell history in iex
export ERL_AFLAGS="-kernel shell_history enabled"
# postgres related
# postges related
# keep all your db data in a folder inside the project
export PGDATA="$PWD/db"

View File

@@ -119,10 +119,11 @@ $ pkgs/os-specific/linux/kernel/update.sh
The change gets submitted like this:
* File a PR against `staging-nixos`.
* Add a `backport staging-nixos-XX.XX` label for an automated backport.
* Add a `backport release-XX.XX` label for an automated backport.
We don't expect many other changes on that branch to require a backport, hence there's no such branch for stable.
By using an additional PR, we get the automatic backport against stable without manual cherry-picks.
* Merge into `staging-nixos` or `staging-nixos-XX.XX`.
* File as PR from `staging-nixos` against `master` or `staging-nixos-XX.XX` against `release-xx.xx`.
* Merge into `staging-nixos`.
* File as PR from `staging-nixos` against `master`.
* When all status checks are green, merge.
### Add a new (major) version of the Linux kernel {#sec-linux-add-new-kernel-version}

View File

@@ -433,6 +433,30 @@
"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"
],
@@ -899,9 +923,6 @@
"var-go-buildTestBinaries": [
"index.html#var-go-buildTestBinaries"
],
"var-meta-donationPage": [
"index.html#var-meta-donationPage"
],
"var-meta-identifiers-cpe": [
"index.html#var-meta-identifiers-cpe"
],
@@ -3052,28 +3073,19 @@
"available-versions-and-deprecations-schedule": [
"index.html#available-versions-and-deprecations-schedule"
],
"erlang": [
"index.html#erlang"
],
"elixir": [
"index.html#elixir"
],
"beam-structure": [
"index.html#beam-structure"
],
"beam-build-tools": [
"index.html#beam-build-tools",
"build-tools": [
"index.html#build-tools"
],
"beam-build-tools-rebar3": [
"index.html#beam-build-tools-rebar3",
"build-tools-rebar3": [
"index.html#build-tools-rebar3"
],
"beam-build-tools-erlangmk": [
"index.html#beam-build-tools-erlangmk"
],
"beam-build-tools-mix": [
"index.html#beam-build-tools-mix",
"build-tools-other": [
"index.html#build-tools-other"
],
"how-to-install-beam-packages": [
@@ -3091,9 +3103,6 @@
"packaging-erlang-applications": [
"index.html#packaging-erlang-applications"
],
"packaging-elixir-applications": [
"index.html#packaging-elixir-applications"
],
"rebar3-packages": [
"index.html#rebar3-packages"
],

View File

@@ -3,6 +3,7 @@
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

@@ -44,7 +44,7 @@
- `base16-builder` node package has been removed due to lack of upstream maintenance.
- `budgie-desktop` has been updated to [10.9.4](https://github.com/BuddiesOfBudgie/budgie-desktop/releases/tag/v10.9.4). This changes `XDG_CURRENT_DESKTOP` from `Budgie:GNOME` to `Budgie` and contains ABI bumps for libpeas2 migration.
- `budgie-desktop` has been updated [10.9.4](https://github.com/BuddiesOfBudgie/budgie-desktop/releases/tag/v10.9.4). This changes `XDG_CURRENT_DESKTOP` from `Budgie:GNOME` to `Budgie` and contains ABI bumps for libpeas2 migration.
- `buildGoModule` removes the compatibility layer of `CGO_ENABLED` not specified via `env`.
Specifying `CGO_ENABLED` directly now results in an error.
@@ -53,7 +53,7 @@
- `cardboard` has been removed due to the package having been broken since at least November 2024.
- `carla` no longer supports `gtk2` override.
- `carla` no longer support `gtk2` override.
- `chatgpt-retrieval-plugin` has been removed due to the package having been broken since at least November 2024.
@@ -135,7 +135,7 @@
- `linux` and all other Linux kernel packages have moved all in-tree kernel modules into a new `modules` output.
- `lxde` scope has been removed, and its packages have been moved to the top-level.
- `lxde` scope has been removed, and its packages have been moved the top-level.
- `mariadb` now defaults to `mariadb_114` instead of `mariadb_1011`, meaning the default version was upgraded from 10.11.x to 11.4.x. See the [upgrade notes](https://mariadb.com/kb/en/upgrading-from-mariadb-10-11-to-mariadb-11-4/) for potential issues.
@@ -183,7 +183,7 @@
- `pcp` has been removed because the upstream repo was archived and it hasn't been updated since 2021.
- `podofo` has been updated from `0.9.8` to `1.0.0`. These releases are by nature very incompatible due to major API changes. The legacy versions can be found under `podofo_0_10` and `podofo_0_9`.
Changelog: <https://github.com/podofo/podofo/blob/1.0.0/CHANGELOG.md>, API-Migration-Guide: <https://github.com/podofo/podofo/blob/1.0.0/API-MIGRATION.md>.
Changelog: https://github.com/podofo/podofo/blob/1.0.0/CHANGELOG.md, API-Migration-Guide: https://github.com/podofo/podofo/blob/1.0.0/API-MIGRATION.md.
- `privatebin` has been updated to `2.0.0`. This release changes configuration defaults including switching the template and removing legacy features. See the [v2.0.0 changelog entry](https://github.com/PrivateBin/PrivateBin/releases/tag/2.0.0) for details on how to upgrade.
@@ -246,7 +246,7 @@
- `sublime-music` has been removed because upstream has announced it is no longer maintained. Upstream suggests using `supersonic` instead.
- Support for bootstrapping native GHC compilers on 32bit ARM and littleendian 64-bit PowerPC has been dropped.
- Support for bootstrapping native GHC compilers on 32bit ARM and littleendian 64bit PowerPC has been dropped.
The latter was probably broken anyway.
If there is interest in restoring support for these architectures, it should be possible to crosscompile a bootstrap GHC binary.
@@ -359,7 +359,7 @@ and [release notes for v18](https://goteleport.com/docs/changelog/#1800-070325).
- `ffmpeg_8`, `ffmpeg_8-headless`, and `ffmpeg_8-full` have been added. The default version of FFmpeg is now `ffmpeg_8`. You can install previous versions from package attributes such as `ffmpeg_7`.
- `forgejo-runner` has been upgraded to version 11, which brings a license change from MIT to GPLv3-or-later.
- `forgejo-runner` upgrading to version 11 brings a license change from MIT to GPLv3-or-later.
- GIMP now defaults to version 3. Use `gimp2` for the old version.
@@ -405,6 +405,8 @@ and [release notes for v18](https://goteleport.com/docs/changelog/#1800-070325).
- `prl-tools` has been moved out of `linuxPackages` because Parallels Guest Tools become driverless since 26.1.0.
- `searx` was updated to use `envsubst` instead of `sed` for parsing secrets from environment variables.
- `sftpman` has been updated to version 2, a rewrite in Rust which is mostly backward compatible but does include some changes to the CLI.
For more information, [check the project's README](https://github.com/spantaleev/sftpman-rs#is-sftpman-v2-compatible-with-sftpman-v1).
@@ -429,7 +431,7 @@ and [release notes for v18](https://goteleport.com/docs/changelog/#1800-070325).
- The `dockerTools.streamLayeredImage` builder now uses a better algorithm for generating layered docker images, such that much more sharing is possible when the number of store paths exceeds the layer limit. It gives each of the largest store paths its own layer and adds dependencies to those layers when they aren't used elsewhere.
- The `open-webui` package's postgres support has been moved to optional dependencies to comply with upstream changes in 0.6.26.
- The `open-webui` package's postgres support have been moved to optional dependencies to comply with upstream changes in 0.6.26.
- The systemd initrd will now respect `x-systemd.wants` and `x-systemd.requires` for reliably unlocking multi-disk bcachefs volumes.
@@ -438,8 +440,6 @@ and [release notes for v18](https://goteleport.com/docs/changelog/#1800-070325).
- Packages using `versionCheckHook` that previously relied solely on `pname` to locate the program used to version check, but have a differing `meta.mainProgram` entry, might now fail.
- `waydroid-nftables` is a new variant of `waydroid` that supports nftables instead of iptables.
- `searx` was updated to use `envsubst` instead of `sed` for parsing secrets from environment variables.
If your previous configuration included a secret reference like `server.secret_key = "@SEARX_SECRET_KEY@"`, you must migrate to the new envsubst syntax: `server.secret_key = "$SEARX_SECRET_KEY"`.
## Nixpkgs Library {#sec-nixpkgs-release-25.11-lib}
@@ -470,7 +470,7 @@ and [release notes for v18](https://goteleport.com/docs/changelog/#1800-070325).
- `lib.sources.pathType`, `lib.sources.pathIsDirectory` and `lib.sources.pathIsRegularFile` have been replaced by `lib.filesystem.pathType`, `lib.filesystem.pathIsDirectory` and `lib.filesystem.pathIsRegularFile` respectively.
- `lib.strings.isCoercibleToString` has been replaced in favor of either `lib.strings.isStringLike` or `lib.strings.isConvertibleWithToString`. Only use the latter if it needs to return true for null, numbers, booleans, or a list of those.
- `lib.strings.isCoercibleToString` has been in favor of either `lib.strings.isStringLike` or `lib.strings.isConvertibleWithToString`. Only use the latter if it needs to return true for null, numbers, booleans, or a list of those.
- `lib.types.string` has been removed. See [this pull request](https://github.com/NixOS/nixpkgs/pull/66346) for better alternative types like `lib.types.str`.

View File

@@ -1,4 +1,4 @@
# Nixpkgs 26.05 ("Yarara", 2026.05/30) {#sec-nixpkgs-release-26.05}
# Nixpkgs 26.05 ("Yarara", 2026.05/??) {#sec-nixpkgs-release-26.05}
## Highlights {#sec-nixpkgs-release-26.05-highlights}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
@@ -6,44 +6,6 @@
- GCC has been updated from GCC 14 to GCC 15.
This introduces some backwards incompatible changes; Refer to the [upstream porting guide](https://gcc.gnu.org/gcc-15/porting_to.html) for details.
- `glibc` has been updated to version 2.42.
This version no longer makes the stack executable when a shared library requires this. A symptom
is an error like
> cannot enable executable stack as shared object requires: Invalid argument
This is usually a bug. Please consider reporting it to the software maintainers.
In a lot of cases, the library requires the execstack by mistake only. The following workarounds exist:
* When building the shared library in question from source, use the following linker flags to force turning off the
executable flag:
```nix
mkDerivation {
# …
env.NIX_LDFLAGS = "-z,noexecstack";
}
```
* If the sources are not available, the execstack-flag can be cleared with `patchelf`:
```
patchelf --clear-execstack binary-only.so
```
* If the shared library to be loaded actually requires an executable stack and it isn't turned
on by the application loading it, you may force allowing that behavior by setting the
following environment variable:
```
GLIBC_TUNABLES=glibc.rtld.execstack=2
```
**Do not set this globally!** This makes your setup inherently less secure.
- Node.js default version has been updated from 22 LTS to 24 LTS.
This introduces some breaking changes; Refer to the [upstream migration article](https://nodejs.org/en/blog/migrations/v22-to-v24) for details.
@@ -112,8 +74,6 @@
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
- `mdbook-linkcheck` has been removed as it is unmaintained and incompatible with the latest version of `mdbook`. Users can instead migrate to `mdbook-linkcheck2`.
- The `nodePackages` package set has been removed entirely from nixpkgs. This package set was created to ease the maintenance burden of maintaining lots of
NodeJS-based packages within nixpkgs, but became a burden itself. Over the past several releases, there has been a focus on removing it in favor of the more modern nixpkgs packaging strategies.
After a long time, this package set has been deprecated and removed. If you are using its package set in your own config, please use the top-level packages instead.(i.e `pkgs.package-name` instead of `pkgs.nodePackages.package-name`).
@@ -129,7 +89,7 @@
- `yarn2nix`/`yarn2nix-moretea` and its tooling(`mkYarnPackage`, `mkYarnModules`, and `fixup_yarn_lock`) have been removed as they were unmaintainable in nixpkgs. If you want to build with Yarn V1 going forward, use the hooks instead(`yarnBuildHook`, `yarnConfigHook`, and `yarnInstallHook`). See the yarn v1 documentation in the nixpkgs manual for more details.
- `albert` has been updated to version 34.0.5. This release redesigns the query system to support stateful asynchronous handlers and infinite scrolling, and adds internationalized tokenization.
- `albert` has been updated to the version 34.0.5. This release redesigns the query system to support stateful asynchronous handlers and infinite scrolling, and adds internationalized tokenization.
This update introduces several breaking changes: the Python plugin interface is now v5.0, the `PATH` plugin has been renamed to `Commandline`, and the QStylesheets-based widgets box model frontend has been removed.
For more information read the [changelog for 34.0.0](https://albertlauncher.github.io/2026/01/19/albert-v34.0.0-released/).
@@ -145,34 +105,17 @@
- `spoof` has been removed, as there are many issues upstream with it working on modern OS versions, and it appears to be unmaintained.
- `duckstation` package has been removed, as it was requested by upstream and build sources were changed to be incompatible with NixOS.
- `duckstation` package has been removed, as it was requested by upstream and build source were changed to be incompatible with NixOS.
- `nodePackages.coc-go` and `nodePackages.coc-tsserver`, along with their vim plugins, have been removed from nixpkgs due to being unmaintained.
- `nodePackages.wavedrom-cli` has been removed, as it was unmaintained within nixpkgs.
- MATE packages have been moved to top level (e.g. if you previously added `pkgs.mate.caja` to `environment.systemPackages`, you will need to change it to `pkgs.caja`).
- `kratos` has been updated from 1.3.1 to [25.4.0](https://github.com/ory/kratos/releases/tag/v25.4.0). Upstream switched to a new versioning scheme (year.major.minor). Notable breaking changes:
- The `migrate sql` CLI command is now `migrate sql up`
- OIDC registration validation errors are now placed in the `default` node group instead of `oidc`
- Failed OIDC account linking returns HTTP 400 instead of 200
- `pdns` has been updated to version [v5.0.x](https://doc.powerdns.com/authoritative/changelog/5.0.html), which introduces breaking changes. Check out the [Upgrade Notes](https://doc.powerdns.com/authoritative/upgrading.html#to-5-0-0) for details.
- `geph` package's built-in GUI `geph5-client-gui` has been [removed](https://github.com/geph-official/geph5/commit/f2221fb8386312daf2cef05483ebb353ff48bdb4) by the upstream. All users who wish to continue using the GUI should install the `gephgui-wry`, which is consistent with the official release version.
- `xfsprogs` was updated to version 6.18.0, which enables parent pointers and exchange-range by default. Upstream recommends not to use these features with kernels older than 6.18.
GRUB2 is likely unable to boot from filesystems with these features enabled.
- `lunarvim` package has been removed, as it was abandoned upstream and relied on an old version of `neovim` to work properly.
- `requireFile` now treats any `message` or `url` argument as a literal string, rather than subjecting it to Bash here-doc expansion. This allows including strings like `$PWD` in the message without needing to know about and handle the undocumented Bash expansion.
- `nodePackages.browserify` has been removed, as it was unmaintained within nixpkgs.
- `command-not-found` package will be enabled by default if the source of nixpkgs contains the file `programs.sqlite`. This is the case if a nixpkgs tarball from <https://channels.nixos.org> is used. This usage will also make the database of `command-not-found` stateless.
- `command-not-found` package will be enabled by default if the source of nixpkgs contains the file `programs.sqlite`. This is the case if a nixpkgs tarball from https://channels.nixos.org is used. This usage will also make the database of `command-not-found` stateless.
- `nodePackages.sass` has been removed, as it was unmaintained within nixpkgs.
@@ -183,7 +126,9 @@
- `kanata` now requires `karabiner-dk` version 6.0+ or later.
The package has been updated to use the new `karabiner-dk` package and the `darwinDriver` output stays at the version defined in the package.
- Keycloak has been updated to 26.6.X, bringing a lot of new features like federated client authentication, JWT authorization grants, workflows and the ability to do
- Reloading or restarting systemd units from the NixOS activation script is deprecated, and will be removed in NixOS 26.11. This deprecation is part of a bigger effort to deprecate activation scripts altogether, which will take place over several releases. There are no in-tree usages of the now-deprecated reload/restart functionality.
- Keycloak has been updated to 26.6.X, bringing a lot new features like federated client authentication, JWT authorization grants, workflows and the ability to do
zero-downtime patch releases. Read more about [all the exciting new capabilities in keycloak 26.6 here](https://github.com/keycloak/keycloak/releases/tag/26.6.0)
and [consult the migration guide to 26.6](https://www.keycloak.org/docs/latest/upgrading/index.html#migrating-to-26-6-0) to find out whether this is a breaking
change for your keycloak instance.
@@ -212,19 +157,21 @@
This release contains breaking changes, see [Upgrading to Vinyl Cache 9.0](https://vinyl-cache.org/docs/9.0/whats-new/upgrading-9.0.html).
The `varnish-modules` project is currently not packaged for Vinyl Cache, as it is incompatible.
- `eslint` has been updated from version 9 to version 10. Please see <https://eslint.org/blog/2026/02/eslint-v10.0.0-released/> for details about the breaking changes included in the update.
- `eslint` has been updated from version 9 to version 10. Please see https://eslint.org/blog/2026/02/eslint-v10.0.0-released/ for details about the breaking changes included in the update.
- `minio` has been abandoned by upstream and security issues won't be fixed. `minio_legacy_fs` has also been removed. Both are scheduled for full removal in 26.11. Users should migrate to alternatives such as Garage, SeaweedFS, or Ceph. S3-compatible clients such as rclone can be used to move data.
- `minio` has been abandoned by upstream and security issues won't be fixed. It is scheduled to be removed for 26.11. Users should migrate to alternatives such as Garage, SeaweedFS, or Ceph. S3-compatible clients such as rclone can be used to move data.
- `mercure` has been updated to `0.21.4` (or later). Version [0.21.0](https://github.com/dunglas/mercure/releases/v0.21.0) and [0.21.2](https://github.com/dunglas/mercure/releases/tag/v0.21.2) introduce breaking changes to the package.
`minio_legacy_fs` has been removed. Users should migrate to alternatives such as Garage, SeaweedFS, or Ceph. S3-compatible clients such as rclone can be used to move data.
- `mozc` and `mozc-ut` no longer contain the IBus front-end, which is now provided by `ibus-engines.mozc` and `ibus-engines.mozc-ut`.
- `mercure` has been update to `0.21.4` (or later). Version [0.21.0](https://github.com/dunglas/mercure/releases/v0.21.0) and [0.21.2](https://github.com/dunglas/mercure/releases/tag/v0.21.2) introduce breaking changes to the package.
- `mozc` and `mozc-ut` no longer contains the IBus front-end, which are now provided by `ibus-engines.mozc` and `ibus-engines.mozc-ut`.
- `nemorosa` has been updated from `0.4.3` to `0.5.0`. Version [0.5.0](https://github.com/KyokoMiki/nemorosa/releases/tag/0.5.0) introduced breaking changes to the package configuration.
- `n8n` has been updated to version 2. You can find the breaking changes here: <https://docs.n8n.io/2-0-breaking-changes/>.
- `n8n` has been updated to version 2. You can find the breaking changes here: https://docs.n8n.io/2-0-breaking-changes/.
- `nomad` has been updated to v1.11. Refer to the [release note](https://developer.hashicorp.com/nomad/docs/release-notes/nomad/v1-11-x) for more details. Once a new Nomad version has started and upgraded its data directory, it generally cannot be downgraded to the previous version.
- `nomad` has been updated to v1.11. Refer to the [release note](https://developer.hashicorp.com/nomad/docs/release-notes/nomad/v1-11-x) for more details. Once a new Nomad version has started and upgraded it's data directory, it generally cannot be downgraded to the previous version.
- The default NVIDIA drivers no longer support Maxwell (GTX 1xxx) or older GPUs. Pin the nvidia package to ` config.boot.kernelPackages.nvidiaPackages.legacy_580` for continued support.
@@ -232,26 +179,24 @@
- `iroh` has been removed and split up into `iroh-dns-server` and `iroh-relay`.
- The `xorg` package set has been deprecated, packages have moved to the top level.
- the `xorg` package set has been deprecated, packages have moved to the top level.
- `python3Packages.buildPythonPackage` and `python3Packages.buildPythonApplication` now throw errors in the presence of `pytestFlagsArray`.
Please use [`pytestFlags` and `(enabled|disabled)(TestPaths|Tests|TestMarks)`](#using-pytestcheckhook) instead.
If modifying the Nix expression is not feasible, users can remediate the error by overriding `pytestFlagsArray` with `null` or `[ ]`.
- `python3Packages.pygame` has been renamed to `python3Packages.pygame-original`, the attribute `python3Packages.pygame` will from python 3.14 default to the more actively maintained `python3Packages.pygame-ce`.
- `python3Packages.pygame` has been been renamed to `python3Packages.pygame-original`, the attribute `python3Packages.pygame` will from python 3.14 default to the more actively maintained `python3Packages.pygame-ce`
- `fastly` has been updated to major version 14. For more information, you can check the [release notes](https://github.com/fastly/cli/releases/tag/v14.0.0).
- `fastly` has been updated to major version 14. For more information, you can check the [release notes](https://github.com/fastly/cli/releases/tag/v14.0.0)
- `peertube` has been updated from `7.3.0` to `8.0.2`, introducing several breaking changes.
Some notable new features include channel collaboration and video player redesign with a new theme.
For details on how to upgrade, see the `IMPORTANT NOTES` section of the [v8.0.0 CHANGELOG entry](https://docs.joinpeertube.org/CHANGELOG#v8-0-0).
- `python3Packages.gradio` has been updated to version 6. See upstream's migration guide at <https://www.gradio.app/main/guides/gradio-6-migration-guide>.
- `python3Packages.gradio` has been updated to version 6. See upstream's migration guide at https://www.gradio.app/main/guides/gradio-6-migration-guide.
- `python3Packages.pikepdf` no longer builds with mupdf support by default, which may be nice in Jupyter and iPython. Build with `withMupdf = true` if this is required.
- `olive-editor` has been dropped as upstream development ceased and no longer builds.
- `python3Packages.django-mdeditor` has been removed, as it was unmaintained upstream and the latest release was vulnerable to a [critical security vulnerability](https://github.com/NixOS/nixpkgs/issues/515462).
- `vicinae` has been updated to v0.20. This includes, among several other breaking changes, a complete overhaul of the configuration system. For update instructions, see the [upstream configuration documentation](https://docs.vicinae.com/config#migration-from-v0-16-x-to-v0-17-x).
@@ -269,12 +214,23 @@
- `jetbrains.plugins.addPlugins` no longer supports plugin names or ID strings.
You can still use `addPlugins` with plugin derivations, such as plugins packaged outside of Nixpkgs.
- The `programs.captive-browser` module no longer falls back on a setcap wrapper around udhcpc to discover your network's DNS server due to [GHSA-wc3r-c66x-8xmc](https://github.com/NixOS/nixpkgs/security/advisories/GHSA-wc3r-c66x-8xmc) (CVE-2026-25740). If you're using this module, you must either configure `programs.captive-browser.dhcp-dns` manually or enable one of NetworkManager, dhcpcd, or systemd-networkd.
- NetBox was updated to `>= 4.5.5`. Have a look at the breaking changes
of the [4.5 release](https://github.com/netbox-community/netbox/releases/tag/v4.5.0),
make the required changes to your database, if needed, then upgrade by setting `services.netbox.package = pkgs.netbox_4_5;` in your configuration.
- The `services.yggdrasil` module has been refactored with the following breaking changes:
- The `services.yggdrasil.configFile` option has been removed. Configuration should now be specified directly via `services.yggdrasil.settings`.
- The `services.yggdrasil.persistentKeys` option has been removed. To maintain persistent keys and IPv6 addresses across reboots, use `services.yggdrasil.settings.PrivateKeyPath` to securely load your private key from a file via systemd credentials. The private key must be in PEM format (PKCS #8).
- Storing `PrivateKey` directly in `settings` is now explicitly forbidden to prevent keys from being stored world-readable in the Nix store.
- If you previously used `configFile`, migrate your configuration to the `settings` option and extract the private key to a separate file referenced by `PrivateKeyPath`.
- If you previously used `persistentKeys`, convert your keys to PEM format and store them in a secure location accessible only to root, then reference them via `PrivateKeyPath`.
- `pocket-id` has been updated to version 2 that contains [breaking changes](https://pocket-id.org/docs/setup/major-releases/migrate-v2).
- `services.xserver` will now throw an error if an X11 driver specified in `videoDriver(s)` cannot be found. Previously, unknown drivers would be silently ignored.
- `asio` (standalone version of `boost::asio`) has been updated from 1.24.0 to 1.36.0. Some breaking changes were introduced between these
two versions, and the one affected most was the removal of `asio::io_service` in favor of `asio::io_context` in 1.33.0. `asio_1_32_0` is
retained for packages that have not completed migration. `asio_1_10` has been removed as no packages depend on it anymore.
@@ -297,6 +253,8 @@
- Ethercalc and its associated module have been removed, as the package is unmaintained and cannot be installed from source with npm now.
- The `services.avahi.wideArea` option now defaults to `false` as a mitigation against [`CVE-2024-52615`/`GHSA-x6vp-f33h-h32g`](https://github.com/avahi/avahi/security/advisories/GHSA-x6vp-f33h-h32g).
- `coreth` has been removed, as upstream has moved it into `avalanchego`.
- `nodePackages.prebuild-install` was removed because it appeared to be unmaintained upstream.
@@ -314,7 +272,7 @@
IMAP_CERTIFICATE_VALIDATION=false
```
- `python3Packages.pillow-avif-plugin` has been removed as the functionality is included in `python3Packages.pillow` directly since version 11.3.
- `python3packages.pillow-avif-plugin` has been removed as the functionality is included in `python3packages.pillow` directly since version 11.3.
- `wasistlos` (previously known as `whatsapp-for-linux`) has been removed because it was unmaintained and archived upstream.
Multiple alternatives exist: `karere`, `whatsie` and `zapzap` among others.
@@ -326,6 +284,8 @@
- `shisho` has been removed because it's archived. `semgrep`, `opengrep`, and `ast-grep` provide similar functionality.
- `services.openssh.settings.AcceptEnv` now explicitly defined as an option that takes a list of strings, to facilitate option merging. Setting it to a string value is no longer supported.
- All Xfce packages have been moved to top level (e.g. if you previously added `pkgs.xfce.xfce4-whiskermenu-plugin` to `environment.systemPackages`, you will need to change it to `pkgs.xfce4-whiskermenu-plugin`). The `xfce` scope will be removed in NixOS 26.11.
- The Dovecot IMAP server has been updated to version 2.4, with the `dovecot` attribute now referring to this backwards-incompatible version. The attribute `dovecot_2_3` refers to the previous version. The Pigeonhole plugin has been similarly updated to 2.4, with the version compatible with Dovecot 2.3 being at `dovecot_pigeonhole_0_5`. See <https://doc.dovecot.org/latest/installation/upgrade/2.3-to-2.4.html> for more information on how to upgrade.
@@ -336,8 +296,12 @@
- `vimPlugins.nvim-treesitter` has been updated to `main` branch, which is a full and incompatible rewrite. If you can't or don't want to update, you should use `vimPlugins.nvim-treesitter-legacy`.
- `services.taskchampion-sync-server` module have been added an option `services.taskchampion-sync-server.dynamicUser` to use systemd's DynamicUser feature. This is enabled by default when stateVersion is at least 26.05, and disabled otherwise. If you need this feature, you need to set `services.taskchampion-sync-server.dynamicUser` to `true` and migrate `/var/lib/taskchampion-sync-server` to `/var/lib/private/taskchampion-sync-server`.
- Package `jellyseerr` has been renamed to `seerr` following the upstream rename.
- The default packages in `services.jenkins.packages` have been dropped, since not every Jenkins installation needs any package at all. It's more reasonable to leave it empty and let users configure what they need.
- The `pie` hardening flag has been removed and will now error, after being deprecated in 25.11. Compilers are expected to enable PIE by default, as has been common practice since 2016 outside of Nixpkgs. If a package needs `pie` disabled pass `-no-pie` in `CFLAGS`. It is unlikely this will be necessary in many cases; due to the prevalence of default PIE toolchains, most packages incompatible with PIE already pass `-no-pie`.
- `pqos-wrapper` was removed as it has been unmaintained since 2022 and not widely used.
@@ -350,8 +314,6 @@
- `linuxPackages.nvidiaPackages` now follows NVIDIA's official release branches by exposing `production`, `new_feature`, and `beta`. The convenience aliases `latest` (newer of `production` and `new_feature`) and `bleeding_edge` (newer of `latest` and `beta`) are provided; note that `beta` now refers strictly to the beta branch.
- `stestrCheckHook` was added: This test hook runs `stestr run`. You can disable tests with `disabledTests` and `disabledTestsRegex`.
- `balatro` now supports the Google Play and Xbox PC versions of the game. Pass the `apk` or `Assets.zip` as `balatro.override { src = "…" }`.
- `uptime-kuma` has been updated to v2, which requires an automated migration that can take a few hours. **A backup is highly recommended.**
@@ -362,22 +324,16 @@
- The `libcxxhardeningextensive` hardening flag has been **disabled** by default. Enabling it by default in 25.11 was unintentional and may have had a negative effect on performance in some cases. `libcxxhardeningfast` remains enabled by default.
- Wine has been updated to the 11.0 branch. Please check the [upstream announcement](https://gitlab.winehq.org/wine/wine/-/releases/wine-11.0) for more details.
- Cinnamon has been updated to 6.6, please check the [upstream announcement](https://www.linuxmint.com/rel_zena_whatsnew.php) for more details.
- `rspamd` has been updated to 4.0. Please check the upstream [migration](https://docs.rspamd.com/tutorials/migration/#migration-to-rspamd-400) documentation, especially if you run a sharded Redis deployment.
- `hyphen` now supports over 40 language variants through `hyphenDicts` and now allows to enable all supported languages through `hyphenDicts.all`.
- `budgie` has been updated to 10.10, please check the [upstream announcement](https://buddiesofbudgie.org/blog/budgie-10-10-released) for more details.
- The packages `ibtool`, `actool` and `re-plistbuddy` have been added, providing reimplementations of the corresponding proprietary Apple tools. They are more compatible with the originals than the previously existing `xcbuild` package, and should enable more darwin software to be built from source.
- Switch inhibitors were introduced, which add a pre-switch check that compares a list of strings between the previous and the new generation, and refuses to switch into the new generation when there is a difference between the two lists. This allows to avoid switching into a system when for instance the systemd version changed by adding `config.systemd.package.version` to the switch inhibitors for your system. You can still forcefully switch into any generation by setting `NIXOS_NO_CHECK=1`.
- GNU Taler has been updated to version 1.3.
This release focuses on getting everything ready for a deployment of GNU Taler by Magnet bank.
For more details, see the [upstream release notes](https://www.taler.net/en/news/2025-13.html).
- The `services.nextcloud-spreed-signaling` NixOS module has been added to facilitate declarative management of a standalone Spreed signaling server ("High Performance Backend" for Nextcloud Talk).
- `collabora-desktop` The desktop version of Collabora Office is now available, package version `25.05.9.2-2`.
- `fetchPnpmDeps` and `pnpmConfigHook` were added as top-level attributes, replacing the now deprecated `pnpm.fetchDeps` and `pnpm.configHook` attributes.
@@ -393,7 +349,7 @@
- Added `dell-bios-fan-control` package and service.
- Added `lovr` package, a Lua-based game engine for VR and XR applications.
- Added `lovr` package, a LUA-based game engine for VR and XR applications.
- Updated `wsjtx` from 2.7.0 to 3.0.0 for amateur radio hobbyists who use FT8 and other related digital modes.
See the [release notes](https://wsjt.sourceforge.io/Release_Notes.txt) for the changelog.
@@ -403,14 +359,14 @@
- `wrapNeovimUnstable` now sets provider-related configuration in its generated config rather than as wrapper arguments. It should not affect configuration unless you set `wrapRc` to false or are using the `legacyWrapper`.
- Neovim Lua dependencies are now set in the generated init.lua instead of
- neovim lua dependencies are now set in the generated init.lua instead of
modifying LUA_PATH in the wrapper. Commands run pre-vimrc via `nvim --cmd
"require'LUA_MODULE'"` may
not find their lua dependencies anymore. Use `nvim -c "lua require'LUA_MODULE'"` instead to run these commands after loading `init.lua`. If you use `wrapNeovim` with `wrapRc` set to `false`, you may lose the lua dependencies if you are not loading the generated `init.lua`.
- We now use the upstream wrapper script for Gradle, supporting both the `JAVA_HOME` and `GRADLE_OPTS` environment variables.
- Updated `gonic` to 0.21.0. A full ("slow") scan is recommended after upgrading to v0.21.0 to pick up the newly scanned fields (contributors, ISRCs, record labels, per-track years, ARTIST_CREDIT).
- the `autossh-ng` NixOS module was introduced as a simpler alternative to the existing `autossh` module.
- Added `haskell.packages.microhs`, a set of Haskell packages built with MicroHs.
@@ -430,6 +386,8 @@ gnuradioMinimal.override {
}
```
- Added `headplane` and `headplane-agent` packages, and `services.headplane` service.
## Nixpkgs Library {#sec-nixpkgs-release-26.05-lib}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
@@ -442,7 +400,7 @@ gnuradioMinimal.override {
- `nodejs` is now a simple wrapper for `nodejs-slim`+`nodejs-slim.npm`+`nodejs-slim.corepack`, meaning it is no longer possible to reference or override its attributes or outputs (e.g. `nodejs.libv8` must be replaced with `nodejs-slim.libv8`, `nodejs.nativeBuildInputs` with `nodejs-slim.nativeBuildInputs`, etc.).
- `navidrome` has removed the built-in Spotify integration. See [v0.61.0](https://github.com/navidrome/navidrome/releases/tag/v0.61.0) for details on optional replacements.
- `navidrome` has removed the built-in Spotify integration https://github.com/navidrome/navidrome/releases/tag/v0.61.0 has details on optional replacements
- `mold` is now wrapped by default.
@@ -462,3 +420,4 @@ gnuradioMinimal.override {
- The builder `php.buildComposerProject2` for PHP applications has been improved for better reliability and stability.
- The `services.drupal` module has a few improvements aimed at making it better for installing custom Drupal instances, namely a new `webRoot` option for identifying custom webroots in source code, a new `configRoot` option for identifying and synchronizing config yamls onto NixOS, and a some new settings for managing variable content and filepaths.

View File

@@ -1,4 +1,4 @@
# Nixpkgs 26.11 (2026.11/??) {#sec-nixpkgs-release-26.11}
# Nixpkgs 26.11 ("Zokor", 2026.11/??) {#sec-nixpkgs-release-26.11}
## Highlights {#sec-nixpkgs-release-26.11-highlights}
@@ -10,7 +10,7 @@
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
- Create the first release note entry in this section!
- `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.
## Other Notable Changes {#sec-nixpkgs-release-26.11-notable-changes}

View File

@@ -61,12 +61,6 @@ Release branch. Used to specify that a package is not going to receive updates t
The packages homepage. Example: `https://www.gnu.org/software/hello/manual/`
### `donationPage` {#var-meta-donationPage}
The package or project's donation page, if it exists. Example: `https://neovim.io/sponsors/`
Authoritative project URLs are preferred.
### `downloadPage` {#var-meta-downloadPage}
The page where a link to the current version can be found. Example: `https://ftp.gnu.org/gnu/hello/`

View File

@@ -1 +1 @@
26.05
26.11

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 = "Yarara";
codeName = "Zokor";
/**
Returns the current nixpkgs version suffix as string.

View File

@@ -5058,6 +5058,12 @@
github = "cigrainger";
githubId = 3984794;
};
ciil = {
email = "simon@lackerbauer.com";
github = "ciil";
githubId = 3956062;
name = "Simon Lackerbauer";
};
cilki = {
github = "cilki";
githubId = 10459406;
@@ -7354,6 +7360,12 @@
github = "DSeeLP";
githubId = 46624152;
};
dsferruzza = {
email = "david.sferruzza@gmail.com";
github = "dsferruzza";
githubId = 1931963;
name = "David Sferruzza";
};
dsluijk = {
name = "Dany Sluijk";
email = "nix@dany.dev";
@@ -7604,6 +7616,11 @@
githubId = 54573;
name = "Edward Amsden";
};
eana = {
github = "eana";
githubId = 18534280;
name = "Jonas Eana";
};
earldouglas = {
email = "james@earldouglas.com";
github = "earldouglas";
@@ -18248,12 +18265,6 @@
githubId = 16974598;
name = "Mike Playle";
};
mkannwischer = {
email = "matthias@kannwischer.eu";
github = "mkannwischer";
githubId = 3984960;
name = "Matthias Kannwischer";
};
mkez = {
email = "matias+nix@zwinger.fi";
github = "mk3z";
@@ -19244,12 +19255,6 @@
name = "Naufal Fikri";
keys = [ { fingerprint = "1575 D651 E31EC 6117A CF0AA C1A3B 8BBC A515 8835"; } ];
};
naurissteins = {
name = "Nauris Steins";
email = "me@naurissteins.com";
github = "naurissteins";
githubId = 5653746;
};
naxdy = {
name = "Naxdy";
email = "naxdy@naxdy.org";
@@ -28528,6 +28533,12 @@
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";

View File

@@ -167,6 +167,7 @@ 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
1 name rockspec ref server version luaversion maintainers
167 tiktoken_core natsukium
168 tl mephistophiles
169 toml-edit 5.1 mrcjkb
170 tomlua birdee
171 tree-sitter-cli
172 tree-sitter-http 0.0.33-1
173 tree-sitter-norg 5.1 mrcjkb

View File

@@ -662,6 +662,7 @@ with lib.maintainers;
python = {
members = [
hexa
natsukium
];
scope = "Maintain the Python interpreter and related packages.";
shortName = "Python";

View File

@@ -8,7 +8,7 @@ passed and a selection of packages has been built successfully
(see `nixos/release-combined.nix` and `nixos/release-small.nix`).
These channels are:
- *Stable channels*, such as [`nixos-26.05`](https://channels.nixos.org/nixos-26.05).
- *Stable channels*, such as [`nixos-25.11`](https://channels.nixos.org/nixos-25.11).
These only get conservative bug fixes and package upgrades. For
instance, a channel update may cause the Linux kernel on your system
to be upgraded from 4.19.34 to 4.19.38 (a minor bug fix), but not
@@ -21,7 +21,7 @@ These channels are:
radical changes between channel updates. It's not recommended for
production systems.
- *Small channels*, such as [`nixos-26.05-small`](https://channels.nixos.org/nixos-26.05-small)
- *Small channels*, such as [`nixos-25.11-small`](https://channels.nixos.org/nixos-25.11-small)
or [`nixos-unstable-small`](https://channels.nixos.org/nixos-unstable-small).
These are identical to the stable and unstable channels described above,
except that they contain fewer binary packages. This means they get updated
@@ -40,8 +40,8 @@ supported stable release.
When you first install NixOS, you're automatically subscribed to the
NixOS channel that corresponds to your installation source. For
instance, if you installed from a 26.05 ISO, you will be subscribed to
the `nixos-26.05` channel. To see which NixOS channel you're subscribed
instance, if you installed from a 25.11 ISO, you will be subscribed to
the `nixos-25.11` channel. To see which NixOS channel you're subscribed
to, run the following as root:
```ShellSession
@@ -56,16 +56,16 @@ To switch to a different NixOS channel, do
```
(Be sure to include the `nixos` parameter at the end.) For instance, to
use the NixOS 26.05 stable channel:
use the NixOS 25.11 stable channel:
```ShellSession
# nix-channel --add https://channels.nixos.org/nixos-26.05 nixos
# nix-channel --add https://channels.nixos.org/nixos-25.11 nixos
```
If you have a server, you may want to use the "small" channel instead:
```ShellSession
# nix-channel --add https://channels.nixos.org/nixos-26.05-small nixos
# nix-channel --add https://channels.nixos.org/nixos-25.11-small nixos
```
And if you want to live on the bleeding edge:
@@ -118,5 +118,5 @@ the new generation contains a different kernel, initrd or kernel
modules. You can also specify a channel explicitly, e.g.
```nix
{ system.autoUpgrade.channel = "https://channels.nixos.org/nixos-26.05"; }
{ system.autoUpgrade.channel = "https://channels.nixos.org/nixos-25.11"; }
```

View File

@@ -2363,6 +2363,21 @@
"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,6 +3,7 @@
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

@@ -4,7 +4,7 @@
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
- Added `nixos-init`, a Rust-based bashless initialization system for systemd initrd.
- Added `nixos-init`, a Rust-based bashless initialization system for systemd initrd. This allows to build NixOS systems without any interpreter. Enable via `system.nixos-init.enable = true;`.
- COSMIC DE has been updated to the beta version, bringing it closer to its first stable release. This includes updates to its core components, applications, and overall stability.
@@ -41,19 +41,17 @@
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
- Added `nixos-init`, a Rust-based bashless initialization system for systemd initrd. This allows building NixOS systems without any interpreter. Enable via `system.nixos-init.enable = true;`.
- Added `nixos-init`, a Rust-based bashless initialization system for systemd initrd. This allows to build NixOS systems without any interpreter. Enable via `system.nixos-init.enable = true;`.
- [angrr](https://github.com/linyinfeng/angrr), a service that automatically cleans up old auto GC roots. Available as [services.angrr](#opt-services.angrr.enable).
- Auto-scrub support for Bcachefs filesystems can now be enabled through [services.bcachefs.autoScrub.enable](#opt-services.bcachefs.autoScrub.enable) to periodically check for data corruption. If there's a correct copy available, it will automatically repair corrupted blocks.
- [Beszel](https://beszel.dev), a lightweight server monitoring hub with historical data, docker stats, and alerts. Available as [`services.beszel.agent`](#opt-services.beszel.agent.enable) and [`services.beszel.hub`](#opt-services.beszel.hub.enable).
- [Beszel](https://beszel.dev), a lightweight server monitoring hub with historical data, docker stats, and alerts. Available as [`services.beszel.agent`](options.html#opt-services.beszel.agent.enable) and [`services.beszel.hub`](options.html#opt-services.beszel.hub.enable).
- [boot.kernel.sysfs](#opt-boot.kernel.sysfs), a new way to set sysfs attributes.
- [boot.kernel.sysfs](options.html#opt-boot.kernel.sysfs), a new way to set of sysfs attributes.
- [Broadcast Box](https://github.com/Glimesh/broadcast-box), a WebRTC broadcast server. Available as [services.broadcast-box](#opt-services.broadcast-box.enable).
- Drivers and utilities for [Tenstorrent](https://tenstorrent.com) have been added. Available as [hardware.tenstorrent](#opt-hardware.tenstorrent.enable).
- [Broadcast Box](https://github.com/Glimesh/broadcast-box), a WebRTC broadcast server. Available as [services.broadcast-box](options.html#opt-services.broadcast-box.enable).
- [byedpi](https://github.com/hufrea/byedpi), a DPI bypass service. Available as [services.byedpi](#opt-services.byedpi.enable).
@@ -69,7 +67,9 @@
- [crowdsec-firewall-bouncer](https://www.crowdsec.net/), the CrowdSec Remediation Component for fetching new and old decisions from a CrowdSec API and adding them to a blocklist used by supported firewalls. Available as [services.crowdsec-firewall-bouncer](#opt-services.crowdsec-firewall-bouncer.enable).
- [docuseal](https://github.com/docusealco/docuseal), a DocuSign alternative. Create, fill, and sign digital documents. Available as [services.docuseal](#opt-services.docuseal.enable).
- Docker now defaults to 28.x, because version 27.x stopped receiving security updates and bug fixes after [May 2, 2025](https://github.com/moby/moby/pull/49910).
- [docuseal](https://github.com/docusealco/docuseal), a DocuSign alternative. Create, fill, and sign digital documents. Available at [services.docuseal](#opt-services.docuseal.enable).
- [Draupnir](https://github.com/the-draupnir-project/draupnir), a Matrix moderation bot. Available as [services.draupnir](#opt-services.draupnir.enable).
@@ -93,14 +93,14 @@
- [Homebridge](https://github.com/homebridge/homebridge), a lightweight Node.js server you can run on your home network that emulates the iOS HomeKit API. Available as [services.homebridge](#opt-services.homebridge.enable).
- [IfState](https://ifstate.net), manage host interface settings in a declarative manner. Available as [networking.ifstate](#opt-networking.ifstate.enable) and [boot.initrd.network.ifstate](#opt-boot.initrd.network.ifstate.enable).
- [IfState](https://ifstate.net), manage host interface settings in a declarative manner. Available as [networking.ifstate](options.html#opt-networking.ifstate.enable) and [boot.initrd.network.ifstate](options.html#opt-boot.initrd.network.ifstate.enable).
- [KMinion](https://github.com/redpanda-data/kminion), feature-rich Prometheus exporter for Apache Kafka. Available as [services.prometheus.exporters.kafka](options.html#opt-services.prometheus.exporters.kafka).
- [LACT](https://github.com/ilya-zlobintsev/LACT), a GPU monitoring and configuration tool, can now be enabled through [services.lact.enable](#opt-services.lact.enable).
Note that for LACT to work properly on AMD GPU systems, you need to enable [hardware.amdgpu.overdrive.enable](#opt-hardware.amdgpu.overdrive.enable).
- [lemurs](https://github.com/coastalwhite/lemurs), a customizable TUI display/login manager. Available as [services.displayManager.lemurs](#opt-services.displayManager.lemurs.enable).
- [lemurs](https://github.com/coastalwhite/lemurs), a customizable TUI display/login manager. Available at [services.displayManager.lemurs](#opt-services.displayManager.lemurs.enable).
- [LibreTranslate](https://libretranslate.com), a free and open source machine translation API. Available as [services.libretranslate](#opt-services.libretranslate.enable).
@@ -121,11 +121,11 @@
- [nebula-lighthouse-service](https://github.com/manuels/nebula-lighthouse-service), a public Nebula VPN lighthouse service. Available as [services.nebula-lighthouse-service](#opt-services.nebula-lighthouse-service.enable).
- [Newt](https://github.com/fosrl/newt), a fully user space WireGuard tunnel client and TCP/UDP proxy, designed to securely expose private resources controlled by Pangolin. Available as [services.newt](#opt-services.newt.enable).
- [Newt](https://github.com/fosrl/newt), a fully user space WireGuard tunnel client and TCP/UDP proxy, designed to securely expose private resources controlled by Pangolin. Available as [services.newt](options.html#opt-services.newt.enable).
- [nixbit](https://github.com/pbek/nixbit), a GUI application for updating your NixOS system from a Nix Flakes Git repository. Available as [programs.nixbit](#opt-programs.nixbit.enable).
- [nix-store-veritysetup](https://github.com/nikstur/nix-store-veritysetup-generator), a systemd generator to unlock the Nix Store as a dm-verity protected block device. Available as [boot.initrd.nix-store-veritysetup](#opt-boot.initrd.nix-store-veritysetup.enable).
- [nix-store-veritysetup](https://github.com/nikstur/nix-store-veritysetup-generator), a systemd generator to unlock the Nix Store as a dm-verity protected block device. Available as [boot.initrd.nix-store-veritysetup](options.html#opt-boot.initrd.nix-store-veritysetup.enable).
- [nvme-rs](https://github.com/liberodark/nvme-rs), NVMe monitoring [services.nvme-rs](#opt-services.nvme-rs.enable).
@@ -139,7 +139,7 @@
- [Pi-hole](https://pi-hole.net/), a DNS sinkhole for advertisements based on Dnsmasq. Available as [services.pihole-ftl](#opt-services.pihole-ftl.enable), and [services.pihole-web](#opt-services.pihole-web.enable) for the web GUI and API.
- [pmount](https://salsa.debian.org/debian/pmount), a tool that allows normal users to mount removable devices without requiring root privileges Available as [programs.pmount](#opt-programs.pmount.enable).
- [pmount](https://salsa.debian.org/debian/pmount), a tool that allows normal users to mount removable devices without requiring root privileges Available at [programs.pmount](#opt-programs.pmount.enable).
- [postfix-tlspol](https://github.com/Zuplu/postfix-tlspol), a MTA-STS and DANE resolver and TLS policy server for Postfix. Available as [services.postfix-tlspol](#opt-services.postfix-tlspol.enable).
@@ -153,7 +153,7 @@
- [radicle-native-ci](https://radicle.network/nodes/seed.radicle.dev/rad:z3qg5TKmN83afz2fj9z3fQjU8vaYE), an adapter for the [Radicle CI broker](https://radicle.network/nodes/seed.radicle.dev/rad:zwTxygwuz5LDGBq255RA2CbNGrz8), for performing CI runs locally. Available as [services.radicle.ci.adapters.native](#opt-services.radicle.ci.adapters.native.instances).
- [rauc](https://rauc.io/) (the Robust Auto-Update Controller), a daemon that allows reliable and secure software updates in embedded Linux systems. Available as [services.rauc](#opt-services.rauc.enable).
- [rauc](https://rauc.io/) (the Robust Auto-Update Controller), a daemon that allows reliable and secure software updates in embedded Linux systems. Available at [services.rauc](#opt-services.rauc.enable).
- [ringboard](https://github.com/SUPERCILEX/clipboard-history), a fast, efficient, and composable clipboard manager for Linux. Available for x11 as [services.ringboard](#opt-services.ringboard.x11.enable) and for Wayland as [services.ringboard](#opt-services.ringboard.wayland.enable).
@@ -189,7 +189,7 @@
- [tuwunel](https://matrix-construct.github.io/tuwunel/), a federated chat server implementing the Matrix protocol, forked from Conduwuit. Available as [services.matrix-tuwunel](#opt-services.matrix-tuwunel.enable).
- [umami](https://github.com/umami-software/umami), a simple, fast, privacy-focused alternative to Google Analytics. Available as [services.umami](#opt-services.umami.enable).
- [umami](https://github.com/umami-software/umami), a simple, fast, privacy-focused alternative to Google Analytics. Available with [services.umami](#opt-services.umami.enable).
- [wayvnc](https://github.com/any1/wayvnc), a VNC server for wlroots based Wayland compositors. Available as [programs.wayvnc](#opt-programs.wayvnc.enable).
@@ -222,7 +222,7 @@
- `miniflux` no longer uses the hstore PostgreSQL extension. Having the extension would prevent Miniflux from starting. In case you are managing your `miniflux` PostgreSQL database externally, disable the extension with `DROP EXTENSION IF EXISTS hstore;`.
- `netbox-manage` script created by the `netbox` module no longer uses `sudo -u netbox` internally. It can be run as root and will change its user to `netbox` using `runuser`.
- `netbox-manage` script created by the `netbox` module no longer uses `sudo -u netbox` internally. It can be run as root and will change it's user to `netbox` using `runuser`.
- NixOS display manager modules now strictly use tty1, where many of them previously used tty7. Options to configure display managers' VT have been dropped. A configuration with a display manager enabled will not start `getty@tty1.service`, even if the system is forced to boot into `multi-user.target` instead of `graphical.target`.
@@ -254,7 +254,7 @@
- `services.nextcloud.notify_push.enable` now installs the notify_push app. Therefore the appstore is now disabled when using `notify_push`. See `services.nextcloud.appstoreEnable`.
- `services.nixseparatedebuginfod.enable = true;` has been replaced by `services.nixseparatedebuginfod2.enable = true`. If you only use the official binary cache `https://cache.nixos.org` then no further configuration should be needed. If you have other https substituters, you can add them to `services.nixseparatedebuginfod2.substituters`. SSH substituters are not supported by nixseparatedebuginfod2. Consider running nixseparatedebuginfod2 on the substituter instead, and pointing to it with the new option `environment.debuginfodServers`.
- `services.nixseparatedebuginfod.enable = true;` has been replaced by `services.nixseparatedebuginfod2.enable = true`. If you only use the official binary cache `https://cache.nixos.org` then no further configuration should be needed. If you have other https substituters, you can add them to `services.nixseparatedebuginfod2.subsituters`. SSH substituters are not supported by nixseparatedebuginfod2. Consider running nixseparatedebuginfod2 on the substituter instead, and pointing to it with the new option `environment.debuginfodServers`.
- `services.parsoid` and the `nodePackages.parsoid` package have been removed, as the JavaScript-based version this module uses is not compatible with modern MediaWiki versions.
@@ -373,7 +373,7 @@
- `boot.plymouth` now has a [`package`](#opt-boot.plymouth.package) option to specify the package used in the module.
- Docker now defaults to 28.x, because version 27.x stopped receiving security updates and bug fixes after [May 2, 2025](https://github.com/moby/moby/pull/49910).
- Drivers and utilities for [Tenstorrent](https://tenstorrent.com) have been added. Available as [hardware.tenstorrent](#opt-hardware.tenstorrent.enable).
- Due to [deprecation of gnome-session X11 support](https://blogs.gnome.org/alatiera/2025/06/08/the-x11-session-removal/), `services.desktopManager.pantheon` now defaults to pantheon-wayland session. The X11 session has been removed, see [this issue](https://github.com/elementary/session-settings/issues/91) for details.
@@ -436,9 +436,9 @@
- `services.k3s` now shares most of its code with `services.rke2`. The merge resulted in both modules providing more options, with `services.rke2` receiving the most improvements.
Existing configurations for either module should not be affected.
- [services.libvirtd.autoSnapshot](#opt-services.libvirtd.autoSnapshot.enable) has been added as a backup service for libvirt managed VMs.
- [services.libvirtd.autoSnapshot](options.html#opt-services.libvirtd.autoSnapshot.enable) has been added as a backup service for libvirt managed VMs.
- `services.limesurvey` now supports nginx as reverse-proxy. Available as [services.limesurvey.webserver](#opt-services.limesurvey.webserver).
- `services.limesurvey` now supports nginx as reverse-proxy. Available through [services.limesurvey.webserver](#opt-services.limesurvey.webserver).
- `services.mattermost` has been updated to use the 10.11 ESR instead of 10.5. While this shouldn't break anyone, we also now package Mattermost 11 as mattermostLatest. Note that Mattermost 11 drops support for MySQL. The Mattermost module will assertion fail if you try to use MySQL with Mattermost 11; support for using MySQL with Mattermost will fully be removed in NixOS 26.

View File

@@ -1,4 +1,4 @@
# Release 26.05 ("Yarara", 2026.05/30) {#sec-release-26.05}
# Release 26.05 ("Yarara", 2026.05/??) {#sec-release-26.05}
## Highlights {#sec-release-26.05-highlights}
@@ -14,7 +14,7 @@
- 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).
- 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`.
- The system.nix file has been added as an alternative entry point to configuration.nix (and flake.nix) that allows to configure 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`.
For example,
```nix
@@ -60,22 +60,19 @@
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
- [](#opt-services.autossh-ng.sessions) NixOS module was introduced as a simpler alternative to the existing [](#opt-services.autossh.sessions) module.
- [services.nextcloud-spreed-signaling](#opt-services.nextcloud-spreed-signaling.enable) NixOS module has been added to facilitate declarative management of a standalone Spreed signaling server ("High Performance Backend" for Nextcloud Talk).
- [OpenThread Border Router](https://openthread.io/), a Thread border router for POSIX-based platforms that bridges Thread mesh networks to IP networks. Available as [services.openthread-border-router](#opt-services.openthread-border-router.enable).
- [Atuin](https://atuin.sh), magical shell history — sync, search and backup your terminal history. Available as [programs.atuin](#opt-programs.atuin.enable).
- [Meshtastic](https://meshtastic.org), an open-source, off-grid, decentralised mesh network
designed to run on affordable, low-power devices. Available as [services.meshtasticd](#opt-services.meshtasticd.enable).
designed to run on affordable, low-power devices. Available as [services.meshtasticd]
(#opt-services.meshtasticd.enable).
- [Goupile](https://goupile.org/en), an open-source design tool for secure forms including Clinical Report Forms (eCRF). Available as [services.goupile](#opt-services.goupile.enable).
- [knot-resolver](https://www.knot-resolver.cz/), in version 6. Available as [services.knot-resolver](#opt-services.knot-resolver.enable). A module for knot-resolver 5 was already available as [services.kresd](#opt-services.kresd.enable).
- [knot-resolver](https://www.knot-resolver.cz/) in version 6. Available as `services.knot-resolver`. A module for knot-resolver 5 was already available as `services.kresd`.
- [ImmichFrame](https://immichframe.dev/), display your photos from Immich as a digital photo frame. Available as [services.immichframe](#opt-services.immichframe.enable).
- [ImmichFrame](https://immichframe.dev/), display your photos from Immich as a digital photo frame. Available as `services.immichframe`.
- [PdfDing](https://www.pdfding.com/), manage, view and edit your PDFs seamlessly on all your devices wherever you are. Available as [services.pdfding](#opt-services.pdfding.enable).
@@ -83,7 +80,7 @@
- [reaction](https://reaction.ppom.me/), a daemon that scans program outputs for repeated patterns, and takes action. A common usage is to scan ssh and webserver logs, and to ban hosts that cause multiple authentication errors. A modern alternative to fail2ban. Available as [services.reaction](#opt-services.reaction.enable).
- [vinyl-cache](https://vinyl-cache.org) as the Varnish Cache project renamed itself. Available as [services.vinyl-cache](#opt-services.vinyl-cache.enable). To aid the migration, the old [services.varnish](#opt-services.varnish.enable) module is still available.
- [vinyl-cache] as the Varnish Cache project renamed itself. Available as [services.vinyl-cache](#opt-services.vinyl-cache.enable). To aid the migration, the old `services.varnish` module is still available.
- [papra](https://papra.app/), an open-source document management platform designed to help you organize, secure, and archive your files effortlessly. Available as [services.papra](#opt-services.papra.enable).
@@ -99,29 +96,29 @@
- [LibreChat](https://www.librechat.ai/), open-source self-hostable ChatGPT clone with Agents and RAG APIs. Available as [services.librechat](#opt-services.librechat.enable).
- [nohang](https://github.com/hakavlad/nohang), a daemon for Linux that prevents out of memory (OOM) situations from affecting system responsiveness. Available as [services.nohang](#opt-services.nohang.enable).
- [nohang](https://github.com/hakavlad/nohang), a daemon for Linux that prevents out of memory (OOM) situations from affecting system responsiveness. Available as [services.nohang](#opt-services.nohang.enable)
- [clevis-luks-askpass](https://github.com/latchset/clevis), automatic LUKS unlocking in initrd using clevis token bindings stored in LUKS headers. Available as [boot.initrd.clevisLuksAskpass](#opt-boot.initrd.clevisLuksAskpass.enable).
- [bentopdf](https://github.com/alam00000/bentopdf), a privacy-first PDF toolkit running completely in-browser. Available as [services.bentopdf](#opt-services.bentopdf.enable).
- [hyprwhspr-rs](https://github.com/better-slop/hyprwhspr-rs), a keybind activated speech-to-text voice dictation utility built for use with Hyprland. Available as [services.hyprwhspr-rs](#opt-services.hyprwhspr-rs.enable).
- [hyprwhspr-rs](https://github.com/better-slop/hyprwhspr-rs), a keybind activated speech-to-text voice dictation utility built for use with Hyprland. Available as `services.hyprwhspr-rs`
- [DankMaterialShell](https://danklinux.com), a complete desktop shell for Wayland compositors built with Quickshell. Available as [programs.dms-shell](#opt-programs.dms-shell.enable).
- [pyroscope](https://github.com/grafana/pyroscope), a continuous profiling platform that allows for performance debugging. Available as [services.pyroscope](#opt-services.pyroscope.enable).
- [pyroscope](https://github.com/grafana/pyroscope), a continuous profiling platform. that allows for performance debugging. Available as [services.pyroscope](#opt-services.pyroscope.enable)
- [dms-greeter](https://danklinux.com), a modern display manager greeter for DankMaterialShell that works with greetd and supports multiple Wayland compositors. Available as [services.displayManager.dms-greeter](#opt-services.displayManager.dms-greeter.enable).
- [dsearch](https://github.com/AvengeMedia/danksearch), a fast filesystem search service with fuzzy matching. Available as [programs.dsearch](#opt-programs.dsearch.enable).
- [Rustical](https://github.com/lennart-k/rustical), a CalDav/CardDav server aiming to be simple, fast and passwordless. Available as [services.rustical](#opt-services.rustical.enable).
- [Rustical](https://github.com/lennart-k/rustical), a CalDav/CardDav server aiming to be simple, fast and passwordless. Available as [services.rustical](options.html#opt-services.rustical.enable).
- [Elephant](https://github.com/abenz1267/elephant), a data provider service and backend for building custom application launchers. Available as [services.elephant](#opt-services.elephant.enable).
- [Dunst](https://github.com/dunst-project/dunst), a lightweight and customizable notification daemon. Available as [services.dunst](#opt-services.dunst.enable).
- [cocoon](https://github.com/haileyok/cocoon), a PDS (personal data server) that is an alternative to the Bluesky PDS. Available as [services.cocoon](#opt-services.cocoon.enable).
- [cocoon](https://github.com/haileyok/cocoon), is a PDS (personal data server) that is a alternative to the bluesky pds. Available as [services.cocoon](#opt-services.cocoon.enable).
- [Ente Auth](https://ente.io/auth/), an open source 2FA authenticator, with end-to-end encrypted backups. Available as [programs.ente-auth](#opt-programs.ente-auth.enable).
@@ -133,19 +130,19 @@
- [Dawarich](https://dawarich.app/), a self-hostable location history tracker. Available as [services.dawarich](#opt-services.dawarich.enable).
- [Howdy](https://github.com/boltgolt/howdy), a Windows Hello™ style facial authentication program for Linux. Available as [services.howdy](#opt-services.howdy.enable)
- [Howdy](https://github.com/boltgolt/howdy), a Windows Hello™ style facial authentication program for Linux.
- [SuiteNumérique Drive](https://github.com/suitenumerique/drive), a collaborative file sharing and document management platform that scales. Built with Django and React. Open source alternative to Sharepoint or Google Drive. Available as [services.lasuite-drive](#opt-services.lasuite-drive.enable).
- [SuiteNumérique Drive](https://github.com/suitenumerique/drive), a collaborative file sharing and document management platform that scales. Built with Django and React. Open source alternative to Sharepoint or Google Drive.
- [linux-enable-ir-emitter](https://github.com/EmixamPP/linux-enable-ir-emitter), a tool used to set up IR cameras, used with Howdy. Available as [services.linux-enable-ir-emitter](#opt-services.linux-enable-ir-emitter.enable).
- [linux-enable-ir-emitter](https://github.com/EmixamPP/linux-enable-ir-emitter), a tool used to set up IR cameras, used with Howdy.
- [udp-over-tcp](https://github.com/mullvad/udp-over-tcp), a tunnel for proxying UDP traffic over a TCP stream. Available as [](#opt-services.udp-over-tcp.udp2tcp) and [](#opt-services.udp-over-tcp.tcp2udp).
- [udp-over-tcp](https://github.com/mullvad/udp-over-tcp), a tunnel for proxying UDP traffic over a TCP stream. Available as `services.udp-over-tcp`.
- [turborepo-remote-cache](https://ducktors.github.io/turborepo-remote-cache/), an open-source implementation of the [Turborepo custom remote cache server](https://turbo.build/repo/docs/core-concepts/remote-caching#self-hosting). Available as [services.turborepo-remote-cache](#opt-services.turborepo-remote-cache.enable).
- [turborepo-remote-cache](https://ducktors.github.io/turborepo-remote-cache/), an open-source implementation of the [Turborepo custom remote cache server](https://turbo.build/repo/docs/core-concepts/remote-caching#self-hosting). Available as [services.turborepo-remote-cache](options.html#opt-services.turborepo-remote-cache).
- [RSSHub](https://github.com/DIYgod/RSSHub), a service to convert many sources into rss. Available as [services.rsshub](#opt-services.rsshub.enable).
- [RSSHub](https://github.com/DIYgod/RSSHub), a service to convert many sources into rss. Available as `services.rsshub`.
- [ReFrame](https://github.com/AlynxZhou/reframe), a DRM/KMS based remote desktop for Linux that supports Wayland/NVIDIA/headless/login. Available as [services.reframe](#opt-services.reframe.enable)
- [ReFrame](https://github.com/AlynxZhou/reframe), a DRM/KMS based remote desktop for Linux that supports Wayland/NVIDIA/headless/login.
- [Komodo Periphery](https://github.com/moghtech/komodo), a multi-server Docker and Git deployment agent by Komodo. Available as [services.komodo-periphery](#opt-services.komodo-periphery.enable).
@@ -161,35 +158,16 @@
- [Headplane](https://headplane.net), a feature-complete Web UI for Headscale. Available as [services.headplane](#opt-services.headplane.enable).
- [whois](https://packages.qa.debian.org/w/whois.html), an intelligent WHOIS client. Available as [programs.whois](#opt-programs.whois.enable).
- [whois](https://packages.qa.debian.org/w/whois.html), an intelligent WHOIS client. Available as `programs.whois`.
- [porxie](https://codeberg.org/Blooym/porxie), a correct and efficient ATProto blob proxy for secure content delivery. Available as [services.porxie](#opt-services.porxie.enable).
- [LogiOps](https://github.com/PixlOne/logiops), an unofficial userspace driver for HID++ Logitech devices. Available as [services.logiops](#opt-services.logiops.enable).
- [LogiOps](https://github.com/PixlOne/logiops), a unofficial userspace driver for HID++ Logitech devices. Available as [services.logiops](#opt-services.logiops.enable).
## Backward Incompatibilities {#sec-release-26.05-incompatibilities}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
- [](#opt-services.openssh.settings.AcceptEnv) is now explicitly defined as an option that takes a list of strings, to facilitate option merging. Setting it to a string value is no longer supported.
- The default packages in [](#opt-services.jenkins.packages) have been dropped, since not every Jenkins installation needs any package at all. It's more reasonable to leave it empty and let users configure what they need.
- [services.taskchampion-sync-server](#opt-services.taskchampion-sync-server.enable) module has had an option [](#opt-services.taskchampion-sync-server.dynamicUser) added to use systemd's DynamicUser feature. This is enabled by default when stateVersion is at least 26.05, and disabled otherwise. If you need this feature, you need to set `services.taskchampion-sync-server.dynamicUser` to `true` and migrate `/var/lib/taskchampion-sync-server` to `/var/lib/private/taskchampion-sync-server`.
- The [programs.captive-browser](#opt-programs.captive-browser.enable) module no longer falls back on a setcap wrapper around udhcpc to discover your network's DNS server due to [GHSA-wc3r-c66x-8xmc](https://github.com/NixOS/nixpkgs/security/advisories/GHSA-wc3r-c66x-8xmc) (CVE-2026-25740). If you're using this module, you must either configure [](#opt-programs.captive-browser.dhcp-dns) manually or enable one of NetworkManager, dhcpcd, or systemd-networkd.
- The [services.yggdrasil](#opt-services.yggdrasil.enable) module has been refactored with the following breaking changes:
- The `services.yggdrasil.configFile` option has been removed. Configuration should now be specified directly via [](#opt-services.yggdrasil.settings).
- The `services.yggdrasil.persistentKeys` option has been removed. To maintain persistent keys and IPv6 addresses across reboots, use [](#opt-services.yggdrasil.settings.PrivateKeyPath) to securely load your private key from a file via systemd credentials. The private key must be in PEM format (PKCS #8).
- Storing `PrivateKey` directly in `settings` is now explicitly forbidden to prevent keys from being stored world-readable in the Nix store.
- If you previously used `configFile`, migrate your configuration to the `settings` option and extract the private key to a separate file referenced by `PrivateKeyPath`.
- If you previously used `persistentKeys`, convert your keys to PEM format and store them in a secure location accessible only to root, then reference them via `PrivateKeyPath`.
- [services.xserver](#opt-services.xserver.enable) will now throw an error if an X11 driver specified in `videoDriver(s)` cannot be found. Previously, unknown drivers would be silently ignored.
- The [](#opt-services.avahi.wideArea) option now defaults to `false` as a mitigation against [`CVE-2024-52615`/`GHSA-x6vp-f33h-h32g`](https://github.com/avahi/avahi/security/advisories/GHSA-x6vp-f33h-h32g).
- `systemd.coredump.extraConfig` has been removed in favor of the structured [](#opt-systemd.coredump.settings.Coredump) option. Use `systemd.coredump.settings.Coredump` to set any `coredump.conf(5)` option directly. For example, replace `systemd.coredump.extraConfig = "Storage=journal";` with `systemd.coredump.settings.Coredump.Storage = "journal";`.
- `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.
@@ -205,9 +183,9 @@
- `services.crabfit` was removed because its upstream packages are unmaintained and insecure.
- [services.opensnitch.settings.Rules.Path](#opt-services.opensnitch.settings.Rules.Path) now defaults to `/var/lib/opensnitch/rules` instead of the previous `/etc/opensnitchd/rules` because it contains mutable data.
- `services.opensnitch.settings.Rules.Path` now defaults to `/var/lib/opensnitch/rules` instead of the previous `/etc/opensnitchd/rules` because it contains mutable data.
- [services.mosquitto](#opt-services.mosquitto.enable) now generates per-listener authentication and access control via the upstream `password-file` and `acl-file` plugins instead of the deprecated `password_file` and `acl_file` options. The plugins contain the same code, so behaviour is unchanged, but [](#opt-services.mosquitto.package) must now be at least version 2.1.
- `services.mosquitto` now generates per-listener authentication and access control via the upstream `password-file` and `acl-file` plugins instead of the deprecated `password_file` and `acl_file` options. The plugins contain the same code, so behaviour is unchanged, but [](#opt-services.mosquitto.package) must now be at least version 2.1.
- `sing-box` has been updated to 1.13.0, which has removed some deprecated options. See [upstream documentation](https://sing-box.sagernet.org/configuration/) for details and migration options.
@@ -228,7 +206,7 @@
- `linux_hardened` kernel has been removed due to a lack of maintenance.
- [services.tandoor-recipes](#opt-services.tandoor-recipes.enable) now uses a sub-directory for media files by default starting with `26.05`. Existing setups should move media files out of the data directory and adjust `services.tandoor-recipes.extraConfig.MEDIA_ROOT` accordingly. See [Migrating media files for pre 26.05 installations](#module-services-tandoor-recipes-migrating-media).
- `services.tandoor-recipes` now uses a sub-directory for media files by default starting with `26.05`. Existing setups should move media files out of the data directory and adjust `services.tandoor-recipes.extraConfig.MEDIA_ROOT` accordingly. See [Migrating media files for pre 26.05 installations](#module-services-tandoor-recipes-migrating-media).
- `linux-rt` kernel has been removed due to a lack of maintenance.
@@ -240,26 +218,13 @@
- `services.uptime` has been removed because the package it relies on does not exist anymore in nixpkgs.
- [services.mattermost](#opt-services.mattermost.enable) now defaults to version 11, which has dropped support for MySQL in favor of Postgres. As a result, all support for MySQL has been removed from the module.
- `services.mattermost` now defaults to version 11, which has dropped support for MySQL in favor of Postgres. As a result, all support for MySQL has been removed from the module.
See the [migration steps](https://docs.mattermost.com/deployment-guide/manual-postgres-migration.html) if you were not running Postgres.
Note that version 11 also restricts the user limit to 250 [by default](https://forum.mattermost.com/t/clarification-request-on-user-limits-max-250-user-server-v-11/25309);
see the `pkgs.mattermost` removeUserLimit and removeFreeBadge options combined with [](#opt-services.mattermost.package) to change this behavior. For example:
```nix
{
services.mattermost.package = pkgs.mattermost.override {
removeUserLimit = true;
removeFreeBadge = true;
};
}
```
- `post-resume.target` has been removed. See {manpage}`systemd.special(7)` about `sleep.target` for instructions on ordering a process after resume with `ExecStop=`.
- [services.vsftpd](#opt-services.vsftpd.enable) no longer automatically configures a PAM module. This means configurations using [](#opt-services.vsftpd.localUsers) will no longer work unless [](#opt-services.vsftpd.enableVirtualUsers) and [](#opt-services.vsftpd.userDbPath) are also configured. The old behaviour can be restored by setting `security.pam.services.vsftpd.enable = true`, although this only ever worked by accident and may not be secure.
- `services.kubernetes.addons.dns.coredns` has been renamed to [](#opt-services.kubernetes.addons.dns.corednsImage) and now expects a
package instead of attrs. Now, by default, nixpkgs.coredns in conjunction with `dockerTools.buildImage` is used, instead
- `services.kubernetes.addons.dns.coredns` has been renamed to `services.kubernetes.addons.dns.corednsImage` and now expects a
package instead of attrs. Now, by default, nixpkgs.coredns in conjunction with dockerTools.buildImage is used, instead
of pulling the upstream container image from Docker Hub. If you want the old behavior, you can set:
```nix
@@ -273,7 +238,7 @@ of pulling the upstream container image from Docker Hub. If you want the old beh
}
```
- `services.stalwart-mail` has been renamed to [`services.stalwart`](#opt-services.stalwart.enable) to align with upstream re-brand as an e-mail and collaboration server. Other notable breaking changes to module:
- `services.stalwart-mail` has been renamed to `services.stalwart` to align with upstream re-brand as an e-mail and collaboration server. Other notable breaking changes to module:
- Addition of module-specific `stateVersion` option, which on existing installations of Stalwart must be set to the same as `system.stateVersion`.
@@ -283,9 +248,9 @@ of pulling the upstream container image from Docker Hub. If you want the old beh
- Default value for `services.stalwart.dataDir` has changed to `/var/lib/stalwart`. If `stateVersion` is older than `26.05`, will fallback to legacy value of `/var/lib/stalwart-mail`.
- Default tracer name and type have changed to `journal`. If `stateVersion` is older than `26.05`, will fallback to legacy value of `stdout`.
- `services.eintopf` has been renamed to [services.lauti](#opt-services.lauti.enable) to align with upstream re-brand as a community online calendar.
- `services.eintopf` has been renamed to `services.lauti` to align with upstream re-brand as a community online calendar.
- `services.oauth2-proxy.clientSecret` and `services.oauth2-proxy.cookie.secret` have been replaced with [](#opt-services.oauth2-proxy.clientSecretFile) and [](#opt-services.oauth2-proxy.cookie.secretFile) respectively. This was done to ensure secrets don't get made world-readable.
- `services.oauth2-proxy.clientSecret` and `services.oauth2-proxy.cookie.secret` have been replaced with `services.oauth2-proxy.clientSecretFile` and `services.oauth2-proxy.cookie.secretFile` respectively. This was done to ensure secrets don't get made world-readable.
- [`services.grafana.settings.security.secret_key`](#opt-services.grafana.settings.security.secret_key) doesn't have a
default value anymore. Please generate your own key or hard-code the old one ("SW2YcwTIb9zpOOhoPsMm") explicitly.
@@ -294,7 +259,7 @@ of pulling the upstream container image from Docker Hub. If you want the old beh
for further information.
Please do note that there's no official way to rotate. On a single-node instance with the database and the secret-key being
on the same filesystem with the same permissions for Grafana only to read, it is most likely OK to keep using the old key.
on the same filesystem with the same permissions for Grafana only to read it's most likely OK to keep using the old key.
If you need to rotate, a [3rd-party tool, `grafana-secretkey-rotation-tool`](https://github.com/erooke/grafana-secretkey-rotation-tool/tree/d9dc788902fa5185e15cb15ce6129f7237ab6138) is a tested option.
When using a secret for this value, make sure to use [Grafana's variable expansion to inject secrets](https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#variable-expansion).
@@ -305,11 +270,18 @@ of pulling the upstream container image from Docker Hub. If you want the old beh
- Ethercalc and its associated module have been removed, as the package is unmaintained and cannot be installed from source with npm now.
- [services.immich](#opt-services.immich.enable) no longer supports pgvecto.rs since the package has been removed from nixpkgs.
- `services.headplane` has been updated to 0.6.2, which introduces several changes to the configuration schema:
- `services.headplane.settings.oidc.redirect_uri` is deprecated. Use `services.headplane.settings.server.base_url` instead; the OIDC redirect URI is now automatically derived from it. Ensure `base_url` is the bare host URL without the `/admin` suffix.
- `services.headplane.settings.oidc.user_storage_file` is deprecated. Headplane 0.6.2 still accepts it to migrate the old JSON user database into the new internal SQL database.
- `services.headplane.settings.oidc.strict_validation` is deprecated and has no effect.
- `services.headplane.settings.oidc.token_endpoint_auth_method` now defaults to `null` (auto-detection), which typically falls back to `client_secret_basic`. Previous versions defaulted to `client_secret_post`.
- `services.headplane.settings.integration.agent.cache_ttl` is deprecated and has no effect in 0.6.2.
- `services.immich` no longer supports pgvecto.rs since the package has been removed from nixpkgs.
As a result, options `services.immich.database.enableVectors` and `services.immich.database.enableVectorchord` have been removed, and VectorChord is now always used.
If you have not completed the migration yet, ensure you completely remove the extension from your database before upgrading by following the [migration guide](https://github.com/NixOS/nixpkgs/blob/nixos-25.11/nixos/modules/services/web-apps/immich.md#migrating-from-pgvecto-rs-to-vectorchord-pre-2511-installations-module-services-immich-vectorchord-migration).
- [](#opt-services.cgit) before always had the git-http-backend and its "export all" setting enabled, which sidestepped any access control configured in cgit's settings. Now you have to make a decision and either enable or disable `opt-services.cgit.<name>.gitHttpBackend.checkExportOkFiles` (or disable the git-http-backend).
- `services.cgit` before always had the git-http-backend and its "export all" setting enabled, which sidestepped any access control configured in cgit's settings. Now you have to make a decision and either enable or disable `services.cgit.gitHttpBackend.checkExportOkFiles` (or disable the git-http-backend).
- `rocmPackages_6` has been removed. `rocmPackages` has been updated to ROCm 7.x. Out of tree packages may rely on obsolete hipblas APIs or compile time constant warp size and need to be updated.
@@ -319,11 +291,13 @@ of pulling the upstream container image from Docker Hub. If you want the old beh
- The Bash implementation of the `nixos-rebuild` program is removed. All switchable systems now use the Python rewrite. Any prior usage of `system.rebuild.enableNg` must now be removed. If you have any outstanding issues with the new implementation, please open an issue on GitHub.
- [services.desktopManager.gnome](#opt-services.desktopManager.gnome.enable) no longer installs the Geary e-mail client since it is not part of the GNOME [core applications](https://apps.gnome.org/) list. Geary's position in the default favorite apps section has been replaced by GNOME Text Editor. To keep it installed, add `programs.geary.enable = true;` to your configuration.
- `services.desktopManager.gnome` no longer installs the Geary e-mail client since it is not part of the GNOME [core applications](https://apps.gnome.org/) list. Geary's position in the default favorite apps section has been replaced by GNOME Text Editor. To keep it installed, add `programs.geary.enable = true;` to your configuration.
- MATE packages have been moved to top level (e.g. if you previously added `pkgs.mate.caja` to `environment.systemPackages`, you will need to change it to `pkgs.caja`).
- `walker` has been updated to 2.0.0+, which is a complete rewrite in rust.
It now requires a running `elephant` application launcher backend service, which can be enabled using the new `services.elephant.enable`.
It now requires a running `elephant` application launcher backend service, which can be enabled using the new `services.elephpant.enable`.
The way keybinds and actions are handled have been completely revamped. Please refer to the [default config](https://raw.githubusercontent.com/abenz1267/walker/refs/heads/master/resources/config.toml).
@@ -331,7 +305,7 @@ of pulling the upstream container image from Docker Hub. If you want the old beh
- Support for `reiserfs` in nixpkgs has been removed, following the removal in Linux 6.13.
- [services.tor](#opt-services.tor.enable) no longer bind mounts Unix sockets of onion services into its chroot
- `services.tor` no longer bind mounts Unix sockets of onion services into its chroot
because it was not reliable. Users should do it themselves using either `JoinsNamespaceOf=` and Unix sockets in `/tmp`
or `BindPaths=` from a persistent parent directory of each Unix socket.
See <https://github.com/NixOS/nixpkgs/issues/481673>.
@@ -340,14 +314,14 @@ See <https://github.com/NixOS/nixpkgs/issues/481673>.
- `services.xserver.cmt` has been removed as the `xf86-input-cmt` package was broken and unmaintained upstream.
- `programs.light` was removed from nixpkgs due to the corresponding package being unmaintained upstream. `brightnessctl` and [hardware.acpilight](#opt-hardware.acpilight.enable) offer replacements.
- `programs.light` was removed from nixpkgs due to the corresponding package being unmaintained upstream. `brightnessctl` and `programs.acpilight` offer replacements.
- `ceph` has been upgraded to v20. See the [Ceph "tentacle" release notes](https://docs.ceph.com/en/latest/releases/tentacle/#v20-2-0-tentacle) for details and recommended upgrade procedure.
Note that **upgrades of server-side components are one-way**, and downgrading e.g. an OSD from *Tentacle* to *Squid* is not just not supported but is known to break.
- [](#opt-services.unifi.jrePackage) now defaults to `jdk25_headless` instead of `jdk17_headless`, in order to be compatible with new versions of `unifi`.
- `services.unifi`'s `jrePackage` option now defaults to `jdk25_headless` instead of `jdk17_headless`, in order to be compatible with new versions of `unifi`.
- The [networking.wireless](#opt-networking.wireless.enable) module has been security hardened by default: the `wpa_supplicant` daemon now runs under an unprivileged user with restricted access to the system.
- The `networking.wireless` module has been security hardened by default: the `wpa_supplicant` daemon now runs under an unprivileged user with restricted access to the system.
As part of these changes, `/etc/wpa_supplicant.conf` has been deprecated: the NixOS-generated configuration file is now linked to `/etc/wpa_supplicant/nixos.conf` and `/etc/wpa_supplicant/imperative.conf` has been added for imperatively configuring `wpa_supplicant` or when using [allowAuxiliaryImperativeNetworks](#opt-networking.wireless.allowAuxiliaryImperativeNetworks).
@@ -367,20 +341,30 @@ See <https://github.com/NixOS/nixpkgs/issues/481673>.
- In both "networkd" and "scripted" backends, the configuration of name servers is now part of `network-local-commands.service` (fixes issue [#445496](https://github.com/NixOS/nixpkgs/issues/445496)).
- The issue that resulted in a completely unconfigured network if both `resolvconf` was disabled and no default gateway configured, has also been fixed.
- `kratos` has been updated from 1.3.1 to [25.4.0](https://github.com/ory/kratos/releases/tag/v25.4.0). Upstream switched to a new versioning scheme (year.major.minor). Notable breaking changes:
- The `migrate sql` CLI command is now `migrate sql up`
- OIDC registration validation errors are now placed in the `default` node group instead of `oidc`
- Failed OIDC account linking returns HTTP 400 instead of 200
- `pdns` has been updated to version [v5.0.x](https://doc.powerdns.com/authoritative/changelog/5.0.html), which introduces breaking changes. Check out the [Upgrade Notes](https://doc.powerdns.com/authoritative/upgrading.html#to-5-0-0) for details.
- In the PowerDNS Recursor module, following the deprecation period started with NixOS 25.05, the option {option}`services.pdns-recursor.old-settings` has been removed and {option}`services.pdns-recursor.yaml-settings` consequently renamed to [](#opt-services.pdns-recursor.settings).
- [services.angrr](#opt-services.angrr.enable) now uses TOML for configuration. Define policies with [](#opt-services.angrr.settings) (generate TOML file) or point to a file using [](#opt-services.angrr.configFile). The legacy options `services.angrr.period`, `services.angrr.ownedOnly`, and `services.angrr.removeRoot` have been removed. See `man 5 angrr` and the description of [](#opt-services.angrr.settings) options for examples and details.
- `services.angrr` now uses TOML for configuration. Define policies with `services.angrr.settings` (generate TOML file) or point to a file using `services.angrr.configFile`. The legacy options `services.angrr.period`, `services.angrr.ownedOnly`, and `services.angrr.removeRoot` have been removed. See `man 5 angrr` and the description of `services.angrr.settings` options for examples and details.
- `services.homepage-dashboard.environmentFile` has been renamed to [](#opt-services.homepage-dashboard.environmentFiles), and now expects a list of strings.
- `services.homepage-dashboard.environmentFile` has been renamed to `services.homepage-dashboard.environmentFiles`, and now expects a list of strings.
- `services.pingvin-share` has been removed as the `pingvin-share.backend` package was broken and the project was archived upstream.
- `services.jellyseerr` has been renamed to [services.seerr](#opt-services.seerr.enable) following the upstream changes. Notable breaking changes:
- `geph` package's built-in GUI `geph5-client-gui` has been [removed](https://github.com/geph-official/geph5/commit/f2221fb8386312daf2cef05483ebb353ff48bdb4) by the upstream. All users who wish to continue using the GUI should install the `gephgui-wry`, which is consistent with the official release version.
- `services.jellyseerr` has been renamed to `services.seerr` following the upstream changes. Notable breaking changes:
- systemd service name changed accordingly.
- Default config directory moved from `/var/lib/jellyseerr/config` to `/var/lib/seerr/`.
- If `stateVersion` is older than `26.05`, the module fall backs to the legacy path value.
- [services.vikunja](#opt-services.vikunja.enable) has been updated to Vikunja [v1.0.0](https://vikunja.io/changelog/whats-new-in-vikunja-1.0.0/), which introduces multiple breaking changes.
- `services.vikunja` has been updated to Vikunja [v1.0.0](https://vikunja.io/changelog/whats-new-in-vikunja-1.0.0/), which introduces multiple breaking changes.
Notable breaking changes:
- CORS is enabled by default. The module now sets
`services.vikunja.settings.service.publicurl` by default. Custom overrides must ensure it is
@@ -391,11 +375,16 @@ See <https://github.com/NixOS/nixpkgs/issues/481673>.
- SQLite paths are now relative to `service.rootpath` unless absolute. Startup now validates file
storage and OAuth providers.
- `xfsprogs` was updated to version 6.18.0, which enables parent pointers and exchange-range by default. Upstream recommends not to use these features with kernels older than 6.18.
GRUB2 is likely unable to boot from filesystems with these features enabled.
- `services.xtreemfs` has been removed as the `xtreemfs` package was broken and unmaintained upstream.
- `lunarvim` package has been removed, as it was abandoned upstream and relied on an old version of `neovim` to work properly.
- `opengfw` package and `services.opengfw` module have been removed as the upstream GitHub repository and website have been shut down.
- [services.esphome](#opt-services.esphome.enable) no longer uses `DynamicUser`. The service now runs as a static `esphome` system user. systemd handles the migration from `/var/lib/private/esphome` automatically, but users with [impermanence](https://github.com/nix-community/impermanence) setups should ensure `/var/lib/esphome` is persisted.
- `services.esphome` no longer uses `DynamicUser`. The service now runs as a static `esphome` system user. systemd handles the migration from `/var/lib/private/esphome` automatically, but users with [impermanence](https://github.com/nix-community/impermanence) setups should ensure `/var/lib/esphome` is persisted.
- `programs.pqos-wrapper` module has been deleted as the corresponding package has been dropped from nixpkgs.
@@ -405,10 +394,6 @@ See <https://github.com/NixOS/nixpkgs/issues/481673>.
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
- Reloading or restarting systemd units from the NixOS activation script is deprecated, and will be removed in NixOS 26.11. This deprecation is part of a bigger effort to deprecate activation scripts altogether, which will take place over several releases. There are no in-tree usages of the now-deprecated reload/restart functionality.
- Switch inhibitors were introduced, which add a pre-switch check that compares a list of strings between the previous and the new generation, and refuses to switch into the new generation when there is a difference between the two lists. This allows avoiding switching into a system when for instance the systemd version changed by adding `config.systemd.package.version` to the switch inhibitors for your system. You can still forcefully switch into any generation by setting `NIXOS_NO_CHECK=1`.
- `switch-to-configuration` now reloads a service instead of restarting it when the only change to its unit is `ExecReload=`, and takes no action when `ExecReload=` is removed. Previously both cases triggered a restart.
- [`hardware.nvidia.branch`](#opt-hardware.nvidia.branch) was added to select the NVIDIA driver branch; setting [`hardware.nvidia.package`](#opt-hardware.nvidia.package) overrides this.
@@ -417,10 +402,12 @@ See <https://github.com/NixOS/nixpkgs/issues/481673>.
- `nixos/nvidia` now uses EGL external platform ICD libraries built from source (`egl-gbm`, `egl-wayland`, `egl-wayland2`, `egl-x11`) instead of relying on vendor-provided binaries for these components.
- [](#opt-hardware.nvidia.moduleParams) was added to configure NVIDIA kernel module parameters declaratively. These parameters are now written to `modprobe` configuration instead of being passed through global kernel command-line parameters.
- `hardware.nvidia.moduleParams` was added to configure NVIDIA kernel module parameters declaratively. These parameters are now written to `modprobe` configuration instead of being passed through global kernel command-line parameters.
- [hardware.xpadneo](#opt-hardware.xpadneo.enable) now supports configuring kernel module parameters via a freeform [settings](#opt-hardware.xpadneo.settings) option, with convenience options for [rumble attenuation](#opt-hardware.xpadneo.rumbleAttenuation) and [controller quirks](#opt-hardware.xpadneo.quirks).
- Wine has been updated to the 11.0 branch. Please check the [upstream announcement](https://gitlab.winehq.org/wine/wine/-/releases/wine-11.0) for more details.
- `security.acme` now defaults to a dynamic renewal duration, if
[security.acme.defaults.validMinDays](#opt-security.acme.defaults.validMinDays)
remains unset. This accommodates certificates with different ACME profile:
@@ -430,37 +417,44 @@ See <https://github.com/NixOS/nixpkgs/issues/481673>.
- For shortlived certificates with a total validity below 10 days renewal
will happen after half of the total lifetime has passed
- The module for the Dovecot IMAP server, [services.dovecot2](#opt-services.dovecot2.enable), now uses RFC-42-style settings, exposing a structured interface to write the configuration file.
- The module for the Dovecot IMAP server, *services.dovecot*, now uses RFC-42-style settings, exposing a structured interface to write the configuration file.
Also see the list of available settings for [Dovecot 2.3](https://doc.dovecot.org/2.3/settings/core/) or [2.4](https://doc.dovecot.org/2.4.2/core/summaries/settings.html).
- [](#opt-fonts.fontconfig.useEmbeddedBitmaps) is now set to `true` by default.
- Cinnamon has been updated to 6.6, please check the [upstream announcement](https://www.linuxmint.com/rel_zena_whatsnew.php) for more details.
- [services.frp](#opt-services.frp.instances) now supports multiple instances through [](#opt-services.frp.instances) to make it possible to run multiple frp clients or servers at the same time.
- Rspamd has been updated to 4.0. Please check the upstream [migration](https://docs.rspamd.com/tutorials/migration/#migration-to-rspamd-400) documentation, especially if you run a sharded Redis deployment.
- Budgie has been updated to 10.10, please check the [upstream announcement](https://buddiesofbudgie.org/blog/budgie-10-10-released) for more details.
- `fonts.fontconfig.useEmbeddedBitmaps` is now set to `true` by default.
- `stestrCheckHook` was added: This test hook runs `stestr run`. You can disable tests with `disabledTests` and `disabledTestsRegex`.
- `services.frp` now supports multiple instances through `services.frp.instances` to make it possible to run multiple frp clients or servers at the same time.
- `hyphen` now supports over 40 language variants through `hyphenDicts` and now allows to enable all supported languages through `hyphenDicts.all`.
- [services.resolved](#opt-services.resolved.enable) module was converted to RFC42-style settings. The moved options have also been renamed to match the upstream names. Aliases mean current configs will continue to function, but users should move to the new options as convenient.
- `systemd.sleep.extraConfig` was replaced by [RFC 0042](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md)-compliant [](#opt-systemd.sleep.settings.Sleep), which is used to generate the `sleep.conf` configuration file. See {manpage}`sleep.conf.d(5)` for available options.
- `systemd.sleep.extraConfig` was replaced by [RFC 0042](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md)-compliant `systemd.sleep.settings.Sleep`, which is used to generate the `sleep.conf` configuration file. See {manpage}`sleep.conf.d(5)` for available options.
- Support for Bluetooth audio based on `bluez-alsa` has been added to the [hardware.alsa](#opt-hardware.alsa.enable) module. It can be enabled with the new [enableBluetooth](#opt-hardware.alsa.enableBluetooth) option.
- [services.atuin](#opt-services.atuin.enable) now has an `environmentFile` option to safely allow configuring secrets, such as an `ATUIN_DB_URI` containing a Postgres password.
- Support for Bluetooth audio based on `bluez-alsa` has been added to the `hardware.alsa` module. It can be enabled with the new [enableBluetooth](#opt-hardware.alsa.enableBluetooth) option.
- `services.atuin` now has an `environmentFile` option to safely allow configuring secrets, such as an `ATUIN_DB_URI` containing a Postgres password.
- `systemd.network.*` has been updated to support all configuration options from upstream `networkd` version 259.
- [](#opt-networking.resolvconf.enable) now defaults to `true` unconditionally instead of `!(config.environment.etc ? "resolv.conf")`. If you set `environment.etc."resolv.conf"` yourself, then you should also set `networking.resolvconf.enable = false`.
- `networking.resolvconf.enable` now defaults to `true` unconditionally instead of `!(config.environment.etc ? "resolv.conf")`.If you set `environment.etc."resolv.conf"` yourself, then you should also set `networking.resolvconf.enable = false`.
- The [services.drupal](#opt-services.drupal.enable) module has a few improvements aimed at making it better for installing custom Drupal instances, namely a new `webRoot` option for identifying custom webroots in source code, a new `configRoot` option for identifying and synchronizing config yamls onto NixOS, and some new settings for managing variable content and filepaths.
- `services.openssh` now supports generating host SSH keys by setting `services.openssh.generateHostKeys = true` while leaving `services.openssh.enable` disabled. This is particularly useful for systems that have no need of an SSH daemon but want SSH host keys for other purposes such as using agenix or sops-nix.
- [services.openssh](#opt-services.openssh.enable) now supports generating host SSH keys by setting `services.openssh.generateHostKeys = true` while leaving [](#opt-services.openssh.enable) disabled. This is particularly useful for systems that have no need of an SSH daemon but want SSH host keys for other purposes such as using agenix or sops-nix.
- `services.openssh.enableRecommendedAlgorithms` has been added to allow users to opt out of NixOS's curated set of recommended algorithms. This set to true by default, and thus is not a breaking change. Users may want to set this to false if they prefer upstream's default algorithms. See <https://github.com/NixOS/nixpkgs/pull/471330>.
- [](#opt-services.openssh.enableRecommendedAlgorithms) has been added to allow users to opt out of NixOS's curated set of recommended algorithms. This set to true by default, and thus is not a breaking change. Users may want to set this to false if they prefer upstream's default algorithms. See <https://github.com/NixOS/nixpkgs/pull/471330>.
- `services.openssh.banner` has been removed. Use `services.openssh.settings.Banner` instead.
- `services.openssh.banner` has been removed. Use [](#opt-services.openssh.settings.Banner) instead.
- IPVLAN interfaces can now be configured through the `networking.ipvlans` option in the networking module.
- IPVLAN interfaces can now be configured through the [](#opt-networking.ipvlans) option in the networking module.
- [services.caddy](#opt-services.caddy.enable) now supports setting [](#opt-services.caddy.httpPort) and [](#opt-services.caddy.httpsPort) and opening them in the firewall via [](#opt-services.caddy.openFirewall).
- `services.caddy` now supports setting `httpPort` and `httpsPort` and opening them in the firewall via `openFirewall`.
- The latest available version of Nextcloud is v33 (available as `pkgs.nextcloud33`). The installation logic is as follows:
- If [`services.nextcloud.package`](#opt-services.nextcloud.package) is specified explicitly, this package will be installed (**recommended**)
@@ -473,19 +467,59 @@ See <https://github.com/NixOS/nixpkgs/issues/481673>.
To keep the old behavior for a site `example.com`, set `services.caddy.virtualHosts."example.com".hostName = "http://example.com"`.
If you set custom Caddy options for a InvoicePlane site, migrate these options by removing `http://` from `services.caddy.virtualHosts."http://example.com"`.
- `services.slurm` now supports slurmrestd usage through the [](#opt-services.slurm.rest.enable) NixOS options.
- `services.slurm` now supports slurmrestd usage through the `services.slurm.rest` NixOS options.
- The [](#opt-networking.firewall.logRefusedConnections) option now defaults to
- The `networking.firewall.logRefusedConnections` option now defaults to
`false`. Logging of refused or dropped incoming connections can generate a
very high volume of kernel log messages on internet-facing systems, causing
the kernel ring buffer (dmesg) to rotate quickly and potentially discard more
relevant diagnostic information.
- The [services.calibre-web](#opt-services.calibre-web.enable) systemd service has been hardened with additional sandboxing restrictions.
- The `services.calibre-web` systemd service has been hardened with additional sandboxing restrictions.
- `services.kanidm` options for server, client and unix were moved under dedicated namespaces.
For each component `enableComponent` and `componentSettings` are now `component.enable` and
`component.settings`. The unix module now supports using SSH keys from Kanidm via
`services.kanidm.unix.sshIntegration = true`.
- [services.radicle](#opt-services.radicle.enable) now supports importing the private key and passphrase as systemd creds.
- `mdbook-linkcheck` has been removed as it is unmaintained and incompatible with the latest version of `mdbook`. Users can instead migrate to `mdbook-linkcheck2`.
- `glibc` has been updated to version 2.42.
This version no longer makes the stack executable when a shared library requires this. A symptom
is an error like
> cannot enable executable stack as shared object requires: Invalid argument
This is usually a bug. Please consider reporting it to the software maintainers.
In a lot of cases, the library requires the execstack by mistake only. The following workarounds exist:
* When building the shared library in question from source, use the following linker flags to force turning off the
executable flag:
```nix
mkDerivation {
# …
env.NIX_LDFLAGS = "-z,noexecstack";
}
```
* If the sources are not available, the execstack-flag can be cleared with `patchelf`:
```
patchelf --clear-execstack binary-only.so
```
* If the shared library to be loaded actually requires an executable stack and it isn't turned
on by the application loading it, you may force allowing that behavior by setting the
following environment variable:
```
GLIBC_TUNABLES=glibc.rtld.execstack=2
```
**Do not set this globally!** This makes your setup inherently less secure.
- `services.radicle` now supports importing the private key and passphrase as systemd creds.

View File

@@ -1,4 +1,4 @@
# Release 26.11 (2026.11/??) {#sec-release-26.11}
# Release 26.11 ("Zokor", 2026.11/??) {#sec-release-26.11}
## Highlights {#sec-release-26.11-highlights}

View File

@@ -70,7 +70,7 @@ in
defaultChannel = mkOption {
internal = true;
type = types.str;
default = "https://channels.nixos.org/nixos-26.05";
default = "https://channels.nixos.org/nixos-unstable";
description = "Default NixOS channel to which the root user is subscribed.";
};
};

View File

@@ -51,7 +51,6 @@ 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

@@ -33,10 +33,7 @@ in
enable = lib.mkOption {
type = lib.types.bool;
default = builtins.pathExists config.programs.command-not-found.dbPath;
defaultText = lib.literalExpression ''
builtins.pathExists config.programs.command-not-found.dbPath
'';
default = false;
description = ''
Whether interactive shells should show which Nix package (if
any) provides a missing command.
@@ -48,11 +45,6 @@ in
};
dbPath = lib.mkOption {
type = lib.types.path;
default = pkgs.path + "/programs.sqlite";
defaultText = lib.literalExpression ''
pkgs.path + "/programs.sqlite"
'';
description = ''
Absolute path to `programs.sqlite`, which contains mappings from binary names to package names.
@@ -62,29 +54,39 @@ in
`/nix/var/nix/profiles/per-user/root/channels/nixos/programs.sqlite`.
If you do so, you can update it with `sudo nix-channels --update`.
'';
type = lib.types.path;
};
};
config = lib.mkIf cfg.enable {
programs.bash.interactiveShellInit = ''
command_not_found_handle() {
'${commandNotFound}/bin/command-not-found' "$@"
}
'';
config = lib.mkMerge [
{
programs.command-not-found = {
enable = lib.mkDefault (builtins.pathExists cfg.dbPath);
dbPath = pkgs.path + "/programs.sqlite";
};
}
programs.zsh.interactiveShellInit = ''
command_not_found_handler() {
'${commandNotFound}/bin/command-not-found' "$@"
}
'';
(lib.mkIf cfg.enable {
programs.bash.interactiveShellInit = ''
command_not_found_handle() {
'${commandNotFound}/bin/command-not-found' "$@"
}
'';
# NOTE: Fish by itself checks for nixos command-not-found, let's instead makes it explicit.
programs.fish.interactiveShellInit = ''
function fish_command_not_found
"${commandNotFound}/bin/command-not-found" $argv
end
'';
programs.zsh.interactiveShellInit = ''
command_not_found_handler() {
'${commandNotFound}/bin/command-not-found' "$@"
}
'';
environment.systemPackages = [ commandNotFound ];
};
# NOTE: Fish by itself checks for nixos command-not-found, let's instead makes it explicit.
programs.fish.interactiveShellInit = ''
function fish_command_not_found
"${commandNotFound}/bin/command-not-found" $argv
end
'';
environment.systemPackages = [ commandNotFound ];
})
];
}

View File

@@ -47,9 +47,6 @@ in
{
config = lib.mkIf (cfg.enable && nixPackage.pname == "lix") {
# Require the tun kernel module for pasta, can be disabled if pasta is not used.
boot.kernelModules.tun = lib.mkDefault true;
environment.systemPackages = [
nixPackage
pkgs.nix-info

View File

@@ -245,134 +245,156 @@ in
};
###### implementation
config = lib.mkIf config.security.enableWrappers {
assertions = lib.mapAttrsToList (name: opts: {
assertion = opts.setuid || opts.setgid -> opts.capabilities == "";
message = ''
The security.wrappers.${name} wrapper is not valid:
setuid/setgid and capabilities are mutually exclusive.
config = lib.mkMerge [
{
warnings = lib.optional (wrappers != { } && !config.security.enableWrappers) ''
security.enableWrappers is set to false, but the following wrappers are still enabled and will be silently ignored: ${lib.concatStringsSep ", " (lib.attrNames wrappers)}. This might prevent fundamental functionalities, like PAM authentication. To avoid this warning, either set security.enableWrappers = true, or explicitly disable each wrapper with `enable = false`.
'';
}) wrappers;
assertions = [
{
assertion =
!(
!config.security.enableWrappers && lib.any (u: u.isNormalUser) (lib.attrValues config.users.users)
);
message = ''
security.enableWrappers is disabled but normal users are defined
(${
lib.concatStringsSep ", " (
lib.mapAttrsToList (n: _: n) (lib.filterAttrs (_: u: u.isNormalUser) config.users.users)
)
}). Without SUID wrappers, users cannot login. Either enable wrappers or remove all normal user accounts.
'';
}
];
}
(lib.mkIf config.security.enableWrappers {
assertions = lib.mapAttrsToList (name: opts: {
assertion = opts.setuid || opts.setgid -> opts.capabilities == "";
message = ''
The security.wrappers.${name} wrapper is not valid:
setuid/setgid and capabilities are mutually exclusive.
'';
}) wrappers;
security.wrappers =
let
mkSetuidRoot = source: {
setuid = true;
owner = "root";
group = "root";
inherit source;
security.wrappers =
let
mkSetuidRoot = source: {
setuid = true;
owner = "root";
group = "root";
inherit source;
};
in
{
# These are mount related wrappers that require the +s permission.
mount = mkSetuidRoot "${lib.getBin pkgs.util-linux}/bin/mount";
umount = mkSetuidRoot "${lib.getBin pkgs.util-linux}/bin/umount";
};
in
{
# These are mount related wrappers that require the +s permission.
mount = mkSetuidRoot "${lib.getBin pkgs.util-linux}/bin/mount";
umount = mkSetuidRoot "${lib.getBin pkgs.util-linux}/bin/umount";
# Make sure our wrapperDir exports to the PATH env variable when
# initializing the shell
environment.extraInit = ''
# Wrappers override other bin directories.
export PATH="${wrapperDir}:$PATH"
'';
security.apparmor.includes = lib.mapAttrs' (
wrapName: wrap:
lib.nameValuePair "nixos/security.wrappers/${wrapName}" ''
include "${
pkgs.apparmorRulesFromClosure { name = "security.wrappers.${wrapName}"; } [
(securityWrapper wrap.source)
]
}"
mrpx ${wrap.source},
''
) wrappers;
systemd.mounts = [
{
where = parentWrapperDir;
what = "tmpfs";
type = "tmpfs";
options = lib.concatStringsSep "," [
"nodev"
"mode=755"
"size=${config.security.wrapperDirSize}"
];
}
];
systemd.services.suid-sgid-wrappers = {
description = "Create SUID/SGID Wrappers";
wantedBy = [ "sysinit.target" ];
before = [
"sysinit.target"
"shutdown.target"
];
conflicts = [ "shutdown.target" ];
after = [ "systemd-sysusers.service" ];
unitConfig.DefaultDependencies = false;
unitConfig.RequiresMountsFor = [
"/nix/store"
"/run/wrappers"
];
serviceConfig.RestrictSUIDSGID = false;
serviceConfig.Type = "oneshot";
script = ''
chmod 755 "${parentWrapperDir}"
# We want to place the tmpdirs for the wrappers to the parent dir.
wrapperDir=$(mktemp --directory --tmpdir="${parentWrapperDir}" wrappers.XXXXXXXXXX)
chmod a+rx "$wrapperDir"
${lib.concatStringsSep "\n" mkWrappedPrograms}
if [ -L ${wrapperDir} ]; then
# Atomically replace the symlink
# See https://axialcorps.com/2013/07/03/atomically-replacing-files-and-directories/
old=$(readlink -f ${wrapperDir})
if [ -e "${wrapperDir}-tmp" ]; then
rm --force --recursive "${wrapperDir}-tmp"
fi
ln --symbolic --force --no-dereference "$wrapperDir" "${wrapperDir}-tmp"
mv --no-target-directory "${wrapperDir}-tmp" "${wrapperDir}"
rm --force --recursive "$old"
else
# For initial setup
ln --symbolic "$wrapperDir" "${wrapperDir}"
fi
'';
};
# Make sure our wrapperDir exports to the PATH env variable when
# initializing the shell
environment.extraInit = ''
# Wrappers override other bin directories.
export PATH="${wrapperDir}:$PATH"
'';
###### wrappers consistency checks
system.checks = lib.singleton (
pkgs.runCommand "ensure-all-wrappers-paths-exist"
{
preferLocalBuild = true;
}
''
# make sure we produce output
mkdir -p $out
security.apparmor.includes = lib.mapAttrs' (
wrapName: wrap:
lib.nameValuePair "nixos/security.wrappers/${wrapName}" ''
include "${
pkgs.apparmorRulesFromClosure { name = "security.wrappers.${wrapName}"; } [
(securityWrapper wrap.source)
]
}"
mrpx ${wrap.source},
''
) wrappers;
echo -n "Checking that Nix store paths of all wrapped programs exist... "
systemd.mounts = [
{
where = parentWrapperDir;
what = "tmpfs";
type = "tmpfs";
options = lib.concatStringsSep "," [
"nodev"
"mode=755"
"size=${config.security.wrapperDirSize}"
];
}
];
declare -A wrappers
${lib.concatStringsSep "\n" (lib.mapAttrsToList (n: v: "wrappers['${n}']='${v.source}'") wrappers)}
systemd.services.suid-sgid-wrappers = {
description = "Create SUID/SGID Wrappers";
wantedBy = [ "sysinit.target" ];
before = [
"sysinit.target"
"shutdown.target"
];
conflicts = [ "shutdown.target" ];
after = [ "systemd-sysusers.service" ];
unitConfig.DefaultDependencies = false;
unitConfig.RequiresMountsFor = [
"/nix/store"
"/run/wrappers"
];
serviceConfig.RestrictSUIDSGID = false;
serviceConfig.Type = "oneshot";
script = ''
chmod 755 "${parentWrapperDir}"
for name in "''${!wrappers[@]}"; do
path="''${wrappers[$name]}"
if [[ "$path" =~ /nix/store ]] && [ ! -e "$path" ]; then
test -t 1 && echo -ne '\033[1;31m'
echo "FAIL"
echo "The path $path does not exist!"
echo 'Please, check the value of `security.wrappers."'$name'".source`.'
test -t 1 && echo -ne '\033[0m'
exit 1
fi
done
# We want to place the tmpdirs for the wrappers to the parent dir.
wrapperDir=$(mktemp --directory --tmpdir="${parentWrapperDir}" wrappers.XXXXXXXXXX)
chmod a+rx "$wrapperDir"
${lib.concatStringsSep "\n" mkWrappedPrograms}
if [ -L ${wrapperDir} ]; then
# Atomically replace the symlink
# See https://axialcorps.com/2013/07/03/atomically-replacing-files-and-directories/
old=$(readlink -f ${wrapperDir})
if [ -e "${wrapperDir}-tmp" ]; then
rm --force --recursive "${wrapperDir}-tmp"
fi
ln --symbolic --force --no-dereference "$wrapperDir" "${wrapperDir}-tmp"
mv --no-target-directory "${wrapperDir}-tmp" "${wrapperDir}"
rm --force --recursive "$old"
else
# For initial setup
ln --symbolic "$wrapperDir" "${wrapperDir}"
fi
'';
};
###### wrappers consistency checks
system.checks = lib.singleton (
pkgs.runCommand "ensure-all-wrappers-paths-exist"
{
preferLocalBuild = true;
}
''
# make sure we produce output
mkdir -p $out
echo -n "Checking that Nix store paths of all wrapped programs exist... "
declare -A wrappers
${lib.concatStringsSep "\n" (lib.mapAttrsToList (n: v: "wrappers['${n}']='${v.source}'") wrappers)}
for name in "''${!wrappers[@]}"; do
path="''${wrappers[$name]}"
if [[ "$path" =~ /nix/store ]] && [ ! -e "$path" ]; then
test -t 1 && echo -ne '\033[1;31m'
echo "FAIL"
echo "The path $path does not exist!"
echo 'Please, check the value of `security.wrappers."'$name'".source`.'
test -t 1 && echo -ne '\033[0m'
exit 1
fi
done
echo "OK"
''
);
};
echo "OK"
''
);
})
];
}

View File

@@ -289,6 +289,7 @@
"node24"
]);
default = [
"node20"
"node24"
];
description = ''

View File

@@ -40,7 +40,6 @@ in
config = lib.mkIf cfg.enable {
environment.systemPackages = with pkgs; [
seatd
sdnotify-wrapper
];
users.groups.seat = lib.mkIf (cfg.group == "seat") { };
@@ -55,7 +54,7 @@ in
Type = "notify";
NotifyAccess = "all";
SyslogIdentifier = "seatd";
ExecStart = "${pkgs.sdnotify-wrapper}/bin/sdnotify-wrapper ${pkgs.seatd.bin}/bin/seatd -n 1 -u ${cfg.user} -g ${cfg.group} -l ${cfg.logLevel}";
ExecStart = "${lib.getExe' pkgs.s6 "s6-notify-socket-from-fd"} ${pkgs.seatd.bin}/bin/seatd -n 1 -u ${cfg.user} -g ${cfg.group} -l ${cfg.logLevel}";
RestartSec = 1;
Restart = "always";
};

View File

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

View File

@@ -273,7 +273,6 @@ in
RestrictAddressFamilies = [
"AF_INET"
"AF_INET6"
"AF_UNIX"
];
RestrictNamespaces = true;
RestrictRealtime = true;

View File

@@ -207,10 +207,6 @@ in
AmbientCapabilities = "cap_net_bind_service";
};
};
services.fastnetmon-advanced.hostgroups = {
global = { };
};
})
(lib.mkIf (cfg.enable && cfg.enableAdvancedTrafficPersistence) {

View File

@@ -62,9 +62,9 @@ in
description = ''
Admin password for authenticating privileged requests.
Authenticated requests always expect the username `admin` as per specification.
When unset, all authenticated endpoints will reject requests with HTTP 401.
When not set, authenticated endpoints will be unavailable.
Authenticated requests always expect the username `admin` as per specification.
Should be set via {option}`environmentFiles` rather than directly.
'';
@@ -90,17 +90,20 @@ in
description = ''
Maximum blob size that can be served.
This value cannot be set higher than the system's total memory.
Blobs that exceed this limit will return HTTP 413.
The minimum value is 512kb and the maximum is the system's total memory.
'';
};
PORXIE_BLOB_CACHE_HEADER = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = null;
description = ''
The Cache-Control header value to send alongside blob responses.
The `Cache-Control` header value to send alongside blob responses.
This does not affect internal cache lifetimes, only how downstream clients such as CDNs
and browsers are instructed to cache responses.
This does not affect internal cache lifetimes, only how downstream clients such as
CDNs and browsers are instructed to cache responses. Intermediary caches may need
to be cleared manually for changes to take effect quickly.
'';
};
PORXIE_BLOB_PROCESSING_TIMEOUT = lib.mkOption {
@@ -113,12 +116,39 @@ in
default = null;
description = "Maximum duration before blob fetch requests are timed out.";
};
PORXIE_BLOB_HTTP_CONNECT_TIMEOUT = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = null;
description = ''
Maximum duration before an attempted connection to a blob upstream is aborted.
This value should be lower than {option}`settings.PORXIE_BLOB_HTTP_TIMEOUT`.
'';
};
# Identity.
PORXIE_IDENTITY_PLC_URL = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = null;
description = "URL of the PLC instance used for `did:plc` lookups.";
description = ''
URL of the PLC instance used for `did:plc` lookups.
Can typically be left as default unless using a custom or local development setup.
'';
};
PORXIE_IDENTITY_HTTP_TIMEOUT = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = null;
description = "Maximum duration before identity resolution requests are timed out.";
};
PORXIE_IDENTITY_HTTP_CONNECT_TIMEOUT = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = null;
description = ''
Maximum duration before a connection attempt to an identity upstream is aborted.
This value should be lower than {option}`settings.PORXIE_IDENTITY_HTTP_TIMEOUT`.
'';
};
# Cache.
@@ -128,7 +158,8 @@ in
description = ''
Total memory allocation for the internal cache.
Blobs are cached using an LFU policy. The most frequently requested blobs are kept longest when the cache reaches maximum size.
Blobs are cached using an LFU policy. The most frequently requested blobs are kept
longest when the cache approaches its limit.
For production deployments, a CDN or caching layer in front of this server is
recommended for lower latency and better global availability.
@@ -164,7 +195,7 @@ in
description = ''
Policy service URL that DID+CID pairs will be checked against.
Requests are sent via XRPC to `<url>/xrpc/dev.blooym.porxie.getBlobPolicy`.
Requests are sent via XRPC to `<url>/xrpc/dev.blooym.porxie.getBlobPolicy?did=<did>&cid=<cid>`.
'';
};
PORXIE_POLICY_REQUEST_HEADERS = lib.mkOption {
@@ -172,11 +203,10 @@ in
default = null;
apply = v: if v != null then lib.concatStringsSep "|" v else null;
description = ''
Headers sent alongside requests to the policy service.
Headers sent alongside all requests to the policy service.
Each header must be in the format `Name: value`.
As pipes are used as a delimiter, they cannot be contained in headers.
As pipes are used as a delimiter, they cannot be contained in header values.
Should be set via {option}`environmentFiles` for sensitive values such as API keys.
'';
@@ -186,10 +216,24 @@ in
default = null;
apply = v: if v != null then lib.boolToString v else null;
description = ''
Allow requests to proceed even if the policy service is unavailable.
Allow requests to proceed if the policy service is unavailable.
Warning: enabling this means restricted blobs may be served when the policy service
is unavailable.
Warning: enabling this means restricted blobs may be served when the policy
service is unreachable.
'';
};
PORXIE_POLICY_HTTP_TIMEOUT = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = null;
description = "Maximum duration before policy service requests are timed out.";
};
PORXIE_POLICY_HTTP_CONNECT_TIMEOUT = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = null;
description = ''
Maximum duration before an attempted connection to the policy service is aborted.
This value should be lower than {option}`settings.PORXIE_POLICY_HTTP_TIMEOUT`.
'';
};
};

View File

@@ -50,10 +50,6 @@ in
};
ui = {
enable = lib.mkEnableOption "Nominatim UI" // {
default = true;
};
package = lib.mkPackageOption pkgs "nominatim-ui" { };
config = lib.mkOption {
@@ -281,7 +277,7 @@ in
services.nginx = {
enable = true;
appendHttpConfig = lib.mkIf cfg.ui.enable ''
appendHttpConfig = ''
map $args $format {
default default;
~(^|&)format=html(&|$) html;
@@ -308,19 +304,19 @@ in
enableACME = lib.mkDefault true;
locations = {
"= /" = {
extraConfig = lib.mkIf cfg.ui.enable ''
extraConfig = ''
return 301 $scheme://$http_host/ui/search.html;
'';
};
"/" = {
proxyPass = "http://nominatim";
extraConfig = lib.mkIf cfg.ui.enable ''
extraConfig = ''
if ($forward_to_ui) {
rewrite ^(/[^/.]*) /ui$1.html redirect;
}
'';
};
"/ui/" = lib.mkIf cfg.ui.enable {
"/ui/" = {
alias = "${uiPackage}/";
};
};

View File

@@ -380,8 +380,6 @@ in
MACHINE_LEARNING_WORKERS = "1";
MACHINE_LEARNING_WORKER_TIMEOUT = "120";
MACHINE_LEARNING_CACHE_FOLDER = "/var/cache/immich";
# TODO: drop when insightface no longer unconditionally imports matplotlib
MPLCONFIGDIR = "/var/cache/immich";
XDG_CACHE_HOME = "/var/cache/immich";
IMMICH_HOST = "localhost";
IMMICH_PORT = "3003";

View File

@@ -607,16 +607,14 @@ in
boot.isNspawnContainer = true;
networking.hostName = mkDefault name;
networking.useDHCP = false;
networking.interfaces = lib.mkIf config.privateNetwork (
lib.mkMerge [
(lib.mkIf (config.localAddress != null) {
eth0.ipv4.addresses = [ (ipv4FromString config.localAddress) ];
})
(lib.mkIf (config.localAddress6 != null) {
eth0.ipv6.addresses = [ (lib.network.ipv6.fromString config.localAddress6) ];
})
]
);
networking.interfaces = lib.mkIf config.privateNetwork {
eth0.ipv4.addresses = lib.optional (config.localAddress != null) (
ipv4FromString config.localAddress
);
eth0.ipv6.addresses = lib.optional (config.localAddress6 != null) (
lib.network.ipv6.fromString config.localAddress6
);
};
assertions = [
{
assertion =

View File

@@ -30,8 +30,7 @@ let
version = fileContents ../.version;
versionSuffix =
(if stableBranch then "." else "beta")
+ "${toString (nixpkgs.revCount - 1004291)}.${nixpkgs.shortRev}";
(if stableBranch then "." else "pre") + "${toString nixpkgs.revCount}.${nixpkgs.shortRev}";
# Run the tests for each platform. You can run a test by doing
# e.g. nix-build release.nix -A tests.login.x86_64-linux,

View File

@@ -62,7 +62,7 @@
bird.wait_for_unit("bird.service")
fnm.wait_until_succeeds('journalctl -eu fastnetmon.service | grep "BGP daemon restarted correctly"')
fnm.wait_until_succeeds('journalctl -eu gobgp.service | grep "Peer Up"')
fnm.wait_until_succeeds("journalctl -eu gobgp.service | grep BGP_FSM_OPENCONFIRM")
bird.wait_until_succeeds("birdc show protocol fnm | grep Estab")
fnm.wait_until_succeeds('journalctl -eu fastnetmon.service | grep "API server listening"')
fnm.succeed("fcli set blackhole 172.23.42.123")

View File

@@ -58,20 +58,11 @@ import ../make-test-python.nix (
UserNoticesEnabled = false;
};
};
package = pkgs.mattermost.override {
removeFreeBadge = true;
removeUserLimit = true;
};
} mattermostConfig;
# Upgrade to the latest Mattermost.
specialisation.latest.configuration = {
services.mattermost.package = lib.mkForce (
pkgs.mattermostLatest.override {
removeFreeBadge = true;
removeUserLimit = true;
}
);
services.mattermost.package = lib.mkForce pkgs.mattermostLatest;
system.stateVersion = lib.mkVMOverride (lib.versions.majorMinor lib.version);
};
}

View File

@@ -11,7 +11,6 @@ in
{ ... }:
{
boot.supportedFilesystems = [ "zfs" ];
boot.zfs.forceImportRoot = false;
networking.hostId = "12345678";
@@ -43,10 +42,10 @@ in
machine.succeed("truncate -s 64M /testpool.img")
machine.succeed("zpool create -O canmount=off '${pool}' /testpool.img")
machine.succeed("zfs create -o canmount=off -p '${homes}'")
machine.succeed("echo ${userPassword} | zfs create -o encryption=on -o keyformat=passphrase '${homes}/alice'")
machine.succeed("zfs unmount '${homes}/alice' && zfs unload-key '${homes}/alice'")
machine.succeed("echo ${mismatchPass} | zfs create -o encryption=on -o keyformat=passphrase '${homes}/bob'")
machine.succeed("zfs unmount '${homes}/bob' && zfs unload-key '${homes}/bob'")
machine.succeed("echo ${userPassword} | zfs create -o canmount=noauto -o encryption=on -o keyformat=passphrase '${homes}/alice'")
machine.succeed("zfs unload-key '${homes}/alice'")
machine.succeed("echo ${mismatchPass} | zfs create -o canmount=noauto -o encryption=on -o keyformat=passphrase '${homes}/bob'")
machine.succeed("zfs unload-key '${homes}/bob'")
with subtest("Switch to tty2"):
machine.fail("pgrep -f 'agetty.*tty2'")

View File

@@ -4,8 +4,6 @@
nodes = {
server = {
security.pam.services.vsftpd.enable = true;
services.vsftpd = {
enable = true;
userlistDeny = false;

View File

@@ -21,14 +21,14 @@ let
url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2025.3.4.7/android-studio-panda4-patch1-linux.tar.gz";
};
betaVersion = {
version = "2026.1.1.6"; # "Android Studio Quail 1 | 2026.1.1 RC 1"
sha256Hash = "sha256-b6PVgBTTjIgm6BI171RL7T6GJD9ApnTWGOTqvt703PQ=";
url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2026.1.1.6/android-studio-quail1-rc1-linux.tar.gz";
version = "2025.3.4.5"; # "Android Studio Panda 4 | 2025.3.4 RC 1"
sha256Hash = "sha256-NiNq1j+rzPU4KsLKYymfi5/Vx2Bn3hK8I3OVIUFloX0=";
url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2025.3.4.5/android-studio-panda4-rc1-linux.tar.gz";
};
latestVersion = {
version = "2026.1.2.2"; # "Android Studio Quail 2 | 2026.1.2 Canary 2"
sha256Hash = "sha256-+FmW72k48GF71yzCdpIAl//qi6w26Qg8gZUW5/Nuh58=";
url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2026.1.2.2/android-studio-quail2-canary2-linux.tar.gz";
version = "2026.1.1.5"; # "Android Studio Quail 1 | 2026.1.1 Canary 5"
sha256Hash = "sha256-k4rM0MyTh0wnpsK8m6Hs1nSdwYpqUiQ+z7oiO6hn9YQ=";
url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2026.1.1.5/android-studio-quail1-canary5-linux.tar.gz";
};
in
{

View File

@@ -1776,6 +1776,20 @@ final: prev: {
meta.hydraPlatforms = [ ];
};
blink-calc = buildVimPlugin {
pname = "blink-calc";
version = "0-unstable-2025-10-06";
src = fetchFromGitHub {
owner = "joelazar";
repo = "blink-calc";
rev = "199e8a5fe356d553d33a3511ca28e625dac5c470";
hash = "sha256-3w+vQf3N6+umBUF+PkCbPXggn53rNekxHgR2y+ICwHw=";
};
meta.homepage = "https://github.com/joelazar/blink-calc/";
meta.license = unfree;
meta.hydraPlatforms = [ ];
};
blink-cmp-avante = buildVimPlugin {
pname = "blink-cmp-avante";
version = "0.1.0-unstable-2025-07-24";
@@ -8334,12 +8348,12 @@ final: prev: {
kulala-nvim = buildVimPlugin {
pname = "kulala.nvim";
version = "5.3.4";
version = "6.1.0";
src = fetchFromGitHub {
owner = "mistweaverco";
repo = "kulala.nvim";
tag = "v5.3.4";
hash = "sha256-yA7ooPASC59FuwzB2xZyG6LsXpHHQ+fqtE/4odEjGx4=";
tag = "v6.1.0";
hash = "sha256-0wr4MdsKnS6qcmmhhRgPlSEhlyY64zQ+fArbjvdusOE=";
fetchSubmodules = true;
};
meta.homepage = "https://github.com/mistweaverco/kulala.nvim/";

File diff suppressed because it is too large Load Diff

View File

@@ -125,6 +125,7 @@ https://github.com/LunarVim/bigfile.nvim/,,
https://github.com/openembedded/bitbake/,,
https://github.com/FabijanZulj/blame.nvim/,,
https://github.com/z4p5a9/blamer.nvim/,,
https://github.com/joelazar/blink-calc/,,
https://github.com/Kaiser-Yang/blink-cmp-avante/,,
https://github.com/disrupted/blink-cmp-conventional-commits/,,
https://github.com/giuxtaposition/blink-cmp-copilot/,,

View File

@@ -4222,8 +4222,8 @@ let
mktplcRef = {
publisher = "shd101wyy";
name = "markdown-preview-enhanced";
version = "0.8.26";
hash = "sha256-OZMUHqc8l8BrpLONlOIeImnsJVa0TLN1R51ulQ5n8h4=";
version = "0.8.27";
hash = "sha256-v4CZul1uuNlMrIgfml9EjUy0I626GkBArNH7F+5Z/dA=";
};
meta = {
description = "Provides a live preview of markdown using either markdown-it or pandoc";

View File

@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "mednafen-pce-fast";
version = "0-unstable-2026-05-16";
version = "0-unstable-2026-05-22";
src = fetchFromGitHub {
owner = "libretro";
repo = "beetle-pce-fast-libretro";
rev = "82cbe149648969fa55d60b955d455f15fd125b1d";
hash = "sha256-odOMCxLl2fCBdalnW/ykOeVmB+G8N/lGbZqCTr2mdow=";
rev = "b4de121a733a57ce825a7fd7543206ca96af8a18";
hash = "sha256-0V6w9F2T2ROkPvH6K5mKltblogn9mAtvb/JGrWMk4CQ=";
};
makefile = "Makefile";

View File

@@ -0,0 +1,84 @@
{
lib,
stdenv,
fetchFromGitHub,
python3Packages,
libspnav,
jq,
}:
let
self = {
octoprint = stdenv.mkDerivation {
pname = "Cura-OctoPrintPlugin";
version = "3.5.18";
src = fetchFromGitHub {
owner = "fieldOfView";
repo = "Cura-OctoPrintPlugin";
rev = "7bd73946fbf22d18337dc900a81a011ece26bee0";
sha256 = "057b2f5f49p96lkh2wsr9w6yh2003x4a85irqsgbzp6igmk8imdn";
};
propagatedBuildInputs = with python3Packages; [
netifaces
];
installPhase = ''
mkdir -p $out/lib/cura/plugins/OctoPrintPlugin
cp -rv . $out/lib/cura/plugins/OctoPrintPlugin/
'';
meta = {
description = "Enables printing directly to OctoPrint and monitoring the process";
homepage = "https://github.com/fieldOfView/Cura-OctoPrintPlugin";
license = lib.licenses.agpl3Plus;
maintainers = [ ];
};
};
rawmouse = stdenv.mkDerivation rec {
pname = "RawMouse";
version = "1.1.0";
src = fetchFromGitHub {
owner = "smartavionics";
repo = "RawMouse";
rev = version;
sha256 = "0hvi7qwd4xfnqnhbj9dgfjmvv9df7s42asf3fdfxv43n6nx74scw";
};
nativeBuildInputs = [ jq ];
propagatedBuildInputs = with python3Packages; [
hidapi
];
buildPhase = ''
jq 'del(.devices) | .libspnav="${libspnav}/lib/libspnav.so"' \
<RawMouse/config.json >RawMouse/config.json.new
mv RawMouse/config.json.new RawMouse/config.json
# remove prebuilt binaries
rm -r RawMouse/hidapi
'';
installPhase = ''
mkdir -p $out/lib/cura/plugins/RawMouse
cp -rv . $out/lib/cura/plugins/RawMouse/
'';
meta = {
description = "Cura plugin for HID mice such as 3Dconnexion spacemouse";
homepage = "https://github.com/smartavionics/RawMouse";
license = lib.licenses.agpl3Plus;
maintainers = [ ];
};
};
};
in
self

View File

@@ -0,0 +1,49 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
libarcus,
stb,
protobuf,
fetchpatch,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "curaengine";
version = "4.13.1";
src = fetchFromGitHub {
owner = "Ultimaker";
repo = "CuraEngine";
rev = finalAttrs.version;
sha256 = "sha256-dx0Q6cuA66lG4nwR7quW5Tvs9sdxjdV4gtpxXirI4nY=";
};
nativeBuildInputs = [ cmake ];
buildInputs = [
libarcus
stb
protobuf
];
cmakeFlags = [ "-DCURA_ENGINE_VERSION=${finalAttrs.version}" ];
# TODO already fixed in master, remove in next release
patches = [
(fetchpatch {
url = "https://github.com/Ultimaker/CuraEngine/commit/de60e86a6ea11cb7d121471b5dd192e5deac0f3d.patch";
hash = "sha256-/gT9yErIDDYAXvZ6vX5TGlwljy31K563+sqkm1UGljQ=";
includes = [ "src/utils/math.h" ];
})
];
meta = {
description = "Powerful, fast and robust engine for processing 3D models into 3D printing instruction";
homepage = "https://github.com/Ultimaker/CuraEngine";
license = lib.licenses.agpl3Only;
platforms = lib.platforms.linux;
maintainers = [ ];
mainProgram = "CuraEngine";
};
})

View File

@@ -1,10 +1,10 @@
{
"chromium": {
"version": "148.0.7778.215",
"version": "148.0.7778.178",
"chromedriver": {
"version": "148.0.7778.216",
"hash_darwin": "sha256-gsK7Q3rwfQQ0iE5e/st/3gGtU+D8dGsTycffpEejmhw=",
"hash_darwin_aarch64": "sha256-zHASbRPnYf2q1qq8FsKnYrLwPjzoGk0tzLxB9SdTXFw="
"version": "148.0.7778.179",
"hash_darwin": "sha256-jDw+ON0X8rePW1HLBZ5FVKMibImBuW/Tp0EDZ/UjJlw=",
"hash_darwin_aarch64": "sha256-hNaaKMVy8sKNU444Uf78YI3ayUATrTBAr6/7Z3jewv0="
},
"deps": {
"depot_tools": {
@@ -21,8 +21,8 @@
"DEPS": {
"src": {
"url": "https://chromium.googlesource.com/chromium/src.git",
"rev": "7c855c70efe3f6ade6663c1520913fa7f63a0b2b",
"hash": "sha256-uDVYgSjxQ+xw8DHVd5UNkqnUrJ6P5ZWxL2tZToBhgQg=",
"rev": "d096af1c9e98c45c3596e59620622b1a049bfecb",
"hash": "sha256-XRalekzeALnDh9KiGqhYdhXvkGkjO3TOIZeqwpPLO+U=",
"recompress": true
},
"src/third_party/clang-format/script": {
@@ -92,8 +92,8 @@
},
"src/third_party/angle": {
"url": "https://chromium.googlesource.com/angle/angle.git",
"rev": "a101e2d1db6da927325273566fe8f5404fa3a9bd",
"hash": "sha256-uIqodvHxEY9xNse2IHNns2Mz9zLAUZSSIN7pAXB8cPs="
"rev": "50fd896fb21cca91f325812d01d1e971593efc73",
"hash": "sha256-HcfKm7UQmg3wMDOytmaYzm7Z7gRdOrRoqAKaE0ZdI4E="
},
"src/third_party/angle/third_party/glmark2/src": {
"url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2",
@@ -132,8 +132,8 @@
},
"src/third_party/dawn": {
"url": "https://dawn.googlesource.com/dawn.git",
"rev": "78a9030d63048d832c4b822839bffe38ad4f20e5",
"hash": "sha256-ZknkLN64TYAN5j9WsgtKlRBrAc3iCM084zpc8Zui8Ts="
"rev": "19696dd088b8ed5804e2f02a8f83f5afdb3e99e3",
"hash": "sha256-ihnVPCk9412UzCmoABWVUhiGaIdIYxiYMkk43KDqpg8="
},
"src/third_party/dawn/third_party/glfw3/src": {
"url": "https://chromium.googlesource.com/external/github.com/glfw/glfw",
@@ -267,8 +267,8 @@
},
"src/third_party/devtools-frontend/src": {
"url": "https://chromium.googlesource.com/devtools/devtools-frontend",
"rev": "1fb83ff123c44ab59a480056c8c1ba3d33c2caf0",
"hash": "sha256-S6agM7HMZ2g2W6e9tYdLSXr0Lc6zeQF9hAYLIeImAYQ="
"rev": "6efd6eb1d85fd67fdcc2385c54fa56c524bec3f7",
"hash": "sha256-1pr3+RK519m+wtcacJB3PcDTL+qSHlOn1ctxpoLzTf8="
},
"src/third_party/dom_distiller_js/dist": {
"url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git",
@@ -332,8 +332,8 @@
},
"src/third_party/freetype/src": {
"url": "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git",
"rev": "6d9fc45fc4bca8aef0b8f65592520673638c3334",
"hash": "sha256-A21ONLz8HxoBkOL/jHfs5YwePmOnFyNdlNYSJa9wers="
"rev": "99b479dc34728936b006679a31e12b8cf432fc55",
"hash": "sha256-H5RzBFYWIp/QYKyeBM2wfuX7FvXHPbhCAp7qne5Zvhw="
},
"src/third_party/fxdiv/src": {
"url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FXdiv.git",
@@ -342,8 +342,8 @@
},
"src/third_party/harfbuzz/src": {
"url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git",
"rev": "67bb413f586f36ba44d740319cb7a28b3d283ea6",
"hash": "sha256-WCPEkbiiU8dENM+ik0KokW9Uxmz0xlsRFVVPPOEOZXw="
"rev": "f027b8e9039f73bf803eae684fee2eb2d30e4180",
"hash": "sha256-HWb3QbPl+RE2oI/Jwv5BjKwv9UnJ8VcJvk+uGy9cAqM="
},
"src/third_party/ink/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/ink.git",
@@ -432,8 +432,8 @@
},
"src/third_party/libaom/source/libaom": {
"url": "https://aomedia.googlesource.com/aom.git",
"rev": "343cee0a952f8c7d329e59ff3ac2c8bdbe70ec6a",
"hash": "sha256-H8Eu3BiUIiZcyReGDyFq9UvjdMJOX00ERjru8+I0zL8="
"rev": "b63f30b6d30028a3d7d9c5223def8f3ad97dcc4c",
"hash": "sha256-LaBEcVcSB8WB9ZNRgPSiGaKdQL5f3wll2sPb9OhN5SE="
},
"src/third_party/crabbyavif/src": {
"url": "https://chromium.googlesource.com/external/github.com/webmproject/CrabbyAvif.git",
@@ -612,8 +612,8 @@
},
"src/third_party/pdfium": {
"url": "https://pdfium.googlesource.com/pdfium.git",
"rev": "72ea487e4399c44c3a53a48b104f9612ca772008",
"hash": "sha256-0VgmDPyF5k81nBXdo88CcIIbz6XRhaiADnG8gwDGZZk="
"rev": "a78c62d93a8f514ea2cd98a70bd1d21226be9d93",
"hash": "sha256-qd3Oa/JFzoI5hKDY2/OQAzdr2z9srUj0H6oKz0R516U="
},
"src/third_party/perfetto": {
"url": "https://chromium.googlesource.com/external/github.com/google/perfetto.git",
@@ -662,8 +662,8 @@
},
"src/third_party/skia": {
"url": "https://skia.googlesource.com/skia.git",
"rev": "03c3234e64f9fbbbcf6a7b9c79e94059df49dbfe",
"hash": "sha256-e0MSCbqv4u4995nowzipKorkn6mPpO7tf8+ygj3/nFY="
"rev": "a2888b27a98e4ff30085d4d2dba8a1a99baf6dfb",
"hash": "sha256-eOjFuMmXr9YtZ0e4yDB8JMjTrNWEg5OlTkAMGuHZIWE="
},
"src/third_party/smhasher/src": {
"url": "https://chromium.googlesource.com/external/smhasher.git",
@@ -797,8 +797,8 @@
},
"src/third_party/webrtc": {
"url": "https://webrtc.googlesource.com/src.git",
"rev": "e3ee86921c57b9f8921045e77f098604803cb66c",
"hash": "sha256-n39HENOXmatsZLF6jdYRsb+wl2cM0i6ngT4Zbyu5ayE="
"rev": "9a7f650bcd14f241d20f88f4e1ea3b7300de72ac",
"hash": "sha256-k5cHE4XURJQrPURmXk4MMNV5k8+ryKfjmsVTzARRro4="
},
"src/third_party/wuffs/src": {
"url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git",
@@ -822,13 +822,13 @@
},
"src/v8": {
"url": "https://chromium.googlesource.com/v8/v8.git",
"rev": "5e24a1fd6ffb840b93ee90a800897fcb4d60eeab",
"hash": "sha256-JcBGaXhqNRIA4NPPV4eANVM93wsQ9QxSLO/Ecz3wklU="
"rev": "ad6e4525c418a92147c8247ef9d144ce4c242a38",
"hash": "sha256-+cQdsWTgIohd3yOCsNCprSr4Ctes77fWGdmPxN2tQlM="
}
}
},
"ungoogled-chromium": {
"version": "148.0.7778.215",
"version": "148.0.7778.178",
"deps": {
"depot_tools": {
"rev": "41c40cfaec7ee3bf0423c59925d8b23982a601f1",
@@ -840,16 +840,16 @@
"hash": "sha256-BTPD8WM1pVAMkFDlHekMdWFGyf63KdhKkKwsqikqoBQ="
},
"ungoogled-patches": {
"rev": "148.0.7778.215-1",
"hash": "sha256-Rp+PuyOQ26Cqiu+8sNlJkjp/3bO968NYNX1AgHOyYOA="
"rev": "148.0.7778.178-1",
"hash": "sha256-s4zTU4rQUcrfpg7CWFdvEn3JYNqhHGsAFcYmQGS64fc="
},
"npmHash": "sha256-JuVcY8iFRDWcPcP4Pg+qm5rnTXkiVfNsqSkXbDWqsE8="
},
"DEPS": {
"src": {
"url": "https://chromium.googlesource.com/chromium/src.git",
"rev": "7c855c70efe3f6ade6663c1520913fa7f63a0b2b",
"hash": "sha256-uDVYgSjxQ+xw8DHVd5UNkqnUrJ6P5ZWxL2tZToBhgQg=",
"rev": "d096af1c9e98c45c3596e59620622b1a049bfecb",
"hash": "sha256-XRalekzeALnDh9KiGqhYdhXvkGkjO3TOIZeqwpPLO+U=",
"recompress": true
},
"src/third_party/clang-format/script": {
@@ -919,8 +919,8 @@
},
"src/third_party/angle": {
"url": "https://chromium.googlesource.com/angle/angle.git",
"rev": "a101e2d1db6da927325273566fe8f5404fa3a9bd",
"hash": "sha256-uIqodvHxEY9xNse2IHNns2Mz9zLAUZSSIN7pAXB8cPs="
"rev": "50fd896fb21cca91f325812d01d1e971593efc73",
"hash": "sha256-HcfKm7UQmg3wMDOytmaYzm7Z7gRdOrRoqAKaE0ZdI4E="
},
"src/third_party/angle/third_party/glmark2/src": {
"url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2",
@@ -959,8 +959,8 @@
},
"src/third_party/dawn": {
"url": "https://dawn.googlesource.com/dawn.git",
"rev": "78a9030d63048d832c4b822839bffe38ad4f20e5",
"hash": "sha256-ZknkLN64TYAN5j9WsgtKlRBrAc3iCM084zpc8Zui8Ts="
"rev": "19696dd088b8ed5804e2f02a8f83f5afdb3e99e3",
"hash": "sha256-ihnVPCk9412UzCmoABWVUhiGaIdIYxiYMkk43KDqpg8="
},
"src/third_party/dawn/third_party/glfw3/src": {
"url": "https://chromium.googlesource.com/external/github.com/glfw/glfw",
@@ -1094,8 +1094,8 @@
},
"src/third_party/devtools-frontend/src": {
"url": "https://chromium.googlesource.com/devtools/devtools-frontend",
"rev": "1fb83ff123c44ab59a480056c8c1ba3d33c2caf0",
"hash": "sha256-S6agM7HMZ2g2W6e9tYdLSXr0Lc6zeQF9hAYLIeImAYQ="
"rev": "6efd6eb1d85fd67fdcc2385c54fa56c524bec3f7",
"hash": "sha256-1pr3+RK519m+wtcacJB3PcDTL+qSHlOn1ctxpoLzTf8="
},
"src/third_party/dom_distiller_js/dist": {
"url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git",
@@ -1159,8 +1159,8 @@
},
"src/third_party/freetype/src": {
"url": "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git",
"rev": "6d9fc45fc4bca8aef0b8f65592520673638c3334",
"hash": "sha256-A21ONLz8HxoBkOL/jHfs5YwePmOnFyNdlNYSJa9wers="
"rev": "99b479dc34728936b006679a31e12b8cf432fc55",
"hash": "sha256-H5RzBFYWIp/QYKyeBM2wfuX7FvXHPbhCAp7qne5Zvhw="
},
"src/third_party/fxdiv/src": {
"url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FXdiv.git",
@@ -1169,8 +1169,8 @@
},
"src/third_party/harfbuzz/src": {
"url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git",
"rev": "67bb413f586f36ba44d740319cb7a28b3d283ea6",
"hash": "sha256-WCPEkbiiU8dENM+ik0KokW9Uxmz0xlsRFVVPPOEOZXw="
"rev": "f027b8e9039f73bf803eae684fee2eb2d30e4180",
"hash": "sha256-HWb3QbPl+RE2oI/Jwv5BjKwv9UnJ8VcJvk+uGy9cAqM="
},
"src/third_party/ink/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/ink.git",
@@ -1259,8 +1259,8 @@
},
"src/third_party/libaom/source/libaom": {
"url": "https://aomedia.googlesource.com/aom.git",
"rev": "343cee0a952f8c7d329e59ff3ac2c8bdbe70ec6a",
"hash": "sha256-H8Eu3BiUIiZcyReGDyFq9UvjdMJOX00ERjru8+I0zL8="
"rev": "b63f30b6d30028a3d7d9c5223def8f3ad97dcc4c",
"hash": "sha256-LaBEcVcSB8WB9ZNRgPSiGaKdQL5f3wll2sPb9OhN5SE="
},
"src/third_party/crabbyavif/src": {
"url": "https://chromium.googlesource.com/external/github.com/webmproject/CrabbyAvif.git",
@@ -1439,8 +1439,8 @@
},
"src/third_party/pdfium": {
"url": "https://pdfium.googlesource.com/pdfium.git",
"rev": "72ea487e4399c44c3a53a48b104f9612ca772008",
"hash": "sha256-0VgmDPyF5k81nBXdo88CcIIbz6XRhaiADnG8gwDGZZk="
"rev": "a78c62d93a8f514ea2cd98a70bd1d21226be9d93",
"hash": "sha256-qd3Oa/JFzoI5hKDY2/OQAzdr2z9srUj0H6oKz0R516U="
},
"src/third_party/perfetto": {
"url": "https://chromium.googlesource.com/external/github.com/google/perfetto.git",
@@ -1489,8 +1489,8 @@
},
"src/third_party/skia": {
"url": "https://skia.googlesource.com/skia.git",
"rev": "03c3234e64f9fbbbcf6a7b9c79e94059df49dbfe",
"hash": "sha256-e0MSCbqv4u4995nowzipKorkn6mPpO7tf8+ygj3/nFY="
"rev": "a2888b27a98e4ff30085d4d2dba8a1a99baf6dfb",
"hash": "sha256-eOjFuMmXr9YtZ0e4yDB8JMjTrNWEg5OlTkAMGuHZIWE="
},
"src/third_party/smhasher/src": {
"url": "https://chromium.googlesource.com/external/smhasher.git",
@@ -1624,8 +1624,8 @@
},
"src/third_party/webrtc": {
"url": "https://webrtc.googlesource.com/src.git",
"rev": "e3ee86921c57b9f8921045e77f098604803cb66c",
"hash": "sha256-n39HENOXmatsZLF6jdYRsb+wl2cM0i6ngT4Zbyu5ayE="
"rev": "9a7f650bcd14f241d20f88f4e1ea3b7300de72ac",
"hash": "sha256-k5cHE4XURJQrPURmXk4MMNV5k8+ryKfjmsVTzARRro4="
},
"src/third_party/wuffs/src": {
"url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git",
@@ -1649,8 +1649,8 @@
},
"src/v8": {
"url": "https://chromium.googlesource.com/v8/v8.git",
"rev": "5e24a1fd6ffb840b93ee90a800897fcb4d60eeab",
"hash": "sha256-JcBGaXhqNRIA4NPPV4eANVM93wsQ9QxSLO/Ecz3wklU="
"rev": "ad6e4525c418a92147c8247ef9d144ce4c242a38",
"hash": "sha256-+cQdsWTgIohd3yOCsNCprSr4Ctes77fWGdmPxN2tQlM="
}
}
}

View File

@@ -9,10 +9,10 @@
buildMozillaMach rec {
pname = "firefox";
version = "151.0.2";
version = "151.0.1";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "87308953ed354a2799a9a45be40033bf9ff8d80fa220f034aacfbd6e754716901d4164c37fa56032c659b259116603e0ba2b566c1f3651ab9cc0835d502cd739";
sha512 = "8492a1bb956b38373153938bd18b0e18e3a4ad0d2abc2017b45e02bc2768c8f468d5c06329a32485a03a67bb9c22102e6abff1e73080c77764735d430dc77277";
};
meta = {

View File

@@ -166,34 +166,36 @@ let
) (lib.optionals usesNixExtensions nixExtensions);
enterprisePolicies = {
policies =
lib.optionalAttrs usesNixExtensions {
ExtensionSettings = {
"*" = {
blocked_install_message = "You can't have manual extension mixed with nix extensions";
installation_mode = "blocked";
policies = {
DisableAppUpdate = true;
}
// lib.optionalAttrs usesNixExtensions {
ExtensionSettings = {
"*" = {
blocked_install_message = "You can't have manual extension mixed with nix extensions";
installation_mode = "blocked";
};
}
// lib.foldr (
e: ret:
ret
// {
"${e.extid}" = {
installation_mode = "allowed";
};
}
// lib.foldr (
e: ret:
ret
// {
"${e.extid}" = {
installation_mode = "allowed";
};
}
) { } extensions;
) { } extensions;
Extensions = {
Install = lib.foldr (e: ret: ret ++ [ "${e.outPath}/${e.extid}.xpi" ]) [ ] extensions;
};
}
// lib.optionalAttrs smartcardSupport {
SecurityDevices = {
"OpenSC PKCS#11 Module" = "opensc-pkcs11.so";
};
}
// extraPolicies;
Extensions = {
Install = lib.foldr (e: ret: ret ++ [ "${e.outPath}/${e.extid}.xpi" ]) [ ] extensions;
};
}
// lib.optionalAttrs smartcardSupport {
SecurityDevices = {
"OpenSC PKCS#11 Module" = "opensc-pkcs11.so";
};
}
// extraPolicies;
};
mozillaCfg = ''
@@ -412,9 +414,6 @@ let
ln -sfT "$target" "$out/$l"
done
# Disable update checks
touch $out/${libDir}/is-packaged-app
cd "$out"
''

View File

@@ -45,11 +45,11 @@
"vendorHash": "sha256-5IfYhOEhXRpdL7G3Op9a0Ep14el2gwcVmRMkGB7oWH4="
},
"aliyun_alicloud": {
"hash": "sha256-IM7vrhWZG5aAm9qEdEthQJpLj/NPEPIVNzX3KFR8do0=",
"hash": "sha256-YmfHL9uCtbxKE1wdacn9gf4Jo85/ivCkxOtMuBQin0I=",
"homepage": "https://registry.terraform.io/providers/aliyun/alicloud",
"owner": "aliyun",
"repo": "terraform-provider-alicloud",
"rev": "v1.278.0",
"rev": "v1.279.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-lBD9ifRpUwg45V7zZG3grHvndG0V42oiX68zgcM7t74="
},
@@ -409,13 +409,13 @@
"vendorHash": null
},
"fastly_fastly": {
"hash": "sha256-deph1BQ/aUgTOf4Bgaxpac4V2fmy4dSdbBRa/qvvKdk=",
"hash": "sha256-dWT0E6eugOD79Cn51P0KQbwwY1seSL1NvZVzjWxtGNs=",
"homepage": "https://registry.terraform.io/providers/fastly/fastly",
"owner": "fastly",
"repo": "terraform-provider-fastly",
"rev": "v9.1.1",
"rev": "v9.2.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-lxBvfkuvf1eoprkCuPtYqOw6P7sTzS70VXTYGToazf8="
"vendorHash": "sha256-+5eeZdU5iS/StHuo/7KRkdM+DW4IDvJ52BDKNZI7lAc="
},
"flexibleenginecloud_flexibleengine": {
"hash": "sha256-yEZ9JiUSqFFbfqzOOD59ZBv4yFCeUBBKlp6aiUqDqiM=",
@@ -445,13 +445,13 @@
"vendorHash": "sha256-FcxAh8EOvnT8r1GHu0Oj2C5Jgbr2WPwD7/vY4/qIvTA="
},
"gitlabhq_gitlab": {
"hash": "sha256-0zU1HXGs+4qJ/IYePgX3uE7/i7vV85nXD1jiwKasgxA=",
"hash": "sha256-pMwgByUQPPKM6ZQP/DkbJERXPqfw6pU/zMnJH2YXhCE=",
"homepage": "https://registry.terraform.io/providers/gitlabhq/gitlab",
"owner": "gitlabhq",
"repo": "terraform-provider-gitlab",
"rev": "v18.11.0",
"rev": "v19.0.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-a82yKFb82R6mlts5X2igussJTBldNAtwaz35QIe/hSk="
"vendorHash": "sha256-YdNHXnJXUIYrq9BJ+58+0LEtgKNCF481pAsggBRjISA="
},
"go-gandi_gandi": {
"hash": "sha256-fsCtmwyxkXfOtiZG27VEb010jglK35yr4EynnUWlFog=",

View File

@@ -31,7 +31,7 @@
enableRST ? true,
docutils,
enableSpelling ? true,
libspelling,
gspell,
enableUPnP ? true,
gupnp-igd,
enableAppIndicator ? true,
@@ -70,7 +70,7 @@ python3.pkgs.buildPythonApplication rec {
libnice
]
++ lib.optional enableSecrets libsecret
++ lib.optional enableSpelling libspelling
++ lib.optional enableSpelling gspell
++ lib.optional enableUPnP gupnp-igd
++ lib.optional enableAppIndicator libappindicator-gtk3
++ lib.optional enableSoundNotifications gsound;

View File

@@ -30,16 +30,12 @@ let
(if lib.versionOlder version "140" then ./no-buildconfig.patch else ./no-buildconfig-tb140.patch)
];
# FIXME: let's hope that upstream will fix this soon and we can drop this hack again.
# https://bugzilla.mozilla.org/show_bug.cgi?id=2040877
# https://bugzilla.mozilla.org/show_bug.cgi?id=2006630
extraPostPatch =
lib.optionalString (lib.versionAtLeast version "151" && lib.versionOlder version "152") ''
echo https://hg.mozilla.org/releases/comm-release/rev/becfb8fb2c70f1603882a2787e2170d5d8013949 >> sourcestamp.txt
echo https://hg.mozilla.org/releases/mozilla-release/rev/fc12dc911f904307729760a817deb829cbf8feb4 >> sourcestamp.txt
''
# https://bugzilla.mozilla.org/show_bug.cgi?id=2006630
+ lib.optionalString (lib.versionAtLeast version "140.8" && lib.versionOlder version "151") ''
find . -name .cargo-checksum.json | xargs sed 's/"[^"]*\.gitmodules":"[a-z0-9]*",//g' -i
'';
lib.optionalString (lib.versionAtLeast version "147" && lib.versionOlder version "149")
''
find . -name .cargo-checksum.json | xargs sed 's/"[^"]*\.gitmodules":"[a-z0-9]*",//g' -i
'';
meta = {
changelog = "https://www.thunderbird.net/en-US/thunderbird/${version}/releasenotes/";
@@ -77,8 +73,8 @@ rec {
thunderbird = thunderbird-latest;
thunderbird-latest = common {
version = "151.0.1";
sha512 = "a09c1e18faa8d7fdccf39e905542c21e817230e68c7cc6050beec048d0fec0f8eb92e51278d2ccd8d8cfa842762662235517e20238b555a4ad48ee5648dc3589";
version = "150.0.2";
sha512 = "3e52220ff34aa6cd1bf46a910dba1f30d0abf7d19ed7f501ffeeb8f5901b8d97fdc0adb0cceb434ef8e83c7f7b83f28024b872280237af72ff2da9d89fafe065";
updateScript = callPackage ./update.nix {
attrPath = "thunderbirdPackages.thunderbird-latest";
@@ -91,8 +87,8 @@ rec {
thunderbird-140 = common {
applicationName = "Thunderbird ESR";
version = "140.11.1esr";
sha512 = "93dfdd26e6f4c7dd2f7dcc2e4994980d017868341c60c93775721467abd9192b815f2de63928e7d10c965fc045ed72ca5b49ed6502a61e50104ee5cd00941d1e";
version = "140.7.2esr";
sha512 = "513bcaa496f987d0f3906aeb6fe3ea651331470646b0c58479c91bb2c8eb52e389bc8aa646437a03b611ab78bda1df7252545960ffe38086d1fc462e65421819";
updateScript = callPackage ./update.nix {
attrPath = "thunderbirdPackages.thunderbird-140";

View File

@@ -12,7 +12,7 @@
}:
stdenv.mkDerivation rec {
version = "0.84";
version = "0.83";
pname = "putty";
src = fetchurl {
@@ -20,9 +20,15 @@ stdenv.mkDerivation rec {
"https://the.earth.li/~sgtatham/putty/${version}/${pname}-${version}.tar.gz"
"ftp://ftp.wayne.edu/putty/putty-website-mirror/${version}/${pname}-${version}.tar.gz"
];
hash = "sha256-BgV4Yq4Zjx29IZ0MdJMIDVn2BhlLtQVsVJ40KqAbaf4=";
hash = "sha256-cYd3wT1j0N/5H+AxYrwqBbTfyLCCdjTNYLUc79/2McY=";
};
patches = [
# Fix EdDSA signature verification accepting out-of-range s values
# https://git.tartarus.org/?p=simon/putty.git;a=commit;h=af996b5ec27ab79bae3882071b9d6acf16044549
./eddsa-verify-check-out-of-range-s.patch
];
nativeBuildInputs = [
cmake
perl

View File

@@ -0,0 +1,87 @@
From af996b5ec27ab79bae3882071b9d6acf16044549 Mon Sep 17 00:00:00 2001
From: Simon Tatham <anakin@pobox.com>
Date: Wed, 25 Feb 2026 08:29:58 +0000
Subject: [PATCH] eddsa_verify: add check for out-of-range s.
The integer s in an EdDSA signature is treated as an exponent: the
curve's base point is raised to that power. (OK, multiplied by it, if
you use the elliptic curve notational convention rather than the
general group convention.) Therefore, in principle, it doesn't make
any difference if s varies by a multiple of the base point's
order (which is around 2^252, therefore a larger s still fits easily
within the 256-bit space for it in the signature encoding). However,
RFC 8032 requires s to be strictly less than that order, so that
there's a single canonical encoding for any given signature.
I'm not treating this as a vulnerability because I don't believe
there's any situation in SSH where canonicality of signatures is
important. But it should be fixed, nonetheless.
In the fix, it's OK to use an ordinary if statement to check the bound
on s, because they're visible to everybody anyway: the integer s is
encoded directly in the signature, and the bound we're checking it
against is a well-known public integer, so nothing new is revealed by
any timing side channel proving that that was the reason for the
rejection. (Not even if the message being signed were secret, which it
is in SSH: the validation of s doesn't depend on the message.)
Thanks to Yujie Zhu for the report.
---
crypto/ecc-ssh.c | 5 +++++
test/cryptsuite.py | 18 ++++++++++++++++++
2 files changed, 23 insertions(+)
diff --git a/crypto/ecc-ssh.c b/crypto/ecc-ssh.c
index e524dfc4..fcde908d 100644
--- a/crypto/ecc-ssh.c
+++ b/crypto/ecc-ssh.c
@@ -1091,6 +1091,11 @@ static bool eddsa_verify(ssh_key *key, ptrlen sig, ptrlen data)
if (!r)
return false;
mp_int *s = mp_from_bytes_le(sstr);
+ if (mp_cmp_hs(s, ek->curve->e.G_order)) {
+ ecc_edwards_point_free(r);
+ mp_free(s);
+ return false;
+ }
mp_int *H = eddsa_signing_exponent_from_data(ek, extra, rstr, data);
diff --git a/test/cryptsuite.py b/test/cryptsuite.py
index 1ee283c2..30c4ebeb 100755
--- a/test/cryptsuite.py
+++ b/test/cryptsuite.py
@@ -93,6 +93,9 @@ def le_integer(x, nbits):
def be_integer(x, nbits):
return bytes(reversed(le_integer(x, nbits)))
+def decode_le_integer(s):
+ return sum(byte << (8*i) for i,byte in enumerate(s))
+
@contextlib.contextmanager
def queued_random_data(nbytes, seed):
hashsize = 512 // 8
@@ -3518,6 +3521,21 @@ LzN/Ly+uECsga2hoc+P/ZHMULMZkCfrOyWdeXz7BR/acLZJoT579
self.assertEqual(
mlkem_decaps(params, bytes(dk_bytes), c), fail)
+ def testEd25519Overflow(self):
+ test_key = ssh_key_new_priv('ed25519', b64('AAAAC3NzaC1lZDI1NTE5AAAAIMt0/CMBL+64GQ/r/JyGxo6oHs86i9bOHhMJYbDbxEJf'), b64('AAAAIB38jy02ZWYb4EXrJG9RIljEhqidrG5DdhZvMvoeOTZs'))
+ test_string = b'hello, world'
+ good_sig = test_key.sign(test_string, 0)
+ self.assertTrue(test_key.verify(good_sig, test_string))
+ prefixlen = 4 + len('ssh-ed25519') + 4
+ self.assertEqual(len(good_sig), prefixlen + 64)
+ good_sstr = good_sig[prefixlen+32:]
+ good_s = decode_le_integer(good_sstr)
+ bad_s = good_s + ed25519.G_order
+ bad_sstr = le_integer(bad_s, 256)
+ bad_sig = good_sig[:prefixlen+32] + bad_sstr
+ self.assertEqual(len(bad_sig), len(good_sig))
+ self.assertFalse(test_key.verify(bad_sig, test_string))
+
class standard_test_vectors(MyTestBase):
def testAES(self):
def vector(cipher, key, plaintext, ciphertext):
--
2.30.2

View File

@@ -1,72 +0,0 @@
diff --git a/aw_notify/main.py b/aw_notify/main.py
index c749725..44dce5a 100644
--- a/aw_notify/main.py
+++ b/aw_notify/main.py
@@ -3,6 +3,7 @@
and send notifications to the user on predefined conditions.
"""
+import asyncio
import logging
import sys
import threading
@@ -23,7 +24,7 @@
import aw_client.queries
import click
from aw_core.log import setup_logging
-from desktop_notifier import DesktopNotifier
+from desktop_notifier import DesktopNotifier, Icon
from typing_extensions import TypeAlias
logger = logging.getLogger(__name__)
@@ -149,11 +150,20 @@ def notify(title: str, msg: str):
if notifier is None:
notifier = DesktopNotifier(
app_name="AW",
- app_icon=f"file://{icon_path}",
+ app_icon=Icon(uri=f"file://{icon_path}"),
notification_limit=10,
)
logger.info(f'Showing: "{title} - {msg}"')
- notifier.send_sync(title=title, message=msg)
+
+ # Get or create event loop
+ try:
+ loop = asyncio.get_running_loop()
+ except RuntimeError:
+ loop = asyncio.new_event_loop()
+ asyncio.set_event_loop(loop)
+
+ # Send notification
+ loop.run_until_complete(notifier.send(title=title, message=msg))
class CategoryAlert:
diff --git a/pyproject.toml b/pyproject.toml
index 314fe2f..0d6d5a9 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -13,15 +13,15 @@ packages = [{include = "aw_notify"}]
aw-notify = "aw_notify.main:main"
[tool.poetry.dependencies]
-python = "^3.9,<3.12"
-aw-client = "^0.5.13"
-desktop-notifier = "^3.4.2"
-rubicon-objc = { version = "^0.4.0", platform = "darwin" }
+python = ">=3.9,<3.14"
+aw-client = "^0.5.15"
+desktop-notifier = "^6.0.0"
+rubicon-objc = { version = "^0.5.0", platform = "darwin" }
[tool.poetry.group.dev.dependencies]
black = "*"
mypy = "*"
-pyinstaller = "^6.6"
-pytest = "^7.4"
+pyinstaller = "^6.12.0"
+pytest = "*"
[build-system]
requires = ["poetry-core"]

View File

@@ -14,7 +14,6 @@
qtsvg,
xdg-utils,
replaceVars,
nodejs_22,
buildNpmPackage,
}:
@@ -160,12 +159,6 @@ rec {
pyproject = true;
build-system = [ python3Packages.poetry-core ];
patches = [
# Backport desktop-notifier 6 / rubicon-objc 0.5 support.
# https://github.com/ActivityWatch/aw-notify/pull/10
./aw-notify-desktop-notifier-6.patch
];
dependencies = with python3Packages; [
aw-client
desktop-notifier
@@ -235,7 +228,6 @@ rec {
src = "${sources}/aw-server-rust/aw-webui";
nodejs = nodejs_22;
npmDepsHash = "sha256-fPk7UpKuO3nEN1w+cf9DIZIG1+XRUk6PJfVmtpC30XE=";
makeCacheWritable = true;

View File

@@ -54,7 +54,10 @@ stdenv.mkDerivation (finalAttrs: {
'';
homepage = "https://abella-prover.org";
license = lib.licenses.gpl3;
maintainers = [ lib.maintainers.bcdarwin ];
maintainers = with lib.maintainers; [
bcdarwin
ciil
];
platforms = lib.platforms.unix;
};
})

View File

@@ -9,7 +9,6 @@
zarith,
camlp5,
camlp-streams,
pcre2,
bash,
}:
@@ -20,7 +19,6 @@ let
''
-I ${zarith}/lib/ocaml/${ocaml.version}/site-lib/zarith \
-I ${zarith}/lib/ocaml/${ocaml.version}/site-lib/stublibs \
-I ${pcre2}/lib/ocaml/${ocaml.version}/site-lib/stublibs \
''
else
lib.optionalString (num != null) ''
@@ -66,7 +64,6 @@ stdenv.mkDerivation {
];
propagatedBuildInputs = [
camlp-streams
pcre2
(if use_zarith then zarith else num)
];

View File

@@ -45,7 +45,7 @@ assert (!blas.isILP64) && (!lapack.isILP64);
stdenv.mkDerivation (finalAttrs: {
pname = "R";
version = "4.5.3";
version = "4.6.0";
src =
let
@@ -53,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
in
fetchurl {
url = "https://cran.r-project.org/src/base/R-${lib.versions.major version}/${pname}-${version}.tar.gz";
hash = "sha256-qlwe1Ck8cnGsUT1lRnA1asDopq1eQr4BQ2XREVC1uPI=";
hash = "sha256-uNybRUNmDHtZa4eTjfUyOUNQNgl2Un00QijuDtEuRew=";
};
outputs = [

View File

@@ -55,12 +55,11 @@ stdenv.mkDerivation (finalAttrs: {
export USER=nonexistent-but-specified-user
'';
installPhase = ''
mkdir -p $out/bin
INSTALLDIR=$out/bin make install
installFlags = [ "INSTALLDIR=$(out)/bin" ];
postInstall = ''
installManPage fossil.1
installShellCompletion --name fossil.bash tools/fossil-autocomplete.bash
installShellCompletion --cmd fossil tools/fossil-autocomplete.{bash,zsh}
'';
meta = {

View File

@@ -400,7 +400,7 @@ in
# https://github.com/moby/moby/tree/${mobyRev}/Dockerfile
docker_25 =
let
version = "25.0.16";
version = "25.0.13";
in
callPackage dockerGen {
inherit version;
@@ -409,7 +409,7 @@ in
cliRev = "43987fca488a535d810c429f75743d8c7b63bf4f";
cliHash = "sha256-OwufdfuUPbPtgqfPeiKrQVkOOacU2g4ommHb770gV40=";
mobyRev = "v${version}";
mobyHash = "sha256-St5yLoxo8QUTu7PjNcblS/EzZm98T189RPl1y+pAyHA=";
mobyHash = "sha256-X+1QG/toJt+VNLktR5vun8sG3PRoTVBAcekFXxocJdU=";
runcRev = "v1.2.5";
runcHash = "sha256-J/QmOZxYnMPpzm87HhPTkYdt+fN+yeSUu2sv6aUeTY4=";
containerdRev = "v1.7.27";
@@ -420,14 +420,14 @@ in
docker_29 =
let
version = "29.5.2";
version = "29.5.1";
in
callPackage dockerGen {
inherit version;
cliRev = "v${version}";
cliHash = "sha256-kHgDZVr6mAyCtZ6bSG9FWV0GhWDfXLXzHYFrmjFzO9w=";
cliHash = "sha256-oobGr0UaeJL800hHx3K0tQs50HZbOn559WcLnSRiRhU=";
mobyRev = "docker-v${version}";
mobyHash = "sha256-lux7tTyF6vm5wuIXs+z3Ygd2v4JjgHbRvOXNA4kjNtg=";
mobyHash = "sha256-ghYEOWr5RUDm0YLyupaDSpLd+8gFqxp3VjCt+3lztcA=";
runcRev = "v1.3.5";
runcHash = "sha256-Swphxbu/OLkUrfRjLMZIVGwYb7AN0xHdyxm0ysAVam0=";
containerdRev = "v2.2.3";

View File

@@ -1,15 +0,0 @@
diff --git a/tools/profiler/rust-api/build.rs b/tools/profiler/rust-api/build.rs
index 9bb27eb83e5e..3f09f7f01bcb 100644
--- a/tools/profiler/rust-api/build.rs
+++ b/tools/profiler/rust-api/build.rs
@@ -88,6 +88,10 @@ fn generate_bindings() {
// successfully. Otherwise, it fails to build because MarkerSchema has
// some std::strings as its fields.
.opaque_type("std::string")
+ .blocklist_type(".*basic_string_view.*")
+ .opaque_type(".*basic_string_view.*")
+ .blocklist_type(".*basic_string___self_view.*")
+ .opaque_type(".*basic_string___self_view.*")
// std::vector needs to be converted to an opaque type because, if it's
// not an opaque type, bindgen can't find its size properly and
// MarkerSchema's total size reduces. That causes a heap buffer overflow.

View File

@@ -332,14 +332,6 @@ buildStdenv.mkDerivation {
# https://hg-edge.mozilla.org/mozilla-central/rev/aa8a29bd1fb9
./139-wayland-drag-animation.patch
]
++ lib.optionals (lib.versionAtLeast version "140" && lib.versionOlder version "144") [
# Versions before 144 vendor bindgen 0.69. On Darwin, libc++ 21 changed
# basic_string::__self_view from a typedef to an attributed using alias;
# bindgen then emits it without its template parameter, producing invalid
# Rust. Vendored bindgen was updated in:
# https://bugzilla.mozilla.org/show_bug.cgi?id=1985509
./140-bindgen-string-view.patch
]
++ extraPatches;
postPatch = ''
@@ -595,7 +587,7 @@ buildStdenv.mkDerivation {
profilingPhase = lib.optionalString pgoSupport ''
# Avoid compressing the instrumented build with high levels of compression
export MOZ_PKG_FORMAT=TAR
export MOZ_PKG_FORMAT=tar
# Package up Firefox for profiling
./mach package

View File

@@ -123,10 +123,6 @@ fi
init_remote(){
local url=$1
clean_git init --initial-branch=master
# Disable maintenance: it's not useful for a short-lived clone, and
# background maintenance causes non-deterministic builds.
# https://github.com/NixOS/nixpkgs/issues/524215
clean_git config maintenance.auto false
clean_git remote add origin "$url"
if [ -n "$sparseCheckout" ]; then
git config remote.origin.partialclonefilter "blob:none"

View File

@@ -146,10 +146,6 @@ in
# Run any additional pnpm configuration commands that users provide.
${prePnpmInstall}
echo "Final pnpm config:"
pnpm config list
echo
# pnpm is going to warn us about using --force
# --force allows us to fetch all dependencies including ones that aren't meant for our host platform
pnpm install \

View File

@@ -28,11 +28,6 @@ pnpmConfigHook() {
if versionAtLeast "$pnpmVersion" "11"; then
# pnpm 11 uses a different mechanism to manage package manager versions
export pnpm_config_pm_on_fail=ignore
# Disable lockfile verification against supply-chain policies. This is
# already done in fetchPnpmDeps, so if these checks failed there, we
# wouldn't be here in the first place
export pnpm_config_trust_lockfile=true
else
pnpm config set manage-package-manager-versions false
fi
@@ -89,10 +84,6 @@ pnpmConfigHook() {
runHook prePnpmInstall
echo "Final pnpm config:"
pnpm config list
echo
if ! pnpm install \
--offline \
--ignore-scripts \

View File

@@ -130,10 +130,7 @@ let
};
registries = {
# Use static.crates.io (CDN) instead of crates.io/api to avoid the 1 req/sec
# rate limit on the API servers, which currently returns intermittent 403s.
# See https://github.com/rust-lang/crates.io/issues/13482
"https://github.com/rust-lang/crates.io-index" = "https://static.crates.io/crates";
"https://github.com/rust-lang/crates.io-index" = "https://crates.io/api/v1/crates";
}
// extraRegistries;

View File

@@ -1,53 +0,0 @@
diff --git a/acl2.lisp b/acl2.lisp
index 036657d902..c2b7e4fad9 100644
--- a/acl2.lisp
+++ b/acl2.lisp
@@ -1963,11 +1963,7 @@ ACL2 from scratch.")
(* *my-most-positive-double-float*
*my-most-positive-double-float*)
(error () 0.0d0))
- 'double-float))
- #+sbcl
- (member :overflow
- (cadr (member :traps
- (sb-int:get-floating-point-modes)))))
+ 'double-float)))
(error "This Lisp is unsuitable for ACL2, because it failed ~%a check that ~
floating-point overflow causes an error."))
diff --git a/float-raw.lisp b/float-raw.lisp
index 1364491fdf..e6d0417971 100644
--- a/float-raw.lisp
+++ b/float-raw.lisp
@@ -46,13 +46,13 @@
; #.*infinity-double* and #.*negative-infinity-double*), so we do so, but we
; don't bother testing for Nan in LispWorks.
-; We return form unchanged in other than Allegro CL and LispWorks, because we
+; We return form unchanged in other than Allegro CL, LispWorks, and SBCL, because we
; already know that an error is signalled on overflow for other Lisps that host
; ACL2; see break-on-overflow-and-nan.
- #-(or allegro lispworks)
+ #-(or allegro lispworks sbcl)
(declare (ignore op))
- #-(or allegro lispworks)
+ #-(or allegro lispworks sbcl)
form
#+allegro
`(let ((result ,form))
@@ -65,6 +65,14 @@
(when (or (= result +1D++0) (= result -1D++0))
(error "Floating-point overflow for a call of ~s"
',op))
+ result)
+ #+sbcl
+ `(let ((result ,form))
+ (when (or (sb-ext:float-nan-p result)
+ (= result sb-ext:double-float-positive-infinity)
+ (= result sb-ext:double-float-negative-infinity))
+ (error "Floating-point exception for a call of ~s"
+ ',op))
result))
(defmacro defun-df-binary (name op)

View File

@@ -62,13 +62,6 @@ stdenv.mkDerivation rec {
libssl = "${lib.getLib openssl}/lib/libssl${stdenv.hostPlatform.extensions.sharedLibrary}";
libcrypto = "${lib.getLib openssl}/lib/libcrypto${stdenv.hostPlatform.extensions.sharedLibrary}";
})
]
++ lib.optionals (stdenv.hostPlatform.system == "aarch64-linux") [
# ACL2 8.6 assumes SBCL can enable floating-point traps. On
# aarch64-linux, SBCL can leave :TRAPS NIL after enabling them, so use
# ACL2's existing exceptional-float checking path instead. See:
# https://github.com/acl2-devel/acl2-devel/commit/0632b37adffb6b5fd71d8438d519133281f837ec
./0002-sbcl-fp-trap-fallback.patch
];
# We need the timestamps on the source tree to be stable for certification to

View File

@@ -9,15 +9,15 @@
buildGoModule (finalAttrs: {
pname = "adguardhome";
version = "0.107.76";
version = "0.107.74";
src = fetchFromGitHub {
owner = "AdguardTeam";
repo = "AdGuardHome";
tag = "v${finalAttrs.version}";
hash = "sha256-CF1Ieu7oCnzvXwoHzX5126gQGcgXL+giMtUciKBZ2ZU=";
hash = "sha256-cAuthACY/rBVRTSv/UIarhScm+EoTUhnkQ0RUtvhAFg=";
};
vendorHash = "sha256-tHabP5I7PZtDkVucF95StRyXGEsfbuc6Z3AhQZ/g2f8=";
vendorHash = "sha256-o4hpiqQEt8gkYFeAkxPDisvLWbi7WOBZ7xMXrPt6Cdo=";
dashboard = buildNpmPackage {
inherit (finalAttrs) src version;
@@ -25,7 +25,7 @@ buildGoModule (finalAttrs: {
postPatch = ''
cd client
'';
npmDepsHash = "sha256-Yyv8dTKhZ9IlIW/x/57cl/+cpvjjycaFLSyOR0IiIPk=";
npmDepsHash = "sha256-SOHmXvGLpjs8h0X+AJ6/jAYpxzoizhwRjIzx4SqJOCo=";
npmBuildScript = "build-prod";
postBuild = ''
mkdir -p $out/build/

View File

@@ -1,6 +1,5 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
libfido2,
@@ -27,24 +26,6 @@ buildGoModule (finalAttrs: {
buildInputs = [ libfido2 ];
postConfigure = lib.optionalString stdenv.hostPlatform.isDarwin ''
chmod -R +w vendor/github.com/keys-pub/go-libfido2
substituteInPlace vendor/github.com/keys-pub/go-libfido2/fido2_static_arm64.go \
--replace-fail \
'/opt/homebrew/opt/libfido2/lib/libfido2.a /opt/homebrew/opt/openssl@3/lib/libcrypto.a ''${SRCDIR}/darwin/arm64/lib/libcbor.a' \
'-lfido2' \
--replace-fail \
'-I/opt/homebrew/opt/libfido2/include -I/opt/homebrew/opt/openssl@3/include' \
'-I${libfido2.dev}/include'
substituteInPlace vendor/github.com/keys-pub/go-libfido2/fido2_static_amd64.go \
--replace-fail \
'/usr/local/lib/libfido2.a /usr/local/opt/openssl@3/lib/libcrypto.a ''${SRCDIR}/darwin/amd64/lib/libcbor.a' \
'-lfido2' \
--replace-fail \
'-I/usr/local/opt/libfido2/include -I/usr/local/opt/openssl@3/include' \
'-I${libfido2.dev}/include'
'';
meta = {
description = "Age plugin to encrypt files with FIDO2 tokens in a way compatible to typage";
homepage = "https://github.com/FiloSottile/typage/";

View File

@@ -2,7 +2,6 @@
lib,
stdenv,
fetchFromGitea,
cctools,
yarn-berry_3,
nodejs,
python311,
@@ -43,10 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
python311
libsass
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
xcbuild
cctools.libtool
];
++ lib.optional stdenv.hostPlatform.isDarwin xcbuild;
buildPhase = ''
runHook preBuild

View File

@@ -8,13 +8,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "alire";
version = "2.1.1";
version = "2.1.0";
src = fetchFromGitHub {
owner = "alire-project";
repo = "alire";
tag = "v${finalAttrs.version}";
hash = "sha256-YOUFTKbqbFfdYNWcGCvtFCDCW2tH8E3YuRQrV522Px4=";
hash = "sha256-DfzCQu9xOe9JgX6RTrYOGTIS6EcPimLnd5pfXMtfRss=";
fetchSubmodules = true;
};

View File

@@ -48,7 +48,7 @@ stdenv.mkDerivation (finalAttrs: {
];
# To avoid compiler error in LoadDataBase.c:366:27
env.NIX_CFLAGS_COMPILE = "-std=gnu99 -Wno-incompatible-pointer-types";
env.NIX_CFLAGS_COMPILE = "-Wno-incompatible-pointer-types";
postPatch = ''
# texlive for docs seems extreme
@@ -77,5 +77,6 @@ stdenv.mkDerivation (finalAttrs: {
license = with lib.licenses; gpl2Plus;
maintainers = [ ];
platforms = with lib.platforms; linux;
broken = true;
};
})

View File

@@ -16,16 +16,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "amdgpu_top";
version = "0.11.4";
version = "0.11.5";
src = fetchFromGitHub {
owner = "Umio-Yasuno";
repo = "amdgpu_top";
tag = "v${finalAttrs.version}";
hash = "sha256-ap1X53Ou/eWhHvXOnHY7zGb6i+ZLs8LeSNpOJWm+IKc=";
hash = "sha256-hOwZHqm5DD4GGirvtYT1HWRp7Y59K1HIDsr9myFleRI=";
};
cargoHash = "sha256-b9OO//9M/LyS4ZMQzppvLHJHL3JyPVoSOIPVlrX1Wes=";
cargoHash = "sha256-Mqy95IflBLXnp6ZYWjZCDrNJWZ2kqd90533sPJ94c2U=";
buildInputs = [
libdrm

View File

@@ -0,0 +1,76 @@
{
lib,
stdenv,
fetchzip,
autoPatchelfHook,
versionCheckHook,
}:
let
# Version and platform-specific data retrieved from Google's manifests
version = "1.0.2";
sources = {
"x86_64-linux" = {
url = "https://storage.googleapis.com/antigravity-public/antigravity-cli/1.0.2-6109799369277440/linux-x64/cli_linux_x64.tar.gz";
hash = "sha256-XAq2oHWaAe2AoAgDBb1/NvABfkodg3xYTDmTY5H9RD0=";
};
"aarch64-linux" = {
url = "https://storage.googleapis.com/antigravity-public/antigravity-cli/1.0.2-6109799369277440/linux-arm/cli_linux_arm64.tar.gz";
hash = "sha256-7pj7TMHg+Z7DyWVmXOMqoM9kQkw5FxXTF+P4hGYc2hE=";
};
"aarch64-darwin" = {
url = "https://storage.googleapis.com/antigravity-public/antigravity-cli/1.0.2-6109799369277440/darwin-arm/cli_mac_arm64.tar.gz";
hash = "sha256-stu8KZDa5id5wVImTgyedkIKJPdkBTagRCphoYLWUoI=";
};
"x86_64-darwin" = {
url = "https://storage.googleapis.com/antigravity-public/antigravity-cli/1.0.2-6109799369277440/darwin-x64/cli_mac_x64.tar.gz";
hash = "sha256-KDOEEgFhvpO9bifljSuhRKpb+J6c+q4TWmnrNAAS3A0=";
};
};
source =
sources.${stdenv.hostPlatform.system}
or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
in
stdenv.mkDerivation (finalAttrs: {
pname = "antigravity-cli";
inherit version;
src = fetchzip {
inherit (source) url hash;
};
strictDeps = true;
__structuredAttrs = true;
nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ];
dontBuild = true;
dontConfigure = true;
installPhase = ''
runHook preInstall
install -Dm755 antigravity $out/bin/antigravity-cli
runHook postInstall
'';
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
passthru = {
updateScript = ./update.py;
};
meta = {
description = "Google's Go-based terminal user interface (TUI) agent client";
homepage = "https://antigravity.google";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ u3kkasha ];
platforms = lib.attrNames sources;
mainProgram = "antigravity-cli";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
})

View File

@@ -0,0 +1,131 @@
#!/usr/bin/env nix-shell
#!nix-shell -i python3 -p python3 nix jq
import re
import urllib.request
import json
import subprocess
import sys
import os
import tempfile
MANIFEST_BASE = (
"https://antigravity-cli-auto-updater-974169037036.us-central1.run.app/manifests"
)
PLATFORMS = {
"x86_64-linux": "linux_amd64",
"aarch64-linux": "linux_arm64",
"x86_64-darwin": "darwin_amd64",
"aarch64-darwin": "darwin_arm64",
}
def fetch_json(url):
req = urllib.request.Request(
url, headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"}
)
with urllib.request.urlopen(req) as response:
return json.loads(response.read().decode("utf-8"))
def get_nix_hash(url):
"""Downloads, unpacks, and returns the SRI hash of the directory content."""
with tempfile.TemporaryDirectory() as tmpdir:
archive_path = os.path.join(tmpdir, "archive.tar.gz")
unpack_path = os.path.join(tmpdir, "unpack")
os.makedirs(unpack_path)
# Download
req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"})
with (
urllib.request.urlopen(req) as response,
open(archive_path, "wb") as out_file,
):
out_file.write(response.read())
# Unpack
subprocess.run(["tar", "-xzf", archive_path, "-C", unpack_path], check=True)
# Hash
result = subprocess.run(
["nix", "hash", "path", "--type", "sha256", unpack_path],
capture_output=True,
text=True,
check=True,
)
return result.stdout.strip()
def main():
# Change directory to the script's directory so paths are relative
script_dir = os.path.dirname(os.path.abspath(__file__))
os.chdir(script_dir)
print("Checking for updates from Google Antigravity release API...")
# 1. Fetch the latest version from the linux_amd64 manifest
try:
manifest = fetch_json(f"{MANIFEST_BASE}/linux_amd64.json")
except Exception as e:
print(f"Error fetching manifest: {e}", file=sys.stderr)
sys.exit(1)
latest_version = manifest["version"]
# Read the current package.nix
package_file = "package.nix"
if not os.path.exists(package_file):
print(f"Error: Could not find package.nix in {script_dir}", file=sys.stderr)
sys.exit(1)
with open(package_file, "r") as f:
content = f.read()
# Extract current version
version_match = re.search(r'version\s*=\s*"([^"]*)"', content)
if not version_match:
print(
"Error: Could not parse current version from package.nix", file=sys.stderr
)
sys.exit(1)
current_version = version_match.group(1)
if current_version == latest_version:
print(f"Already up to date (current version {current_version} is the latest).")
sys.exit(0)
print(f"New version found! Updating: {current_version} -> {latest_version}")
# 2. Update the version string in content
content = re.sub(
r'(version\s*=\s*")[^"]*(";)', f"\\g<1>{latest_version}\\g<2>", content
)
# 3. For each platform, fetch url and hash, and update sources
for platform, manifest_name in PLATFORMS.items():
print(f"Fetching manifest for {platform}...")
try:
m = fetch_json(f"{MANIFEST_BASE}/{manifest_name}.json")
except Exception as e:
print(f"Error fetching manifest for {platform}: {e}", file=sys.stderr)
sys.exit(1)
url = m["url"]
sri_hash = get_nix_hash(url)
# Regex to locate and replace URL and hash for this specific platform in package.nix
pattern = rf'("{platform}"\s*=\s*\{{[^}}]+url\s*=\s*")[^"]*(";[^}}]+hash\s*=\s*")[^"]*(";)'
replacement = f"\\g<1>{url}\\g<2>{sri_hash}\\g<3>"
content = re.sub(pattern, replacement, content)
# Write the updated content back
with open(package_file, "w") as f:
f.write(content)
print(f"Successfully updated package.nix to version {latest_version}!")
if __name__ == "__main__":
main()

View File

@@ -1,6 +0,0 @@
#ifdef __CLING__
#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;
#pragma link C++ class TFileString+;
#endif

View File

@@ -1,6 +0,0 @@
#ifdef __CLING__
#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;
#pragma link C++ class TFileVector+;
#endif

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