mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-06-06 13:23:41 +00:00
Compare commits
799 Commits
python-upd
...
nixos-unst
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
331800de50 | ||
|
|
856d6dd71e | ||
|
|
e52ad6d686 | ||
|
|
f37114b679 | ||
|
|
c1f31180f8 | ||
|
|
7a4bf488d5 | ||
|
|
d72039412b | ||
|
|
e0f1741d33 | ||
|
|
ea0723ecc7 | ||
|
|
57ee43c333 | ||
|
|
b6bed15b54 | ||
|
|
b0cd645bf5 | ||
|
|
2584b33b42 | ||
|
|
81515c9c2e | ||
|
|
652328185b | ||
|
|
83183dd497 | ||
|
|
8a7ccc8977 | ||
|
|
287ae4b33e | ||
|
|
4103602b57 | ||
|
|
2cd62598d7 | ||
|
|
baae4fad2c | ||
|
|
c66de3821c | ||
|
|
8b2a78b69f | ||
|
|
a6cdc5ed94 | ||
|
|
01e2dd353f | ||
|
|
8f5fcf6fae | ||
|
|
8c8c287338 | ||
|
|
eeea15fbf3 | ||
|
|
cb85638ebd | ||
|
|
23ca5cc448 | ||
|
|
c1ee2eb8b9 | ||
|
|
060ccf1e40 | ||
|
|
35685c55e8 | ||
|
|
97950d6fec | ||
|
|
95aad17dc9 | ||
|
|
a9307e05dc | ||
|
|
90e5d582ca | ||
|
|
f62a29f243 | ||
|
|
183cfa7156 | ||
|
|
bd721586f2 | ||
|
|
8222632bb3 | ||
|
|
8fa02a49b4 | ||
|
|
82e8d81147 | ||
|
|
297e6f91d7 | ||
|
|
930dc971bf | ||
|
|
5966b4c711 | ||
|
|
971cc204a6 | ||
|
|
df35d365a1 | ||
|
|
e8736de8ab | ||
|
|
f1be7fb914 | ||
|
|
31402a2544 | ||
|
|
6e97cf623b | ||
|
|
5f81bb887c | ||
|
|
5f97b9ff32 | ||
|
|
a99816c488 | ||
|
|
5230f3e0dc | ||
|
|
ed1de9a708 | ||
|
|
a23a846fff | ||
|
|
9b9e0a021a | ||
|
|
e41c0b9905 | ||
|
|
809f7bd80d | ||
|
|
b12a46debf | ||
|
|
0e2034598a | ||
|
|
65dafd058a | ||
|
|
b0506757db | ||
|
|
db81f2e6d8 | ||
|
|
ad2e2960b4 | ||
|
|
e28fcb5f87 | ||
|
|
aab86321db | ||
|
|
34bc09dca9 | ||
|
|
574bf7de39 | ||
|
|
cfaddae52a | ||
|
|
e6871d9800 | ||
|
|
c510450a30 | ||
|
|
a863496453 | ||
|
|
2c87389c6f | ||
|
|
5366dabecf | ||
|
|
eb72e3691d | ||
|
|
5dbcaa1fea | ||
|
|
305115578d | ||
|
|
c9ff450013 | ||
|
|
873f7cb323 | ||
|
|
0654a7424e | ||
|
|
00edcf314f | ||
|
|
d771a01119 | ||
|
|
761d74ba17 | ||
|
|
05c5c4ff32 | ||
|
|
e16200dfea | ||
|
|
8d818d67f7 | ||
|
|
56ca20161a | ||
|
|
a63cd644e8 | ||
|
|
3d552cd731 | ||
|
|
0e419d401c | ||
|
|
a51feea6c3 | ||
|
|
710c91cc20 | ||
|
|
dd0e79a002 | ||
|
|
b2c1ae428f | ||
|
|
ba7c92dbd8 | ||
|
|
edcd4f4efb | ||
|
|
d3a32f77d5 | ||
|
|
5afb67bdac | ||
|
|
2a80cb209e | ||
|
|
9ab79034c6 | ||
|
|
cdee51aa46 | ||
|
|
71dcd0e36b | ||
|
|
0f2137ab00 | ||
|
|
1bfd4a4f76 | ||
|
|
1b1e117985 | ||
|
|
dcf8395830 | ||
|
|
862363dfa8 | ||
|
|
8ce49c983e | ||
|
|
df41f1609c | ||
|
|
554125897e | ||
|
|
c16db58276 | ||
|
|
79ecf08958 | ||
|
|
cd3331e83c | ||
|
|
1962e3e9bd | ||
|
|
43fe63cde7 | ||
|
|
bbb656bac3 | ||
|
|
8eea5df837 | ||
|
|
9c168c8f7e | ||
|
|
ea1d0be4db | ||
|
|
2c16d74adf | ||
|
|
7ab05e15d8 | ||
|
|
243558acc5 | ||
|
|
7fc393d1b4 | ||
|
|
66f153954b | ||
|
|
343067bd77 | ||
|
|
e1dfe0bfcf | ||
|
|
aefbd7b758 | ||
|
|
18afef5945 | ||
|
|
dc73952085 | ||
|
|
23cd1f30c9 | ||
|
|
7bd52a96aa | ||
|
|
f518c1259e | ||
|
|
3f7764964e | ||
|
|
f70490cade | ||
|
|
89aa2092d4 | ||
|
|
98f5b893ad | ||
|
|
67d99f1c80 | ||
|
|
d3647d477e | ||
|
|
993eaeed05 | ||
|
|
92c3946f67 | ||
|
|
c71a0e7c29 | ||
|
|
571ba1674f | ||
|
|
c3ad9debf0 | ||
|
|
09bdb2eeb8 | ||
|
|
c164d638c4 | ||
|
|
cd87c82702 | ||
|
|
c3deca82eb | ||
|
|
e55f81b12d | ||
|
|
6e7c84f429 | ||
|
|
e6a9c10761 | ||
|
|
bb3e3431e6 | ||
|
|
45cf63e030 | ||
|
|
5a9b364c44 | ||
|
|
f7b661f80a | ||
|
|
1dbeed6003 | ||
|
|
65d1a68a12 | ||
|
|
d70c362919 | ||
|
|
91083d997e | ||
|
|
3b57d6e77e | ||
|
|
553e463e3d | ||
|
|
6dea6cf62a | ||
|
|
711ab3d132 | ||
|
|
a44891042f | ||
|
|
507c78db9f | ||
|
|
799097b59d | ||
|
|
eac077768d | ||
|
|
45254864d9 | ||
|
|
7767e8e6f6 | ||
|
|
bc1322ea19 | ||
|
|
1dfd9599a9 | ||
|
|
434503630c | ||
|
|
9ff29b46ff | ||
|
|
8837c8d1b5 | ||
|
|
101e9940db | ||
|
|
b7768d8a71 | ||
|
|
96bbeb99c5 | ||
|
|
ba4c5b312c | ||
|
|
58d4592e59 | ||
|
|
dd027618a0 | ||
|
|
78058c8132 | ||
|
|
7fdd47d761 | ||
|
|
a145c8eac2 | ||
|
|
003390648b | ||
|
|
12e5233307 | ||
|
|
4386b1e0e2 | ||
|
|
0c66127521 | ||
|
|
46eebe1f3b | ||
|
|
12d5b3fca2 | ||
|
|
e2045f8b98 | ||
|
|
e537b593f6 | ||
|
|
054acd03b2 | ||
|
|
278c713e17 | ||
|
|
6c549118dd | ||
|
|
3a18c90fa2 | ||
|
|
ea04467f22 | ||
|
|
66c9b6869d | ||
|
|
74e749da0c | ||
|
|
1c55dc985d | ||
|
|
6a92df1c3d | ||
|
|
8e51ce15c9 | ||
|
|
4563e96c9d | ||
|
|
e620a858df | ||
|
|
57434e74ee | ||
|
|
1f280b3179 | ||
|
|
53d00a7b73 | ||
|
|
5d5cb5813d | ||
|
|
1d220d35d8 | ||
|
|
097a0be0ea | ||
|
|
22337ca974 | ||
|
|
585714f21b | ||
|
|
3b1c77b360 | ||
|
|
f83fe8ad4f | ||
|
|
cecae0fe8d | ||
|
|
41665e33ee | ||
|
|
46f67fd6ee | ||
|
|
e20bb9a8da | ||
|
|
ad72ca1653 | ||
|
|
56a5446ae3 | ||
|
|
dc515cefb2 | ||
|
|
0d887c1343 | ||
|
|
6e2c032cd4 | ||
|
|
e2ca5599b4 | ||
|
|
2cac51127b | ||
|
|
c18b670902 | ||
|
|
198716e4f5 | ||
|
|
2f6430f540 | ||
|
|
225ea22001 | ||
|
|
27e7745e3f | ||
|
|
29bbe141ea | ||
|
|
f236a15562 | ||
|
|
be0d72f58a | ||
|
|
69fdd8bb65 | ||
|
|
301417557e | ||
|
|
6838772dd5 | ||
|
|
59a8eb15fa | ||
|
|
9e3c2da29c | ||
|
|
61fc9d6c92 | ||
|
|
2508c38ed5 | ||
|
|
732b67fb80 | ||
|
|
1fdb5dac24 | ||
|
|
5ff59663ff | ||
|
|
d6c2664393 | ||
|
|
96e65982fb | ||
|
|
031fd90ff5 | ||
|
|
4181f3540b | ||
|
|
32eed2f89d | ||
|
|
514f0225f1 | ||
|
|
6cf70d335d | ||
|
|
fd40f4e6a9 | ||
|
|
4892ca0db8 | ||
|
|
c761652c41 | ||
|
|
7f650c98aa | ||
|
|
a503666e59 | ||
|
|
df5d2c1f9c | ||
|
|
835bf101d7 | ||
|
|
0dceda180f | ||
|
|
c3c96ea4c6 | ||
|
|
345ba04a92 | ||
|
|
2275b25eec | ||
|
|
7ac14635eb | ||
|
|
86db85510b | ||
|
|
a5056839d6 | ||
|
|
3f1a5df480 | ||
|
|
efca1d2578 | ||
|
|
004ba88a07 | ||
|
|
ecd566a91f | ||
|
|
b61f35e039 | ||
|
|
d84925ed1c | ||
|
|
d715eb3869 | ||
|
|
335a0880d9 | ||
|
|
8bc9ad2513 | ||
|
|
c4d3278fc3 | ||
|
|
7d3c6c34ab | ||
|
|
4953b5a55e | ||
|
|
ac3f75b1bb | ||
|
|
4af9872e73 | ||
|
|
9f8581edf1 | ||
|
|
db40e3f5c2 | ||
|
|
7bce97a715 | ||
|
|
277ddb23b9 | ||
|
|
6d9bd3707a | ||
|
|
78bea3365a | ||
|
|
f7b09dd994 | ||
|
|
54288f108f | ||
|
|
72d4b8e9c4 | ||
|
|
59858ee78d | ||
|
|
93b3e71f84 | ||
|
|
da68bb064c | ||
|
|
e0aaa7072f | ||
|
|
ae07a55c90 | ||
|
|
1aa187c456 | ||
|
|
139bf1b6b7 | ||
|
|
5e4e63c915 | ||
|
|
c169724f55 | ||
|
|
adbcc70828 | ||
|
|
de8ea3f186 | ||
|
|
9402548447 | ||
|
|
7b31b7eed7 | ||
|
|
4a50e96c9e | ||
|
|
362e335dbe | ||
|
|
00d4449b7b | ||
|
|
fbdf10eec7 | ||
|
|
ada6b0da22 | ||
|
|
cd77af625a | ||
|
|
33a4f895a9 | ||
|
|
f12b3df879 | ||
|
|
d9a34b0242 | ||
|
|
4a736a9e97 | ||
|
|
b834d1c407 | ||
|
|
8ebdca12ce | ||
|
|
55b0224334 | ||
|
|
d0ba6ac726 | ||
|
|
3fc2400dfa | ||
|
|
dc9955b215 | ||
|
|
100a116407 | ||
|
|
0f25146a8b | ||
|
|
6bc5c115e5 | ||
|
|
8ee83677f8 | ||
|
|
5fcbf3aafa | ||
|
|
b95f99b751 | ||
|
|
b692cc2339 | ||
|
|
899ee0a3e8 | ||
|
|
ffc0c4dc22 | ||
|
|
e8cc556d04 | ||
|
|
1946344e90 | ||
|
|
d7d3379ac1 | ||
|
|
ea3837be7e | ||
|
|
2cdc32dbf4 | ||
|
|
01c8df7419 | ||
|
|
5af0c6d30d | ||
|
|
8e5204a9de | ||
|
|
bfd8926f27 | ||
|
|
ca1df238c0 | ||
|
|
6e377eb159 | ||
|
|
730e0fa3f6 | ||
|
|
f9e3ca27b2 | ||
|
|
4db51af589 | ||
|
|
c6796be614 | ||
|
|
39f7bafcae | ||
|
|
9c9482c2aa | ||
|
|
309436616a | ||
|
|
fefc9af5dd | ||
|
|
d54367545e | ||
|
|
5bb561afbc | ||
|
|
987dbf76ec | ||
|
|
76fa7a983c | ||
|
|
75120a4782 | ||
|
|
cab75b70e7 | ||
|
|
f79a944433 | ||
|
|
70b00421a8 | ||
|
|
1f6a0029ec | ||
|
|
74225d2dde | ||
|
|
dcd4d1e0d2 | ||
|
|
f755b80406 | ||
|
|
c9c32344ae | ||
|
|
52aa559ef3 | ||
|
|
eb75225596 | ||
|
|
b45dd5a392 | ||
|
|
69e62efb88 | ||
|
|
595a6e31b3 | ||
|
|
6eaa8e1f59 | ||
|
|
ad0f7fbbe5 | ||
|
|
7268f0cf39 | ||
|
|
a97d406096 | ||
|
|
a2e905224c | ||
|
|
0dc8058d48 | ||
|
|
70b8785b17 | ||
|
|
6cf1cfe2b4 | ||
|
|
f042e2ce31 | ||
|
|
25da47049d | ||
|
|
7638e54a40 | ||
|
|
fc3ed109c1 | ||
|
|
0b223c0f6d | ||
|
|
d821a30f9a | ||
|
|
b0d2e87a43 | ||
|
|
cb65c8cae2 | ||
|
|
7120192808 | ||
|
|
0578ce5efe | ||
|
|
a9b08c9f8d | ||
|
|
255175edae | ||
|
|
8ecdcbc8d9 | ||
|
|
660bbd3662 | ||
|
|
205c347345 | ||
|
|
9c3eac0931 | ||
|
|
74b33ba41f | ||
|
|
69a43fb5ce | ||
|
|
5304754607 | ||
|
|
e2eca55f2c | ||
|
|
6ada92e41f | ||
|
|
48edc9f66d | ||
|
|
ede3b8ff2d | ||
|
|
603ca92677 | ||
|
|
81ca8c3e56 | ||
|
|
98b7f1b215 | ||
|
|
a578c315bd | ||
|
|
b6304a318b | ||
|
|
823743f27a | ||
|
|
942d62da1c | ||
|
|
4f3a648ff7 | ||
|
|
f4da1f458e | ||
|
|
8f0089a920 | ||
|
|
0b8e37fa0f | ||
|
|
46a9ac2071 | ||
|
|
564795482d | ||
|
|
de534dfef9 | ||
|
|
1d37a606a9 | ||
|
|
6e51e9a041 | ||
|
|
2dcfdcea30 | ||
|
|
a437e25869 | ||
|
|
a95a506991 | ||
|
|
0d70eeaf2c | ||
|
|
b925f3c318 | ||
|
|
d026ad8086 | ||
|
|
06e358c7ca | ||
|
|
3d4bc1021b | ||
|
|
c6e2474b78 | ||
|
|
d1cd13b661 | ||
|
|
f9e9ec3a3e | ||
|
|
5142ac7249 | ||
|
|
7fc9081fee | ||
|
|
a575a9b193 | ||
|
|
ffa172d31e | ||
|
|
2002ce930b | ||
|
|
4b8c574878 | ||
|
|
1debec305f | ||
|
|
6caa4224c6 | ||
|
|
531cc6069e | ||
|
|
2c190b59c1 | ||
|
|
443a0b89d5 | ||
|
|
123a2dedb2 | ||
|
|
2b4a48d545 | ||
|
|
0d37563c0e | ||
|
|
4806576c95 | ||
|
|
b6c6985468 | ||
|
|
a7a576d5c5 | ||
|
|
27a92bfa2a | ||
|
|
dd03ec52d0 | ||
|
|
1e455c9cb7 | ||
|
|
43c3cf66ee | ||
|
|
36cf355909 | ||
|
|
3e3346e7e5 | ||
|
|
c3e31e941c | ||
|
|
ce0fb89e80 | ||
|
|
461c0e586e | ||
|
|
5af7eea855 | ||
|
|
d9affaa686 | ||
|
|
97bc04fb44 | ||
|
|
0f48c24eb5 | ||
|
|
0264f06d5c | ||
|
|
f154bcae55 | ||
|
|
31a4d1d5da | ||
|
|
fb7fb476cf | ||
|
|
9f9e5cecda | ||
|
|
ea315fd790 | ||
|
|
aaeb70af5f | ||
|
|
7c7a27cf5c | ||
|
|
962b8dde24 | ||
|
|
f2c15c217b | ||
|
|
095b3501f4 | ||
|
|
e4d95caf8d | ||
|
|
f80c483894 | ||
|
|
0e72a4d84b | ||
|
|
703630666f | ||
|
|
e2c2d52554 | ||
|
|
525147fa35 | ||
|
|
6a03e6089d | ||
|
|
2db6b2894a | ||
|
|
e062a19166 | ||
|
|
a6148fb42e | ||
|
|
2b8383565c | ||
|
|
2e0d4a0cc8 | ||
|
|
ebb943a800 | ||
|
|
c01c964d04 | ||
|
|
7ecddfa2da | ||
|
|
6302a93431 | ||
|
|
e7d356dd93 | ||
|
|
b310447bfc | ||
|
|
8fc99ff7a4 | ||
|
|
e0f53eaeed | ||
|
|
b23555daa7 | ||
|
|
dc3e5a21f8 | ||
|
|
2f2bab306e | ||
|
|
f7b5010a15 | ||
|
|
6c4c0a32e6 | ||
|
|
c99417ee25 | ||
|
|
61140bb196 | ||
|
|
e7692596f2 | ||
|
|
85d26ae3a5 | ||
|
|
895ab9310b | ||
|
|
55aab24f6c | ||
|
|
e27d8fbc96 | ||
|
|
429f791157 | ||
|
|
7a1876a7ad | ||
|
|
2d9ed09301 | ||
|
|
878d8faf4d | ||
|
|
2b92feb4d6 | ||
|
|
ad98cd1f18 | ||
|
|
e883a034bf | ||
|
|
1fbf9e7335 | ||
|
|
1fed781572 | ||
|
|
4e82d69a5c | ||
|
|
07d5fb9820 | ||
|
|
22159ce694 | ||
|
|
a379fabfdb | ||
|
|
e3f13cecea | ||
|
|
c6f4a239cc | ||
|
|
a3c469a008 | ||
|
|
005f5a6700 | ||
|
|
d591cf3617 | ||
|
|
c7c4ec30b6 | ||
|
|
19d0189740 | ||
|
|
65a3bd09ac | ||
|
|
8f79507859 | ||
|
|
12e9dc845f | ||
|
|
7b4ecab2a6 | ||
|
|
2b706611eb | ||
|
|
3c8b62d160 | ||
|
|
c8ee0674bd | ||
|
|
e3299996a7 | ||
|
|
47bdf7e849 | ||
|
|
025dd7a538 | ||
|
|
63ae14ea12 | ||
|
|
d3f84c1b9a | ||
|
|
192eecd28b | ||
|
|
c8981325aa | ||
|
|
2cc9d939c7 | ||
|
|
d3538d6bb3 | ||
|
|
eab2efadd8 | ||
|
|
475cfa1187 | ||
|
|
b713991356 | ||
|
|
ebaed21c50 | ||
|
|
1979087877 | ||
|
|
d3586da606 | ||
|
|
051d4d14fc | ||
|
|
d4e774f420 | ||
|
|
bbbf66889e | ||
|
|
50d55c8a5c | ||
|
|
d0870b6448 | ||
|
|
ced874f29e | ||
|
|
9995284044 | ||
|
|
4fa2232499 | ||
|
|
0820f8c4f8 | ||
|
|
0beec90b1c | ||
|
|
56ecb9c425 | ||
|
|
5c39febe58 | ||
|
|
39153bf436 | ||
|
|
52afc653e4 | ||
|
|
98501c6dbe | ||
|
|
eb00df80a4 | ||
|
|
153e4965bb | ||
|
|
33cbac488e | ||
|
|
05233263f3 | ||
|
|
045a5b0b0e | ||
|
|
5dcc3bbf9b | ||
|
|
f10343fac9 | ||
|
|
0efffd86c2 | ||
|
|
1583e7b474 | ||
|
|
eb3f5099f5 | ||
|
|
c9c07ce83f | ||
|
|
c9cf9c6bbf | ||
|
|
1a3c3c6c21 | ||
|
|
339938581a | ||
|
|
030cfc3ebb | ||
|
|
866b244123 | ||
|
|
a963e2408e | ||
|
|
272ff98e4b | ||
|
|
36897b15c3 | ||
|
|
8ecf9d458a | ||
|
|
1859a1a77c | ||
|
|
a0f503ead5 | ||
|
|
2ca6de6084 | ||
|
|
378927e526 | ||
|
|
bad53871de | ||
|
|
c1b3cd0fa2 | ||
|
|
6410e2ddba | ||
|
|
57f0ba4fb8 | ||
|
|
017a7bbdc8 | ||
|
|
ab63d8c5ea | ||
|
|
635bbc2b17 | ||
|
|
4fb082a70a | ||
|
|
672e424481 | ||
|
|
4c33e80d7d | ||
|
|
e7912e7678 | ||
|
|
cd51636fd6 | ||
|
|
a7836d88aa | ||
|
|
c6915e8c94 | ||
|
|
509762afda | ||
|
|
8cacf679f8 | ||
|
|
ce8a2a211e | ||
|
|
7ccb44a561 | ||
|
|
a062233d1e | ||
|
|
ee35db3f13 | ||
|
|
7a593a65df | ||
|
|
0b756ed647 | ||
|
|
4fa6030154 | ||
|
|
66b2bb3321 | ||
|
|
f794a160f7 | ||
|
|
5f58a61eb7 | ||
|
|
bb39c04c82 | ||
|
|
c061038993 | ||
|
|
8888b8ca71 | ||
|
|
f6164cec9b | ||
|
|
13264ee033 | ||
|
|
fce1b2e79c | ||
|
|
420f10510b | ||
|
|
73fac2351c | ||
|
|
459d494a40 | ||
|
|
6f40befa55 | ||
|
|
6b003ddfd1 | ||
|
|
556d06edc3 | ||
|
|
808004231a | ||
|
|
bc50bc9799 | ||
|
|
e18ede29fe | ||
|
|
ff09a8b1ac | ||
|
|
b54c3550b0 | ||
|
|
9d447db75f | ||
|
|
ddc487524d | ||
|
|
964ba4da07 | ||
|
|
262da060ad | ||
|
|
7bb188b05c | ||
|
|
96cbb0e425 | ||
|
|
8860647786 | ||
|
|
aef2f54232 | ||
|
|
f04f96a2c2 | ||
|
|
54bf6d7b30 | ||
|
|
de3bda3fa9 | ||
|
|
9e7f026486 | ||
|
|
ee789afb83 | ||
|
|
c7b82f3fd8 | ||
|
|
3b4b79b2c1 | ||
|
|
666ed30fee | ||
|
|
135619ca9a | ||
|
|
6315ac3828 | ||
|
|
8b17fd7c8b | ||
|
|
93124525da | ||
|
|
08df72918d | ||
|
|
6447d9194c | ||
|
|
481f8049a7 | ||
|
|
ccff74d3dd | ||
|
|
fdf0dd13ad | ||
|
|
d788c7fb05 | ||
|
|
6165bc30f3 | ||
|
|
3b9d51ef39 | ||
|
|
e9dadb2a8f | ||
|
|
e90f7606c9 | ||
|
|
a6a1f8470c | ||
|
|
5e7b1f5159 | ||
|
|
ab0681845a | ||
|
|
4b1bd378b9 | ||
|
|
5f316d1cc0 | ||
|
|
437fc67164 | ||
|
|
b78057d8b7 | ||
|
|
fcba583965 | ||
|
|
efb974c063 | ||
|
|
3fecd4eba3 | ||
|
|
2c4a507ec6 | ||
|
|
8a1772e3ff | ||
|
|
10648d2877 | ||
|
|
dd0ecc4677 | ||
|
|
74afbd0efc | ||
|
|
dfe85974ca | ||
|
|
b07aee3fc2 | ||
|
|
4f02af8e4c | ||
|
|
546e8cadac | ||
|
|
9818bfe794 | ||
|
|
b2d374cf33 | ||
|
|
c4d4e73567 | ||
|
|
523b2a1584 | ||
|
|
f370831f37 | ||
|
|
24c019a056 | ||
|
|
3cc2ded7e2 | ||
|
|
89e323404a | ||
|
|
5705e70242 | ||
|
|
2ba3868420 | ||
|
|
e1632511d0 | ||
|
|
fd83ad5fca | ||
|
|
a4d03764cb | ||
|
|
3121282776 | ||
|
|
eddf668c58 | ||
|
|
fde0dc17b7 | ||
|
|
08423771b0 | ||
|
|
e9d620e19f | ||
|
|
fbc0649c49 | ||
|
|
850872b2d1 | ||
|
|
0d6ed67a90 | ||
|
|
87f07986f1 | ||
|
|
7c8f41fd54 | ||
|
|
7a5f7080e4 | ||
|
|
d961206948 | ||
|
|
a915689a45 | ||
|
|
ce161a97cd | ||
|
|
6f10040be4 | ||
|
|
bbe2801b29 | ||
|
|
c4c7717184 | ||
|
|
701d8bd46b | ||
|
|
e65082804c | ||
|
|
9d4ded1447 | ||
|
|
f02afd724b | ||
|
|
26942a46f3 | ||
|
|
c25fcc83ba | ||
|
|
5f93cd3b89 | ||
|
|
b468adfb0d | ||
|
|
82a80bcbf5 | ||
|
|
bd2d158c33 | ||
|
|
69e69982e8 | ||
|
|
98faf9b0af | ||
|
|
aa27bf83be | ||
|
|
988d9fa64b | ||
|
|
29f96edb05 | ||
|
|
985ea88ccf | ||
|
|
94a36f74d0 | ||
|
|
2f58c85e0c | ||
|
|
bb064ec8c8 | ||
|
|
4030b9e48f | ||
|
|
10d9c5372a | ||
|
|
5237717fc4 | ||
|
|
740bd128d7 | ||
|
|
1ae63d4ca5 | ||
|
|
7dfad65ff7 | ||
|
|
d71b7ec989 | ||
|
|
02080bb9b1 | ||
|
|
5db64038cb | ||
|
|
6f2ec35d0b | ||
|
|
a17a7aef5c | ||
|
|
313fc8e682 | ||
|
|
bf3ce8baf2 | ||
|
|
b0eee67a21 | ||
|
|
c52e0a1110 | ||
|
|
cf8d099cdc | ||
|
|
2687ff42d8 | ||
|
|
034829b7e3 | ||
|
|
0584843042 | ||
|
|
6ac6e68eb0 | ||
|
|
cd537a1ebc | ||
|
|
ceeb688e95 | ||
|
|
0674a59872 | ||
|
|
8d7914b232 | ||
|
|
596d6efc54 | ||
|
|
4ef45c6639 | ||
|
|
306eb06af2 | ||
|
|
d1ea4b3b2f | ||
|
|
fa7645ada7 | ||
|
|
3aca9c4155 | ||
|
|
df7bd84cc5 | ||
|
|
636a89aa5b | ||
|
|
300732dab6 | ||
|
|
623c4ea4fd | ||
|
|
bb98ccf552 | ||
|
|
db9f2233aa | ||
|
|
8b6f1f024b | ||
|
|
e0a1ee72af | ||
|
|
4d07bd6b46 | ||
|
|
682e1726ec | ||
|
|
1edfa248c7 | ||
|
|
0cfb1d941a | ||
|
|
7e35ebb153 | ||
|
|
35d4d89993 | ||
|
|
cce1c60fb4 | ||
|
|
c435bf75a0 | ||
|
|
5ad7e468ef | ||
|
|
edd5f73d9c | ||
|
|
6f2c0a34f3 | ||
|
|
f37a177e1f | ||
|
|
7a93b97826 | ||
|
|
f3d20a1d74 | ||
|
|
7c536cd253 | ||
|
|
b8e97ce156 | ||
|
|
a9962768fe | ||
|
|
c51f1aa006 | ||
|
|
61ccc33e3b | ||
|
|
69eecf1846 | ||
|
|
ed4d1fc34d | ||
|
|
2a451d7b9d | ||
|
|
ed06d70391 | ||
|
|
da11a14bc1 | ||
|
|
ab5c103355 | ||
|
|
da6428688a | ||
|
|
7abb526a11 | ||
|
|
e45a663ab9 | ||
|
|
6fe7674824 | ||
|
|
536344fcfb | ||
|
|
e7fe386d33 | ||
|
|
43ec7b801e | ||
|
|
2c8076cce1 | ||
|
|
214e752eb0 | ||
|
|
033ce4d481 | ||
|
|
5a89bfccb8 | ||
|
|
1c44a8ef54 | ||
|
|
4a485c4265 | ||
|
|
52e826e1b4 | ||
|
|
d01533ba4e | ||
|
|
44ec67a335 | ||
|
|
4fd94463f1 | ||
|
|
b5070c775c | ||
|
|
6723f3050b | ||
|
|
757e22cb18 |
3
.github/ISSUE_TEMPLATE/01_bug_report.yml
vendored
3
.github/ISSUE_TEMPLATE/01_bug_report.yml
vendored
@@ -36,8 +36,7 @@ body:
|
||||
options:
|
||||
- "Please select a version."
|
||||
- "- Unstable (26.11)"
|
||||
- "- Beta (26.05)"
|
||||
- "- Stable (25.11)"
|
||||
- "- Stable (26.05)"
|
||||
default: 0
|
||||
validations:
|
||||
required: true
|
||||
|
||||
@@ -36,8 +36,7 @@ body:
|
||||
options:
|
||||
- "Please select a version."
|
||||
- "- Unstable (26.11)"
|
||||
- "- Beta (26.05)"
|
||||
- "- Stable (25.11)"
|
||||
- "- Stable (26.05)"
|
||||
default: 0
|
||||
validations:
|
||||
required: true
|
||||
|
||||
@@ -36,8 +36,7 @@ body:
|
||||
options:
|
||||
- "Please select a version."
|
||||
- "- Unstable (26.11)"
|
||||
- "- Beta (26.05)"
|
||||
- "- Stable (25.11)"
|
||||
- "- Stable (26.05)"
|
||||
default: 0
|
||||
validations:
|
||||
required: true
|
||||
|
||||
3
.github/ISSUE_TEMPLATE/04_build_failure.yml
vendored
3
.github/ISSUE_TEMPLATE/04_build_failure.yml
vendored
@@ -38,8 +38,7 @@ body:
|
||||
options:
|
||||
- "Please select a version."
|
||||
- "- Unstable (26.11)"
|
||||
- "- Beta (26.05)"
|
||||
- "- Stable (25.11)"
|
||||
- "- Stable (26.05)"
|
||||
default: 0
|
||||
validations:
|
||||
required: true
|
||||
|
||||
3
.github/ISSUE_TEMPLATE/05_update_request.yml
vendored
3
.github/ISSUE_TEMPLATE/05_update_request.yml
vendored
@@ -38,8 +38,7 @@ body:
|
||||
options:
|
||||
- "Please select a version."
|
||||
- "- Unstable (26.11)"
|
||||
- "- Beta (26.05)"
|
||||
- "- Stable (25.11)"
|
||||
- "- Stable (26.05)"
|
||||
default: 0
|
||||
validations:
|
||||
required: true
|
||||
|
||||
3
.github/ISSUE_TEMPLATE/06_module_request.yml
vendored
3
.github/ISSUE_TEMPLATE/06_module_request.yml
vendored
@@ -36,8 +36,7 @@ body:
|
||||
options:
|
||||
- "Please select a version."
|
||||
- "- Unstable (26.11)"
|
||||
- "- Beta (26.05)"
|
||||
- "- Stable (25.11)"
|
||||
- "- Stable (26.05)"
|
||||
default: 0
|
||||
validations:
|
||||
required: true
|
||||
|
||||
1
.github/labeler.yml
vendored
1
.github/labeler.yml
vendored
@@ -9,6 +9,7 @@
|
||||
- '^release-'
|
||||
- '^staging-\d'
|
||||
- '^staging-next-\d'
|
||||
- '^staging-nixos-\d'
|
||||
|
||||
# NOTE: bsd, darwin and cross-compilation labels are handled by ofborg
|
||||
"6.topic: agda":
|
||||
|
||||
@@ -56,6 +56,12 @@
|
||||
/pkgs/top-level/splice.nix @Ericson2314
|
||||
/pkgs/top-level/release-cross.nix @Ericson2314
|
||||
/pkgs/top-level/by-name-overlay.nix @infinisil @philiptaron
|
||||
/pkgs/top-level/config.nix @jopejoe1
|
||||
/pkgs/top-level/make-tarball.nix @jopejoe1
|
||||
/pkgs/top-level/packages-config.nix @jopejoe1
|
||||
/pkgs/top-level/packages-info.nix @jopejoe1
|
||||
/pkgs/top-level/release-lib.nix @jopejoe1
|
||||
/pkgs/top-level/release.nix @jopejoe1
|
||||
/pkgs/stdenv @philiptaron @NixOS/stdenv
|
||||
/pkgs/stdenv/generic @Ericson2314 @NixOS/stdenv
|
||||
/pkgs/stdenv/generic/problems.nix @infinisil
|
||||
@@ -73,6 +79,7 @@
|
||||
|
||||
## Format generators/serializers
|
||||
/pkgs/pkgs-lib @Stunkymonkey @h7x4
|
||||
/pkgs/pkgs-lib/formats/json2x @Stunkymonkey @h7x4 @figsoda
|
||||
|
||||
# Nixpkgs build-support
|
||||
/pkgs/build-support/writers @lassulus
|
||||
@@ -189,8 +196,6 @@ 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
|
||||
|
||||
@@ -48,7 +48,6 @@ Based on the packages defined in `pkgs/top-level/python-packages.nix` an
|
||||
attribute set is created for each available Python interpreter. The available
|
||||
sets are
|
||||
|
||||
* `pkgs.python27Packages`
|
||||
* `pkgs.python3Packages`
|
||||
* `pkgs.python311Packages`
|
||||
* `pkgs.python312Packages`
|
||||
@@ -60,9 +59,7 @@ sets are
|
||||
|
||||
and the aliases
|
||||
|
||||
* `pkgs.python2Packages` pointing to `pkgs.python27Packages`
|
||||
* `pkgs.python3Packages` pointing to `pkgs.python313Packages`
|
||||
* `pkgs.pythonPackages` pointing to `pkgs.python2Packages`
|
||||
* `pkgs.pypy2Packages` pointing to `pkgs.pypy27Packages`
|
||||
* `pkgs.pypy3Packages` pointing to `pkgs.pypy310Packages`
|
||||
* `pkgs.pypyPackages` pointing to `pkgs.pypy2Packages`
|
||||
@@ -287,29 +284,27 @@ because their behaviour is different:
|
||||
The `buildPythonPackage` function has a `overridePythonAttrs` method that can be
|
||||
used to override the package. In the following example we create an environment
|
||||
where we have the `blaze` package using an older version of `pandas`. We
|
||||
override first the Python interpreter and pass `packageOverrides` which contains
|
||||
the overrides for packages in the package set.
|
||||
first override the Python package set, then instantiate an interpreter with
|
||||
that package set.
|
||||
|
||||
```nix
|
||||
with import <nixpkgs> { };
|
||||
|
||||
let
|
||||
python = pkgs.python3.override {
|
||||
packageOverrides = self: super: {
|
||||
pandas = super.pandas.overridePythonAttrs (
|
||||
finalAttrs: prevAttrs: {
|
||||
version = "0.19.1";
|
||||
src = fetchPypi {
|
||||
pname = "pandas";
|
||||
inherit (finalAttrs) version;
|
||||
hash = "sha256-JQn+rtpy/OA2deLszSKEuxyttqBzcAil50H+JDHUdCE=";
|
||||
};
|
||||
}
|
||||
);
|
||||
};
|
||||
};
|
||||
pythonPackages = python3Packages.overrideScope (
|
||||
final: prev: {
|
||||
pandas = prev.pandas.overridePythonAttrs (old: rec {
|
||||
version = "0.19.1";
|
||||
src = fetchPypi {
|
||||
pname = "pandas";
|
||||
inherit version;
|
||||
hash = "sha256-JQn+rtpy/OA2deLszSKEuxyttqBzcAil50H+JDHUdCE=";
|
||||
};
|
||||
});
|
||||
}
|
||||
);
|
||||
in
|
||||
(python.withPackages (ps: [ ps.blaze ])).env
|
||||
(pythonPackages.python.withPackages (ps: [ ps.blaze ])).env
|
||||
```
|
||||
|
||||
The next example shows a non trivial overriding of the `blas` implementation to
|
||||
@@ -317,15 +312,16 @@ be used through out all of the Python package set:
|
||||
|
||||
```nix
|
||||
{
|
||||
python3MyBlas = pkgs.python3.override {
|
||||
packageOverrides = self: super: {
|
||||
python3PackagesWithBlas = python3Packages.overrideScope (
|
||||
final: prev: {
|
||||
# We need toPythonModule for the package set to evaluate this
|
||||
blas = super.toPythonModule (super.pkgs.blas.override { blasProvider = super.pkgs.mkl; });
|
||||
lapack = super.toPythonModule (super.pkgs.lapack.override { lapackProvider = super.pkgs.mkl; });
|
||||
};
|
||||
};
|
||||
blas = final.toPythonModule (prev.blas.override { blasProvider = final.mkl; });
|
||||
lapack = final.toPythonModule (prev.lapack.override { lapackProvider = final.mkl; });
|
||||
}
|
||||
);
|
||||
}
|
||||
```
|
||||
This will create a new Python package set with the blas and lapack implementation set to Intel MKL.
|
||||
|
||||
This is particularly useful for numpy and scipy users who want to gain speed with other blas implementations.
|
||||
Note that using `scipy = super.scipy.override { blas = super.pkgs.mkl; };` will likely result in
|
||||
@@ -457,11 +453,10 @@ Note that overriding packages deeper in the dependency graph _can_ work, but it'
|
||||
let
|
||||
pyproject = pkgs.lib.importTOML ./pyproject.toml;
|
||||
|
||||
myPython = pkgs.python.override {
|
||||
self = myPython;
|
||||
packageOverrides = pyfinal: pyprev: {
|
||||
myPython3Packages = pkgs.python3Packages.overrideScope (
|
||||
final: _: {
|
||||
# An editable package with a script that loads our mutable location
|
||||
my-editable = pyfinal.mkPythonEditablePackage {
|
||||
my-editable = final.mkPythonEditablePackage {
|
||||
# Inherit project metadata from pyproject.toml
|
||||
pname = pyproject.project.name;
|
||||
inherit (pyproject.project) version;
|
||||
@@ -472,10 +467,10 @@ let
|
||||
# Inject a script (other PEP-621 entrypoints are also accepted)
|
||||
inherit (pyproject.project) scripts;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
pythonEnv = myPython.withPackages (ps: [ ps.my-editable ]);
|
||||
pythonEnv = myPython3Packages.python.withPackages (ps: [ ps.my-editable ]);
|
||||
|
||||
in
|
||||
pkgs.mkShell { packages = [ pythonEnv ]; }
|
||||
@@ -575,9 +570,6 @@ In contrast to [`python.buildEnv`](#python.buildenv-function), [`python.withPack
|
||||
more advanced options such as `ignoreCollisions = true` or `postBuild`. If you
|
||||
need them, you have to use [`python.buildEnv`](#python.buildenv-function).
|
||||
|
||||
Python 2 namespace packages may provide `__init__.py` that collide. In that case
|
||||
[`python.buildEnv`](#python.buildenv-function) should be used with `ignoreCollisions = true`.
|
||||
|
||||
#### Setup hooks {#setup-hooks}
|
||||
|
||||
The following are setup hooks specifically for Python packages. Most of these
|
||||
@@ -629,10 +621,9 @@ buildPythonPackage.override { stdenv = customStdenv; } {
|
||||
|
||||
Several versions of the Python interpreter are available on Nix, as well as a
|
||||
high amount of packages. The attribute `python3` refers to the default
|
||||
interpreter, which is currently CPython 3.13. The attribute `python` refers to
|
||||
CPython 2.7 for backwards compatibility. It is also possible to refer to
|
||||
specific versions, e.g., `python313` refers to CPython 3.13, and `pypy` refers to
|
||||
the default PyPy interpreter.
|
||||
interpreter, which is currently CPython 3.13. It is also possible to refer to
|
||||
specific versions, e.g., `python313` refers to CPython 3.13, and `pypy` refers
|
||||
to the default PyPy interpreter.
|
||||
|
||||
Python is used a lot, and in different ways. This affects also how it is
|
||||
packaged. In the case of Python on Nix, an important distinction is made between
|
||||
@@ -644,14 +635,6 @@ In the Nixpkgs tree Python applications can be found throughout, depending on
|
||||
what they do, and are called from the main package set. Python libraries,
|
||||
however, are in separate sets, with one set per interpreter version.
|
||||
|
||||
The interpreters have several common attributes. One of these attributes is
|
||||
`pkgs`, which is a package set of Python libraries for this specific
|
||||
interpreter. E.g., the `toolz` package corresponding to the default interpreter
|
||||
is `python3.pkgs.toolz`, and the CPython 3.13 version is `python313.pkgs.toolz`.
|
||||
The main package set contains aliases to these package sets, e.g.
|
||||
`pythonPackages` refers to `python.pkgs` and `python313Packages` to
|
||||
`python313.pkgs`.
|
||||
|
||||
#### Installing Python and packages {#installing-python-and-packages}
|
||||
|
||||
The Nix and NixOS manuals explain how packages are generally installed. In the
|
||||
@@ -1021,7 +1004,7 @@ information. The output of the function is a derivation.
|
||||
|
||||
An expression for `toolz` can be found in the Nixpkgs repository. As explained
|
||||
in the introduction of this Python section, a derivation of `toolz` is available
|
||||
for each interpreter version, e.g. `python313.pkgs.toolz` refers to the `toolz`
|
||||
for each interpreter version, e.g. `python313Packages.toolz` refers to the `toolz`
|
||||
derivation corresponding to the CPython 3.13 interpreter.
|
||||
|
||||
The above example works when you're directly working on
|
||||
@@ -1036,7 +1019,7 @@ with import <nixpkgs> { };
|
||||
|
||||
(
|
||||
let
|
||||
my_toolz = python313.pkgs.buildPythonPackage (finalAttrs: {
|
||||
my_toolz = python313Packages.buildPythonPackage (finalAttrs: {
|
||||
pname = "toolz";
|
||||
version = "0.10.0";
|
||||
pyproject = true;
|
||||
@@ -1046,7 +1029,7 @@ with import <nixpkgs> { };
|
||||
hash = "sha256-CP3V73yWSArRHBLUct4hrNMjWZlvaaUlkpm1QP66RWA=";
|
||||
};
|
||||
|
||||
build-system = [ python313.pkgs.setuptools ];
|
||||
build-system = [ python313Packages.setuptools ];
|
||||
|
||||
# has no tests
|
||||
doCheck = false;
|
||||
@@ -1059,7 +1042,7 @@ with import <nixpkgs> { };
|
||||
});
|
||||
|
||||
in
|
||||
python313.withPackages (
|
||||
python313Packages.python.withPackages (
|
||||
ps: with ps; [
|
||||
numpy
|
||||
my_toolz
|
||||
@@ -1080,6 +1063,11 @@ of [`withPackages`](#python.withpackages-function) we used a `let` expression. Y
|
||||
`toolz` from the Nixpkgs package set this time, but instead took our own version
|
||||
that we introduced with the `let` expression.
|
||||
|
||||
There is also a legacy API that can be accessed via `python3.pkgs`, which will also give access to
|
||||
the Python package set for a given interpreter. This API is not recommended to be used anymore
|
||||
because the package set at `python3.pkgs` is not spliced, while the package set at `python3Packages`
|
||||
is. This can lead to strange errors during cross-compilation, or if Python is used at build time.
|
||||
|
||||
#### Handling dependencies {#handling-dependencies}
|
||||
|
||||
Our example, `toolz`, does not have any dependencies on other Python packages or system libraries.
|
||||
@@ -1717,27 +1705,22 @@ should also be done when packaging `A`.
|
||||
|
||||
### How to override a Python package? {#how-to-override-a-python-package}
|
||||
|
||||
We can override the interpreter and pass `packageOverrides`. In the following
|
||||
example we rename the `pandas` package and build it.
|
||||
We can override the Python package set, then instantiate an interpreter with it.
|
||||
In the following example we rename the `pandas` package and build it.
|
||||
|
||||
```nix
|
||||
with import <nixpkgs> { };
|
||||
|
||||
(
|
||||
let
|
||||
python =
|
||||
let
|
||||
packageOverrides = self: super: {
|
||||
pandas = super.pandas.overridePythonAttrs (old: {
|
||||
name = "foo";
|
||||
});
|
||||
};
|
||||
in
|
||||
pkgs.python313.override { inherit packageOverrides; };
|
||||
|
||||
in
|
||||
python.withPackages (ps: [ ps.pandas ])
|
||||
).env
|
||||
let
|
||||
pythonPackages = python3Packages.overrideScope (
|
||||
final: prev: {
|
||||
pandas = prev.pandas.overridePythonAttrs {
|
||||
name = "foo";
|
||||
};
|
||||
}
|
||||
);
|
||||
in
|
||||
(pythonPackages.python.withPackages (ps: [ ps.pandas ])).env
|
||||
```
|
||||
|
||||
Using `nix-build` on this expression will build an environment that contains the
|
||||
@@ -1753,12 +1736,10 @@ the updated `scipy` version.
|
||||
```nix
|
||||
with import <nixpkgs> { };
|
||||
|
||||
(
|
||||
let
|
||||
packageOverrides = self: super: { scipy = super.scipy_0_17; };
|
||||
in
|
||||
(pkgs.python313.override { inherit packageOverrides; }).withPackages (ps: [ ps.blaze ])
|
||||
).env
|
||||
let
|
||||
pythonPackages = python313Packages.overrideScope (_: prev: { scipy = prev.scipy_0_17; });
|
||||
in
|
||||
(pythonPackages.python.withPackages (ps: [ ps.blaze ])).env
|
||||
```
|
||||
|
||||
The requested package `blaze` depends on `pandas` which itself depends on `scipy`.
|
||||
@@ -1772,14 +1753,16 @@ let
|
||||
pkgs = import <nixpkgs> { };
|
||||
newpkgs = import pkgs.path {
|
||||
overlays = [
|
||||
(self: super: {
|
||||
(_: prev: {
|
||||
python313 =
|
||||
let
|
||||
packageOverrides = python-self: python-super: {
|
||||
numpy = python-super.numpy_1_18;
|
||||
};
|
||||
pythonPackages = prev.python313Packages.overrideScope (
|
||||
_: prev: {
|
||||
numpy = prev.numpy_1_18;
|
||||
}
|
||||
);
|
||||
in
|
||||
super.python313.override { inherit packageOverrides; };
|
||||
pythonPackages.python3;
|
||||
})
|
||||
];
|
||||
};
|
||||
@@ -1920,9 +1903,8 @@ pkgs.mkShell rec {
|
||||
}
|
||||
```
|
||||
|
||||
In case the supplied venvShellHook is insufficient, or when Python 2 support is
|
||||
needed, you can define your own shell hook and adapt to your needs like in the
|
||||
following example:
|
||||
In case the supplied venvShellHook is insufficient, you can define your own
|
||||
shell hook and adapt to your needs like in the following example:
|
||||
|
||||
```nix
|
||||
with import <nixpkgs> { };
|
||||
@@ -1935,8 +1917,6 @@ pkgs.mkShell rec {
|
||||
name = "impurePythonEnv";
|
||||
buildInputs = [
|
||||
pythonPackages.python
|
||||
# Needed when using python 2.7
|
||||
# pythonPackages.virtualenv
|
||||
# ...
|
||||
];
|
||||
|
||||
@@ -1949,8 +1929,6 @@ pkgs.mkShell rec {
|
||||
echo "Skipping venv creation, '${venvDir}' already exists"
|
||||
else
|
||||
echo "Creating new venv environment in path: '${venvDir}'"
|
||||
# Note that the module venv was only introduced in python 3, so for 2.7
|
||||
# this needs to be replaced with a call to virtualenv
|
||||
${pythonPackages.python.interpreter} -m venv "${venvDir}"
|
||||
fi
|
||||
|
||||
@@ -1977,19 +1955,17 @@ If you need to change a package's attribute(s) from `configuration.nix` you coul
|
||||
|
||||
```nix
|
||||
{
|
||||
nixpkgs.config.packageOverrides = super: {
|
||||
python3 = super.python3.override {
|
||||
packageOverrides = python-self: python-super: {
|
||||
twisted = python-super.twisted.overridePythonAttrs (oldAttrs: {
|
||||
src = super.fetchPypi {
|
||||
pname = "Twisted";
|
||||
version = "19.10.0";
|
||||
hash = "sha256-c5S6fycq5yKnTz2Wnc9Zm8TvCTvDkgOHSKSQ8XJKUV0=";
|
||||
extension = "tar.bz2";
|
||||
};
|
||||
});
|
||||
nixpkgs.config.packageOverrides = final: _: {
|
||||
python3Packages = super.python3Packages.overrideScope (pySuper: {
|
||||
twisted = pySuper.twisted.overridePythonAttrs {
|
||||
src = final.fetchPypi {
|
||||
pname = "Twisted";
|
||||
version = "19.10.0";
|
||||
hash = "sha256-c5S6fycq5yKnTz2Wnc9Zm8TvCTvDkgOHSKSQ8XJKUV0=";
|
||||
extension = "tar.bz2";
|
||||
};
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
}
|
||||
```
|
||||
@@ -2005,7 +1981,7 @@ this snippet:
|
||||
|
||||
```nix
|
||||
{
|
||||
myPythonPackages = python3Packages.override { overrides = self: super: { twisted = <...>; }; };
|
||||
myPythonPackages = python3Packages.overrideScope (final: super: { twisted = <...>; });
|
||||
}
|
||||
```
|
||||
|
||||
@@ -2014,19 +1990,17 @@ this snippet:
|
||||
Use the following overlay template:
|
||||
|
||||
```nix
|
||||
self: super: {
|
||||
python = super.python.override {
|
||||
packageOverrides = python-self: python-super: {
|
||||
twisted = python-super.twisted.overrideAttrs (oldAttrs: {
|
||||
src = super.fetchPypi {
|
||||
pname = "Twisted";
|
||||
version = "19.10.0";
|
||||
hash = "sha256-c5S6fycq5yKnTz2Wnc9Zm8TvCTvDkgOHSKSQ8XJKUV0=";
|
||||
extension = "tar.bz2";
|
||||
};
|
||||
});
|
||||
self: _: {
|
||||
python3Packages = super.python3Packages.overrideScope (pySuper: {
|
||||
twisted = pySuper.twisted.overrideAttrs {
|
||||
src = final.fetchPypi {
|
||||
pname = "Twisted";
|
||||
version = "19.10.0";
|
||||
hash = "sha256-c5S6fycq5yKnTz2Wnc9Zm8TvCTvDkgOHSKSQ8XJKUV0=";
|
||||
extension = "tar.bz2";
|
||||
};
|
||||
};
|
||||
};
|
||||
});
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Nixpkgs 26.05 ("Yarara", 2026.05/??) {#sec-nixpkgs-release-26.05}
|
||||
# Nixpkgs 26.05 ("Yarara", 2026.05/30) {#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,6 +6,44 @@
|
||||
- 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.
|
||||
|
||||
@@ -74,6 +112,8 @@
|
||||
|
||||
<!-- 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`).
|
||||
@@ -111,6 +151,23 @@
|
||||
|
||||
- `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.
|
||||
@@ -126,8 +183,6 @@
|
||||
- `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.
|
||||
|
||||
- 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 of 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
|
||||
@@ -177,7 +232,7 @@
|
||||
|
||||
- `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.
|
||||
@@ -214,23 +269,12 @@
|
||||
- `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.
|
||||
@@ -253,8 +297,6 @@
|
||||
|
||||
- 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.
|
||||
@@ -284,8 +326,6 @@
|
||||
|
||||
- `shisho` has been removed because it's archived. `semgrep`, `opengrep`, and `ast-grep` provide similar functionality.
|
||||
|
||||
- `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.
|
||||
|
||||
- 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.
|
||||
@@ -296,12 +336,8 @@
|
||||
|
||||
- `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 has had an option `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`.
|
||||
|
||||
- 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.
|
||||
@@ -314,6 +350,8 @@
|
||||
|
||||
- `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.**
|
||||
@@ -324,16 +362,22 @@
|
||||
|
||||
- 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.
|
||||
|
||||
- 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.
|
||||
- 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.
|
||||
|
||||
- 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`.
|
||||
- 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.
|
||||
|
||||
- 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.
|
||||
@@ -368,8 +412,6 @@
|
||||
|
||||
- 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.
|
||||
|
||||
- `gnuradio`: Overriding the `.pkgs` package set is now possible with a `packageOverrides` function, like with `python.pkgs` and other language-specific package sets.
|
||||
@@ -388,8 +430,6 @@ 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. -->
|
||||
@@ -422,4 +462,3 @@ 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 some new settings for managing variable content and filepaths.
|
||||
|
||||
@@ -13,8 +13,14 @@
|
||||
- `hurl` has been updated to `8.x.x` which has some breaking changes. See [upstream changelog](https://github.com/Orange-OpenSource/hurl/releases/tag/8.0.0) for details.
|
||||
- `python3Packages.django-health-check` has been updated to major version 4. See its [migration guide](https://codingjoe.dev/django-health-check/migrate-to-v4/) and [changelog](https://github.com/codingjoe/django-health-check/releases/tag/4.0.0) for breaking changes.
|
||||
|
||||
- `libgdata` has been removed, as it was archived upstream and relied on the insecure libsoup 2.4.
|
||||
|
||||
- `uhttpmock` providing 0.0 ABI was removed. `uhttpmock_1_0` providing 1.0 ABI was renamed to `uhttpmock` and `uhttpmock_1_0` was kept as an alias.
|
||||
|
||||
- `requireFile` now sets `meta.license = lib.licenses.unfree` by default. Users of `requireFile`-based derivations that preserve this default will need to explicitly allow their evaluation as described in [](#sec-allow-unfree).
|
||||
|
||||
- `librest` providing 0.7 ABI was removed. `librest_1_0` providing 1.0 ABI was renamed to `librest` and `librest_1_0` was kept as an alias.
|
||||
|
||||
## Other Notable Changes {#sec-nixpkgs-release-26.11-notable-changes}
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
||||
@@ -309,8 +309,7 @@
|
||||
"members": {
|
||||
"AndersonTorres": 5954806,
|
||||
"adisbladis": 63286,
|
||||
"panchoh": 471059,
|
||||
"ttuegel": 563054
|
||||
"panchoh": 471059
|
||||
},
|
||||
"name": "emacs"
|
||||
},
|
||||
@@ -407,12 +406,13 @@
|
||||
"gnome": {
|
||||
"description": "Maintain GNOME desktop environment and platform.",
|
||||
"id": 3806133,
|
||||
"maintainers": {},
|
||||
"maintainers": {
|
||||
"jtojnar": 705123
|
||||
},
|
||||
"members": {
|
||||
"bobby285271": 20080233,
|
||||
"dasj19": 7589338,
|
||||
"hedning": 71978,
|
||||
"jtojnar": 705123
|
||||
"hedning": 71978
|
||||
},
|
||||
"name": "GNOME"
|
||||
},
|
||||
@@ -702,6 +702,7 @@
|
||||
"Mic92": 96200,
|
||||
"Radvendii": 1239929,
|
||||
"edolstra": 1148549,
|
||||
"lisanna-dettwyler": 72424138,
|
||||
"lovesegfault": 7243783,
|
||||
"xokdvium": 145775305
|
||||
},
|
||||
@@ -819,14 +820,13 @@
|
||||
"description": "Maintain the Qt framework, KDE application suite, Plasma desktop environment and related projects",
|
||||
"id": 4341481,
|
||||
"maintainers": {
|
||||
"ttuegel": 563054
|
||||
"K900": 386765,
|
||||
"NickCao": 15247171,
|
||||
"SuperSandro2000": 7258858
|
||||
},
|
||||
"members": {
|
||||
"FRidh": 2129135,
|
||||
"K900": 386765,
|
||||
"LunNova": 782440,
|
||||
"NickCao": 15247171,
|
||||
"SuperSandro2000": 7258858,
|
||||
"bkchr": 5718007,
|
||||
"ilya-fedin": 17829319,
|
||||
"mjm": 1181,
|
||||
@@ -896,8 +896,7 @@
|
||||
"id": 7304571,
|
||||
"maintainers": {
|
||||
"Mic92": 96200,
|
||||
"winterqt": 78392041,
|
||||
"zowoq": 59103226
|
||||
"winterqt": 78392041
|
||||
},
|
||||
"members": {},
|
||||
"name": "rust"
|
||||
|
||||
@@ -4567,6 +4567,12 @@
|
||||
githubId = 53847249;
|
||||
name = "Casey Avila";
|
||||
};
|
||||
castorNova2 = {
|
||||
email = "solemnsquire@gmail.com";
|
||||
github = "castorNova2";
|
||||
githubId = 84083897;
|
||||
name = "Nidhish Chauhan";
|
||||
};
|
||||
catap = {
|
||||
email = "kirill@korins.ky";
|
||||
github = "catap";
|
||||
@@ -11711,6 +11717,12 @@
|
||||
githubId = 7348004;
|
||||
name = "Benjamin Levy";
|
||||
};
|
||||
iogamaster = {
|
||||
email = "iogamastercode+nixpkgs@gmail.com";
|
||||
name = "IogaMaster";
|
||||
github = "IogaMaster";
|
||||
githubId = 67164465;
|
||||
};
|
||||
ionutnechita = {
|
||||
email = "ionut_n2001@yahoo.com";
|
||||
github = "ionutnechita";
|
||||
@@ -14374,12 +14386,6 @@
|
||||
githubId = 451835;
|
||||
name = "Kirill Elagin";
|
||||
};
|
||||
kirikaza = {
|
||||
email = "k@kirikaza.ru";
|
||||
github = "kirikaza";
|
||||
githubId = 804677;
|
||||
name = "Kirill Kazakov";
|
||||
};
|
||||
kirillrdy = {
|
||||
email = "kirillrdy@gmail.com";
|
||||
github = "kirillrdy";
|
||||
@@ -16477,6 +16483,12 @@
|
||||
githubId = 8094643;
|
||||
keys = [ { fingerprint = "BAA9 7711 58CA D457 B4AE 8B06 8188 423D 2FA2 0A65"; } ];
|
||||
};
|
||||
m4r1vs = {
|
||||
email = "marius.niveri@gmail.com";
|
||||
name = "Marius Niveri";
|
||||
github = "m4r1vs";
|
||||
githubId = 26097311;
|
||||
};
|
||||
m7medvision = {
|
||||
name = "Mohammed";
|
||||
github = "m7medVision";
|
||||
@@ -18727,10 +18739,10 @@
|
||||
keys = [ { fingerprint = "3B66 ACFA D10F 02AA B1D5 2CB1 8DD0 D81D 7D1F C61A"; } ];
|
||||
};
|
||||
mshnwq = {
|
||||
email = "mshnwq.com@gmail.com";
|
||||
email = "hmachnouk@proton.me";
|
||||
github = "mshnwq";
|
||||
githubId = 68467027;
|
||||
name = "Hayan Al-Machnouk";
|
||||
name = "Mshnwq";
|
||||
};
|
||||
msiedlarek = {
|
||||
email = "mikolaj@siedlarek.pl";
|
||||
@@ -19399,6 +19411,11 @@
|
||||
githubId = 79978224;
|
||||
name = "winston";
|
||||
};
|
||||
nelind = {
|
||||
name = "Nel";
|
||||
github = "nelind3";
|
||||
githubId = 57587152;
|
||||
};
|
||||
nelsonjeppesen = {
|
||||
email = "nix@jeppesen.io";
|
||||
github = "NelsonJeppesen";
|
||||
@@ -23370,12 +23387,6 @@
|
||||
githubId = 6047658;
|
||||
name = "Ryan Horiguchi";
|
||||
};
|
||||
rht = {
|
||||
email = "rhtbot@protonmail.com";
|
||||
github = "rht";
|
||||
githubId = 395821;
|
||||
name = "rht";
|
||||
};
|
||||
rhydianjenkins = {
|
||||
name = "Rhydian Jenkins";
|
||||
github = "RhydianJenkins";
|
||||
@@ -23411,6 +23422,13 @@
|
||||
githubId = 61013287;
|
||||
name = "Ricardo Steijn";
|
||||
};
|
||||
ricardomaps = {
|
||||
email = "ricardomapurungajunior@gmail.com";
|
||||
github = "ricardomaps";
|
||||
githubId = 49507078;
|
||||
name = "Ricardo Mapurunga Junior";
|
||||
matrix = "@ricmaps:matrix.org";
|
||||
};
|
||||
richar = {
|
||||
github = "ri-char";
|
||||
githubId = 17962023;
|
||||
@@ -26119,6 +26137,12 @@
|
||||
name = "sportshead";
|
||||
keys = [ { fingerprint = "A6B6 D031 782E BDF7 631A 8E7E A874 DB2C BFD3 CFD0"; } ];
|
||||
};
|
||||
spotdemo4 = {
|
||||
email = "me@trev.xyz";
|
||||
github = "spotdemo4";
|
||||
githubId = 3732640;
|
||||
name = "spotdemo4";
|
||||
};
|
||||
spreetin = {
|
||||
email = "spreetin@protonmail.com";
|
||||
name = "David Falk";
|
||||
@@ -29653,6 +29677,11 @@
|
||||
}
|
||||
];
|
||||
};
|
||||
wilaz = {
|
||||
name = "Wilaz";
|
||||
github = "Wilaz";
|
||||
githubId = 98198668;
|
||||
};
|
||||
wildsebastian = {
|
||||
name = "Sebastian Wild";
|
||||
email = "sebastian@wild-siena.com";
|
||||
|
||||
@@ -662,7 +662,6 @@ with lib.maintainers;
|
||||
python = {
|
||||
members = [
|
||||
hexa
|
||||
natsukium
|
||||
];
|
||||
scope = "Maintain the Python interpreter and related packages.";
|
||||
shortName = "Python";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Release 26.05 ("Yarara", 2026.05/??) {#sec-release-26.05}
|
||||
# Release 26.05 ("Yarara", 2026.05/30) {#sec-release-26.05}
|
||||
|
||||
## Highlights {#sec-release-26.05-highlights}
|
||||
|
||||
@@ -60,6 +60,10 @@
|
||||
|
||||
<!-- 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).
|
||||
@@ -69,9 +73,9 @@
|
||||
|
||||
- [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`. A module for knot-resolver 5 was already available as `services.kresd`.
|
||||
- [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).
|
||||
|
||||
- [ImmichFrame](https://immichframe.dev/), display your photos from Immich as a digital photo frame. Available as `services.immichframe`.
|
||||
- [ImmichFrame](https://immichframe.dev/), display your photos from Immich as a digital photo frame. Available as [services.immichframe](#opt-services.immichframe.enable).
|
||||
|
||||
- [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).
|
||||
|
||||
@@ -79,7 +83,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` module is still available.
|
||||
- [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.
|
||||
|
||||
- [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).
|
||||
|
||||
@@ -103,7 +107,7 @@
|
||||
|
||||
- [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`.
|
||||
- [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).
|
||||
|
||||
- [DankMaterialShell](https://danklinux.com), a complete desktop shell for Wayland compositors built with Quickshell. Available as [programs.dms-shell](#opt-programs.dms-shell.enable).
|
||||
|
||||
@@ -131,19 +135,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.
|
||||
- [Howdy](https://github.com/boltgolt/howdy), a Windows Hello™ style facial authentication program for Linux. Available as [services.howdy](#opt-services.howdy.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.
|
||||
- [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).
|
||||
|
||||
- [linux-enable-ir-emitter](https://github.com/EmixamPP/linux-enable-ir-emitter), a tool used to set up IR cameras, used with Howdy.
|
||||
- [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).
|
||||
|
||||
- [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`.
|
||||
- [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).
|
||||
|
||||
- [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).
|
||||
|
||||
- [RSSHub](https://github.com/DIYgod/RSSHub), a service to convert many sources into rss. Available as `services.rsshub`.
|
||||
- [RSSHub](https://github.com/DIYgod/RSSHub), a service to convert many sources into rss. Available as [services.rsshub](#opt-services.rsshub.enable).
|
||||
|
||||
- [ReFrame](https://github.com/AlynxZhou/reframe), a DRM/KMS based remote desktop for Linux that supports Wayland/NVIDIA/headless/login.
|
||||
- [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)
|
||||
|
||||
- [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).
|
||||
|
||||
@@ -159,7 +163,7 @@
|
||||
|
||||
- [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`.
|
||||
- [whois](https://packages.qa.debian.org/w/whois.html), an intelligent WHOIS client. Available as [programs.whois](#opt-programs.whois.enable).
|
||||
|
||||
- [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).
|
||||
|
||||
@@ -169,6 +173,25 @@
|
||||
|
||||
<!-- 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.
|
||||
@@ -186,9 +209,9 @@
|
||||
|
||||
- `services.crabfit` was removed because its upstream packages are unmaintained and insecure.
|
||||
|
||||
- `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](#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.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.
|
||||
- [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.
|
||||
|
||||
- `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.
|
||||
|
||||
@@ -209,7 +232,7 @@
|
||||
|
||||
- `linux_hardened` kernel has been removed due to a lack of maintenance.
|
||||
|
||||
- `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).
|
||||
- [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).
|
||||
|
||||
- `linux-rt` kernel has been removed due to a lack of maintenance.
|
||||
|
||||
@@ -221,10 +244,10 @@
|
||||
|
||||
- `services.uptime` has been removed because the package it relies on does not exist anymore in nixpkgs.
|
||||
|
||||
- `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.
|
||||
- [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.
|
||||
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 `services.mattermost.package` to change this behavior. For example:
|
||||
see the `pkgs.mattermost` removeUserLimit and removeFreeBadge options combined with [](#opt-services.mattermost.package) to change this behavior. For example:
|
||||
|
||||
```nix
|
||||
{
|
||||
@@ -237,10 +260,10 @@
|
||||
|
||||
- `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` no longer automatically configures a PAM module. This means configurations using `services.vsftpd.localUsers` will no longer work unless `services.vsftpd.enableVirtualUsers` and `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.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 `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 [](#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
|
||||
of pulling the upstream container image from Docker Hub. If you want the old behavior, you can set:
|
||||
|
||||
```nix
|
||||
@@ -254,7 +277,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` 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`](#opt-services.stalwart.enable) 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`.
|
||||
|
||||
@@ -264,9 +287,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` to align with upstream re-brand as a community online calendar.
|
||||
- `services.eintopf` has been renamed to [services.lauti](#opt-services.lauti.enable) 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 `services.oauth2-proxy.clientSecretFile` and `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 [](#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.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.
|
||||
@@ -286,18 +309,11 @@ 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.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.
|
||||
- [services.immich](#opt-services.immich.enable) 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).
|
||||
|
||||
- `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).
|
||||
- [](#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).
|
||||
|
||||
- `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.
|
||||
|
||||
@@ -307,9 +323,7 @@ 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` 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`).
|
||||
- [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.
|
||||
|
||||
- `walker` has been updated to 2.0.0+, which is a complete rewrite in rust.
|
||||
|
||||
@@ -321,7 +335,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` no longer bind mounts Unix sockets of onion services into its chroot
|
||||
- [services.tor](#opt-services.tor.enable) 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>.
|
||||
@@ -330,14 +344,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 `programs.acpilight` offer replacements.
|
||||
- `programs.light` was removed from nixpkgs due to the corresponding package being unmaintained upstream. `brightnessctl` and [hardware.acpilight](#opt-hardware.acpilight.enable) 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.
|
||||
|
||||
- `services.unifi`'s `jrePackage` option now defaults to `jdk25_headless` instead of `jdk17_headless`, in order to be compatible with new versions of `unifi`.
|
||||
- [](#opt-services.unifi.jrePackage) now defaults to `jdk25_headless` instead of `jdk17_headless`, in order to be compatible with new versions of `unifi`.
|
||||
|
||||
- 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.
|
||||
- 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.
|
||||
|
||||
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).
|
||||
|
||||
@@ -357,30 +371,20 @@ 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` 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.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.homepage-dashboard.environmentFile` has been renamed to `services.homepage-dashboard.environmentFiles`, and now expects a list of strings.
|
||||
- `services.homepage-dashboard.environmentFile` has been renamed to [](#opt-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.
|
||||
|
||||
- `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:
|
||||
- `services.jellyseerr` has been renamed to [services.seerr](#opt-services.seerr.enable) 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` 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](#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.
|
||||
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,16 +395,11 @@ 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` 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](#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.
|
||||
|
||||
- `programs.pqos-wrapper` module has been deleted as the corresponding package has been dropped from nixpkgs.
|
||||
|
||||
@@ -410,6 +409,10 @@ 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.
|
||||
@@ -418,12 +421,10 @@ 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.
|
||||
|
||||
- `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.
|
||||
- [](#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.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:
|
||||
@@ -433,44 +434,37 @@ 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.dovecot*, now uses RFC-42-style settings, exposing a structured interface to write the configuration file.
|
||||
- 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.
|
||||
|
||||
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).
|
||||
|
||||
- Cinnamon has been updated to 6.6, please check the [upstream announcement](https://www.linuxmint.com/rel_zena_whatsnew.php) for more details.
|
||||
- [](#opt-fonts.fontconfig.useEmbeddedBitmaps) is now set to `true` by default.
|
||||
|
||||
- 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.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.
|
||||
|
||||
- [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 `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 [](#opt-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` 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.
|
||||
- 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.
|
||||
|
||||
- `systemd.network.*` has been updated to support all configuration options from upstream `networkd` version 259.
|
||||
|
||||
- `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`.
|
||||
- [](#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`.
|
||||
|
||||
- `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.
|
||||
- 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.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](#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.banner` has been removed. Use `services.openssh.settings.Banner` instead.
|
||||
- [](#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>.
|
||||
|
||||
- IPVLAN interfaces can now be configured through the `networking.ipvlans` option in the networking module.
|
||||
- `services.openssh.banner` has been removed. Use [](#opt-services.openssh.settings.Banner) instead.
|
||||
|
||||
- `services.caddy` now supports setting `httpPort` and `httpsPort` and opening them in the firewall via `openFirewall`.
|
||||
- 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).
|
||||
|
||||
- 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**)
|
||||
@@ -483,59 +477,19 @@ 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 `services.slurm.rest` NixOS options.
|
||||
- `services.slurm` now supports slurmrestd usage through the [](#opt-services.slurm.rest.enable) NixOS options.
|
||||
|
||||
- The `networking.firewall.logRefusedConnections` option now defaults to
|
||||
- The [](#opt-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` systemd service has been hardened with additional sandboxing restrictions.
|
||||
- The [services.calibre-web](#opt-services.calibre-web.enable) 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`.
|
||||
|
||||
- `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.
|
||||
- [services.radicle](#opt-services.radicle.enable) now supports importing the private key and passphrase as systemd creds.
|
||||
|
||||
@@ -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!
|
||||
- [tranquil](https://tangled.org/tranquil.farm/tranquil-pds) is an ATProto PDS (personal data server) implementation in Rust. A featureful, spec conscious and community driven alternative to the Bluesky reference implementation PDS. Available as [services.tranquil-pds](#opt-services.tranquil-pds.enable).
|
||||
|
||||
## Backward Incompatibilities {#sec-release-26.11-incompatibilities}
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
|
||||
- `boot.vesa` has been removed. It was deprecated in 2020 because Xorg now works better with kernel modesetting. If you still need the legacy VESA 800x600 fallback, set `boot.kernelParams = [ "vga=0x317" "nomodeset" ];` directly.
|
||||
|
||||
- Python 2 has been removed from the top-level package set, as it is long past end-of-life. The `python2`, `python27`, `python2Full`, `python27Full`, `python2Packages`, and `python27Packages` attributes, along with the legacy `python`, `pythonFull`, and `pythonPackages` aliases, now throw an error directing you to `python3`. The `isPy2` and `isPy27` package flags have been removed accordingly. The only remaining Python 2 interpreter is vendored inside the `resholve` package for its `oil` dependency and is not exposed for general use.
|
||||
|
||||
## Other Notable Changes {#sec-release-26.11-notable-changes}
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
||||
@@ -394,7 +394,6 @@
|
||||
./security/ca.nix
|
||||
./security/chromium-suid-sandbox.nix
|
||||
./security/default.nix
|
||||
./security/dhparams.nix
|
||||
./security/doas.nix
|
||||
./security/duosec.nix
|
||||
./security/google_oslogin.nix
|
||||
@@ -1793,6 +1792,7 @@
|
||||
./services/web-apps/suwayomi-server.nix
|
||||
./services/web-apps/szurubooru.nix
|
||||
./services/web-apps/tabbyapi.nix
|
||||
./services/web-apps/tranquil-pds.nix
|
||||
./services/web-apps/trilium.nix
|
||||
./services/web-apps/tt-rss.nix
|
||||
./services/web-apps/tuliprox.nix
|
||||
|
||||
@@ -125,6 +125,9 @@ in
|
||||
(mkRemovedOptionModule [ "programs" "yabar" ]
|
||||
"programs.yabar has been removed from NixOS. This is because the yabar repository has been archived upstream."
|
||||
)
|
||||
(mkRemovedOptionModule [ "security" "dhparams" ] ''
|
||||
The security.dhparams module has been removed as RFC 7919 has shown that generating your own params is problematic.
|
||||
'')
|
||||
(mkRemovedOptionModule [ "security" "hideProcessInformation" ] ''
|
||||
The hidepid module was removed, since the underlying machinery
|
||||
is broken when using cgroups-v2.
|
||||
|
||||
@@ -1,223 +0,0 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
options,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (lib) literalExpression mkOption types;
|
||||
cfg = config.security.dhparams;
|
||||
opt = options.security.dhparams;
|
||||
|
||||
bitType = types.addCheck types.int (b: b >= 16) // {
|
||||
name = "bits";
|
||||
description = "integer of at least 16 bits";
|
||||
};
|
||||
|
||||
paramsSubmodule =
|
||||
{ name, config, ... }:
|
||||
{
|
||||
options.bits = mkOption {
|
||||
type = bitType;
|
||||
default = cfg.defaultBitSize;
|
||||
defaultText = literalExpression "config.${opt.defaultBitSize}";
|
||||
description = ''
|
||||
The bit size for the prime that is used during a Diffie-Hellman
|
||||
key exchange.
|
||||
'';
|
||||
};
|
||||
|
||||
options.path = mkOption {
|
||||
type = types.path;
|
||||
readOnly = true;
|
||||
description = ''
|
||||
The resulting path of the generated Diffie-Hellman parameters
|
||||
file for other services to reference. This could be either a
|
||||
store path or a file inside the directory specified by
|
||||
{option}`security.dhparams.path`.
|
||||
'';
|
||||
};
|
||||
|
||||
config.path =
|
||||
let
|
||||
generated = pkgs.runCommand "dhparams-${name}.pem" {
|
||||
nativeBuildInputs = [ pkgs.openssl ];
|
||||
} "openssl dhparam -out \"$out\" ${toString config.bits}";
|
||||
in
|
||||
if cfg.stateful then "${cfg.path}/${name}.pem" else generated;
|
||||
};
|
||||
|
||||
in
|
||||
{
|
||||
options = {
|
||||
security.dhparams = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to generate new DH params and clean up old DH params.
|
||||
'';
|
||||
};
|
||||
|
||||
params = mkOption {
|
||||
type =
|
||||
with types;
|
||||
let
|
||||
coerce = bits: { inherit bits; };
|
||||
in
|
||||
attrsOf (coercedTo int coerce (submodule paramsSubmodule));
|
||||
default = { };
|
||||
example = lib.literalExpression "{ nginx.bits = 3072; }";
|
||||
description = ''
|
||||
Diffie-Hellman parameters to generate.
|
||||
|
||||
The value is the size (in bits) of the DH params to generate. The
|
||||
generated DH params path can be found in
|
||||
`config.security.dhparams.params.«name».path`.
|
||||
|
||||
::: {.note}
|
||||
The name of the DH params is taken as being the name of
|
||||
the service it serves and the params will be generated before the
|
||||
said service is started.
|
||||
:::
|
||||
|
||||
::: {.warning}
|
||||
If you are removing all dhparams from this list, you
|
||||
have to leave {option}`security.dhparams.enable` for at
|
||||
least one activation in order to have them be cleaned up. This also
|
||||
means if you rollback to a version without any dhparams the
|
||||
existing ones won't be cleaned up. Of course this only applies if
|
||||
{option}`security.dhparams.stateful` is
|
||||
`true`.
|
||||
:::
|
||||
|
||||
::: {.note}
|
||||
**For module implementers:** It's recommended
|
||||
to not set a specific bit size here, so that users can easily
|
||||
override this by setting
|
||||
{option}`security.dhparams.defaultBitSize`.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
|
||||
stateful = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether generation of Diffie-Hellman parameters should be stateful or
|
||||
not. If this is enabled, PEM-encoded files for Diffie-Hellman
|
||||
parameters are placed in the directory specified by
|
||||
{option}`security.dhparams.path`. Otherwise the files are
|
||||
created within the Nix store.
|
||||
|
||||
::: {.note}
|
||||
If this is `false` the resulting store
|
||||
path will be non-deterministic and will be rebuilt every time the
|
||||
`openssl` package changes.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
|
||||
defaultBitSize = mkOption {
|
||||
type = bitType;
|
||||
default = 2048;
|
||||
description = ''
|
||||
This allows to override the default bit size for all of the
|
||||
Diffie-Hellman parameters set in
|
||||
{option}`security.dhparams.params`.
|
||||
'';
|
||||
};
|
||||
|
||||
path = mkOption {
|
||||
type = types.str;
|
||||
default = "/var/lib/dhparams";
|
||||
description = ''
|
||||
Path to the directory in which Diffie-Hellman parameters will be
|
||||
stored. This only is relevant if
|
||||
{option}`security.dhparams.stateful` is
|
||||
`true`.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkMerge [
|
||||
(lib.mkIf cfg.enable {
|
||||
warnings = [
|
||||
''
|
||||
The `security.dhparams` module is deprecated and scheduled for removal in NixOS 26.11.
|
||||
Generating your own params has been shown to be problematic in RFC 7919 (2016).
|
||||
|
||||
Remove any uses of DHE and migrate to ECDHE (RFC 8422, 2018) and
|
||||
Hybrid PQ (draft-ietf-tls-ecdhe-mlkem, 2026) key exchange algorithms.
|
||||
''
|
||||
];
|
||||
})
|
||||
(lib.mkIf (cfg.enable && cfg.stateful) {
|
||||
systemd.services = {
|
||||
dhparams-init = {
|
||||
description = "Clean Up Old Diffie-Hellman Parameters";
|
||||
|
||||
# Clean up even when no DH params is set
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
serviceConfig.RemainAfterExit = true;
|
||||
serviceConfig.Type = "oneshot";
|
||||
|
||||
script = ''
|
||||
if [ ! -d ${cfg.path} ]; then
|
||||
mkdir -p ${cfg.path}
|
||||
fi
|
||||
|
||||
# Remove old dhparams
|
||||
for file in ${cfg.path}/*; do
|
||||
if [ ! -f "$file" ]; then
|
||||
continue
|
||||
fi
|
||||
${lib.concatStrings (
|
||||
lib.mapAttrsToList (
|
||||
name:
|
||||
{ bits, path, ... }:
|
||||
''
|
||||
if [ "$file" = ${lib.escapeShellArg path} ] && \
|
||||
${pkgs.openssl}/bin/openssl dhparam -in "$file" -text \
|
||||
| head -n 1 | grep "(${toString bits} bit)" > /dev/null; then
|
||||
continue
|
||||
fi
|
||||
''
|
||||
) cfg.params
|
||||
)}
|
||||
rm "$file"
|
||||
done
|
||||
|
||||
# TODO: Ideally this would be removing the *former* cfg.path, though
|
||||
# this does not seem really important as changes to it are quite
|
||||
# unlikely
|
||||
rmdir --ignore-fail-on-non-empty ${cfg.path}
|
||||
'';
|
||||
};
|
||||
}
|
||||
// lib.mapAttrs' (
|
||||
name:
|
||||
{ bits, path, ... }:
|
||||
lib.nameValuePair "dhparams-gen-${name}" {
|
||||
description = "Generate Diffie-Hellman Parameters for ${name}";
|
||||
after = [ "dhparams-init.service" ];
|
||||
before = [ "${name}.service" ];
|
||||
requiredBy = [ "${name}.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
unitConfig.ConditionPathExists = "!${path}";
|
||||
serviceConfig.Type = "oneshot";
|
||||
script = ''
|
||||
mkdir -p ${lib.escapeShellArg cfg.path}
|
||||
${pkgs.openssl}/bin/openssl dhparam -out ${lib.escapeShellArg path} \
|
||||
${toString bits}
|
||||
'';
|
||||
}
|
||||
) cfg.params;
|
||||
})
|
||||
];
|
||||
|
||||
}
|
||||
@@ -36,6 +36,8 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
package = lib.mkPackageOption pkgs "gemstash" { };
|
||||
|
||||
settings = lib.mkOption {
|
||||
default = { };
|
||||
description = ''
|
||||
@@ -96,7 +98,7 @@ in
|
||||
after = [ "network.target" ];
|
||||
serviceConfig = lib.mkMerge [
|
||||
{
|
||||
ExecStart = "${pkgs.gemstash}/bin/gemstash start --no-daemonize --config-file ${settingsFormat.generate "gemstash.yaml" (prefixColon cfg.settings)}";
|
||||
ExecStart = "${lib.getExe cfg.package} start --no-daemonize --config-file ${settingsFormat.generate "gemstash.yaml" (prefixColon cfg.settings)}";
|
||||
NoNewPrivileges = true;
|
||||
User = "gemstash";
|
||||
Group = "gemstash";
|
||||
|
||||
@@ -30,7 +30,6 @@ let
|
||||
mapAttrsToList
|
||||
mergeAttrsList
|
||||
mkEnableOption
|
||||
mkDefault
|
||||
mkIf
|
||||
mkMerge
|
||||
mkOption
|
||||
@@ -777,7 +776,25 @@ in
|
||||
openFirewall = mkOption {
|
||||
default = false;
|
||||
type = types.bool;
|
||||
description = "Whether to open the firewall for the specified port.";
|
||||
description = ''
|
||||
Whether to open the firewall for the specified frontend port
|
||||
|
||||
:::{.note}
|
||||
For components specific ports see {option}`services.home-assistant.openFirewallForComponents`.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
|
||||
openFirewallForComponents = mkOption {
|
||||
default = false;
|
||||
type = types.bool;
|
||||
description = ''
|
||||
Whether to open required firewall ports for enabled components.
|
||||
|
||||
:::{.note}
|
||||
For the frontend see {option}`services.home-assistant.openFirewall`.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
|
||||
blueprints = mergeAttrsList (
|
||||
@@ -845,7 +862,13 @@ in
|
||||
}
|
||||
];
|
||||
|
||||
networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.config.http.server_port ];
|
||||
networking.firewall.allowedTCPPorts = mkMerge [
|
||||
(mkIf cfg.openFirewall [ cfg.config.http.server_port ])
|
||||
(mkIf cfg.openFirewallForComponents
|
||||
# https://www.home-assistant.io/integrations/sonos/#network-requirements
|
||||
(optionals (useComponent "sonos") [ 1400 ])
|
||||
)
|
||||
];
|
||||
|
||||
# symlink the configuration to /etc/home-assistant
|
||||
environment.etc = mkMerge [
|
||||
|
||||
@@ -91,9 +91,9 @@ let
|
||||
# files required to exist also won't be present, so missingok is forced.
|
||||
user=$(${pkgs.buildPackages.coreutils}/bin/id -un)
|
||||
group=$(${pkgs.buildPackages.coreutils}/bin/id -gn)
|
||||
sed -e "s/\bsu\s.*/su $user $group/" \
|
||||
-e "s/\b\(create\s\+[0-9]*\s*\|createolddir\s\+[0-9]*\s\+\).*/\1$user $group/" \
|
||||
-e "1imissingok" -e "s/\bnomissingok\b//" \
|
||||
sed -E -e "s/\bsu\s.*/su $user $group/" \
|
||||
-e "s/\b((create|createolddir)\b(\s+[0-9]+)?).*/\1 $user $group/" \
|
||||
-e "1imissingok" -e "s/\bnomissingok\b//" \
|
||||
$out > logrotate.conf
|
||||
# Since this makes for very verbose builds only show real error.
|
||||
# There is no way to control log level, but logrotate hardcodes
|
||||
|
||||
@@ -273,6 +273,7 @@ in
|
||||
RestrictAddressFamilies = [
|
||||
"AF_INET"
|
||||
"AF_INET6"
|
||||
"AF_UNIX"
|
||||
];
|
||||
RestrictNamespaces = true;
|
||||
RestrictRealtime = true;
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
let
|
||||
cfg = config.services.pangolin;
|
||||
format = pkgs.formats.yaml { };
|
||||
finalSettings = lib.attrsets.recursiveUpdate pangolinConf cfg.settings;
|
||||
finalSettings = lib.attrsets.recursiveUpdate options.services.pangolin.settings.default cfg.settings;
|
||||
cfgFile = format.generate "config.yml" finalSettings;
|
||||
# override the type to allow for optionality
|
||||
nullOrOpt = t: lib.types.nullOr t // { _optional = true; };
|
||||
@@ -33,25 +33,6 @@ let
|
||||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
pangolinConf = {
|
||||
app.dashboard_url = "https://${cfg.dashboardDomain}";
|
||||
domains.domain1 = {
|
||||
base_domain = cfg.baseDomain;
|
||||
prefer_wildcard_cert = false;
|
||||
};
|
||||
server = {
|
||||
external_port = 3000;
|
||||
internal_port = 3001;
|
||||
next_port = 3002;
|
||||
integration_port = 3003;
|
||||
# needs to be set, otherwise this fails silently
|
||||
# see https://github.com/fosrl/newt/issues/37
|
||||
internal_hostname = "localhost";
|
||||
};
|
||||
gerbil.base_endpoint = cfg.dashboardDomain;
|
||||
flags.enable_integration_api = false;
|
||||
};
|
||||
in
|
||||
{
|
||||
options.services = {
|
||||
@@ -61,7 +42,50 @@ in
|
||||
|
||||
settings = lib.mkOption {
|
||||
inherit (format) type;
|
||||
default = { };
|
||||
default = {
|
||||
app.dashboard_url = "https://${cfg.dashboardDomain}";
|
||||
domains.domain1 = {
|
||||
base_domain = cfg.baseDomain;
|
||||
prefer_wildcard_cert = false;
|
||||
};
|
||||
server = {
|
||||
external_port = 3000;
|
||||
internal_port = 3001;
|
||||
next_port = 3002;
|
||||
integration_port = 3003;
|
||||
# needs to be set, otherwise this fails silently
|
||||
# see https://github.com/fosrl/newt/issues/37
|
||||
internal_hostname = "localhost";
|
||||
};
|
||||
gerbil.base_endpoint = cfg.dashboardDomain;
|
||||
flags = {
|
||||
disable_signup_without_invite = true;
|
||||
enable_integration_api = false;
|
||||
};
|
||||
};
|
||||
defaultText = lib.literalExpression ''
|
||||
{
|
||||
app.dashboard_url = "https://''${config.services.pangolin.dashboardDomain}";
|
||||
domains.domain1 = {
|
||||
base_domain = cfg.baseDomain;
|
||||
prefer_wildcard_cert = false;
|
||||
};
|
||||
server = {
|
||||
external_port = 3000;
|
||||
internal_port = 3001;
|
||||
next_port = 3002;
|
||||
integration_port = 3003;
|
||||
# needs to be set, otherwise this fails silently
|
||||
# see https://github.com/fosrl/newt/issues/37
|
||||
internal_hostname = "localhost";
|
||||
};
|
||||
gerbil.base_endpoint = config.services.pangolin.dashboardDomain;
|
||||
flags = {
|
||||
disable_signup_without_invite = true;
|
||||
enable_integration_api = false;
|
||||
};
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
Additional attributes to be merged with the configuration options and written to Pangolin's {file}`config.yml` file.
|
||||
'';
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
utils,
|
||||
...
|
||||
}:
|
||||
let
|
||||
@@ -10,8 +11,6 @@ let
|
||||
mkEnableOption
|
||||
mkOption
|
||||
mkPackageOption
|
||||
optional
|
||||
optionals
|
||||
types
|
||||
;
|
||||
|
||||
@@ -22,7 +21,12 @@ let
|
||||
configDir = pkgs.writeTextFile {
|
||||
name = "kmscon-config";
|
||||
destination = "/kmscon.conf";
|
||||
text = cfg.extraConfig;
|
||||
text =
|
||||
let
|
||||
mkKeyValue =
|
||||
k: v: if lib.isBool v then (lib.optionalString (!v) "no-") + k else "${k}=${toString v}";
|
||||
in
|
||||
lib.generators.toKeyValue { inherit mkKeyValue; } (lib.filterAttrs (_: v: v != null) cfg.config);
|
||||
};
|
||||
|
||||
baseLoginOptions = "-p";
|
||||
@@ -55,58 +59,68 @@ in
|
||||
|
||||
Check `services.getty.autologinUser` instead.
|
||||
'')
|
||||
(lib.mkRemovedOptionModule [ "services" "kmscon" "fonts" ] ''
|
||||
`services.kmscon.fonts` is removed.
|
||||
|
||||
Add your font to `fonts.packages` and configure it with
|
||||
`services.kmscon.config.font-name` instead.
|
||||
'')
|
||||
(lib.mkRemovedOptionModule [ "services" "kmscon" "extraConfig" ] ''
|
||||
`services.kmscon.extraConfig` is removed.
|
||||
|
||||
Add your configurations to the new `services.kmscon.config` instead.
|
||||
'')
|
||||
(lib.mkRenamedOptionModule [ "services" "kmscon" "term" ] [ "services" "kmscon" "config" "term" ])
|
||||
(lib.mkRenamedOptionModule
|
||||
[ "services" "kmscon" "hwRender" ]
|
||||
[ "services" "kmscon" "config" "hwaccel" ]
|
||||
)
|
||||
];
|
||||
|
||||
options = {
|
||||
services.kmscon = {
|
||||
enable = mkEnableOption ''
|
||||
Use kmscon instead of autovt.
|
||||
use kmscon instead of autovt.
|
||||
|
||||
Kmscon is a simple terminal emulator based on linux kernel mode setting (KMS).
|
||||
It is an attempt to replace the in-kernel VT implementation with a userspace console.
|
||||
It is an attempt to replace the in-kernel VT implementation with a userspace console
|
||||
'';
|
||||
|
||||
package = mkPackageOption pkgs "kmscon" { };
|
||||
|
||||
hwRender = mkEnableOption "3D hardware acceleration to render the console";
|
||||
useXkbConfig = mkEnableOption ''
|
||||
configure keymap from xserver keyboard settings.
|
||||
|
||||
fonts = mkOption {
|
||||
description = "Fonts used by kmscon, in order of priority.";
|
||||
default = null;
|
||||
example = lib.literalExpression ''[ { name = "Source Code Pro"; package = pkgs.source-code-pro; } ]'';
|
||||
type =
|
||||
with types;
|
||||
let
|
||||
fontType = submodule {
|
||||
options = {
|
||||
name = mkOption {
|
||||
type = str;
|
||||
description = "Font name, as used by fontconfig.";
|
||||
};
|
||||
package = mkOption {
|
||||
type = package;
|
||||
description = "Package providing the font.";
|
||||
};
|
||||
};
|
||||
If enabled, configurations under `services.xserver.xkb` will be injected into kmscon's configuration
|
||||
'';
|
||||
|
||||
config = mkOption {
|
||||
description = ''
|
||||
Configuration for kmscon. See {manpage}`kmscon.conf(5)`
|
||||
for available options.
|
||||
'';
|
||||
default = { };
|
||||
type = types.submodule {
|
||||
freeformType =
|
||||
with types;
|
||||
attrsOf (oneOf [
|
||||
bool
|
||||
int
|
||||
str
|
||||
]);
|
||||
options = {
|
||||
hwaccel = mkEnableOption "use hardware acceleration for rendering";
|
||||
libseat = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to use libseat for session management.
|
||||
This is the default for kmscon newer than 10.0.0 and prevents
|
||||
launching another GUI from kmscon by `kmscon-launch-gui`.
|
||||
'';
|
||||
};
|
||||
in
|
||||
nullOr (nonEmptyListOf fontType);
|
||||
};
|
||||
|
||||
useXkbConfig = mkEnableOption "configure keymap from xserver keyboard settings.";
|
||||
|
||||
term = mkOption {
|
||||
description = "Value for the TERM environment variable.";
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "xterm-256color";
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
description = "Extra contents of the kmscon.conf file.";
|
||||
type = types.lines;
|
||||
default = "";
|
||||
example = "font-size=14";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
extraOptions = mkOption {
|
||||
@@ -124,30 +138,54 @@ in
|
||||
assertion = gettyCfg.loginOptions == null;
|
||||
message = "services.getty.loginOptions is not supported when services.kmscon is enabled.";
|
||||
}
|
||||
{
|
||||
assertion = (cfg.config ? font-name) -> config.fonts.fontconfig.enable;
|
||||
message = "Font configuration for kmscon requires fontconfig to be enabled.";
|
||||
}
|
||||
{
|
||||
assertion = cfg.config.hwaccel -> config.hardware.graphics.enable;
|
||||
message = "Hardware acceleration for kmscon requires `hardware.graphics.enable` to be true.";
|
||||
}
|
||||
];
|
||||
|
||||
services.kmscon.config = lib.mkIf cfg.useXkbConfig (
|
||||
lib.mapAttrs (_: lib.mkDefault) (
|
||||
lib.filterAttrs (_: v: v != "") {
|
||||
xkb-layout = config.services.xserver.xkb.layout;
|
||||
xkb-model = config.services.xserver.xkb.model;
|
||||
xkb-options = config.services.xserver.xkb.options;
|
||||
xkb-variant = config.services.xserver.xkb.variant;
|
||||
}
|
||||
)
|
||||
);
|
||||
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
systemd.packages = [ cfg.package ];
|
||||
|
||||
systemd.services."kmsconvt@" = {
|
||||
serviceConfig.ExecStart = [
|
||||
"" # override upstream default with an empty ExecStart
|
||||
(builtins.concatStringsSep " " (
|
||||
[
|
||||
"${cfg.package}/bin/kmscon"
|
||||
"--configdir"
|
||||
configDir
|
||||
"--vt=%I"
|
||||
"--no-switchvt"
|
||||
"--login"
|
||||
]
|
||||
++ lib.optional (cfg.extraOptions != "") cfg.extraOptions
|
||||
++ [
|
||||
"--"
|
||||
loginScript
|
||||
]
|
||||
))
|
||||
];
|
||||
serviceConfig = {
|
||||
User = lib.mkIf (!cfg.config.libseat) "";
|
||||
PAMName = lib.mkIf (!cfg.config.libseat) "";
|
||||
Environment = [ "XKB_CONFIG_ROOT=${config.services.xserver.xkb.dir}" ];
|
||||
ExecStart = [
|
||||
"" # override upstream default with an empty ExecStart
|
||||
(builtins.concatStringsSep " " (
|
||||
[
|
||||
"${cfg.package}/bin/kmscon"
|
||||
"--configdir"
|
||||
configDir
|
||||
"--vt=%I"
|
||||
"--no-switchvt"
|
||||
"--login"
|
||||
]
|
||||
++ lib.optional (cfg.extraOptions != "") cfg.extraOptions
|
||||
++ [
|
||||
"--"
|
||||
loginScript
|
||||
]
|
||||
))
|
||||
];
|
||||
};
|
||||
|
||||
restartIfChanged = false;
|
||||
# logind spawns autovt@ttyN.service on VT switch; point it at kmscon
|
||||
@@ -156,40 +194,55 @@ in
|
||||
|
||||
# tty1 is special: logind does not spawn autovt@tty1, it expects a static
|
||||
# pull-in via getty.target. With getty@ suppressed, we must replace it.
|
||||
systemd.services."getty.target".wants = lib.mkIf (!config.services.displayManager.enable) [
|
||||
systemd.targets.getty.wants = lib.mkIf (!config.services.displayManager.enable) [
|
||||
"kmsconvt@tty1.service"
|
||||
];
|
||||
|
||||
systemd.suppressedSystemUnits = [ "getty@.service" ];
|
||||
|
||||
services.kmscon.extraConfig = lib.concatLines (
|
||||
optionals cfg.useXkbConfig (
|
||||
lib.mapAttrsToList (n: v: "xkb-${n}=${v}") (
|
||||
lib.filterAttrs (
|
||||
n: v:
|
||||
builtins.elem n [
|
||||
"layout"
|
||||
"model"
|
||||
"options"
|
||||
"variant"
|
||||
]
|
||||
&& v != ""
|
||||
) config.services.xserver.xkb
|
||||
)
|
||||
)
|
||||
++ optionals cfg.hwRender [
|
||||
"drm"
|
||||
"hwaccel"
|
||||
]
|
||||
++ optional (cfg.fonts != null) "font-name=${lib.concatMapStringsSep ", " (f: f.name) cfg.fonts}"
|
||||
++ optional (cfg.term != null) "term=${cfg.term}"
|
||||
);
|
||||
|
||||
hardware.graphics.enable = mkIf cfg.hwRender true;
|
||||
|
||||
fonts = mkIf (cfg.fonts != null) {
|
||||
fontconfig.enable = true;
|
||||
packages = map (f: f.package) cfg.fonts;
|
||||
security.pam.services.kmscon = lib.mkIf cfg.config.libseat {
|
||||
useDefaultRules = false;
|
||||
rules = {
|
||||
auth = utils.pam.autoOrderRules [
|
||||
{
|
||||
name = "permit";
|
||||
control = "required";
|
||||
modulePath = "${config.security.pam.package}/lib/security/pam_permit.so";
|
||||
}
|
||||
];
|
||||
account = utils.pam.autoOrderRules [
|
||||
{
|
||||
name = "unix";
|
||||
control = "required";
|
||||
modulePath = "${config.security.pam.package}/lib/security/pam_unix.so";
|
||||
}
|
||||
];
|
||||
session = utils.pam.autoOrderRules [
|
||||
{
|
||||
name = "env";
|
||||
control = "required";
|
||||
modulePath = "${config.security.pam.package}/lib/security/pam_env.so";
|
||||
settings = {
|
||||
conffile = "/etc/pam/environment";
|
||||
readenv = 0;
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "unix";
|
||||
control = "required";
|
||||
modulePath = "${config.security.pam.package}/lib/security/pam_unix.so";
|
||||
}
|
||||
{
|
||||
name = "systemd";
|
||||
control = "optional";
|
||||
modulePath = "${config.systemd.package}/lib/security/pam_systemd.so";
|
||||
settings = {
|
||||
type = "tty";
|
||||
class = "greeter";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -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";
|
||||
|
||||
251
nixos/modules/services/web-apps/tranquil-pds.nix
Normal file
251
nixos/modules/services/web-apps/tranquil-pds.nix
Normal file
@@ -0,0 +1,251 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.services.tranquil-pds;
|
||||
|
||||
inherit (lib) types mkPackageOption mkOption;
|
||||
|
||||
settingsFormat = pkgs.formats.toml { };
|
||||
in
|
||||
{
|
||||
options.services.tranquil-pds = {
|
||||
enable = lib.mkEnableOption "tranquil-pds AT Protocol personal data server";
|
||||
|
||||
package = mkPackageOption pkgs "tranquil-pds" { };
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = "tranquil-pds";
|
||||
description = "User under which tranquil-pds runs";
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = types.str;
|
||||
default = "tranquil-pds";
|
||||
description = "Group under which tranquil-pds runs";
|
||||
};
|
||||
|
||||
dataDir = mkOption {
|
||||
type = types.str;
|
||||
default = "/var/lib/tranquil-pds";
|
||||
description = "Working directory for tranquil-pds. Also expected to be used for data (blobs)";
|
||||
};
|
||||
|
||||
environmentFiles = mkOption {
|
||||
type = types.listOf types.path;
|
||||
default = [ ];
|
||||
description = ''
|
||||
File to load environment variables from. Loaded variables override
|
||||
values set in {option}`environment`.
|
||||
|
||||
Use it to set values of `JWT_SECRET`, `DPOP_SECRET` and `MASTER_KEY`.
|
||||
|
||||
Generate these with:
|
||||
```
|
||||
openssl rand -base64 48
|
||||
```
|
||||
'';
|
||||
};
|
||||
|
||||
database.createLocally = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Create the postgres database and user on the local host.
|
||||
'';
|
||||
};
|
||||
|
||||
settings = mkOption {
|
||||
type = types.submodule {
|
||||
freeformType = settingsFormat.type;
|
||||
|
||||
options = {
|
||||
server = {
|
||||
host = mkOption {
|
||||
type = types.str;
|
||||
default = "127.0.0.1";
|
||||
description = "Host for tranquil-pds to listen on";
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.int;
|
||||
default = 3000;
|
||||
description = "Port for tranquil-pds to listen on";
|
||||
};
|
||||
|
||||
hostname = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
example = "pds.example.com";
|
||||
description = "The public-facing hostname of the PDS";
|
||||
};
|
||||
|
||||
max_blob_size = mkOption {
|
||||
type = types.int;
|
||||
default = 10737418240; # 10 GiB
|
||||
description = "Maximum allowed blob size in bytes.";
|
||||
};
|
||||
};
|
||||
|
||||
frontend = {
|
||||
enabled =
|
||||
lib.mkEnableOption "serving the frontend from the backend. Disable to serve the frontend manually"
|
||||
// {
|
||||
default = true;
|
||||
};
|
||||
|
||||
dir = mkPackageOption pkgs "tranquil-pds-frontend" { };
|
||||
};
|
||||
|
||||
storage = {
|
||||
path = mkOption {
|
||||
type = types.path;
|
||||
default = "${cfg.dataDir}/blobs";
|
||||
defaultText = "\${cfg.dataDir}/blobs";
|
||||
description = "Directory for storing blobs";
|
||||
};
|
||||
};
|
||||
tranquil_store = {
|
||||
data_dir = mkOption {
|
||||
type = types.path;
|
||||
default = "${cfg.dataDir}/store";
|
||||
defaultText = "\${cfg.dataDir}/store";
|
||||
description = "Directory for tranquil-store files";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
description = ''
|
||||
Configuration options to set for the service. Secrets should be
|
||||
specified using {option}`environmentFile`.
|
||||
|
||||
Refer to <https://tangled.org/tranquil.farm/tranquil-pds/blob/main/example.toml>
|
||||
for available configuration options.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable (
|
||||
lib.mkMerge [
|
||||
(lib.mkIf cfg.database.createLocally {
|
||||
services.postgresql = {
|
||||
enable = true;
|
||||
ensureDatabases = [ cfg.user ];
|
||||
ensureUsers = [
|
||||
{
|
||||
name = cfg.user;
|
||||
ensureDBOwnership = true;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
services.tranquil-pds.settings.database.url =
|
||||
lib.mkDefault "postgresql:///${cfg.user}?host=/run/postgresql";
|
||||
|
||||
systemd.services.tranquil-pds = {
|
||||
requires = [ "postgresql.service" ];
|
||||
after = [ "postgresql.service" ];
|
||||
};
|
||||
})
|
||||
|
||||
{
|
||||
users.users.${cfg.user} = {
|
||||
isSystemUser = true;
|
||||
inherit (cfg) group;
|
||||
home = cfg.dataDir;
|
||||
};
|
||||
|
||||
users.groups.${cfg.group} = { };
|
||||
|
||||
systemd.tmpfiles.settings."tranquil-pds" =
|
||||
lib.genAttrs
|
||||
[
|
||||
cfg.dataDir
|
||||
cfg.settings.storage.path
|
||||
cfg.settings.tranquil_store.data_dir
|
||||
]
|
||||
(_: {
|
||||
d = {
|
||||
mode = "0750";
|
||||
inherit (cfg) user group;
|
||||
};
|
||||
});
|
||||
|
||||
environment.etc = {
|
||||
"tranquil-pds/config.toml".source =
|
||||
let
|
||||
conf = settingsFormat.generate "tranquil-pds.toml" cfg.settings;
|
||||
in
|
||||
pkgs.runCommandLocal "validated-tranquil-config" { nativeBuildInputs = [ cfg.package ]; } ''
|
||||
tranquil-server --config ${conf} validate --ignore-secrets
|
||||
ln -s ${conf} $out
|
||||
'';
|
||||
};
|
||||
|
||||
systemd.services.tranquil-pds = {
|
||||
description = "Tranquil PDS - ATProtocol Personal Data Server";
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
UMask = "0077";
|
||||
ExecStart = lib.getExe cfg.package;
|
||||
Restart = "on-failure";
|
||||
RestartSec = 5;
|
||||
|
||||
WorkingDirectory = cfg.dataDir;
|
||||
StateDirectory = "tranquil-pds";
|
||||
ReadWritePaths = [
|
||||
cfg.settings.storage.path
|
||||
];
|
||||
|
||||
EnvironmentFile = cfg.environmentFiles;
|
||||
|
||||
CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ];
|
||||
ProtectProc = "invisible";
|
||||
ProcSubset = "pid";
|
||||
NoNewPrivileges = true;
|
||||
ProtectSystem = "strict";
|
||||
ProtectHome = true;
|
||||
PrivateTmp = true;
|
||||
PrivateDevices = true;
|
||||
PrivateUsers = true;
|
||||
ProtectHostname = true;
|
||||
ProtectClock = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectKernelLogs = true;
|
||||
ProtectControlGroups = true;
|
||||
RestrictAddressFamilies = [
|
||||
"AF_INET"
|
||||
"AF_INET6"
|
||||
"AF_UNIX"
|
||||
];
|
||||
RestrictNamespaces = true;
|
||||
LockPersonality = true;
|
||||
MemoryDenyWriteExecute = true;
|
||||
RestrictRealtime = true;
|
||||
RestrictSUIDSGID = true;
|
||||
RemoveIPC = true;
|
||||
PrivateMounts = true;
|
||||
SystemCallFilter = [
|
||||
"@system-service"
|
||||
"~@privileged @resources"
|
||||
];
|
||||
SystemCallArchitectures = "native";
|
||||
};
|
||||
};
|
||||
}
|
||||
]
|
||||
);
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ nelind ];
|
||||
}
|
||||
@@ -455,7 +455,6 @@ in
|
||||
dependency-track = runTest ./dependency-track.nix;
|
||||
devpi-server = runTest ./devpi-server.nix;
|
||||
dex-oidc = runTest ./dex-oidc.nix;
|
||||
dhparams = runTest ./dhparams.nix;
|
||||
dictd = runTest ./dictd.nix;
|
||||
disable-installer-tools = runTest ./disable-installer-tools.nix;
|
||||
discourse = runTest {
|
||||
@@ -495,6 +494,7 @@ in
|
||||
drupal = runTest ./drupal.nix;
|
||||
dublin-traceroute = runTest ./dublin-traceroute.nix;
|
||||
dwl = runTestOn [ "x86_64-linux" "aarch64-linux" ] ./dwl.nix;
|
||||
e57inspector = runTest ./e57inspector.nix;
|
||||
early-mount-options = runTest ./early-mount-options.nix;
|
||||
earlyoom = runTestOn [ "x86_64-linux" ] ./earlyoom.nix;
|
||||
easytier = runTest ./easytier.nix;
|
||||
@@ -1708,6 +1708,7 @@ in
|
||||
tracee = handleTestOn [ "x86_64-linux" ] ./tracee.nix { };
|
||||
traefik = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./traefik.nix;
|
||||
trafficserver = runTest ./trafficserver.nix;
|
||||
tranquil-pds = runTest ./tranquil-pds.nix;
|
||||
transfer-sh = runTest ./transfer-sh.nix;
|
||||
transmission_4 = runTest ./transmission.nix;
|
||||
trezord = runTest ./trezord.nix;
|
||||
|
||||
@@ -1,143 +0,0 @@
|
||||
{
|
||||
name = "dhparams";
|
||||
|
||||
nodes.machine =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
security.dhparams.enable = true;
|
||||
environment.systemPackages = [ pkgs.openssl ];
|
||||
|
||||
specialisation = {
|
||||
gen1.configuration =
|
||||
{ config, ... }:
|
||||
{
|
||||
security.dhparams.params = {
|
||||
# Use low values here because we don't want the test to run for ages.
|
||||
foo.bits = 1024;
|
||||
# Also use the old format to make sure the type is coerced in the right
|
||||
# way.
|
||||
bar = 1025;
|
||||
};
|
||||
|
||||
systemd.services.foo = {
|
||||
description = "Check systemd Ordering";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
before = [ "shutdown.target" ];
|
||||
conflicts = [ "shutdown.target" ];
|
||||
unitConfig = {
|
||||
# This is to make sure that the dhparams generation of foo occurs
|
||||
# before this service so we need this service to start as early as
|
||||
# possible to provoke a race condition.
|
||||
DefaultDependencies = false;
|
||||
|
||||
# We check later whether the service has been started or not.
|
||||
ConditionPathExists = config.security.dhparams.params.foo.path;
|
||||
};
|
||||
serviceConfig.Type = "oneshot";
|
||||
serviceConfig.RemainAfterExit = true;
|
||||
# The reason we only provide an ExecStop here is to ensure that we don't
|
||||
# accidentally trigger an error because a file system is not yet ready
|
||||
# during very early startup (we might not even have the Nix store
|
||||
# available, for example if future changes in NixOS use systemd mount
|
||||
# units to do early file system initialisation).
|
||||
serviceConfig.ExecStop = "${pkgs.coreutils}/bin/true";
|
||||
};
|
||||
};
|
||||
gen2.configuration = {
|
||||
security.dhparams.params.foo.bits = 1026;
|
||||
};
|
||||
gen3.configuration = { };
|
||||
gen4.configuration = {
|
||||
security.dhparams.stateful = false;
|
||||
security.dhparams.params.foo2.bits = 1027;
|
||||
security.dhparams.params.bar2.bits = 1028;
|
||||
};
|
||||
gen5.configuration = {
|
||||
security.dhparams.defaultBitSize = 1029;
|
||||
security.dhparams.params.foo3 = { };
|
||||
security.dhparams.params.bar3 = { };
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
let
|
||||
getParamPath =
|
||||
gen: name:
|
||||
let
|
||||
node = "gen${toString gen}";
|
||||
in
|
||||
nodes.machine.config.specialisation.${node}.configuration.security.dhparams.params.${name}.path;
|
||||
|
||||
switchToGeneration =
|
||||
gen:
|
||||
let
|
||||
switchCmd = "${nodes.machine.config.system.build.toplevel}/specialisation/gen${toString gen}/bin/switch-to-configuration test";
|
||||
in
|
||||
''
|
||||
with machine.nested("switch to generation ${toString gen}"):
|
||||
machine.succeed("${switchCmd}")
|
||||
'';
|
||||
|
||||
in
|
||||
''
|
||||
import re
|
||||
|
||||
|
||||
def assert_param_bits(path, bits):
|
||||
with machine.nested(f"check bit size of {path}"):
|
||||
output = machine.succeed(f"openssl dhparam -in {path} -text")
|
||||
pattern = re.compile(r"^\s*DH Parameters:\s+\((\d+)\s+bit\)\s*$", re.M)
|
||||
match = pattern.match(output)
|
||||
if match is None:
|
||||
raise Exception("bla")
|
||||
if match[1] != str(bits):
|
||||
raise Exception(f"bit size should be {bits} but it is {match[1]} instead.")
|
||||
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
${switchToGeneration 1}
|
||||
|
||||
with subtest("verify startup order"):
|
||||
machine.succeed("systemctl is-active foo.service")
|
||||
|
||||
with subtest("check bit sizes of dhparam files"):
|
||||
assert_param_bits("${getParamPath 1 "foo"}", 1024)
|
||||
assert_param_bits("${getParamPath 1 "bar"}", 1025)
|
||||
|
||||
${switchToGeneration 2}
|
||||
|
||||
with subtest("check whether bit size has changed"):
|
||||
assert_param_bits("${getParamPath 2 "foo"}", 1026)
|
||||
|
||||
with subtest("ensure that dhparams file for 'bar' was deleted"):
|
||||
machine.fail("test -e ${getParamPath 1 "bar"}")
|
||||
|
||||
${switchToGeneration 3}
|
||||
|
||||
with subtest("ensure that 'security.dhparams.path' has been deleted"):
|
||||
machine.fail("test -e ${nodes.machine.config.specialisation.gen3.configuration.security.dhparams.path}")
|
||||
|
||||
${switchToGeneration 4}
|
||||
|
||||
with subtest("check bit sizes dhparam files"):
|
||||
assert_param_bits(
|
||||
"${getParamPath 4 "foo2"}", 1027
|
||||
)
|
||||
assert_param_bits(
|
||||
"${getParamPath 4 "bar2"}", 1028
|
||||
)
|
||||
|
||||
with subtest("check whether dhparam files are in the Nix store"):
|
||||
machine.succeed(
|
||||
"expr match ${getParamPath 4 "foo2"} ${builtins.storeDir}",
|
||||
"expr match ${getParamPath 4 "bar2"} ${builtins.storeDir}",
|
||||
)
|
||||
|
||||
${switchToGeneration 5}
|
||||
|
||||
with subtest("check whether defaultBitSize works as intended"):
|
||||
assert_param_bits("${getParamPath 5 "foo3"}", 1029)
|
||||
assert_param_bits("${getParamPath 5 "bar3"}", 1029)
|
||||
'';
|
||||
}
|
||||
38
nixos/tests/e57inspector.nix
Normal file
38
nixos/tests/e57inspector.nix
Normal file
@@ -0,0 +1,38 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
name = "e57inspector";
|
||||
meta.maintainers = with pkgs.lib.maintainers; [
|
||||
nh2
|
||||
chpatrick
|
||||
];
|
||||
|
||||
nodes.machine =
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./common/x11.nix
|
||||
];
|
||||
|
||||
services.xserver.enable = true;
|
||||
environment.systemPackages = [
|
||||
pkgs.e57inspector
|
||||
pkgs.xdotool
|
||||
];
|
||||
};
|
||||
|
||||
testScript =
|
||||
let
|
||||
testFile = pkgs.fetchurl {
|
||||
url = "https://raw.githubusercontent.com/asmaloney/libE57Format-test-data/bbcacec05d60f923869545c5eab33d94c390d50e/self/ColouredCubeFloat.e57";
|
||||
hash = "sha256-bb95crNYvX3Qhkx4k6Sqe2GjOf1u4nxxswMfdjyXfTM=";
|
||||
};
|
||||
in
|
||||
''
|
||||
start_all()
|
||||
machine.wait_for_x()
|
||||
|
||||
machine.execute("e57inspector ${testFile} >&2 &")
|
||||
machine.wait_until_succeeds("xdotool search --pid $(pidof .e57inspector-wrapped)")
|
||||
machine.screenshot("screen")
|
||||
'';
|
||||
}
|
||||
@@ -107,7 +107,6 @@ in
|
||||
gsconnect = callInstalledTest ./gsconnect.nix { };
|
||||
json-glib = callInstalledTest ./json-glib.nix { };
|
||||
ibus = callInstalledTest ./ibus.nix { };
|
||||
libgdata = callInstalledTest ./libgdata.nix { };
|
||||
glib-testing = callInstalledTest ./glib-testing.nix { };
|
||||
libjcat = callInstalledTest ./libjcat.nix { };
|
||||
libxmlb = callInstalledTest ./libxmlb.nix { };
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
{ pkgs, makeInstalledTest, ... }:
|
||||
|
||||
makeInstalledTest {
|
||||
tested = pkgs.libgdata;
|
||||
|
||||
testConfig = {
|
||||
# # GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation dummy (GDummyTlsBackend) for ‘gio-tls-backend’
|
||||
# Bail out! libgdata:ERROR:../gdata/tests/common.c:134:gdata_test_init: assertion failed (child_error == NULL): TLS support is not available (g-tls-error-quark, 0)
|
||||
services.gnome.glib-networking.enable = true;
|
||||
};
|
||||
}
|
||||
@@ -1118,6 +1118,7 @@ let
|
||||
enableOCR = fallback;
|
||||
extraInstallerConfig = {
|
||||
boot.supportedFilesystems = [ "zfs" ];
|
||||
networking.hostId = "00000000";
|
||||
environment.systemPackages = with pkgs; [ clevis ];
|
||||
};
|
||||
createPartitions = ''
|
||||
|
||||
@@ -14,17 +14,21 @@
|
||||
|
||||
services.getty.autologinUser = "alice";
|
||||
|
||||
hardware.graphics.enable = true;
|
||||
|
||||
fonts = {
|
||||
fontconfig.enable = true;
|
||||
packages = [ pkgs.nerd-fonts.jetbrains-mono ];
|
||||
};
|
||||
|
||||
services.kmscon = {
|
||||
enable = true;
|
||||
hwRender = true;
|
||||
fonts = [
|
||||
{
|
||||
name = "JetBrainsMono Nerd Font";
|
||||
package = pkgs.nerd-fonts.jetbrains-mono;
|
||||
}
|
||||
];
|
||||
term = "xterm-256color";
|
||||
package = pkgs.kmscon;
|
||||
config = {
|
||||
font-name = "JetBrainsMono Nerd Font";
|
||||
hwaccel = true;
|
||||
term = "kmscon";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -39,7 +43,7 @@
|
||||
machine.send_chars("echo $TERM | tee /tmp/term.txt\n")
|
||||
machine.wait_until_succeeds("test -s /tmp/term.txt")
|
||||
term = machine.succeed("cat /tmp/term.txt").strip()
|
||||
assert term == "xterm-256color", f"Unexpected TERM value: {term!r}"
|
||||
assert term == "kmscon", f"Unexpected TERM value: {term!r}"
|
||||
|
||||
machine.screenshot("tty.png")
|
||||
'';
|
||||
|
||||
@@ -66,8 +66,10 @@ in
|
||||
checkConf = {
|
||||
su = "root utmp";
|
||||
createolddir = "0750 root utmp";
|
||||
"createolddir " = "0750";
|
||||
create = "root utmp";
|
||||
"create " = "0750 root utmp";
|
||||
"create " = "0750";
|
||||
};
|
||||
# multiple paths should be aggregated
|
||||
multipath = {
|
||||
|
||||
@@ -275,9 +275,16 @@ in
|
||||
k3s = ''
|
||||
machine.wait_until_succeeds("kubectl -n kube-system rollout status deployment traefik")
|
||||
'';
|
||||
rke2 = ''
|
||||
machine.wait_until_succeeds("kubectl -n kube-system rollout status daemonset rke2-ingress-nginx-controller")
|
||||
'';
|
||||
rke2 =
|
||||
# Starting from v1.36, RKE2 also uses traefik as default load balancer
|
||||
if lib.versionAtLeast rancherPackage.version "1.36" then
|
||||
''
|
||||
machine.wait_until_succeeds("kubectl -n kube-system rollout status daemonset rke2-traefik")
|
||||
''
|
||||
else
|
||||
''
|
||||
machine.wait_until_succeeds("kubectl -n kube-system rollout status daemonset rke2-ingress-nginx-controller")
|
||||
'';
|
||||
}
|
||||
.${rancherDistro}
|
||||
}
|
||||
|
||||
35
nixos/tests/tranquil-pds.nix
Normal file
35
nixos/tests/tranquil-pds.nix
Normal file
@@ -0,0 +1,35 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
name = "tranquil-pds";
|
||||
|
||||
nodes.machine =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
services.tranquil-pds = {
|
||||
enable = true;
|
||||
database.createLocally = true;
|
||||
|
||||
settings = {
|
||||
server = {
|
||||
hostname = "pds";
|
||||
port = 8080;
|
||||
};
|
||||
|
||||
secrets = {
|
||||
allow_insecure = true;
|
||||
jwt_secret = "test-jwt-secret-must-be-32-chars-long";
|
||||
dpop_secret = "test-dpop-secret-must-be-32-chars-long";
|
||||
master_key = "test-master-key-must-be-32-chars-long";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.wait_for_unit("tranquil-pds.service")
|
||||
machine.wait_for_open_port(8080)
|
||||
machine.succeed("curl --fail http://localhost:8080")
|
||||
'';
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ nelind ];
|
||||
}
|
||||
@@ -15358,6 +15358,20 @@ final: prev: {
|
||||
meta.hydraPlatforms = [ ];
|
||||
};
|
||||
|
||||
reactive-nvim = buildVimPlugin {
|
||||
pname = "reactive.nvim";
|
||||
version = "1.2.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "rasulomaroff";
|
||||
repo = "reactive.nvim";
|
||||
tag = "v1.2.1";
|
||||
hash = "sha256-LZCCboM/fw+Kw6wVskrPs6nr4SFLoD0pi6EMxSIGelw=";
|
||||
};
|
||||
meta.homepage = "https://github.com/rasulomaroff/reactive.nvim/";
|
||||
meta.license = getLicenseFromSpdxId "Apache-2.0";
|
||||
meta.hydraPlatforms = [ ];
|
||||
};
|
||||
|
||||
readline-vim = buildVimPlugin {
|
||||
pname = "readline.vim";
|
||||
version = "0-unstable-2023-03-09";
|
||||
|
||||
@@ -13,18 +13,18 @@
|
||||
writableTmpDirAsHomeHook,
|
||||
}:
|
||||
let
|
||||
version = "0.8.0";
|
||||
version = "0.8.4";
|
||||
src = fetchFromGitHub {
|
||||
owner = "dmtrKovalenko";
|
||||
repo = "fff.nvim";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-JbV2dTQhTyZgDZYvFoR1mz9CeM2IPv59Qmp2iiJC8a0=";
|
||||
hash = "sha256-w88NovzYVTiUVZmgvvmRvRq1didlbxMJYtKj1A3VB/Y=";
|
||||
};
|
||||
fff-nvim-lib = rustPlatform.buildRustPackage {
|
||||
pname = "fff-nvim-lib";
|
||||
inherit version src;
|
||||
|
||||
cargoHash = "sha256-L/Ens/wzw/jKaa1T3A2pLIBKs09saPEk/0bRhgRezPQ=";
|
||||
cargoHash = "sha256-2LGrohseOYdroUFY3cHy57HzgfS34CBuIbN1AFuYTUg=";
|
||||
|
||||
cargoBuildFlags = [
|
||||
"-p"
|
||||
@@ -65,9 +65,12 @@ let
|
||||
openssl
|
||||
];
|
||||
|
||||
# This test requires curl and GitHub access
|
||||
checkFlags = [
|
||||
# This test requires curl and GitHub access
|
||||
"--skip=update_check::tests::test_update_check_end_to_end"
|
||||
|
||||
# This test depends on catching a race window and is not deterministic
|
||||
"--skip=drop_during_post_scan_does_not_crash"
|
||||
];
|
||||
|
||||
env = {
|
||||
|
||||
@@ -5791,6 +5791,12 @@ assertNoAdditions {
|
||||
vim-tabby = super.vim-tabby.overrideAttrs {
|
||||
};
|
||||
|
||||
vim-table-mode = super.vim-table-mode.overrideAttrs (old: {
|
||||
meta = old.meta // {
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
});
|
||||
|
||||
vim-tabpagecd = super.vim-tabpagecd.overrideAttrs (old: {
|
||||
meta = old.meta // {
|
||||
license = lib.licenses.mit;
|
||||
|
||||
@@ -1095,6 +1095,7 @@ https://github.com/winston0410/range-highlight.nvim/,,
|
||||
https://github.com/kelly-lin/ranger.nvim/,,
|
||||
https://github.com/rafaqz/ranger.vim/,,
|
||||
https://github.com/vim-scripts/rcshell.vim/,,
|
||||
https://github.com/rasulomaroff/reactive.nvim/,,
|
||||
https://github.com/ryvnf/readline.vim/,,
|
||||
https://github.com/theprimeagen/refactoring.nvim/,,
|
||||
https://github.com/mawkler/refjump.nvim/,,
|
||||
|
||||
@@ -21,26 +21,26 @@ vscode-utils.buildVscodeMarketplaceExtension (finalAttrs: {
|
||||
sources = {
|
||||
"x86_64-linux" = {
|
||||
arch = "linux-x64";
|
||||
hash = "sha256-cKQwDXdsaUI4pFF/DMa/8qLs9q3C1WwI47/otxKS+Ww=";
|
||||
hash = "sha256-fiPj/rkwNevJC2bTjRBkuhwdI3Sqgj3xsQB1yp6KxEM=";
|
||||
};
|
||||
"aarch64-linux" = {
|
||||
arch = "linux-arm64";
|
||||
hash = "sha256-2hOK3Hl5GDspu0oU0w2kqH324nOafRsKEoRCk2N6Nmw=";
|
||||
hash = "sha256-NZy2I3cNZBM2oXUJ/mf56QW1edvcKu0HICAZq6VVF6U=";
|
||||
};
|
||||
"x86_64-darwin" = {
|
||||
arch = "darwin-x64";
|
||||
hash = "sha256-fw/WkYTeB7uh9ggEASmZIz636iuy0nDsIt/oU2DBfGo=";
|
||||
hash = "sha256-admTed1OpngSd2BY368AkOQGWnVLX7KM4icgx2uNJYE=";
|
||||
};
|
||||
"aarch64-darwin" = {
|
||||
arch = "darwin-arm64";
|
||||
hash = "sha256-YwUoK12QEMasKl7GOTfHOnDgkg/NNBZMA29sx674XBc=";
|
||||
hash = "sha256-l39oH4LOgFrZ5598+YWvArIHrZHSz0NU9wOAMop7kNw=";
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
name = "claude-code";
|
||||
publisher = "anthropic";
|
||||
version = "2.1.156";
|
||||
version = "2.1.158";
|
||||
}
|
||||
// sources.${stdenvNoCC.hostPlatform.system}
|
||||
or (throw "Unsupported system ${stdenvNoCC.hostPlatform.system}");
|
||||
|
||||
@@ -1007,8 +1007,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "coder-remote";
|
||||
publisher = "coder";
|
||||
version = "1.14.5";
|
||||
hash = "sha256-08GsGOtgLhq5vLpQ9VDdVk/q5VSW6d7cXXflNQOpB50=";
|
||||
version = "1.14.6";
|
||||
hash = "sha256-dABM44pSD0srzNl6J+1OsqugWb++soVFmtEIzliByDs=";
|
||||
};
|
||||
meta = {
|
||||
description = "Extension for Visual Studio Code to open any Coder workspace in VS Code with a single click";
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "gambatte";
|
||||
version = "0-unstable-2026-05-15";
|
||||
version = "0-unstable-2026-05-29";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "gambatte-libretro";
|
||||
rev = "3262c2aa4adae8dba4f6d51cdd931c15cb11569f";
|
||||
hash = "sha256-JPnpY/43XbT9QnvzrYPkZLCcM3hN+SoQTFZ8J/Dj+Oc=";
|
||||
rev = "589c29a07cd773315b6d5d350c3e050cbda7cd9d";
|
||||
hash = "sha256-DEivvVqWMh/G9aqub3TzOjwcLcpNyEQzH9EZ29y3NIM=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "mame2010";
|
||||
version = "0-unstable-2026-04-20";
|
||||
version = "0-unstable-2026-05-23";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "mame2010-libretro";
|
||||
rev = "cc63285e2109263da4eca0911ba07aec60b8109b";
|
||||
hash = "sha256-vyOJNOnk74pvsfPq0Kg9ovQ/bS8R2ByA8SVMqixaueQ=";
|
||||
rev = "4679ae591ce39f3c0af492acd4a5b7319e9c2be5";
|
||||
hash = "sha256-ZG1p0bcnt9Xv6dKLSDh49KTxA4ZmwO+s4hEVuozg1ak=";
|
||||
};
|
||||
|
||||
makefile = "Makefile";
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "opera";
|
||||
version = "0-unstable-2026-04-10";
|
||||
version = "0-unstable-2026-05-30";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "opera-libretro";
|
||||
rev = "4c4ca6bf741c40715723a8b8dae4b6187ff6ac30";
|
||||
hash = "sha256-AcuqEuK3bz+WJ0r723+w6Y9WGuNs04zUOWlQ3aMXk/U=";
|
||||
rev = "d0a3b910f8bef6b8d48fb5eec4ad72ea5f022394";
|
||||
hash = "sha256-OH9gkbMC4PJnpboiYrKV+XkQqq5ldq5tneyVJHfDzsM=";
|
||||
};
|
||||
|
||||
makefile = "Makefile";
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "pcsx2";
|
||||
version = "0-unstable-2026-05-13";
|
||||
version = "0-unstable-2026-05-30";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "ps2";
|
||||
rev = "2b9768b58e743b2e7586051e28896c98dc05fa4e";
|
||||
hash = "sha256-Du+Z0gF5y5a91/bCfSY7ohubSn4JaaWxB3fkO4aE6e8=";
|
||||
rev = "a1b104679bcf6a6cf943f1e9daee0e98515944c2";
|
||||
hash = "sha256-NmVjqct6DaYdeAt/aMoHg0t5rs1k8srZ9JW6H5bGw5Y=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -14,13 +14,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "play";
|
||||
version = "0-unstable-2026-05-16";
|
||||
version = "0-unstable-2026-05-28";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jpd002";
|
||||
repo = "Play-";
|
||||
rev = "e62ea293ba347dc1fd9d387458d8262bc122053f";
|
||||
hash = "sha256-V0ItXRD1YO7jq/SNoXOh7ZhpWwx9oFs3muIUkzj8FHE=";
|
||||
rev = "a14967a615ee278191a6a8c1f4f5171b660a170c";
|
||||
hash = "sha256-gGCcr5yOnoP9EdP4fDM12dyEvNOPisBI+r+tGvezXi0=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -264,9 +264,16 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
passthru = {
|
||||
# The declarations for `gimp-with-plugins` wrapper,
|
||||
# used for determining plug-in installation paths
|
||||
majorVersion = "${lib.versions.major finalAttrs.version}.0";
|
||||
targetLibDir = "lib/gimp/${finalAttrs.passthru.majorVersion}";
|
||||
targetDataDir = "share/gimp/${finalAttrs.passthru.majorVersion}";
|
||||
apiVersion = "${
|
||||
toString (
|
||||
lib.toInt (lib.versions.major finalAttrs.version)
|
||||
+ (if lib.versions.minor finalAttrs.version == "99" then 1 else 0)
|
||||
)
|
||||
}.0";
|
||||
appVersion = lib.versions.majorMinor finalAttrs.version;
|
||||
majorVersion = lib.warn "gimp2.majorVersion is deprecated in favour of gimp2.apiVersion and gimp2.appVersion" finalAttrs.passthru.apiVersion;
|
||||
targetLibDir = "lib/gimp/${finalAttrs.passthru.apiVersion}";
|
||||
targetDataDir = "share/gimp/${finalAttrs.passthru.apiVersion}";
|
||||
targetPluginDir = "${finalAttrs.passthru.targetLibDir}/plug-ins";
|
||||
targetScriptDir = "${finalAttrs.passthru.targetDataDir}/scripts";
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
gexiv2,
|
||||
harfbuzz,
|
||||
makeFontsConf,
|
||||
mypaint-brushes1,
|
||||
mypaint-brushes,
|
||||
libwebp,
|
||||
libheif,
|
||||
gjs,
|
||||
@@ -71,7 +71,6 @@
|
||||
adwaita-icon-theme,
|
||||
alsa-lib,
|
||||
desktopToDarwinBundle,
|
||||
fetchpatch,
|
||||
qoi,
|
||||
}:
|
||||
|
||||
@@ -84,7 +83,7 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "gimp";
|
||||
version = "3.0.8";
|
||||
version = "3.2.4";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -95,7 +94,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.gimp.org/gimp/v${lib.versions.majorMinor finalAttrs.version}/gimp-${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-/rSYrMAbJoJ8/x/5Wqj7gs3Wpg16v3c8/NGavq/KM4Y=";
|
||||
hash = "sha256-cxK8U+nG0tAFbKe5PxxrmHB5Rt2TT3FMIbh0bstgFYg=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@@ -118,31 +117,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
(replaceVars ./tests-dbus-conf.patch {
|
||||
session_conf = "${dbus.out}/share/dbus-1/session.conf";
|
||||
})
|
||||
|
||||
# Allow calling tests from other directories.
|
||||
# Required for the next patch.
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gimp/-/commit/fd58ab3bee7a79cb0a7870c6858f3b64c84a7917.patch";
|
||||
hash = "sha256-fpysKWwt5rilqp7ukdWx7kutkDquL/6YhYjR1zQfu/Q=";
|
||||
})
|
||||
|
||||
# Do not go through ui for save-and-export test.
|
||||
# https://gitlab.gnome.org/GNOME/gimp/-/issues/15763
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gimp/-/commit/608ad0a528b5b31101c021d96aeb95558d207497.patch";
|
||||
hash = "sha256-0oA5u+uAT0l3WT90fy0RGOR8xy/fGIHevBb69oUzfGs=";
|
||||
excludes = [
|
||||
# Other changes would prevent deletion, removing it from build is sufficient.
|
||||
"app/tests/test-save-and-export.c"
|
||||
];
|
||||
})
|
||||
|
||||
# Disable broken UI tests.
|
||||
# https://gitlab.gnome.org/GNOME/gimp/-/issues/15763
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gimp/-/commit/c34fe3e94f1019eafcb38edf1c07bff12a57431e.patch";
|
||||
hash = "sha256-yVauEpoGEOIfCXnGnWMGWjXbIDizDhJ3hipeCy3XSBM=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -216,7 +190,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
libxmu
|
||||
glib-networking
|
||||
libmypaint
|
||||
mypaint-brushes1
|
||||
mypaint-brushes
|
||||
qoi
|
||||
|
||||
# New file dialogue crashes with “Icon 'image-missing' not present in theme Symbolic” without an icon theme.
|
||||
@@ -285,19 +259,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
# GIMP is executed at build time so we need to fix this.
|
||||
# TODO: Look into if we can fix the interp thing.
|
||||
chmod +x plug-ins/python/{colorxhtml,file-openraster,foggify,gradients-save-as-css,histogram-export,palette-offset,palette-sort,palette-to-gradient,python-eval,spyro-plus}.py
|
||||
chmod +x plug-ins/python/{colorxhtml,file-openraster,foggify,gradients-save-as-css,histogram-export,palette-export-as-kpl,palette-offset,palette-sort,palette-to-gradient,python-eval,spyro-plus}.py
|
||||
patchShebangs \
|
||||
plug-ins/python/{colorxhtml,file-openraster,foggify,gradients-save-as-css,histogram-export,palette-offset,palette-sort,palette-to-gradient,python-eval,spyro-plus}.py
|
||||
|
||||
# Use Python from environment not from Meson.
|
||||
# https://gitlab.gnome.org/GNOME/gimp/-/merge_requests/2607
|
||||
substituteInPlace meson.build \
|
||||
--replace-fail "import('python').find_installation()" "import('python').find_installation('python3')"
|
||||
|
||||
# Broken test
|
||||
# https://github.com/NixOS/nixpkgs/pull/484971#issuecomment-3846759517
|
||||
substituteInPlace app/tests/meson.build \
|
||||
--replace-fail "{${"\n"} 'name': 'save-and-export',${"\n"} }${"\n"}" ""
|
||||
plug-ins/python/{colorxhtml,file-openraster,foggify,gradients-save-as-css,histogram-export,palette-export-as-kpl,palette-offset,palette-sort,palette-to-gradient,python-eval,spyro-plus}.py
|
||||
'';
|
||||
|
||||
preBuild =
|
||||
@@ -354,9 +318,16 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
passthru = {
|
||||
# The declarations for `gimp-with-plugins` wrapper,
|
||||
# used for determining plug-in installation paths
|
||||
majorVersion = "${lib.versions.major finalAttrs.version}.0";
|
||||
targetLibDir = "lib/gimp/${finalAttrs.passthru.majorVersion}";
|
||||
targetDataDir = "share/gimp/${finalAttrs.passthru.majorVersion}";
|
||||
apiVersion = "${
|
||||
toString (
|
||||
lib.toInt (lib.versions.major finalAttrs.version)
|
||||
+ (if lib.versions.minor finalAttrs.version == "99" then 1 else 0)
|
||||
)
|
||||
}.0";
|
||||
appVersion = lib.versions.majorMinor finalAttrs.version;
|
||||
majorVersion = lib.warn "gimp.majorVersion is deprecated in favour of gimp.apiVersion and gimp.appVersion" finalAttrs.passthru.apiVersion;
|
||||
targetLibDir = "lib/gimp/${finalAttrs.passthru.apiVersion}";
|
||||
targetDataDir = "share/gimp/${finalAttrs.passthru.apiVersion}";
|
||||
targetPluginDir = "${finalAttrs.passthru.targetLibDir}/plug-ins";
|
||||
targetScriptDir = "${finalAttrs.passthru.targetDataDir}/scripts";
|
||||
|
||||
@@ -368,7 +339,10 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
description = "GNU Image Manipulation Program";
|
||||
homepage = "https://www.gimp.org/";
|
||||
donationPage = "https://www.gimp.org/donating/";
|
||||
maintainers = with lib.maintainers; [ jtojnar ];
|
||||
maintainers = with lib.maintainers; [
|
||||
jtojnar
|
||||
bddvlpr
|
||||
];
|
||||
license = lib.licenses.gpl3Plus;
|
||||
platforms = lib.platforms.linux;
|
||||
# Build invokes built binary to convert assets, binary hangs during plugin loading on big-endian platforms (s390x, ppc64)
|
||||
|
||||
@@ -13,12 +13,10 @@ let
|
||||
stdenv
|
||||
fetchurl
|
||||
fetchpatch
|
||||
fetchpatch2
|
||||
pkg-config
|
||||
intltool
|
||||
glib
|
||||
fetchFromGitHub
|
||||
fetchFromGitLab
|
||||
;
|
||||
|
||||
# We cannot use gimp from the arguments directly, or it would be shadowed by the one
|
||||
@@ -144,7 +142,7 @@ lib.makeScope pkgs.newScope (
|
||||
installTargets = [ "install-admin" ];
|
||||
|
||||
meta = {
|
||||
broken = gimp.majorVersion != "2.0";
|
||||
broken = gimp.apiVersion != "2.0";
|
||||
description = "Batch Image Manipulation Plugin for GIMP";
|
||||
homepage = "https://github.com/alessandrofrancesconi/gimp-plugin-bimp";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
@@ -168,7 +166,7 @@ lib.makeScope pkgs.newScope (
|
||||
'';
|
||||
|
||||
meta = {
|
||||
broken = gimp.majorVersion != "2.0";
|
||||
broken = gimp.apiVersion != "2.0";
|
||||
description = "Gimp plug-in for the farbfeld image format";
|
||||
homepage = "https://github.com/ids1024/gimp-farbfeld";
|
||||
license = lib.licenses.mit;
|
||||
@@ -208,7 +206,7 @@ lib.makeScope pkgs.newScope (
|
||||
'';
|
||||
|
||||
meta = {
|
||||
broken = gimp.majorVersion != "2.0";
|
||||
broken = gimp.apiVersion != "2.0";
|
||||
description = "GIMP plug-in to do the fourier transform";
|
||||
homepage = "https://people.via.ecp.fr/~remi/soft/gimp/gimp_plugin_en.php3#fourier";
|
||||
license = with lib.licenses; [ gpl3Plus ];
|
||||
@@ -265,7 +263,7 @@ lib.makeScope pkgs.newScope (
|
||||
];
|
||||
|
||||
meta = {
|
||||
broken = gimp.majorVersion != "2.0";
|
||||
broken = gimp.apiVersion != "2.0";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -293,7 +291,7 @@ lib.makeScope pkgs.newScope (
|
||||
installPhase = "installPlugin src/wavelet-sharpen"; # TODO translations are not copied .. How to do this on nix?
|
||||
|
||||
meta = {
|
||||
broken = gimp.majorVersion != "2.0";
|
||||
broken = gimp.apiVersion != "2.0";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -322,7 +320,7 @@ lib.makeScope pkgs.newScope (
|
||||
];
|
||||
|
||||
meta = {
|
||||
broken = gimp.majorVersion != "2.0";
|
||||
broken = gimp.apiVersion != "2.0";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -356,7 +354,7 @@ lib.makeScope pkgs.newScope (
|
||||
";
|
||||
|
||||
meta = {
|
||||
broken = gimp.majorVersion != "2.0";
|
||||
broken = gimp.apiVersion != "2.0";
|
||||
description = "GIMP plugin to correct lens distortion using the lensfun library and database";
|
||||
|
||||
homepage = "http://lensfun.sebastiankraft.net/";
|
||||
|
||||
@@ -15,11 +15,9 @@ let
|
||||
selectedPlugins = lib.filter (pkg: pkg != gimp) (if plugins == null then allPlugins else plugins);
|
||||
extraArgs =
|
||||
map (x: x.wrapArgs or "") selectedPlugins
|
||||
++ lib.optionals (gimp.majorVersion == "2.0") [
|
||||
++ lib.optionals (gimp.apiVersion == "2.0") [
|
||||
''--prefix GTK_PATH : "${gnome-themes-extra}/lib/gtk-2.0"''
|
||||
];
|
||||
exeVersion =
|
||||
if gimp.majorVersion == "2.0" then lib.versions.majorMinor gimp.version else gimp.majorVersion;
|
||||
majorVersion = lib.versions.major gimp.version;
|
||||
|
||||
in
|
||||
@@ -37,7 +35,7 @@ symlinkJoin {
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
postBuild = ''
|
||||
for each in gimp-${exeVersion} gimp-console-${exeVersion}; do
|
||||
for each in gimp-${gimp.appVersion} gimp-console-${gimp.appVersion}; do
|
||||
wrapProgram $out/bin/$each \
|
||||
--set GIMP${majorVersion}_PLUGINDIR "$out/${gimp.targetLibDir}" \
|
||||
--set GIMP${majorVersion}_DATADIR "$out/${gimp.targetDataDir}" \
|
||||
@@ -45,7 +43,7 @@ symlinkJoin {
|
||||
done
|
||||
set +x
|
||||
for each in gimp gimp-console; do
|
||||
ln -sf "$each-${exeVersion}" $out/bin/$each
|
||||
ln -sf "$each-${gimp.appVersion}" $out/bin/$each
|
||||
done
|
||||
|
||||
ln -s ${gimp.man} $man
|
||||
|
||||
@@ -28,12 +28,16 @@
|
||||
librsvg,
|
||||
gtk-mac-integration,
|
||||
webp-pixbuf-loader,
|
||||
versionCheckHook,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "zathura";
|
||||
version = "2026.05.20";
|
||||
|
||||
strictDeps = true;
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pwmt";
|
||||
repo = "zathura";
|
||||
@@ -102,6 +106,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
doCheck = !stdenv.hostPlatform.isDarwin;
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
doInstallCheck = true;
|
||||
|
||||
passthru.updateScript = gitUpdater { };
|
||||
|
||||
meta = {
|
||||
@@ -110,5 +117,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
license = lib.licenses.zlib;
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = with lib.maintainers; [ mithicspirit ];
|
||||
mainProgram = "zathura";
|
||||
};
|
||||
})
|
||||
|
||||
@@ -228,7 +228,7 @@ let
|
||||
terminal = false;
|
||||
}
|
||||
// (
|
||||
if libName == "thunderbird" then
|
||||
if lib.strings.hasPrefix "thunderbird" libName then
|
||||
{
|
||||
genericName = "Email Client";
|
||||
comment = "Read and write e-mails or RSS feeds, or manage tasks on calendars.";
|
||||
@@ -413,7 +413,7 @@ let
|
||||
done
|
||||
|
||||
# Disable update checks
|
||||
touch $out/${libDir}/is-packaged-app
|
||||
touch "$out/${libDir}/is-packaged-app"
|
||||
|
||||
cd "$out"
|
||||
|
||||
|
||||
@@ -0,0 +1,138 @@
|
||||
{
|
||||
"images-calico-linux-amd64-tar-gz": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-calico.linux-amd64.tar.gz",
|
||||
"sha256": "bc9fb1ba72af6185de90e4e0f8a384993657c4b0fdedbb14e7ca5cf93bf2303d"
|
||||
},
|
||||
"images-calico-linux-amd64-tar-zst": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-calico.linux-amd64.tar.zst",
|
||||
"sha256": "38fc5ecd017e9a66e3831ece42efedcfedaafc000759eaa4fb9f19a68122ec51"
|
||||
},
|
||||
"images-calico-linux-arm64-tar-gz": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-calico.linux-arm64.tar.gz",
|
||||
"sha256": "e86ac7f4cf14e4f02fcdd0e3d74e832fa43654f592068c2b5d8c044c69e2b749"
|
||||
},
|
||||
"images-calico-linux-arm64-tar-zst": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-calico.linux-arm64.tar.zst",
|
||||
"sha256": "03df93db61bc54f351bb6131c632279c265d4b71af0a90e2a6898f9b99b453f4"
|
||||
},
|
||||
"images-canal-linux-amd64-tar-gz": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-canal.linux-amd64.tar.gz",
|
||||
"sha256": "5cce5314ed6ff237c646723456c81876e89517b9164368728a9df00697655858"
|
||||
},
|
||||
"images-canal-linux-amd64-tar-zst": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-canal.linux-amd64.tar.zst",
|
||||
"sha256": "3a7828ce0143c3eb91cae940cebdfa0145960e91be056e88a8b077ee39ccc54d"
|
||||
},
|
||||
"images-canal-linux-arm64-tar-gz": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-canal.linux-arm64.tar.gz",
|
||||
"sha256": "e8346348137747fbd626846e5b71d182c49e8a1dcb997ea9e91f50e7bd907129"
|
||||
},
|
||||
"images-canal-linux-arm64-tar-zst": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-canal.linux-arm64.tar.zst",
|
||||
"sha256": "ede6d29451a99d7f4663b6a2b8eb0cfa093f83b7b025fd5c4899fb02edac703d"
|
||||
},
|
||||
"images-cilium-linux-amd64-tar-gz": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-cilium.linux-amd64.tar.gz",
|
||||
"sha256": "8c52261340b4af54186f83d2913c676a2dcef820f25a1b42b8c51cfef1dcdbc6"
|
||||
},
|
||||
"images-cilium-linux-amd64-tar-zst": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-cilium.linux-amd64.tar.zst",
|
||||
"sha256": "865913456dc55b2ba4748b0fe76489e4960a60990f207341c66bcbf9e93e95b3"
|
||||
},
|
||||
"images-cilium-linux-arm64-tar-gz": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-cilium.linux-arm64.tar.gz",
|
||||
"sha256": "4170bfc7d0ebf9167a94d24e393fbff0fc7dce4da1443257709fdbe603ffc579"
|
||||
},
|
||||
"images-cilium-linux-arm64-tar-zst": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-cilium.linux-arm64.tar.zst",
|
||||
"sha256": "016caf748e5c39460b9618d998d261c7db8fe8348f9fa43d35693a47d4913b86"
|
||||
},
|
||||
"images-core-linux-amd64-tar-gz": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-core.linux-amd64.tar.gz",
|
||||
"sha256": "03a72f2c228131b7cb616c5b7758cd1c00b7f3e7d589573c5faf837e4e2ab764"
|
||||
},
|
||||
"images-core-linux-amd64-tar-zst": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-core.linux-amd64.tar.zst",
|
||||
"sha256": "37acd15d183693fb0bb465840590593ed78d72415752a052d282a418fdb905cf"
|
||||
},
|
||||
"images-core-linux-arm64-tar-gz": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-core.linux-arm64.tar.gz",
|
||||
"sha256": "4798bf3293e7b5b62e694bee8a811c3ace86bb5c7516c9f196a4ba48dc947c3f"
|
||||
},
|
||||
"images-core-linux-arm64-tar-zst": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-core.linux-arm64.tar.zst",
|
||||
"sha256": "ff8c770fa2b17151e333a0a4449bc4dc3cd5c65662ec88b2ffc31fde6a40d0ed"
|
||||
},
|
||||
"images-flannel-linux-amd64-tar-gz": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-flannel.linux-amd64.tar.gz",
|
||||
"sha256": "0e5c71c9ecd89f11bb1cc0ea72a0297090e7a44395efe5fd74e14af3db3581a8"
|
||||
},
|
||||
"images-flannel-linux-amd64-tar-zst": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-flannel.linux-amd64.tar.zst",
|
||||
"sha256": "23695fd8c2a77f043a089c44437d12b5bde88422dbcd1d70edcda7a78f651137"
|
||||
},
|
||||
"images-flannel-linux-arm64-tar-gz": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-flannel.linux-arm64.tar.gz",
|
||||
"sha256": "d9f75aaace63bcba2cbaeba2662d9877d39ec822621fd96824e9ec3fbe62a79c"
|
||||
},
|
||||
"images-flannel-linux-arm64-tar-zst": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-flannel.linux-arm64.tar.zst",
|
||||
"sha256": "8aa8e19b739bc3fd897115f92d54acd081453441ee4dae8ca694ec47662838a7"
|
||||
},
|
||||
"images-harvester-linux-amd64-tar-gz": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-harvester.linux-amd64.tar.gz",
|
||||
"sha256": "c9442d489c4170fc515d04c2c5c7c76ff3ca2fb4093a94aea0d0a6fb1719c5d3"
|
||||
},
|
||||
"images-harvester-linux-amd64-tar-zst": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-harvester.linux-amd64.tar.zst",
|
||||
"sha256": "9551558d7baba1a78de7954f4801cf4329b5fb5ffd0cc3566b9fa32732ff950c"
|
||||
},
|
||||
"images-harvester-linux-arm64-tar-gz": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-harvester.linux-arm64.tar.gz",
|
||||
"sha256": "11ea150625fc1a4700cec2859367692d533f7f9288f7196b331a77682766d742"
|
||||
},
|
||||
"images-harvester-linux-arm64-tar-zst": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-harvester.linux-arm64.tar.zst",
|
||||
"sha256": "045db3938a0a11f6d5b4936f63471fec48fd76d29ef85e9cfe6bae5bddd8525e"
|
||||
},
|
||||
"images-ingress-nginx-linux-amd64-tar-gz": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-ingress-nginx.linux-amd64.tar.gz",
|
||||
"sha256": "0af77531d170d30b844518bb4665b29f3f386cf160f7c2b955467516f4d04dc3"
|
||||
},
|
||||
"images-ingress-nginx-linux-amd64-tar-zst": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-ingress-nginx.linux-amd64.tar.zst",
|
||||
"sha256": "d5b7d3f12de0799cebf84fc6260fc4f093f2837c5fef6fc84849d8f1da5cbc22"
|
||||
},
|
||||
"images-ingress-nginx-linux-arm64-tar-gz": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-ingress-nginx.linux-arm64.tar.gz",
|
||||
"sha256": "8c5d5eea216102e5dd07621671f2e462dfade184f20c81adb8facbaa58e59c2c"
|
||||
},
|
||||
"images-ingress-nginx-linux-arm64-tar-zst": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-ingress-nginx.linux-arm64.tar.zst",
|
||||
"sha256": "363f42d83118e3398e72996f6b42477230000ffd50d93fdda570140ea020539b"
|
||||
},
|
||||
"images-multus-linux-amd64-tar-gz": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-multus.linux-amd64.tar.gz",
|
||||
"sha256": "ec3d8557e36db43acd9a76c38242de6feea354e41ae3ff8b9ab55de82ee19026"
|
||||
},
|
||||
"images-multus-linux-amd64-tar-zst": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-multus.linux-amd64.tar.zst",
|
||||
"sha256": "8be7075092a5e179e50fb526ea730018103d9f8a609f22f0d1431482690a9d7f"
|
||||
},
|
||||
"images-multus-linux-arm64-tar-gz": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-multus.linux-arm64.tar.gz",
|
||||
"sha256": "caebabf77d9d3190d76156990d8eaa0c2df5cb563a8447f1e506b50f4104e1a0"
|
||||
},
|
||||
"images-multus-linux-arm64-tar-zst": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-multus.linux-arm64.tar.zst",
|
||||
"sha256": "39bd89d250894254f7c1f9b061401a574716574ab3f51cc3a82c03eb4e804825"
|
||||
},
|
||||
"images-vsphere-linux-amd64-tar-gz": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-vsphere.linux-amd64.tar.gz",
|
||||
"sha256": "d07ed8b72db67fae9024540fca3eed7990b4a4b3a7ba6eef78a2eae8e6b3b4d3"
|
||||
},
|
||||
"images-vsphere-linux-amd64-tar-zst": {
|
||||
"url": "https://github.com/rancher/rke2/releases/download/v1.36.1%2Brke2r1/rke2-images-vsphere.linux-amd64.tar.zst",
|
||||
"sha256": "4cd43197b21bd1344c0a7e87a7f28c8766b3edfab8e2fb2bb6954d144f3b44a7"
|
||||
}
|
||||
}
|
||||
13
pkgs/applications/networking/cluster/rke2/1_36/versions.nix
Normal file
13
pkgs/applications/networking/cluster/rke2/1_36/versions.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
rke2Version = "1.36.1+rke2r1";
|
||||
rke2Commit = "b4a8e78038f35eb282a8d6e3c29797a1181fa961";
|
||||
rke2TarballHash = "sha256-SD7+lNYu6/5iMxEmHEpkD8g9UCgN6gjkFsGdQn9o1Cc=";
|
||||
rke2VendorHash = "sha256-gUgRAC9yKDa8JYb/jdCxZdP6500XxjqHprmYlPv5A8c=";
|
||||
k8sImageTag = "v1.36.1-rke2r1-build20260512";
|
||||
etcdVersion = "v3.6.7-k3s1-build20260512";
|
||||
pauseVersion = "3.6";
|
||||
ccmVersion = "v1.36.0-rc2.0.20260427154526-d239025e2a23-build20260429";
|
||||
dockerizedVersion = "v1.36.1-rke2r1";
|
||||
helmJobVersion = "v0.10.0-build20260513";
|
||||
imagesVersions = with builtins; fromJSON (readFile ./images-versions.json);
|
||||
}
|
||||
@@ -46,6 +46,7 @@ lib:
|
||||
nixosTests,
|
||||
}:
|
||||
buildGoModule (finalAttrs: {
|
||||
__structuredAttrs = true;
|
||||
pname = "rke2";
|
||||
version = rke2Version;
|
||||
|
||||
|
||||
@@ -11,7 +11,9 @@ rec {
|
||||
|
||||
rke2_1_35 = common (import ./1_35/versions.nix) extraArgs;
|
||||
|
||||
rke2_1_36 = common (import ./1_36/versions.nix) extraArgs;
|
||||
|
||||
# Automatically set by update script, changes shouldn't be backported
|
||||
rke2_stable = rke2_1_35;
|
||||
rke2_latest = rke2_1_35;
|
||||
rke2_latest = rke2_1_36;
|
||||
}
|
||||
|
||||
@@ -292,11 +292,11 @@
|
||||
"vendorHash": "sha256-tgo9FxqMZOZw4ZKULOz6CbZ8oJfEFfjdFffiWjjkc0Y="
|
||||
},
|
||||
"datadrivers_nexus": {
|
||||
"hash": "sha256-yfxlDln4brI8QTFnhVsNOO3vRiqft3YWytvy2GMNBdY=",
|
||||
"hash": "sha256-gwExaFhOoJFrAhH91oZEp1AFvI7kgWekp655zd4tyd8=",
|
||||
"homepage": "https://registry.terraform.io/providers/datadrivers/nexus",
|
||||
"owner": "datadrivers",
|
||||
"repo": "terraform-provider-nexus",
|
||||
"rev": "v2.7.1",
|
||||
"rev": "v2.8.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-2nNvLu2jicDUxiIi53qxtc6rvZQ+IEtW+LbRPYChfQE="
|
||||
},
|
||||
@@ -373,13 +373,13 @@
|
||||
"vendorHash": "sha256-RtS88NqkO1nG/8znM0sQqsAIfDc+sOMy8N4T4hmvaVA="
|
||||
},
|
||||
"e-breuninger_netbox": {
|
||||
"hash": "sha256-hY3XZFMP1qT4mHJpxsVSGsyd025NOeJogbh2m9hk7qE=",
|
||||
"hash": "sha256-04k9lKwoczptgoMW5C8EitP/u/Joi4/OCd3+I+nr5pc=",
|
||||
"homepage": "https://registry.terraform.io/providers/e-breuninger/netbox",
|
||||
"owner": "e-breuninger",
|
||||
"repo": "terraform-provider-netbox",
|
||||
"rev": "v5.3.0",
|
||||
"rev": "v5.4.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-5IZeoZpZj4vgAlyxbycs+IPeOEBS1tw3tM/7zoT4DCg="
|
||||
"vendorHash": "sha256-RWoe4QQE55lW+B20uDJt0qX3Om/oc3em3LXhN+cBoUY="
|
||||
},
|
||||
"equinix_equinix": {
|
||||
"hash": "sha256-Tn8CnLx2ibkj7qlzpYCX7Cm+yoTcZujVELMJSbG+/ec=",
|
||||
@@ -508,13 +508,13 @@
|
||||
"vendorHash": "sha256-ikBqIxD5aTOcwNHCMN6EaOwSHCAP5n/SULuqQXPLpOc="
|
||||
},
|
||||
"hashicorp_aws": {
|
||||
"hash": "sha256-dC3oeVzd8H7Ni9NvApkjmDpVWdx/XgirhI7Rf5ECGBE=",
|
||||
"hash": "sha256-fjQPwnZeqYyP9Dh4QtnzFl6wNmuj/33nZAKPPpyQBcg=",
|
||||
"homepage": "https://registry.terraform.io/providers/hashicorp/aws",
|
||||
"owner": "hashicorp",
|
||||
"repo": "terraform-provider-aws",
|
||||
"rev": "v6.46.0",
|
||||
"rev": "v6.47.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-ieYDog2HS8OwfKvzPIsXZcSAsT7D9qzXPXuHhtfthV0="
|
||||
"vendorHash": "sha256-XnVGjEz4mxqkNFrvgpRQ4W9s+j03mk0NTgEx4p5Z6qk="
|
||||
},
|
||||
"hashicorp_awscc": {
|
||||
"hash": "sha256-kpLC5NdlpBNXj2V0hR8ZvsJjyVgKCXFt7xK8Z7AOyoQ=",
|
||||
@@ -715,13 +715,13 @@
|
||||
"vendorHash": null
|
||||
},
|
||||
"hetznercloud_hcloud": {
|
||||
"hash": "sha256-oU5XdhAl8/YEIEOF6TxpNEyffLYMrOgWv1D6oJNzJ8Q=",
|
||||
"hash": "sha256-yIzI1p4U8klNqqFqiMuKhVb8njoslJ+vDXFOv+9EmFw=",
|
||||
"homepage": "https://registry.terraform.io/providers/hetznercloud/hcloud",
|
||||
"owner": "hetznercloud",
|
||||
"repo": "terraform-provider-hcloud",
|
||||
"rev": "v1.63.0",
|
||||
"rev": "v1.64.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-L+T14UUCEUDbpd8UzKAsDzhpXKTmeUwC1XMnwWK4Z8Y="
|
||||
"vendorHash": "sha256-f49amYWzWSG9tzY6wvpxtTFiyJ8zC/Lc1hIQtzdgJRs="
|
||||
},
|
||||
"huaweicloud_huaweicloud": {
|
||||
"hash": "sha256-CtqPtXccE6I+yDj/7XbjbACMwCGMv+pSEIa5DVh+AGo=",
|
||||
@@ -1013,13 +1013,13 @@
|
||||
"vendorHash": "sha256-/4mktOn7qjWIkpyqeEW4vzY0w0pG+0qx7KRYBkE1IkQ="
|
||||
},
|
||||
"okta_okta": {
|
||||
"hash": "sha256-Skp7GSfQSTBLOFoGlU3/TmzMqyZ8j7qYzlyuBYzBiB4=",
|
||||
"hash": "sha256-3zuD+R1fUAFJ3pvzzHmN92RGGiWLYpnGOJXSsv89Les=",
|
||||
"homepage": "https://registry.terraform.io/providers/okta/okta",
|
||||
"owner": "okta",
|
||||
"repo": "terraform-provider-okta",
|
||||
"rev": "v6.10.0",
|
||||
"rev": "v6.11.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-0NaqVCibwiK7WY6hIFGd2kB/okyh6ZsZ+BAe5mGP38A="
|
||||
"vendorHash": "sha256-/IbzilmyVTZh7qWogtXd+/Y7UJdjsQaf7Yjhi1fU1Vc="
|
||||
},
|
||||
"oktadeveloper_oktaasa": {
|
||||
"hash": "sha256-2LhxgowqKvDDDOwdznusL52p2DKP+UiXALHcs9ZQd0U=",
|
||||
@@ -1319,11 +1319,11 @@
|
||||
"vendorHash": "sha256-omxEb+ntQuHDfS2Rmt0rj0BF0Q2T8DLhobLua2uU/0o="
|
||||
},
|
||||
"tencentcloudstack_tencentcloud": {
|
||||
"hash": "sha256-sjqbMCwj2lEdrGEeRRml/lpf795jDgPlMWBMn1MkAWI=",
|
||||
"hash": "sha256-hBKPD0hQ9kjypeG8Q8xLD2pKGnyWjKAKGnImYG9hsq8=",
|
||||
"homepage": "https://registry.terraform.io/providers/tencentcloudstack/tencentcloud",
|
||||
"owner": "tencentcloudstack",
|
||||
"repo": "terraform-provider-tencentcloud",
|
||||
"rev": "v1.82.95",
|
||||
"rev": "v1.82.98",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": null
|
||||
},
|
||||
@@ -1508,12 +1508,12 @@
|
||||
"vendorHash": "sha256-Z4DfoG4ApXbPNXZs9YvBWQj1bH7moLNI6P+nKDHt/Jc="
|
||||
},
|
||||
"yandex-cloud_yandex": {
|
||||
"hash": "sha256-j2JFdTXcry5VHEKBK7VHIjAdmPePF9fnJ4fW5dXglaY=",
|
||||
"hash": "sha256-JSF1Q0wNRg2oavZ1+67QfCxNz+JOHrG+rfKn/1T9cgc=",
|
||||
"homepage": "https://registry.terraform.io/providers/yandex-cloud/yandex",
|
||||
"owner": "yandex-cloud",
|
||||
"repo": "terraform-provider-yandex",
|
||||
"rev": "v0.204.0",
|
||||
"rev": "v0.206.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-ikUGcbJ1j/QrpPF5qn+ag2e7i1gxAK74h3nrUqR+azo="
|
||||
"vendorHash": "sha256-SpJ6wuzBzfI46C7MbNxs0gQpG62ODmB0WIZ8UpJjuPU="
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -11,7 +11,6 @@
|
||||
inotify-tools,
|
||||
systemd,
|
||||
zlib,
|
||||
pcre,
|
||||
rapidjson,
|
||||
small,
|
||||
libb64,
|
||||
@@ -24,7 +23,6 @@
|
||||
miniupnpc,
|
||||
dht,
|
||||
libnatpmp,
|
||||
libiconv,
|
||||
# Build options
|
||||
enableGTK3 ? false,
|
||||
gtkmm3,
|
||||
@@ -54,7 +52,6 @@ let
|
||||
libpsl
|
||||
miniupnpc
|
||||
openssl
|
||||
pcre
|
||||
zlib
|
||||
]
|
||||
++ optionals enableSystemd [ systemd ]
|
||||
@@ -136,7 +133,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
libutp
|
||||
miniupnpc
|
||||
openssl
|
||||
pcre
|
||||
rapidjson
|
||||
small
|
||||
utf8cpp
|
||||
|
||||
@@ -1,151 +0,0 @@
|
||||
{
|
||||
pkgsBuildBuild,
|
||||
go,
|
||||
buildGoModule,
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
nixosTests,
|
||||
autoSignDarwinBinariesHook,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
let
|
||||
common =
|
||||
{
|
||||
stname,
|
||||
target,
|
||||
postInstall ? "",
|
||||
}:
|
||||
buildGoModule rec {
|
||||
pname = stname;
|
||||
version = "2.0.15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "syncthing";
|
||||
repo = "syncthing";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-v77ovjV+UoCRA1GteP+HDqC8dsRvtOhFX/IkSgSIf8Y=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-boYTLgvH+iWlh3y3Z0LPvSVGEget3X94AthtJKphhCw=";
|
||||
|
||||
nativeBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
# Recent versions of macOS seem to require binaries to be signed when
|
||||
# run from Launch Agents/Daemons, even on x86 devices where it has a
|
||||
# more lax code signing policy compared to Apple Silicon. So just sign
|
||||
# the binaries on both architectures to make it possible for launchd to
|
||||
# auto-start Syncthing at login.
|
||||
autoSignDarwinBinariesHook
|
||||
];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
env = {
|
||||
BUILD_USER = "nix";
|
||||
BUILD_HOST = "nix";
|
||||
};
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
(
|
||||
export GOOS="${pkgsBuildBuild.go.GOOS}" GOARCH="${pkgsBuildBuild.go.GOARCH}" CC=$CC_FOR_BUILD
|
||||
go build build.go
|
||||
go generate github.com/syncthing/syncthing/lib/api/auto github.com/syncthing/syncthing/cmd/infra/strelaypoolsrv/auto
|
||||
)
|
||||
./build -goos ${go.GOOS} -goarch ${go.GOARCH} -no-upgrade -version v${version} build ${target}
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
install -Dm755 ${target} $out/bin/${target}
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
inherit postInstall;
|
||||
|
||||
passthru = {
|
||||
tests = {
|
||||
inherit (nixosTests)
|
||||
syncthing
|
||||
syncthing-folders
|
||||
syncthing-guiPassword
|
||||
syncthing-guiPasswordFile
|
||||
syncthing-init
|
||||
syncthing-no-settings
|
||||
syncthing-relay
|
||||
;
|
||||
};
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://syncthing.net/";
|
||||
description = "Open Source Continuous File Synchronization";
|
||||
changelog = "https://github.com/syncthing/syncthing/releases/tag/v${version}";
|
||||
license = lib.licenses.mpl20;
|
||||
maintainers = with lib.maintainers; [
|
||||
joko
|
||||
peterhoeg
|
||||
];
|
||||
mainProgram = target;
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
};
|
||||
|
||||
in
|
||||
{
|
||||
syncthing = common {
|
||||
stname = "syncthing";
|
||||
target = "syncthing";
|
||||
|
||||
postInstall = ''
|
||||
# This installs man pages in the correct directory according to the suffix
|
||||
# on the filename
|
||||
for mf in man/*.[1-9]; do
|
||||
mantype="$(echo "$mf" | awk -F"." '{print $NF}')"
|
||||
mandir="$out/share/man/man$mantype"
|
||||
install -Dm644 "$mf" "$mandir/$(basename "$mf")"
|
||||
done
|
||||
|
||||
install -Dm644 etc/linux-desktop/syncthing-ui.desktop $out/share/applications/syncthing-ui.desktop
|
||||
install -Dm644 assets/logo-32.png $out/share/icons/hicolor/32x32/apps/syncthing.png
|
||||
install -Dm644 assets/logo-64.png $out/share/icons/hicolor/64x64/apps/syncthing.png
|
||||
install -Dm644 assets/logo-128.png $out/share/icons/hicolor/128x128/apps/syncthing.png
|
||||
install -Dm644 assets/logo-256.png $out/share/icons/hicolor/256x256/apps/syncthing.png
|
||||
install -Dm644 assets/logo-512.png $out/share/icons/hicolor/512x512/apps/syncthing.png
|
||||
install -Dm644 assets/logo-only.svg $out/share/icons/hicolor/scalable/apps/syncthing.svg
|
||||
|
||||
''
|
||||
+ lib.optionalString (stdenv.hostPlatform.isLinux) ''
|
||||
mkdir -p $out/lib/systemd/{system,user}
|
||||
|
||||
substitute etc/linux-systemd/system/syncthing@.service \
|
||||
$out/lib/systemd/system/syncthing@.service \
|
||||
--replace-fail /usr/bin/syncthing $out/bin/syncthing
|
||||
|
||||
substitute etc/linux-systemd/user/syncthing.service \
|
||||
$out/lib/systemd/user/syncthing.service \
|
||||
--replace-fail /usr/bin/syncthing $out/bin/syncthing
|
||||
'';
|
||||
};
|
||||
|
||||
syncthing-discovery = common {
|
||||
stname = "syncthing-discovery";
|
||||
target = "stdiscosrv";
|
||||
};
|
||||
|
||||
syncthing-relay = common {
|
||||
stname = "syncthing-relay";
|
||||
target = "strelaysrv";
|
||||
|
||||
postInstall = lib.optionalString (stdenv.hostPlatform.isLinux) ''
|
||||
mkdir -p $out/lib/systemd/system
|
||||
|
||||
substitute cmd/strelaysrv/etc/linux-systemd/strelaysrv.service \
|
||||
$out/lib/systemd/system/strelaysrv.service \
|
||||
--replace-fail /usr/bin/strelaysrv $out/bin/strelaysrv
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -2,7 +2,6 @@
|
||||
lib,
|
||||
fetchurl,
|
||||
appimageTools,
|
||||
gconf,
|
||||
imagemagick,
|
||||
}:
|
||||
|
||||
|
||||
@@ -66,6 +66,7 @@
|
||||
libjpeg,
|
||||
useUnfreeCodecs ? false,
|
||||
buildPackages,
|
||||
versionCheckHook,
|
||||
}:
|
||||
|
||||
assert xineramaSupport -> x11Support;
|
||||
@@ -117,7 +118,7 @@ let
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "mplayer";
|
||||
version = "1.5-unstable-2024-12-21";
|
||||
|
||||
@@ -128,6 +129,7 @@ stdenv.mkDerivation {
|
||||
};
|
||||
|
||||
prePatch = ''
|
||||
echo "${finalAttrs.version}" > VERSION
|
||||
sed -i /^_install_strip/d configure
|
||||
|
||||
rm -rf ffmpeg
|
||||
@@ -137,6 +139,9 @@ stdenv.mkDerivation {
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
yasm
|
||||
]
|
||||
++ lib.optionals cacaSupport [
|
||||
libcaca # caca-config
|
||||
];
|
||||
buildInputs = [
|
||||
freetype
|
||||
@@ -176,46 +181,46 @@ stdenv.mkDerivation {
|
||||
++ lib.optional bs2bSupport libbs2b
|
||||
++ lib.optional v4lSupport libv4l;
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
configurePlatforms = [ ];
|
||||
configureFlags = [
|
||||
"--enable-freetype"
|
||||
(if fontconfigSupport then "--enable-fontconfig" else "--disable-fontconfig")
|
||||
(if x11Support then "--enable-x11 --enable-gl" else "--disable-x11 --disable-gl")
|
||||
(if xineramaSupport then "--enable-xinerama" else "--disable-xinerama")
|
||||
(if xvSupport then "--enable-xv" else "--disable-xv")
|
||||
(if alsaSupport then "--enable-alsa" else "--disable-alsa")
|
||||
(if screenSaverSupport then "--enable-xss" else "--disable-xss")
|
||||
(if vdpauSupport then "--enable-vdpau" else "--disable-vdpau")
|
||||
(if cddaSupport then "--enable-cdparanoia" else "--disable-cdparanoia")
|
||||
(if dvdnavSupport then "--enable-dvdnav" else "--disable-dvdnav")
|
||||
(if bluraySupport then "--enable-bluray" else "--disable-bluray")
|
||||
(if amrSupport then "--enable-libopencore_amrnb" else "--disable-libopencore_amrnb")
|
||||
(if cacaSupport then "--enable-caca" else "--disable-caca")
|
||||
(
|
||||
if lameSupport then
|
||||
"--enable-mp3lame --disable-mp3lame-lavc"
|
||||
else
|
||||
"--disable-mp3lame --enable-mp3lame-lavc"
|
||||
)
|
||||
(if speexSupport then "--enable-speex" else "--disable-speex")
|
||||
(if theoraSupport then "--enable-theora" else "--disable-theora")
|
||||
(if x264Support then "--enable-x264 --disable-x264-lavc" else "--disable-x264 --enable-x264-lavc")
|
||||
(if jackaudioSupport then "" else "--disable-jack")
|
||||
(if pulseSupport then "--enable-pulse" else "--disable-pulse")
|
||||
(
|
||||
if v4lSupport then
|
||||
"--enable-v4l2 --enable-tv-v4l2 --enable-radio --enable-radio-v4l2 --enable-radio-capture"
|
||||
else
|
||||
"--disable-v4l2 --disable-tv-v4l2 --disable-radio --disable-radio-v4l2 --disable-radio-capture"
|
||||
)
|
||||
"--disable-xanim"
|
||||
"--disable-xvid --disable-xvid-lavc"
|
||||
"--disable-ossaudio"
|
||||
"--disable-ffmpeg_a"
|
||||
(lib.enableFeature true "freetype")
|
||||
(lib.enableFeature fontconfigSupport "fontconfig")
|
||||
(lib.enableFeature x11Support "x11")
|
||||
(lib.enableFeature x11Support "gl")
|
||||
(lib.enableFeature xineramaSupport "xinerama")
|
||||
(lib.enableFeature xvSupport "xv")
|
||||
(lib.enableFeature alsaSupport "alsa")
|
||||
(lib.enableFeature screenSaverSupport "xss")
|
||||
(lib.enableFeature vdpauSupport "vdpau")
|
||||
(lib.enableFeature cddaSupport "cdparanoia")
|
||||
(lib.enableFeature dvdnavSupport "dvdnav")
|
||||
(lib.enableFeature bluraySupport "bluray")
|
||||
(lib.enableFeature amrSupport "libopencore_amrnb")
|
||||
(lib.enableFeature cacaSupport "caca")
|
||||
(lib.enableFeature lameSupport "mp3lame")
|
||||
(lib.enableFeature (!lameSupport) "mp3lame-lavc")
|
||||
(lib.enableFeature speexSupport "speex")
|
||||
(lib.enableFeature theoraSupport "theora")
|
||||
(lib.enableFeature x264Support "x264")
|
||||
(lib.enableFeature (!x264Support) "x264-lavc")
|
||||
(lib.enableFeature pulseSupport "pulse")
|
||||
(lib.enableFeature v4lSupport "v4l2")
|
||||
(lib.enableFeature v4lSupport "tv-v4l2")
|
||||
(lib.enableFeature v4lSupport "radio")
|
||||
(lib.enableFeature v4lSupport "radio-v4l2")
|
||||
(lib.enableFeature v4lSupport "radio-capture")
|
||||
(lib.enableFeature false "xanim")
|
||||
(lib.enableFeature false "xvid")
|
||||
(lib.enableFeature false "xvid-lavc")
|
||||
(lib.enableFeature false "ossaudio")
|
||||
(lib.enableFeature false "ffmpeg_a")
|
||||
"--yasm=${buildPackages.yasm}/bin/yasm"
|
||||
# Note, the `target` vs `host` confusion is intentional.
|
||||
"--target=${stdenv.hostPlatform.config}"
|
||||
]
|
||||
++ lib.optional (!jackaudioSupport) "--disable-jack"
|
||||
++ lib.optional (useUnfreeCodecs && codecs != null && !crossBuild) "--codecsdir=${codecs}"
|
||||
++ lib.optional (stdenv.hostPlatform.isx86 && !crossBuild) "--enable-runtime-cpudetection"
|
||||
++ lib.optional fribidiSupport "--enable-fribidi"
|
||||
@@ -280,6 +285,12 @@ stdenv.mkDerivation {
|
||||
fi
|
||||
'';
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
versionCheckProgramArg = "--help";
|
||||
doInstallCheck = true;
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
meta = {
|
||||
description = "Movie player that supports many video formats";
|
||||
homepage = "http://mplayerhq.hu";
|
||||
@@ -294,4 +305,4 @@ stdenv.mkDerivation {
|
||||
"aarch64-linux"
|
||||
];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
util-linux,
|
||||
groff,
|
||||
perl,
|
||||
pcre,
|
||||
pcre2,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "vdr-epgsearch";
|
||||
@@ -33,12 +33,11 @@ stdenv.mkDerivation rec {
|
||||
|
||||
buildInputs = [
|
||||
vdr
|
||||
pcre
|
||||
pcre2
|
||||
];
|
||||
|
||||
buildFlags = [
|
||||
"SENDMAIL="
|
||||
"REGEXLIB=pcre"
|
||||
];
|
||||
|
||||
installFlags = [
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "docker-sbom";
|
||||
version = "0.6.1";
|
||||
version = "0.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "docker";
|
||||
repo = "sbom-cli-plugin";
|
||||
rev = "tags/v${version}";
|
||||
hash = "sha256-i3gIogHb0oW/VDuZUo6LGBmvqs/XfMXjpvTTYeGCK7Q=";
|
||||
hash = "sha256-aKEew/5T4cIc3KiWaBxqFqTki/QSnfSAroZ9iO+orUA=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -1100,12 +1100,11 @@ rec {
|
||||
pkgs.runCommandLocal name
|
||||
{
|
||||
inherit text;
|
||||
passAsFile = [ "text" ];
|
||||
__structuredAttrs = true;
|
||||
nativeBuildInputs = [ gixy ];
|
||||
} # sh
|
||||
''
|
||||
cp "$textPath" $out
|
||||
${lib.getExe pkgs.nginx-config-formatter} --max-empty-lines 0 $out
|
||||
printf "%s" "$text" | ${lib.getExe pkgs.nginx-config-formatter} --max-empty-lines 0 - > $out
|
||||
${lib.getExe pkgs.gnused} -i 's/ ;/;/g' $out
|
||||
gixy $out || (echo "\n\nThis can be caused by combining multiple incompatible services on the same hostname.\n\nFull merged config:\n\n"; cat $out; exit 1)
|
||||
'';
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
}:
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "actool";
|
||||
version = "2.0.0";
|
||||
version = "2.1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "viraptor";
|
||||
repo = "actool";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-TRxA9c6q66Gso/ziqvly8IJR2AEHMc197gC9cUSuwAw=";
|
||||
hash = "sha256-LN35yD9iynU1sCkp5kWL9jUgRIvNTkssherTBaSBenU=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-BhR5gwIrFE0OuSAxVTY5kMfmMlPfIABfOgmX/rOvpug=";
|
||||
cargoHash = "sha256-Fw/0KmFDqXs3IjqnoYfvdrQS3QzF7QhIwmTRt18JEq4=";
|
||||
|
||||
meta = {
|
||||
description = "Apple's actool reimplementation";
|
||||
|
||||
@@ -6,16 +6,17 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "adguardian";
|
||||
version = "1.6.0";
|
||||
version = "1.6.1";
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Lissy93";
|
||||
repo = "AdGuardian-Term";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-WxrSmCwLnXXs5g/hN3xWE66P5n0RD/L9MJpf5N2iNtY=";
|
||||
hash = "sha256-jqjdYkB48ggLsmKlwiehkGHZ6EJhJYXGuVmZH7R0MlE=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-yPDysaslL/7N60eZ/hqZl5ZXIsof/pvlgHYfW1mIWtI=";
|
||||
cargoHash = "sha256-ON3txhOQVuI3Th8FZ7yC4sd7L1fpYCD6XyIHbH5/Q4k=";
|
||||
|
||||
meta = {
|
||||
description = "Terminal-based, real-time traffic monitoring and statistics for your AdGuard Home instance";
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
From 5fbcd63a4fb8baca13184a2cc718ebf3ebbef245 Mon Sep 17 00:00:00 2001
|
||||
From: Moraxyc <i@qaq.li>
|
||||
Date: Sun, 28 Dec 2025 00:24:11 +0800
|
||||
Subject: [PATCH] fix build with c23
|
||||
|
||||
---
|
||||
emxdoc/input.c | 10 +++++-----
|
||||
system/types.h | 5 +----
|
||||
2 files changed, 6 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/emxdoc/input.c b/emxdoc/input.c
|
||||
index 50fd7a0..7d9ad4a 100644
|
||||
--- a/emxdoc/input.c
|
||||
+++ b/emxdoc/input.c
|
||||
@@ -31,7 +31,7 @@ Boston, MA 02111-1307, USA. */
|
||||
struct cond
|
||||
{
|
||||
int start_line;
|
||||
- int true;
|
||||
+ int is_true;
|
||||
int else_seen;
|
||||
};
|
||||
|
||||
@@ -225,7 +225,7 @@ redo:
|
||||
if (cond_sp + 1 >= COND_STACK_SIZE)
|
||||
fatal ("%s:%d: Conditional stack overflow", input_fname, line_no);
|
||||
++cond_sp;
|
||||
- cond_stack[cond_sp].true = c1;
|
||||
+ cond_stack[cond_sp].is_true = c1;
|
||||
cond_stack[cond_sp].start_line = line_no;
|
||||
cond_stack[cond_sp].else_seen = FALSE;
|
||||
goto redo;
|
||||
@@ -240,7 +240,7 @@ redo:
|
||||
input_fname, line_no, escape, escape,
|
||||
cond_stack[cond_sp].start_line);
|
||||
cond_stack[cond_sp].else_seen = TRUE;
|
||||
- cond_stack[cond_sp].true = !cond_stack[cond_sp].true;
|
||||
+ cond_stack[cond_sp].is_true = !cond_stack[cond_sp].is_true;
|
||||
goto redo;
|
||||
}
|
||||
else if (strcmp (p, "endif") == 0)
|
||||
@@ -254,12 +254,12 @@ redo:
|
||||
else if (p[0] == 'h' && p[1] >= '1' && p[1] <= '0' + SECTION_LEVELS)
|
||||
{
|
||||
/* Support h1 inside if */
|
||||
- if (cond_sp >= 0 && !cond_stack[cond_sp].true)
|
||||
+ if (cond_sp >= 0 && !cond_stack[cond_sp].is_true)
|
||||
++ref_no;
|
||||
}
|
||||
}
|
||||
|
||||
- if (cond_sp >= 0 && !cond_stack[cond_sp].true)
|
||||
+ if (cond_sp >= 0 && !cond_stack[cond_sp].is_true)
|
||||
goto redo;
|
||||
|
||||
p = input;
|
||||
diff --git a/system/types.h b/system/types.h
|
||||
index 48b8013..327833f 100644
|
||||
--- a/system/types.h
|
||||
+++ b/system/types.h
|
||||
@@ -21,10 +21,7 @@
|
||||
#define _TYPES_H
|
||||
|
||||
#include "config.h"
|
||||
-
|
||||
-
|
||||
-/* Booleans (C++/C99) style. */
|
||||
-typedef int bool;
|
||||
+#include <stdbool.h>
|
||||
|
||||
#ifndef true
|
||||
#define true 1
|
||||
--
|
||||
2.51.2
|
||||
|
||||
@@ -1,56 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
unstableGitUpdater,
|
||||
autoreconfHook,
|
||||
fuse,
|
||||
git,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "aefs";
|
||||
version = "0-unstable-2015-05-06";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "edolstra";
|
||||
repo = "aefs";
|
||||
rev = "e7a9bf8cfa9166668fe1514cc1afd31fc4e10e9a";
|
||||
hash = "sha256-a3YQWxJ7+bYhf1W1kdIykV8U1R4dcDZJ7K3NvNxbF0s=";
|
||||
};
|
||||
|
||||
# fix build with c23
|
||||
# ../system/types.h:27:13: error: 'bool' cannot be defined via 'typedef'
|
||||
# input.c:228:31: error: expected identifier before 'true'
|
||||
patches = [ ./fix-build-with-c23.patch ];
|
||||
|
||||
# autoconf's AC_CHECK_HEADERS and AC_CHECK_LIBS fail to detect libfuse on
|
||||
# Darwin if FUSE_USE_VERSION isn't set at configure time.
|
||||
#
|
||||
# NOTE: Make sure the value of FUSE_USE_VERSION specified here matches the
|
||||
# actual version used in the source code:
|
||||
#
|
||||
# $ tar xf "$(nix-build -A aefs.src)"
|
||||
# $ grep -R FUSE_USE_VERSION
|
||||
configureFlags = lib.optional stdenv.hostPlatform.isDarwin "CPPFLAGS=-DFUSE_USE_VERSION=26";
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
git
|
||||
];
|
||||
|
||||
buildInputs = [ fuse ];
|
||||
|
||||
passthru.updateScript = unstableGitUpdater {
|
||||
hardcodeZeroVersion = true;
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/edolstra/aefs";
|
||||
description = "Cryptographic filesystem implemented in userspace using FUSE";
|
||||
maintainers = [ ];
|
||||
license = lib.licenses.gpl2Plus;
|
||||
platforms = lib.platforms.unix;
|
||||
broken = stdenv.hostPlatform.isDarwin;
|
||||
};
|
||||
}
|
||||
@@ -17,7 +17,12 @@ stdenv.mkDerivation rec {
|
||||
owner = "RJVB";
|
||||
repo = "afsctool";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-cZ0P9cygj+5GgkDRpQk7P9z8zh087fpVfrYXMRRVUAI=";
|
||||
fetchSubmodules = true;
|
||||
gitConfigFile = builtins.toFile "gitconfig" ''
|
||||
[url "https://github.com/"]
|
||||
insteadOf = "git://github.com/"
|
||||
'';
|
||||
hash = "sha256-irWPQnnV5mHZS7pw9PAWp6MO/3MahKaOIZCr6awcwEg=";
|
||||
};
|
||||
|
||||
cmakeFlags = [
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "algia";
|
||||
version = "0.0.120";
|
||||
version = "0.0.121";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mattn";
|
||||
repo = "algia";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-pKoBPPvNtgRPwsJMSy8GViIB1Gcl780vsTPDjnhsB0Q=";
|
||||
hash = "sha256-oDJyppe0SUES4Wbd9SH2A2QCBh9sFE97vD8IvL1gq9Y=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-JTTWVs0KwceiLy6tpyd48zORiXLc18zwgG1c+ceivKU=";
|
||||
|
||||
@@ -11,16 +11,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "amazon-cloudwatch-agent";
|
||||
version = "1.300066.0";
|
||||
version = "1.300069.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aws";
|
||||
repo = "amazon-cloudwatch-agent";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-cN1wxJKijx5P3JvtH+WX+3SYfar7xmM6XK2JABg+3lo=";
|
||||
hash = "sha256-A9UASdKERo/vg3K8EDu//r6SqQjskhmVKeBlbqqpdDM=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-W+DEQAX6BP6xwucE0mciQ4wzsIlF1b7d2Y+dyN43Lnw=";
|
||||
vendorHash = "sha256-Qlwy0wz79TgYlBcsdHLzZA3OWbSIg6reK6KGSKsMlzI=";
|
||||
|
||||
# See the list in https://github.com/aws/amazon-cloudwatch-agent/blob/v1.300049.1/Makefile#L68-L77.
|
||||
subPackages = [
|
||||
|
||||
@@ -43,13 +43,13 @@ let
|
||||
in
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "amazon-ssm-agent";
|
||||
version = "3.3.3598.0";
|
||||
version = "3.3.4515.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aws";
|
||||
repo = "amazon-ssm-agent";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-keagFjifd3Ok3mgheDAb9OSGHmd3HBOo5I0WaBHWJzE=";
|
||||
hash = "sha256-FEYziTgYIzX8tm/zgVDi2Tvbxn+lBnXAAqqO+LhlQYM=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
|
||||
@@ -12,14 +12,14 @@
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "antimicrox";
|
||||
version = "3.5.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AntiMicroX";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
repo = "antimicrox";
|
||||
rev = finalAttrs.version;
|
||||
sha256 = "sha256-ZIHhgyOpabWkdFZoha/Hj/1d8/b6qVolE6dn0xAFZVw=";
|
||||
};
|
||||
|
||||
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
|
||||
udevCheckHook
|
||||
libsForQt5.wrapQtAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
SDL2
|
||||
libsForQt5.qttools
|
||||
@@ -46,10 +47,10 @@ stdenv.mkDerivation rec {
|
||||
|
||||
meta = {
|
||||
description = "GUI for mapping keyboard and mouse controls to a gamepad";
|
||||
inherit (src.meta) homepage;
|
||||
inherit (finalAttrs.src.meta) homepage;
|
||||
maintainers = [ ];
|
||||
license = lib.licenses.gpl3Plus;
|
||||
platforms = with lib.platforms; linux;
|
||||
mainProgram = "antimicrox";
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "antora";
|
||||
version = "3.1.14";
|
||||
version = "3.1.15";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "antora";
|
||||
repo = "antora";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-9x80aBm2ZBj389kX2wioe7BtaNjR7p9aEZg7o49v0vY=";
|
||||
hash = "sha256-Ok9KuDiyKEY8ggo1TnlME91zj4zvv4CWR1hldDheVgs=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-s/f6/PxvSIlhFsCbsD25MPrk67vKXrnDqbfbW72Tr4I=";
|
||||
npmDepsHash = "sha256-AuYEi2T+yLtJyJIJIzTol+cs+9Terqe3bQalVnq2XR4=";
|
||||
|
||||
# This is to stop tests from being ran, as some of them fail due to trying to query remote repositories
|
||||
# Also disable the postbuild lint step which tries to download @biomejs/biome at build time
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
stdenv,
|
||||
fetchFromSourcehut,
|
||||
pkg-config,
|
||||
fuse,
|
||||
fuse3,
|
||||
libarchive,
|
||||
}:
|
||||
|
||||
@@ -20,7 +20,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [
|
||||
fuse
|
||||
fuse3
|
||||
libarchive
|
||||
];
|
||||
|
||||
|
||||
@@ -29,11 +29,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "ares";
|
||||
version = "147";
|
||||
version = "148";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://github.com/ares-emulator/ares/releases/download/v${finalAttrs.version}/ares-source.tar.gz";
|
||||
hash = "sha256-KkcrcFshNesnSp5fl+as3HFXjytgODvMv8m73Ni2euw=";
|
||||
hash = "sha256-LXLt4hYjpnLrzu+0dLfXr4lEF7drZwSRjgaCAaD79+g=";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
|
||||
@@ -8,18 +8,18 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "agg";
|
||||
version = "1.8.1";
|
||||
version = "1.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "asciinema";
|
||||
repo = "agg";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-64VyCTGjzey6AHEAfk5V/Qoffe5+sDaDNve54M7tmf4=";
|
||||
hash = "sha256-XuAVckgTsKvngrR/blgpLgONaWxfrn8o7hCKqCGPNeM=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
cargoHash = "sha256-/WS5nAFKnP/CsU5+Pf5rtNN4LWaXVjlidLzH7DWYds0=";
|
||||
cargoHash = "sha256-VcdHlQOplki31uLOutVx7HH7rjH9a5fEZhlxtLvuS9E=";
|
||||
|
||||
__impureHostDeps = lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
"/System/Library/Fonts"
|
||||
|
||||
@@ -2,27 +2,27 @@
|
||||
"depends": [
|
||||
{
|
||||
"method": "fetchzip",
|
||||
"path": "/nix/store/w556rbsnv2fxb229av2iq180ri9x0d9j-source",
|
||||
"rev": "77469f58916369bc3863194cabb05238577fb257",
|
||||
"sha256": "18wjz5yqzr1dz6286p2w02fk2xjr54l477g90bz4pskjcqrqnjbv",
|
||||
"url": "https://github.com/khchen/tinyre/archive/77469f58916369bc3863194cabb05238577fb257.tar.gz",
|
||||
"ref": "1.6.0",
|
||||
"path": "/nix/store/63sp165yl6is029c8g5cn3550vq8pp1x-source",
|
||||
"rev": "e9f0c49b234fd4a2038b752ab02703288346ce98",
|
||||
"sha256": "1rwr4d150l0v14ccmwr13zi6fr8din1h8spivmxwkcfa66jm73j1",
|
||||
"url": "https://github.com/WyattBlue/csort/archive/e9f0c49b234fd4a2038b752ab02703288346ce98.tar.gz",
|
||||
"ref": "1.0.0",
|
||||
"packages": [
|
||||
"tinyre"
|
||||
"csort"
|
||||
],
|
||||
"srcDir": ""
|
||||
"srcDir": "src"
|
||||
},
|
||||
{
|
||||
"method": "fetchzip",
|
||||
"path": "/nix/store/6aph9sfwcws7pd2725fwjnibdfrv7qmw-source",
|
||||
"rev": "f8f6bd34bfa3fe12c64b919059ad856a96efcba0",
|
||||
"sha256": "11m1rb6rzk70kvskppf97ddzgf5fnh9crjziqc6hib0jgsm5d615",
|
||||
"url": "https://github.com/nim-lang/checksums/archive/f8f6bd34bfa3fe12c64b919059ad856a96efcba0.tar.gz",
|
||||
"ref": "v0.2.1",
|
||||
"path": "/nix/store/f2xp1v0vnplwfjnk8nqsi7gd9pnb9gcv-source",
|
||||
"rev": "b3dbc9c4d08e58c5b7bfad6dc7ef2ee52f2f4c08",
|
||||
"sha256": "1v4rz42lwcazs6isi3kmjylkisr84mh0kgmlqycx4i885dn3g0l4",
|
||||
"url": "https://github.com/cheatfate/nimcrypto/archive/b3dbc9c4d08e58c5b7bfad6dc7ef2ee52f2f4c08.tar.gz",
|
||||
"ref": "v0.7.3^{}",
|
||||
"packages": [
|
||||
"checksums"
|
||||
"nimcrypto"
|
||||
],
|
||||
"srcDir": "src"
|
||||
"srcDir": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -5,24 +5,13 @@
|
||||
buildNimPackage,
|
||||
fetchFromGitHub,
|
||||
|
||||
withHEVC ? true,
|
||||
withWhisper ? false, # TODO: Investigate linker failure. See PR 476678
|
||||
withVpx ? true,
|
||||
withSvtAv1 ? true,
|
||||
withCuda ? false,
|
||||
withVpl ? stdenv.hostPlatform.isLinux,
|
||||
|
||||
ffmpeg-full,
|
||||
yt-dlp,
|
||||
lame,
|
||||
libopus,
|
||||
libvpx,
|
||||
x264,
|
||||
x265,
|
||||
dav1d,
|
||||
svt-av1,
|
||||
libvpl,
|
||||
whisper-cpp,
|
||||
|
||||
python3,
|
||||
python3Packages,
|
||||
@@ -30,13 +19,13 @@
|
||||
|
||||
buildNimPackage rec {
|
||||
pname = "auto-editor";
|
||||
version = "29.7.0";
|
||||
version = "30.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "WyattBlue";
|
||||
repo = "auto-editor";
|
||||
tag = version;
|
||||
hash = "sha256-R1GnvFjC/nq/gIiX6rUxP7qR3IfpGfc4Ci28AIk4CfQ=";
|
||||
hash = "sha256-1DFTT6dyIYlB3EMPf5eleXvRr1d29jmtt7GQfRpOkUE=";
|
||||
};
|
||||
|
||||
lockFile = ./lock.json;
|
||||
@@ -47,20 +36,16 @@ buildNimPackage rec {
|
||||
libopus
|
||||
x264
|
||||
dav1d
|
||||
]
|
||||
++ lib.optionals withHEVC [ x265 ]
|
||||
++ lib.optionals withWhisper [ whisper-cpp ]
|
||||
++ lib.optionals withVpx [ libvpx ]
|
||||
++ lib.optionals withSvtAv1 [ svt-av1 ]
|
||||
++ lib.optionals withVpl [ libvpl ];
|
||||
];
|
||||
|
||||
nimFlags =
|
||||
lib.optionals withHEVC [ "-d:enable_hevc" ]
|
||||
++ lib.optionals withWhisper [ "-d:enable_whisper" ]
|
||||
++ lib.optionals withVpx [ "-d:enable_vpx" ]
|
||||
++ lib.optionals withSvtAv1 [ "-d:enable_svtav1" ]
|
||||
++ lib.optionals withCuda [ "-d:enable_cuda" ]
|
||||
++ lib.optionals withVpl [ "-d:enable_vpl" ];
|
||||
env = {
|
||||
# Nothing should be dynamically linked, as ffmpeg should already link it.
|
||||
DISABLE_HEVC = "1";
|
||||
DISABLE_WHISPER = "1";
|
||||
DISABLE_VPX = "1";
|
||||
DISABLE_SVTAV1 = "1";
|
||||
DISABLE_VPL = "1";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/log.nim \
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
stdenv,
|
||||
fetchurl,
|
||||
pkg-config,
|
||||
fuse,
|
||||
fuse3,
|
||||
xz,
|
||||
zlib,
|
||||
}:
|
||||
@@ -19,11 +19,15 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [
|
||||
fuse
|
||||
fuse3
|
||||
xz
|
||||
zlib
|
||||
];
|
||||
|
||||
env = lib.optionalAttrs stdenv.cc.isClang {
|
||||
NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-function-pointer-types";
|
||||
};
|
||||
|
||||
configureFlags = [
|
||||
"--enable-library"
|
||||
"--enable-fuse"
|
||||
|
||||
@@ -7,15 +7,15 @@
|
||||
}:
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "aws-sso-creds";
|
||||
version = "2.0.0";
|
||||
version = "2.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jaxxstorm";
|
||||
repo = "aws-sso-creds";
|
||||
rev = "v${finalAttrs.version}";
|
||||
sha256 = "sha256-QYE+HvvBEWPxopVP8QMqb4lNRyAtVDewuiWzja9XdM4=";
|
||||
sha256 = "sha256-HFkPx/ptg/xXW2bbvZLSuuckj/SbuJQQcAbNfiTgTLM=";
|
||||
};
|
||||
vendorHash = "sha256-2EDpyw7Mqhvc0i6+UjWfNlvndRYJDaezRkOy9PBeD1Y=";
|
||||
vendorHash = "sha256-GiloBizb8ec7PgXbzQEOKjyJP5doFnQ2ALH3Y1+AKZw=";
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
|
||||
@@ -41,6 +41,7 @@ python.pkgs.buildPythonApplication (finalAttrs: {
|
||||
pythonRelaxDeps = [
|
||||
"botocore"
|
||||
"colorama"
|
||||
"fabric"
|
||||
"pathspec"
|
||||
"packaging"
|
||||
"PyYAML"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitea,
|
||||
fetchFromCodeberg,
|
||||
rustPlatform,
|
||||
pkg-config,
|
||||
lz4,
|
||||
@@ -17,8 +17,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "awww";
|
||||
version = "0.12.1";
|
||||
|
||||
src = fetchFromGitea {
|
||||
domain = "codeberg.org";
|
||||
src = fetchFromCodeberg {
|
||||
owner = "LGFae";
|
||||
repo = "awww";
|
||||
tag = "v${finalAttrs.version}";
|
||||
|
||||
@@ -31,6 +31,10 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
./dev-prefix.patch
|
||||
];
|
||||
|
||||
depsBuildBuild = [
|
||||
pkg-config
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
@@ -44,6 +48,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
lcms2
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
mesonFlags = [
|
||||
"-Dprefix-dev=${placeholder "dev"}"
|
||||
# On Linux, this would be disabled by default but we have -Dauto_features=enabled.
|
||||
@@ -61,6 +67,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
moveToOutput "share/doc" "$devdoc"
|
||||
'';
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
meta = {
|
||||
description = "Image pixel format conversion library";
|
||||
mainProgram = "babl";
|
||||
|
||||
@@ -71,7 +71,6 @@ buildNpmPackage' rec {
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [
|
||||
kalebpace
|
||||
doronbehar
|
||||
];
|
||||
mainProgram = "balena";
|
||||
};
|
||||
|
||||
48
pkgs/by-name/be/berk76-tetris/package.nix
Normal file
48
pkgs/by-name/be/berk76-tetris/package.nix
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
ncurses,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "berk76-tetris";
|
||||
version = "1.1.0-unstable-2024-11-24";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "oldcompcz";
|
||||
repo = "tetris";
|
||||
rev = "31d441a840dff7ad3839087b9a5a594250841342";
|
||||
hash = "sha256-B5IYXT6Z3zbeG9lG7rflQvFnvOI/vse6L2Orv5dWlHg=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
__structuredAttrs = true;
|
||||
|
||||
buildInputs = [ ncurses ];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
make -f Makefile.con
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -Dm755 Tetris $out/bin/tetris
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "ASCII Art Tetris";
|
||||
homepage = "https://github.com/oldcompcz/tetris";
|
||||
mainProgram = "tetris";
|
||||
license = lib.licenses.gpl3Only;
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = with lib.maintainers; [ castorNova2 ];
|
||||
};
|
||||
})
|
||||
@@ -10,13 +10,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "betterleaks";
|
||||
version = "1.3.0";
|
||||
version = "1.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "betterleaks";
|
||||
repo = "betterleaks";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-65ITYF3PFYuMXsAEEVOXVBlaZnM01w/BpOdCD0LW5Y4=";
|
||||
hash = "sha256-bPrOp5PP5BxkSOA7wUmq/bbVPg+bwymGQ0rl8PvPSAE=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-RStdC7M0+bPNXwaATxkMOBGf1OrT0pqlNPTJ7TCelfk=";
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user