mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-06-10 15:23:43 +00:00
Compare commits
734 Commits
devShellTo
...
24.05
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
63dacb46bf | ||
|
|
d4a08c14ed | ||
|
|
c41846f758 | ||
|
|
9df33e9518 | ||
|
|
60f5d9e596 | ||
|
|
ad732e66b0 | ||
|
|
bebde4a6bf | ||
|
|
98db3eb284 | ||
|
|
60e848d4ec | ||
|
|
16a3c1d60d | ||
|
|
77e4976d6b | ||
|
|
5c2584e964 | ||
|
|
15586e4d04 | ||
|
|
4c2574e974 | ||
|
|
459c008fda | ||
|
|
153069229b | ||
|
|
c38ed0cf00 | ||
|
|
c8cd15fcb9 | ||
|
|
c99e8f5d38 | ||
|
|
94e665850f | ||
|
|
6f68a0b9b4 | ||
|
|
bb4f336d79 | ||
|
|
c79ea03d70 | ||
|
|
c697fedcbe | ||
|
|
326b7f4e84 | ||
|
|
3d446e2a92 | ||
|
|
2c695d49e3 | ||
|
|
90356cb4b8 | ||
|
|
fe7d83b7de | ||
|
|
12936357e4 | ||
|
|
97bc6b1a13 | ||
|
|
cb34de1dcb | ||
|
|
cf5b9f8268 | ||
|
|
a2f94bf7ab | ||
|
|
ae63e4aa52 | ||
|
|
910ea38af9 | ||
|
|
0334d7f5ca | ||
|
|
805a384895 | ||
|
|
76c2576f2b | ||
|
|
05b444ac1d | ||
|
|
0f1a94c815 | ||
|
|
7f4d0a0de7 | ||
|
|
b4a0f7e0b6 | ||
|
|
d8cb910385 | ||
|
|
88f80887b7 | ||
|
|
8a4c6b9542 | ||
|
|
e85237934a | ||
|
|
a9cb41aebf | ||
|
|
06a54184f0 | ||
|
|
3a49fc3c75 | ||
|
|
75000c2cf4 | ||
|
|
4fb6f6bbf6 | ||
|
|
6688c7c6f3 | ||
|
|
b40bd4299e | ||
|
|
47e87374c1 | ||
|
|
d24e7fdcfa | ||
|
|
33d8e27657 | ||
|
|
be15fecdbb | ||
|
|
0805ae8016 | ||
|
|
a724abcfda | ||
|
|
bc1066f849 | ||
|
|
273b0020a7 | ||
|
|
1980044104 | ||
|
|
c963c4da17 | ||
|
|
72779eb94f | ||
|
|
cda8946099 | ||
|
|
b14424ce76 | ||
|
|
d57d1cf2e5 | ||
|
|
c0d6b76338 | ||
|
|
d13f21097e | ||
|
|
d1888a87e8 | ||
|
|
3d4bfdbe69 | ||
|
|
6eea3dc247 | ||
|
|
0378dbfa30 | ||
|
|
132c225096 | ||
|
|
8e89e58c4e | ||
|
|
3d1db4d736 | ||
|
|
94a66a52f1 | ||
|
|
0326dbe8d0 | ||
|
|
68fafe9810 | ||
|
|
356f19cc3b | ||
|
|
1956171531 | ||
|
|
0e9210127a | ||
|
|
76b997c6a6 | ||
|
|
d60b01aea3 | ||
|
|
847ff296ff | ||
|
|
17913ae653 | ||
|
|
fb29a558c8 | ||
|
|
3981dd2b2a | ||
|
|
7fd53be8cb | ||
|
|
36449687c8 | ||
|
|
94c402f686 | ||
|
|
dd69531b5c | ||
|
|
19f0660e75 | ||
|
|
0baa224c87 | ||
|
|
2de7ca012a | ||
|
|
8b419f7b3d | ||
|
|
9157b72c40 | ||
|
|
06f31991d1 | ||
|
|
89b861f2d2 | ||
|
|
a38ef549c0 | ||
|
|
82788b81d6 | ||
|
|
665e247019 | ||
|
|
a7b0b30004 | ||
|
|
80fb2a0e39 | ||
|
|
ade424e602 | ||
|
|
6b1f4a8f58 | ||
|
|
cdbd8394aa | ||
|
|
e603dbe99f | ||
|
|
6bad1acda0 | ||
|
|
f6f09ae123 | ||
|
|
51948c1715 | ||
|
|
ee71dc410c | ||
|
|
a3518cda5b | ||
|
|
83fdc87b89 | ||
|
|
81afee0607 | ||
|
|
791eaa54f0 | ||
|
|
2a2f78315c | ||
|
|
036333d851 | ||
|
|
1a8bcb4c2e | ||
|
|
9154e11339 | ||
|
|
41856fe356 | ||
|
|
2da38653ff | ||
|
|
b23d19d18a | ||
|
|
5207075d4e | ||
|
|
d163d73f61 | ||
|
|
562c943fdf | ||
|
|
2a0c2f21e7 | ||
|
|
54b64e9718 | ||
|
|
01de46f2b8 | ||
|
|
b27a2e0874 | ||
|
|
f86bee358b | ||
|
|
63828b66e8 | ||
|
|
b97ebb1ef5 | ||
|
|
275bc39f77 | ||
|
|
00a27d79e1 | ||
|
|
148355cf9c | ||
|
|
54936852e5 | ||
|
|
37dd4d8230 | ||
|
|
272b46a1f7 | ||
|
|
0be46595fb | ||
|
|
3bfcb467d3 | ||
|
|
77423ffbc3 | ||
|
|
572e540409 | ||
|
|
928b53d3e4 | ||
|
|
ba4cdca40c | ||
|
|
e62a262fea | ||
|
|
1a307bb870 | ||
|
|
c8551643e7 | ||
|
|
fccbc0920d | ||
|
|
45cef8da7c | ||
|
|
544e6304fc | ||
|
|
7f158bb962 | ||
|
|
bbd1576a5f | ||
|
|
9600c69366 | ||
|
|
59c764c434 | ||
|
|
8bdd5026f4 | ||
|
|
8d2e99efb5 | ||
|
|
08ae39eea4 | ||
|
|
83adb73f3b | ||
|
|
c617da8663 | ||
|
|
566413f372 | ||
|
|
f0e4df797b | ||
|
|
e3a4eed470 | ||
|
|
fafeae3d24 | ||
|
|
9999aa37b0 | ||
|
|
4d899ff014 | ||
|
|
bbae47b2b6 | ||
|
|
10837a8efe | ||
|
|
6d45231912 | ||
|
|
78d7d55a66 | ||
|
|
0485c42252 | ||
|
|
3fb5c5a23a | ||
|
|
1e64ec0b6f | ||
|
|
3de7ae0aa8 | ||
|
|
0ff3d75bf8 | ||
|
|
cc76735bde | ||
|
|
f333c0ce1f | ||
|
|
0aa0ff6949 | ||
|
|
2ca40f4f4a | ||
|
|
76276870f2 | ||
|
|
8ff499b1d9 | ||
|
|
3716399b39 | ||
|
|
62a9913e56 | ||
|
|
f87e54303c | ||
|
|
8dead30e3f | ||
|
|
addb1cf91a | ||
|
|
4d997dbcf3 | ||
|
|
9b2aab3301 | ||
|
|
8ba1269a87 | ||
|
|
7bf05cd984 | ||
|
|
1d71d99673 | ||
|
|
1448866ccc | ||
|
|
522856c028 | ||
|
|
8872b57bcd | ||
|
|
a67e660584 | ||
|
|
57d839e7b8 | ||
|
|
770d2011f1 | ||
|
|
e578f66241 | ||
|
|
c4e01c7a36 | ||
|
|
1c9af90d8b | ||
|
|
6e318d1cb0 | ||
|
|
fe83789156 | ||
|
|
55d3011ef4 | ||
|
|
62149b4cb1 | ||
|
|
4e3a040807 | ||
|
|
cf546b0bf0 | ||
|
|
39ffb04fef | ||
|
|
682b72ac26 | ||
|
|
de2a297856 | ||
|
|
9f9e5cd6c7 | ||
|
|
f63ff69547 | ||
|
|
f3271228e1 | ||
|
|
5a4bc7ddeb | ||
|
|
45cbc299bb | ||
|
|
49ad869946 | ||
|
|
5150b07a3d | ||
|
|
a71637856e | ||
|
|
78ca2bef8a | ||
|
|
5c11d382f8 | ||
|
|
14e88eacf7 | ||
|
|
357c26c303 | ||
|
|
32344320da | ||
|
|
9365420af6 | ||
|
|
14f4653027 | ||
|
|
19c420aae8 | ||
|
|
75420cc6aa | ||
|
|
460c0b9522 | ||
|
|
e8c1868904 | ||
|
|
710deda4d0 | ||
|
|
a70853f968 | ||
|
|
1e90922710 | ||
|
|
57f58f1437 | ||
|
|
d323d9cdb8 | ||
|
|
35aeffc076 | ||
|
|
dcc604f5b3 | ||
|
|
08cac94c9c | ||
|
|
4cbfdb3f4c | ||
|
|
b4d510e4ad | ||
|
|
272535f598 | ||
|
|
00e12ebb5a | ||
|
|
7e3b2c6af2 | ||
|
|
bf5da9a4e7 | ||
|
|
92e004ec2d | ||
|
|
3ce3aded9f | ||
|
|
880c51aadc | ||
|
|
bd077e83f3 | ||
|
|
3380d2a9bf | ||
|
|
e0d79f2bfb | ||
|
|
e0fa66fd95 | ||
|
|
576f015f2f | ||
|
|
125daa7c1d | ||
|
|
7f2547a15b | ||
|
|
d74975e8e2 | ||
|
|
79feebc8e0 | ||
|
|
9c8cced0fa | ||
|
|
a6d2eba009 | ||
|
|
755245893a | ||
|
|
8175851944 | ||
|
|
3fe54eb851 | ||
|
|
268c53b55a | ||
|
|
62f30688dc | ||
|
|
0ef09bf23d | ||
|
|
e5c147151a | ||
|
|
d318a15bca | ||
|
|
0b15e543c6 | ||
|
|
512a3fd04a | ||
|
|
064b8bf531 | ||
|
|
fb5fb7fd6f | ||
|
|
bdbbbc2c74 | ||
|
|
42e3277186 | ||
|
|
42e786fc8b | ||
|
|
dac0b86b6a | ||
|
|
55ee801174 | ||
|
|
432e435a69 | ||
|
|
60266426f0 | ||
|
|
102a07abb1 | ||
|
|
0ba80a0f4d | ||
|
|
c5ddb6cbc7 | ||
|
|
1df68e31d2 | ||
|
|
e58876b56a | ||
|
|
0b1b49a45f | ||
|
|
8ed61d15ff | ||
|
|
f265769617 | ||
|
|
050570e289 | ||
|
|
cbdd3f3d16 | ||
|
|
818e481946 | ||
|
|
4d2a8b2c58 | ||
|
|
427bdcc885 | ||
|
|
54f359612f | ||
|
|
44b81bfaaf | ||
|
|
a1e0c81816 | ||
|
|
fc39836b7a | ||
|
|
51b088b4b5 | ||
|
|
4095d7bdb9 | ||
|
|
472cb2d381 | ||
|
|
3d62b9bc82 | ||
|
|
02c22a632e | ||
|
|
0080eea022 | ||
|
|
0bfb2dadbf | ||
|
|
67a8b308ba | ||
|
|
0b5ea07801 | ||
|
|
6a668b71ee | ||
|
|
912abfa907 | ||
|
|
871a6e4536 | ||
|
|
5a51f54ec4 | ||
|
|
20fccd7b6c | ||
|
|
25a5fced3c | ||
|
|
8bfb6afca9 | ||
|
|
3363b4e759 | ||
|
|
e2a9d4f64d | ||
|
|
8567fac505 | ||
|
|
bf8c7334f8 | ||
|
|
e00cc19a9a | ||
|
|
dd12f1e9cb | ||
|
|
4d34890c90 | ||
|
|
45516b8d49 | ||
|
|
f65c42eaf8 | ||
|
|
18a489ea34 | ||
|
|
19f9b6672e | ||
|
|
92797acfb0 | ||
|
|
d41199d0ff | ||
|
|
abcb661ced | ||
|
|
7f86c8842a | ||
|
|
6775ae8ed9 | ||
|
|
c780432748 | ||
|
|
8f94fafe2d | ||
|
|
9b92ac6e5d | ||
|
|
8026cc7433 | ||
|
|
3f3c03a9b6 | ||
|
|
baf5166949 | ||
|
|
2f048817b6 | ||
|
|
1e8e25358e | ||
|
|
6d6eceb9cb | ||
|
|
d50456ad28 | ||
|
|
9851bd8f4e | ||
|
|
b21d3c8fd1 | ||
|
|
d87ea2ce3c | ||
|
|
f1d7443aae | ||
|
|
18900904a2 | ||
|
|
0404741d97 | ||
|
|
f82bb581af | ||
|
|
bdb82988e5 | ||
|
|
a3a3a2c388 | ||
|
|
3ffd42482e | ||
|
|
96452a3d9b | ||
|
|
ba34f4e043 | ||
|
|
85b86328ec | ||
|
|
b841269d85 | ||
|
|
0b584ccdb0 | ||
|
|
eca8d5fdbe | ||
|
|
1c63eb563d | ||
|
|
efd97682e4 | ||
|
|
105f193844 | ||
|
|
17e82d424c | ||
|
|
d7e44cff15 | ||
|
|
f919f2978c | ||
|
|
929d8b66fe | ||
|
|
f5c37d32f9 | ||
|
|
a9fc3b087f | ||
|
|
a8443bd1a3 | ||
|
|
6aadf6e084 | ||
|
|
4e6eae43a4 | ||
|
|
75fef7bb88 | ||
|
|
f99f394249 | ||
|
|
cc5ae9c1e5 | ||
|
|
d74a983e00 | ||
|
|
65c3e1cd07 | ||
|
|
7c5dc0287e | ||
|
|
33cc4250a1 | ||
|
|
f76b9e3f51 | ||
|
|
9f4c80f7a7 | ||
|
|
f79e28fb04 | ||
|
|
84bcce509d | ||
|
|
4c827f2767 | ||
|
|
cbf353fd83 | ||
|
|
4b7560d97b | ||
|
|
94db9bb537 | ||
|
|
3d81ae8a42 | ||
|
|
2d11dc2db1 | ||
|
|
e3ce7a99c5 | ||
|
|
a92a5c3cb4 | ||
|
|
a515734c9b | ||
|
|
0fb0eed01e | ||
|
|
1b7457ee66 | ||
|
|
6913198c62 | ||
|
|
8df00c866a | ||
|
|
29d3787cba | ||
|
|
3d3a77714a | ||
|
|
33d76c13a9 | ||
|
|
ad0eb7e0f3 | ||
|
|
fbb6f191b4 | ||
|
|
642d307f89 | ||
|
|
2ff5772672 | ||
|
|
65fc041173 | ||
|
|
1ec9f0f58f | ||
|
|
1a9dbfb0da | ||
|
|
b3ea894889 | ||
|
|
c73138c590 | ||
|
|
31de6674eb | ||
|
|
5d569ccdec | ||
|
|
61eebf4471 | ||
|
|
0e260e923d | ||
|
|
f623509cb2 | ||
|
|
de6830cca5 | ||
|
|
0baa634e8e | ||
|
|
edda1892d7 | ||
|
|
410be13e5c | ||
|
|
289d6c3751 | ||
|
|
551d1d0dfb | ||
|
|
218d1791d0 | ||
|
|
b97023cd16 | ||
|
|
befdd4fcc9 | ||
|
|
600786c8cd | ||
|
|
9b0989a1a0 | ||
|
|
6f2cd96b3d | ||
|
|
d9bb9fd8db | ||
|
|
0a9de878b9 | ||
|
|
a065c44013 | ||
|
|
d666c6e82d | ||
|
|
78b139ef58 | ||
|
|
d25bcd6bda | ||
|
|
5d1ad25393 | ||
|
|
7d850e3ae2 | ||
|
|
145028d14f | ||
|
|
8219ecf351 | ||
|
|
f47514f5ac | ||
|
|
58164045c0 | ||
|
|
6eeffe0fa7 | ||
|
|
1b2108328e | ||
|
|
304c7d3859 | ||
|
|
4f2aec5a5c | ||
|
|
ebde1bca3b | ||
|
|
e3de041c4f | ||
|
|
f54d7b4b49 | ||
|
|
349dc3fc79 | ||
|
|
1430fe1d3f | ||
|
|
3610e135af | ||
|
|
324166e974 | ||
|
|
409f34af8e | ||
|
|
4dab92a437 | ||
|
|
e2f1340d25 | ||
|
|
84bd8e465b | ||
|
|
3f04d31161 | ||
|
|
c7b7989e26 | ||
|
|
85def070eb | ||
|
|
39d47f377a | ||
|
|
17a2ffa91c | ||
|
|
3223077216 | ||
|
|
32822d5982 | ||
|
|
bfb4ea185d | ||
|
|
ee404dcc1f | ||
|
|
bd99b64f32 | ||
|
|
95006208e0 | ||
|
|
80ad008d22 | ||
|
|
9abbbbb674 | ||
|
|
ca7d2eeffd | ||
|
|
3a435d16ee | ||
|
|
7874563e52 | ||
|
|
64e9311e23 | ||
|
|
2fe67c9a64 | ||
|
|
361923778f | ||
|
|
fb47060349 | ||
|
|
404c114982 | ||
|
|
af3204c874 | ||
|
|
7aeb0f9839 | ||
|
|
01a44ef32e | ||
|
|
d81fe19156 | ||
|
|
fc27b13e9a | ||
|
|
a7c6a9d1b5 | ||
|
|
6535911d16 | ||
|
|
b02f4c33cb | ||
|
|
9699b1ed52 | ||
|
|
43cd813da4 | ||
|
|
dc24d15990 | ||
|
|
99cddd7c52 | ||
|
|
4f6c99a39a | ||
|
|
e888827914 | ||
|
|
ad0be8c555 | ||
|
|
ddf4e77f66 | ||
|
|
09ff27e8ca | ||
|
|
948ce11c64 | ||
|
|
b87a101019 | ||
|
|
4f6d278e74 | ||
|
|
74509481c5 | ||
|
|
bfec08915e | ||
|
|
e91515372c | ||
|
|
fafc989107 | ||
|
|
e55238de2b | ||
|
|
2c0da29b41 | ||
|
|
e62719f4d2 | ||
|
|
00a911ffac | ||
|
|
3b11560d23 | ||
|
|
a12dac416c | ||
|
|
4bf94f8ad8 | ||
|
|
0b35b91d13 | ||
|
|
f277c9249f | ||
|
|
e9e8e7aeca | ||
|
|
e10170a344 | ||
|
|
095421837e | ||
|
|
c05f821f65 | ||
|
|
b4b099c6e9 | ||
|
|
101b166756 | ||
|
|
adf585abee | ||
|
|
3213e51674 | ||
|
|
8b4a540e6b | ||
|
|
1b77b095d1 | ||
|
|
650b3719f0 | ||
|
|
918d095665 | ||
|
|
21f02582dc | ||
|
|
a63cfb2fd9 | ||
|
|
a9658a8b61 | ||
|
|
3a253a1a0d | ||
|
|
16a95e83cd | ||
|
|
83aab5e19f | ||
|
|
bdb0208651 | ||
|
|
cdab3c6b89 | ||
|
|
a4b0dd4b08 | ||
|
|
26f67da15b | ||
|
|
c172507685 | ||
|
|
a36984dfb2 | ||
|
|
987c5aef15 | ||
|
|
59cc582cf7 | ||
|
|
62e3e22a64 | ||
|
|
0d79ed09a1 | ||
|
|
99ab617332 | ||
|
|
226df74ffa | ||
|
|
913611aa46 | ||
|
|
f1735c9e7b | ||
|
|
35aa5e7bf8 | ||
|
|
1663add616 | ||
|
|
82d8ec34d5 | ||
|
|
03309929e1 | ||
|
|
f651e7d4d8 | ||
|
|
15f3844c0c | ||
|
|
5ea7c6dce5 | ||
|
|
9598492fa1 | ||
|
|
bd578db421 | ||
|
|
747a6dcbf5 | ||
|
|
97abf11bba | ||
|
|
f6e7ee7a93 | ||
|
|
de03ca596f | ||
|
|
64e0388bc2 | ||
|
|
000d2fae43 | ||
|
|
5f4f61d976 | ||
|
|
f97b5c6d30 | ||
|
|
56a4f9ffc4 | ||
|
|
d143ed989a | ||
|
|
f9302fb19d | ||
|
|
18d5bee0a9 | ||
|
|
b6e2d5e43a | ||
|
|
0c4a1ac485 | ||
|
|
2be299f549 | ||
|
|
9c69d0f109 | ||
|
|
01ee9535d4 | ||
|
|
6aab26af23 | ||
|
|
cc432a168e | ||
|
|
15dec6c8d1 | ||
|
|
12897f9484 | ||
|
|
41dab08042 | ||
|
|
9ad334d85d | ||
|
|
38ce655e24 | ||
|
|
4abd2a83ab | ||
|
|
ab27532775 | ||
|
|
8a44b62817 | ||
|
|
6d707deddb | ||
|
|
9043a9df41 | ||
|
|
7ec944d290 | ||
|
|
d12251ef6e | ||
|
|
1481f5b59b | ||
|
|
0ba44b389f | ||
|
|
cf8a414d2b | ||
|
|
e9a44efc95 | ||
|
|
486d5c8558 | ||
|
|
b22f573197 | ||
|
|
3a90e87c0b | ||
|
|
ea6f9766de | ||
|
|
84cbb6059e | ||
|
|
cefd03fa0c | ||
|
|
64782199db | ||
|
|
29be0e61f3 | ||
|
|
d9b49b1747 | ||
|
|
93bb428f31 | ||
|
|
716176466b | ||
|
|
737efe68d7 | ||
|
|
2b3dcb873c | ||
|
|
fa8069ba7d | ||
|
|
ffb350f8dc | ||
|
|
a598d2d150 | ||
|
|
d3f69706a4 | ||
|
|
f0f1b3eec8 | ||
|
|
9b8bd6b72e | ||
|
|
5cb6818960 | ||
|
|
bb7972a340 | ||
|
|
fa72b9074e | ||
|
|
9075e154ad | ||
|
|
954c399398 | ||
|
|
95f30a8834 | ||
|
|
cb0e3947ca | ||
|
|
109dff3b44 | ||
|
|
c00fe4bb53 | ||
|
|
715b0459f1 | ||
|
|
6082554de3 | ||
|
|
755ea87a94 | ||
|
|
a5692ca5f3 | ||
|
|
44574bde54 | ||
|
|
81366e6c91 | ||
|
|
21c744b445 | ||
|
|
8ab3d77d28 | ||
|
|
b847f3078a | ||
|
|
3a4df78f4a | ||
|
|
09f3028054 | ||
|
|
f9b3e1d917 | ||
|
|
5581031cba | ||
|
|
5f72890a1a | ||
|
|
277c62dc58 | ||
|
|
6f85ce210b | ||
|
|
c39b5a177c | ||
|
|
bc089ca18a | ||
|
|
0995bee381 | ||
|
|
4f9fdc6b9d | ||
|
|
12f830e496 | ||
|
|
5fc645efae | ||
|
|
c5a8c98598 | ||
|
|
93301b0b31 | ||
|
|
71e680a250 | ||
|
|
5ebb852e0d | ||
|
|
e0d198225d | ||
|
|
2751c362e3 | ||
|
|
b4c2e9e329 | ||
|
|
95cbd461c6 | ||
|
|
21b06c04d3 | ||
|
|
90791b1d9b | ||
|
|
1258ede199 | ||
|
|
cd679902b2 | ||
|
|
a63e3cdac2 | ||
|
|
3054c6c492 | ||
|
|
72e74d62f7 | ||
|
|
b0b8c61ee8 | ||
|
|
cc8b4c4f28 | ||
|
|
618c5be39f | ||
|
|
54774dbef0 | ||
|
|
e068e355eb | ||
|
|
7b9798346d | ||
|
|
9630582ae3 | ||
|
|
40c4890eae | ||
|
|
a459b32b86 | ||
|
|
d31a12dcc8 | ||
|
|
cc746d0cf8 | ||
|
|
cb1a819abd | ||
|
|
5936c60b2d | ||
|
|
882082a411 | ||
|
|
6cb0be5b1e | ||
|
|
47658d6cda | ||
|
|
c094663047 | ||
|
|
eb10990297 | ||
|
|
a98830b04c | ||
|
|
2c3541003c | ||
|
|
e2b73005ce | ||
|
|
40d5481096 | ||
|
|
2f5f46ea97 | ||
|
|
3450eed3a2 | ||
|
|
25959fddfe | ||
|
|
cc8d3f8be3 | ||
|
|
8573a53394 | ||
|
|
f414ae2672 | ||
|
|
1da5513cfc | ||
|
|
da7ad2361f | ||
|
|
f0a25a1544 | ||
|
|
af49c243b2 | ||
|
|
69b8ae783b | ||
|
|
dffe958775 | ||
|
|
61f5ee69f5 | ||
|
|
d4b0f03904 | ||
|
|
aa465c1950 | ||
|
|
a941b68182 | ||
|
|
6999242e0a | ||
|
|
555d4451fc | ||
|
|
f750e84bf1 | ||
|
|
949de71e4c | ||
|
|
99d0d12434 | ||
|
|
ea2dca2e33 | ||
|
|
db4350a1f7 | ||
|
|
4573e06799 | ||
|
|
b0db6df90b | ||
|
|
e5e351f224 | ||
|
|
440ffcf90d | ||
|
|
30cb12959f | ||
|
|
04a88c13b7 | ||
|
|
cb78e5f7b8 | ||
|
|
09c5aea8de | ||
|
|
5a265e7504 | ||
|
|
1c531e721f | ||
|
|
afe7dabb9c | ||
|
|
d64432f953 | ||
|
|
7c20d4237e | ||
|
|
3f37545348 | ||
|
|
c9dc290324 | ||
|
|
2c855eeeb3 | ||
|
|
af0f8bfebf | ||
|
|
63956efd80 | ||
|
|
b24b9f58fa | ||
|
|
fd0db1af67 | ||
|
|
39db2efce9 | ||
|
|
7b46ae0078 | ||
|
|
bcedd17714 | ||
|
|
b1336424b8 | ||
|
|
afa2f2fed2 | ||
|
|
636e944a34 | ||
|
|
63fb9c828e | ||
|
|
df9c49c7cd | ||
|
|
3651d112fe | ||
|
|
505b8355eb | ||
|
|
f8beb6a042 | ||
|
|
a57e7411bb | ||
|
|
2bc58f776e | ||
|
|
4689f3215a | ||
|
|
b64f8cbe95 | ||
|
|
340699390a | ||
|
|
7620f016f1 | ||
|
|
5fa1f992fe | ||
|
|
35d69f8ac5 | ||
|
|
8f15388c16 | ||
|
|
67048ed9ba | ||
|
|
24ab15ce48 | ||
|
|
95e1ba304d | ||
|
|
e258e5a92f | ||
|
|
55639616c1 | ||
|
|
1a7abfa62e | ||
|
|
b7edf93455 | ||
|
|
271973a5c7 | ||
|
|
1a106c853a | ||
|
|
380c172183 | ||
|
|
3c80acabe4 |
4
.github/CODEOWNERS
vendored
4
.github/CODEOWNERS
vendored
@@ -306,8 +306,8 @@ nixos/modules/services/networking/networkmanager.nix @Janik-Haag
|
|||||||
/pkgs/applications/networking/cluster/terraform-providers @zowoq
|
/pkgs/applications/networking/cluster/terraform-providers @zowoq
|
||||||
|
|
||||||
# Forgejo
|
# Forgejo
|
||||||
nixos/modules/services/misc/forgejo.nix @bendlas @emilylange
|
nixos/modules/services/misc/forgejo.nix @adamcstephens @bendlas @emilylange
|
||||||
pkgs/applications/version-management/forgejo @bendlas @emilylange
|
pkgs/by-name/fo/forgejo/package.nix @adamcstephens @bendlas @emilylange
|
||||||
|
|
||||||
# Dotnet
|
# Dotnet
|
||||||
/pkgs/build-support/dotnet @IvarWithoutBones
|
/pkgs/build-support/dotnet @IvarWithoutBones
|
||||||
|
|||||||
@@ -52,9 +52,9 @@ Nixpkgs and NixOS are built and tested by our continuous integration
|
|||||||
system, [Hydra](https://hydra.nixos.org/).
|
system, [Hydra](https://hydra.nixos.org/).
|
||||||
|
|
||||||
* [Continuous package builds for unstable/master](https://hydra.nixos.org/jobset/nixos/trunk-combined)
|
* [Continuous package builds for unstable/master](https://hydra.nixos.org/jobset/nixos/trunk-combined)
|
||||||
* [Continuous package builds for the NixOS 23.11 release](https://hydra.nixos.org/jobset/nixos/release-23.11)
|
* [Continuous package builds for the NixOS 24.05 release](https://hydra.nixos.org/jobset/nixos/release-24.05)
|
||||||
* [Tests for unstable/master](https://hydra.nixos.org/job/nixos/trunk-combined/tested#tabs-constituents)
|
* [Tests for unstable/master](https://hydra.nixos.org/job/nixos/trunk-combined/tested#tabs-constituents)
|
||||||
* [Tests for the NixOS 23.11 release](https://hydra.nixos.org/job/nixos/release-23.11/tested#tabs-constituents)
|
* [Tests for the NixOS 24.05 release](https://hydra.nixos.org/job/nixos/release-24.05/tested#tabs-constituents)
|
||||||
|
|
||||||
Artifacts successfully built with Hydra are published to cache at
|
Artifacts successfully built with Hydra are published to cache at
|
||||||
https://cache.nixos.org/. When successful build and test criteria are
|
https://cache.nixos.org/. When successful build and test criteria are
|
||||||
|
|||||||
@@ -40,6 +40,82 @@ If the `moduleNames` argument is omitted, `hasPkgConfigModules` will use `meta.p
|
|||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
|
## `lycheeLinkCheck` {#tester-lycheeLinkCheck}
|
||||||
|
|
||||||
|
Check a packaged static site's links with the [`lychee` package](https://search.nixos.org/packages?show=lychee&type=packages&query=lychee).
|
||||||
|
|
||||||
|
You may use Nix to reproducibly build static websites, such as for software documentation.
|
||||||
|
Some packages will install documentation in their `out` or `doc` outputs, or maybe you have dedicated package where you've made your static site reproducible by running a generator, such as [Hugo](https://gohugo.io/) or [mdBook](https://rust-lang.github.io/mdBook/), in a derivation.
|
||||||
|
|
||||||
|
If you have a static site that can be built with Nix, you can use `lycheeLinkCheck` to check that the hyperlinks in your site are correct, and do so as part of your Nix workflow and CI.
|
||||||
|
|
||||||
|
:::{.example #ex-lycheelinkcheck}
|
||||||
|
|
||||||
|
# Check hyperlinks in the `nix` documentation
|
||||||
|
|
||||||
|
```nix
|
||||||
|
testers.lycheeLinkCheck {
|
||||||
|
site = nix.doc + "/share/doc/nix/manual";
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
### Return value {#tester-lycheeLinkCheck-return}
|
||||||
|
|
||||||
|
This tester produces a package that does not produce useful outputs, but only succeeds if the hyperlinks in your site are correct. The build log will list the broken links.
|
||||||
|
|
||||||
|
It has two modes:
|
||||||
|
|
||||||
|
- Build the returned derivation; its build process will check that internal hyperlinks are correct. This runs in the sandbox, so it will not check external hyperlinks, but it is quick and reliable.
|
||||||
|
|
||||||
|
- Invoke the `.online` attribute with [`nix run`](https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-run) ([experimental](https://nixos.org/manual/nix/stable/contributing/experimental-features#xp-feature-nix-command)). This runs outside the sandbox, and checks that both internal and external hyperlinks are correct.
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
nix run nixpkgs#lychee.tests.ok.online
|
||||||
|
```
|
||||||
|
|
||||||
|
### Inputs {#tester-lycheeLinkCheck-inputs}
|
||||||
|
|
||||||
|
`site` (path or derivation) {#tester-lycheeLinkCheck-param-site}
|
||||||
|
|
||||||
|
: The path to the files to check.
|
||||||
|
|
||||||
|
`remap` (attribe set, optional) {#tester-lycheeLinkCheck-param-remap}
|
||||||
|
|
||||||
|
: An attribute set where the attribute names are regular expressions.
|
||||||
|
The values should be strings, derivations, or path values.
|
||||||
|
|
||||||
|
In the returned check's default configuration, external URLs are only checked when you run the `.online` attribute.
|
||||||
|
|
||||||
|
By adding remappings, you can check offline that URLs to external resources are correct, by providing a stand-in from the file system.
|
||||||
|
|
||||||
|
Before checking the existence of a URL, the regular expressions are matched and replaced by their corresponding values.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
{
|
||||||
|
"https://nix\\.dev/manual/nix/[a-z0-9.-]*" = "${nix.doc}/share/doc/nix/manual";
|
||||||
|
"https://nixos\\.org/manual/nix/(un)?stable" = "${emptyDirectory}/placeholder-to-disallow-old-nix-docs-urls";
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Store paths in the attribute values are automatically prefixed with `file://`, because lychee requires this for paths in the file system.
|
||||||
|
If this is a problem, or if you need to control the order in which replacements are performed, use `extraConfig.remap` instead.
|
||||||
|
|
||||||
|
`extraConfig` (attribute set) {#tester-lycheeLinkCheck-param-extraConfig}
|
||||||
|
|
||||||
|
: Extra configuration to pass to `lychee` in its [configuration file](https://github.com/lycheeverse/lychee/blob/master/lychee.example.toml).
|
||||||
|
It is automatically [translated](https://nixos.org/manual/nixos/stable/index.html#sec-settings-nix-representable) to TOML.
|
||||||
|
|
||||||
|
Example: `{ "include_verbatim" = true; }`
|
||||||
|
|
||||||
|
`lychee` (derivation, optional) {#tester-lycheeLinkCheck-param-lychee}
|
||||||
|
|
||||||
|
: The `lychee` package to use.
|
||||||
|
|
||||||
## `testVersion` {#tester-testVersion}
|
## `testVersion` {#tester-testVersion}
|
||||||
|
|
||||||
Checks that the output from running a command contains the specified version string in it as a whole word.
|
Checks that the output from running a command contains the specified version string in it as a whole word.
|
||||||
@@ -129,7 +205,7 @@ runCommand "example" {
|
|||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
## `testEqualContents` {#tester-equalContents}
|
## `testEqualContents` {#tester-testEqualContents}
|
||||||
|
|
||||||
Check that two paths have the same contents.
|
Check that two paths have the same contents.
|
||||||
|
|
||||||
|
|||||||
@@ -902,6 +902,17 @@ in mkLicense lset) ({
|
|||||||
free = false;
|
free = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ncbiPd = {
|
||||||
|
spdxId = "NCBI-PD";
|
||||||
|
fullname = "NCBI Public Domain Notice";
|
||||||
|
# Due to United States copyright law, anything with this "license" does not have a copyright in the
|
||||||
|
# jurisdiction of the United States. However, other jurisdictions may assign the United States
|
||||||
|
# government copyright to the work, and the license explicitly states that in such a case, no license
|
||||||
|
# is granted. This is nonfree and nonredistributable in most jurisdictions other than the United States.
|
||||||
|
free = false;
|
||||||
|
redistributable = false;
|
||||||
|
};
|
||||||
|
|
||||||
ncsa = {
|
ncsa = {
|
||||||
spdxId = "NCSA";
|
spdxId = "NCSA";
|
||||||
fullName = "University of Illinois/NCSA Open Source License";
|
fullName = "University of Illinois/NCSA Open Source License";
|
||||||
|
|||||||
@@ -93,6 +93,7 @@ let
|
|||||||
else if final.isAndroid then "bionic"
|
else if final.isAndroid then "bionic"
|
||||||
else if final.isLinux /* default */ then "glibc"
|
else if final.isLinux /* default */ then "glibc"
|
||||||
else if final.isFreeBSD then "fblibc"
|
else if final.isFreeBSD then "fblibc"
|
||||||
|
else if final.isOpenBSD then "oblibc"
|
||||||
else if final.isNetBSD then "nblibc"
|
else if final.isNetBSD then "nblibc"
|
||||||
else if final.isAvr then "avrlibc"
|
else if final.isAvr then "avrlibc"
|
||||||
else if final.isGhcjs then null
|
else if final.isGhcjs then null
|
||||||
|
|||||||
@@ -342,6 +342,11 @@ rec {
|
|||||||
useLLVM = true;
|
useLLVM = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
x86_64-openbsd = {
|
||||||
|
config = "x86_64-unknown-openbsd";
|
||||||
|
useLLVM = true;
|
||||||
|
};
|
||||||
|
|
||||||
#
|
#
|
||||||
# WASM
|
# WASM
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -469,6 +469,7 @@ rec {
|
|||||||
elem (elemAt l 2) [ "wasi" "redox" "mmixware" "ghcjs" "mingw32" ] ||
|
elem (elemAt l 2) [ "wasi" "redox" "mmixware" "ghcjs" "mingw32" ] ||
|
||||||
hasPrefix "freebsd" (elemAt l 2) ||
|
hasPrefix "freebsd" (elemAt l 2) ||
|
||||||
hasPrefix "netbsd" (elemAt l 2) ||
|
hasPrefix "netbsd" (elemAt l 2) ||
|
||||||
|
hasPrefix "openbsd" (elemAt l 2) ||
|
||||||
hasPrefix "genode" (elemAt l 2)
|
hasPrefix "genode" (elemAt l 2)
|
||||||
then {
|
then {
|
||||||
cpu = elemAt l 0;
|
cpu = elemAt l 0;
|
||||||
|
|||||||
@@ -4568,9 +4568,14 @@
|
|||||||
github = "DataHearth";
|
github = "DataHearth";
|
||||||
githubId = 28595242;
|
githubId = 28595242;
|
||||||
name = "DataHearth";
|
name = "DataHearth";
|
||||||
keys = [{
|
keys = [
|
||||||
fingerprint = "A129 2547 0298 BFEE 7EE0 92B3 946E 2D0C 410C 7B3D";
|
{
|
||||||
}];
|
fingerprint = "A129 2547 0298 BFEE 7EE0 92B3 946E 2D0C 410C 7B3D";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
fingerprint = "FFC4 92C1 5320 B05D 0F8D 7D58 ABF6 737C 6339 6D35";
|
||||||
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
davegallant = {
|
davegallant = {
|
||||||
name = "Dave Gallant";
|
name = "Dave Gallant";
|
||||||
@@ -7731,6 +7736,14 @@
|
|||||||
fingerprint = "7FC7 98AB 390E 1646 ED4D 8F1F 797F 6238 68CD 00C2";
|
fingerprint = "7FC7 98AB 390E 1646 ED4D 8F1F 797F 6238 68CD 00C2";
|
||||||
}];
|
}];
|
||||||
};
|
};
|
||||||
|
greaka = {
|
||||||
|
email = "git@greaka.de";
|
||||||
|
github = "greaka";
|
||||||
|
githubId = 2805834;
|
||||||
|
name = "Greaka";
|
||||||
|
keys =
|
||||||
|
[{ fingerprint = "6275 FB5C C9AC 9D85 FF9E 44C5 EE92 A5CD C367 118C"; }];
|
||||||
|
};
|
||||||
greg = {
|
greg = {
|
||||||
email = "greg.hellings@gmail.com";
|
email = "greg.hellings@gmail.com";
|
||||||
github = "greg-hellings";
|
github = "greg-hellings";
|
||||||
@@ -9963,6 +9976,12 @@
|
|||||||
githubId = 8580434;
|
githubId = 8580434;
|
||||||
name = "Jonny Bolton";
|
name = "Jonny Bolton";
|
||||||
};
|
};
|
||||||
|
jonochang = {
|
||||||
|
name = "Jono Chang";
|
||||||
|
email = "j.g.chang@gmail.com";
|
||||||
|
github = "jonochang";
|
||||||
|
githubId = 13179;
|
||||||
|
};
|
||||||
jonringer = {
|
jonringer = {
|
||||||
email = "jonringer117@gmail.com";
|
email = "jonringer117@gmail.com";
|
||||||
matrix = "@jonringer:matrix.org";
|
matrix = "@jonringer:matrix.org";
|
||||||
@@ -11920,6 +11939,14 @@
|
|||||||
githubId = 10626;
|
githubId = 10626;
|
||||||
name = "Andreas Wagner";
|
name = "Andreas Wagner";
|
||||||
};
|
};
|
||||||
|
lpostula = {
|
||||||
|
email = "lois@postu.la";
|
||||||
|
github = "loispostula";
|
||||||
|
githubId = 1423612;
|
||||||
|
name = "Loïs Postula";
|
||||||
|
keys =
|
||||||
|
[{ fingerprint = "0B4A E7C7 D3B7 53F5 3B3D 774C 3819 3C6A 09C3 9ED1"; }];
|
||||||
|
};
|
||||||
lrewega = {
|
lrewega = {
|
||||||
email = "lrewega@c32.ca";
|
email = "lrewega@c32.ca";
|
||||||
github = "lrewega";
|
github = "lrewega";
|
||||||
@@ -12845,6 +12872,12 @@
|
|||||||
fingerprint = "1DE4 424D BF77 1192 5DC4 CF5E 9AED 8814 81D8 444E";
|
fingerprint = "1DE4 424D BF77 1192 5DC4 CF5E 9AED 8814 81D8 444E";
|
||||||
}];
|
}];
|
||||||
};
|
};
|
||||||
|
maxstrid = {
|
||||||
|
email = "mxwhenderson@gmail.com";
|
||||||
|
github = "maxstrid";
|
||||||
|
githubId = 115441224;
|
||||||
|
name = "Maxwell Henderson";
|
||||||
|
};
|
||||||
maxux = {
|
maxux = {
|
||||||
email = "root@maxux.net";
|
email = "root@maxux.net";
|
||||||
github = "maxux";
|
github = "maxux";
|
||||||
|
|||||||
@@ -112,6 +112,7 @@ nvim-nio,,,,,,mrcjkb
|
|||||||
pathlib.nvim,,,,,,
|
pathlib.nvim,,,,,,
|
||||||
penlight,,,,,,alerque
|
penlight,,,,,,alerque
|
||||||
plenary.nvim,https://raw.githubusercontent.com/nvim-lua/plenary.nvim/master/plenary.nvim-scm-1.rockspec,,,,5.1,
|
plenary.nvim,https://raw.githubusercontent.com/nvim-lua/plenary.nvim/master/plenary.nvim-scm-1.rockspec,,,,5.1,
|
||||||
|
psl,,,,0.3,,
|
||||||
rapidjson,,,,,,
|
rapidjson,,,,,,
|
||||||
rest.nvim,,,,,5.1,teto
|
rest.nvim,,,,,5.1,teto
|
||||||
rocks.nvim,,,,,,mrcjkb
|
rocks.nvim,,,,,,mrcjkb
|
||||||
|
|||||||
|
@@ -345,6 +345,16 @@ with lib.maintainers; {
|
|||||||
shortName = "freedesktop.org packaging";
|
shortName = "freedesktop.org packaging";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
fslabs = {
|
||||||
|
# Verify additions to this team with at least one already existing member of the team.
|
||||||
|
members = [
|
||||||
|
greaka
|
||||||
|
lpostula
|
||||||
|
];
|
||||||
|
scope = "Group registration for packages maintained by Foresight Spatial Labs.";
|
||||||
|
shortName = "Foresight Spatial Labs employees";
|
||||||
|
};
|
||||||
|
|
||||||
gcc = {
|
gcc = {
|
||||||
members = [
|
members = [
|
||||||
synthetica
|
synthetica
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ Reviewing process:
|
|||||||
- Description, default and example should be provided.
|
- Description, default and example should be provided.
|
||||||
- Ensure that option changes are backward compatible.
|
- Ensure that option changes are backward compatible.
|
||||||
- `mkRenamedOptionModuleWith` provides a way to make renamed option backward compatible.
|
- `mkRenamedOptionModuleWith` provides a way to make renamed option backward compatible.
|
||||||
- Use `lib.versionAtLeast config.system.stateVersion "23.11"` on backward incompatible changes which may corrupt, change or update the state stored on existing setups.
|
- Use `lib.versionAtLeast config.system.stateVersion "24.05"` on backward incompatible changes which may corrupt, change or update the state stored on existing setups.
|
||||||
- Ensure that removed options are declared with `mkRemovedOptionModule`.
|
- Ensure that removed options are declared with `mkRemovedOptionModule`.
|
||||||
- Ensure that changes that are not backward compatible are mentioned in release notes.
|
- Ensure that changes that are not backward compatible are mentioned in release notes.
|
||||||
- Ensure that documentations affected by the change is updated.
|
- Ensure that documentations affected by the change is updated.
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ expressions and associated binaries. The NixOS channels are updated
|
|||||||
automatically from NixOS's Git repository after certain tests have
|
automatically from NixOS's Git repository after certain tests have
|
||||||
passed and all packages have been built. These channels are:
|
passed and all packages have been built. These channels are:
|
||||||
|
|
||||||
- *Stable channels*, such as [`nixos-23.11`](https://channels.nixos.org/nixos-23.11).
|
- *Stable channels*, such as [`nixos-24.05`](https://channels.nixos.org/nixos-24.05).
|
||||||
These only get conservative bug fixes and package upgrades. For
|
These only get conservative bug fixes and package upgrades. For
|
||||||
instance, a channel update may cause the Linux kernel on your system
|
instance, a channel update may cause the Linux kernel on your system
|
||||||
to be upgraded from 4.19.34 to 4.19.38 (a minor bug fix), but not
|
to be upgraded from 4.19.34 to 4.19.38 (a minor bug fix), but not
|
||||||
@@ -19,7 +19,7 @@ passed and all packages have been built. These channels are:
|
|||||||
radical changes between channel updates. It's not recommended for
|
radical changes between channel updates. It's not recommended for
|
||||||
production systems.
|
production systems.
|
||||||
|
|
||||||
- *Small channels*, such as [`nixos-23.11-small`](https://channels.nixos.org/nixos-23.11-small)
|
- *Small channels*, such as [`nixos-24.05-small`](https://channels.nixos.org/nixos-24.05-small)
|
||||||
or [`nixos-unstable-small`](https://channels.nixos.org/nixos-unstable-small).
|
or [`nixos-unstable-small`](https://channels.nixos.org/nixos-unstable-small).
|
||||||
These are identical to the stable and unstable channels described above,
|
These are identical to the stable and unstable channels described above,
|
||||||
except that they contain fewer binary packages. This means they get updated
|
except that they contain fewer binary packages. This means they get updated
|
||||||
@@ -38,8 +38,8 @@ supported stable release.
|
|||||||
|
|
||||||
When you first install NixOS, you're automatically subscribed to the
|
When you first install NixOS, you're automatically subscribed to the
|
||||||
NixOS channel that corresponds to your installation source. For
|
NixOS channel that corresponds to your installation source. For
|
||||||
instance, if you installed from a 23.11 ISO, you will be subscribed to
|
instance, if you installed from a 24.05 ISO, you will be subscribed to
|
||||||
the `nixos-23.11` channel. To see which NixOS channel you're subscribed
|
the `nixos-24.05` channel. To see which NixOS channel you're subscribed
|
||||||
to, run the following as root:
|
to, run the following as root:
|
||||||
|
|
||||||
```ShellSession
|
```ShellSession
|
||||||
@@ -54,16 +54,16 @@ To switch to a different NixOS channel, do
|
|||||||
```
|
```
|
||||||
|
|
||||||
(Be sure to include the `nixos` parameter at the end.) For instance, to
|
(Be sure to include the `nixos` parameter at the end.) For instance, to
|
||||||
use the NixOS 23.11 stable channel:
|
use the NixOS 24.05 stable channel:
|
||||||
|
|
||||||
```ShellSession
|
```ShellSession
|
||||||
# nix-channel --add https://channels.nixos.org/nixos-23.11 nixos
|
# nix-channel --add https://channels.nixos.org/nixos-24.05 nixos
|
||||||
```
|
```
|
||||||
|
|
||||||
If you have a server, you may want to use the "small" channel instead:
|
If you have a server, you may want to use the "small" channel instead:
|
||||||
|
|
||||||
```ShellSession
|
```ShellSession
|
||||||
# nix-channel --add https://channels.nixos.org/nixos-23.11-small nixos
|
# nix-channel --add https://channels.nixos.org/nixos-24.05-small nixos
|
||||||
```
|
```
|
||||||
|
|
||||||
And if you want to live on the bleeding edge:
|
And if you want to live on the bleeding edge:
|
||||||
@@ -117,6 +117,6 @@ modules. You can also specify a channel explicitly, e.g.
|
|||||||
|
|
||||||
```nix
|
```nix
|
||||||
{
|
{
|
||||||
system.autoUpgrade.channel = "https://channels.nixos.org/nixos-23.11";
|
system.autoUpgrade.channel = "https://channels.nixos.org/nixos-24.05";
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Release 24.05 (“Uakari”, 2024.05/??) {#sec-release-24.05}
|
# Release 24.05 (“Uakari”, 2024.05/31) {#sec-release-24.05}
|
||||||
|
|
||||||
Support is planned until the end of December 2024, handing over to 24.11.
|
Support is planned until the end of December 2024, handing over to 24.11.
|
||||||
|
|
||||||
@@ -6,11 +6,11 @@ Support is planned until the end of December 2024, handing over to 24.11.
|
|||||||
|
|
||||||
In addition to numerous new and upgraded packages, this release has the following highlights:
|
In addition to numerous new and upgraded packages, this release has the following highlights:
|
||||||
|
|
||||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
<!-- Please keep entries alphabetically sorted. -->
|
||||||
|
|
||||||
- The default kernel package has been updated from 6.1 to 6.6. All supported kernels remain available.
|
- The default kernel package has been updated from 6.1 to 6.6. All supported kernels remain available.
|
||||||
|
|
||||||
- For each supporting version of the Linux kernel firmware blobs
|
- For each supporting version of the Linux kernel, firmware blobs
|
||||||
are compressed with zstd. For firmware blobs this means an increase of 4.4% in size, however
|
are compressed with zstd. For firmware blobs this means an increase of 4.4% in size, however
|
||||||
a significantly higher decompression speed.
|
a significantly higher decompression speed.
|
||||||
|
|
||||||
@@ -22,13 +22,13 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||||||
|
|
||||||
This makes `nix run nixpkgs#hello` and `nix-build '<nixpkgs>' -A hello` work out of the box with no added configuration, reusing dependencies already on the system.
|
This makes `nix run nixpkgs#hello` and `nix-build '<nixpkgs>' -A hello` work out of the box with no added configuration, reusing dependencies already on the system.
|
||||||
|
|
||||||
This may be undesirable if nix commands are not going to be run on the built system since it adds nixpkgs to the system closure. For such closure-size-constrained non-interactive systems, this setting should be disabled.
|
This may be undesirable if Nix commands are not going to be run on the built system since it adds nixpkgs to the system closure. For such closure-size-constrained non-interactive systems, this setting should be disabled.
|
||||||
|
|
||||||
To disable this, set [nixpkgs.flake.setNixPath](#opt-nixpkgs.flake.setNixPath) and [nixpkgs.flake.setFlakeRegistry](#opt-nixpkgs.flake.setFlakeRegistry) to false.
|
To disable it, set [nixpkgs.flake.setNixPath](#opt-nixpkgs.flake.setNixPath) and [nixpkgs.flake.setFlakeRegistry](#opt-nixpkgs.flake.setFlakeRegistry) to false.
|
||||||
|
|
||||||
- NixOS AMIs are now uploaded regularly to a new AWS Account.
|
- NixOS AMIs are now uploaded regularly to a new AWS Account.
|
||||||
Instructions on how to use them can be found on <https://nixos.github.io/amis>.
|
Instructions on how to use them can be found on <https://nixos.github.io/amis>.
|
||||||
We are working on integration the data into the NixOS homepage.
|
We are working on integrating the data into the NixOS homepage.
|
||||||
The list in `nixos/modules/virtualisation/amazon-ec2-amis.nix` will stop
|
The list in `nixos/modules/virtualisation/amazon-ec2-amis.nix` will stop
|
||||||
being updated and will be removed in the future.
|
being updated and will be removed in the future.
|
||||||
|
|
||||||
@@ -42,18 +42,24 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
- Cinnamon has been updated to 6.0. Please be aware that the [Wayland session](https://blog.linuxmint.com/?p=4591) is still experimental in this release and could potentially [affect Xorg sessions](https://blog.linuxmint.com/?p=4639). We suggest a reboot when switching between sessions.
|
||||||
|
|
||||||
|
- GNOME has been updated to 46 "Kathmandu", which introduces an enhanced Files app, support for OneDrive in Online Accounts, and more changes. Refer to the [release notes](https://release.gnome.org/46/) for more details.
|
||||||
|
|
||||||
- Lomiri (formerly known as Unity8) desktop mode, using Mir 2.x to function as a Wayland compositor, is now available and can be installed with `services.desktopManager.lomiri.enable = true`. Note that some core applications, services and indicators have yet to be packaged, and some functions may remain incomplete, but the base experience should be there.
|
- Lomiri (formerly known as Unity8) desktop mode, using Mir 2.x to function as a Wayland compositor, is now available and can be installed with `services.desktopManager.lomiri.enable = true`. Note that some core applications, services and indicators have yet to be packaged, and some functions may remain incomplete, but the base experience should be there.
|
||||||
|
|
||||||
|
- LXQt has been updated to 2.0, which is based on Qt 6 and features Wayland support for many applications.
|
||||||
|
|
||||||
- MATE has been updated to 1.28.
|
- MATE has been updated to 1.28.
|
||||||
- To properly support panel plugins built with Wayland (in-process) support, we are introducing `services.xserver.desktopManager.mate.extraPanelApplets` option, please use that for installing panel applets.
|
- To properly support panel plugins built with Wayland (in-process) support, we are introducing the `services.xserver.desktopManager.mate.extraPanelApplets` option, please use that for installing panel applets.
|
||||||
- Similarly, please use `services.xserver.desktopManager.mate.extraCajaExtensions` option for installing Caja extensions.
|
- Similarly, please use the `services.xserver.desktopManager.mate.extraCajaExtensions` option for installing Caja extensions.
|
||||||
- To use the Wayland session, enable `services.xserver.desktopManager.mate.enableWaylandSession`. This is opt-in for now as it is in early stage and introduces a new set of Wayfire closure. Due to [known issues with LightDM](https://github.com/canonical/lightdm/issues/63), we suggest using SDDM for display manager.
|
- To use the Wayland session, enable `services.xserver.desktopManager.mate.enableWaylandSession`. This is opt-in for now as it is in early an stage and introduces a new set of Wayfire closures. Due to [known issues with LightDM](https://github.com/canonical/lightdm/issues/63), we suggest using SDDM as the display manager.
|
||||||
|
|
||||||
- Plasma 6 is now available and can be installed with `services.xserver.desktopManager.plasma6.enable = true;`. Plasma 5 will likely be deprecated in the next release (24.11). Note that Plasma 6 runs as Wayland by default, and the X11 session needs to be explicitly selected if necessary.
|
- Plasma 6 is now available and can be installed with `services.xserver.desktopManager.plasma6.enable = true;`. Plasma 5 will likely be deprecated in the next release (24.11). Note that Plasma 6 runs as Wayland by default, and the X11 session needs to be explicitly selected if necessary.
|
||||||
|
|
||||||
## New Services {#sec-release-24.05-new-services}
|
## New Services {#sec-release-24.05-new-services}
|
||||||
|
|
||||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
<!-- Please keep entries alphabetically sorted. -->
|
||||||
|
|
||||||
- [Anki Sync Server](https://docs.ankiweb.net/sync-server.html), the official sync server built into recent versions of Anki. Available as [services.anki-sync-server](#opt-services.anki-sync-server.enable).
|
- [Anki Sync Server](https://docs.ankiweb.net/sync-server.html), the official sync server built into recent versions of Anki. Available as [services.anki-sync-server](#opt-services.anki-sync-server.enable).
|
||||||
The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been marked deprecated and will be dropped after 24.05 due to lack of maintenance of the anki-sync-server software.
|
The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been marked deprecated and will be dropped after 24.05 due to lack of maintenance of the anki-sync-server software.
|
||||||
@@ -65,7 +71,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
|||||||
- [armagetronad](https://wiki.armagetronad.org), a mid-2000s 3D lightcycle game widely played at iD Tech Camps. You can define multiple servers using `services.armagetronad.<server>.enable`.
|
- [armagetronad](https://wiki.armagetronad.org), a mid-2000s 3D lightcycle game widely played at iD Tech Camps. You can define multiple servers using `services.armagetronad.<server>.enable`.
|
||||||
|
|
||||||
- [BenchExec](https://github.com/sosy-lab/benchexec), a framework for reliable benchmarking and resource measurement, available as [programs.benchexec](#opt-programs.benchexec.enable),
|
- [BenchExec](https://github.com/sosy-lab/benchexec), a framework for reliable benchmarking and resource measurement, available as [programs.benchexec](#opt-programs.benchexec.enable),
|
||||||
As well as related programs
|
as well as related programs
|
||||||
[CPU Energy Meter](https://github.com/sosy-lab/cpu-energy-meter), available as [programs.cpu-energy-meter](#opt-programs.cpu-energy-meter.enable), and
|
[CPU Energy Meter](https://github.com/sosy-lab/cpu-energy-meter), available as [programs.cpu-energy-meter](#opt-programs.cpu-energy-meter.enable), and
|
||||||
[PQoS Wrapper](https://gitlab.com/sosy-lab/software/pqos-wrapper), available as [programs.pqos-wrapper](#opt-programs.pqos-wrapper.enable).
|
[PQoS Wrapper](https://gitlab.com/sosy-lab/software/pqos-wrapper), available as [programs.pqos-wrapper](#opt-programs.pqos-wrapper.enable).
|
||||||
|
|
||||||
@@ -75,7 +81,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
|||||||
|
|
||||||
- [Clevis](https://github.com/latchset/clevis), a pluggable framework for automated decryption, used to unlock encrypted devices in initrd. Available as [boot.initrd.clevis.enable](#opt-boot.initrd.clevis.enable).
|
- [Clevis](https://github.com/latchset/clevis), a pluggable framework for automated decryption, used to unlock encrypted devices in initrd. Available as [boot.initrd.clevis.enable](#opt-boot.initrd.clevis.enable).
|
||||||
|
|
||||||
- [CommaFeed](https://github.com/Athou/commafeed), a Google Reader inspired self-hosted RSS reader. Available as [services.commafeed](#opt-services.commafeed.enable).
|
- [CommaFeed](https://github.com/Athou/commafeed), a Google Reader-inspired self-hosted RSS reader. Available as [services.commafeed](#opt-services.commafeed.enable).
|
||||||
|
|
||||||
- [davis](https://github.com/tchapi/davis), a simple CardDav and CalDav server inspired by Baïkal. Available as [services.davis](#opt-services.davis.enable).
|
- [davis](https://github.com/tchapi/davis), a simple CardDav and CalDav server inspired by Baïkal. Available as [services.davis](#opt-services.davis.enable).
|
||||||
|
|
||||||
@@ -85,6 +91,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
|||||||
|
|
||||||
- [FCast Receiver](https://fcast.org), an open-source alternative to Chromecast and AirPlay. Available as [programs.fcast-receiver](#opt-programs.fcast-receiver.enable).
|
- [FCast Receiver](https://fcast.org), an open-source alternative to Chromecast and AirPlay. Available as [programs.fcast-receiver](#opt-programs.fcast-receiver.enable).
|
||||||
|
|
||||||
|
- [FileSender](https://filesender.org/), a file sharing software. Available as [services.filesender](#opt-services.filesender.enable).
|
||||||
|
|
||||||
- [Firefly-iii](https://www.firefly-iii.org), a free and open source personal finance manager. Available as [services.firefly-iii](#opt-services.firefly-iii.enable).
|
- [Firefly-iii](https://www.firefly-iii.org), a free and open source personal finance manager. Available as [services.firefly-iii](#opt-services.firefly-iii.enable).
|
||||||
|
|
||||||
- [Flarum](https://flarum.org/), a delightfully simple discussion platform for your website. Available as [services.flarum](#opt-services.flarum.enable).
|
- [Flarum](https://flarum.org/), a delightfully simple discussion platform for your website. Available as [services.flarum](#opt-services.flarum.enable).
|
||||||
@@ -109,7 +117,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
|||||||
|
|
||||||
- [Jottacloud Command-line Tool](https://docs.jottacloud.com/en/articles/1436834-jottacloud-command-line-tool), a CLI for the [Jottacloud](https://jottacloud.com/) cloud storage provider. Available as [services.jotta-cli](#opt-services.jotta-cli.enable).
|
- [Jottacloud Command-line Tool](https://docs.jottacloud.com/en/articles/1436834-jottacloud-command-line-tool), a CLI for the [Jottacloud](https://jottacloud.com/) cloud storage provider. Available as [services.jotta-cli](#opt-services.jotta-cli.enable).
|
||||||
|
|
||||||
- [keto](https://www.ory.sh/keto/), a permission & access control server, the first open source implementation of ["Zanzibar: Google's Consistent, Global Authorization System"](https://research.google/pubs/zanzibar-googles-consistent-global-authorization-system/).
|
- [keto](https://www.ory.sh/keto/), a permission & access control server, the first open source implementation of [*Zanzibar: Google's Consistent, Global Authorization System*](https://research.google/pubs/zanzibar-googles-consistent-global-authorization-system/).
|
||||||
|
|
||||||
- [manticoresearch](https://manticoresearch.com), easy to use open source fast database for search. Available as [services.manticore](#opt-services.manticore.enable).
|
- [manticoresearch](https://manticoresearch.com), easy to use open source fast database for search. Available as [services.manticore](#opt-services.manticore.enable).
|
||||||
|
|
||||||
@@ -147,7 +155,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
|||||||
|
|
||||||
- [private-gpt](https://github.com/zylon-ai/private-gpt), a service to interact with your documents using the power of LLMs, 100% privately, no data leaks. Available as [services.private-gpt](#opt-services.private-gpt.enable).
|
- [private-gpt](https://github.com/zylon-ai/private-gpt), a service to interact with your documents using the power of LLMs, 100% privately, no data leaks. Available as [services.private-gpt](#opt-services.private-gpt.enable).
|
||||||
|
|
||||||
- [Prometheus DNSSEC Exporter](https://github.com/chrj/prometheus-dnssec-exporter), check for validity and expiration in DNSSEC signatures and expose metrics for Prometheus. Available as [services.prometheus.exporters.dnssec](#opt-services.prometheus.exporters.dnssec.enable).
|
- [Prometheus DNSSEC Exporter](https://github.com/chrj/prometheus-dnssec-exporter): check for validity and expiration in DNSSEC signatures and expose metrics for Prometheus. Available as [services.prometheus.exporters.dnssec](#opt-services.prometheus.exporters.dnssec.enable).
|
||||||
|
|
||||||
- [prometheus-nats-exporter](https://github.com/nats-io/prometheus-nats-exporter), a Prometheus exporter for NATS. Available as [services.prometheus.exporters.nats](#opt-services.prometheus.exporters.nats.enable).
|
- [prometheus-nats-exporter](https://github.com/nats-io/prometheus-nats-exporter), a Prometheus exporter for NATS. Available as [services.prometheus.exporters.nats](#opt-services.prometheus.exporters.nats.enable).
|
||||||
|
|
||||||
@@ -187,6 +195,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
|||||||
|
|
||||||
- [wastebin](https://github.com/matze/wastebin), a pastebin server written in rust. Available as [services.wastebin](#opt-services.wastebin.enable).
|
- [wastebin](https://github.com/matze/wastebin), a pastebin server written in rust. Available as [services.wastebin](#opt-services.wastebin.enable).
|
||||||
|
|
||||||
|
- [watchdogd](https://troglobit.com/projects/watchdogd/), a system and process supervisor using watchdog timers. Available as [services.watchdogd](#opt-services.watchdogd.enable).
|
||||||
|
|
||||||
- [Workout-tracker](https://github.com/jovandeginste/workout-tracker), a workout tracking web application for personal use.
|
- [Workout-tracker](https://github.com/jovandeginste/workout-tracker), a workout tracking web application for personal use.
|
||||||
|
|
||||||
- [wyoming-satellite](https://github.com/rhasspy/wyoming-satellite), a voice assistant satellite for Home Assistant using the Wyoming protocol. Available as [services.wyoming.satellite](#opt-services.wyoming.satellite.enable).
|
- [wyoming-satellite](https://github.com/rhasspy/wyoming-satellite), a voice assistant satellite for Home Assistant using the Wyoming protocol. Available as [services.wyoming.satellite](#opt-services.wyoming.satellite.enable).
|
||||||
@@ -197,8 +207,6 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
|||||||
|
|
||||||
- [your_spotify](https://github.com/Yooooomi/your_spotify), a self hosted Spotify tracking dashboard. Available as [services.your_spotify](#opt-services.your_spotify.enable)
|
- [your_spotify](https://github.com/Yooooomi/your_spotify), a self hosted Spotify tracking dashboard. Available as [services.your_spotify](#opt-services.your_spotify.enable)
|
||||||
|
|
||||||
- [FileSender](https://filesender.org/), a file sharing software. Available as [services.filesender](#opt-services.filesender.enable).
|
|
||||||
|
|
||||||
## Backward Incompatibilities {#sec-release-24.05-incompatibilities}
|
## Backward Incompatibilities {#sec-release-24.05-incompatibilities}
|
||||||
|
|
||||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||||
@@ -223,10 +231,10 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
|||||||
|
|
||||||
- `buildGoModule` now throws an error when `vendorHash` is not specified. `vendorSha256`, deprecated in Nixpkgs 23.11, is now ignored and is no longer a `vendorHash` alias.
|
- `buildGoModule` now throws an error when `vendorHash` is not specified. `vendorSha256`, deprecated in Nixpkgs 23.11, is now ignored and is no longer a `vendorHash` alias.
|
||||||
|
|
||||||
- `chromium` and `ungoogled-chromium` had a long standing issue regarding Widevine DRM handling in nixpkgs fixed.
|
- `chromium` and `ungoogled-chromium` had a long-standing issue regarding Widevine DRM handling in nixpkgs fixed.
|
||||||
`chromium` now no longer automatically downloads Widevine when encountering DRM protected content.
|
`chromium` now no longer automatically downloads Widevine when encountering DRM protected content.
|
||||||
To be able to play DRM protected content in `chromium` now, you have to explicitly opt-in as originally intended using `chromium.override { enableWideVine = true; }`.
|
To be able to play DRM protected content in `chromium`, you now have to explicitly opt-in as originally intended using `chromium.override { enableWideVine = true; }`.
|
||||||
This override has been added almost 10 years ago.
|
This override was added almost 10 years ago.
|
||||||
|
|
||||||
- `craftos-pc` package has been updated to v2.8, which includes [breaking changes](https://github.com/MCJack123/craftos2/releases/tag/v2.8).
|
- `craftos-pc` package has been updated to v2.8, which includes [breaking changes](https://github.com/MCJack123/craftos2/releases/tag/v2.8).
|
||||||
- Files are now handled in binary mode; this could break programs with embedded UTF-8 characters.
|
- Files are now handled in binary mode; this could break programs with embedded UTF-8 characters.
|
||||||
@@ -248,16 +256,16 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
|||||||
- `cudaPackages.cudatoolkit` has been deprecated and replaced with a
|
- `cudaPackages.cudatoolkit` has been deprecated and replaced with a
|
||||||
symlink-based wrapper for the splayed redistributable CUDA packages. The
|
symlink-based wrapper for the splayed redistributable CUDA packages. The
|
||||||
wrapper only includes tools and libraries necessary to build common packages
|
wrapper only includes tools and libraries necessary to build common packages
|
||||||
like e.g. tensorflow. The original runfile-based `cudatoolkit` is still
|
such as tensorflow. The original runfile-based `cudatoolkit` is still
|
||||||
available as `cudatoolkit-legacy-runfile`.
|
available as `cudatoolkit-legacy-runfile`.
|
||||||
|
|
||||||
- `cudaPackages.nsight_systems` now has most vendored third party libraries removed, though we now only ship it for `cudaPackages_11_8` and later due to outdated dependencies. Users comfortable with the vendored dependencies may use `overrideAttrs` to amend the `postPatch` phase and the `meta.broken` correspondingly. Alternatively, one could package the deprecated `boost170` locally, as required for `cudaPackages_11_4.nsight_systems`.
|
- `cudaPackages.nsight_systems` now has most vendored third-party libraries removed, though we now only ship it for `cudaPackages_11_8` and later, due to outdated dependencies. Users comfortable with the vendored dependencies may use `overrideAttrs` to amend the `postPatch` phase and the `meta.broken` correspondingly. Alternatively, one could package the deprecated `boost170` locally, as required for `cudaPackages_11_4.nsight_systems`.
|
||||||
|
|
||||||
- `cudaPackages.autoFixElfFiles` has been deprecated for `pkgs.autoFixElfFiles`. Functionality has not changed, but the setuphook has been renamed and moved to the top-level package scope.
|
- `cudaPackages.autoFixElfFiles` has been deprecated for `pkgs.autoFixElfFiles`. Functionality has not changed, but the setuphook has been renamed and moved to the top-level package scope.
|
||||||
|
|
||||||
- `davfs2`' `services.davfs2.extraConfig` setting has been deprecated and converted to the free-form type option named `services.davfs2.settings` according to RFC42.
|
- `davfs2`'s `services.davfs2.extraConfig` setting has been deprecated and converted to the free-form type option named `services.davfs2.settings` according to RFC42.
|
||||||
|
|
||||||
- `dwarf-fortress` has been updated to version 50, and its derivations continue to menace with spikes of Nix and bash. Version 50 is identical to the version on Steam, but without the paid elements like tilepacks.
|
- `dwarf-fortress` has been updated to version 50, which is identical to the version on Steam, but without the paid elements like tilepacks.
|
||||||
dfhack and Dwarf Therapist still work, and older versions are still packaged in case you'd like to roll back. Note that DF 50 saves will not be compatible with DF 0.47 and earlier.
|
dfhack and Dwarf Therapist still work, and older versions are still packaged in case you'd like to roll back. Note that DF 50 saves will not be compatible with DF 0.47 and earlier.
|
||||||
See [Bay 12 Games](http://www.bay12games.com/dwarves/) for more details on what's new in Dwarf Fortress.
|
See [Bay 12 Games](http://www.bay12games.com/dwarves/) for more details on what's new in Dwarf Fortress.
|
||||||
|
|
||||||
@@ -267,14 +275,14 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
|||||||
|
|
||||||
- `erlang-ls` package no longer ships the `els_dap` binary as of v0.51.0.
|
- `erlang-ls` package no longer ships the `els_dap` binary as of v0.51.0.
|
||||||
|
|
||||||
- `erlang_node_short_name`, `erlang_node_name`, `port` and `options` configuration parameters are gone, and have been replaced with an `environment` parameter.
|
- `erlang_node_short_name`, `erlang_node_name`: `port` and `options` configuration parameters are gone, and have been replaced with an `environment` parameter.
|
||||||
Use the appropriate [environment variables](https://hexdocs.pm/livebook/readme.html#environment-variables) inside `environment` to configure the service instead.
|
Use the appropriate [environment variables](https://hexdocs.pm/livebook/readme.html#environment-variables) inside `environment` to configure the service instead.
|
||||||
|
|
||||||
- `firefox-devedition`, `firefox-beta`, `firefox-esr` executable file names for now match their package names, which is consistent with the `firefox-*-bin` packages. The desktop entries are also updated so that you can have multiple editions of firefox in your app launcher.
|
- `firefox-devedition`, `firefox-beta`, `firefox-esr` executable file names for now match their package names, which is consistent with the `firefox-*-bin` packages. The desktop entries are also updated so that you can have multiple editions of firefox in your app launcher.
|
||||||
|
|
||||||
- `gauge` now supports installing plugins using nix. For the old imperative approach, switch to `gauge-unwrapped`.
|
- `gauge` now supports installing plugins using Nix. For the old imperative approach, switch to `gauge-unwrapped`.
|
||||||
You can load plugins from an existing gauge manifest file using `gauge.fromManifest ./path/to/manifest.json` or
|
You can load plugins from an existing gauge manifest file using `gauge.fromManifest ./path/to/manifest.json` or
|
||||||
specify plugins in nix using `gauge.withPlugins (p: with p; [ js html-report xml-report ])`.
|
specify plugins in Nix using `gauge.withPlugins (p: with p; [ js html-report xml-report ])`.
|
||||||
|
|
||||||
- `gitea` has been updated to 1.21, which introduces several breaking changes, including:
|
- `gitea` has been updated to 1.21, which introduces several breaking changes, including:
|
||||||
- Custom themes and other assets that were previously stored in `custom/public/*` now belong in `custom/public/assets/*`
|
- Custom themes and other assets that were previously stored in `custom/public/*` now belong in `custom/public/assets/*`
|
||||||
@@ -300,7 +308,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
|||||||
|
|
||||||
- `himalaya` has been updated to v1.0.0-beta.4, which introduces breaking changes. Check out the [release note](https://github.com/soywod/himalaya/releases/tag/v1.0.0-beta.4) for details.
|
- `himalaya` has been updated to v1.0.0-beta.4, which introduces breaking changes. Check out the [release note](https://github.com/soywod/himalaya/releases/tag/v1.0.0-beta.4) for details.
|
||||||
|
|
||||||
- `halloy` has been updated to 2024.5, which introduced a breaking change by switching the config format from YAML to TOML. See https://github.com/squidowl/halloy/releases/tag/2024.5 for details.
|
- `halloy` has been updated to 2024.5, which introduced a breaking change by switching the config format from YAML to TOML. See <https://github.com/squidowl/halloy/releases/tag/2024.5> for details.
|
||||||
|
|
||||||
- `hvm` was updated to version 2.
|
- `hvm` was updated to version 2.
|
||||||
|
|
||||||
@@ -308,7 +316,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
|||||||
|
|
||||||
- `idris2` was updated to v0.7.0. This version introduces breaking changes. Check out the [changelog](https://github.com/idris-lang/Idris2/blob/v0.7.0/CHANGELOG.md#v070) for details.
|
- `idris2` was updated to v0.7.0. This version introduces breaking changes. Check out the [changelog](https://github.com/idris-lang/Idris2/blob/v0.7.0/CHANGELOG.md#v070) for details.
|
||||||
|
|
||||||
- `inetutils` now has a lower priority to avoid shadowing the commonly used `util-linux`. If one wishes to restore the default priority, simply use `lib.setPrio 5 inetutils` or override with `meta.priority = 5`.
|
- `inetutils` now has a lower priority to avoid shadowing the commonly-used `util-linux`. If one wishes to restore the default priority, simply use `lib.setPrio 5 inetutils` or override with `meta.priority = 5`.
|
||||||
|
|
||||||
- `jdt-language-server` package now uses upstream's provided python wrapper instead of our own custom wrapper. This results in the following breaking and notable changes:
|
- `jdt-language-server` package now uses upstream's provided python wrapper instead of our own custom wrapper. This results in the following breaking and notable changes:
|
||||||
|
|
||||||
@@ -320,7 +328,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
|||||||
|
|
||||||
- `julia` environments can now be built with arbitrary packages from the ecosystem using the `.withPackages` function. For example: `julia.withPackages ["Plots"]`.
|
- `julia` environments can now be built with arbitrary packages from the ecosystem using the `.withPackages` function. For example: `julia.withPackages ["Plots"]`.
|
||||||
|
|
||||||
- `k3s` has been updated to version [v1.30](https://github.com/k3s-io/k3s/releases/tag/v1.30.0%2Bk3s1), previous supported versions are available under release specific names (e.g. k3s_1_27, k3s_1_28, and k3s_1_29) and present to help you migrate to the latest supported version. See [changelog and upgrade notes](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.30.md#changelog-since-v1290) for more information.
|
- `k3s` has been updated to version [v1.30](https://github.com/k3s-io/k3s/releases/tag/v1.30.0%2Bk3s1), previous supported versions are available under release-specific names (e.g. k3s_1_27, k3s_1_28, and k3s_1_29) in order to help you migrate to the latest supported version. See [changelog and upgrade notes](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.30.md#changelog-since-v1290) for more information.
|
||||||
|
|
||||||
- `k9s` was updated to v0.31. There have been various breaking changes in the config file format,
|
- `k9s` was updated to v0.31. There have been various breaking changes in the config file format,
|
||||||
check out the changelog of [v0.29](https://github.com/derailed/k9s/releases/tag/v0.29.0),
|
check out the changelog of [v0.29](https://github.com/derailed/k9s/releases/tag/v0.29.0),
|
||||||
@@ -334,12 +342,12 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
|||||||
|
|
||||||
- `livebook` package is now built as a `mix release` instead of an `escript`.
|
- `livebook` package is now built as a `mix release` instead of an `escript`.
|
||||||
This means that configuration now has to be done using [environment variables](https://hexdocs.pm/livebook/readme.html#environment-variables) instead of command line arguments.
|
This means that configuration now has to be done using [environment variables](https://hexdocs.pm/livebook/readme.html#environment-variables) instead of command line arguments.
|
||||||
This has the further implication that the `livebook` service configuration has changed:
|
This has the further consequence that the `livebook` service configuration has changed.
|
||||||
|
|
||||||
- `lua` interpreters default LUA_PATH and LUA_CPATH are not overriden by nixpkgs
|
- `lua` interpreters default LUA_PATH and LUA_CPATH are not overriden by nixpkgs
|
||||||
anymore, we patch LUA_ROOT instead which is more respectful to upstream.
|
anymore, we patch LUA_ROOT instead which is more respectful to upstream.
|
||||||
|
|
||||||
- `luarocks-packages-updater` has changed the .csv format used to define lua packages updates: `src` (URL towards a git repository) has now become `rockspec` (URL towards a rockspec) to remove ambiguity regarding which rockspec to use and simplify implementation.
|
- `luarocks-packages-updater`'s .csv format, used to define lua packages to be updated, has changed: `src` (URL of a git repository) has now become `rockspec` (URL of a rockspec) to remove ambiguity regarding which rockspec to use and simplify implementation.
|
||||||
|
|
||||||
- `mkosi` was updated to v22. Parts of the user interface have changed. Consult the
|
- `mkosi` was updated to v22. Parts of the user interface have changed. Consult the
|
||||||
release notes of [v19](https://github.com/systemd/mkosi/releases/tag/v19),
|
release notes of [v19](https://github.com/systemd/mkosi/releases/tag/v19),
|
||||||
@@ -349,7 +357,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
|||||||
|
|
||||||
- `mongodb-4_4` has been removed as it has reached end of life. Consequently, `unifi7` and `unifi8` now use MongoDB 5.0 by default.
|
- `mongodb-4_4` has been removed as it has reached end of life. Consequently, `unifi7` and `unifi8` now use MongoDB 5.0 by default.
|
||||||
|
|
||||||
- `mongodb-5_0` and newer requires a cpu with the avx instruction set to run.
|
- `mongodb-5_0` and newer requires a cpu with the AVX instruction set to run.
|
||||||
|
|
||||||
- `neo4j` has been updated to version 5. You may want to read the [release notes for Neo4j 5](https://neo4j.com/release-notes/database/neo4j-5/).
|
- `neo4j` has been updated to version 5. You may want to read the [release notes for Neo4j 5](https://neo4j.com/release-notes/database/neo4j-5/).
|
||||||
|
|
||||||
@@ -369,7 +377,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
|||||||
`CONFIG_FILE_NAME` includes `bpf_pinning`, `ematch_map`, `group`, `nl_protos`, `rt_dsfield`, `rt_protos`, `rt_realms`, `rt_scopes`, and `rt_tables`.
|
`CONFIG_FILE_NAME` includes `bpf_pinning`, `ematch_map`, `group`, `nl_protos`, `rt_dsfield`, `rt_protos`, `rt_realms`, `rt_scopes`, and `rt_tables`.
|
||||||
|
|
||||||
- `nextcloud26` has been removed since it's not maintained anymore by upstream. The latest available version of Nextcloud is now v29 (available as `pkgs.nextcloud29`). The installation logic is as follows:
|
- `nextcloud26` has been removed since it's not maintained anymore by upstream. The latest available version of Nextcloud is now v29 (available as `pkgs.nextcloud29`). The installation logic is as follows:
|
||||||
- If [`services.nextcloud.package`](#opt-services.nextcloud.package) is specified explicitly, this package will be installed (**recommended**)
|
- If [`services.nextcloud.package`](#opt-services.nextcloud.package) is specified explicitly, this package will be installed (**recommended**).
|
||||||
- If [`system.stateVersion`](#opt-system.stateVersion) is >=24.05, `pkgs.nextcloud29` will be installed by default.
|
- If [`system.stateVersion`](#opt-system.stateVersion) is >=24.05, `pkgs.nextcloud29` will be installed by default.
|
||||||
- If [`system.stateVersion`](#opt-system.stateVersion) is >=23.11, `pkgs.nextcloud27` will be installed by default.
|
- If [`system.stateVersion`](#opt-system.stateVersion) is >=23.11, `pkgs.nextcloud27` will be installed by default.
|
||||||
- Please note that an upgrade from v27 (or older) to v29 directly is not possible. Please upgrade to `nextcloud28` (or earlier) first. Nextcloud prohibits skipping major versions while upgrading. You can upgrade by declaring [`services.nextcloud.package = pkgs.nextcloud28;`](options.html#opt-services.nextcloud.package).
|
- Please note that an upgrade from v27 (or older) to v29 directly is not possible. Please upgrade to `nextcloud28` (or earlier) first. Nextcloud prohibits skipping major versions while upgrading. You can upgrade by declaring [`services.nextcloud.package = pkgs.nextcloud28;`](options.html#opt-services.nextcloud.package).
|
||||||
@@ -388,7 +396,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
|||||||
|
|
||||||
- `nomad_1_4` has been removed, as it is now unsupported upstream.
|
- `nomad_1_4` has been removed, as it is now unsupported upstream.
|
||||||
|
|
||||||
- `nvtop` family of packages was reorganized into nested attrset. `nvtop` has been renamed to `nvtopPackages.full`, and all `nvtop-{amd,nvidia,intel,msm}` packages are now named as `nvtopPackages.{amd,nvidia,intel,msm}`.
|
- `nvtop` family of packages was reorganized into a nested attrset. `nvtop` has been renamed to `nvtopPackages.full`, and all `nvtop-{amd,nvidia,intel,msm}` packages are renamed to `nvtopPackages.{amd,nvidia,intel,msm}`.
|
||||||
|
|
||||||
- `openssh`, `openssh_hpn` and `openssh_gssapi` are now compiled without support for the DSA signature algorithm as it is being deprecated upstream. Users still relying on DSA keys should consider upgrading
|
- `openssh`, `openssh_hpn` and `openssh_gssapi` are now compiled without support for the DSA signature algorithm as it is being deprecated upstream. Users still relying on DSA keys should consider upgrading
|
||||||
to another signature algorithm. However, for the time being it is possible to restore DSA key support using `override` to set `dsaKeysSupport = true`.
|
to another signature algorithm. However, for the time being it is possible to restore DSA key support using `override` to set `dsaKeysSupport = true`.
|
||||||
@@ -406,7 +414,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
|||||||
- `pipewire` and `wireplumber` modules have removed support for using
|
- `pipewire` and `wireplumber` modules have removed support for using
|
||||||
`environment.etc."pipewire/..."` and `environment.etc."wireplumber/..."`.
|
`environment.etc."pipewire/..."` and `environment.etc."wireplumber/..."`.
|
||||||
Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for PipeWire and
|
Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for PipeWire and
|
||||||
`services.pipewire.wireplumber.configPackages` for WirePlumber instead."
|
`services.pipewire.wireplumber.configPackages` for WirePlumber instead.
|
||||||
|
|
||||||
- `power.ups` now generates `upsd.conf`, `upsd.users` and `upsmon.conf` automatically from a set of new configuration options. This breaks compatibility with existing `power.ups` setups where these files were created manually. Back up these files before upgrading NixOS.
|
- `power.ups` now generates `upsd.conf`, `upsd.users` and `upsmon.conf` automatically from a set of new configuration options. This breaks compatibility with existing `power.ups` setups where these files were created manually. Back up these files before upgrading NixOS.
|
||||||
|
|
||||||
@@ -438,19 +446,19 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
|
|||||||
- `frr` was updated to 10.0, which introduces the default of `enforce-first-as` for BGP. Please disable again if needed.
|
- `frr` was updated to 10.0, which introduces the default of `enforce-first-as` for BGP. Please disable again if needed.
|
||||||
|
|
||||||
- `services.aria2.rpcSecret` has been replaced with `services.aria2.rpcSecretFile`.
|
- `services.aria2.rpcSecret` has been replaced with `services.aria2.rpcSecretFile`.
|
||||||
This was done so that secrets aren't stored in the world-readable nix store.
|
This was done so that secrets aren't stored in the world-readable Nix store.
|
||||||
To migrate, you will have to create a file with the same exact string, and change
|
To migrate, you will have to create a file with the same exact string, and change
|
||||||
your module options to point to that file. For example, `services.aria2.rpcSecret =
|
your module options to point to that file. For example, `services.aria2.rpcSecret =
|
||||||
"mysecret"` becomes `services.aria2.rpcSecretFile = "/path/to/secret_file"`
|
"mysecret"` becomes `services.aria2.rpcSecretFile = "/path/to/secret_file"`
|
||||||
where the file `secret_file` contains the string `mysecret`.
|
where the file `secret_file` contains the string `mysecret`.
|
||||||
|
|
||||||
- `services.avahi.nssmdns` got split into `services.avahi.nssmdns4` and `services.avahi.nssmdns6` which enable the mDNS NSS switch for IPv4 and IPv6 respectively.
|
- `services.avahi.nssmdns` was split into `services.avahi.nssmdns4` and `services.avahi.nssmdns6` which enable the mDNS NSS switches for IPv4 and IPv6 respectively.
|
||||||
Since most mDNS responders only register IPv4 addresses, most users want to keep the IPv6 support disabled to avoid long timeouts.
|
Since most mDNS responders only register IPv4 addresses, most users want to keep the IPv6 support disabled to avoid long timeouts.
|
||||||
|
|
||||||
- `services.frp.settings` now generates the frp configuration file in TOML format as [recommended by upstream](https://github.com/fatedier/frp#configuration-files), instead of the legacy INI format. This has also introduced other changes in the configuration file structure and options.
|
- `services.frp.settings` now generates the frp configuration file in TOML format as [recommended by upstream](https://github.com/fatedier/frp#configuration-files), instead of the legacy INI format. This has also introduced other changes in the configuration file structure and options:
|
||||||
- The `settings.common` section in the configuration is no longer valid and all the options form inside it now goes directly under `settings`.
|
- The `settings.common` section in the configuration is no longer valid and all the options form inside it now go directly under `settings`.
|
||||||
- The `_` separating words in the configuration options is removed so the options are now in camel case. For example: `server_addr` becomes `serverAddr`, `server_port` becomes `serverPort` etc.
|
- Configuration option names have been changed from snake_case to camelCase. For example: `server_addr` becomes `serverAddr`, `server_port` becomes `serverPort` etc.
|
||||||
- Proxies are now defined with a new option `settings.proxies` which takes a list of proxies.
|
- Proxies are now defined with a new option, `settings.proxies`, which takes a list of proxies.
|
||||||
- Consult the [upstream documentation](https://github.com/fatedier/frp#example-usage) for more details on the changes.
|
- Consult the [upstream documentation](https://github.com/fatedier/frp#example-usage) for more details on the changes.
|
||||||
|
|
||||||
- `services.hledger-web.capabilities` options has been replaced by a new option `services.hledger-web.allow`.
|
- `services.hledger-web.capabilities` options has been replaced by a new option `services.hledger-web.allow`.
|
||||||
@@ -505,13 +513,16 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
|
|||||||
|
|
||||||
- `services.redis.vmOverCommit` now defaults to `true` and no longer enforces Transparent Hugepages (THP) to be disabled. Redis only works with THP configured to `madvise` which is the kernel's default.
|
- `services.redis.vmOverCommit` now defaults to `true` and no longer enforces Transparent Hugepages (THP) to be disabled. Redis only works with THP configured to `madvise` which is the kernel's default.
|
||||||
|
|
||||||
- `services.resolved.fallbackDns` can now be used to disable the upstream fallback servers entirely by setting it to an empty list. To get the previous behaviour of the upstream defaults set it to null, the new default, instead.
|
- `services.resolved.fallbackDns`
|
||||||
|
- can now be used to disable the upstream fallback servers entirely by setting it to `[]`
|
||||||
|
- to get previous behaviour of upstream defaults, set it to `null`
|
||||||
|
- default value has changed from `[]` to `null`, in order to preserve default behaviour
|
||||||
|
|
||||||
- `services.vikunja` systemd service now uses `vikunja` as dynamic user instead of `vikunja-api`. Database users might need to be changed.
|
- `services.vikunja` systemd service now uses `vikunja` as dynamic user instead of `vikunja-api`. Database users might need to be changed.
|
||||||
|
|
||||||
- `services.vikunja.setupNginx` setting has been removed. Users now need to setup the webserver configuration on their own with a proxy pass to the vikunja service.
|
- `services.vikunja.setupNginx` setting has been removed. Users now need to set up the webserver configuration on their own with a proxy pass to the vikunja service.
|
||||||
|
|
||||||
- `services.vmagent` module deprecates `dataDir`, `group` and `user` setting in favor of systemd provided CacheDirectory and DynamicUser.
|
- `services.vmagent` module deprecates `dataDir`, `group` and `user` settings in favor of the systemd-provided CacheDirectory and DynamicUser.
|
||||||
|
|
||||||
- `services.vmagent.remoteWriteUrl` setting has been renamed to `services.vmagent.remoteWrite.url` and now defaults to `null`.
|
- `services.vmagent.remoteWriteUrl` setting has been renamed to `services.vmagent.remoteWrite.url` and now defaults to `null`.
|
||||||
|
|
||||||
@@ -526,16 +537,16 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
|
|||||||
|
|
||||||
- `system.forbiddenDependenciesRegex` has been renamed to `system.forbiddenDependenciesRegexes` and now has the type of `listOf string` instead of `string` to accept multiple regexes.
|
- `system.forbiddenDependenciesRegex` has been renamed to `system.forbiddenDependenciesRegexes` and now has the type of `listOf string` instead of `string` to accept multiple regexes.
|
||||||
|
|
||||||
- `systemd.oomd` module behavior is changed as:
|
- `systemd.oomd` module behavior has changed:
|
||||||
|
|
||||||
- Raise ManagedOOMMemoryPressureLimit from 50% to 80%. This should make systemd-oomd kill things less often, and fix issues like [this](https://pagure.io/fedora-workstation/issue/358).
|
- Raise ManagedOOMMemoryPressureLimit from 50% to 80%. This should make systemd-oomd kill things less often, and fix issues like [this](https://pagure.io/fedora-workstation/issue/358).
|
||||||
Reference: [commit](https://src.fedoraproject.org/rpms/systemd/c/806c95e1c70af18f81d499b24cd7acfa4c36ffd6?branch=806c95e1c70af18f81d499b24cd7acfa4c36ffd6).
|
Reference: [commit](https://src.fedoraproject.org/rpms/systemd/c/806c95e1c70af18f81d499b24cd7acfa4c36ffd6?branch=806c95e1c70af18f81d499b24cd7acfa4c36ffd6).
|
||||||
|
|
||||||
- Remove swap policy. This helps prevent killing processes when user's swap is small.
|
- Remove swap policy. This helps prevent killing processes when user's swap is small.
|
||||||
|
|
||||||
- Expand the memory pressure policy to system.slice, user-.slice, and all user owned slices. Reference: [commit](https://src.fedoraproject.org/rpms/systemd/c/7665e1796f915dedbf8e014f0a78f4f576d609bb).
|
- Expand the memory pressure policy to `system.slice`, `user-.slice`, and all user-owned slices. Reference: [commit](https://src.fedoraproject.org/rpms/systemd/c/7665e1796f915dedbf8e014f0a78f4f576d609bb).
|
||||||
|
|
||||||
- `systemd.oomd.enableUserServices` is renamed to `systemd.oomd.enableUserSlices`.
|
- Rename `systemd.oomd.enableUserServices` to `systemd.oomd.enableUserSlices`.
|
||||||
|
|
||||||
- `systemd.sysusers.enable` option was added. If enabled, users and
|
- `systemd.sysusers.enable` option was added. If enabled, users and
|
||||||
groups are created with systemd-sysusers instead of with a custom perl script.
|
groups are created with systemd-sysusers instead of with a custom perl script.
|
||||||
@@ -552,8 +563,6 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
|
|||||||
|
|
||||||
- `virtialisation.incus` now defaults to the newly-added `incus-lts` release (v6.0.x). Users who wish to continue using the non-LTS release will need to set `virtualisation.incus.package = pkgs.incus`. Stable release users are encouraged to stay on the LTS release as non-LTS releases will by default not be backported.
|
- `virtialisation.incus` now defaults to the newly-added `incus-lts` release (v6.0.x). Users who wish to continue using the non-LTS release will need to set `virtualisation.incus.package = pkgs.incus`. Stable release users are encouraged to stay on the LTS release as non-LTS releases will by default not be backported.
|
||||||
|
|
||||||
- [watchdogd](https://troglobit.com/projects/watchdogd/), a system and process supervisor using watchdog timers. Available as [services.watchdogd](#opt-services.watchdogd.enable).
|
|
||||||
|
|
||||||
- `woodpecker-*` packages have been updated to v2 which includes [breaking changes](https://woodpecker-ci.org/docs/next/migrations#200).
|
- `woodpecker-*` packages have been updated to v2 which includes [breaking changes](https://woodpecker-ci.org/docs/next/migrations#200).
|
||||||
|
|
||||||
- `wpaperd` has been updated to 1.0.1, which has a breaking change: previous version 0.3.0 had 2 different configuration files, one for wpaperd and one for the wallpapers. Remove the former and move the latter (`wallpaper.toml`) to `config.toml`.
|
- `wpaperd` has been updated to 1.0.1, which has a breaking change: previous version 0.3.0 had 2 different configuration files, one for wpaperd and one for the wallpapers. Remove the former and move the latter (`wallpaper.toml`) to `config.toml`.
|
||||||
@@ -566,11 +575,11 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
|
|||||||
|
|
||||||
- `xxd` has been moved from `vim` default output to its own output to reduce closure size. The canonical way to reference it across all platforms is `unixtools.xxd`.
|
- `xxd` has been moved from `vim` default output to its own output to reduce closure size. The canonical way to reference it across all platforms is `unixtools.xxd`.
|
||||||
|
|
||||||
- `youtrack` is bumped to 2023.3. The update is not performed automatically, it requires manual interaction. See the YouTrack section in the manual for details.
|
- `youtrack` was bumped to 2023.3. The update is not performed automatically, it requires manual interaction. See the YouTrack section in the manual for details.
|
||||||
|
|
||||||
- Ada packages (libraries and tools) have been moved into the `gnatPackages` scope. `gnatPackages` uses the default GNAT compiler, `gnat12Packages` and `gnat13Packages` use the respective matching compiler version.
|
- Ada packages (libraries and tools) have been moved into the `gnatPackages` scope. `gnatPackages` uses the default GNAT compiler, `gnat12Packages` and `gnat13Packages` use the respective matching compiler version.
|
||||||
|
|
||||||
- Paths provided as `restartTriggers` and `reloadTriggers` for systemd units will now be copied into the nix store to make the behavior consistent.
|
- Paths provided as `restartTriggers` and `reloadTriggers` for systemd units will now be copied into the Nix store to make the behavior consistent.
|
||||||
Previously, `restartTriggers = [ ./config.txt ]`, if defined in a flake, would trigger a restart when any part of the flake changed; and if not defined in a flake, would never trigger a restart even if the contents of `config.txt` changed.
|
Previously, `restartTriggers = [ ./config.txt ]`, if defined in a flake, would trigger a restart when any part of the flake changed; and if not defined in a flake, would never trigger a restart even if the contents of `config.txt` changed.
|
||||||
|
|
||||||
- A warning has been added for services that are
|
- A warning has been added for services that are
|
||||||
@@ -583,7 +592,7 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
|
|||||||
allows to restart multiple services that are ordered before sysinit.target
|
allows to restart multiple services that are ordered before sysinit.target
|
||||||
and respect the ordering between the services.
|
and respect the ordering between the services.
|
||||||
|
|
||||||
- The configuration format for `services.prometheus.exporters.snmp` changed with release 0.23.0.
|
- `services.prometheus.exporters.snmp`'s configuration format changed with release 0.23.0.
|
||||||
The module now includes an optional config check, that is enabled by default, to make the change obvious before any deployment.
|
The module now includes an optional config check, that is enabled by default, to make the change obvious before any deployment.
|
||||||
More information about the configuration syntax change is available in the [upstream repository](https://github.com/prometheus/snmp_exporter/blob/b75fc6b839ee3f3ccbee68bee55f1ae99555084a/auth-split-migration.md).
|
More information about the configuration syntax change is available in the [upstream repository](https://github.com/prometheus/snmp_exporter/blob/b75fc6b839ee3f3ccbee68bee55f1ae99555084a/auth-split-migration.md).
|
||||||
|
|
||||||
@@ -593,7 +602,7 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
|
|||||||
|
|
||||||
- `addDriverRunpath` has been added to facilitate the deprecation of the old `addOpenGLRunpath` setuphook. This change is motivated by the evolution of the setuphook to include all hardware acceleration.
|
- `addDriverRunpath` has been added to facilitate the deprecation of the old `addOpenGLRunpath` setuphook. This change is motivated by the evolution of the setuphook to include all hardware acceleration.
|
||||||
|
|
||||||
- `appimage`, `appimageTools.wrapAppImage` and `buildFHSEnvBubblewrap` now properly accepts `pname` and `version`.
|
- `appimage`, `appimageTools.wrapAppImage` and `buildFHSEnvBubblewrap` now properly accept `pname` and `version`.
|
||||||
|
|
||||||
- `bacula` now allows to configure `TLS` for encrypted communication.
|
- `bacula` now allows to configure `TLS` for encrypted communication.
|
||||||
|
|
||||||
@@ -608,18 +617,16 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
|
|||||||
- `buildDubPackage` can now be used to build Programs written in [D](https://dlang.org/) using the `dub` build system and package manager.
|
- `buildDubPackage` can now be used to build Programs written in [D](https://dlang.org/) using the `dub` build system and package manager.
|
||||||
See the [D section](https://nixos.org/manual/nixpkgs/unstable#dlang) in the manual for more information.
|
See the [D section](https://nixos.org/manual/nixpkgs/unstable#dlang) in the manual for more information.
|
||||||
|
|
||||||
- `castopod` has some migration actions to be taken in case of a S3 setup. Some new features may also need some manual migration actions. See [https://code.castopod.org/adaures/castopod/-/releases](https://code.castopod.org/adaures/castopod/-/releases) for more informations.
|
- `castopod` has some migration actions to be taken in case of a S3 setup. Some new features may also need some manual migration actions. See [https://code.castopod.org/adaures/castopod/-/releases](https://code.castopod.org/adaures/castopod/-/releases) for more information.
|
||||||
|
|
||||||
- `cinnamon` has been updated to 6.0. Please beware that the [Wayland session](https://blog.linuxmint.com/?p=4591) is still experimental in this release and could potentially [affect Xorg sessions](https://blog.linuxmint.com/?p=4639). We suggest a reboot when switching between sessions.
|
- `documentation.man.mandoc` now, by default, uses `MANPATH` to set the directories where mandoc will search for manual pages.
|
||||||
|
|
||||||
- `documentation.man.mandoc` now by default uses `MANPATH` to set the directories where mandoc will search for manual pages.
|
|
||||||
This enables mandoc to find manual pages in Nix profiles. To set the manual search paths via the `mandoc.conf` configuration file like before, use `documentation.man.mandoc.settings.manpath` instead.
|
This enables mandoc to find manual pages in Nix profiles. To set the manual search paths via the `mandoc.conf` configuration file like before, use `documentation.man.mandoc.settings.manpath` instead.
|
||||||
|
|
||||||
- `drbd` out-of-tree Linux kernel driver has been added in version 9.2.7. With it the DRBD 9.x features can be used instead of the 8.x features provided by the 8.4.11 in-tree driver.
|
- `drbd` out-of-tree Linux kernel driver has been added in version 9.2.7. With it the DRBD 9.x features can be used instead of the 8.x features provided by the 8.4.11 in-tree driver.
|
||||||
|
|
||||||
- `garage` has been updated to v1.x.x. Users should read the [upstream release notes](https://git.deuxfleurs.fr/Deuxfleurs/garage/releases/tag/v1.0.0) and follow the documentation when changing over their `services.garage.package` and performing this manual upgrade.
|
- `garage` has been updated to v1.x.x. Users should read the [upstream release notes](https://git.deuxfleurs.fr/Deuxfleurs/garage/releases/tag/v1.0.0) and follow the documentation when changing over their `services.garage.package` and performing this manual upgrade.
|
||||||
|
|
||||||
- `hardware.pulseaudio` module now sets permission of pulse user home directory to 755 when running in "systemWide" mode. It fixes [issue 114399](https://github.com/NixOS/nixpkgs/issues/114399).
|
- `hardware.pulseaudio` module now sets permissions of pulse user home directory to 755 when running in systemWide mode. It fixes [issue 114399](https://github.com/NixOS/nixpkgs/issues/114399).
|
||||||
|
|
||||||
- `kavita` has been updated to 0.8.0, requiring a manual forced library scan on all libraries for migration. Refer to upstream's [release notes](https://github.com/Kareadita/Kavita/releases/tag/v0.8.0) for details.
|
- `kavita` has been updated to 0.8.0, requiring a manual forced library scan on all libraries for migration. Refer to upstream's [release notes](https://github.com/Kareadita/Kavita/releases/tag/v0.8.0) for details.
|
||||||
|
|
||||||
@@ -627,7 +634,7 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
|
|||||||
|
|
||||||
- `libass` now uses the native CoreText backend on Darwin, which may fix subtitle rendering issues with `mpv`, `ffmpeg`, etc.
|
- `libass` now uses the native CoreText backend on Darwin, which may fix subtitle rendering issues with `mpv`, `ffmpeg`, etc.
|
||||||
|
|
||||||
- `libjxl` version bumped from 0.8.2 to 0.9.1 [dropped support for the butteraugli API](https://github.com/libjxl/libjxl/pull/2576). You will no longer be able to set `enableButteraugli` on `libaom`.
|
- `libjxl` version was bumped from 0.8.2 to 0.9.1 [dropped support for the butteraugli API](https://github.com/libjxl/libjxl/pull/2576). You will no longer be able to set `enableButteraugli` on `libaom`.
|
||||||
|
|
||||||
- [`lilypond`](https://lilypond.org/index.html) and [`denemo`](https://www.denemo.org) are now compiled with Guile 3.0.
|
- [`lilypond`](https://lilypond.org/index.html) and [`denemo`](https://www.denemo.org) are now compiled with Guile 3.0.
|
||||||
|
|
||||||
@@ -640,9 +647,9 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
|
|||||||
|
|
||||||
- `mpich` now requires `withPm` to be a list, e.g. `"hydra:gforker"` becomes `[ "hydra" "gforker" ]`.
|
- `mpich` now requires `withPm` to be a list, e.g. `"hydra:gforker"` becomes `[ "hydra" "gforker" ]`.
|
||||||
|
|
||||||
- `nextcloud-setup.service` no longer changes the group of each file & directory inside `/var/lib/nextcloud/{config,data,store-apps}` if one of these directories has the wrong owner group. This was part of transitioning the group used for `/var/lib/nextcloud`, but isn't necessary anymore.
|
- `nextcloud-setup.service` no longer changes the group of each file and directory inside `/var/lib/nextcloud/{config,data,store-apps}` if one of these directories has the wrong owner group. This was part of transitioning the group used for `/var/lib/nextcloud`, but isn't necessary anymore.
|
||||||
|
|
||||||
- `oils-for-unix`, the oil shell's c++ version is now available. The python version is still available as `oil`.
|
- `oils-for-unix`, the oil shell's C++ version is now available. The Python version is still available as `oil`.
|
||||||
|
|
||||||
- `pkgsExtraHardening`, a new top-level package set, was added. This is a set of packages built with stricter hardening flags - those that have not yet received enough testing to be applied universally, those that are more likely to cause build failures or those that have drawbacks to their use (e.g. performance or required hardware features).
|
- `pkgsExtraHardening`, a new top-level package set, was added. This is a set of packages built with stricter hardening flags - those that have not yet received enough testing to be applied universally, those that are more likely to cause build failures or those that have drawbacks to their use (e.g. performance or required hardware features).
|
||||||
|
|
||||||
@@ -663,7 +670,7 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
|
|||||||
|
|
||||||
- `services.github-runner` module has been removed. To configure a single GitHub Actions Runner refer to `services.github-runners.*`. Note that this will trigger a new runner registration.
|
- `services.github-runner` module has been removed. To configure a single GitHub Actions Runner refer to `services.github-runners.*`. Note that this will trigger a new runner registration.
|
||||||
|
|
||||||
- `services.networkmanager.extraConfig` was renamed to `services.networkmanager.settings` and was changed to use the ini type instead of using a multiline string.
|
- `services.networkmanager.extraConfig` was renamed to `services.networkmanager.settings` and changed to use the ini type instead of using a multiline string.
|
||||||
|
|
||||||
- `services.nextcloud.config.dbport` option of the Nextcloud module was removed to match upstream.
|
- `services.nextcloud.config.dbport` option of the Nextcloud module was removed to match upstream.
|
||||||
The port can be specified in [`services.nextcloud.config.dbhost`](#opt-services.nextcloud.config.dbhost).
|
The port can be specified in [`services.nextcloud.config.dbhost`](#opt-services.nextcloud.config.dbhost).
|
||||||
@@ -691,7 +698,7 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
|
|||||||
|
|
||||||
- `services.paperless` module no longer uses the previously downloaded NLTK data stored in `/var/cache/paperless/nltk`. This directory can be removed.
|
- `services.paperless` module no longer uses the previously downloaded NLTK data stored in `/var/cache/paperless/nltk`. This directory can be removed.
|
||||||
|
|
||||||
- `services.postgresql.extraPlugins` changed its type from just a list of packages to also a function that returns such a list.
|
- `services.postgresql.extraPlugins`' type has expanded. Previously it was a list of packages, now it can also be a function that returns such a list.
|
||||||
For example a config line like ``services.postgresql.extraPlugins = with pkgs.postgresql_11.pkgs; [ postgis ];`` is recommended to be changed to ``services.postgresql.extraPlugins = ps: with ps; [ postgis ];``;
|
For example a config line like ``services.postgresql.extraPlugins = with pkgs.postgresql_11.pkgs; [ postgis ];`` is recommended to be changed to ``services.postgresql.extraPlugins = ps: with ps; [ postgis ];``;
|
||||||
|
|
||||||
- `services.slskd` has been refactored to include more configuation options in
|
- `services.slskd` has been refactored to include more configuation options in
|
||||||
@@ -711,7 +718,7 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
|
|||||||
- `services.zfs.zed.enableMail` now uses the global `sendmail` wrapper defined by an email module
|
- `services.zfs.zed.enableMail` now uses the global `sendmail` wrapper defined by an email module
|
||||||
(such as msmtp or Postfix). It no longer requires using a special ZFS build with email support.
|
(such as msmtp or Postfix). It no longer requires using a special ZFS build with email support.
|
||||||
|
|
||||||
- `sonarr` version bumped to from 3.0.10 to 4.0.3. Consequently existing config database files will be upgraded automatically, but note that some old apparently-working configs [might actually be corrupt and fail to upgrade cleanly](https://forums.sonarr.tv/t/sonarr-v4-released/33089).
|
- `sonarr` version was bumped to from 3.0.10 to 4.0.3. Consequently existing config database files will be upgraded automatically, but note that some old apparently-working configs [might actually be corrupt and fail to upgrade cleanly](https://forums.sonarr.tv/t/sonarr-v4-released/33089).
|
||||||
|
|
||||||
- `stdenv`: The `--replace` flag in `substitute`, `substituteInPlace`, `substituteAll`, `substituteAllStream`, and `substituteStream` is now deprecated if favor of the new `--replace-fail`, `--replace-warn` and `--replace-quiet`. The deprecated `--replace` equates to `--replace-warn`.
|
- `stdenv`: The `--replace` flag in `substitute`, `substituteInPlace`, `substituteAll`, `substituteAllStream`, and `substituteStream` is now deprecated if favor of the new `--replace-fail`, `--replace-warn` and `--replace-quiet`. The deprecated `--replace` equates to `--replace-warn`.
|
||||||
|
|
||||||
@@ -741,8 +748,8 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
|
|||||||
|
|
||||||
- A new hardening flag, `trivialautovarinit` was made available, corresponding to the gcc/clang option `-ftrivial-auto-var-init=pattern`.
|
- A new hardening flag, `trivialautovarinit` was made available, corresponding to the gcc/clang option `-ftrivial-auto-var-init=pattern`.
|
||||||
|
|
||||||
- New options were added to the dnsdist module to enable and configure a DNSCrypt endpoint (see `services.dnsdist.dnscrypt.enable`, etc.).
|
- `dnsdist` has new options to enable and configure a DNSCrypt endpoint (see `services.dnsdist.dnscrypt.enable`, etc.).
|
||||||
The module can generate the DNSCrypt provider key pair, certificates and also performs their rotation automatically with no downtime.
|
The module can generate the DNSCrypt provider key pair and certificates, and also rotates them automatically with no downtime.
|
||||||
|
|
||||||
- The kernel Yama LSM is now enabled by default, which prevents ptracing
|
- The kernel Yama LSM is now enabled by default, which prevents ptracing
|
||||||
non-child processes. This means you will not be able to attach gdb to an
|
non-child processes. This means you will not be able to attach gdb to an
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ in
|
|||||||
defaultChannel = mkOption {
|
defaultChannel = mkOption {
|
||||||
internal = true;
|
internal = true;
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "https://nixos.org/channels/nixos-unstable";
|
default = "https://nixos.org/channels/nixos-24.05";
|
||||||
description = "Default NixOS channel to which the root user is subscribed.";
|
description = "Default NixOS channel to which the root user is subscribed.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -54,10 +54,11 @@ with lib;
|
|||||||
intel-vaapi-driver = super.intel-vaapi-driver.override { enableGui = false; };
|
intel-vaapi-driver = super.intel-vaapi-driver.override { enableGui = false; };
|
||||||
libdevil = super.libdevil-nox;
|
libdevil = super.libdevil-nox;
|
||||||
libextractor = super.libextractor.override { gtkSupport = false; };
|
libextractor = super.libextractor.override { gtkSupport = false; };
|
||||||
|
libplacebo = super.libplacebo.override { vulkanSupport = false; };
|
||||||
libva = super.libva-minimal;
|
libva = super.libva-minimal;
|
||||||
limesuite = super.limesuite.override { withGui = false; };
|
limesuite = super.limesuite.override { withGui = false; };
|
||||||
mc = super.mc.override { x11Support = false; };
|
mc = super.mc.override { x11Support = false; };
|
||||||
mpv-unwrapped = super.mpv-unwrapped.override { sdl2Support = false; x11Support = false; waylandSupport = false; };
|
mpv-unwrapped = super.mpv-unwrapped.override { drmSupport = false; screenSaverSupport = false; sdl2Support = false; vulkanSupport = false; waylandSupport = false; x11Support = false; };
|
||||||
msmtp = super.msmtp.override { withKeyring = false; };
|
msmtp = super.msmtp.override { withKeyring = false; };
|
||||||
mupdf = super.mupdf.override { enableGL = false; enableX11 = false; };
|
mupdf = super.mupdf.override { enableGL = false; enableX11 = false; };
|
||||||
neofetch = super.neofetch.override { x11Support = false; };
|
neofetch = super.neofetch.override { x11Support = false; };
|
||||||
|
|||||||
@@ -39,7 +39,8 @@ with lib;
|
|||||||
|
|
||||||
# !!! Hack - attributes expected by other modules.
|
# !!! Hack - attributes expected by other modules.
|
||||||
environment.systemPackages = [ pkgs.grub2_efi ]
|
environment.systemPackages = [ pkgs.grub2_efi ]
|
||||||
++ (lib.optionals (pkgs.stdenv.hostPlatform.system != "aarch64-linux") [pkgs.grub2 pkgs.syslinux]);
|
++ (lib.optionals (lib.meta.availableOn pkgs.stdenv.hostPlatform pkgs.syslinux)
|
||||||
|
[pkgs.grub2 pkgs.syslinux]);
|
||||||
|
|
||||||
fileSystems."/" = mkImageMediaOverride
|
fileSystems."/" = mkImageMediaOverride
|
||||||
{ fsType = "tmpfs";
|
{ fsType = "tmpfs";
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ let
|
|||||||
HOME_URL = optionalString isNixos "https://nixos.org/";
|
HOME_URL = optionalString isNixos "https://nixos.org/";
|
||||||
DOCUMENTATION_URL = optionalString isNixos "https://nixos.org/learn.html";
|
DOCUMENTATION_URL = optionalString isNixos "https://nixos.org/learn.html";
|
||||||
SUPPORT_URL = optionalString isNixos "https://nixos.org/community.html";
|
SUPPORT_URL = optionalString isNixos "https://nixos.org/community.html";
|
||||||
|
SUPPORT_END = "2024-12-31";
|
||||||
BUG_REPORT_URL = optionalString isNixos "https://github.com/NixOS/nixpkgs/issues";
|
BUG_REPORT_URL = optionalString isNixos "https://github.com/NixOS/nixpkgs/issues";
|
||||||
ANSI_COLOR = optionalString isNixos "1;34";
|
ANSI_COLOR = optionalString isNixos "1;34";
|
||||||
IMAGE_ID = optionalString (config.system.image.id != null) config.system.image.id;
|
IMAGE_ID = optionalString (config.system.image.id != null) config.system.image.id;
|
||||||
|
|||||||
@@ -218,6 +218,7 @@
|
|||||||
./programs/kbdlight.nix
|
./programs/kbdlight.nix
|
||||||
./programs/kclock.nix
|
./programs/kclock.nix
|
||||||
./programs/kdeconnect.nix
|
./programs/kdeconnect.nix
|
||||||
|
./programs/ladybird.nix
|
||||||
./programs/lazygit.nix
|
./programs/lazygit.nix
|
||||||
./programs/kubeswitch.nix
|
./programs/kubeswitch.nix
|
||||||
./programs/less.nix
|
./programs/less.nix
|
||||||
@@ -293,6 +294,7 @@
|
|||||||
./programs/virt-manager.nix
|
./programs/virt-manager.nix
|
||||||
./programs/wavemon.nix
|
./programs/wavemon.nix
|
||||||
./programs/wayland/cardboard.nix
|
./programs/wayland/cardboard.nix
|
||||||
|
./programs/wayland/hyprlock.nix
|
||||||
./programs/wayland/hyprland.nix
|
./programs/wayland/hyprland.nix
|
||||||
./programs/wayland/labwc.nix
|
./programs/wayland/labwc.nix
|
||||||
./programs/wayland/river.nix
|
./programs/wayland/river.nix
|
||||||
@@ -1325,6 +1327,7 @@
|
|||||||
./services/video/unifi-video.nix
|
./services/video/unifi-video.nix
|
||||||
./services/video/v4l2-relayd.nix
|
./services/video/v4l2-relayd.nix
|
||||||
./services/wayland/cage.nix
|
./services/wayland/cage.nix
|
||||||
|
./services/wayland/hypridle.nix
|
||||||
./services/web-apps/akkoma.nix
|
./services/web-apps/akkoma.nix
|
||||||
./services/web-apps/alps.nix
|
./services/web-apps/alps.nix
|
||||||
./services/web-apps/anuko-time-tracker.nix
|
./services/web-apps/anuko-time-tracker.nix
|
||||||
|
|||||||
@@ -48,9 +48,11 @@ in
|
|||||||
|
|
||||||
# Nvidia support
|
# Nvidia support
|
||||||
(lib.mkIf cfg.nvidiaSupport {
|
(lib.mkIf cfg.nvidiaSupport {
|
||||||
systemd.services.coolercontrold.path = with config.boot.kernelPackages; [
|
systemd.services.coolercontrold.path = let
|
||||||
nvidia_x11 # nvidia-smi
|
nvidiaPkg = config.hardware.nvidia.package;
|
||||||
nvidia_x11.settings # nvidia-settings
|
in [
|
||||||
|
nvidiaPkg # nvidia-smi
|
||||||
|
nvidiaPkg.settings # nvidia-settings
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
]);
|
]);
|
||||||
|
|||||||
14
nixos/modules/programs/ladybird.nix
Normal file
14
nixos/modules/programs/ladybird.nix
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.programs.ladybird;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
programs.ladybird.enable = lib.mkEnableOption "the Ladybird web browser";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
environment.systemPackages = [ pkgs.ladybird ];
|
||||||
|
fonts.fontDir.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -53,6 +53,7 @@ in {
|
|||||||
then [ package ] ++ extraPackages
|
then [ package ] ++ extraPackages
|
||||||
else [ package32 ] ++ extraPackages32;
|
else [ package32 ] ++ extraPackages32;
|
||||||
in prevLibs ++ additionalLibs;
|
in prevLibs ++ additionalLibs;
|
||||||
|
extraPkgs = p: (cfg.extraPackages ++ lib.optionals (prev ? extraPkgs) (prev.extraPkgs p));
|
||||||
} // lib.optionalAttrs (cfg.gamescopeSession.enable && gamescopeCfg.capSysNice)
|
} // lib.optionalAttrs (cfg.gamescopeSession.enable && gamescopeCfg.capSysNice)
|
||||||
{
|
{
|
||||||
buildFHSEnv = pkgs.buildFHSEnv.override {
|
buildFHSEnv = pkgs.buildFHSEnv.override {
|
||||||
@@ -69,6 +70,19 @@ in {
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extraPackages = lib.mkOption {
|
||||||
|
type = lib.types.listOf lib.types.package;
|
||||||
|
default = [ ];
|
||||||
|
example = lib.literalExpression ''
|
||||||
|
with pkgs; [
|
||||||
|
gamescope
|
||||||
|
]
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
Additional packages to add to the Steam environment.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
extraCompatPackages = lib.mkOption {
|
extraCompatPackages = lib.mkOption {
|
||||||
type = lib.types.listOf lib.types.package;
|
type = lib.types.listOf lib.types.package;
|
||||||
default = [ ];
|
default = [ ];
|
||||||
|
|||||||
25
nixos/modules/programs/wayland/hyprlock.nix
Normal file
25
nixos/modules/programs/wayland/hyprlock.nix
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
{ lib, pkgs, config, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.programs.hyprlock;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.programs.hyprlock = {
|
||||||
|
enable = lib.mkEnableOption "hyprlock, Hyprland's GPU-accelerated screen locking utility";
|
||||||
|
package = lib.mkPackageOption pkgs "hyprlock" { };
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
environment.systemPackages = [
|
||||||
|
cfg.package
|
||||||
|
];
|
||||||
|
|
||||||
|
# Hyprlock needs Hypridle systemd service to be running to detect idle time
|
||||||
|
services.hypridle.enable = true;
|
||||||
|
|
||||||
|
# Hyprlock needs PAM access to authenticate, else it fallbacks to su
|
||||||
|
security.pam.services.hyprlock = {};
|
||||||
|
};
|
||||||
|
|
||||||
|
meta.maintainers = with lib.maintainers; [ johnrtitor ];
|
||||||
|
}
|
||||||
@@ -78,6 +78,7 @@ in {
|
|||||||
systemd.services.mopidy = {
|
systemd.services.mopidy = {
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
after = [ "network-online.target" "sound.target" ];
|
after = [ "network-online.target" "sound.target" ];
|
||||||
|
wants = [ "network-online.target" ];
|
||||||
description = "mopidy music player daemon";
|
description = "mopidy music player daemon";
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${mopidyEnv}/bin/mopidy --config ${concatStringsSep ":" ([mopidyConf] ++ cfg.extraConfigFiles)}";
|
ExecStart = "${mopidyEnv}/bin/mopidy --config ${concatStringsSep ":" ([mopidyConf] ++ cfg.extraConfigFiles)}";
|
||||||
|
|||||||
@@ -361,7 +361,7 @@ in {
|
|||||||
type = types.bool;
|
type = types.bool;
|
||||||
example = true;
|
example = true;
|
||||||
description = ''
|
description = ''
|
||||||
Set the `persistentTimer` option for the
|
Set the `Persistent` option for the
|
||||||
{manpage}`systemd.timer(5)`
|
{manpage}`systemd.timer(5)`
|
||||||
which triggers the backup immediately if the last trigger
|
which triggers the backup immediately if the last trigger
|
||||||
was missed (e.g. if the system was powered down).
|
was missed (e.g. if the system was powered down).
|
||||||
|
|||||||
@@ -335,7 +335,7 @@ in
|
|||||||
mkdir -m 0700 -p ${baseDir}/queue-runner
|
mkdir -m 0700 -p ${baseDir}/queue-runner
|
||||||
mkdir -m 0750 -p ${baseDir}/build-logs
|
mkdir -m 0750 -p ${baseDir}/build-logs
|
||||||
mkdir -m 0750 -p ${baseDir}/runcommand-logs
|
mkdir -m 0750 -p ${baseDir}/runcommand-logs
|
||||||
chown hydra-queue-runner.hydra \
|
chown hydra-queue-runner:hydra \
|
||||||
${baseDir}/queue-runner \
|
${baseDir}/queue-runner \
|
||||||
${baseDir}/build-logs \
|
${baseDir}/build-logs \
|
||||||
${baseDir}/runcommand-logs
|
${baseDir}/runcommand-logs
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ in {
|
|||||||
morph-browser
|
morph-browser
|
||||||
qtmir # not having its desktop file for Xwayland available causes any X11 application to crash the session
|
qtmir # not having its desktop file for Xwayland available causes any X11 application to crash the session
|
||||||
suru-icon-theme
|
suru-icon-theme
|
||||||
telephony-service
|
# telephony-service # currently broken: https://github.com/NixOS/nixpkgs/pull/314043
|
||||||
]);
|
]);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -75,7 +75,7 @@ in {
|
|||||||
ayatana-indicator-power
|
ayatana-indicator-power
|
||||||
ayatana-indicator-session
|
ayatana-indicator-session
|
||||||
]) ++ (with pkgs.lomiri; [
|
]) ++ (with pkgs.lomiri; [
|
||||||
telephony-service
|
# telephony-service # currently broken: https://github.com/NixOS/nixpkgs/pull/314043
|
||||||
] ++ lib.optionals config.networking.networkmanager.enable [
|
] ++ lib.optionals config.networking.networkmanager.enable [
|
||||||
lomiri-indicator-network
|
lomiri-indicator-network
|
||||||
]);
|
]);
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ let
|
|||||||
|
|
||||||
upstreamDoc = "See [the upstream documentation](https://github.com/jtroo/kanata/blob/main/docs/config.adoc) and [example config files](https://github.com/jtroo/kanata/tree/main/cfg_samples) for more information.";
|
upstreamDoc = "See [the upstream documentation](https://github.com/jtroo/kanata/blob/main/docs/config.adoc) and [example config files](https://github.com/jtroo/kanata/tree/main/cfg_samples) for more information.";
|
||||||
|
|
||||||
keyboard = {
|
keyboard = { name, config, ... }: {
|
||||||
options = {
|
options = {
|
||||||
devices = mkOption {
|
devices = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
@@ -48,6 +48,21 @@ let
|
|||||||
${upstreamDoc}
|
${upstreamDoc}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
configFile = mkOption {
|
||||||
|
type = types.path;
|
||||||
|
default = mkConfig name config;
|
||||||
|
defaultText =
|
||||||
|
"A config file generated by values from other kanata module options.";
|
||||||
|
description = ''
|
||||||
|
The config file.
|
||||||
|
|
||||||
|
By default, it is generated by values from other kanata
|
||||||
|
module options.
|
||||||
|
|
||||||
|
You can also set it to your own full config file which
|
||||||
|
overrides all other kanata module options. ${upstreamDoc}
|
||||||
|
'';
|
||||||
|
};
|
||||||
extraArgs = mkOption {
|
extraArgs = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [ ];
|
default = [ ];
|
||||||
@@ -85,6 +100,10 @@ let
|
|||||||
|
|
||||||
${keyboard.config}
|
${keyboard.config}
|
||||||
'';
|
'';
|
||||||
|
# Only the config file generated by this module is checked. A
|
||||||
|
# user-provided one is not checked because it may not be available
|
||||||
|
# at build time. I think this is a good balance between module
|
||||||
|
# complexity and functionality.
|
||||||
checkPhase = ''
|
checkPhase = ''
|
||||||
${getExe cfg.package} --cfg "$target" --check --debug
|
${getExe cfg.package} --cfg "$target" --check --debug
|
||||||
'';
|
'';
|
||||||
@@ -96,7 +115,7 @@ let
|
|||||||
Type = "notify";
|
Type = "notify";
|
||||||
ExecStart = ''
|
ExecStart = ''
|
||||||
${getExe cfg.package} \
|
${getExe cfg.package} \
|
||||||
--cfg ${mkConfig name keyboard} \
|
--cfg ${keyboard.configFile} \
|
||||||
--symlink-path ''${RUNTIME_DIRECTORY}/${name} \
|
--symlink-path ''${RUNTIME_DIRECTORY}/${name} \
|
||||||
${optionalString (keyboard.port != null) "--port ${toString keyboard.port}"} \
|
${optionalString (keyboard.port != null) "--port ${toString keyboard.port}"} \
|
||||||
${utils.escapeSystemdExecArgs keyboard.extraArgs}
|
${utils.escapeSystemdExecArgs keyboard.extraArgs}
|
||||||
|
|||||||
@@ -69,14 +69,18 @@
|
|||||||
virtualisation.docker.daemon.settings = lib.mkIf
|
virtualisation.docker.daemon.settings = lib.mkIf
|
||||||
(config.hardware.nvidia-container-toolkit.enable &&
|
(config.hardware.nvidia-container-toolkit.enable &&
|
||||||
(lib.versionAtLeast config.virtualisation.docker.package.version "25")) {
|
(lib.versionAtLeast config.virtualisation.docker.package.version "25")) {
|
||||||
features.cdi = true;
|
features.cdi = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware.nvidia-container-toolkit.mounts = let
|
hardware.nvidia-container-toolkit.mounts = let
|
||||||
nvidia-driver = config.hardware.nvidia.package;
|
nvidia-driver = config.hardware.nvidia.package;
|
||||||
in (lib.mkMerge [
|
in (lib.mkMerge [
|
||||||
[{ hostPath = pkgs.addDriverRunpath.driverLink;
|
[{ hostPath = pkgs.addDriverRunpath.driverLink;
|
||||||
containerPath = pkgs.addDriverRunpath.driverLink; }
|
containerPath = pkgs.addDriverRunpath.driverLink; }
|
||||||
|
{ hostPath = "${lib.getLib nvidia-driver}/etc";
|
||||||
|
containerPath = "${lib.getLib nvidia-driver}/etc"; }
|
||||||
|
{ hostPath = "${lib.getLib nvidia-driver}/share";
|
||||||
|
containerPath = "${lib.getLib nvidia-driver}/share"; }
|
||||||
{ hostPath = "${lib.getLib pkgs.glibc}/lib";
|
{ hostPath = "${lib.getLib pkgs.glibc}/lib";
|
||||||
containerPath = "${lib.getLib pkgs.glibc}/lib"; }
|
containerPath = "${lib.getLib pkgs.glibc}/lib"; }
|
||||||
{ hostPath = "${lib.getLib pkgs.glibc}/lib64";
|
{ hostPath = "${lib.getLib pkgs.glibc}/lib64";
|
||||||
|
|||||||
@@ -113,6 +113,9 @@ in
|
|||||||
nameValuePair "wyoming-faster-whisper-${server}" {
|
nameValuePair "wyoming-faster-whisper-${server}" {
|
||||||
inherit (options) enable;
|
inherit (options) enable;
|
||||||
description = "Wyoming faster-whisper server instance ${server}";
|
description = "Wyoming faster-whisper server instance ${server}";
|
||||||
|
wants = [
|
||||||
|
"network-online.target"
|
||||||
|
];
|
||||||
after = [
|
after = [
|
||||||
"network-online.target"
|
"network-online.target"
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -108,6 +108,9 @@ in
|
|||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
systemd.services."wyoming-openwakeword" = {
|
systemd.services."wyoming-openwakeword" = {
|
||||||
description = "Wyoming openWakeWord server";
|
description = "Wyoming openWakeWord server";
|
||||||
|
wants = [
|
||||||
|
"network-online.target"
|
||||||
|
];
|
||||||
after = [
|
after = [
|
||||||
"network-online.target"
|
"network-online.target"
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -117,6 +117,9 @@ in
|
|||||||
nameValuePair "wyoming-piper-${server}" {
|
nameValuePair "wyoming-piper-${server}" {
|
||||||
inherit (options) enable;
|
inherit (options) enable;
|
||||||
description = "Wyoming Piper server instance ${server}";
|
description = "Wyoming Piper server instance ${server}";
|
||||||
|
wants = [
|
||||||
|
"network-online.target"
|
||||||
|
];
|
||||||
after = [
|
after = [
|
||||||
"network-online.target"
|
"network-online.target"
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -70,7 +70,9 @@ in {
|
|||||||
storage.lookup = mkDefault "db";
|
storage.lookup = mkDefault "db";
|
||||||
storage.blob = mkDefault "blob";
|
storage.blob = mkDefault "blob";
|
||||||
resolver.type = mkDefault "system";
|
resolver.type = mkDefault "system";
|
||||||
resolver.public-suffix = mkDefault ["https://publicsuffix.org/list/public_suffix_list.dat"];
|
resolver.public-suffix = lib.mkDefault [
|
||||||
|
"file://${pkgs.publicsuffix-list}/share/publicsuffix/public_suffix_list.dat"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.stalwart-mail = {
|
systemd.services.stalwart-mail = {
|
||||||
|
|||||||
@@ -74,8 +74,9 @@ in
|
|||||||
# have 0600 permissions.
|
# have 0600 permissions.
|
||||||
preStart =
|
preStart =
|
||||||
''
|
''
|
||||||
cp ${cfg.secretFile} ${runtimeDir}/${secretsFileName}
|
${optionalString (!isNull cfg.secretFile)
|
||||||
chmod 0600 ${runtimeDir}/*${secretsFileName}
|
"install -Dm 0600 \${CREDENTIALS_DIRECTORY}/devpi-secret ${runtimeDir}/${secretsFileName}"
|
||||||
|
}
|
||||||
|
|
||||||
if [ -f ${serverDir}/.nodeinfo ]; then
|
if [ -f ${serverDir}/.nodeinfo ]; then
|
||||||
# already initialized the package index, exit gracefully
|
# already initialized the package index, exit gracefully
|
||||||
@@ -85,6 +86,9 @@ in
|
|||||||
+ strings.optionalString cfg.replica "--role=replica --master-url=${cfg.primaryUrl}";
|
+ strings.optionalString cfg.replica "--role=replica --master-url=${cfg.primaryUrl}";
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
|
LoadCredential = lib.mkIf (! isNull cfg.secretFile) [
|
||||||
|
"devpi-secret:${cfg.secretFile}"
|
||||||
|
];
|
||||||
Restart = "always";
|
Restart = "always";
|
||||||
ExecStart =
|
ExecStart =
|
||||||
let
|
let
|
||||||
|
|||||||
@@ -722,5 +722,5 @@ in
|
|||||||
timerConfig.OnCalendar = cfg.dump.interval;
|
timerConfig.OnCalendar = cfg.dump.interval;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
meta.maintainers = with lib.maintainers; [ srhb ma27 pyrox0 ];
|
meta.maintainers = with lib.maintainers; [ ma27 techknowlogick SuperSandro2000 ];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -98,6 +98,10 @@ in
|
|||||||
|
|
||||||
The OIDC secret must be set as the `DEX_CLIENT_''${id}` environment variable
|
The OIDC secret must be set as the `DEX_CLIENT_''${id}` environment variable
|
||||||
in the [](#opt-services.dex.environmentFile) setting.
|
in the [](#opt-services.dex.environmentFile) setting.
|
||||||
|
|
||||||
|
::: {.note}
|
||||||
|
Make sure the id only contains characters that are allowed in an environment variable name, e.g. no -.
|
||||||
|
:::
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ in
|
|||||||
type = types.bool;
|
type = types.bool;
|
||||||
example = true;
|
example = true;
|
||||||
description = ''
|
description = ''
|
||||||
Set the `persistentTimer` option for the
|
Set the `Persistent` option for the
|
||||||
{manpage}`systemd.timer(5)`
|
{manpage}`systemd.timer(5)`
|
||||||
which triggers the snapshot immediately if the last trigger
|
which triggers the snapshot immediately if the last trigger
|
||||||
was missed (e.g. if the system was powered down).
|
was missed (e.g. if the system was powered down).
|
||||||
|
|||||||
@@ -23,10 +23,9 @@ let
|
|||||||
"pbr"
|
"pbr"
|
||||||
"bfd"
|
"bfd"
|
||||||
"fabric"
|
"fabric"
|
||||||
"mgmt"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
allServices = services ++ [ "zebra" ];
|
allServices = services ++ [ "zebra" "mgmt" ];
|
||||||
|
|
||||||
isEnabled = service: cfg.${service}.enable;
|
isEnabled = service: cfg.${service}.enable;
|
||||||
|
|
||||||
@@ -137,6 +136,20 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
mgmt = (serviceOptions "mgmt") // {
|
||||||
|
enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = isEnabled "static";
|
||||||
|
defaultText = lib.literalExpression "config.services.frr.static.enable";
|
||||||
|
description = ''
|
||||||
|
Whether to enable the Configuration management daemon.
|
||||||
|
|
||||||
|
The Configuration management daemon is automatically
|
||||||
|
enabled if needed, at the moment this is when staticd
|
||||||
|
is enabled.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
{ options.services.frr = (genAttrs services serviceOptions); }
|
{ options.services.frr = (genAttrs services serviceOptions); }
|
||||||
@@ -164,7 +177,7 @@ in
|
|||||||
|
|
||||||
environment.etc = let
|
environment.etc = let
|
||||||
mkEtcLink = service: {
|
mkEtcLink = service: {
|
||||||
name = "frr/${service}.conf";
|
name = "frr/${daemonName service}.conf";
|
||||||
value.source = configFile service;
|
value.source = configFile service;
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
@@ -196,18 +209,18 @@ in
|
|||||||
unitConfig.Documentation = if service == "zebra" then "man:zebra(8)"
|
unitConfig.Documentation = if service == "zebra" then "man:zebra(8)"
|
||||||
else "man:${daemon}(8) man:zebra(8)";
|
else "man:${daemon}(8) man:zebra(8)";
|
||||||
|
|
||||||
restartTriggers = [
|
restartTriggers = mkIf (service != "mgmt") [
|
||||||
(configFile service)
|
(configFile service)
|
||||||
];
|
];
|
||||||
reloadIfChanged = true;
|
reloadIfChanged = (service != "mgmt");
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
PIDFile = "frr/${daemon}.pid";
|
PIDFile = "frr/${daemon}.pid";
|
||||||
ExecStart = "${pkgs.frr}/libexec/frr/${daemon} -f /etc/frr/${service}.conf"
|
ExecStart = "${pkgs.frr}/libexec/frr/${daemon}"
|
||||||
+ optionalString (scfg.vtyListenAddress != "") " -A ${scfg.vtyListenAddress}"
|
+ optionalString (scfg.vtyListenAddress != "") " -A ${scfg.vtyListenAddress}"
|
||||||
+ optionalString (scfg.vtyListenPort != null) " -P ${toString scfg.vtyListenPort}"
|
+ optionalString (scfg.vtyListenPort != null) " -P ${toString scfg.vtyListenPort}"
|
||||||
+ " " + (concatStringsSep " " scfg.extraOptions);
|
+ " " + (concatStringsSep " " scfg.extraOptions);
|
||||||
ExecReload = "${pkgs.python3.interpreter} ${pkgs.frr}/libexec/frr/frr-reload.py --reload --daemon ${daemonName service} --bindir ${pkgs.frr}/bin --rundir /run/frr /etc/frr/${service}.conf";
|
ExecReload = mkIf (service != "mgmt") "${pkgs.python3.interpreter} ${pkgs.frr}/libexec/frr/frr-reload.py --reload --daemon ${daemon} --bindir ${pkgs.frr}/bin --rundir /run/frr /etc/frr/${daemon}.conf";
|
||||||
Restart = "on-abnormal";
|
Restart = "on-abnormal";
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -278,6 +278,9 @@ in
|
|||||||
"https://kea.readthedocs.io/en/kea-${package.version}/arm/agent.html"
|
"https://kea.readthedocs.io/en/kea-${package.version}/arm/agent.html"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
wants = [
|
||||||
|
"network-online.target"
|
||||||
|
];
|
||||||
after = [
|
after = [
|
||||||
"network-online.target"
|
"network-online.target"
|
||||||
"time-sync.target"
|
"time-sync.target"
|
||||||
|
|||||||
@@ -260,6 +260,7 @@ in {
|
|||||||
description = "Sync timer for Bitwarden Directory Connector";
|
description = "Sync timer for Bitwarden Directory Connector";
|
||||||
wantedBy = ["timers.target"];
|
wantedBy = ["timers.target"];
|
||||||
after = ["network-online.target"];
|
after = ["network-online.target"];
|
||||||
|
wants = ["network-online.target"];
|
||||||
timerConfig = {
|
timerConfig = {
|
||||||
OnCalendar = cfg.interval;
|
OnCalendar = cfg.interval;
|
||||||
Unit = "bitwarden-directory-connector-cli.service";
|
Unit = "bitwarden-directory-connector-cli.service";
|
||||||
|
|||||||
@@ -83,6 +83,15 @@ in
|
|||||||
} ++ (lib.mapAttrsToList (vhost: conf: {
|
} ++ (lib.mapAttrsToList (vhost: conf: {
|
||||||
virtualHosts.${vhost} = {
|
virtualHosts.${vhost} = {
|
||||||
locations = {
|
locations = {
|
||||||
|
"/".extraConfig = ''
|
||||||
|
# pass information via X-User and X-Email headers to backend, requires running with --set-xauthrequest flag
|
||||||
|
proxy_set_header X-User $user;
|
||||||
|
proxy_set_header X-Email $email;
|
||||||
|
|
||||||
|
# if you enabled --cookie-refresh, this is needed for it to work with auth_request
|
||||||
|
add_header Set-Cookie $auth_cookie;
|
||||||
|
'';
|
||||||
|
|
||||||
"/oauth2/auth" = let
|
"/oauth2/auth" = let
|
||||||
maybeQueryArg = name: value:
|
maybeQueryArg = name: value:
|
||||||
if value == null then null
|
if value == null then null
|
||||||
@@ -102,6 +111,7 @@ in
|
|||||||
proxy_pass_request_body off;
|
proxy_pass_request_body off;
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
"@redirectToAuth2ProxyLogin" = {
|
"@redirectToAuth2ProxyLogin" = {
|
||||||
return = "307 https://${cfg.domain}/oauth2/start?rd=$scheme://$host$request_uri";
|
return = "307 https://${cfg.domain}/oauth2/start?rd=$scheme://$host$request_uri";
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
@@ -114,16 +124,10 @@ in
|
|||||||
auth_request /oauth2/auth;
|
auth_request /oauth2/auth;
|
||||||
error_page 401 = @redirectToAuth2ProxyLogin;
|
error_page 401 = @redirectToAuth2ProxyLogin;
|
||||||
|
|
||||||
# pass information via X-User and X-Email headers to backend,
|
# set variables being used in locations."/".extraConfig
|
||||||
# requires running with --set-xauthrequest flag
|
|
||||||
auth_request_set $user $upstream_http_x_auth_request_user;
|
auth_request_set $user $upstream_http_x_auth_request_user;
|
||||||
auth_request_set $email $upstream_http_x_auth_request_email;
|
auth_request_set $email $upstream_http_x_auth_request_email;
|
||||||
proxy_set_header X-User $user;
|
|
||||||
proxy_set_header X-Email $email;
|
|
||||||
|
|
||||||
# if you enabled --cookie-refresh, this is needed for it to work with auth_request
|
|
||||||
auth_request_set $auth_cookie $upstream_http_set_cookie;
|
auth_request_set $auth_cookie $upstream_http_set_cookie;
|
||||||
add_header Set-Cookie $auth_cookie;
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}) cfg.virtualHosts)));
|
}) cfg.virtualHosts)));
|
||||||
|
|||||||
@@ -427,10 +427,6 @@ in
|
|||||||
PrivateTmp = true;
|
PrivateTmp = true;
|
||||||
CacheDirectory = "frigate";
|
CacheDirectory = "frigate";
|
||||||
CacheDirectoryMode = "0750";
|
CacheDirectoryMode = "0750";
|
||||||
|
|
||||||
BindPaths = [
|
|
||||||
"/migrations:${cfg.package}/share/frigate/migrations:ro"
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
26
nixos/modules/services/wayland/hypridle.nix
Normal file
26
nixos/modules/services/wayland/hypridle.nix
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
{ lib, pkgs, config, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.services.hypridle;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.services.hypridle = {
|
||||||
|
enable = lib.mkEnableOption "hypridle, Hyprland's idle daemon";
|
||||||
|
package = lib.mkPackageOption pkgs "hypridle" { };
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
environment.systemPackages = [
|
||||||
|
cfg.package
|
||||||
|
];
|
||||||
|
|
||||||
|
systemd.user.services.hypridle = {
|
||||||
|
description = "Hypridle idle daemon";
|
||||||
|
wantedBy = [ "graphical-session.target" ];
|
||||||
|
partOf = [ "graphical-session.target" ];
|
||||||
|
script = lib.getExe cfg.package;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
meta.maintainers = with lib.maintainers; [ johnrtitor ];
|
||||||
|
}
|
||||||
@@ -3,8 +3,8 @@
|
|||||||
let
|
let
|
||||||
inherit (lib) optionalString mkDefault mkIf mkOption mkEnableOption literalExpression;
|
inherit (lib) optionalString mkDefault mkIf mkOption mkEnableOption literalExpression;
|
||||||
inherit (lib.types) nullOr attrsOf oneOf str int bool path package enum submodule;
|
inherit (lib.types) nullOr attrsOf oneOf str int bool path package enum submodule;
|
||||||
inherit (lib.strings) concatMapStringsSep removePrefix toShellVars removeSuffix hasSuffix;
|
inherit (lib.strings) concatLines removePrefix toShellVars removeSuffix hasSuffix;
|
||||||
inherit (lib.attrsets) attrValues genAttrs filterAttrs mapAttrs' nameValuePair;
|
inherit (lib.attrsets) mapAttrsToList attrValues genAttrs filterAttrs mapAttrs' nameValuePair;
|
||||||
inherit (builtins) isInt isString toString typeOf;
|
inherit (builtins) isInt isString toString typeOf;
|
||||||
|
|
||||||
cfg = config.services.firefly-iii;
|
cfg = config.services.firefly-iii;
|
||||||
@@ -21,18 +21,10 @@ let
|
|||||||
(filterAttrs (n: v: hasSuffix "_FILE" n) cfg.settings);
|
(filterAttrs (n: v: hasSuffix "_FILE" n) cfg.settings);
|
||||||
env-nonfile-values = filterAttrs (n: v: ! hasSuffix "_FILE" n) cfg.settings;
|
env-nonfile-values = filterAttrs (n: v: ! hasSuffix "_FILE" n) cfg.settings;
|
||||||
|
|
||||||
envfile = pkgs.writeText "firefly-iii-env" ''
|
|
||||||
${toShellVars env-file-values}
|
|
||||||
${toShellVars env-nonfile-values}
|
|
||||||
'';
|
|
||||||
|
|
||||||
fileenv-func = ''
|
fileenv-func = ''
|
||||||
cp --no-preserve=mode ${envfile} /tmp/firefly-iii-env
|
|
||||||
${concatMapStringsSep "\n"
|
|
||||||
(n: "${pkgs.replace-secret}/bin/replace-secret ${n} ${n} /tmp/firefly-iii-env")
|
|
||||||
(attrValues env-file-values)}
|
|
||||||
set -a
|
set -a
|
||||||
. /tmp/firefly-iii-env
|
${toShellVars env-nonfile-values}
|
||||||
|
${concatLines (mapAttrsToList (n: v: "${n}=\"$(< ${v})\"") env-file-values)}
|
||||||
set +a
|
set +a
|
||||||
'';
|
'';
|
||||||
|
|
||||||
@@ -41,15 +33,13 @@ let
|
|||||||
|
|
||||||
${optionalString (cfg.settings.DB_CONNECTION == "sqlite")
|
${optionalString (cfg.settings.DB_CONNECTION == "sqlite")
|
||||||
"touch ${cfg.dataDir}/storage/database/database.sqlite"}
|
"touch ${cfg.dataDir}/storage/database/database.sqlite"}
|
||||||
${artisan} migrate --seed --no-interaction --force
|
${artisan} package:discover
|
||||||
${artisan} firefly-iii:decrypt-all
|
|
||||||
${artisan} firefly-iii:upgrade-database
|
${artisan} firefly-iii:upgrade-database
|
||||||
${artisan} firefly-iii:correct-database
|
|
||||||
${artisan} firefly-iii:report-integrity
|
|
||||||
${artisan} firefly-iii:laravel-passport-keys
|
${artisan} firefly-iii:laravel-passport-keys
|
||||||
${artisan} cache:clear
|
${artisan} cache:clear
|
||||||
|
${artisan} view:cache
|
||||||
mv /tmp/firefly-iii-env /run/phpfpm/firefly-iii-env
|
${artisan} route:cache
|
||||||
|
${artisan} config:cache
|
||||||
'';
|
'';
|
||||||
|
|
||||||
commonServiceConfig = {
|
commonServiceConfig = {
|
||||||
@@ -146,6 +136,7 @@ in {
|
|||||||
|
|
||||||
virtualHost = mkOption {
|
virtualHost = mkOption {
|
||||||
type = str;
|
type = str;
|
||||||
|
default = "localhost";
|
||||||
description = ''
|
description = ''
|
||||||
The hostname at which you wish firefly-iii to be served. If you have
|
The hostname at which you wish firefly-iii to be served. If you have
|
||||||
enabled nginx using `services.firefly-iii.enableNginx` then this will
|
enabled nginx using `services.firefly-iii.enableNginx` then this will
|
||||||
@@ -170,14 +161,15 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
settings = mkOption {
|
settings = mkOption {
|
||||||
|
default = {};
|
||||||
description = ''
|
description = ''
|
||||||
Options for firefly-iii configuration. Refer to
|
Options for firefly-iii configuration. Refer to
|
||||||
<https://github.com/firefly-iii/firefly-iii/blob/main/.env.example> for
|
<https://github.com/firefly-iii/firefly-iii/blob/main/.env.example> for
|
||||||
details on supported values. All <option>_FILE values supported by
|
details on supported values. All <option>_FILE values supported by
|
||||||
upstream are supported here.
|
upstream are supported here.
|
||||||
|
|
||||||
APP_URL will be set by `services.firefly-iii.virtualHost`, do not
|
APP_URL will be the same as `services.firefly-iii.virtualHost` if the
|
||||||
redefine it here.
|
former is unset in `services.firefly-iii.settings`.
|
||||||
'';
|
'';
|
||||||
example = literalExpression ''
|
example = literalExpression ''
|
||||||
{
|
{
|
||||||
@@ -192,7 +184,6 @@ in {
|
|||||||
DB_PASSWORD_FILE = "/var/secrets/firefly-iii-mysql-password.txt;
|
DB_PASSWORD_FILE = "/var/secrets/firefly-iii-mysql-password.txt;
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
default = {};
|
|
||||||
type = submodule {
|
type = submodule {
|
||||||
freeformType = attrsOf (oneOf [str int bool]);
|
freeformType = attrsOf (oneOf [str int bool]);
|
||||||
options = {
|
options = {
|
||||||
@@ -216,9 +207,9 @@ in {
|
|||||||
};
|
};
|
||||||
DB_PORT = mkOption {
|
DB_PORT = mkOption {
|
||||||
type = nullOr int;
|
type = nullOr int;
|
||||||
default = if cfg.settings.DB_CONNECTION == "sqlite" then null
|
default = if cfg.settings.DB_CONNECTION == "pgsql" then 5432
|
||||||
else if cfg.settings.DB_CONNECTION == "mysql" then 3306
|
else if cfg.settings.DB_CONNECTION == "mysql" then 3306
|
||||||
else 5432;
|
else null;
|
||||||
defaultText = ''
|
defaultText = ''
|
||||||
`null` if DB_CONNECTION is "sqlite", `3306` if "mysql", `5432` if "pgsql"
|
`null` if DB_CONNECTION is "sqlite", `3306` if "mysql", `5432` if "pgsql"
|
||||||
'';
|
'';
|
||||||
@@ -227,6 +218,21 @@ in {
|
|||||||
this value to be filled.
|
this value to be filled.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
DB_HOST = mkOption {
|
||||||
|
type = str;
|
||||||
|
default = if cfg.settings.DB_CONNECTION == "pgsql" then "/run/postgresql"
|
||||||
|
else "localhost";
|
||||||
|
defaultText = ''
|
||||||
|
"localhost" if DB_CONNECTION is "sqlite" or "mysql", "/run/postgresql" if "pgsql".
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
The machine which hosts your database. This is left at the
|
||||||
|
default value for "mysql" because we use the "DB_SOCKET" option
|
||||||
|
to connect to a unix socket instead. "pgsql" requires that the
|
||||||
|
unix socket location be specified here instead of at "DB_SOCKET".
|
||||||
|
This option does not affect "sqlite".
|
||||||
|
'';
|
||||||
|
};
|
||||||
APP_KEY_FILE = mkOption {
|
APP_KEY_FILE = mkOption {
|
||||||
type = path;
|
type = path;
|
||||||
description = ''
|
description = ''
|
||||||
@@ -235,6 +241,20 @@ in {
|
|||||||
/dev/urandom | base64)" > /path/to/key-file`.
|
/dev/urandom | base64)" > /path/to/key-file`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
APP_URL = mkOption {
|
||||||
|
type = str;
|
||||||
|
default = if cfg.virtualHost == "localhost" then "http://${cfg.virtualHost}"
|
||||||
|
else "https://${cfg.virtualHost}";
|
||||||
|
defaultText = ''
|
||||||
|
http(s)://''${config.services.firefly-iii.virtualHost}
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
The APP_URL used by firefly-iii internally. Please make sure this
|
||||||
|
URL matches the external URL of your Firefly III installation. It
|
||||||
|
is used to validate specific requests and to generate URLs in
|
||||||
|
emails.
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -242,12 +262,6 @@ in {
|
|||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
services.firefly-iii = {
|
|
||||||
settings = {
|
|
||||||
APP_URL = cfg.virtualHost;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.phpfpm.pools.firefly-iii = {
|
services.phpfpm.pools.firefly-iii = {
|
||||||
inherit user group;
|
inherit user group;
|
||||||
phpPackage = cfg.package.phpPackage;
|
phpPackage = cfg.package.phpPackage;
|
||||||
@@ -262,29 +276,27 @@ in {
|
|||||||
} // cfg.poolConfig;
|
} // cfg.poolConfig;
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.phpfpm-firefly-iii.serviceConfig = {
|
|
||||||
EnvironmentFile = "/run/phpfpm/firefly-iii-env";
|
|
||||||
ExecStartPost = "${pkgs.coreutils}/bin/rm /run/phpfpm/firefly-iii-env";
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services.firefly-iii-setup = {
|
systemd.services.firefly-iii-setup = {
|
||||||
|
after = [ "postgresql.service" "mysql.service" ];
|
||||||
requiredBy = [ "phpfpm-firefly-iii.service" ];
|
requiredBy = [ "phpfpm-firefly-iii.service" ];
|
||||||
before = [ "phpfpm-firefly-iii.service" ];
|
before = [ "phpfpm-firefly-iii.service" ];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = firefly-iii-maintenance;
|
ExecStart = firefly-iii-maintenance;
|
||||||
RuntimeDirectory = "phpfpm";
|
RuntimeDirectory = "phpfpm";
|
||||||
RuntimeDirectoryPreserve = true;
|
RuntimeDirectoryPreserve = true;
|
||||||
|
RemainAfterExit = true;
|
||||||
} // commonServiceConfig;
|
} // commonServiceConfig;
|
||||||
unitConfig.JoinsNamespaceOf = "phpfpm-firefly-iii.service";
|
unitConfig.JoinsNamespaceOf = "phpfpm-firefly-iii.service";
|
||||||
|
restartTriggers = [ cfg.package ];
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.firefly-iii-cron = {
|
systemd.services.firefly-iii-cron = {
|
||||||
|
after = [ "firefly-iii-setup.service" "postgresql.service" "mysql.service" ];
|
||||||
|
wants = [ "firefly-iii-setup.service" ];
|
||||||
description = "Daily Firefly III cron job";
|
description = "Daily Firefly III cron job";
|
||||||
script = ''
|
serviceConfig = {
|
||||||
${fileenv-func}
|
ExecStart = "${artisan} firefly-iii:cron";
|
||||||
${artisan} firefly-iii:cron
|
} // commonServiceConfig;
|
||||||
'';
|
|
||||||
serviceConfig = commonServiceConfig;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.timers.firefly-iii-cron = {
|
systemd.timers.firefly-iii-cron = {
|
||||||
@@ -295,6 +307,7 @@ in {
|
|||||||
Persistent = true;
|
Persistent = true;
|
||||||
};
|
};
|
||||||
wantedBy = [ "timers.target" ];
|
wantedBy = [ "timers.target" ];
|
||||||
|
restartTriggers = [ cfg.package ];
|
||||||
};
|
};
|
||||||
|
|
||||||
services.nginx = mkIf cfg.enableNginx {
|
services.nginx = mkIf cfg.enableNginx {
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ let
|
|||||||
|
|
||||||
version = fileContents ../.version;
|
version = fileContents ../.version;
|
||||||
versionSuffix =
|
versionSuffix =
|
||||||
(if stableBranch then "." else "pre") + "${toString nixpkgs.revCount}.${nixpkgs.shortRev}";
|
(if stableBranch then "." else "beta") + "${toString (nixpkgs.revCount - 630170)}.${nixpkgs.shortRev}";
|
||||||
|
|
||||||
# Run the tests for each platform. You can run a test by doing
|
# Run the tests for each platform. You can run a test by doing
|
||||||
# e.g. ‘nix-build release.nix -A tests.login.x86_64-linux’,
|
# e.g. ‘nix-build release.nix -A tests.login.x86_64-linux’,
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ in {
|
|||||||
ayatana-indicator-session
|
ayatana-indicator-session
|
||||||
] ++ (with pkgs.lomiri; [
|
] ++ (with pkgs.lomiri; [
|
||||||
lomiri-indicator-network
|
lomiri-indicator-network
|
||||||
telephony-service
|
# telephony-service # currently broken: https://github.com/NixOS/nixpkgs/pull/314043
|
||||||
]);
|
]);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
|
|||||||
];
|
];
|
||||||
|
|
||||||
services.xserver.enable = true;
|
services.xserver.enable = true;
|
||||||
|
sound.enable = true;
|
||||||
environment.systemPackages = [ pkgs.domination ];
|
environment.systemPackages = [ pkgs.domination ];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -18,6 +19,9 @@ import ./make-test-python.nix ({ pkgs, ... }: {
|
|||||||
testScript =
|
testScript =
|
||||||
''
|
''
|
||||||
machine.wait_for_x()
|
machine.wait_for_x()
|
||||||
|
# Add a dummy sound card, or an error reporting popup will appear,
|
||||||
|
# covering the main window and preventing OCR
|
||||||
|
machine.execute("modprobe snd-dummy")
|
||||||
machine.execute("domination >&2 &")
|
machine.execute("domination >&2 &")
|
||||||
machine.wait_for_window("Menu")
|
machine.wait_for_window("Menu")
|
||||||
machine.wait_for_text(r"(New Game|Start Server|Load Game|Help Manual|Join Game|About|Play Online)")
|
machine.wait_for_text(r"(New Game|Start Server|Load Game|Help Manual|Join Game|About|Play Online)")
|
||||||
|
|||||||
@@ -1,14 +1,19 @@
|
|||||||
import ./make-test-python.nix ({ lib, pkgs, ... }: {
|
import ./make-test-python.nix ({ lib, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
db-pass = "Test2Test2";
|
||||||
|
app-key = "TestTestTestTestTestTestTestTest";
|
||||||
|
in
|
||||||
|
{
|
||||||
name = "firefly-iii";
|
name = "firefly-iii";
|
||||||
meta.maintainers = [ lib.maintainers.savyajha ];
|
meta.maintainers = [ lib.maintainers.savyajha ];
|
||||||
|
|
||||||
nodes.machine = { config, ... }: {
|
nodes.fireflySqlite = { config, ... }: {
|
||||||
environment.etc = {
|
environment.etc = {
|
||||||
"firefly-iii-appkey".text = "TestTestTestTestTestTestTestTest";
|
"firefly-iii-appkey".text = app-key;
|
||||||
};
|
};
|
||||||
services.firefly-iii = {
|
services.firefly-iii = {
|
||||||
enable = true;
|
enable = true;
|
||||||
virtualHost = "http://localhost";
|
|
||||||
enableNginx = true;
|
enableNginx = true;
|
||||||
settings = {
|
settings = {
|
||||||
APP_KEY_FILE = "/etc/firefly-iii-appkey";
|
APP_KEY_FILE = "/etc/firefly-iii-appkey";
|
||||||
@@ -18,9 +23,87 @@ import ./make-test-python.nix ({ lib, pkgs, ... }: {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nodes.fireflyPostgresql = { config, pkgs, ... }: {
|
||||||
|
environment.etc = {
|
||||||
|
"firefly-iii-appkey".text = app-key;
|
||||||
|
"postgres-pass".text = db-pass;
|
||||||
|
};
|
||||||
|
services.firefly-iii = {
|
||||||
|
enable = true;
|
||||||
|
enableNginx = true;
|
||||||
|
settings = {
|
||||||
|
APP_KEY_FILE = "/etc/firefly-iii-appkey";
|
||||||
|
LOG_CHANNEL = "stdout";
|
||||||
|
SITE_OWNER = "mail@example.com";
|
||||||
|
DB_CONNECTION = "pgsql";
|
||||||
|
DB_DATABASE = "firefly";
|
||||||
|
DB_USERNAME = "firefly";
|
||||||
|
DB_PASSWORD_FILE = "/etc/postgres-pass";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.postgresql = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.postgresql_15;
|
||||||
|
authentication = ''
|
||||||
|
local all postgres peer
|
||||||
|
local firefly firefly password
|
||||||
|
'';
|
||||||
|
initialScript = pkgs.writeText "firefly-init.sql" ''
|
||||||
|
CREATE USER "firefly" WITH LOGIN PASSWORD '${db-pass}';
|
||||||
|
CREATE DATABASE "firefly" WITH OWNER "firefly";
|
||||||
|
CREATE SCHEMA AUTHORIZATION firefly;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nodes.fireflyMysql = { config, pkgs, ... }: {
|
||||||
|
environment.etc = {
|
||||||
|
"firefly-iii-appkey".text = app-key;
|
||||||
|
"mysql-pass".text = db-pass;
|
||||||
|
};
|
||||||
|
services.firefly-iii = {
|
||||||
|
enable = true;
|
||||||
|
enableNginx = true;
|
||||||
|
settings = {
|
||||||
|
APP_KEY_FILE = "/etc/firefly-iii-appkey";
|
||||||
|
LOG_CHANNEL = "stdout";
|
||||||
|
SITE_OWNER = "mail@example.com";
|
||||||
|
DB_CONNECTION = "mysql";
|
||||||
|
DB_DATABASE = "firefly";
|
||||||
|
DB_USERNAME = "firefly";
|
||||||
|
DB_PASSWORD_FILE = "/etc/mysql-pass";
|
||||||
|
DB_SOCKET = "/run/mysqld/mysqld.sock";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.mysql = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.mariadb;
|
||||||
|
initialScript = pkgs.writeText "firefly-init.sql" ''
|
||||||
|
create database firefly DEFAULT CHARACTER SET utf8mb4;
|
||||||
|
create user 'firefly'@'localhost' identified by '${db-pass}';
|
||||||
|
grant all on firefly.* to 'firefly'@'localhost';
|
||||||
|
'';
|
||||||
|
settings.mysqld.character-set-server = "utf8mb4";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
testScript = ''
|
testScript = ''
|
||||||
machine.wait_for_unit("phpfpm-firefly-iii.service")
|
fireflySqlite.wait_for_unit("phpfpm-firefly-iii.service")
|
||||||
machine.wait_for_unit("nginx.service")
|
fireflySqlite.wait_for_unit("nginx.service")
|
||||||
machine.succeed("curl -fvvv -Ls http://localhost/ | grep 'Firefly III'")
|
fireflySqlite.succeed("curl -fvvv -Ls http://localhost/ | grep 'Firefly III'")
|
||||||
|
fireflySqlite.succeed("curl -fvvv -Ls http://localhost/v1/js/app.js")
|
||||||
|
fireflySqlite.succeed("systemctl start firefly-iii-cron.service")
|
||||||
|
fireflyPostgresql.wait_for_unit("phpfpm-firefly-iii.service")
|
||||||
|
fireflyPostgresql.wait_for_unit("nginx.service")
|
||||||
|
fireflyPostgresql.wait_for_unit("postgresql.service")
|
||||||
|
fireflyPostgresql.succeed("curl -fvvv -Ls http://localhost/ | grep 'Firefly III'")
|
||||||
|
fireflyPostgresql.succeed("systemctl start firefly-iii-cron.service")
|
||||||
|
fireflyMysql.wait_for_unit("phpfpm-firefly-iii.service")
|
||||||
|
fireflyMysql.wait_for_unit("nginx.service")
|
||||||
|
fireflyMysql.wait_for_unit("mysql.service")
|
||||||
|
fireflyMysql.succeed("curl -fvvv -Ls http://localhost/ | grep 'Firefly III'")
|
||||||
|
fireflyMysql.succeed("systemctl start firefly-iii-cron.service")
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -84,7 +84,6 @@ import ./make-test-python.nix (
|
|||||||
"dash-to-dock"
|
"dash-to-dock"
|
||||||
"dash-to-panel"
|
"dash-to-panel"
|
||||||
"ddterm"
|
"ddterm"
|
||||||
"emoji-selector"
|
|
||||||
"gsconnect"
|
"gsconnect"
|
||||||
"system-monitor-next"
|
"system-monitor-next"
|
||||||
"desktop-icons-ng-ding"
|
"desktop-icons-ng-ding"
|
||||||
@@ -138,11 +137,11 @@ import ./make-test-python.nix (
|
|||||||
# Enable and optionally disable
|
# Enable and optionally disable
|
||||||
|
|
||||||
machine.succeed(f"${run "gnome-extensions enable {extension}"}")
|
machine.succeed(f"${run "gnome-extensions enable {extension}"}")
|
||||||
checkState("ENABLED", extension)
|
checkState("ACTIVE", extension)
|
||||||
|
|
||||||
if disable:
|
if disable:
|
||||||
machine.succeed(f"${run "gnome-extensions disable {extension}"}")
|
machine.succeed(f"${run "gnome-extensions disable {extension}"}")
|
||||||
checkState("DISABLED", extension)
|
checkState("INACTIVE", extension)
|
||||||
''
|
''
|
||||||
+ lib.concatLines (map (e: ''checkExtension("${e}", False)'') alwaysOnExtensions)
|
+ lib.concatLines (map (e: ''checkExtension("${e}", False)'') alwaysOnExtensions)
|
||||||
+ lib.concatLines (map (e: ''checkExtension("${e}", True)'') testExtensions)
|
+ lib.concatLines (map (e: ''checkExtension("${e}", True)'') testExtensions)
|
||||||
|
|||||||
@@ -1,122 +1,147 @@
|
|||||||
# Rudimentary test checking that the Stalwart email server can:
|
# Rudimentary test checking that the Stalwart email server can:
|
||||||
# - receive some message through SMTP submission, then
|
# - receive some message through SMTP submission, then
|
||||||
# - serve this message through IMAP.
|
# - serve this message through IMAP.
|
||||||
|
{
|
||||||
|
system ? builtins.currentSystem,
|
||||||
|
config ? { },
|
||||||
|
pkgs ? import ../../.. { inherit system config; },
|
||||||
|
|
||||||
|
lib ? pkgs.lib,
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
certs = import ./common/acme/server/snakeoil-certs.nix;
|
certs = import ./common/acme/server/snakeoil-certs.nix;
|
||||||
domain = certs.domain;
|
domain = certs.domain;
|
||||||
|
makeTest = import ./make-test-python.nix;
|
||||||
|
mkTestName =
|
||||||
|
pkg: "${pkg.pname}_${pkg.version}";
|
||||||
|
stalwartPackages = {
|
||||||
|
inherit (pkgs) stalwart-mail_0_6 stalwart-mail;
|
||||||
|
};
|
||||||
|
stalwartAtLeast = lib.versionAtLeast;
|
||||||
|
makeStalwartTest =
|
||||||
|
{
|
||||||
|
package,
|
||||||
|
name ? mkTestName package,
|
||||||
|
}:
|
||||||
|
makeTest {
|
||||||
|
inherit name;
|
||||||
|
meta.maintainers = with lib.maintainers; [
|
||||||
|
happysalada pacien onny
|
||||||
|
];
|
||||||
|
|
||||||
in import ./make-test-python.nix ({ lib, ... }: {
|
nodes.machine = { lib, ... }: {
|
||||||
name = "stalwart-mail";
|
|
||||||
|
|
||||||
nodes.main = { pkgs, ... }: {
|
security.pki.certificateFiles = [ certs.ca.cert ];
|
||||||
security.pki.certificateFiles = [ certs.ca.cert ];
|
|
||||||
|
|
||||||
services.stalwart-mail = {
|
services.stalwart-mail = {
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
server.hostname = domain;
|
|
||||||
|
|
||||||
certificate."snakeoil" = {
|
|
||||||
cert = "file://${certs.${domain}.cert}";
|
|
||||||
private-key = "file://${certs.${domain}.key}";
|
|
||||||
};
|
|
||||||
|
|
||||||
server.tls = {
|
|
||||||
certificate = "snakeoil";
|
|
||||||
enable = true;
|
enable = true;
|
||||||
implicit = false;
|
inherit package;
|
||||||
};
|
settings = {
|
||||||
|
server.hostname = domain;
|
||||||
|
|
||||||
server.listener = {
|
# TODO: Remove backwards compatibility as soon as we drop legacy version 0.6.0
|
||||||
"smtp-submission" = {
|
certificate."snakeoil" = let
|
||||||
bind = [ "[::]:587" ];
|
certPath = if stalwartAtLeast package.version "0.7.0" then "%{file://${certs.${domain}.cert}}%" else "file://${certs.${domain}.cert}";
|
||||||
protocol = "smtp";
|
keyPath = if stalwartAtLeast package.version "0.7.0" then "%{file:${certs.${domain}.key}}%" else "file://${certs.${domain}.key}";
|
||||||
};
|
in {
|
||||||
|
cert = certPath;
|
||||||
|
private-key = keyPath;
|
||||||
|
};
|
||||||
|
|
||||||
"imap" = {
|
server.tls = {
|
||||||
bind = [ "[::]:143" ];
|
certificate = "snakeoil";
|
||||||
protocol = "imap";
|
enable = true;
|
||||||
|
implicit = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
server.listener = {
|
||||||
|
"smtp-submission" = {
|
||||||
|
bind = [ "[::]:587" ];
|
||||||
|
protocol = "smtp";
|
||||||
|
};
|
||||||
|
|
||||||
|
"imap" = {
|
||||||
|
bind = [ "[::]:143" ];
|
||||||
|
protocol = "imap";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
session.auth.mechanisms = "[plain]";
|
||||||
|
session.auth.directory = "'in-memory'";
|
||||||
|
storage.directory = "in-memory";
|
||||||
|
|
||||||
|
session.rcpt.directory = "'in-memory'";
|
||||||
|
queue.outbound.next-hop = "'local'";
|
||||||
|
|
||||||
|
directory."in-memory" = {
|
||||||
|
type = "memory";
|
||||||
|
# TODO: Remove backwards compatibility as soon as we drop legacy version 0.6.0
|
||||||
|
principals = let
|
||||||
|
condition = if stalwartAtLeast package.version "0.7.0" then "class" else "type";
|
||||||
|
in builtins.map (p: p // { ${condition} = "individual"; }) [
|
||||||
|
{
|
||||||
|
name = "alice";
|
||||||
|
secret = "foobar";
|
||||||
|
email = [ "alice@${domain}" ];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "bob";
|
||||||
|
secret = "foobar";
|
||||||
|
email = [ "bob@${domain}" ];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
resolver.public-suffix = [ ]; # do not fetch from web in sandbox
|
environment.systemPackages = [
|
||||||
|
(pkgs.writers.writePython3Bin "test-smtp-submission" { } ''
|
||||||
|
from smtplib import SMTP
|
||||||
|
|
||||||
session.auth.mechanisms = "[plain]";
|
with SMTP('localhost', 587) as smtp:
|
||||||
session.auth.directory = "'in-memory'";
|
smtp.starttls()
|
||||||
storage.directory = "in-memory";
|
smtp.login('alice', 'foobar')
|
||||||
|
smtp.sendmail(
|
||||||
|
'alice@${domain}',
|
||||||
|
'bob@${domain}',
|
||||||
|
"""
|
||||||
|
From: alice@${domain}
|
||||||
|
To: bob@${domain}
|
||||||
|
Subject: Some test message
|
||||||
|
|
||||||
session.rcpt.directory = "'in-memory'";
|
This is a test message.
|
||||||
queue.outbound.next-hop = "'local'";
|
""".strip()
|
||||||
|
)
|
||||||
|
'')
|
||||||
|
|
||||||
|
(pkgs.writers.writePython3Bin "test-imap-read" { } ''
|
||||||
|
from imaplib import IMAP4
|
||||||
|
|
||||||
|
with IMAP4('localhost') as imap:
|
||||||
|
imap.starttls()
|
||||||
|
status, [caps] = imap.login('bob', 'foobar')
|
||||||
|
assert status == 'OK'
|
||||||
|
imap.select()
|
||||||
|
status, [ref] = imap.search(None, 'ALL')
|
||||||
|
assert status == 'OK'
|
||||||
|
[msgId] = ref.split()
|
||||||
|
status, msg = imap.fetch(msgId, 'BODY[TEXT]')
|
||||||
|
assert status == 'OK'
|
||||||
|
assert msg[0][1].strip() == b'This is a test message.'
|
||||||
|
'')
|
||||||
|
];
|
||||||
|
|
||||||
directory."in-memory" = {
|
|
||||||
type = "memory";
|
|
||||||
principals = [
|
|
||||||
{
|
|
||||||
type = "individual";
|
|
||||||
name = "alice";
|
|
||||||
secret = "foobar";
|
|
||||||
email = [ "alice@${domain}" ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "individual";
|
|
||||||
name = "bob";
|
|
||||||
secret = "foobar";
|
|
||||||
email = [ "bob@${domain}" ];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
testScript = ''
|
||||||
|
start_all()
|
||||||
|
machine.wait_for_unit("stalwart-mail.service")
|
||||||
|
machine.wait_for_open_port(587)
|
||||||
|
machine.wait_for_open_port(143)
|
||||||
|
|
||||||
|
machine.succeed("test-smtp-submission")
|
||||||
|
machine.succeed("test-imap-read")
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
in
|
||||||
environment.systemPackages = [
|
lib.mapAttrs (_: package: makeStalwartTest { inherit package; }) stalwartPackages
|
||||||
(pkgs.writers.writePython3Bin "test-smtp-submission" { } ''
|
|
||||||
from smtplib import SMTP
|
|
||||||
|
|
||||||
with SMTP('localhost', 587) as smtp:
|
|
||||||
smtp.starttls()
|
|
||||||
smtp.login('alice', 'foobar')
|
|
||||||
smtp.sendmail(
|
|
||||||
'alice@${domain}',
|
|
||||||
'bob@${domain}',
|
|
||||||
"""
|
|
||||||
From: alice@${domain}
|
|
||||||
To: bob@${domain}
|
|
||||||
Subject: Some test message
|
|
||||||
|
|
||||||
This is a test message.
|
|
||||||
""".strip()
|
|
||||||
)
|
|
||||||
'')
|
|
||||||
|
|
||||||
(pkgs.writers.writePython3Bin "test-imap-read" { } ''
|
|
||||||
from imaplib import IMAP4
|
|
||||||
|
|
||||||
with IMAP4('localhost') as imap:
|
|
||||||
imap.starttls()
|
|
||||||
status, [caps] = imap.login('bob', 'foobar')
|
|
||||||
assert status == 'OK'
|
|
||||||
imap.select()
|
|
||||||
status, [ref] = imap.search(None, 'ALL')
|
|
||||||
assert status == 'OK'
|
|
||||||
[msgId] = ref.split()
|
|
||||||
status, msg = imap.fetch(msgId, 'BODY[TEXT]')
|
|
||||||
assert status == 'OK'
|
|
||||||
assert msg[0][1].strip() == b'This is a test message.'
|
|
||||||
'')
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
testScript = /* python */ ''
|
|
||||||
main.wait_for_unit("stalwart-mail.service")
|
|
||||||
main.wait_for_open_port(587)
|
|
||||||
main.wait_for_open_port(143)
|
|
||||||
|
|
||||||
main.succeed("test-smtp-submission")
|
|
||||||
main.succeed("test-imap-read")
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
maintainers = with lib.maintainers; [ happysalada pacien ];
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ import ./make-test-python.nix ({ lib, ... }: {
|
|||||||
"01-eth1" = {
|
"01-eth1" = {
|
||||||
name = "eth1";
|
name = "eth1";
|
||||||
networkConfig = {
|
networkConfig = {
|
||||||
|
# IPForward prevents dynamic address configuration
|
||||||
|
IPForward = true;
|
||||||
DHCPServer = true;
|
DHCPServer = true;
|
||||||
Address = "10.0.0.1/24";
|
Address = "10.0.0.1/24";
|
||||||
};
|
};
|
||||||
@@ -41,20 +43,30 @@ import ./make-test-python.nix ({ lib, ... }: {
|
|||||||
client = {
|
client = {
|
||||||
virtualisation.vlans = [ 1 ];
|
virtualisation.vlans = [ 1 ];
|
||||||
systemd.services.systemd-networkd.environment.SYSTEMD_LOG_LEVEL = "debug";
|
systemd.services.systemd-networkd.environment.SYSTEMD_LOG_LEVEL = "debug";
|
||||||
networking = {
|
systemd.network = {
|
||||||
useNetworkd = true;
|
enable = true;
|
||||||
useDHCP = false;
|
links."10-eth1" = {
|
||||||
firewall.enable = false;
|
matchConfig.OriginalName = "eth1";
|
||||||
interfaces.eth1 = {
|
linkConfig.MACAddress = "02:de:ad:be:ef:01";
|
||||||
useDHCP = true;
|
};
|
||||||
macAddress = "02:de:ad:be:ef:01";
|
networks."40-eth1" = {
|
||||||
|
matchConfig.Name = "eth1";
|
||||||
|
networkConfig = {
|
||||||
|
DHCP = "ipv4";
|
||||||
|
IPv6AcceptRA = false;
|
||||||
|
};
|
||||||
|
# This setting is important to have the router assign the
|
||||||
|
# configured lease based on the client's MAC address. Also see:
|
||||||
|
# https://github.com/systemd/systemd/issues/21368#issuecomment-982193546
|
||||||
|
dhcpV4Config.ClientIdentifier = "mac";
|
||||||
|
linkConfig.RequiredForOnline = "routable";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
networking = {
|
||||||
# This setting is important to have the router assign the
|
useDHCP = false;
|
||||||
# configured lease based on the client's MAC address. Also see:
|
firewall.enable = false;
|
||||||
# https://github.com/systemd/systemd/issues/21368#issuecomment-982193546
|
interfaces.eth1 = lib.mkForce {};
|
||||||
systemd.network.networks."40-eth1".dhcpV4Config.ClientIdentifier = "mac";
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
testScript = ''
|
testScript = ''
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ with import ../lib/testing-python.nix { inherit system pkgs; };
|
|||||||
let
|
let
|
||||||
packages = with pkgs; {
|
packages = with pkgs; {
|
||||||
"default" = teleport;
|
"default" = teleport;
|
||||||
"13" = teleport_13;
|
|
||||||
"14" = teleport_14;
|
"14" = teleport_14;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -24,11 +24,14 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
|
|||||||
};
|
};
|
||||||
|
|
||||||
# So that we can ssh into the VM, see e.g.
|
# So that we can ssh into the VM, see e.g.
|
||||||
# http://blog.patapon.info/nixos-local-vm/#accessing-the-vm-with-ssh
|
# https://nixos.org/manual/nixos/stable/#sec-nixos-test-port-forwarding
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
services.openssh.settings.PermitRootLogin = "yes";
|
|
||||||
users.extraUsers.root.password = "";
|
|
||||||
users.mutableUsers = false;
|
users.mutableUsers = false;
|
||||||
|
# `test-instrumentation.nix` already sets an empty root password.
|
||||||
|
# The following have to all be set to allow an empty SSH login password.
|
||||||
|
services.openssh.settings.PermitRootLogin = "yes";
|
||||||
|
services.openssh.settings.PermitEmptyPasswords = "yes";
|
||||||
|
security.pam.services.sshd.allowNullPassword = true; # the default `UsePam yes` makes this necessary
|
||||||
};
|
};
|
||||||
|
|
||||||
testScript = ''
|
testScript = ''
|
||||||
@@ -124,7 +127,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
|
|||||||
machine.wait_until_succeeds("test -f /tmp/glxgears-should-fail.stderr")
|
machine.wait_until_succeeds("test -f /tmp/glxgears-should-fail.stderr")
|
||||||
wait_until_terminated_or_succeeds(
|
wait_until_terminated_or_succeeds(
|
||||||
termination_check_shell_command="pidof glxgears",
|
termination_check_shell_command="pidof glxgears",
|
||||||
success_check_shell_command="grep 'libGL error: failed to load driver: swrast' /tmp/glxgears-should-fail.stderr",
|
success_check_shell_command="grep 'MESA-LOADER: failed to open swrast' /tmp/glxgears-should-fail.stderr",
|
||||||
get_detail_message_fn=lambda: "Contents of /tmp/glxgears-should-fail.stderr:\n"
|
get_detail_message_fn=lambda: "Contents of /tmp/glxgears-should-fail.stderr:\n"
|
||||||
+ machine.succeed("cat /tmp/glxgears-should-fail.stderr"),
|
+ machine.succeed("cat /tmp/glxgears-should-fail.stderr"),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -6,12 +6,12 @@
|
|||||||
|
|
||||||
python3.pkgs.buildPythonPackage rec {
|
python3.pkgs.buildPythonPackage rec {
|
||||||
pname = "ledfx";
|
pname = "ledfx";
|
||||||
version = "2.0.96";
|
version = "2.0.99";
|
||||||
pyproject = true;
|
pyproject = true;
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
hash = "sha256-nvPHAnoD5j1rneeuMufQkXj8YWXau2zJYug+Avpe87I=";
|
hash = "sha256-pwrAVcIwZ3RDYFMDk80q5aVSqLTQ5weZqgB3GRRu2ig=";
|
||||||
};
|
};
|
||||||
|
|
||||||
pythonRelaxDeps = true;
|
pythonRelaxDeps = true;
|
||||||
@@ -58,6 +58,7 @@ python3.pkgs.buildPythonPackage rec {
|
|||||||
sounddevice
|
sounddevice
|
||||||
stupidartnet
|
stupidartnet
|
||||||
uvloop
|
uvloop
|
||||||
|
vnoise
|
||||||
voluptuous
|
voluptuous
|
||||||
zeroconf
|
zeroconf
|
||||||
];
|
];
|
||||||
@@ -71,5 +72,6 @@ python3.pkgs.buildPythonPackage rec {
|
|||||||
changelog = "https://github.com/LedFx/LedFx/blob/${version}/CHANGELOG.rst";
|
changelog = "https://github.com/LedFx/LedFx/blob/${version}/CHANGELOG.rst";
|
||||||
license = licenses.gpl3Only;
|
license = licenses.gpl3Only;
|
||||||
maintainers = teams.c3d2.members;
|
maintainers = teams.c3d2.members;
|
||||||
|
mainProgram = "ledfx";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,56 +0,0 @@
|
|||||||
{ lib, fetchFromGitHub
|
|
||||||
, pkg-config, meson ,ninja
|
|
||||||
, python3Packages
|
|
||||||
, gdk-pixbuf, glib, gobject-introspection, gtk3
|
|
||||||
, libnotify
|
|
||||||
, wrapGAppsHook3 }:
|
|
||||||
|
|
||||||
python3Packages.buildPythonApplication rec {
|
|
||||||
pname = "mpdevil";
|
|
||||||
version = "1.11.0";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "SoongNoonien";
|
|
||||||
repo = pname;
|
|
||||||
rev = "refs/tags/v${version}";
|
|
||||||
sha256 = "sha256-ooNZSsVtIeueqgj9hR9OZp08qm8gGokiq8IU3U/ZV5w=";
|
|
||||||
};
|
|
||||||
|
|
||||||
format = "other";
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
glib.dev gobject-introspection gtk3 pkg-config meson ninja wrapGAppsHook3
|
|
||||||
];
|
|
||||||
|
|
||||||
buildInputs = [
|
|
||||||
gdk-pixbuf glib libnotify
|
|
||||||
];
|
|
||||||
|
|
||||||
propagatedBuildInputs = with python3Packages; [
|
|
||||||
beautifulsoup4 distutils-extra mpd2 notify-py pygobject3 requests
|
|
||||||
];
|
|
||||||
|
|
||||||
postInstall = ''
|
|
||||||
glib-compile-schemas $out/share/glib-2.0/schemas
|
|
||||||
'';
|
|
||||||
|
|
||||||
preFixup = ''
|
|
||||||
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Prevent double wrapping.
|
|
||||||
dontWrapGApps = true;
|
|
||||||
# Otherwise wrapGAppsHook3 do not pick up the dependencies correctly.
|
|
||||||
strictDeps = false;
|
|
||||||
# There aren't any checks.
|
|
||||||
doCheck = false;
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "A simple music browser for MPD";
|
|
||||||
homepage = "https://github.com/SoongNoonien/mpdevil";
|
|
||||||
license = licenses.gpl3Plus;
|
|
||||||
platforms = platforms.linux;
|
|
||||||
maintainers = with maintainers; [ apfelkuchen6 ];
|
|
||||||
mainProgram = "mpdevil";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -6,13 +6,13 @@
|
|||||||
|
|
||||||
python3Packages.buildPythonApplication rec {
|
python3Packages.buildPythonApplication rec {
|
||||||
pname = "pyradio";
|
pname = "pyradio";
|
||||||
version = "0.9.3.6";
|
version = "0.9.3.7";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "coderholic";
|
owner = "coderholic";
|
||||||
repo = "pyradio";
|
repo = "pyradio";
|
||||||
rev = "refs/tags/${version}";
|
rev = "refs/tags/${version}";
|
||||||
hash = "sha256-As4xjwJtEKlnFuBigC7nN0kAPe0+99rE9KZ0F6i7qIQ=";
|
hash = "sha256-NwDVytD6nIM++ixGmLh02FIE+hLKHBwwD3aEAXVZn7I=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|||||||
@@ -40,15 +40,15 @@
|
|||||||
, xvfb-run
|
, xvfb-run
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "gnome-builder";
|
pname = "gnome-builder";
|
||||||
version = "46.1";
|
version = "46.2";
|
||||||
|
|
||||||
outputs = [ "out" "devdoc" ];
|
outputs = [ "out" "devdoc" ];
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
url = "mirror://gnome/sources/gnome-builder/${lib.versions.major finalAttrs.version}/gnome-builder-${finalAttrs.version}.tar.xz";
|
||||||
hash = "sha256-lhaWbVIqLIUCizPAm605cudp6fkK91VNXnGDfb3HiHE=";
|
hash = "sha256-DIV7iQA7JHh/Kx0qrhLSdaB0xmhLSIA7SMACdtk3GWM=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
@@ -154,7 +154,7 @@ stdenv.mkDerivation rec {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
passthru.updateScript = gnome.updateScript {
|
passthru.updateScript = gnome.updateScript {
|
||||||
packageName = pname;
|
packageName = "gnome-builder";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
@@ -175,4 +175,4 @@ stdenv.mkDerivation rec {
|
|||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
mainProgram = "gnome-builder";
|
mainProgram = "gnome-builder";
|
||||||
};
|
};
|
||||||
}
|
})
|
||||||
|
|||||||
@@ -3294,6 +3294,21 @@ let
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
phind.phind = buildVscodeMarketplaceExtension {
|
||||||
|
mktplcRef = {
|
||||||
|
name = "phind";
|
||||||
|
publisher = "phind";
|
||||||
|
version = "0.22.2";
|
||||||
|
hash = "sha256-nN/7IVa4WaA5V39CHx0nrvWBmBNtISvAINTQzk02x1w=";
|
||||||
|
};
|
||||||
|
meta = {
|
||||||
|
description = "Using Phind AI service to provide answers based on the code context";
|
||||||
|
downloadPage = "https://marketplace.visualstudio.com/items?itemName=phind.phind";
|
||||||
|
license = lib.licenses.unfree;
|
||||||
|
maintainers = [ lib.maintainers.onny ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
phoenixframework.phoenix = buildVscodeMarketplaceExtension {
|
phoenixframework.phoenix = buildVscodeMarketplaceExtension {
|
||||||
mktplcRef = {
|
mktplcRef = {
|
||||||
name = "phoenix";
|
name = "phoenix";
|
||||||
@@ -4733,6 +4748,23 @@ let
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
xdebug.php-debug = buildVscodeMarketplaceExtension {
|
||||||
|
mktplcRef = {
|
||||||
|
name = "php-debug";
|
||||||
|
publisher = "xdebug";
|
||||||
|
version = "1.34.0";
|
||||||
|
hash = "sha256-WAcXWCMmvuw7nkfGcOgmK+s+Nw6XpvNR4POXD85E/So=";
|
||||||
|
};
|
||||||
|
meta = {
|
||||||
|
description = "PHP Debug Adapter";
|
||||||
|
license = lib.licenses.mit;
|
||||||
|
homepage = "https://github.com/xdebug/vscode-php-debug";
|
||||||
|
changelog = "https://github.com/xdebug/vscode-php-debug/blob/main/CHANGELOG.md";
|
||||||
|
downloadPage = "https://marketplace.visualstudio.com/items?itemName=xdebug.php-debug";
|
||||||
|
maintainers = [ lib.maintainers.onny ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
xyz.local-history = buildVscodeMarketplaceExtension {
|
xyz.local-history = buildVscodeMarketplaceExtension {
|
||||||
mktplcRef = {
|
mktplcRef = {
|
||||||
name = "local-history";
|
name = "local-history";
|
||||||
|
|||||||
@@ -73,6 +73,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
|||||||
stdenv.cc.cc.lib
|
stdenv.cc.cc.lib
|
||||||
];
|
];
|
||||||
|
|
||||||
|
dontAutoPatchelf = true;
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
mv ./package.json ./package_orig.json
|
mv ./package.json ./package_orig.json
|
||||||
|
|
||||||
@@ -87,18 +89,27 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
|||||||
touch "./install.lock"
|
touch "./install.lock"
|
||||||
|
|
||||||
# Clang-format from nix package.
|
# Clang-format from nix package.
|
||||||
mv ./LLVM/ ./LLVM_orig
|
rm -rf ./LLVM
|
||||||
mkdir "./LLVM/"
|
mkdir "./LLVM/"
|
||||||
find "${clang-tools}" -mindepth 1 -maxdepth 1 | xargs ln -s -t "./LLVM"
|
find "${clang-tools}" -mindepth 1 -maxdepth 1 | xargs ln -s -t "./LLVM"
|
||||||
|
|
||||||
# Patching binaries
|
# Patching binaries
|
||||||
chmod +x bin/cpptools bin/cpptools-srv bin/cpptools-wordexp debugAdapters/bin/OpenDebugAD7
|
chmod +x bin/cpptools bin/cpptools-srv bin/cpptools-wordexp bin/libc.so debugAdapters/bin/OpenDebugAD7
|
||||||
patchelf --replace-needed liblttng-ust.so.0 liblttng-ust.so.1 ./debugAdapters/bin/libcoreclrtraceptprovider.so
|
patchelf --replace-needed liblttng-ust.so.0 liblttng-ust.so.1 ./debugAdapters/bin/libcoreclrtraceptprovider.so
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postFixup = lib.optionalString gdbUseFixed ''
|
postFixup =
|
||||||
wrapProgram $out/share/vscode/extensions/ms-vscode.cpptools/debugAdapters/bin/OpenDebugAD7 --prefix PATH : ${lib.makeBinPath [ gdb ]}
|
''
|
||||||
'';
|
autoPatchelf $out/share/vscode/extensions/ms-vscode.cpptools/debugAdapters
|
||||||
|
|
||||||
|
# cpptools* are distributed by the extension and need to be run through the distributed musl interpretter
|
||||||
|
patchelf --set-interpreter $out/share/vscode/extensions/ms-vscode.cpptools/bin/libc.so $out/share/vscode/extensions/ms-vscode.cpptools/bin/cpptools
|
||||||
|
patchelf --set-interpreter $out/share/vscode/extensions/ms-vscode.cpptools/bin/libc.so $out/share/vscode/extensions/ms-vscode.cpptools/bin/cpptools-srv
|
||||||
|
patchelf --set-interpreter $out/share/vscode/extensions/ms-vscode.cpptools/bin/libc.so $out/share/vscode/extensions/ms-vscode.cpptools/bin/cpptools-wordexp
|
||||||
|
''
|
||||||
|
+ lib.optionalString gdbUseFixed ''
|
||||||
|
wrapProgram $out/share/vscode/extensions/ms-vscode.cpptools/debugAdapters/bin/OpenDebugAD7 --prefix PATH : ${lib.makeBinPath [ gdb ]}
|
||||||
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "The C/C++ extension adds language support for C/C++ to Visual Studio Code, including features such as IntelliSense and debugging.";
|
description = "The C/C++ extension adds language support for C/C++ to Visual Studio Code, including features such as IntelliSense and debugging.";
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{ stdenv
|
{ stdenv
|
||||||
, lib
|
, lib
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
|
, fetchpatch
|
||||||
, gitUpdater
|
, gitUpdater
|
||||||
, cmake
|
, cmake
|
||||||
, pkg-config
|
, pkg-config
|
||||||
@@ -27,6 +28,16 @@ stdenv.mkDerivation (finalAttrs: {
|
|||||||
hash = "sha256-TIXjYkInWV3yVnvXrdHcmeWYeps5TcvkG2Xjg4roIds=";
|
hash = "sha256-TIXjYkInWV3yVnvXrdHcmeWYeps5TcvkG2Xjg4roIds=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# Fix FTBFS with Qt 6.7.1
|
||||||
|
# Remove when https://github.com/punesemu/puNES/pull/403 merged & in release
|
||||||
|
(fetchpatch {
|
||||||
|
name = "0001-punes-Fix-compatibility-with-Qt-6.7.1.patch";
|
||||||
|
url = "https://github.com/punesemu/puNES/commit/78c72d2dfcd570e7463a78da10904cebae6127f5.patch";
|
||||||
|
hash = "sha256-xRalKIOb1qWgqJsFLcm7uUOblEfHDYbkukmcr4/+4Qc=";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
cmake
|
cmake
|
||||||
pkg-config
|
pkg-config
|
||||||
|
|||||||
@@ -77,14 +77,14 @@ let
|
|||||||
urllib3
|
urllib3
|
||||||
];
|
];
|
||||||
in mkDerivation rec {
|
in mkDerivation rec {
|
||||||
version = "3.34.6";
|
version = "3.34.7";
|
||||||
pname = "qgis-ltr-unwrapped";
|
pname = "qgis-ltr-unwrapped";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "qgis";
|
owner = "qgis";
|
||||||
repo = "QGIS";
|
repo = "QGIS";
|
||||||
rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
|
rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
|
||||||
hash = "sha256-eWd8oIINWVN5Dt6s4bc1RtQbytFd0foPgIcd/N2hsMw=";
|
hash = "sha256-6fIBmIoCVo0AtkjC4Vn3jMjz93gZmvkFAgo+KnasyXo=";
|
||||||
};
|
};
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
|
|||||||
@@ -78,14 +78,14 @@ let
|
|||||||
urllib3
|
urllib3
|
||||||
];
|
];
|
||||||
in mkDerivation rec {
|
in mkDerivation rec {
|
||||||
version = "3.36.2";
|
version = "3.36.3";
|
||||||
pname = "qgis-unwrapped";
|
pname = "qgis-unwrapped";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "qgis";
|
owner = "qgis";
|
||||||
repo = "QGIS";
|
repo = "QGIS";
|
||||||
rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
|
rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
|
||||||
hash = "sha256-/8mpzl/6UpjrMVjae2nqpS2DBRCq86rE+B3INzoRz8g=";
|
hash = "sha256-uPyW/zzoyyd3SXvP+h9joJEv9DjRNJSaorx1rNmAaFQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
|
|||||||
@@ -135,7 +135,10 @@ stdenv.mkDerivation (finalAttrs: {
|
|||||||
inherit nixos-icons;
|
inherit nixos-icons;
|
||||||
inherit (perlPackages) ImageMagick;
|
inherit (perlPackages) ImageMagick;
|
||||||
inherit (python3.pkgs) img2pdf;
|
inherit (python3.pkgs) img2pdf;
|
||||||
pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
|
pkg-config = testers.hasPkgConfigModules {
|
||||||
|
package = finalAttrs.finalPackage;
|
||||||
|
version = lib.head (lib.splitString "-" finalAttrs.version);
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
|
|||||||
@@ -10,13 +10,14 @@
|
|||||||
, libGL
|
, libGL
|
||||||
, Cocoa
|
, Cocoa
|
||||||
, OpenGL
|
, OpenGL
|
||||||
|
, withManual ? !stdenv.isDarwin
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "f3d";
|
pname = "f3d";
|
||||||
version = "2.4.0";
|
version = "2.4.0";
|
||||||
|
|
||||||
outputs = [ "out" "man" ];
|
outputs = [ "out" ] ++ lib.optionals withManual [ "man" ];
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "f3d-app";
|
owner = "f3d-app";
|
||||||
@@ -27,8 +28,11 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
cmake
|
cmake
|
||||||
|
] ++ lib.optionals withManual [
|
||||||
|
# manpage
|
||||||
help2man
|
help2man
|
||||||
gzip
|
gzip
|
||||||
|
] ++ lib.optionals stdenv.hostPlatform.isElf [
|
||||||
# https://github.com/f3d-app/f3d/pull/1217
|
# https://github.com/f3d-app/f3d/pull/1217
|
||||||
autoPatchelfHook
|
autoPatchelfHook
|
||||||
];
|
];
|
||||||
@@ -41,7 +45,7 @@ stdenv.mkDerivation rec {
|
|||||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||||
"-DCMAKE_INSTALL_INCLUDEDIR=include"
|
"-DCMAKE_INSTALL_INCLUDEDIR=include"
|
||||||
"-DCMAKE_INSTALL_BINDIR=bin"
|
"-DCMAKE_INSTALL_BINDIR=bin"
|
||||||
|
] ++ lib.optionals withManual [
|
||||||
"-DF3D_LINUX_GENERATE_MAN=ON"
|
"-DF3D_LINUX_GENERATE_MAN=ON"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -20,20 +20,20 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "gnome-obfuscate";
|
pname = "gnome-obfuscate";
|
||||||
version = "0.0.9";
|
version = "0.0.10";
|
||||||
|
|
||||||
src = fetchFromGitLab {
|
src = fetchFromGitLab {
|
||||||
domain = "gitlab.gnome.org";
|
domain = "gitlab.gnome.org";
|
||||||
owner = "World";
|
owner = "World";
|
||||||
repo = "Obfuscate";
|
repo = "Obfuscate";
|
||||||
rev = finalAttrs.version;
|
rev = finalAttrs.version;
|
||||||
hash = "sha256-aUhzact437V/bSsG2Ddu2mC03LbyXFg+hJiuGy5NQfQ=";
|
hash = "sha256-/Plvvn1tle8t/bsPcsamn5d81CqnyGCyGYPF6j6U5NI=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||||
inherit (finalAttrs) src;
|
inherit (finalAttrs) src;
|
||||||
name = "${finalAttrs.pname}-${finalAttrs.version}";
|
name = "${finalAttrs.pname}-${finalAttrs.version}";
|
||||||
hash = "sha256-HUQvdCmzjdmuJGDLtC/86yzbRimLzx+XbW29f+Ua48w=";
|
hash = "sha256-9lrxK2psdIPGsOC6p8T+3AGPrX6PjrK9mFirdJqBSMM=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|||||||
@@ -93,5 +93,7 @@ stdenv.mkDerivation rec {
|
|||||||
license = licenses.gpl3Plus;
|
license = licenses.gpl3Plus;
|
||||||
maintainers = with maintainers; [ dotlambda gepbird yrd ];
|
maintainers = with maintainers; [ dotlambda gepbird yrd ];
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
|
# compiler error since 2023-11-17
|
||||||
|
broken = stdenv.isDarwin;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,43 +9,43 @@
|
|||||||
let
|
let
|
||||||
|
|
||||||
pname = "1password";
|
pname = "1password";
|
||||||
version = if channel == "stable" then "8.10.30" else "8.10.30-20.BETA";
|
version = if channel == "stable" then "8.10.33" else "8.10.34-10.BETA";
|
||||||
|
|
||||||
sources = {
|
sources = {
|
||||||
stable = {
|
stable = {
|
||||||
x86_64-linux = {
|
x86_64-linux = {
|
||||||
url = "https://downloads.1password.com/linux/tar/stable/x86_64/1password-${version}.x64.tar.gz";
|
url = "https://downloads.1password.com/linux/tar/stable/x86_64/1password-${version}.x64.tar.gz";
|
||||||
hash = "sha256-q1PKFpBgjada7jmeXZYmH8dvy2A4lwfrQ0jQSoHVNcg=";
|
hash = "sha256-njSvRi/sA7l5+XxfCpv3FY9SmCv5oPix9l2EZewZg1M=";
|
||||||
};
|
};
|
||||||
aarch64-linux = {
|
aarch64-linux = {
|
||||||
url = "https://downloads.1password.com/linux/tar/stable/aarch64/1password-${version}.arm64.tar.gz";
|
url = "https://downloads.1password.com/linux/tar/stable/aarch64/1password-${version}.arm64.tar.gz";
|
||||||
hash = "sha256-Zv/mnykPi9PCDX44JtGi0GPrOujSmjx1BBJuEB81CwE=";
|
hash = "sha256-g4RMTlBQvJQaPD/6scYjpe7NWrL6gkjvh5b9LubTWaE=";
|
||||||
};
|
};
|
||||||
x86_64-darwin = {
|
x86_64-darwin = {
|
||||||
url = "https://downloads.1password.com/mac/1Password-${version}-x86_64.zip";
|
url = "https://downloads.1password.com/mac/1Password-${version}-x86_64.zip";
|
||||||
hash = "sha256-unC1cz5ooSdu4Csf7/daCyPdMy3/Lp3a76B7TBa/VXk=";
|
hash = "sha256-YzAYMk3SR+paIQYAZCx840u/k77soy17F15owpqRAU0=";
|
||||||
};
|
};
|
||||||
aarch64-darwin = {
|
aarch64-darwin = {
|
||||||
url = "https://downloads.1password.com/mac/1Password-${version}-aarch64.zip";
|
url = "https://downloads.1password.com/mac/1Password-${version}-aarch64.zip";
|
||||||
hash = "sha256-DS6oCdr6srF+diL68a2gOskS4x+uj1i8DtL3uaaxv/I=";
|
hash = "sha256-FlJnPMIv7mWh3dSACq01f16mB9EkVD2LOg3IIpvjwdY=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
beta = {
|
beta = {
|
||||||
x86_64-linux = {
|
x86_64-linux = {
|
||||||
url = "https://downloads.1password.com/linux/tar/beta/x86_64/1password-${version}.x64.tar.gz";
|
url = "https://downloads.1password.com/linux/tar/beta/x86_64/1password-${version}.x64.tar.gz";
|
||||||
hash = "sha256-6I/3o+33sIkfyef8xGUWczaWykHPcvvAGv0xy/jCkKI=";
|
hash = "sha256-eX7D8D5KErFIQtyvg4oT+lR3A7sfRFpDMT7duigZTz0=";
|
||||||
};
|
};
|
||||||
aarch64-linux = {
|
aarch64-linux = {
|
||||||
url = "https://downloads.1password.com/linux/tar/beta/aarch64/1password-${version}.arm64.tar.gz";
|
url = "https://downloads.1password.com/linux/tar/beta/aarch64/1password-${version}.arm64.tar.gz";
|
||||||
hash = "sha256-ph6DBBUzdUHtYCAQiA1me3bevtVPEgIxtwbgbdgQcGY=";
|
hash = "sha256-dajdeU8TtD9Dbnp2MFedAl8tuQr275cUqGAnm/VF+OE=";
|
||||||
};
|
};
|
||||||
x86_64-darwin = {
|
x86_64-darwin = {
|
||||||
url = "https://downloads.1password.com/mac/1Password-${version}-x86_64.zip";
|
url = "https://downloads.1password.com/mac/1Password-${version}-x86_64.zip";
|
||||||
hash = "sha256-XzZOj1pfoCTGMTsqZlI8hKTDRJ4w7debAPYHIIwsyyY=";
|
hash = "sha256-Dm8v7B8qDSBe1i7OJKQFn7YDPkw3Qj8YVtQkaQmdKuc=";
|
||||||
};
|
};
|
||||||
aarch64-darwin = {
|
aarch64-darwin = {
|
||||||
url = "https://downloads.1password.com/mac/1Password-${version}-aarch64.zip";
|
url = "https://downloads.1password.com/mac/1Password-${version}-aarch64.zip";
|
||||||
hash = "sha256-s+hnKhI2s6E1ZyJQxs3Wggy60LxCEr+u3tRtjTgjmZk=";
|
hash = "sha256-QSxJoVPlOQU7hbvbuVcB/kf5umRjJQuygMkXq6lE1CQ=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -2,15 +2,15 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "gmnitohtml";
|
pname = "gmnitohtml";
|
||||||
version = "0.1.2";
|
version = "0.1.3";
|
||||||
|
|
||||||
src = fetchFromSourcehut {
|
src = fetchFromSourcehut {
|
||||||
owner = "~adnano";
|
owner = "~adnano";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
hash = "sha256-nKNSLVBBdZI5mkbEUkMv0CIOQIyH3OX+SEFf5O47DFY=";
|
hash = "sha256-9lsZgh/OyxAu1rsixD6XUgQzR1xDGOxGt0sR12zrs2M=";
|
||||||
};
|
};
|
||||||
vendorHash = "sha256-Cx8x8AISRVTA4Ufd73vOVky97LX23NkizHDingr/zVk=";
|
vendorHash = "sha256-ppplXXqb2DM/AU+B+LefndrBiiTgCRNw6hEupfeWr+o=";
|
||||||
|
|
||||||
ldflags = [ "-s" "-w" ];
|
ldflags = [ "-s" "-w" ];
|
||||||
|
|
||||||
@@ -18,11 +18,11 @@ buildGoModule rec {
|
|||||||
nativeBuildInputs = [ scdoc installShellFiles ];
|
nativeBuildInputs = [ scdoc installShellFiles ];
|
||||||
|
|
||||||
postBuild = ''
|
postBuild = ''
|
||||||
make gmnitohtml.1
|
make docs
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
installManPage gmnitohtml.1
|
installManPage docs/gmnitohtml.1
|
||||||
'';
|
'';
|
||||||
|
|
||||||
doInstallCheck = true;
|
doInstallCheck = true;
|
||||||
|
|||||||
@@ -20,14 +20,14 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "gnome-firmware";
|
pname = "gnome-firmware";
|
||||||
version = "45.0";
|
version = "46.0";
|
||||||
|
|
||||||
src = fetchFromGitLab {
|
src = fetchFromGitLab {
|
||||||
domain = "gitlab.gnome.org";
|
domain = "gitlab.gnome.org";
|
||||||
owner = "World";
|
owner = "World";
|
||||||
repo = "gnome-firmware";
|
repo = "gnome-firmware";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-KVyxOl7RdL80ZiEyiT+XGa/6Ss2g+5y+LIrR9TSRE+I=";
|
sha256 = "sha256-tEMSlKsqqPMZA0Gr89+u3dmAmZ7ffQm/2i1AB93y05E=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|||||||
@@ -45,6 +45,10 @@ stdenv.mkDerivation rec {
|
|||||||
qpdf
|
qpdf
|
||||||
];
|
];
|
||||||
|
|
||||||
|
CXXFLAGS =
|
||||||
|
# Pending upstream compatibility with GCC 13
|
||||||
|
lib.optional (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "13") "-Wno-changes-meaning";
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "A simple application to extract, merge, rotate and reorder pages of PDF documents";
|
description = "A simple application to extract, merge, rotate and reorder pages of PDF documents";
|
||||||
homepage = "https://junrrein.github.io/pdfslicer/";
|
homepage = "https://junrrein.github.io/pdfslicer/";
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
, gnome-desktop
|
, gnome-desktop
|
||||||
, glib
|
, glib
|
||||||
, gtk3
|
, gtk3
|
||||||
|
, json-glib
|
||||||
, wayland
|
, wayland
|
||||||
, libdrm
|
, libdrm
|
||||||
, libxkbcommon
|
, libxkbcommon
|
||||||
@@ -51,6 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||||||
gnome-desktop
|
gnome-desktop
|
||||||
# For keybindings settings schemas
|
# For keybindings settings schemas
|
||||||
gnome.mutter
|
gnome.mutter
|
||||||
|
json-glib
|
||||||
wayland
|
wayland
|
||||||
finalAttrs.wlroots
|
finalAttrs.wlroots
|
||||||
xorg.xcbutilwm
|
xorg.xcbutilwm
|
||||||
|
|||||||
@@ -1,50 +1,25 @@
|
|||||||
{ lib, stdenv, fetchurl, appimageTools, makeDesktopItem }:
|
|
||||||
|
|
||||||
stdenv.mkDerivation (finalAttrs: let
|
|
||||||
inherit (finalAttrs) pname version src appexec icon desktopItem;
|
|
||||||
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
lib,
|
||||||
|
fetchurl,
|
||||||
|
appimageTools,
|
||||||
|
}:
|
||||||
|
let
|
||||||
pname = "remnote";
|
pname = "remnote";
|
||||||
version = "1.16.4";
|
version = "1.16.18";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://download.remnote.io/remnote-desktop/RemNote-${version}.AppImage";
|
url = "https://download2.remnote.io/remnote-desktop2/RemNote-${version}.AppImage";
|
||||||
hash = "sha256-dgbQ0cbPq7BSQ9VwwH6+GoAxb85HDxRixfjeDJBtOrg=";
|
hash = "sha256-ps7Rl1oA2QOPvO2XeCY8DrWtCV9WPlX9jbhypz2ZARA=";
|
||||||
};
|
};
|
||||||
|
appimageContents = appimageTools.extractType2 { inherit pname version src; };
|
||||||
|
in
|
||||||
|
appimageTools.wrapType2 {
|
||||||
|
inherit pname version src;
|
||||||
|
|
||||||
appexec = appimageTools.wrapType2 {
|
extraInstallCommands = ''
|
||||||
inherit pname version src;
|
install -Dm444 ${appimageContents}/remnote.desktop -t $out/share/applications
|
||||||
};
|
substituteInPlace $out/share/applications/remnote.desktop \
|
||||||
|
--replace-fail 'Exec=AppRun --no-sandbox %U' 'Exec=remnote %u'
|
||||||
icon = fetchurl {
|
install -Dm444 ${appimageContents}/remnote.png -t $out/share/pixmaps
|
||||||
url = "https://www.remnote.io/icon.png";
|
|
||||||
hash = "sha256-r5D7fNefKPdjtmV7f/88Gn3tqeEG8LGuD4nHI/sCk94=";
|
|
||||||
};
|
|
||||||
|
|
||||||
desktopItem = makeDesktopItem {
|
|
||||||
type = "Application";
|
|
||||||
name = "remnote";
|
|
||||||
desktopName = "RemNote";
|
|
||||||
comment = "Spaced Repetition";
|
|
||||||
icon = "remnote";
|
|
||||||
exec = "remnote %u";
|
|
||||||
categories = [ "Office" ];
|
|
||||||
mimeTypes = [ "x-scheme-handler/remnote" "x-scheme-handler/rn" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
dontUnpack = true;
|
|
||||||
dontConfigure = true;
|
|
||||||
dontBuild = true;
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
runHook preInstall
|
|
||||||
|
|
||||||
install -Dm755 ${appexec}/bin/remnote $out/bin/remnote
|
|
||||||
install -Dm444 "${desktopItem}/share/applications/"* -t $out/share/applications/
|
|
||||||
install -Dm444 ${icon} $out/share/pixmaps/remnote.png
|
|
||||||
|
|
||||||
runHook postInstall
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
@@ -55,4 +30,4 @@ in
|
|||||||
platforms = [ "x86_64-linux" ];
|
platforms = [ "x86_64-linux" ];
|
||||||
mainProgram = "remnote";
|
mainProgram = "remnote";
|
||||||
};
|
};
|
||||||
})
|
}
|
||||||
|
|||||||
@@ -6,17 +6,17 @@ callPackage ./make-brave.nix (removeAttrs args [ "callPackage" ])
|
|||||||
if stdenv.isAarch64 then
|
if stdenv.isAarch64 then
|
||||||
{
|
{
|
||||||
pname = "brave";
|
pname = "brave";
|
||||||
version = "1.66.110";
|
version = "1.66.115";
|
||||||
url = "https://github.com/brave/brave-browser/releases/download/v1.66.110/brave-browser_1.66.110_arm64.deb";
|
url = "https://github.com/brave/brave-browser/releases/download/v1.66.115/brave-browser_1.66.115_arm64.deb";
|
||||||
hash = "sha256-yElWlzGdI+mopmPgXTABXncoufojHngRX88TCy3AE+E=";
|
hash = "sha256-zOrulR0a/iRYtjdFiyN0V6q0KktD7G0ZrEYSXfIwaL8=";
|
||||||
platform = "aarch64-linux";
|
platform = "aarch64-linux";
|
||||||
}
|
}
|
||||||
else if stdenv.isx86_64 then
|
else if stdenv.isx86_64 then
|
||||||
{
|
{
|
||||||
pname = "brave";
|
pname = "brave";
|
||||||
version = "1.66.110";
|
version = "1.66.115";
|
||||||
url = "https://github.com/brave/brave-browser/releases/download/v1.66.110/brave-browser_1.66.110_amd64.deb";
|
url = "https://github.com/brave/brave-browser/releases/download/v1.66.115/brave-browser_1.66.115_amd64.deb";
|
||||||
hash = "sha256-2KtTI9QODfQR25YzXJMXJspuzCS11FpDx2L1B8DWmmc=";
|
hash = "sha256-TMQips7dyxKfYEin7QJCV0ru4NHi4j3DjLh2fmzuYeQ=";
|
||||||
platform = "x86_64-linux";
|
platform = "x86_64-linux";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
{
|
{
|
||||||
stable = {
|
stable = {
|
||||||
chromedriver = {
|
chromedriver = {
|
||||||
hash_darwin = "sha256-DX0J3xeOK4Dy4BAjbrbu1rnIkmF8nlmy9tMaQhLsFcU=";
|
hash_darwin = "sha256-1gi+hWrVL+mBB8pHMXnX/8kzRCQqGuut/+wO/9yBABs=";
|
||||||
hash_darwin_aarch64 =
|
hash_darwin_aarch64 =
|
||||||
"sha256-hRJeaeQS30srO5M1Gi43VYR/KrjNAhH0XozkEzvcbA0=";
|
"sha256-skYFjXBvv+2u/K770Dd3uxFYFer6GGx/EgWfAgzE9pI=";
|
||||||
hash_linux = "sha256-CcBQhIsK7mL7VNJCs6ynhrQeXPuB793DysyV1nj90mM=";
|
hash_linux = "sha256-67rXlDJeDSpcpEhNQq0rVS2bSWPy3GXVnTo6dwKAnZU=";
|
||||||
version = "125.0.6422.76";
|
version = "125.0.6422.78";
|
||||||
};
|
};
|
||||||
deps = {
|
deps = {
|
||||||
gn = {
|
gn = {
|
||||||
@@ -15,8 +15,8 @@
|
|||||||
version = "2024-04-10";
|
version = "2024-04-10";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
hash = "sha256-m7WeRloS6tGH2AwhkNicpqThUQmS+9w2xFS2dbmu1vw=";
|
hash = "sha256-EA8TzemtndFb8qAp4XWNjwWmNRz/P4Keh3k1Cn9qLEU=";
|
||||||
version = "125.0.6422.76";
|
version = "125.0.6422.112";
|
||||||
};
|
};
|
||||||
ungoogled-chromium = {
|
ungoogled-chromium = {
|
||||||
deps = {
|
deps = {
|
||||||
@@ -27,11 +27,11 @@
|
|||||||
version = "2024-04-10";
|
version = "2024-04-10";
|
||||||
};
|
};
|
||||||
ungoogled-patches = {
|
ungoogled-patches = {
|
||||||
hash = "sha256-I3RQBa4LLuOdZQFKHIqePj9Ozw61dsuAOctqN1abij0=";
|
hash = "sha256-vHnXIrDdHGIe8byb41CiEWq3FPTecKg006dU7+iESKA=";
|
||||||
rev = "125.0.6422.60-1";
|
rev = "125.0.6422.112-1";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
hash = "sha256-ewX7oRna7IYCXhAe98HS5HbS1psIEAguhZJ1ymK+dPE=";
|
hash = "sha256-EA8TzemtndFb8qAp4XWNjwWmNRz/P4Keh3k1Cn9qLEU=";
|
||||||
version = "125.0.6422.60";
|
version = "125.0.6422.112";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -3,10 +3,10 @@
|
|||||||
{
|
{
|
||||||
firefox = buildMozillaMach rec {
|
firefox = buildMozillaMach rec {
|
||||||
pname = "firefox";
|
pname = "firefox";
|
||||||
version = "126.0";
|
version = "126.0.1";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
|
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||||
sha512 = "56025b051d544ca294911a1d6a66f09945f71012131881b64313dafb579730810a4b091950c90a21d4fd3f393ba23670d8409086e1677d80d0bbbe347c303527";
|
sha512 = "249605c4891ee9271def187d161369bd3ccbd347f5f0e175d0239aced3cb9ae9655d3c134b7705bda80ea1e63c0a2ee8eb4e76db0840019683376c00f20fc7ac";
|
||||||
};
|
};
|
||||||
|
|
||||||
extraPatches = [
|
extraPatches = [
|
||||||
|
|||||||
@@ -22,11 +22,11 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
inherit (builtins) elemAt;
|
inherit (builtins) elemAt;
|
||||||
cldr_version = "44.1.0";
|
cldr_version = "45.0.0";
|
||||||
cldr-json = fetchzip {
|
cldr-json = fetchzip {
|
||||||
url = "https://github.com/unicode-org/cldr-json/releases/download/${cldr_version}/cldr-${cldr_version}-json-modern.zip";
|
url = "https://github.com/unicode-org/cldr-json/releases/download/${cldr_version}/cldr-${cldr_version}-json-modern.zip";
|
||||||
stripRoot = false;
|
stripRoot = false;
|
||||||
hash = "sha256-EbbzaaspKgRT/dsJV3Kf0Dfj8LN9zT+Pl4gk5kiOXWk=";
|
hash = "sha256-BPDvYjlvJMudX/YlS7HrwKEABYx+1KzjiFlLYA5+Oew=";
|
||||||
postFetch = ''
|
postFetch = ''
|
||||||
echo -n ${cldr_version} > $out/version.txt
|
echo -n ${cldr_version} > $out/version.txt
|
||||||
'';
|
'';
|
||||||
@@ -50,30 +50,40 @@ let
|
|||||||
in
|
in
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "ladybird";
|
pname = "ladybird";
|
||||||
version = "0-unstable-2024-03-16";
|
version = "0-unstable-2024-05-26";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "SerenityOS";
|
owner = "SerenityOS";
|
||||||
repo = "serenity";
|
repo = "serenity";
|
||||||
rev = "3a8bde9ef24dace600484b38992fdc7d17bf92c3";
|
rev = "1a9d8e8fbe360f2d3b376ca0e13c507bd2cc6e8b";
|
||||||
hash = "sha256-r8HYcexrOjDYsXuCtROiNY7Rl60pVQBvVQf190gqNuY=";
|
hash = "sha256-+g/1F/v8nTVbvtSrtyvQbeYacjTlfRpg+Htu0lRlkcU=";
|
||||||
};
|
};
|
||||||
|
|
||||||
sourceRoot = "${finalAttrs.src.name}/Ladybird";
|
patches = [
|
||||||
|
./nixos-font-path.patch
|
||||||
|
];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
sed -i '/iconutil/d' CMakeLists.txt
|
sed -i '/iconutil/d' CMakeLists.txt
|
||||||
|
|
||||||
# Don't set absolute paths in RPATH
|
# Don't set absolute paths in RPATH
|
||||||
substituteInPlace ../Meta/CMake/lagom_install_options.cmake \
|
substituteInPlace Meta/CMake/lagom_install_options.cmake \
|
||||||
--replace-fail "\''${CMAKE_INSTALL_BINDIR}" "bin" \
|
--replace-fail "\''${CMAKE_INSTALL_BINDIR}" "bin" \
|
||||||
--replace-fail "\''${CMAKE_INSTALL_LIBDIR}" "lib"
|
--replace-fail "\''${CMAKE_INSTALL_LIBDIR}" "lib"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
|
cd Ladybird
|
||||||
|
|
||||||
# Setup caches for LibLocale, LibUnicode, LibTimezone, LibTLS and LibGfx
|
# Setup caches for LibLocale, LibUnicode, LibTimezone, LibTLS and LibGfx
|
||||||
# Note that the versions of the input data packages must match the
|
# Note that the versions of the input data packages must match the
|
||||||
# expected version in the package's CMake.
|
# expected version in the package's CMake.
|
||||||
|
|
||||||
|
# Check that the versions match
|
||||||
|
grep -F 'set(CLDR_VERSION "${cldr_version}")' ../Meta/CMake/locale_data.cmake || (echo cldr_version mismatch && exit 1)
|
||||||
|
grep -F 'set(TZDB_VERSION "${tzdata.version}")' ../Meta/CMake/time_zone_data.cmake || (echo tzdata.version mismatch && exit 1)
|
||||||
|
grep -F 'set(CACERT_VERSION "${cacert_version}")' ../Meta/CMake/ca_certificates_data.cmake || (echo cacert_version mismatch && exit 1)
|
||||||
|
|
||||||
mkdir -p build/Caches
|
mkdir -p build/Caches
|
||||||
|
|
||||||
ln -s ${cldr-json} build/Caches/CLDR
|
ln -s ${cldr-json} build/Caches/CLDR
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
diff --git a/Userland/Libraries/LibCore/StandardPaths.cpp b/Userland/Libraries/LibCore/StandardPaths.cpp
|
||||||
|
index 77ddbeb9..76481497 100644
|
||||||
|
--- a/Userland/Libraries/LibCore/StandardPaths.cpp
|
||||||
|
+++ b/Userland/Libraries/LibCore/StandardPaths.cpp
|
||||||
|
@@ -205,6 +205,7 @@ ErrorOr<Vector<String>> StandardPaths::font_directories()
|
||||||
|
"/Library/Fonts"_string,
|
||||||
|
TRY(String::formatted("{}/Library/Fonts"sv, home_directory())),
|
||||||
|
# else
|
||||||
|
+ "/run/current-system/sw/share/X11/fonts"_string,
|
||||||
|
"/usr/share/fonts"_string,
|
||||||
|
"/usr/local/share/fonts"_string,
|
||||||
|
TRY(String::formatted("{}/.local/share/fonts"sv, home_directory())),
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
, fetchurl
|
, fetchurl
|
||||||
, perl
|
, perl
|
||||||
, buildsystem
|
, buildsystem
|
||||||
, iconv
|
, libiconv
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
@@ -18,7 +18,8 @@ stdenv.mkDerivation (finalAttrs: {
|
|||||||
buildInputs = [
|
buildInputs = [
|
||||||
perl
|
perl
|
||||||
buildsystem
|
buildsystem
|
||||||
iconv
|
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||||
|
libiconv
|
||||||
];
|
];
|
||||||
|
|
||||||
makeFlags = [
|
makeFlags = [
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "palemoon-bin";
|
pname = "palemoon-bin";
|
||||||
version = "33.1.0";
|
version = "33.1.1";
|
||||||
|
|
||||||
src = finalAttrs.passthru.sources."gtk${if withGTK3 then "3" else "2"}";
|
src = finalAttrs.passthru.sources."gtk${if withGTK3 then "3" else "2"}";
|
||||||
|
|
||||||
@@ -158,11 +158,11 @@ stdenv.mkDerivation (finalAttrs: {
|
|||||||
in {
|
in {
|
||||||
gtk3 = fetchzip {
|
gtk3 = fetchzip {
|
||||||
urls = urlRegionVariants "gtk3";
|
urls = urlRegionVariants "gtk3";
|
||||||
hash = "sha256-qjztSvNL7KNFG3sszgk5qH77do0HFQ8YTrgjFi2ZM00=";
|
hash = "sha256-0i0hXC6mC1SY2V6ANMXHS4LZ/HZk8FUsSDQfQUE14IM=";
|
||||||
};
|
};
|
||||||
gtk2 = fetchzip {
|
gtk2 = fetchzip {
|
||||||
urls = urlRegionVariants "gtk2";
|
urls = urlRegionVariants "gtk2";
|
||||||
hash = "sha256-q4zAmnCN9SHGb8PthjAx7d5FKq/oAQ8c0R+U1SWqjAA=";
|
hash = "sha256-RnBlCxIsWxm6BbtAS0YKHtix93N6t9jihFItqhtLhRU=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -215,7 +215,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||||||
# TODO free, redistributable? Has strict limitations on what modifications may be done & shipped by packagers
|
# TODO free, redistributable? Has strict limitations on what modifications may be done & shipped by packagers
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
maintainers = with maintainers; [ AndersonTorres OPNA2608 ];
|
maintainers = with maintainers; [ OPNA2608 ];
|
||||||
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
||||||
mainProgram = "palemoon";
|
mainProgram = "palemoon";
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = [ "x86_64-linux" ];
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
k3sVersion = "1.28.9+k3s1";
|
k3sVersion = "1.28.10+k3s1";
|
||||||
k3sCommit = "289a1a3edbc0f6ee5a7f91bf96aa1ed1b743bd1f";
|
k3sCommit = "a4c5612ea3dd202135e7c691c534c671a7d43690";
|
||||||
k3sRepoSha256 = "0kms6r10k6v037r5lxxrp90bnynrgyrn61kqnzy2f5avny4blikh";
|
k3sRepoSha256 = "00r06kc98nvbmaai8m2pbqsl0v6y3kbc3rz3l7lb9wy4qhiyxrww";
|
||||||
k3sVendorHash = "sha256-iUp2Maua3BnrC4Jq2ij0uOW5gYYZfz6e+TEdDtN0PT8=";
|
k3sVendorHash = "sha256-8PbpjPVX+Yimhwbydu9YOTIMRTf/iLG21Ee/QMowp5Y=";
|
||||||
chartVersions = import ./chart-versions.nix;
|
chartVersions = import ./chart-versions.nix;
|
||||||
k3sRootVersion = "0.12.2";
|
k3sRootVersion = "0.12.2";
|
||||||
k3sRootSha256 = "1gjynvr350qni5mskgm7pcc7alss4gms4jmkiv453vs8mmma9c9k";
|
k3sRootSha256 = "1gjynvr350qni5mskgm7pcc7alss4gms4jmkiv453vs8mmma9c9k";
|
||||||
|
|||||||
@@ -1,61 +1,83 @@
|
|||||||
{ lib, python3Packages, fetchPypi, stdenv }:
|
{
|
||||||
|
lib,
|
||||||
|
stdenv,
|
||||||
|
python3Packages,
|
||||||
|
fetchPypi,
|
||||||
|
}:
|
||||||
|
|
||||||
python3Packages.buildPythonApplication rec {
|
python3Packages.buildPythonApplication rec {
|
||||||
pname = "dyndnsc";
|
pname = "dyndnsc";
|
||||||
version = "0.6.1";
|
version = "0.6.1";
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
sha256 = "13078d29eea2f9a4ca01f05676c3309ead5e341dab047e0d51c46f23d4b7fbb4";
|
hash = "sha256-EweNKe6i+aTKAfBWdsMwnq1eNB2rBH4NUcRvI9S3+7Q=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
substituteInPlace setup.py --replace "bottle==" "bottle>="
|
substituteInPlace setup.py \
|
||||||
|
--replace-fail '"pytest-runner"' ""
|
||||||
'';
|
'';
|
||||||
|
|
||||||
nativeBuildInputs = with python3Packages; [ pytest-runner ];
|
pythonRelaxDeps = [ "bottle" ];
|
||||||
propagatedBuildInputs = with python3Packages; [
|
|
||||||
|
build-system = with python3Packages; [ setuptools ];
|
||||||
|
|
||||||
|
nativeBuildInputs = with python3Packages; [ pythonRelaxDepsHook ];
|
||||||
|
|
||||||
|
dependencies = with python3Packages; [
|
||||||
daemonocle
|
daemonocle
|
||||||
dnspython
|
dnspython
|
||||||
|
json-logging
|
||||||
netifaces
|
netifaces
|
||||||
requests
|
requests
|
||||||
json-logging
|
|
||||||
setuptools
|
setuptools
|
||||||
];
|
];
|
||||||
nativeCheckInputs = with python3Packages; [ bottle mock pytest-console-scripts pytestCheckHook ];
|
|
||||||
|
|
||||||
disabledTests = [
|
nativeCheckInputs = with python3Packages; [
|
||||||
# dnswanip connects to an external server to discover the
|
bottle
|
||||||
# machine's IP address.
|
pytest-console-scripts
|
||||||
"dnswanip"
|
pytestCheckHook
|
||||||
] ++ lib.optionals stdenv.isDarwin [
|
|
||||||
# The tests that spawn a server using Bottle cannot be run on
|
|
||||||
# macOS or Windows as the default multiprocessing start method
|
|
||||||
# on those platforms is 'spawn', which requires the code to be
|
|
||||||
# run to be picklable, which this code isn't.
|
|
||||||
# Additionaly, other start methods are unsafe and prone to failure
|
|
||||||
# on macOS; see https://bugs.python.org/issue33725.
|
|
||||||
"BottleServer"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
disabledTests =
|
||||||
|
[
|
||||||
|
# dnswanip connects to an external server to discover the
|
||||||
|
# machine's IP address.
|
||||||
|
"dnswanip"
|
||||||
|
# AssertionError
|
||||||
|
"test_null_dummy"
|
||||||
|
]
|
||||||
|
++ lib.optionals stdenv.isDarwin [
|
||||||
|
# The tests that spawn a server using Bottle cannot be run on
|
||||||
|
# macOS or Windows as the default multiprocessing start method
|
||||||
|
# on those platforms is 'spawn', which requires the code to be
|
||||||
|
# run to be picklable, which this code isn't.
|
||||||
|
# Additionaly, other start methods are unsafe and prone to failure
|
||||||
|
# on macOS; see https://bugs.python.org/issue33725.
|
||||||
|
"BottleServer"
|
||||||
|
];
|
||||||
# Allow tests that bind or connect to localhost on macOS.
|
# Allow tests that bind or connect to localhost on macOS.
|
||||||
__darwinAllowLocalNetworking = true;
|
__darwinAllowLocalNetworking = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Dynamic DNS update client with support for multiple protocols";
|
description = "Dynamic DNS update client with support for multiple protocols";
|
||||||
mainProgram = "dyndnsc";
|
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
Dyndnsc is a command line client for sending updates to Dynamic
|
Dyndnsc is a command line client for sending updates to Dynamic
|
||||||
DNS (DDNS, DynDNS) services. It supports multiple protocols and
|
DNS (DDNS, DynDNS) services. It supports multiple protocols and
|
||||||
services, and it has native support for IPv6. The configuration
|
services, and it has native support for IPv6. The configuration
|
||||||
file allows using foreign, but compatible services. Dyndnsc
|
file allows using foreign, but compatible services. Dyndnsc
|
||||||
ships many different IP detection mechanisms, support for
|
ships many different IP detection mechanisms, support for
|
||||||
configuring multiple services in one place and it has a daemon
|
configuring multiple services in one place and it has a daemon
|
||||||
mode for running unattended. It has a plugin system to provide
|
mode for running unattended. It has a plugin system to provide
|
||||||
external notification services.
|
external notification services.
|
||||||
'';
|
'';
|
||||||
homepage = "https://github.com/infothrill/python-dyndnsc";
|
homepage = "https://github.com/infothrill/python-dyndnsc";
|
||||||
|
changelog = "https://github.com/infothrill/python-dyndnsc/releases/tag/${version}";
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
maintainers = with maintainers; [ AluisioASG ];
|
maintainers = with maintainers; [ AluisioASG ];
|
||||||
|
mainProgram = "dyndnsc";
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
, gnome-desktop
|
, gnome-desktop
|
||||||
, gspell
|
, gspell
|
||||||
, gtk4
|
, gtk4
|
||||||
|
, gtksourceview5
|
||||||
, gst_all_1
|
, gst_all_1
|
||||||
, json-glib
|
, json-glib
|
||||||
, libgcrypt
|
, libgcrypt
|
||||||
@@ -28,17 +29,17 @@
|
|||||||
, plugins ? [ ]
|
, plugins ? [ ]
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "chatty";
|
pname = "chatty";
|
||||||
version = "0.8.2";
|
version = "0.8.3";
|
||||||
|
|
||||||
src = fetchFromGitLab {
|
src = fetchFromGitLab {
|
||||||
domain = "gitlab.gnome.org";
|
domain = "gitlab.gnome.org";
|
||||||
owner = "World";
|
owner = "World";
|
||||||
repo = "Chatty";
|
repo = "Chatty";
|
||||||
rev = "v${version}";
|
rev = "v${finalAttrs.version}";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
hash = "sha256-7SdoN9JjGwELOdISJwS1Afcydp/rE2uq/tHO/UrFKNU=";
|
hash = "sha256-Ywed/8PhOgmzcka+5dyxjmWTcDBPF90LW+C2eeQmyLo=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
@@ -59,6 +60,7 @@ stdenv.mkDerivation rec {
|
|||||||
gnome-desktop
|
gnome-desktop
|
||||||
gspell
|
gspell
|
||||||
gtk4
|
gtk4
|
||||||
|
gtksourceview5
|
||||||
gst_all_1.gstreamer
|
gst_all_1.gstreamer
|
||||||
json-glib
|
json-glib
|
||||||
libgcrypt
|
libgcrypt
|
||||||
@@ -82,9 +84,9 @@ stdenv.mkDerivation rec {
|
|||||||
description = "XMPP and SMS messaging via libpurple and ModemManager";
|
description = "XMPP and SMS messaging via libpurple and ModemManager";
|
||||||
mainProgram = "chatty";
|
mainProgram = "chatty";
|
||||||
homepage = "https://gitlab.gnome.org/World/Chatty";
|
homepage = "https://gitlab.gnome.org/World/Chatty";
|
||||||
changelog = "https://gitlab.gnome.org/World/Chatty/-/blob/${src.rev}/NEWS";
|
changelog = "https://gitlab.gnome.org/World/Chatty/-/blob/${finalAttrs.src.rev}/NEWS";
|
||||||
license = licenses.gpl3Plus;
|
license = licenses.gpl3Plus;
|
||||||
maintainers = with maintainers; [ dotlambda ];
|
maintainers = with maintainers; [ dotlambda ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
})
|
||||||
|
|||||||
@@ -3,14 +3,14 @@ let
|
|||||||
versions =
|
versions =
|
||||||
if stdenv.isLinux then {
|
if stdenv.isLinux then {
|
||||||
stable = "0.0.54";
|
stable = "0.0.54";
|
||||||
ptb = "0.0.84";
|
ptb = "0.0.85";
|
||||||
canary = "0.0.382";
|
canary = "0.0.402";
|
||||||
development = "0.0.18";
|
development = "0.0.19";
|
||||||
} else {
|
} else {
|
||||||
stable = "0.0.303";
|
stable = "0.0.305";
|
||||||
ptb = "0.0.113";
|
ptb = "0.0.114";
|
||||||
canary = "0.0.492";
|
canary = "0.0.510";
|
||||||
development = "0.0.40";
|
development = "0.0.41";
|
||||||
};
|
};
|
||||||
version = versions.${branch};
|
version = versions.${branch};
|
||||||
srcs = rec {
|
srcs = rec {
|
||||||
@@ -21,33 +21,33 @@ let
|
|||||||
};
|
};
|
||||||
ptb = fetchurl {
|
ptb = fetchurl {
|
||||||
url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
|
url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
|
||||||
hash = "sha256-0bOsmy2ldZT7S4tVOkihE5eLiujXC/ugF8CKXfBXHNU=";
|
hash = "sha256-2RyilxldJX2wqKlEcrp6srj0O7UNHMxySRJD1xBfqMk=";
|
||||||
};
|
};
|
||||||
canary = fetchurl {
|
canary = fetchurl {
|
||||||
url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
|
url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
|
||||||
hash = "sha256-MXMq4V+21KPHoCUs5x1rNRbkfw6+3cF7xSSNguiqOfc=";
|
hash = "sha256-YE+sHmEkUCHLflSUgf4aotWWdzhbFyzozc3vLcJ96yA=";
|
||||||
};
|
};
|
||||||
development = fetchurl {
|
development = fetchurl {
|
||||||
url = "https://dl-development.discordapp.net/apps/linux/${version}/discord-development-${version}.tar.gz";
|
url = "https://dl-development.discordapp.net/apps/linux/${version}/discord-development-${version}.tar.gz";
|
||||||
hash = "sha256-SoJ4/jXl0axQyeqv8CPSzM+lBsYq/QelHctRAeoscdA=";
|
hash = "sha256-RP6SUM4DW3JhddSbJX6Xg8EE4iqCkSOgBL1oa7Zwp/E=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
x86_64-darwin = {
|
x86_64-darwin = {
|
||||||
stable = fetchurl {
|
stable = fetchurl {
|
||||||
url = "https://dl.discordapp.net/apps/osx/${version}/Discord.dmg";
|
url = "https://dl.discordapp.net/apps/osx/${version}/Discord.dmg";
|
||||||
hash = "sha256-B4r0W//d3761ufQr4PAt4ZuPMrOC7Zfo8Q3lHqKxkJ0=";
|
hash = "sha256-UEKsweUvtVKXZDrdIYuo3FPSPrnY3ECIilntBs9ZrGU=";
|
||||||
};
|
};
|
||||||
ptb = fetchurl {
|
ptb = fetchurl {
|
||||||
url = "https://dl-ptb.discordapp.net/apps/osx/${version}/DiscordPTB.dmg";
|
url = "https://dl-ptb.discordapp.net/apps/osx/${version}/DiscordPTB.dmg";
|
||||||
hash = "sha256-hdT33jK0nHvY3rIh9i1eDq5j46xS9xInRxzGCUP/hi8=";
|
hash = "sha256-ahCgJ1aSLL7Mhx5Jjkeuqqlis8gqxHbIhQvlbUK2wIU=";
|
||||||
};
|
};
|
||||||
canary = fetchurl {
|
canary = fetchurl {
|
||||||
url = "https://dl-canary.discordapp.net/apps/osx/${version}/DiscordCanary.dmg";
|
url = "https://dl-canary.discordapp.net/apps/osx/${version}/DiscordCanary.dmg";
|
||||||
hash = "sha256-74XQu4PGW3eW4wPICGsAVlR4SQkDXJWZ1p/G7Bwq950=";
|
hash = "sha256-viWOmu1+6tpzNDN/q0kXRMo+rohOP6/L7ke2EeBEADg=";
|
||||||
};
|
};
|
||||||
development = fetchurl {
|
development = fetchurl {
|
||||||
url = "https://dl-development.discordapp.net/apps/osx/${version}/DiscordDevelopment.dmg";
|
url = "https://dl-development.discordapp.net/apps/osx/${version}/DiscordDevelopment.dmg";
|
||||||
hash = "sha256-uPz3uWPAqp3JeL9E+coMrb2Hc+Zn0YGF9Jw3BTKYRlw=";
|
hash = "sha256-RiGyca/zjPpENgcq9KnRh5G4YArrUOQeueUdUBgZgjo=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
aarch64-darwin = x86_64-darwin;
|
aarch64-darwin = x86_64-darwin;
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
{
|
{
|
||||||
"version" = "1.11.66";
|
"version" = "1.11.67";
|
||||||
"hashes" = {
|
"hashes" = {
|
||||||
"desktopSrcHash" = "sha256-QrFk6NIHvWgQuJz33CEU6rwmgtGZ9w3L9vqj/rdCkE8=";
|
"desktopSrcHash" = "sha256-oM4/PKydmIBp2zVbzJRbVYnklYO2IHH7ZBV4MfLxnQo=";
|
||||||
"desktopYarnHash" = "1kin5z6cjgsljdhh5f4fq2782ld86pza6hz58rq1zwbd187nzbwz";
|
"desktopYarnHash" = "04dbsacigq5jrh7gpyxj31grwzsg58cy6d4y7k3hmcwd4gj68iid";
|
||||||
"webSrcHash" = "sha256-xWaK2tHsuZmiwp7HExX83zKL8Z0ScRCEOnfxePWk2KI=";
|
"webSrcHash" = "sha256-faJiuAmEIEkNrwjgU06XT9J2NxJrJNIsPb1K5WXR0Lc=";
|
||||||
"webYarnHash" = "1ykjpsg4d4kykd6w7c0yjyg8ljpc9czzwjx7ab27i84ys6pknx3q";
|
"webYarnHash" = "14sy3by840gbxqyvhwaj5k07hvhcsj300s39qjfsg1sx9fnfzck3";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,44 +57,25 @@
|
|||||||
, wayland
|
, wayland
|
||||||
, wrapGAppsHook3
|
, wrapGAppsHook3
|
||||||
, xdg-utils
|
, xdg-utils
|
||||||
|
, writeScript
|
||||||
|
|
||||||
# for custom command line arguments, e.g. "--use-gl=desktop"
|
# for custom command line arguments, e.g. "--use-gl=desktop"
|
||||||
, commandLineArgs ? ""
|
, commandLineArgs ? ""
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
let
|
||||||
version = "6.9.20";
|
sources = {
|
||||||
pname = "feishu";
|
x86_64-linux = fetchurl {
|
||||||
packageHash = "6085d1c4"; # A hash value used in the download url
|
url = "https://sf3-cn.feishucdn.com/obj/ee-appcenter/7e382fc2/Feishu-linux_x64-7.15.13.deb";
|
||||||
|
sha256 = "sha256-CyQmQKfyYcWqpty5LxTNqm73AVnPdm7biBwICkbBEco=";
|
||||||
src = fetchurl {
|
};
|
||||||
url = "https://sf3-cn.feishucdn.com/obj/ee-appcenter/${packageHash}/Feishu-linux_x64-${version}.deb";
|
aarch64-linux = fetchurl {
|
||||||
hash = "sha256-kg5j/vWaCBUjnF983kk0ZMJ+inF5z5ctED9+ITuIn94=";
|
url = "https://sf3-cn.feishucdn.com/obj/ee-appcenter/4c8c2fbf/Feishu-linux_arm64-7.15.13.deb";
|
||||||
|
sha256 = "sha256-nxtu5xOafZ1tlN/f0+5VF2I6ISfHmPJTztOI+AQwp9c=";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
supportedPlatforms = [ "x86_64-linux" "aarch64-linux" ];
|
||||||
autoPatchelfHook
|
|
||||||
makeShellWrapper
|
|
||||||
dpkg
|
|
||||||
];
|
|
||||||
|
|
||||||
buildInputs = [
|
|
||||||
gtk3
|
|
||||||
|
|
||||||
# for autopatchelf
|
|
||||||
alsa-lib
|
|
||||||
cups
|
|
||||||
curl
|
|
||||||
libXdamage
|
|
||||||
libXtst
|
|
||||||
libdrm
|
|
||||||
libgcrypt
|
|
||||||
libpulseaudio
|
|
||||||
libxshmfence
|
|
||||||
mesa
|
|
||||||
nspr
|
|
||||||
nss
|
|
||||||
];
|
|
||||||
|
|
||||||
rpath = lib.makeLibraryPath [
|
rpath = lib.makeLibraryPath [
|
||||||
alsa-lib
|
alsa-lib
|
||||||
@@ -149,6 +130,36 @@ stdenv.mkDerivation rec {
|
|||||||
wayland
|
wayland
|
||||||
xdg-utils
|
xdg-utils
|
||||||
];
|
];
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
version = "7.15.13";
|
||||||
|
pname = "feishu";
|
||||||
|
|
||||||
|
src = sources.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
autoPatchelfHook
|
||||||
|
makeShellWrapper
|
||||||
|
dpkg
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
gtk3
|
||||||
|
|
||||||
|
# for autopatchelf
|
||||||
|
alsa-lib
|
||||||
|
cups
|
||||||
|
curl
|
||||||
|
libXdamage
|
||||||
|
libXtst
|
||||||
|
libdrm
|
||||||
|
libgcrypt
|
||||||
|
libpulseaudio
|
||||||
|
libxshmfence
|
||||||
|
mesa
|
||||||
|
nspr
|
||||||
|
nss
|
||||||
|
];
|
||||||
|
|
||||||
dontUnpack = true;
|
dontUnpack = true;
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
@@ -189,12 +200,38 @@ stdenv.mkDerivation rec {
|
|||||||
ln -sf ${curl}/lib/libcurl.so $out/opt/bytedance/feishu/libcurl.so
|
ln -sf ${curl}/lib/libcurl.so $out/opt/bytedance/feishu/libcurl.so
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
passthru = {
|
||||||
|
inherit sources;
|
||||||
|
updateScript = writeScript "update-feishu.sh" ''
|
||||||
|
#!/usr/bin/env nix-shell
|
||||||
|
#!nix-shell -i bash -p curl jq common-updater-scripts
|
||||||
|
|
||||||
|
for platform in ${lib.escapeShellArgs supportedPlatforms}; do
|
||||||
|
if [ $platform = "x86_64-linux" ]; then
|
||||||
|
platform_id=10
|
||||||
|
elif [ $platform = "aarch64-linux" ]; then
|
||||||
|
platform_id=12
|
||||||
|
else
|
||||||
|
echo "Unsupported platform: $platform"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
package_info=$(curl -sf "https://www.feishu.cn/api/package_info?platform=$platform_id")
|
||||||
|
update_link=$(echo $package_info | jq -r '.data.download_link' | sed 's/lf[0-9]*-ug-sign.feishucdn.com/sf3-cn.feishucdn.com\/obj/;s/?.*$//')
|
||||||
|
new_version=$(echo $package_info | jq -r '.data.version_number' | sed -n 's/.*@V//p')
|
||||||
|
sha256_hash=$(nix-prefetch-url $update_link)
|
||||||
|
sri_hash=$(nix hash to-sri --type sha256 $sha256_hash)
|
||||||
|
update-source-version feishu 0 ${lib.fakeSha256} --system=$platform --source-key="sources.$platform"
|
||||||
|
update-source-version feishu $new_version $sri_hash $update_link --system=$platform --source-key="sources.$platform"
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "An all-in-one collaboration suite";
|
description = "An all-in-one collaboration suite";
|
||||||
homepage = "https://www.feishu.cn/en/";
|
homepage = "https://www.feishu.cn/en/";
|
||||||
downloadPage = "https://www.feishu.cn/en/#en_home_download_block";
|
downloadPage = "https://www.feishu.cn/en/#en_home_download_block";
|
||||||
license = licenses.unfree;
|
license = licenses.unfree;
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = supportedPlatforms;
|
||||||
maintainers = with maintainers; [ billhuang ];
|
maintainers = with maintainers; [ billhuang ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,14 +63,14 @@ let
|
|||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "telegram-desktop";
|
pname = "telegram-desktop";
|
||||||
version = "5.0.1";
|
version = "5.0.6";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "telegramdesktop";
|
owner = "telegramdesktop";
|
||||||
repo = "tdesktop";
|
repo = "tdesktop";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
hash = "sha256-GKKlcNcFPXslyjE7u5t+VLOiEXY8RYjYvBNL+WjpeeY=";
|
hash = "sha256-n3WeyGQCw9fbA/1hZ85mqdm5xuBLjy9qHMcVRb4cmAg=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
|
|||||||
@@ -56,11 +56,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "webex";
|
pname = "webex";
|
||||||
version = "43.11.0.28947";
|
version = "44.5.0.29672";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://binaries.webex.com/WebexDesktop-Ubuntu-Gold/20240311173044/Webex_ubuntu.7z";
|
url = "https://binaries.webex.com/WebexDesktop-Ubuntu-Gold/20240521091053/Webex_ubuntu.7z";
|
||||||
sha256 = "f84669a2cd974435c6c0f8a6dc5a62c4ef01a3848e36ffcc8077f718be4a3b86";
|
sha256 = "e155c280d15f2db4b5e638f244319dbec938d6de267f2fed1b4ba2b55fbb8a9b";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|||||||
@@ -22,11 +22,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "evolution-ews";
|
pname = "evolution-ews";
|
||||||
version = "3.52.1";
|
version = "3.52.2";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||||
hash = "sha256-TR9OlipFClJnADNQiaOQfZgMB2Z/q9Vmmag06Z2HSrI=";
|
hash = "sha256-qVUPG1PUdANt0jmWJ7MRjrO4QxhBztwO3yFFewlhkUE=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/src/EWS/calendar/e-cal-backend-ews-utils.c b/src/EWS/calendar/e-cal-backend-ews-utils.c
|
diff --git a/src/EWS/calendar/e-cal-backend-ews-utils.c b/src/EWS/calendar/e-cal-backend-ews-utils.c
|
||||||
index b7c65ae..b334198 100644
|
index 87b02c6..3fabca6 100644
|
||||||
--- a/src/EWS/calendar/e-cal-backend-ews-utils.c
|
--- a/src/EWS/calendar/e-cal-backend-ews-utils.c
|
||||||
+++ b/src/EWS/calendar/e-cal-backend-ews-utils.c
|
+++ b/src/EWS/calendar/e-cal-backend-ews-utils.c
|
||||||
@@ -2425,7 +2425,19 @@ e_cal_backend_ews_get_configured_evolution_icaltimezone (void)
|
@@ -2484,7 +2484,19 @@ e_cal_backend_ews_get_configured_evolution_icaltimezone (void)
|
||||||
if (schema) {
|
if (schema) {
|
||||||
GSettings *settings;
|
GSettings *settings;
|
||||||
|
|
||||||
@@ -24,10 +24,10 @@ index b7c65ae..b334198 100644
|
|||||||
if (g_settings_get_boolean (settings, "use-system-timezone"))
|
if (g_settings_get_boolean (settings, "use-system-timezone"))
|
||||||
location = e_cal_util_get_system_timezone_location ();
|
location = e_cal_util_get_system_timezone_location ();
|
||||||
diff --git a/src/EWS/camel/camel-ews-utils.c b/src/EWS/camel/camel-ews-utils.c
|
diff --git a/src/EWS/camel/camel-ews-utils.c b/src/EWS/camel/camel-ews-utils.c
|
||||||
index dbd9adb..a2372a4 100644
|
index 44a20d6..90d5729 100644
|
||||||
--- a/src/EWS/camel/camel-ews-utils.c
|
--- a/src/EWS/camel/camel-ews-utils.c
|
||||||
+++ b/src/EWS/camel/camel-ews-utils.c
|
+++ b/src/EWS/camel/camel-ews-utils.c
|
||||||
@@ -1553,7 +1553,18 @@ ews_utils_save_category_changes (GHashTable *old_categories, /* gchar *guid ~> C
|
@@ -1554,7 +1554,18 @@ ews_utils_save_category_changes (GHashTable *old_categories, /* gchar *guid ~> C
|
||||||
|
|
||||||
evo_labels = g_ptr_array_new_full (5, g_free);
|
evo_labels = g_ptr_array_new_full (5, g_free);
|
||||||
|
|
||||||
|
|||||||
@@ -44,11 +44,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "evolution";
|
pname = "evolution";
|
||||||
version = "3.52.1";
|
version = "3.52.2";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/evolution/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
url = "mirror://gnome/sources/evolution/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||||
hash = "sha256-aNrtER2t42GMpwjss8q0zZO6UC9a6dXnlwc8OhPinek=";
|
hash = "sha256-pIt0EtE+2sdPbAms+mdmVuahLt8AMM3cJgKawE2j5VE=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|||||||
@@ -11,13 +11,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "dayon";
|
pname = "dayon";
|
||||||
version = "14.0.0";
|
version = "14.0.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "RetGal";
|
owner = "RetGal";
|
||||||
repo = "dayon";
|
repo = "dayon";
|
||||||
rev = "v${finalAttrs.version}";
|
rev = "v${finalAttrs.version}";
|
||||||
hash = "sha256-cUaWfOpR0sNq8cRghZVW9mTVhJ5us12/lzucxetiVkg=";
|
hash = "sha256-7XrgPrYKhaUvmXxiZLsduzrbyZRHjPSo+fg4BvlatHQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ let
|
|||||||
}.${stdenv.hostPlatform.system};
|
}.${stdenv.hostPlatform.system};
|
||||||
|
|
||||||
sha256 = {
|
sha256 = {
|
||||||
aarch64-linux = "0plpwymm1bgzbzwk2689lw1fadxdwxzzn5dmayk1ayxz1k3pj9wi";
|
aarch64-linux = "sha256-HFuxmMo0m4UOxEQVd32LGvbFsOS8jwCCCS6K/YJIIBE=";
|
||||||
armv7l-linux = "1pvr8f1ccl4nyfmshn3v3jfaa5x519rsy57g4pdapffj10vpbkb8";
|
armv7l-linux = "sha256-JMgYvqkaRw5sfjbKybAkk28KT12+c19dMir2DUN7Ub0=";
|
||||||
x86_64-linux = "sha256-hr/mPOrliP8Dej3DVE2+wYkb1J789WCkkY3xe9EcM44=";
|
x86_64-linux = "sha256-hr/mPOrliP8Dej3DVE2+wYkb1J789WCkkY3xe9EcM44=";
|
||||||
}.${stdenv.hostPlatform.system};
|
}.${stdenv.hostPlatform.system};
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
|
|||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://github.com/ncbi/sra-tools";
|
homepage = "https://github.com/ncbi/sra-tools";
|
||||||
description = "The SRA Toolkit and SDK from NCBI is a collection of tools and libraries for using data in the INSDC Sequence Read Archives.";
|
description = "The SRA Toolkit and SDK from NCBI is a collection of tools and libraries for using data in the INSDC Sequence Read Archives.";
|
||||||
license = licenses.publicDomain;
|
license = licenses.ncbiPd;
|
||||||
maintainers = with maintainers; [ thyol ];
|
maintainers = with maintainers; [ thyol ];
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = [ "x86_64-linux" ];
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
From 206084d2e08198b0b5b67733c407bd3fb74affb1 Mon Sep 17 00:00:00 2001
|
From 714f5ebe9ade721abdccf58edfcddba52465cb8d Mon Sep 17 00:00:00 2001
|
||||||
From: Jiajie Chen <c@jia.je>
|
From: Jiajie Chen <c@jia.je>
|
||||||
Date: Sun, 2 Jul 2023 22:43:27 +0800
|
Date: Sun, 2 Jul 2023 22:43:27 +0800
|
||||||
Subject: [PATCH] Do not download sources in cmake
|
Subject: [PATCH] Do not download sources in cmake
|
||||||
@@ -8,7 +8,7 @@ Subject: [PATCH] Do not download sources in cmake
|
|||||||
1 file changed, 1 insertion(+), 10 deletions(-)
|
1 file changed, 1 insertion(+), 10 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/solvers/CMakeLists.txt b/src/solvers/CMakeLists.txt
|
diff --git a/src/solvers/CMakeLists.txt b/src/solvers/CMakeLists.txt
|
||||||
index 8bfcf4d13c..6ba858a461 100644
|
index daa0853a57..4bcbbdaa47 100644
|
||||||
--- a/src/solvers/CMakeLists.txt
|
--- a/src/solvers/CMakeLists.txt
|
||||||
+++ b/src/solvers/CMakeLists.txt
|
+++ b/src/solvers/CMakeLists.txt
|
||||||
@@ -123,16 +123,6 @@ foreach(SOLVER ${sat_impl})
|
@@ -123,16 +123,6 @@ foreach(SOLVER ${sat_impl})
|
||||||
@@ -16,11 +16,11 @@ index 8bfcf4d13c..6ba858a461 100644
|
|||||||
message(STATUS "Building solvers with cadical")
|
message(STATUS "Building solvers with cadical")
|
||||||
|
|
||||||
- download_project(PROJ cadical
|
- download_project(PROJ cadical
|
||||||
- URL https://github.com/arminbiere/cadical/archive/rel-1.5.3.tar.gz
|
- URL https://github.com/arminbiere/cadical/archive/rel-1.7.2.tar.gz
|
||||||
- PATCH_COMMAND patch -p1 -i ${CBMC_SOURCE_DIR}/../scripts/cadical-1.5.3-patch
|
- PATCH_COMMAND patch -p1 -i ${CBMC_SOURCE_DIR}/../scripts/cadical-1.7.2-patch
|
||||||
- COMMAND cmake -E copy ${CBMC_SOURCE_DIR}/../scripts/cadical_CMakeLists.txt CMakeLists.txt
|
- COMMAND cmake -E copy ${CBMC_SOURCE_DIR}/../scripts/cadical_CMakeLists.txt CMakeLists.txt
|
||||||
- COMMAND ./configure
|
- COMMAND ./configure
|
||||||
- URL_MD5 265b1a715000ed3c5b6de36ddd1278a0
|
- URL_MD5 be646831a017f81b300664e58deba1b5
|
||||||
- )
|
- )
|
||||||
-
|
-
|
||||||
- add_subdirectory(${cadical_SOURCE_DIR} ${cadical_BINARY_DIR})
|
- add_subdirectory(${cadical_SOURCE_DIR} ${cadical_BINARY_DIR})
|
||||||
@@ -32,10 +32,10 @@ index 8bfcf4d13c..6ba858a461 100644
|
|||||||
target_include_directories(solvers
|
target_include_directories(solvers
|
||||||
PUBLIC
|
PUBLIC
|
||||||
${cadical_SOURCE_DIR}/src
|
${cadical_SOURCE_DIR}/src
|
||||||
+ ${cadical_INCLUDE_DIR}
|
+ ${cadical_INCLUDE_DIR}
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(solvers cadical)
|
target_link_libraries(solvers cadical)
|
||||||
--
|
--
|
||||||
2.40.1
|
2.42.0
|
||||||
|
|
||||||
|
|||||||
@@ -13,13 +13,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "cbmc";
|
pname = "cbmc";
|
||||||
version = "5.91.0";
|
version = "5.95.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "diffblue";
|
owner = "diffblue";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "${pname}-${version}";
|
rev = "${pname}-${version}";
|
||||||
sha256 = "sha256-7DzhGEDS9T6WIjGoxOw9Gf/q+tYNFJDPbQUBV3tbn/I=";
|
sha256 = "sha256-fDLSo5EeHyPTliAqFp+5mfaB0iZXIMXeMyF21fjl5k4=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
@@ -82,7 +82,7 @@ stdenv.mkDerivation rec {
|
|||||||
license = licenses.bsdOriginal;
|
license = licenses.bsdOriginal;
|
||||||
maintainers = with maintainers; [ jiegec ];
|
maintainers = with maintainers; [ jiegec ];
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
# https://github.com/diffblue/cbmc/issues/7423
|
# error: no member named 'aligned_alloc' in the global namespace
|
||||||
broken = stdenv.isLinux && stdenv.isAarch64;
|
broken = stdenv.isDarwin && stdenv.isx86_64;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
{ lib, stdenv, runtimeShell, fetchFromGitHub, fetchpatch, ocaml, findlib, num, camlp5, camlp-streams }:
|
{ lib, stdenv, runtimeShell, fetchFromGitHub, fetchpatch, ocaml, findlib, num, zarith, camlp5, camlp-streams }:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
use_zarith = lib.versionAtLeast ocaml.version "4.14";
|
||||||
load_num =
|
load_num =
|
||||||
lib.optionalString (num != null) ''
|
if use_zarith then ''
|
||||||
|
-I ${zarith}/lib/ocaml/${ocaml.version}/site-lib/zarith \
|
||||||
|
-I ${zarith}/lib/ocaml/${ocaml.version}/site-lib/stublibs \
|
||||||
|
'' else lib.optionalString (num != null) ''
|
||||||
-I ${num}/lib/ocaml/${ocaml.version}/site-lib/num \
|
-I ${num}/lib/ocaml/${ocaml.version}/site-lib/num \
|
||||||
-I ${num}/lib/ocaml/${ocaml.version}/site-lib/top-num \
|
-I ${num}/lib/ocaml/${ocaml.version}/site-lib/top-num \
|
||||||
-I ${num}/lib/ocaml/${ocaml.version}/site-lib/stublibs \
|
-I ${num}/lib/ocaml/${ocaml.version}/site-lib/stublibs \
|
||||||
@@ -22,18 +26,15 @@ let
|
|||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
|
|
||||||
lib.throwIf (lib.versionAtLeast ocaml.version "5.0")
|
|
||||||
"hol_light is not available for OCaml ${ocaml.version}"
|
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
pname = "hol_light";
|
pname = "hol_light";
|
||||||
version = "unstable-2023-11-03";
|
version = "unstable-2024-05-10";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "jrh13";
|
owner = "jrh13";
|
||||||
repo = "hol-light";
|
repo = "hol-light";
|
||||||
rev = "dcd765c6032f52a0c0bf21fce5da4794a823e880";
|
rev = "d8366986e22555c4e4c8ff49667d646d15c35f14";
|
||||||
hash = "sha256-k2RBNDo4tc3eobKB84Y2xr0UQJvef0hv6jyFCaDCQFM=";
|
hash = "sha256-dN9X7yQlFof759I5lxxL4DxDe8V3XAhCRaryO9NabY4=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
@@ -46,7 +47,10 @@ stdenv.mkDerivation {
|
|||||||
strictDeps = true;
|
strictDeps = true;
|
||||||
|
|
||||||
nativeBuildInputs = [ ocaml findlib camlp5 ];
|
nativeBuildInputs = [ ocaml findlib camlp5 ];
|
||||||
propagatedBuildInputs = [ camlp-streams num ];
|
propagatedBuildInputs = [
|
||||||
|
camlp-streams
|
||||||
|
(if use_zarith then zarith else num)
|
||||||
|
];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p "$out/lib/hol_light" "$out/bin"
|
mkdir -p "$out/lib/hol_light" "$out/bin"
|
||||||
|
|||||||
@@ -1,20 +1,27 @@
|
|||||||
{ lib, stdenv, fetchurl, sbcl, libX11, libXpm, libICE, libSM, libXt, libXau, libXdmcp }:
|
{ lib, stdenv, fetchFromGitHub, sbcl, libX11, libXpm, libICE, libSM, libXt, libXau, libXdmcp }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "fricas";
|
pname = "fricas";
|
||||||
version = "1.3.9";
|
version = "1.3.10";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchFromGitHub {
|
||||||
url = "mirror://sourceforge/fricas/fricas/${version}/fricas-${version}-full.tar.bz2";
|
owner = "fricas";
|
||||||
sha256 = "sha256-5RPcffM0GN0l6r8IgHJlwdxwwp2y4kIdJ5M3JnGZCzc=";
|
repo = "fricas";
|
||||||
|
rev = version;
|
||||||
|
sha256 = "sha256-T1xDndDnHq/hmhTWWO3Eu0733u8+C8sJMCF6pbLU2GI=";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ sbcl libX11 libXpm libICE libSM libXt libXau libXdmcp ];
|
buildInputs = [ sbcl libX11 libXpm libICE libSM libXt libXau libXdmcp ];
|
||||||
|
|
||||||
|
# Remove when updating to next version
|
||||||
|
configurePhase = ''
|
||||||
|
./configure --prefix=$out --with-lisp='sbcl --dynamic-space-size 3072'
|
||||||
|
'';
|
||||||
|
|
||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "https://fricas.sourceforge.net/";
|
homepage = "https://fricas.github.io";
|
||||||
description = "An advanced computer algebra system";
|
description = "An advanced computer algebra system";
|
||||||
license = lib.licenses.bsd3;
|
license = lib.licenses.bsd3;
|
||||||
|
|
||||||
|
|||||||
@@ -61,12 +61,19 @@ stdenv.mkDerivation rec {
|
|||||||
hash = "sha256-uCXchYx26DdxTjR1k2748KCEHPnekKS2fAM7SpyhNvM=";
|
hash = "sha256-uCXchYx26DdxTjR1k2748KCEHPnekKS2fAM7SpyhNvM=";
|
||||||
})
|
})
|
||||||
|
|
||||||
# https://github.com/sagemath/sage/pull/37763
|
# https://github.com/sagemath/sage/pull/37763, landed in 10.4.beta2
|
||||||
(fetchpatch {
|
(fetchpatch {
|
||||||
name = "scipy-fault-tolerance.patch";
|
name = "scipy-fault-tolerance.patch";
|
||||||
url = "https://github.com/sagemath/sage/commit/547d502ed56f9fd44eb5d9b4ee0824746c60fef7.diff";
|
url = "https://github.com/sagemath/sage/commit/551139c09f26a5da96b1187c3f0dd17b8d80ef84.diff";
|
||||||
hash = "sha256-PR4przrZ3ieHaW2nSY7l7VhNfrUupu9yCIrXpeyoAgg=";
|
hash = "sha256-PR4przrZ3ieHaW2nSY7l7VhNfrUupu9yCIrXpeyoAgg=";
|
||||||
})
|
})
|
||||||
|
|
||||||
|
# first two commits from https://github.com/sagemath/sage/pull/38100
|
||||||
|
(fetchpatch {
|
||||||
|
name = "sphinx-7.3-update.patch";
|
||||||
|
url = "https://github.com/sagemath/sage/compare/10.4.beta7...d2932e142991b442a3eee5dc4f8949e3f7e6fe5c.patch";
|
||||||
|
hash = "sha256-g6w0ImE0d2ocKnbGMQikcz9eI9r3/gESlA1NrQfGimk=";
|
||||||
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
# Patches needed because of package updates. We could just pin the versions of
|
# Patches needed because of package updates. We could just pin the versions of
|
||||||
|
|||||||
@@ -24,10 +24,6 @@ stdenv.mkDerivation rec {
|
|||||||
export HOME="$TMPDIR/sage_home"
|
export HOME="$TMPDIR/sage_home"
|
||||||
mkdir -p "$HOME"
|
mkdir -p "$HOME"
|
||||||
|
|
||||||
# adapted from src/doc/Makefile (doc-src target), which tries to call Sage from PATH
|
|
||||||
mkdir -p $SAGE_DOC_SRC_OVERRIDE/en/reference/repl
|
|
||||||
${sage-with-env}/bin/sage -advanced > $SAGE_DOC_SRC_OVERRIDE/en/reference/repl/options.txt
|
|
||||||
|
|
||||||
# needed to link them in the sage docs using intersphinx
|
# needed to link them in the sage docs using intersphinx
|
||||||
export PPLPY_DOCS=${python3.pkgs.pplpy.doc}/share/doc/pplpy
|
export PPLPY_DOCS=${python3.pkgs.pplpy.doc}/share/doc/pplpy
|
||||||
|
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ buildGoModule rec {
|
|||||||
description = "Git with a cup of tea";
|
description = "Git with a cup of tea";
|
||||||
homepage = "https://gitea.io";
|
homepage = "https://gitea.io";
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
maintainers = with maintainers; [ disassembler kolaente ma27 techknowlogick ];
|
maintainers = with maintainers; [ ma27 techknowlogick SuperSandro2000 ];
|
||||||
broken = stdenv.isDarwin;
|
broken = stdenv.isDarwin;
|
||||||
mainProgram = "gitea";
|
mainProgram = "gitea";
|
||||||
};
|
};
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user