mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-07-25 18:10:37 +00:00
Compare commits
681 Commits
dependabot
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4ad1e78bb6 | ||
|
|
ec01aa24a0 | ||
|
|
cc1396afd1 | ||
|
|
b2a8a65ad0 | ||
|
|
610928778e | ||
|
|
1169e0abeb | ||
|
|
4d1e3ff59e | ||
|
|
adcdea620d | ||
|
|
56de350dcd | ||
|
|
e9ca7aa0bd | ||
|
|
ae2c2f465e | ||
|
|
ca59ee9ad2 | ||
|
|
0361d27e98 | ||
|
|
50febbbce7 | ||
|
|
4076bf8495 | ||
|
|
2f88416c69 | ||
|
|
2f4a136ec7 | ||
|
|
337eba0612 | ||
|
|
e6994d7d89 | ||
|
|
997a0b100d | ||
|
|
c7ecec0ae3 | ||
|
|
c41ff93dad | ||
|
|
aa47e78b28 | ||
|
|
cea6971180 | ||
|
|
f491c9ef41 | ||
|
|
55a5ffdda8 | ||
|
|
11d31fc14e | ||
|
|
3d5bfdf361 | ||
|
|
90b33c2f2d | ||
|
|
36d67faffa | ||
|
|
9705e3bf68 | ||
|
|
d28d49d4a4 | ||
|
|
3988a1454b | ||
|
|
36e3d11cf2 | ||
|
|
c2e917178d | ||
|
|
ea14011c43 | ||
|
|
40dbc22cd8 | ||
|
|
6b7fb8f2ce | ||
|
|
3baf5a75f4 | ||
|
|
ba2fbde84c | ||
|
|
37bfb33419 | ||
|
|
25a327121b | ||
|
|
87ab7b5bde | ||
|
|
95d4c6bc0b | ||
|
|
add81a03c2 | ||
|
|
f79d8318a2 | ||
|
|
45c46c594f | ||
|
|
039d87ba01 | ||
|
|
88c98a0d79 | ||
|
|
630bb08227 | ||
|
|
2252d3e2ad | ||
|
|
10b08b8854 | ||
|
|
10438afccd | ||
|
|
122a9f7be6 | ||
|
|
081e6f29ef | ||
|
|
9a75b2270a | ||
|
|
138f9b0486 | ||
|
|
7a610a393f | ||
|
|
a75c838377 | ||
|
|
976a38d3a8 | ||
|
|
d271bcee7e | ||
|
|
bd3349d2db | ||
|
|
f8dc89327e | ||
|
|
acb0147cce | ||
|
|
e3e28ba32a | ||
|
|
827022194a | ||
|
|
d13603be1d | ||
|
|
335d4b802d | ||
|
|
d92de35181 | ||
|
|
cfe6a78499 | ||
|
|
25fca87ec6 | ||
|
|
7f5568e6cf | ||
|
|
1968d142a8 | ||
|
|
5e002b0a52 | ||
|
|
897981fe69 | ||
|
|
4664e700a0 | ||
|
|
25f9933883 | ||
|
|
bf57aa089b | ||
|
|
beafba482d | ||
|
|
03502b7d6a | ||
|
|
166a63ea12 | ||
|
|
50c0be3803 | ||
|
|
9922327b5b | ||
|
|
5cd6f09987 | ||
|
|
863d0e6c48 | ||
|
|
0812368cb9 | ||
|
|
6853058efa | ||
|
|
f3ca8c8be6 | ||
|
|
d654dd76ab | ||
|
|
883b729777 | ||
|
|
f22784b1b7 | ||
|
|
e9518a982a | ||
|
|
3c293e782c | ||
|
|
edcd9e9929 | ||
|
|
9bb5bf1ea8 | ||
|
|
eafe84dfd8 | ||
|
|
f9eab6eaf1 | ||
|
|
ba4c9417bd | ||
|
|
d60fdc080d | ||
|
|
99dc0aad21 | ||
|
|
7bffb8137a | ||
|
|
66bd9979a5 | ||
|
|
8ce69b14f4 | ||
|
|
d782d6e1db | ||
|
|
d4ddaa94ab | ||
|
|
c57addab0d | ||
|
|
1993a70695 | ||
|
|
5f7d67a4e1 | ||
|
|
d71f49f361 | ||
|
|
12ed470109 | ||
|
|
bfc41e6078 | ||
|
|
1c8bd6f104 | ||
|
|
8d462aa3e6 | ||
|
|
061490506c | ||
|
|
c2ce3cdea7 | ||
|
|
fcb270ccb9 | ||
|
|
7ac4a2b500 | ||
|
|
be2807d4fc | ||
|
|
b48ac115da | ||
|
|
7b882f05f2 | ||
|
|
56931fcce4 | ||
|
|
0f2cca0b37 | ||
|
|
90136fe8a3 | ||
|
|
c3a6c7546f | ||
|
|
2c73b96824 | ||
|
|
052a8a41df | ||
|
|
3a843f2b5a | ||
|
|
328e42b4f8 | ||
|
|
e51a4d900d | ||
|
|
eee706d3b9 | ||
|
|
36188b18a1 | ||
|
|
b6df579bc5 | ||
|
|
a0382bc1a4 | ||
|
|
94edb80278 | ||
|
|
7822200edd | ||
|
|
8b49416599 | ||
|
|
967b5e7105 | ||
|
|
ec69cf3f7b | ||
|
|
38affae6a5 | ||
|
|
9e3461d3ed | ||
|
|
9de8e0f7e2 | ||
|
|
65e299ca3b | ||
|
|
e0166b2fe1 | ||
|
|
6c534f04d3 | ||
|
|
76ffe07b40 | ||
|
|
59fdf1c191 | ||
|
|
8eb42e621f | ||
|
|
b0dbf02481 | ||
|
|
3ac61b583e | ||
|
|
649f551194 | ||
|
|
b6daa60814 | ||
|
|
92fdff41d6 | ||
|
|
3f38696610 | ||
|
|
f35962ee24 | ||
|
|
be5fbdd94f | ||
|
|
57e38620ce | ||
|
|
1e3e322248 | ||
|
|
461ce04b99 | ||
|
|
b002a5b1ec | ||
|
|
955d274ac2 | ||
|
|
611eeadc37 | ||
|
|
aee66850fb | ||
|
|
1045bcf482 | ||
|
|
9b6f782419 | ||
|
|
109e19daf6 | ||
|
|
cdca3edfe9 | ||
|
|
5ad3074a6c | ||
|
|
87f1cd6f4b | ||
|
|
350b25e579 | ||
|
|
b19aa3bf5f | ||
|
|
c2d648625c | ||
|
|
02763c6450 | ||
|
|
6ce157fcd7 | ||
|
|
ccd93dcec1 | ||
|
|
05bb946302 | ||
|
|
c6ca7a20f1 | ||
|
|
500dca3897 | ||
|
|
6701006109 | ||
|
|
1055989ba1 | ||
|
|
a16f93f8da | ||
|
|
6d37c01148 | ||
|
|
cc56d7d0b1 | ||
|
|
4c818080da | ||
|
|
ea4c60137f | ||
|
|
d37727ba4b | ||
|
|
3665b4066c | ||
|
|
0359400aa9 | ||
|
|
0de0ef693b | ||
|
|
09d9cc74a8 | ||
|
|
e589763ae0 | ||
|
|
c485262d71 | ||
|
|
701b3fd657 | ||
|
|
cbf83bb332 | ||
|
|
f6ac678e71 | ||
|
|
a08dbb1895 | ||
|
|
cfb5b9e004 | ||
|
|
5371195501 | ||
|
|
a016e17772 | ||
|
|
c3d0233c44 | ||
|
|
81bab3b656 | ||
|
|
ec830498eb | ||
|
|
77c44d7620 | ||
|
|
64cb9bd361 | ||
|
|
a4757b8f04 | ||
|
|
fff884de70 | ||
|
|
727e7c8c18 | ||
|
|
8909a37ad7 | ||
|
|
e770f303ab | ||
|
|
cb187f88a6 | ||
|
|
109e168b03 | ||
|
|
d1fd431204 | ||
|
|
4f22b00129 | ||
|
|
bf07185d12 | ||
|
|
f792c8b081 | ||
|
|
c705f56ade | ||
|
|
02508d54de | ||
|
|
e50015067e | ||
|
|
97bfa8844f | ||
|
|
eb15dc97ed | ||
|
|
e332270ea5 | ||
|
|
15ba2518a6 | ||
|
|
eb7e56fe88 | ||
|
|
f86bce2497 | ||
|
|
7ce5dd4b46 | ||
|
|
c9ba965d27 | ||
|
|
d52ef5bf8e | ||
|
|
4e2415b3c2 | ||
|
|
1d6cffe216 | ||
|
|
e305a74907 | ||
|
|
3027fb64b8 | ||
|
|
9f42db501a | ||
|
|
6c8710c402 | ||
|
|
50043785fd | ||
|
|
af4df060ce | ||
|
|
695a57795e | ||
|
|
b5226d1719 | ||
|
|
ab74782632 | ||
|
|
94c16d0b28 | ||
|
|
8046b0ab06 | ||
|
|
21cd9f606c | ||
|
|
7f4d5f5150 | ||
|
|
0d7bf2685c | ||
|
|
2af4a6ff4e | ||
|
|
4ae4f7eefc | ||
|
|
bdde951191 | ||
|
|
218492e3fd | ||
|
|
e96360c808 | ||
|
|
7c932793bc | ||
|
|
d5082056e8 | ||
|
|
b7f82704e1 | ||
|
|
9712d26ef9 | ||
|
|
2c4cf4741f | ||
|
|
262b73cdac | ||
|
|
1092529c3c | ||
|
|
ca3cf20814 | ||
|
|
4224881cd3 | ||
|
|
4ade157c13 | ||
|
|
dadd34efa5 | ||
|
|
cf8f9a948b | ||
|
|
7e2b0b8940 | ||
|
|
07b1045a9a | ||
|
|
54589fbd7f | ||
|
|
e752fb6f9b | ||
|
|
2e2217a926 | ||
|
|
84dfa193cc | ||
|
|
15f82caf64 | ||
|
|
e3a7f62aef | ||
|
|
7a0be4de73 | ||
|
|
2c8252c3ce | ||
|
|
2a9b1cd7fe | ||
|
|
150524f7c5 | ||
|
|
652a42169a | ||
|
|
42ee263153 | ||
|
|
4ed9282b38 | ||
|
|
84d8f3192d | ||
|
|
365ae9df82 | ||
|
|
cc451f6f16 | ||
|
|
b62e831e2a | ||
|
|
ffc0a72876 | ||
|
|
da5159f6a1 | ||
|
|
4bb6931ece | ||
|
|
d251e33662 | ||
|
|
8ec6732059 | ||
|
|
10c7200856 | ||
|
|
4cae4b3c6f | ||
|
|
b73f61f3cf | ||
|
|
e6dfc63a96 | ||
|
|
8c17dc43e6 | ||
|
|
93839536a9 | ||
|
|
678dc485da | ||
|
|
85827cfaea | ||
|
|
d6046d01f7 | ||
|
|
bf4a5e11d8 | ||
|
|
9fb8aa39da | ||
|
|
ff43882229 | ||
|
|
f3c1aefa7e | ||
|
|
e938fe14a6 | ||
|
|
32a211061d | ||
|
|
1723ce8e43 | ||
|
|
536a57b20c | ||
|
|
ca13045764 | ||
|
|
8221591d02 | ||
|
|
46bdfbbdc3 | ||
|
|
e0c8b3d1f3 | ||
|
|
0c2541ecfe | ||
|
|
0ab6051f20 | ||
|
|
272733a96e | ||
|
|
37c4594180 | ||
|
|
48c4d62b4b | ||
|
|
1798f18cb3 | ||
|
|
e6273cfc20 | ||
|
|
7ac4dabe31 | ||
|
|
e50b232150 | ||
|
|
c3fc243d97 | ||
|
|
3cc4aa291f | ||
|
|
6d9739f56b | ||
|
|
61e996b956 | ||
|
|
899cb4f33f | ||
|
|
c09f84d213 | ||
|
|
7767d2d630 | ||
|
|
309ab30368 | ||
|
|
b4c9c728f8 | ||
|
|
f7efeb9a53 | ||
|
|
d1dee40ff4 | ||
|
|
6881940beb | ||
|
|
69c6bfdc28 | ||
|
|
e29c342b51 | ||
|
|
ac1872b9b2 | ||
|
|
c6bf2630be | ||
|
|
85a911fc0d | ||
|
|
df67284750 | ||
|
|
eb79d55347 | ||
|
|
f82c86f5bb | ||
|
|
429b020c34 | ||
|
|
fda32d161b | ||
|
|
928ccf6805 | ||
|
|
56248bef93 | ||
|
|
3bb102ca7a | ||
|
|
541a6f371f | ||
|
|
1ac1dd3921 | ||
|
|
13fb0d5440 | ||
|
|
1a3ea561d1 | ||
|
|
03875d08c6 | ||
|
|
298470e6ef | ||
|
|
907e4a1b0a | ||
|
|
107ded67f4 | ||
|
|
baa5134c8c | ||
|
|
a294471a87 | ||
|
|
e735971f40 | ||
|
|
04ab5deb54 | ||
|
|
6b38ccd029 | ||
|
|
5ad797de88 | ||
|
|
c9e32bea44 | ||
|
|
22e21de490 | ||
|
|
d160615781 | ||
|
|
f60d1def01 | ||
|
|
7a5a944720 | ||
|
|
e2ee5d659c | ||
|
|
415c904c32 | ||
|
|
b807ad6326 | ||
|
|
56f0fbf371 | ||
|
|
ca2336b2e1 | ||
|
|
c9bc82d15e | ||
|
|
78db27d15d | ||
|
|
d1e0d72118 | ||
|
|
ef352191bf | ||
|
|
e1d8cecb10 | ||
|
|
2d3b04cda6 | ||
|
|
3cae914df3 | ||
|
|
3282e39d76 | ||
|
|
cdf7d7fb7f | ||
|
|
ac51e3d00c | ||
|
|
5f4b90832a | ||
|
|
ccf57f6b6e | ||
|
|
fcc1ed358a | ||
|
|
ebb9d83237 | ||
|
|
147b034486 | ||
|
|
62a6469796 | ||
|
|
30ea67b413 | ||
|
|
d97cc5ffd3 | ||
|
|
98f8cb2a05 | ||
|
|
b3d424c470 | ||
|
|
0496e76144 | ||
|
|
6da6feecca | ||
|
|
4df96755d8 | ||
|
|
519b09fb67 | ||
|
|
fcca17d3bc | ||
|
|
99e05fc3bd | ||
|
|
2f08d9917d | ||
|
|
f835cdefcf | ||
|
|
0850c0b3ac | ||
|
|
7973d8b26b | ||
|
|
ad932d1fd3 | ||
|
|
478374d337 | ||
|
|
7f81d69cbd | ||
|
|
305dec47a0 | ||
|
|
ed57a72664 | ||
|
|
bc47122f88 | ||
|
|
ffd30adc5e | ||
|
|
88baa85a42 | ||
|
|
3623c698de | ||
|
|
dcac82fa9c | ||
|
|
3176ba89ef | ||
|
|
9553aca9ba | ||
|
|
ea676ee756 | ||
|
|
c5aa7aeb94 | ||
|
|
8c17b48f97 | ||
|
|
a7c8e0f639 | ||
|
|
89cbb7aedf | ||
|
|
bd80c36df1 | ||
|
|
995455de29 | ||
|
|
23f2849e4d | ||
|
|
1d23401a4c | ||
|
|
5af4939525 | ||
|
|
1224551e6f | ||
|
|
2f99d4b241 | ||
|
|
00b024aca8 | ||
|
|
6136e0cb87 | ||
|
|
42f1ee5671 | ||
|
|
79f626e44d | ||
|
|
95262a5ae6 | ||
|
|
c18098875a | ||
|
|
2f112eca9f | ||
|
|
27f3979cd6 | ||
|
|
416c431888 | ||
|
|
a25913208f | ||
|
|
0f6cb15a6e | ||
|
|
be67562a83 | ||
|
|
8b46b40885 | ||
|
|
5c6ef18219 | ||
|
|
9aa48b8d21 | ||
|
|
5095b37d42 | ||
|
|
4a05c518db | ||
|
|
0442655034 | ||
|
|
61fec0f154 | ||
|
|
a9ccaf6a84 | ||
|
|
9a6119e934 | ||
|
|
62a9834dd1 | ||
|
|
7da4a394c7 | ||
|
|
e91e44aa56 | ||
|
|
99e8a23e99 | ||
|
|
539ad7384e | ||
|
|
8d011180ab | ||
|
|
7f072a5804 | ||
|
|
c8e953f1d8 | ||
|
|
acb4abd4e7 | ||
|
|
89448b2f04 | ||
|
|
860764791e | ||
|
|
c7303f221f | ||
|
|
ed07e7939e | ||
|
|
3a5370418d | ||
|
|
08216c0776 | ||
|
|
b8d772e059 | ||
|
|
44b386b2a2 | ||
|
|
4a407333f0 | ||
|
|
477164bab6 | ||
|
|
0712e4c80c | ||
|
|
e07672624f | ||
|
|
0c9d1fd9ea | ||
|
|
8cf990d70a | ||
|
|
3255983a75 | ||
|
|
9b863e4cd0 | ||
|
|
e2cffc0a5c | ||
|
|
5e4f499882 | ||
|
|
b76019df47 | ||
|
|
121838ea38 | ||
|
|
c1a8e6a47b | ||
|
|
e2a84e800f | ||
|
|
853436323b | ||
|
|
3469750718 | ||
|
|
ffda085150 | ||
|
|
49bd9f2e5b | ||
|
|
bd26f1f818 | ||
|
|
016e2c79d7 | ||
|
|
c41521d750 | ||
|
|
be45d1efa9 | ||
|
|
196ae695a8 | ||
|
|
117e971984 | ||
|
|
18a7730f6d | ||
|
|
3b13238e82 | ||
|
|
6b1008c206 | ||
|
|
35cd5d05a3 | ||
|
|
0df9218754 | ||
|
|
227c3aace0 | ||
|
|
59a7bc5c00 | ||
|
|
be5718f147 | ||
|
|
d46c595b68 | ||
|
|
6510f521d2 | ||
|
|
63a0f8d361 | ||
|
|
0d1584d9a5 | ||
|
|
cd458b3060 | ||
|
|
d023bf99fc | ||
|
|
ba6ce6b6ed | ||
|
|
fbc18a8d8e | ||
|
|
e1a1d24502 | ||
|
|
3fb687bc93 | ||
|
|
2e373d58f2 | ||
|
|
da2c4ec79d | ||
|
|
0a646acd33 | ||
|
|
d306537ce5 | ||
|
|
e29beaedae | ||
|
|
bdac3e6488 | ||
|
|
50ffb811f2 | ||
|
|
3cc7f6670b | ||
|
|
bce8519978 | ||
|
|
94ee5b23fd | ||
|
|
a8123e72b1 | ||
|
|
f44b368058 | ||
|
|
f4828f51ce | ||
|
|
8d7de1dbf3 | ||
|
|
051b5bd2a1 | ||
|
|
692af60b39 | ||
|
|
219598aadc | ||
|
|
84d9ee391d | ||
|
|
af5d9aee4c | ||
|
|
2a44180545 | ||
|
|
afe9261484 | ||
|
|
cd3449310a | ||
|
|
6b49f09f43 | ||
|
|
7b8046769a | ||
|
|
dd33eb376c | ||
|
|
8bc31fc9ce | ||
|
|
6c91565ad2 | ||
|
|
a60d2c4cfe | ||
|
|
1b084ad11c | ||
|
|
9a53e8c5d0 | ||
|
|
3140920577 | ||
|
|
92d262e38f | ||
|
|
6f487b1045 | ||
|
|
bbcfe19c74 | ||
|
|
998099c713 | ||
|
|
a2d7b92fac | ||
|
|
d246206ea5 | ||
|
|
199a125add | ||
|
|
0c4174ba30 | ||
|
|
388b7a4dd8 | ||
|
|
64813887b9 | ||
|
|
eee63f36b5 | ||
|
|
33d2376650 | ||
|
|
c23a585e43 | ||
|
|
d3b43efb1a | ||
|
|
57d8597675 | ||
|
|
91143144f9 | ||
|
|
aa0453ecab | ||
|
|
38e360011a | ||
|
|
da38e61aad | ||
|
|
33ac8e1f85 | ||
|
|
8e8674d341 | ||
|
|
dccf4dbaf9 | ||
|
|
20eadf53b9 | ||
|
|
8fe243fe5d | ||
|
|
45368b0f72 | ||
|
|
d798258c7a | ||
|
|
ffc8c1c9eb | ||
|
|
97087f83d5 | ||
|
|
d5f13bd4cd | ||
|
|
cc1c0d2189 | ||
|
|
d04c68fa44 | ||
|
|
17f903b426 | ||
|
|
660ede29a5 | ||
|
|
fabab5f177 | ||
|
|
e7c911fdff | ||
|
|
9dca5046aa | ||
|
|
d8b0e9e4fe | ||
|
|
74a8d352e6 | ||
|
|
85c515b33c | ||
|
|
b5eaa1ed39 | ||
|
|
c69b570af0 | ||
|
|
2bb98e5d8d | ||
|
|
514e596cd3 | ||
|
|
aa14d09fcc | ||
|
|
d398c58ef9 | ||
|
|
062c353c7a | ||
|
|
04a1424e8c | ||
|
|
aa8ba28e9f | ||
|
|
4145a381b6 | ||
|
|
93989c506f | ||
|
|
5fce61b024 | ||
|
|
ce938e9be9 | ||
|
|
a69f1b2463 | ||
|
|
9687ba06b1 | ||
|
|
3720822ed9 | ||
|
|
0cd0aa285e | ||
|
|
536da04b81 | ||
|
|
38bf1d29cd | ||
|
|
e20dc30419 | ||
|
|
9b79d0afb5 | ||
|
|
f3d131212a | ||
|
|
d5a6c65fef | ||
|
|
99800dd6b5 | ||
|
|
ce01b16cd6 | ||
|
|
1724d46f5b | ||
|
|
7e71cc6192 | ||
|
|
2855a5fd55 | ||
|
|
90a6722c59 | ||
|
|
a13544bb9e | ||
|
|
6f7c0ea9c6 | ||
|
|
6d4751efc4 | ||
|
|
75ca7215b5 | ||
|
|
82878a8688 | ||
|
|
3e8b8d5454 | ||
|
|
f3d4047b6a | ||
|
|
091d5fc06b | ||
|
|
2cc2d0808c | ||
|
|
bc557b7168 | ||
|
|
9dd5455aee | ||
|
|
4731ec200a | ||
|
|
a1836fd3b1 | ||
|
|
5646e24be6 | ||
|
|
fc4bc79dcb | ||
|
|
0595fb2f6b | ||
|
|
14a94467e4 | ||
|
|
636eb966e3 | ||
|
|
3018f55da9 | ||
|
|
542b4d7055 | ||
|
|
8235925918 | ||
|
|
b6239b6591 | ||
|
|
6fef7d6bb0 | ||
|
|
36fd2c52cf | ||
|
|
422436fc18 | ||
|
|
b3e5a4f9d7 | ||
|
|
afa90ed54e | ||
|
|
138a53d672 | ||
|
|
ee2dd5f389 | ||
|
|
c504fe64e2 | ||
|
|
5ae7702a20 | ||
|
|
e022b86ee8 | ||
|
|
0798b868b6 | ||
|
|
5cb2dbb287 | ||
|
|
7ba2995d80 | ||
|
|
4d617ddeb7 | ||
|
|
4eb834661e | ||
|
|
f7cfbad134 | ||
|
|
0cae472909 | ||
|
|
736003fbad | ||
|
|
706bc06df6 | ||
|
|
a4805bc6c9 | ||
|
|
cb97856984 | ||
|
|
6cf631626c | ||
|
|
89be98d540 | ||
|
|
36c1b83668 | ||
|
|
eb88f6df7c | ||
|
|
28f54c2d43 | ||
|
|
7c447c32bd | ||
|
|
57b0e5e803 | ||
|
|
698a70e9fe | ||
|
|
38028ca267 | ||
|
|
02b0484ccc | ||
|
|
a4e12c0f65 | ||
|
|
1df0faa0ca | ||
|
|
00c97895aa | ||
|
|
56f89898da | ||
|
|
3d32e0705a | ||
|
|
573018d964 | ||
|
|
608690995f | ||
|
|
253475c406 | ||
|
|
4b55fc928b | ||
|
|
64f1104dea | ||
|
|
3172f85a7e | ||
|
|
f40e1287c3 | ||
|
|
b276999b1f | ||
|
|
fabe4a9ad0 | ||
|
|
46714b0550 | ||
|
|
9ca5a1b103 | ||
|
|
1bfac9c378 | ||
|
|
c210d6bb89 | ||
|
|
174e0a3aa3 | ||
|
|
775b868546 | ||
|
|
e6c219c3d7 | ||
|
|
c72f684b1d | ||
|
|
aaba92e0cc | ||
|
|
320f4f3e95 | ||
|
|
35a12eb082 | ||
|
|
dbeaedd040 | ||
|
|
f941d78c5a | ||
|
|
c45e9fd973 | ||
|
|
0c29ab05e4 | ||
|
|
8bb7c16a50 | ||
|
|
c5d51591b4 | ||
|
|
9f5d0e782d | ||
|
|
83419e790f |
6
.github/workflows/bot.yml
vendored
6
.github/workflows/bot.yml
vendored
@@ -88,7 +88,7 @@ jobs:
|
||||
GH_TOKEN: ${{ steps.app-token.outputs.token || github.token }}
|
||||
run: gh api /rate_limit | jq
|
||||
|
||||
- uses: actions/labeler@b8dd2d9be0f68b860e7dae5dae7d772984eacd6d # v6.2.0
|
||||
- uses: actions/labeler@bf12e9b00b37c5c0ca2b87b79b2daf7891dbda13 # v7.0.0
|
||||
name: Labels from touched files
|
||||
if: |
|
||||
github.event_name == 'pull_request_target' &&
|
||||
@@ -98,7 +98,7 @@ jobs:
|
||||
configuration-path: .github/labeler.yml # default
|
||||
sync-labels: true
|
||||
|
||||
- uses: actions/labeler@b8dd2d9be0f68b860e7dae5dae7d772984eacd6d # v6.2.0
|
||||
- uses: actions/labeler@bf12e9b00b37c5c0ca2b87b79b2daf7891dbda13 # v7.0.0
|
||||
name: Labels from touched files (no sync)
|
||||
if: |
|
||||
github.event_name == 'pull_request_target' &&
|
||||
@@ -108,7 +108,7 @@ jobs:
|
||||
configuration-path: .github/labeler-no-sync.yml
|
||||
sync-labels: false
|
||||
|
||||
- uses: actions/labeler@b8dd2d9be0f68b860e7dae5dae7d772984eacd6d # v6.2.0
|
||||
- uses: actions/labeler@bf12e9b00b37c5c0ca2b87b79b2daf7891dbda13 # v7.0.0
|
||||
name: Labels from touched files (development branches)
|
||||
# Development branches like staging-next, haskell-updates and python-updates get special labels.
|
||||
# This is to avoid the mass of labels there, which is mostly useless - and really annoying for
|
||||
|
||||
@@ -9,9 +9,22 @@
|
||||
},
|
||||
"branch": "nixpkgs-unstable",
|
||||
"submodules": false,
|
||||
"revision": "421eebfd0ec7bccd4abe826ce62d7e6e83129493",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/421eebfd0ec7bccd4abe826ce62d7e6e83129493.tar.gz",
|
||||
"hash": "sha256:1lxfhfgiv1sz2v7fg43gny57sa6wf59n98q7ldsyb2p06f4sal7w"
|
||||
"revision": "7525d999cd850b9a488817abc89c75dc733acf17",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/7525d999cd850b9a488817abc89c75dc733acf17.tar.gz",
|
||||
"hash": "sha256-4IHyyLgLBdKefkljdKod4IMn023pQiDXAWJA187cmdY="
|
||||
},
|
||||
"nixpkgs-26.05-darwin": {
|
||||
"type": "Git",
|
||||
"repository": {
|
||||
"type": "GitHub",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs"
|
||||
},
|
||||
"branch": "nixpkgs-26.05-darwin",
|
||||
"submodules": false,
|
||||
"revision": "51fe96f9107566e6b8eeb7fc4ba696c01e548b04",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/51fe96f9107566e6b8eeb7fc4ba696c01e548b04.tar.gz",
|
||||
"hash": "sha256-yj0LPLnsmYoLmA3FGANjeTEwej0/DHjZBXWnDQDUuIs="
|
||||
}
|
||||
},
|
||||
"version": 8
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
&& system != "riscv64-linux"
|
||||
# Exclude x86_64-freebsd because "Package ‘go-1.22.12-freebsd-amd64-bootstrap’ in /nix/store/0yw40qnrar3lvc5hax5n49abl57apjbn-source/pkgs/development/compilers/go/binary.nix:50 is not available on the requested hostPlatform"
|
||||
&& system != "x86_64-freebsd"
|
||||
) (forAllSystems (system: (import ./ci { inherit system; }).fmt.pkg));
|
||||
# TODO: revert to importing fmt.pkg directly from ./ci when support for 26.05 ends
|
||||
) (forAllSystems (system: (import ./shell.nix { inherit system; }).formatter));
|
||||
|
||||
/**
|
||||
A nested structure of [packages](https://nix.dev/manual/nix/latest/glossary#package-attribute-set) and other values.
|
||||
|
||||
@@ -1259,6 +1259,11 @@ lib.mapAttrs mkLicense (
|
||||
fullName = "SIL Open Font License 1.1";
|
||||
};
|
||||
|
||||
ogluk30 = {
|
||||
spdxId = "OGL-UK-3.0";
|
||||
fullName = "Open Government Licence v3.0";
|
||||
};
|
||||
|
||||
oml = {
|
||||
spdxId = "OML";
|
||||
fullName = "Open Market License";
|
||||
@@ -1421,9 +1426,8 @@ lib.mapAttrs mkLicense (
|
||||
};
|
||||
|
||||
stk = {
|
||||
shortName = "stk";
|
||||
fullName = "Synthesis Tool Kit 4.3";
|
||||
url = "https://github.com/thestk/stk/blob/master/LICENSE";
|
||||
spdxId = "MIT-STK";
|
||||
fullName = "MIT-STK License";
|
||||
};
|
||||
|
||||
sudo = {
|
||||
|
||||
@@ -3423,13 +3423,6 @@
|
||||
githubId = 32903896;
|
||||
keys = [ { fingerprint = "CB5C 7B3C 3E6F 2A59 A583 A90A 8A60 0376 7BE9 5976"; } ];
|
||||
};
|
||||
benesim = {
|
||||
name = "Benjamin Isbarn";
|
||||
email = "benjamin.isbarn@gmail.com";
|
||||
github = "BeneSim";
|
||||
githubId = 29384538;
|
||||
keys = [ { fingerprint = "D35E C9CE E631 638F F1D8 B401 6F0E 410D C3EE D02"; } ];
|
||||
};
|
||||
bengsparks = {
|
||||
email = "benjamin.sparks@protonmail.com";
|
||||
github = "bengsparks";
|
||||
@@ -7340,6 +7333,13 @@
|
||||
githubId = 39825;
|
||||
name = "Dominik Honnef";
|
||||
};
|
||||
donottellmetonottellyou = {
|
||||
name = "Jade Masker";
|
||||
email = "donottellmetonottellyou@gmail.com";
|
||||
github = "donottellmetonottellyou";
|
||||
githubId = 115233539;
|
||||
keys = [ { fingerprint = "5C8B 7128 4AB3 000D 4AC6 6234 9B81 35A2 4A75 CB86"; } ];
|
||||
};
|
||||
donovanglover = {
|
||||
github = "donovanglover";
|
||||
githubId = 2374245;
|
||||
@@ -12960,11 +12960,6 @@
|
||||
name = "Jez Cope";
|
||||
keys = [ { fingerprint = "D9DA 3E47 E8BD 377D A317 B3D0 9E42 CE07 1C45 59D1"; } ];
|
||||
};
|
||||
jf-uu = {
|
||||
github = "jf-uu";
|
||||
githubId = 181011550;
|
||||
name = "jf-uu";
|
||||
};
|
||||
jfchevrette = {
|
||||
email = "jfchevrette@gmail.com";
|
||||
github = "jfchevrette";
|
||||
@@ -13581,6 +13576,12 @@
|
||||
name = "Jonas Wunderlich";
|
||||
matrix = "@matrix:03j.de";
|
||||
};
|
||||
jonascarpay = {
|
||||
name = "Jonas Carpay";
|
||||
email = "jonascarpay@gmail.com";
|
||||
github = "jonascarpay";
|
||||
githubId = 3593851;
|
||||
};
|
||||
jonasfranke = {
|
||||
name = "Jonas Franke";
|
||||
email = "info@jonasfranke.xyz";
|
||||
@@ -18868,6 +18869,11 @@
|
||||
githubId = 45770;
|
||||
name = "Mitsuhiro Nakamura";
|
||||
};
|
||||
MNThomson = {
|
||||
github = "MNThomson";
|
||||
githubId = 73045936;
|
||||
name = "Max Thomson";
|
||||
};
|
||||
moaxcp = {
|
||||
email = "moaxcp@gmail.com";
|
||||
github = "moaxcp";
|
||||
@@ -20282,6 +20288,12 @@
|
||||
github = "niklaskorz";
|
||||
githubId = 590517;
|
||||
};
|
||||
niklasravnsborg = {
|
||||
name = "Niklas Ravnsborg";
|
||||
github = "niklasravnsborg";
|
||||
githubId = 6717303;
|
||||
keys = [ { fingerprint = "0C90 DD8A 0EE9 93DF 8D58 7AF9 8360 E6C5 8AE8 F3ED"; } ];
|
||||
};
|
||||
niklasthorild = {
|
||||
name = "Niklas Thorild";
|
||||
email = "niklas@thorild.se";
|
||||
@@ -23315,6 +23327,13 @@
|
||||
github = "DaRacci";
|
||||
githubId = 90304606;
|
||||
};
|
||||
rachalaraj = {
|
||||
name = "Rachala Raj Kumar";
|
||||
email = "rachaalaraj@gmail.com";
|
||||
matrix = "@rachalaraj:matrix.org";
|
||||
github = "rachalaraj";
|
||||
githubId = 124191100;
|
||||
};
|
||||
RadxaYuntian = {
|
||||
# This is the work account for @MakiseKurisu
|
||||
name = "ZHANG Yuntian";
|
||||
@@ -29372,6 +29391,11 @@
|
||||
github = "UnsolvedCypher";
|
||||
githubId = 3170853;
|
||||
};
|
||||
untio11 = {
|
||||
name = "Robin Kneepkens";
|
||||
github = "untio11";
|
||||
githubId = 14060658;
|
||||
};
|
||||
uralbash = {
|
||||
email = "root@uralbash.ru";
|
||||
github = "uralbash";
|
||||
@@ -29699,6 +29723,13 @@
|
||||
githubId = 116078858;
|
||||
keys = [ { fingerprint = "CDEA 7E04 69E3 0885 A754 4B05 0104 BC05 F41B 77B8"; } ];
|
||||
};
|
||||
vherrmann = {
|
||||
name = "Valentin Herrmann";
|
||||
email = "me@valentin-herrmann.de";
|
||||
github = "vherrmann";
|
||||
githubId = 50072577;
|
||||
keys = [ { fingerprint = "309D A29B 4070 FDFD C01A 3AB4 9E60 CB44 5C4B BC4C"; } ];
|
||||
};
|
||||
videl = {
|
||||
email = "thibaut.smith@mailbox.org";
|
||||
github = "videl";
|
||||
|
||||
@@ -43,7 +43,7 @@ When reviewing a modular service, you should check the following. Details and ra
|
||||
### NixOS VM test
|
||||
|
||||
See the initial [Modular Services PR](https://github.com/NixOS/nixpkgs/pull/372170) for an [example](https://github.com/NixOS/nixpkgs/pull/372170/files#diff-e7fe16489cf3cd08ecc22b2c7896039d407a329b75691c046c95447423b3153f) of a NixOS VM test.
|
||||
TBD: describe best practices here.
|
||||
Best practices: keep tests minimal and focused (boot a VM, enable the service, and assert a basic request succeeds). For general guidance, see the [NixOS Tests chapter](https://nixos.org/manual/nixos/unstable/#sec-nixos-tests).
|
||||
|
||||
### `_class = "service"`
|
||||
|
||||
|
||||
@@ -129,7 +129,7 @@
|
||||
|
||||
- [nvme-rs](https://github.com/liberodark/nvme-rs), NVMe monitoring [services.nvme-rs](#opt-services.nvme-rs.enable).
|
||||
|
||||
- [Overseerr](https://overseerr.dev), a request management and media discovery tool for the Plex ecosystem. Available as [services.overseerr](#opt-services.overseerr.enable).
|
||||
- [Overseerr](https://overseerr.dev), a request management and media discovery tool for the Plex ecosystem. Available as {option}`opt-services.overseerr.enable`.
|
||||
|
||||
- [PairDrop](https://github.com/schlagmichdoch/pairdrop), a peer-to-peer file transfer web app. Available as [services.pairdrop](#opt-services.pairdrop.enable).
|
||||
|
||||
|
||||
@@ -113,6 +113,8 @@
|
||||
|
||||
- `services.komodo-periphery` has been updated to support version 2.0.0. Some options have been renamed to match the new configuration structure; compatibility aliases are provided for the renamed options. The `passkeys` and `outbound.onboardingKey` options have been removed; use `passkeyFiles`, `auth.privateKey`/`auth.corePublicKeys`, or `outbound.onboardingKeyFile` instead. New outbound mode configuration is available under `outbound.*`.
|
||||
|
||||
- Package `overseerr` has been removed as the `overseerr` and `jellyseerr` projects were merged under `seerr`.
|
||||
|
||||
## Other Notable Changes {#sec-release-26.11-notable-changes}
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
@@ -140,6 +142,8 @@
|
||||
|
||||
- `security.run0.persistentAuth` options have been added to support persistent Authentication of session. Timeout configurable via `security.polkit.settings.Polkitd.ExpirationSeconds`.
|
||||
|
||||
- [`virtualisation.qemu.firmware.enable`](#opt-virtualisation.qemu.firmware.enable) has been added to install QEMU firmware descriptors to {file}`/etc/qemu/firmware`, making the corresponding firmware images discoverable by tools such as `systemd-vmspawn`. By default this exposes the firmware bundled with QEMU. Further firmware can be added via [`virtualisation.qemu.firmware.packages`](#opt-virtualisation.qemu.firmware.packages), for example the new `OVMF-amdsev` and `OVMF-inteltdx` packages, which provide UEFI firmware for AMD SEV-SNP and Intel TDX confidential VMs.
|
||||
|
||||
- `boot.loader.systemd-boot` gained support for [Automatic Boot Assessment](https://systemd.io/AUTOMATIC_BOOT_ASSESSMENT/) via the new [`boot.loader.systemd-boot.bootCounting`](#opt-boot.loader.systemd-boot.bootCounting.enable) options, allowing automatic detection of and recovery from bad NixOS generations. As part of this change, boot loader entries on the ESP/XBOOTLDR partition are now named `nixos-<content-hash>.conf` instead of `nixos-generation-<n>.conf`; existing entries are migrated automatically on the next `nixos-rebuild boot`/`switch`.
|
||||
|
||||
- `services.nginx` gained a [`lua`](#opt-services.nginx.lua.enable) option to enable Lua scripting via OpenResty's lua-nginx-module on a stock nginx, configuring `lua_package_path`/`lua_package_cpath` from the packages listed in [`services.nginx.lua.extraPackages`](#opt-services.nginx.lua.extraPackages). Use this to add Lua to a regular nginx; for the full OpenResty platform (libraries that rely on its bundled lualib, such as `lua-resty-openidc`), set `services.nginx.package` to `pkgs.openresty` instead — the option configures the Lua search path for it too.
|
||||
|
||||
@@ -89,6 +89,11 @@ def main() -> None:
|
||||
type=Path,
|
||||
required=True,
|
||||
)
|
||||
arg_parser.add_argument(
|
||||
"--test-script",
|
||||
help="path to a test script to run, taking precedence over the one defined in the config file",
|
||||
type=Path,
|
||||
)
|
||||
arg_parser.add_argument(
|
||||
"--keep-vm-state",
|
||||
help=argparse.SUPPRESS,
|
||||
@@ -163,8 +168,12 @@ def main() -> None:
|
||||
if args.debug_hook_attach is not None:
|
||||
debugger = Debug(logger, args.debug_hook_attach)
|
||||
|
||||
config = load_driver_configuration(args.config)
|
||||
if args.test_script is not None:
|
||||
config.test_script = args.test_script
|
||||
|
||||
with Driver(
|
||||
config=load_driver_configuration(args.config),
|
||||
config=config,
|
||||
out_dir=output_directory,
|
||||
logger=logger,
|
||||
keep_machine_state=args.keep_machine_state,
|
||||
|
||||
@@ -938,7 +938,6 @@
|
||||
./services/misc/open-webui.nix
|
||||
./services/misc/orthanc.nix
|
||||
./services/misc/osrm.nix
|
||||
./services/misc/overseerr.nix
|
||||
./services/misc/owncast.nix
|
||||
./services/misc/packagekit.nix
|
||||
./services/misc/paisa.nix
|
||||
@@ -2052,6 +2051,7 @@
|
||||
./virtualisation/openvswitch.nix
|
||||
./virtualisation/parallels-guest.nix
|
||||
./virtualisation/podman/default.nix
|
||||
./virtualisation/qemu-firmware.nix
|
||||
./virtualisation/qemu-guest-agent.nix
|
||||
./virtualisation/rosetta.nix
|
||||
./virtualisation/spice-usb-redirection.nix
|
||||
|
||||
@@ -14,56 +14,93 @@ in
|
||||
Miriway, a Mir based Wayland compositor. You can manually launch Miriway by
|
||||
executing "exec miriway" on a TTY, or launch it from a display manager. Copy
|
||||
/etc/xdg/xdg-miriway/miriway-shell.config to ~/.config/miriway-shell.config
|
||||
and /etc/xdg/xdg-miriway/miriway-shell.settings to ~/.config/miriway-shell.settings
|
||||
to modify the system-wide configuration on a per-user basis. See <https://github.com/Miriway/Miriway>,
|
||||
and "miriway --help" for more information'';
|
||||
|
||||
config = lib.mkOption {
|
||||
description = ''
|
||||
Contents of system-wide miriway-shell.config. See Miriway's configuration documentation for details.
|
||||
'';
|
||||
type = lib.types.lines;
|
||||
default = ''
|
||||
x11-window-title=Miriway (Mir-on-X)
|
||||
idle-timeout=600
|
||||
ctrl-alt=t:miriway-terminal # Default "terminal emulator finder"
|
||||
|
||||
shell-component=dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY
|
||||
|
||||
meta=Left:@dock-left
|
||||
meta=Right:@dock-right
|
||||
meta=Space:@toggle-maximized
|
||||
meta=Home:@workspace-begin
|
||||
meta=End:@workspace-end
|
||||
meta=Page_Up:@workspace-up
|
||||
meta=Page_Down:@workspace-down
|
||||
ctrl-alt=BackSpace:@exit
|
||||
'';
|
||||
example = ''
|
||||
idle-timeout=300
|
||||
ctrl-alt=t:weston-terminal
|
||||
add-wayland-extensions=all
|
||||
|
||||
shell-components=dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY
|
||||
|
||||
shell-component=waybar
|
||||
shell-component=wbg Pictures/wallpaper
|
||||
|
||||
shell-meta=a:synapse
|
||||
|
||||
meta=Left:@dock-left
|
||||
meta=Right:@dock-right
|
||||
meta=Space:@toggle-maximized
|
||||
meta=Home:@workspace-begin
|
||||
meta=End:@workspace-end
|
||||
meta=Page_Up:@workspace-up
|
||||
meta=Page_Down:@workspace-down
|
||||
ctrl-alt=BackSpace:@exit
|
||||
'';
|
||||
};
|
||||
|
||||
settings = lib.mkOption {
|
||||
description = ''
|
||||
Miriway's config. This will be installed system-wide.
|
||||
The default will install the miriway package's barebones example config.
|
||||
Contents of system-wide miriway-shell.settings. See Miriway's configuration documentation for details.
|
||||
'';
|
||||
type = lib.types.lines;
|
||||
default = ''
|
||||
command_ctrl_alt=t:miriway-terminal # Default "terminal emulator finder"
|
||||
|
||||
command_meta=Left:@dock-left
|
||||
command_meta=Right:@dock-right
|
||||
command_meta=Space:@toggle-maximized
|
||||
command_meta=Home:@workspace-begin
|
||||
command_meta=End:@workspace-end
|
||||
command_meta=Page_Up:@workspace-up
|
||||
command_meta=Page_Down:@workspace-down
|
||||
command_ctrl_alt=BackSpace:@exit
|
||||
'';
|
||||
example = ''
|
||||
command_ctrl_alt=t:weston-terminal
|
||||
command_shell_meta=a:synapse
|
||||
|
||||
command_meta=Left:@dock-left
|
||||
command_meta=Right:@dock-right
|
||||
command_meta=Space:@toggle-maximized
|
||||
command_meta=Home:@workspace-begin
|
||||
command_meta=End:@workspace-end
|
||||
command_meta=Page_Up:@workspace-up
|
||||
command_meta=Page_Down:@workspace-down
|
||||
command_ctrl_alt=BackSpace:@exit
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
warnings =
|
||||
let
|
||||
optionsNoLongerInConfig = [
|
||||
"ctrl-alt"
|
||||
"meta"
|
||||
"shell-ctrl-alt"
|
||||
"shell-meta"
|
||||
"shell-plain"
|
||||
|
||||
"command_ctrl_alt"
|
||||
"command_meta"
|
||||
"command_shell_ctrl_alt"
|
||||
"command_shell_meta"
|
||||
"command_plain"
|
||||
];
|
||||
in
|
||||
# Added 2026-07-17
|
||||
lib.optional
|
||||
(builtins.foldl' (
|
||||
acc: option: acc || (lib.strings.hasInfix "${option}=" cfg.config)
|
||||
) false optionsNoLongerInConfig)
|
||||
''
|
||||
Since Miriway 26.06, configuration options got partially renamed and split across different files.
|
||||
A new option `programs.miriway.settings` got introduced for options that belong into miriway-shell.settings
|
||||
instead of miriway-shell.config.
|
||||
|
||||
You appear to have one of the following options in `programs.miriway.config` that should now go into
|
||||
`programs.miriway.settings`, and may need to be renamed:
|
||||
${lib.strings.concatStringsSep ", " optionsNoLongerInConfig}
|
||||
'';
|
||||
|
||||
environment = {
|
||||
systemPackages = with pkgs; [
|
||||
miriway
|
||||
@@ -71,6 +108,7 @@ in
|
||||
];
|
||||
etc = {
|
||||
"xdg/xdg-miriway/miriway-shell.config".text = cfg.config;
|
||||
"xdg/xdg-miriway/miriway-shell.settings".text = cfg.settings;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -15,14 +15,13 @@ in
|
||||
description = ''
|
||||
Enable ReGreet, a clean and customizable greeter for greetd.
|
||||
|
||||
To use ReGreet, {option}`services.greetd` has to be enabled and
|
||||
{option}`services.greetd.settings.default_session` should contain the
|
||||
appropriate configuration to launch
|
||||
{option}`config.programs.regreet.package`. For examples, see the
|
||||
[ReGreet Readme](https://github.com/rharish101/ReGreet#set-as-default-session).
|
||||
By default enables {option}`services.greetd` and configures a
|
||||
{command}`default_session` to launch ReGreet using the
|
||||
{command}`cage` compositor.
|
||||
|
||||
A minimal configuration that launches ReGreet in {command}`cage` is
|
||||
enabled by this module by default.
|
||||
See the
|
||||
[ReGreet Readme](https://github.com/rharish101/ReGreet#set-as-default-session)
|
||||
for other examples.
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -48,8 +47,8 @@ in
|
||||
[ "-s" "-d" "-m" "last" ]
|
||||
'';
|
||||
description = ''
|
||||
Additional arguments to be passed to
|
||||
[cage](https://github.com/cage-kiosk/cage).
|
||||
Arguments to be passed to [cage](https://github.com/cage-kiosk/cage)
|
||||
when using it as the default compositor.
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
@@ -403,6 +403,11 @@ in
|
||||
as the underlying package isn't being maintained. Working alternatives are
|
||||
libinput and synaptics.
|
||||
'')
|
||||
(mkRemovedOptionModule [ "services" "xserver" "windowManager" "afterstep" ] ''
|
||||
The services.xserver.windowManager.afterstep module and the corresponding
|
||||
package have been removed from Nixpkgs because they were unmaintained
|
||||
upstream.
|
||||
'')
|
||||
(mkRemovedOptionModule [ "services" "xserver" "windowManager" "ragnarwm" ] ''
|
||||
The services.xserver.windowManager.ragnarwm module has been removed
|
||||
because the corresponding package was removed from nixpkgs.
|
||||
@@ -534,6 +539,13 @@ in
|
||||
(mkRemovedOptionModule [ "services" "xserver" "cmt" ] ''
|
||||
services.xserver.cmt has been removed as it was broken and unmaintained upstream
|
||||
'')
|
||||
(mkRemovedOptionModule
|
||||
[
|
||||
"services"
|
||||
"overseerr"
|
||||
]
|
||||
"`services.overseerr` has been replaced by `services.seerr` as the project has been merged with Jellyseerr under Seerr."
|
||||
)
|
||||
# Do NOT add any option renames here, see top of the file
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1422,7 +1422,6 @@ let
|
||||
modulePath = config.security.pam.pam_unixModulePath;
|
||||
settings = {
|
||||
nullok = true;
|
||||
yescrypt = lib.mkIf config.security.pam.enableLegacySettings true;
|
||||
};
|
||||
}
|
||||
{
|
||||
|
||||
@@ -577,7 +577,6 @@ in
|
||||
control = "requisite";
|
||||
modulePath = config.security.pam.pam_unixModulePath;
|
||||
settings.nullok = true;
|
||||
settings.yescrypt = true;
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
utils,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
@@ -76,9 +77,37 @@ in
|
||||
services.greetd.settings.default_session.user = lib.mkDefault "greeter";
|
||||
|
||||
security.pam.services.greetd = {
|
||||
allowNullPassword = true;
|
||||
startSession = true;
|
||||
enableGnomeKeyring = lib.mkDefault config.services.gnome.gnome-keyring.enable;
|
||||
useDefaultRules = false;
|
||||
rules = {
|
||||
auth = utils.pam.autoOrderRules [
|
||||
{
|
||||
name = "login";
|
||||
control = "substack";
|
||||
modulePath = "login";
|
||||
}
|
||||
];
|
||||
account = utils.pam.autoOrderRules [
|
||||
{
|
||||
name = "login";
|
||||
control = "include";
|
||||
modulePath = "login";
|
||||
}
|
||||
];
|
||||
password = utils.pam.autoOrderRules [
|
||||
{
|
||||
name = "login";
|
||||
control = "substack";
|
||||
modulePath = "login";
|
||||
}
|
||||
];
|
||||
session = utils.pam.autoOrderRules [
|
||||
{
|
||||
name = "login";
|
||||
control = "include";
|
||||
modulePath = "login";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
# This prevents nixos-rebuild from killing greetd by activating getty again
|
||||
|
||||
@@ -100,9 +100,37 @@ in
|
||||
|
||||
security.pam.services = {
|
||||
ly = {
|
||||
startSession = true;
|
||||
unixAuth = true;
|
||||
enableGnomeKeyring = lib.mkDefault config.services.gnome.gnome-keyring.enable;
|
||||
useDefaultRules = false;
|
||||
rules = {
|
||||
auth = utils.pam.autoOrderRules [
|
||||
{
|
||||
name = "login";
|
||||
control = "substack";
|
||||
modulePath = "login";
|
||||
}
|
||||
];
|
||||
account = utils.pam.autoOrderRules [
|
||||
{
|
||||
name = "login";
|
||||
control = "include";
|
||||
modulePath = "login";
|
||||
}
|
||||
];
|
||||
password = utils.pam.autoOrderRules [
|
||||
{
|
||||
name = "login";
|
||||
control = "substack";
|
||||
modulePath = "login";
|
||||
}
|
||||
];
|
||||
session = utils.pam.autoOrderRules [
|
||||
{
|
||||
name = "login";
|
||||
control = "include";
|
||||
modulePath = "login";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
// optionalAttrs dmcfg.autoLogin.enable {
|
||||
|
||||
@@ -242,7 +242,9 @@ let
|
||||
"elkm1"
|
||||
"elv"
|
||||
"enocean"
|
||||
"homeassistant_connect_zbt2"
|
||||
"homeassistant_hardware"
|
||||
"homeassistant_sky_connect"
|
||||
"homeassistant_yellow"
|
||||
"firmata"
|
||||
"flexit"
|
||||
|
||||
@@ -1,89 +0,0 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.services.overseerr;
|
||||
in
|
||||
{
|
||||
meta.maintainers = [ lib.maintainers.jf-uu ];
|
||||
|
||||
options.services.overseerr = {
|
||||
enable = lib.mkEnableOption "Overseerr, a request management and media discovery tool for the Plex ecosystem";
|
||||
|
||||
package = lib.mkPackageOption pkgs "overseerr" { };
|
||||
|
||||
openFirewall = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "Open a port in the firewall for the Overseerr web interface.";
|
||||
};
|
||||
|
||||
port = lib.mkOption {
|
||||
type = lib.types.port;
|
||||
default = 5055;
|
||||
description = "The port which the Overseerr web UI should listen on.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
systemd.services.overseerr = {
|
||||
description = "Request management and media discovery tool for the Plex ecosystem";
|
||||
after = [ "network.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
environment = {
|
||||
CONFIG_DIRECTORY = "/var/lib/overseerr";
|
||||
PORT = toString cfg.port;
|
||||
};
|
||||
serviceConfig = {
|
||||
CapabilityBoundingSet = "";
|
||||
DynamicUser = true;
|
||||
ExecStart = lib.getExe cfg.package;
|
||||
LockPersonality = true;
|
||||
NoNewPrivileges = true;
|
||||
PrivateDevices = true;
|
||||
PrivateIPC = true;
|
||||
PrivateMounts = true;
|
||||
PrivateTmp = true;
|
||||
PrivateUsers = true;
|
||||
ProcSubset = "pid";
|
||||
ProtectClock = true;
|
||||
ProtectControlGroups = true;
|
||||
ProtectHome = true;
|
||||
ProtectHostname = true;
|
||||
ProtectKernelLogs = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectProc = "invisible";
|
||||
ProtectSystem = "strict";
|
||||
RemoveIPC = true;
|
||||
Restart = "on-failure";
|
||||
RestrictAddressFamilies = [
|
||||
"AF_INET"
|
||||
"AF_INET6"
|
||||
"AF_UNIX"
|
||||
];
|
||||
RestrictNamespaces = true;
|
||||
RestrictRealtime = true;
|
||||
RestrictSUIDSGID = true;
|
||||
StateDirectory = "overseerr";
|
||||
StateDirectoryMode = "0700";
|
||||
SystemCallArchitectures = "native";
|
||||
SystemCallErrorNumber = "EPERM";
|
||||
SystemCallFilter = [
|
||||
"@system-service"
|
||||
"~@privileged"
|
||||
"~@resources"
|
||||
];
|
||||
Type = "exec";
|
||||
};
|
||||
};
|
||||
|
||||
networking.firewall = lib.mkIf cfg.openFirewall {
|
||||
allowedTCPPorts = [ cfg.port ];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -988,8 +988,9 @@ in
|
||||
systemd.services.nsd = {
|
||||
description = "NSD authoritative only domain name service";
|
||||
|
||||
after = [ "network.target" ];
|
||||
after = [ "network-online.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
|
||||
startLimitBurst = 4;
|
||||
startLimitIntervalSec = 5 * 60; # 5 mins
|
||||
|
||||
@@ -115,7 +115,7 @@ in
|
||||
default = true;
|
||||
description = ''
|
||||
Whether unbound should resolve local queries (i.e. add 127.0.0.1 to
|
||||
/etc/resolv.conf).
|
||||
/etc/resolv.conf and set name servers to localhost respectively).
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -276,6 +276,7 @@ in
|
||||
resolvconf = {
|
||||
useLocalResolver = mkDefault true;
|
||||
};
|
||||
nameservers = lib.mkBefore ([ "127.0.0.1" ] ++ (optional config.networking.enableIPv6 "::1"));
|
||||
};
|
||||
|
||||
environment.etc."unbound/unbound.conf".source = confFile;
|
||||
|
||||
@@ -36,8 +36,14 @@ let
|
||||
|
||||
userbornConfigJson = pkgs.writeText "userborn.json" (builtins.toJSON userbornConfig);
|
||||
userbornStaticFiles =
|
||||
pkgs.runCommand "static-userborn" { }
|
||||
"mkdir -p $out; ${lib.getExe cfg.package} ${userbornConfigJson} $out";
|
||||
pkgs.runCommand "static-userborn"
|
||||
{
|
||||
nativeBuildInputs = [ cfg.package ];
|
||||
}
|
||||
''
|
||||
mkdir -p $out
|
||||
userborn ${userbornConfigJson} $out
|
||||
'';
|
||||
previousConfigPath = "/var/lib/userborn/previous-userborn.json";
|
||||
|
||||
immutableEtc = config.system.etc.overlay.enable && !config.system.etc.overlay.mutable;
|
||||
|
||||
@@ -458,7 +458,6 @@ in
|
||||
control = "requisite";
|
||||
modulePath = config.security.pam.pam_unixModulePath;
|
||||
settings.nullok = true;
|
||||
settings.yescrypt = true;
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.xserver.windowManager.afterstep;
|
||||
in
|
||||
{
|
||||
###### interface
|
||||
options = {
|
||||
services.xserver.windowManager.afterstep.enable = mkEnableOption "afterstep";
|
||||
};
|
||||
|
||||
###### implementation
|
||||
config = mkIf cfg.enable {
|
||||
services.xserver.windowManager.session = singleton {
|
||||
name = "afterstep";
|
||||
start = ''
|
||||
${pkgs.afterstep}/bin/afterstep &
|
||||
waitPID=$!
|
||||
'';
|
||||
};
|
||||
environment.systemPackages = [ pkgs.afterstep ];
|
||||
};
|
||||
}
|
||||
@@ -8,7 +8,6 @@ in
|
||||
{
|
||||
imports = [
|
||||
./2bwm.nix
|
||||
./afterstep.nix
|
||||
./berry.nix
|
||||
./bspwm.nix
|
||||
./cwm.nix
|
||||
|
||||
@@ -30,8 +30,9 @@ let
|
||||
|
||||
dnsmasqResolve = config.services.dnsmasq.enable && config.services.dnsmasq.resolveLocalQueries;
|
||||
|
||||
transformSettings = settings: {
|
||||
Resolve = lib.mapAttrs (
|
||||
transformSettings =
|
||||
settings:
|
||||
lib.mapAttrs (
|
||||
key: value:
|
||||
# concat lists for options that should result in space-separated values
|
||||
if
|
||||
@@ -45,10 +46,9 @@ let
|
||||
concatStringsSep " " value
|
||||
else
|
||||
value
|
||||
) settings.Resolve;
|
||||
};
|
||||
) settings;
|
||||
|
||||
resolvedConf = settingsToSections (transformSettings cfg.settings);
|
||||
resolvedConf = settingsToSections { Resolve = transformSettings cfg.settings.Resolve; };
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
|
||||
@@ -69,7 +69,7 @@ in
|
||||
config = lib.mkIf (cfg.enable) {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
# we also want these mounts in virtual machines.
|
||||
fileSystems = if config.virtualisation ? qemu then lib.mkVMOverride mounts else mounts;
|
||||
fileSystems = if config.virtualisation.qemu ? package then lib.mkVMOverride mounts else mounts;
|
||||
|
||||
# We no longer need those when using envfs
|
||||
system.activationScripts.usrbinenv = lib.mkForce "";
|
||||
|
||||
@@ -196,7 +196,7 @@ in
|
||||
# that do not specify any nodes, or an empty attr set as nodes) will not
|
||||
# have the QEMU module loaded and thuse these options can't and should not
|
||||
# be set.
|
||||
virtualisation = lib.optionalAttrs (options ? virtualisation.qemu) {
|
||||
virtualisation = lib.optionalAttrs (options ? virtualisation.qemu.package) {
|
||||
qemu = {
|
||||
# NOTE: optionalAttrs
|
||||
# test-instrumentation.nix appears to be used without qemu-vm.nix, so
|
||||
|
||||
50
nixos/modules/virtualisation/qemu-firmware.nix
Normal file
50
nixos/modules/virtualisation/qemu-firmware.nix
Normal file
@@ -0,0 +1,50 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.virtualisation.qemu.firmware;
|
||||
in
|
||||
|
||||
{
|
||||
options.virtualisation.qemu.firmware = {
|
||||
enable = lib.mkEnableOption "QEMU firmware descriptors in {file}`/etc/qemu/firmware`";
|
||||
|
||||
packages = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.package;
|
||||
default = [ pkgs.qemu ];
|
||||
defaultText = lib.literalExpression "[ pkgs.qemu ]";
|
||||
example = lib.literalExpression "[ pkgs.qemu pkgs.OVMF-amdsev.fd ]";
|
||||
description = ''
|
||||
Packages providing QEMU firmware descriptors under
|
||||
{file}`share/qemu/firmware`, following the QEMU firmware interop
|
||||
convention (see {file}`docs/interop/firmware.json` in the QEMU
|
||||
source tree). The descriptors are merged and linked to
|
||||
{file}`/etc/qemu/firmware`, where tools like
|
||||
{command}`systemd-vmspawn` discover the firmware available for
|
||||
running virtual machines.
|
||||
|
||||
The default exposes the descriptors of the firmware images
|
||||
bundled with QEMU. Note that setting this option replaces the
|
||||
default, so include `pkgs.qemu` when adding further firmware.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.etc."qemu/firmware".source =
|
||||
let
|
||||
merged = pkgs.buildEnv {
|
||||
name = "qemu-firmware-descriptors";
|
||||
paths = cfg.packages;
|
||||
pathsToLink = [ "/share/qemu/firmware" ];
|
||||
};
|
||||
in
|
||||
"${merged}/share/qemu/firmware";
|
||||
};
|
||||
|
||||
meta.maintainers = [ lib.maintainers.katexochen ];
|
||||
}
|
||||
@@ -153,6 +153,7 @@ in
|
||||
console-log = runTest ./nixos-test-driver/console-log.nix;
|
||||
containers = runTest ./nixos-test-driver/containers.nix;
|
||||
nspawn-daemon-reexec-dbus = runTest ./nspawn-daemon-reexec-dbus.nix;
|
||||
multi-arch-test = runTest ./nixos-test-driver/multi-arch-test.nix;
|
||||
skip-typecheck = runTest ./nixos-test-driver/skip-typecheck.nix;
|
||||
console-timeout = runTest ./nixos-test-driver/console-timeout.nix;
|
||||
options-doc-regression = import ./nixos-test-driver/options-doc-regression.nix { inherit pkgs; };
|
||||
@@ -1302,7 +1303,6 @@ in
|
||||
osrm-backend = runTest ./osrm-backend.nix;
|
||||
outline = runTest ./outline.nix;
|
||||
overlayfs = runTest ./overlayfs.nix;
|
||||
overseerr = runTest ./overseerr.nix;
|
||||
owi = runTest ./owi.nix;
|
||||
owncast = runTest ./owncast.nix;
|
||||
oxidized = handleTest ./oxidized.nix { };
|
||||
@@ -1448,6 +1448,7 @@ in
|
||||
pykms = runTest ./pykms.nix;
|
||||
qbittorrent = runTest ./qbittorrent.nix;
|
||||
qboot = runTestOn [ "x86_64-linux" "i686-linux" ] ./qboot.nix;
|
||||
qemu-firmware = runTestOn [ "x86_64-linux" ] ./qemu-firmware.nix;
|
||||
qemu-vm-external-disk-image = runTest ./qemu-vm-external-disk-image.nix;
|
||||
qemu-vm-restrictnetwork = handleTest ./qemu-vm-restrictnetwork.nix { };
|
||||
qemu-vm-store = runTest ./qemu-vm-store.nix;
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
with subtest("create user"):
|
||||
machine.succeed("useradd -m alice")
|
||||
machine.succeed("(echo foobar; echo foobar) | passwd alice")
|
||||
machine.succeed("grep -F 'alice:$y$' /etc/shadow")
|
||||
|
||||
with subtest("Check whether switching VTs works"):
|
||||
machine.fail("pgrep -f 'agetty.*tty2'")
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
with subtest("create user"):
|
||||
machine.succeed("useradd -m alice")
|
||||
machine.succeed("(echo foobar; echo foobar) | passwd alice")
|
||||
machine.succeed("grep -F 'alice:$y$' /etc/shadow")
|
||||
|
||||
with subtest("Check whether switching VTs works"):
|
||||
machine.fail("pgrep -f 'agetty.*tty2'")
|
||||
|
||||
@@ -33,13 +33,12 @@
|
||||
add-wayland-extensions=all
|
||||
enable-x11=
|
||||
|
||||
ctrl-alt=t:foot --maximized
|
||||
ctrl-alt=a:env WINIT_UNIX_BACKEND=x11 WAYLAND_DISPLAY= alacritty --option window.startup_mode=\"maximized\"
|
||||
|
||||
shell-component=dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY
|
||||
|
||||
shell-component=foot --maximized
|
||||
'';
|
||||
settings = ''
|
||||
command_ctrl_alt=t:foot --maximized
|
||||
command_ctrl_alt=a:env WINIT_UNIX_BACKEND=x11 WAYLAND_DISPLAY= alacritty --option window.startup_mode=\"maximized\"
|
||||
'';
|
||||
};
|
||||
|
||||
environment = {
|
||||
@@ -59,8 +58,9 @@
|
||||
etc."xdg/foot/foot.ini".source = (pkgs.formats.ini { }).generate "foot.ini" {
|
||||
main = {
|
||||
font = "inconsolata:size=16";
|
||||
initial-color-theme = "light";
|
||||
};
|
||||
colors = rec {
|
||||
colors-light = rec {
|
||||
foreground = "000000";
|
||||
background = "ffffff";
|
||||
regular2 = foreground;
|
||||
|
||||
55
nixos/tests/nixos-test-driver/multi-arch-test.nix
Normal file
55
nixos/tests/nixos-test-driver/multi-arch-test.nix
Normal file
@@ -0,0 +1,55 @@
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
name = "multi-arch-test";
|
||||
meta.maintainers = with pkgs.lib.maintainers; [ tfc ];
|
||||
|
||||
node.pkgsReadOnly = false;
|
||||
|
||||
nodes = {
|
||||
# Setting build = host platform because such standard VM setups
|
||||
# are well-cached by the multi-arch build infrastructure of the
|
||||
# project.
|
||||
vmIntel = {
|
||||
nixpkgs.buildPlatform = "x86_64-linux";
|
||||
nixpkgs.hostPlatform = "x86_64-linux";
|
||||
};
|
||||
vmArm = {
|
||||
nixpkgs.buildPlatform = "aarch64-linux";
|
||||
nixpkgs.hostPlatform = "aarch64-linux";
|
||||
};
|
||||
};
|
||||
|
||||
defaults = {
|
||||
# not needed for this test and shrinks the closure
|
||||
# because we dont' need qemu for all architectures
|
||||
virtualisation.qemu.guestAgent.enable = false;
|
||||
|
||||
# the test is already very slow but we don't need DHCP anyway
|
||||
networking.dhcpcd.enable = false;
|
||||
|
||||
# fix the network-online target, otherwise it doesn't work
|
||||
# properly as a synchronization mechanism.
|
||||
systemd.network.wait-online.enable = true;
|
||||
systemd.network.wait-online.anyInterface = true;
|
||||
};
|
||||
|
||||
# slow due to SW emulation but shouldn't be slower than that
|
||||
globalTimeout = 5 * 60;
|
||||
|
||||
testScript = { nodes, ... }: /* python */ ''
|
||||
start_all()
|
||||
|
||||
vmIntel.systemctl("start network-online.target")
|
||||
vmArm.systemctl("start network-online.target")
|
||||
vmIntel.wait_for_unit("network-online.target")
|
||||
vmArm.wait_for_unit("network-online.target")
|
||||
|
||||
vmIntel.succeed("ping -c 1 vmArm")
|
||||
vmArm.succeed("ping -c 1 vmIntel")
|
||||
|
||||
archIntel = vmIntel.succeed("uname -m")
|
||||
t.assertIn("${nodes.vmIntel.nixpkgs.hostPlatform.qemuArch}", archIntel, "machine1 is an intel VM")
|
||||
archArm = vmArm.succeed("uname -m")
|
||||
t.assertIn("${nodes.vmArm.nixpkgs.hostPlatform.qemuArch}", archArm, "machine1 is an ARM VM")
|
||||
'';
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
{ lib, pkgs, ... }:
|
||||
{
|
||||
name = "overseerr";
|
||||
meta.maintainers = with lib.maintainers; [ jf-uu ];
|
||||
|
||||
nodes.machine =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = [ pkgs.jq ];
|
||||
services.overseerr.enable = true;
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.wait_for_unit("overseerr.service")
|
||||
machine.wait_for_open_port(5055)
|
||||
|
||||
version = machine.succeed("curl --fail http://localhost:5055/api/v1/status | jq --raw-output .version").rstrip("\n")
|
||||
assert version == "${pkgs.overseerr.version}", f"expected version to be ${pkgs.overseerr.version}, got {version}"
|
||||
'';
|
||||
}
|
||||
41
nixos/tests/qemu-firmware.nix
Normal file
41
nixos/tests/qemu-firmware.nix
Normal file
@@ -0,0 +1,41 @@
|
||||
{ lib, ... }:
|
||||
|
||||
{
|
||||
name = "qemu-firmware";
|
||||
meta.maintainers = [ lib.maintainers.katexochen ];
|
||||
|
||||
nodes.machine =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
virtualisation.qemu.firmware = {
|
||||
enable = true;
|
||||
packages = [
|
||||
pkgs.qemu
|
||||
pkgs.OVMF-amdsev.fd
|
||||
pkgs.OVMF-inteltdx.fd
|
||||
];
|
||||
};
|
||||
environment.systemPackages = [ pkgs.jq ];
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
|
||||
with subtest("descriptors are merged into /etc/qemu/firmware"):
|
||||
machine.succeed("test -e /etc/qemu/firmware/60-edk2-x86_64.json")
|
||||
machine.succeed("test -e /etc/qemu/firmware/61-edk2-ovmf-x64-amdsev.json")
|
||||
machine.succeed("test -e /etc/qemu/firmware/61-edk2-ovmf-x64-inteltdx.json")
|
||||
|
||||
with subtest("descriptors reference existing firmware images"):
|
||||
machine.succeed(
|
||||
"jq -er '.mapping | .filename // .executable.filename' "
|
||||
+ "/etc/qemu/firmware/*.json | xargs stat --"
|
||||
)
|
||||
|
||||
with subtest("systemd-vmspawn discovers the descriptors"):
|
||||
listed = machine.succeed("systemd-vmspawn --firmware=list")
|
||||
assert "61-edk2-ovmf-x64-amdsev.json" in listed
|
||||
assert "61-edk2-ovmf-x64-inteltdx.json" in listed
|
||||
assert "60-edk2-x86_64.json" in listed
|
||||
'';
|
||||
}
|
||||
@@ -91,6 +91,9 @@ let
|
||||
|
||||
click_when_unobstructed((By.XPATH, "//a[contains(., 'Skip to web app')]"))
|
||||
|
||||
# Skip the tour on first login
|
||||
click_when_unobstructed((By.XPATH, "//button[contains(., 'Skip')]"))
|
||||
|
||||
click_when_unobstructed((By.XPATH, "//button[contains(., 'New item')]"))
|
||||
|
||||
driver.find_element(By.XPATH, '//input[@formcontrolname="name"]').send_keys(
|
||||
|
||||
@@ -16,9 +16,9 @@ let
|
||||
inherit tiling_wm;
|
||||
};
|
||||
stableVersion = {
|
||||
version = "2026.1.2.10"; # "Android Studio Quail 2 | 2026.1.2"
|
||||
sha256Hash = "sha256-ZERaVAkucFbG638aia0RbQ/uwu9flluOWU1iq9tYWQ8=";
|
||||
url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2026.1.2.10/android-studio-quail2-linux.tar.gz";
|
||||
version = "2026.1.2.11"; # "Android Studio Quail 2 | 2026.1.2 Patch 1"
|
||||
sha256Hash = "sha256-HMnNVPQA27DQeITw98DKtSTbXOCl73CyOu1v3TzURbk=";
|
||||
url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2026.1.2.11/android-studio-quail2-patch1-linux.tar.gz";
|
||||
};
|
||||
betaVersion = {
|
||||
version = "2026.1.3.5"; # "Android Studio Quail 3 | 2026.1.3 RC 1"
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
lib,
|
||||
b4,
|
||||
melpaBuild,
|
||||
}:
|
||||
melpaBuild {
|
||||
pname = "b4-review-mode";
|
||||
inherit (b4) version;
|
||||
|
||||
src = b4.src-misc;
|
||||
sourceRoot = "${b4.src-misc.name}/misc/emacs";
|
||||
|
||||
meta = {
|
||||
description = "Emacs major mode with highlighting for the b4 review reply editor";
|
||||
homepage = "https://git.kernel.org/pub/scm/utils/b4/b4.git/about";
|
||||
license = lib.licenses.gpl2Only;
|
||||
maintainers = with lib.maintainers; [ fzakaria ];
|
||||
};
|
||||
}
|
||||
@@ -12,6 +12,46 @@
|
||||
let
|
||||
zig = zig_0_15;
|
||||
|
||||
mkModule =
|
||||
{
|
||||
pname,
|
||||
version,
|
||||
src,
|
||||
zigDeps,
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
inherit
|
||||
pname
|
||||
version
|
||||
src
|
||||
zigDeps
|
||||
;
|
||||
|
||||
nativeBuildInputs = [ zig ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ xcbuild ];
|
||||
|
||||
env.EMACS_INCLUDE_DIR = "${emacs}/include";
|
||||
|
||||
dontSetZigDefaultFlags = true;
|
||||
|
||||
doCheck = true;
|
||||
|
||||
zigCheckFlags = [
|
||||
"-Dcpu=baseline"
|
||||
# See https://github.com/ghostty-org/ghostty/blob/main/PACKAGING.md#build-options
|
||||
"-Doptimize=ReleaseFast"
|
||||
];
|
||||
|
||||
zigBuildFlags = finalAttrs.zigCheckFlags;
|
||||
|
||||
postConfigure = ''
|
||||
cp -rLT ${finalAttrs.zigDeps} "$ZIG_GLOBAL_CACHE_DIR/p"
|
||||
chmod -R u+w "$ZIG_GLOBAL_CACHE_DIR/p"
|
||||
'';
|
||||
});
|
||||
|
||||
libExt = stdenv.hostPlatform.extensions.sharedLibrary;
|
||||
in
|
||||
melpaBuild (finalAttrs: {
|
||||
pname = "ghostel";
|
||||
|
||||
version = "0.44.0";
|
||||
@@ -19,59 +59,37 @@ let
|
||||
src = fetchFromGitHub {
|
||||
owner = "dakra";
|
||||
repo = "ghostel";
|
||||
tag = "v${version}";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-vRGZoQtjsL42ga07fOfEjccKRidAhqgwHBoKs++62Ls=";
|
||||
};
|
||||
|
||||
module = stdenv.mkDerivation (finalAttrs: {
|
||||
inherit pname version src;
|
||||
|
||||
deps = zig.fetchDeps {
|
||||
inherit (finalAttrs) src pname version;
|
||||
fetchAll = true;
|
||||
hash = "sha256-yrVgiofdmVjTGJ+PGPGRCc8gb/JcEca1uAzIoPgHHqU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ zig ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ xcbuild ];
|
||||
|
||||
env.EMACS_INCLUDE_DIR = "${emacs}/include";
|
||||
|
||||
dontSetZigDefaultFlags = true;
|
||||
|
||||
doCheck = true;
|
||||
|
||||
zigCheckFlags = [
|
||||
"-Dcpu=baseline"
|
||||
# See https://github.com/ghostty-org/ghostty/blob/main/PACKAGING.md#build-options
|
||||
"-Doptimize=ReleaseFast"
|
||||
];
|
||||
|
||||
zigBuildFlags = finalAttrs.zigCheckFlags;
|
||||
|
||||
postConfigure = ''
|
||||
cp -rLT ${finalAttrs.deps} "$ZIG_GLOBAL_CACHE_DIR/p"
|
||||
chmod -R u+w "$ZIG_GLOBAL_CACHE_DIR/p"
|
||||
'';
|
||||
});
|
||||
|
||||
libExt = stdenv.hostPlatform.extensions.sharedLibrary;
|
||||
in
|
||||
melpaBuild {
|
||||
inherit pname version src;
|
||||
# this can be put into mkModule, but we put it here to ease user overrideAttrs
|
||||
zigDeps = zig.fetchDeps {
|
||||
inherit (finalAttrs) src pname version;
|
||||
fetchAll = true;
|
||||
hash = "sha256-yrVgiofdmVjTGJ+PGPGRCc8gb/JcEca1uAzIoPgHHqU=";
|
||||
};
|
||||
|
||||
files = ''
|
||||
(:defaults "etc" "ghostel-module${libExt}" "ghostel-module.version")
|
||||
'';
|
||||
|
||||
preBuild = ''
|
||||
install ${module}/ghostel-module${libExt} ghostel-module${libExt}
|
||||
install --mode=444 ${module}/ghostel-module.version ghostel-module.version
|
||||
install ${finalAttrs.finalPackage.module}/ghostel-module${libExt} ghostel-module${libExt}
|
||||
install --mode=444 ${finalAttrs.finalPackage.module}/ghostel-module.version ghostel-module.version
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
|
||||
inherit module;
|
||||
module = mkModule {
|
||||
pname = "${finalAttrs.pname}-module";
|
||||
inherit (finalAttrs)
|
||||
version
|
||||
src
|
||||
zigDeps
|
||||
;
|
||||
};
|
||||
};
|
||||
|
||||
meta = {
|
||||
@@ -83,4 +101,4 @@ melpaBuild {
|
||||
];
|
||||
license = lib.licenses.gpl3Plus;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -6,22 +6,26 @@
|
||||
magit,
|
||||
transient,
|
||||
with-editor,
|
||||
consult,
|
||||
plz,
|
||||
}:
|
||||
melpaBuild {
|
||||
pname = "majutsu";
|
||||
version = "0.6.0-unstable-2026-07-09";
|
||||
version = "0.6.0-unstable-2026-07-23";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "0WD0";
|
||||
repo = "majutsu";
|
||||
rev = "59aff9b93eac575fbccc1f4ab2d48d048e0ead9b";
|
||||
hash = "sha256-GJ62hsHgLEFIY0ghij0VPFt1jMUGRKhI2eCroBjkxtc=";
|
||||
rev = "8eaf8cb4db2f0737d0a131ef8b61ce6393660369";
|
||||
hash = "sha256-QqvzRfqWa4Ql7bpuShqHmXzXJCu1VU8ObnImiK7ZyvE=";
|
||||
};
|
||||
|
||||
packageRequires = [
|
||||
magit
|
||||
transient
|
||||
with-editor
|
||||
consult
|
||||
plz
|
||||
];
|
||||
|
||||
passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch=main" ]; };
|
||||
|
||||
@@ -107,10 +107,10 @@ in
|
||||
{
|
||||
emacs31 = import ./make-emacs.nix (mkArgs {
|
||||
pname = "emacs";
|
||||
version = "31.0.90";
|
||||
version = "31.0.91";
|
||||
variant = "mainline";
|
||||
rev = "emacs-31.0.90";
|
||||
hash = "sha256-Rzlnn+NKQ+jICXLNop27RnVInq79myn4hueJieDO2Ck=";
|
||||
rev = "emacs-31.0.91";
|
||||
hash = "sha256-3nvCiLiEtII1C57CLfDIbVqhiwadYViF9Nv32yDtLIQ=";
|
||||
});
|
||||
|
||||
emacs30 = import ./make-emacs.nix (mkArgs {
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
lib,
|
||||
vimUtils,
|
||||
b4,
|
||||
}:
|
||||
vimUtils.buildVimPlugin {
|
||||
pname = "b4-review-vim";
|
||||
inherit (b4) version;
|
||||
|
||||
src = b4.src-misc;
|
||||
sourceRoot = "${b4.src-misc.name}/misc/vim";
|
||||
|
||||
meta = {
|
||||
description = "Vim syntax highlighting for the b4 review reply editor";
|
||||
homepage = "https://git.kernel.org/pub/scm/utils/b4/b4.git/about";
|
||||
license = lib.licenses.gpl2Only;
|
||||
maintainers = with lib.maintainers; [ fzakaria ];
|
||||
};
|
||||
}
|
||||
@@ -74,6 +74,9 @@ let
|
||||
];
|
||||
|
||||
env = {
|
||||
# Build zlob for a portable CPU baseline (https://github.com/dmtrKovalenko/fff/issues/705)
|
||||
CI = "1";
|
||||
|
||||
OPENSSL_NO_VENDOR = true;
|
||||
|
||||
# Allow undefined symbols on Darwin - they will be provided by Neovim's LuaJIT runtime
|
||||
|
||||
@@ -21,22 +21,22 @@ vscode-utils.buildVscodeMarketplaceExtension (finalAttrs: {
|
||||
sources = {
|
||||
"x86_64-linux" = {
|
||||
arch = "linux-x64";
|
||||
hash = "sha256-Y6MXjJBmhMzuQMwhkPLHK/vtciTdjsGvkEblH3ofju0=";
|
||||
hash = "sha256-Z/tQ+KV+3MdbknA/1kmiIpVfOsUM8NUu+0iHlPVbYV0=";
|
||||
};
|
||||
"aarch64-linux" = {
|
||||
arch = "linux-arm64";
|
||||
hash = "sha256-8VvDtb+8SoLTRC7pXwH40amRurxTQgCmhdi0u7e5AfU=";
|
||||
hash = "sha256-d2GjWr0FHOoORI5KRdwUQvcFfBB8xV6j9wj5OS9VL9o=";
|
||||
};
|
||||
"aarch64-darwin" = {
|
||||
arch = "darwin-arm64";
|
||||
hash = "sha256-bqjEgsjY+zyG1g/KtkRNxAlazIpc+HwGWvsMQNnPI2M=";
|
||||
hash = "sha256-dlfGTxf2EoiNb0g9uqwjTNW8fi2d1tzubGdIDyp4xTw=";
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
name = "claude-code";
|
||||
publisher = "anthropic";
|
||||
version = "2.1.218";
|
||||
version = "2.1.219";
|
||||
}
|
||||
// sources.${stdenvNoCC.hostPlatform.system}
|
||||
or (throw "Unsupported system ${stdenvNoCC.hostPlatform.system}");
|
||||
|
||||
@@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "vscode-eslint";
|
||||
publisher = "dbaeumer";
|
||||
version = "3.0.24";
|
||||
hash = "sha256-ZQVzpSSLf3tpO4QtLjbCOje3L5/EqzT9A9IOssl6e54=";
|
||||
version = "3.0.34";
|
||||
hash = "sha256-ynCPFzne4YS4WNjQSmGky+e2IaE3SLxj6FkjKyLPcAs=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -10,8 +10,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
publisher = "oxc";
|
||||
name = "oxc-vscode";
|
||||
version = "1.58.0";
|
||||
hash = "sha256-30dFeguNbY8WM3fLym6aUMkHYH5wA5scSNn04Ukbj9U=";
|
||||
version = "1.59.0";
|
||||
hash = "sha256-avfW91oF8PGCoDYocC744wpQ3zE8fv5582n55Ugb8k8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "mednafen-vb";
|
||||
version = "0-unstable-2026-06-14";
|
||||
version = "0-unstable-2026-07-22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "beetle-vb-libretro";
|
||||
rev = "38e7a0ec9ac7079ca1c1e3dd9aaf5b56f527efca";
|
||||
hash = "sha256-+57qsfH2wygKdD66yauzKD9XDf01q4LeiWdIeYbVUmc=";
|
||||
rev = "7cc663e9044459b3dab1790bdce8f48dc7358ed6";
|
||||
hash = "sha256-ntw8SXzyu0PTDQgaLmT5Wy172A8TI3JLN6A5WQ2T/OI=";
|
||||
};
|
||||
|
||||
makefile = "Makefile";
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "melonds";
|
||||
version = "0-unstable-2026-06-25";
|
||||
version = "0-unstable-2026-07-19";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "melonds";
|
||||
rev = "c9550d18923fe86a5ad9faa159399b55c12b47f1";
|
||||
hash = "sha256-xvBdt/TMxZOrC//DLHRWRMqIibt7dNsfLM/FeMTRA60=";
|
||||
rev = "66b5d2634cd0a79030562811e6e05f5532f800ba";
|
||||
hash = "sha256-nQvnXoB8UeaSr6QfYwn18Y18KyLyWvcv/Q3L3SHvaNU=";
|
||||
};
|
||||
|
||||
extraBuildInputs = [
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "picodrive";
|
||||
version = "0-unstable-2026-04-02";
|
||||
version = "0-unstable-2026-07-23";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "picodrive";
|
||||
rev = "f0d4a0118a9733a1f10bce5a4ac772c474f9300d";
|
||||
hash = "sha256-q584bnqIbKoXSCRHUAcqSJAIhholnXfbphvLVcbm57o=";
|
||||
rev = "78a662e3135871a6c657d5e61900f6704152e594";
|
||||
hash = "sha256-3+x1ILIUq+/nwfUGXweNIq3PFTAaP56/6G+dX4dEZ/Y=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
37
pkgs/applications/networking/browsers/brave/default.nix
Normal file
37
pkgs/applications/networking/browsers/brave/default.nix
Normal file
@@ -0,0 +1,37 @@
|
||||
{ callPackage }:
|
||||
|
||||
let
|
||||
flavorData = {
|
||||
browser = {
|
||||
optStem = "brave";
|
||||
fileStem = "brave-browser";
|
||||
appIdStem = "com.brave.Browser";
|
||||
darwinStem = "Brave Browser";
|
||||
changelogFile = "CHANGELOG_DESKTOP.md";
|
||||
homepage = "https://brave.com/";
|
||||
innerBinary = "brave";
|
||||
};
|
||||
origin = {
|
||||
optStem = "brave-origin";
|
||||
fileStem = "brave-origin";
|
||||
appIdStem = "com.brave.Origin";
|
||||
darwinStem = "Brave Origin";
|
||||
changelogFile = "CHANGELOG_DESKTOP_ORIGIN.md";
|
||||
homepage = "https://brave.com/origin/";
|
||||
innerBinary = "brave";
|
||||
};
|
||||
};
|
||||
|
||||
mkBrave =
|
||||
release:
|
||||
let
|
||||
pkg = import release;
|
||||
fd = flavorData.${pkg.flavor or "browser"};
|
||||
in
|
||||
callPackage ./make-brave.nix { } (pkg // fd);
|
||||
|
||||
in
|
||||
{
|
||||
brave = mkBrave ./packages/brave.nix;
|
||||
brave-origin = mkBrave ./packages/brave-origin.nix;
|
||||
}
|
||||
@@ -49,26 +49,20 @@
|
||||
coreutils,
|
||||
libxcb,
|
||||
zlib,
|
||||
|
||||
# Darwin dependencies
|
||||
unzip,
|
||||
makeWrapper,
|
||||
|
||||
# command line arguments which are always set e.g "--disable-gpu"
|
||||
commandLineArgs ? "",
|
||||
|
||||
# Necessary for USB audio devices.
|
||||
pulseSupport ? stdenv.hostPlatform.isLinux,
|
||||
libpulseaudio,
|
||||
|
||||
# For GPU acceleration support on Wayland (without the lib it doesn't seem to work)
|
||||
libGL,
|
||||
|
||||
# For video acceleration via VA-API (--enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoEncoder)
|
||||
libvaSupport ? stdenv.hostPlatform.isLinux,
|
||||
libva,
|
||||
enableVideoAcceleration ? libvaSupport,
|
||||
|
||||
# For Vulkan support (--enable-features=Vulkan); disabled by default as it seems to break VA-API
|
||||
vulkanSupport ? false,
|
||||
addDriverRunpath,
|
||||
@@ -78,8 +72,22 @@
|
||||
{
|
||||
pname,
|
||||
version,
|
||||
hash,
|
||||
url,
|
||||
# Map from Nix system strings ("x86_64-linux", "aarch64-darwin", ...) to
|
||||
# the corresponding upstream `{ url, hash }` record. Encoding the per-system
|
||||
# sources as data rather than positional arguments lets channel-specific
|
||||
# package.nix files drop platforms that upstream hasn't published yet.
|
||||
archives,
|
||||
# Upstream product flavor: "browser" (the regular Brave) or "origin" (the
|
||||
# stripped-down Brave Origin).
|
||||
flavor ? "browser",
|
||||
# Flavor-specific paths supplied by the caller (default.nix).
|
||||
optStem,
|
||||
fileStem,
|
||||
appIdStem,
|
||||
darwinStem,
|
||||
changelogFile,
|
||||
homepage,
|
||||
innerBinary,
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -94,6 +102,19 @@ let
|
||||
escapeShellArg
|
||||
;
|
||||
|
||||
# /opt/brave.com/<optName>/
|
||||
optName = optStem;
|
||||
# Basename used for .desktop, gnome-control-center xml and icon files.
|
||||
fileBase = fileStem;
|
||||
# Secondary .desktop app-id.
|
||||
appId = appIdStem;
|
||||
# Upstream shell wrapper inside /opt.
|
||||
innerWrapper = fileStem;
|
||||
# macOS .app bundle name (inside the zip).
|
||||
darwinApp = darwinStem;
|
||||
# Upstream Exec= target in .desktop files (replaced with our wrapper).
|
||||
upstreamBin = "brave-${flavor}-stable";
|
||||
|
||||
deps = [
|
||||
alsa-lib
|
||||
at-spi2-atk
|
||||
@@ -156,13 +177,19 @@ let
|
||||
] # disable automatic updates
|
||||
# The feature disable is needed for VAAPI to work correctly: https://github.com/brave/brave-browser/issues/20935
|
||||
++ optionals enableVideoAcceleration [ "UseChromeOSDirectVideoDecoder" ];
|
||||
|
||||
archive =
|
||||
assert lib.assertMsg (builtins.hasAttr stdenv.hostPlatform.system archives)
|
||||
"${pname} is not available for ${stdenv.hostPlatform.system}";
|
||||
archives.${stdenv.hostPlatform.system};
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
inherit pname version;
|
||||
|
||||
src = fetchurl {
|
||||
inherit url hash;
|
||||
};
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
|
||||
src = fetchurl { inherit (archive) url hash; };
|
||||
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
@@ -201,27 +228,27 @@ stdenv.mkDerivation {
|
||||
cp -R usr/share $out
|
||||
cp -R opt/ $out/opt
|
||||
|
||||
export BINARYWRAPPER=$out/opt/brave.com/brave/brave-browser
|
||||
export BINARYWRAPPER=$out/opt/brave.com/${optName}/${innerWrapper}
|
||||
|
||||
# Fix path to bash in $BINARYWRAPPER
|
||||
substituteInPlace $BINARYWRAPPER \
|
||||
--replace-fail /bin/bash ${stdenv.shell} \
|
||||
--replace-fail 'CHROME_WRAPPER' 'WRAPPER'
|
||||
|
||||
ln -sf $BINARYWRAPPER $out/bin/brave
|
||||
ln -sf $BINARYWRAPPER $out/bin/${pname}
|
||||
|
||||
for exe in $out/opt/brave.com/brave/{brave,chrome_crashpad_handler}; do
|
||||
for exe in $out/opt/brave.com/${optName}/{${innerBinary},chrome_crashpad_handler}; do
|
||||
patchelf \
|
||||
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||
--set-rpath "${rpath}" $exe
|
||||
done
|
||||
|
||||
# Fix paths
|
||||
substituteInPlace $out/share/applications/{brave-browser,com.brave.Browser}.desktop \
|
||||
--replace-fail /usr/bin/brave-browser-stable $out/bin/brave
|
||||
substituteInPlace $out/share/gnome-control-center/default-apps/brave-browser.xml \
|
||||
substituteInPlace $out/share/applications/{${fileBase},${appId}}.desktop \
|
||||
--replace-fail /usr/bin/${upstreamBin} $out/bin/${pname}
|
||||
substituteInPlace $out/share/gnome-control-center/default-apps/${fileBase}.xml \
|
||||
--replace-fail /opt/brave.com $out/opt/brave.com
|
||||
substituteInPlace $out/opt/brave.com/brave/default-app-block \
|
||||
substituteInPlace $out/opt/brave.com/${optName}/default-app-block \
|
||||
--replace-fail /opt/brave.com $out/opt/brave.com
|
||||
|
||||
# Correct icons location
|
||||
@@ -229,13 +256,13 @@ stdenv.mkDerivation {
|
||||
|
||||
for icon in ''${icon_sizes[*]}
|
||||
do
|
||||
mkdir -p $out/share/icons/hicolor/$icon\x$icon/apps
|
||||
ln -s $out/opt/brave.com/brave/product_logo_$icon.png $out/share/icons/hicolor/$icon\x$icon/apps/brave-browser.png
|
||||
mkdir -p $out/share/icons/hicolor/''${icon}x''${icon}/apps
|
||||
ln -s $out/opt/brave.com/${optName}/product_logo_''${icon}.png $out/share/icons/hicolor/''${icon}x''${icon}/apps/${fileBase}.png
|
||||
done
|
||||
|
||||
# Replace xdg-settings and xdg-mime
|
||||
ln -sf ${xdg-utils}/bin/xdg-settings $out/opt/brave.com/brave/xdg-settings
|
||||
ln -sf ${xdg-utils}/bin/xdg-mime $out/opt/brave.com/brave/xdg-mime
|
||||
ln -sf ${xdg-utils}/bin/xdg-settings $out/opt/brave.com/${optName}/xdg-settings
|
||||
ln -sf ${xdg-utils}/bin/xdg-mime $out/opt/brave.com/${optName}/xdg-mime
|
||||
|
||||
runHook postInstall
|
||||
''
|
||||
@@ -244,9 +271,9 @@ stdenv.mkDerivation {
|
||||
|
||||
mkdir -p $out/{Applications,bin}
|
||||
|
||||
cp -r . "$out/Applications/Brave Browser.app"
|
||||
cp -r . "$out/Applications/${darwinApp}.app"
|
||||
|
||||
makeWrapper "$out/Applications/Brave Browser.app/Contents/MacOS/Brave Browser" $out/bin/brave
|
||||
makeWrapper "$out/Applications/${darwinApp}.app/Contents/MacOS/${darwinApp}" $out/bin/${pname}
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
@@ -279,22 +306,33 @@ stdenv.mkDerivation {
|
||||
|
||||
installCheckPhase = ''
|
||||
# Bypass upstream wrapper which suppresses errors
|
||||
$out/opt/brave.com/brave/brave --version
|
||||
$out/opt/brave.com/${optName}/brave --version
|
||||
'';
|
||||
|
||||
passthru.updateScript = ./update.sh;
|
||||
|
||||
meta = {
|
||||
homepage = "https://brave.com/";
|
||||
description = "Privacy-oriented browser for Desktop and Laptop computers";
|
||||
homepage = homepage;
|
||||
description =
|
||||
"Privacy-oriented browser for Desktop and Laptop computers"
|
||||
+ lib.optionalString (flavor == "origin") " (Origin variant)";
|
||||
changelog =
|
||||
"https://github.com/brave/brave-browser/blob/master/CHANGELOG_DESKTOP.md#"
|
||||
"https://github.com/brave/brave-browser/blob/master/${changelogFile}#"
|
||||
+ lib.replaceStrings [ "." ] [ "" ] version;
|
||||
longDescription = ''
|
||||
Brave browser blocks the ads and trackers that slow you down,
|
||||
chew up your bandwidth, and invade your privacy. Brave lets you
|
||||
contribute to your favorite creators automatically.
|
||||
'';
|
||||
longDescription =
|
||||
if flavor == "origin" then
|
||||
''
|
||||
Brave Origin is a stripped-down variant of the Brave browser that
|
||||
removes most non-privacy features (rewards, wallet, AI, etc.) while
|
||||
keeping the core privacy, adblock and Chromium-based browsing
|
||||
experience.
|
||||
''
|
||||
else
|
||||
''
|
||||
Brave browser blocks the ads and trackers that slow you down,
|
||||
chew up your bandwidth, and invade your privacy. Brave lets you
|
||||
contribute to your favorite creators automatically.
|
||||
'';
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
license = lib.licenses.mpl20;
|
||||
maintainers = with lib.maintainers; [
|
||||
@@ -302,12 +340,9 @@ stdenv.mkDerivation {
|
||||
jefflabonte
|
||||
nasirhm
|
||||
buckley310
|
||||
rachalaraj
|
||||
];
|
||||
platforms = [
|
||||
"aarch64-linux"
|
||||
"x86_64-linux"
|
||||
"aarch64-darwin"
|
||||
];
|
||||
mainProgram = "brave";
|
||||
platforms = builtins.attrNames archives;
|
||||
mainProgram = if flavor == "origin" then "brave-origin" else "brave";
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
# Expression generated by update.sh; do not edit it by hand!
|
||||
rec {
|
||||
pname = "brave-origin";
|
||||
version = "1.92.144";
|
||||
flavor = "origin";
|
||||
|
||||
archives = {
|
||||
aarch64-linux = {
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-origin_${version}_arm64.deb";
|
||||
hash = "sha256-zqjpiBMogYhtuEhIlPlK8J2j9hzfd1M8RYlT/c74Na8=";
|
||||
};
|
||||
x86_64-linux = {
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-origin_${version}_amd64.deb";
|
||||
hash = "sha256-KF5WXF7GJPLCcEQyASEVfNrYyFJRXBSyWVPPAZPCa/E=";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-origin-v${version}-darwin-arm64.zip";
|
||||
hash = "sha256-kkP8cBRnC34+SjC9EvkpKcDYP3cxW7sdJgni0+zXwbk=";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
# Expression generated by update.sh; do not edit it by hand!
|
||||
rec {
|
||||
pname = "brave";
|
||||
version = "1.92.144";
|
||||
|
||||
archives = {
|
||||
aarch64-linux = {
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_arm64.deb";
|
||||
hash = "sha256-Z9uUJRaMx+P35oXtvAnjHyOQOXt8mW5oyyEtnD754x8=";
|
||||
};
|
||||
x86_64-linux = {
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
|
||||
hash = "sha256-no/KD+3EB6CqvVWEmDB/8k2rv1wau469FBXMNWN7z6k=";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-v${version}-darwin-arm64.zip";
|
||||
hash = "sha256-YidWCVGP36wn1goAulSbVrKFoHI1NA/pLtfPjIXBO48=";
|
||||
};
|
||||
};
|
||||
}
|
||||
100
pkgs/applications/networking/browsers/brave/update.sh
Executable file
100
pkgs/applications/networking/browsers/brave/update.sh
Executable file
@@ -0,0 +1,100 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p curl nix jq
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
|
||||
VERSIONS_URL="https://versions.brave.com/latest/brave-versions.json"
|
||||
|
||||
sri_hash() {
|
||||
nix-hash --to-sri --type sha256 "$(nix-prefetch-url --type sha256 "$1")"
|
||||
}
|
||||
|
||||
find_release_with_asset() {
|
||||
local versionsJson="$1" channel="$2" template="$3"
|
||||
local match
|
||||
match="$(
|
||||
jq -c --arg channel "$channel" --arg tmpl "$template" '
|
||||
[.[]
|
||||
| select(.channel == $channel)
|
||||
| . as $r
|
||||
| select(
|
||||
$r.github.assets
|
||||
| map(.name)
|
||||
| any(. == ($tmpl | gsub("\\$\\{version\\}"; $r.name)))
|
||||
)
|
||||
]
|
||||
| sort_by(.published)
|
||||
| last
|
||||
' <<<"$versionsJson"
|
||||
)"
|
||||
if [[ "$match" != "null" ]]; then
|
||||
printf '%s' "$match"
|
||||
return 0
|
||||
fi
|
||||
echo "update.sh: no ${channel} release with asset matching '${template}' found" >&2
|
||||
return 1
|
||||
}
|
||||
|
||||
emit_archive_entry() {
|
||||
local releaseJson="$1" version="$2" template="$3" platform="$4"
|
||||
local name="${template//\$\{version\}/$version}"
|
||||
local url
|
||||
url="$(
|
||||
jq -r --arg n "$name" '
|
||||
.github.assets[]
|
||||
| select(.name == $n)
|
||||
| .download_url
|
||||
' <<<"$releaseJson"
|
||||
)"
|
||||
if [[ -z "$url" ]]; then
|
||||
return 0
|
||||
fi
|
||||
local hash
|
||||
hash="$(sri_hash "$url")"
|
||||
local nixUrl="${url//${version}/\$\{version\}}"
|
||||
cat <<EOF
|
||||
${platform} = {
|
||||
url = "${nixUrl}";
|
||||
hash = "${hash}";
|
||||
};
|
||||
EOF
|
||||
}
|
||||
|
||||
write_package_nix() {
|
||||
local pname="$1" releaseJson="$2" debStem="$3" darwinStem="$4"
|
||||
local version
|
||||
version="$(jq -r '.name' <<<"$releaseJson")"
|
||||
echo "=> ${pname}: ${version}" >&2
|
||||
local flavorLine=""
|
||||
if [[ "$pname" == brave-origin || "$pname" == brave-origin-* ]]; then
|
||||
flavorLine=' flavor = "origin";'
|
||||
fi
|
||||
local outFile="${SCRIPT_DIR}/packages/${pname}.nix"
|
||||
{
|
||||
echo '# Expression generated by update.sh; do not edit it by hand!'
|
||||
echo 'rec {'
|
||||
echo " pname = \"${pname}\";"
|
||||
echo " version = \"${version}\";"
|
||||
[[ -n "$flavorLine" ]] && echo "$flavorLine"
|
||||
echo ''
|
||||
echo ' archives = {'
|
||||
emit_archive_entry "$releaseJson" "$version" "${debStem}_\${version}_arm64.deb" "aarch64-linux"
|
||||
emit_archive_entry "$releaseJson" "$version" "${debStem}_\${version}_amd64.deb" "x86_64-linux"
|
||||
emit_archive_entry "$releaseJson" "$version" "${darwinStem}-v\${version}-darwin-arm64.zip" "aarch64-darwin"
|
||||
echo ' };'
|
||||
echo '}'
|
||||
} > "$outFile"
|
||||
}
|
||||
|
||||
versionsJson="$(curl --fail -s "$VERSIONS_URL")"
|
||||
|
||||
entries=(
|
||||
"brave brave-browser brave"
|
||||
"brave-origin brave-origin brave-origin"
|
||||
)
|
||||
|
||||
for entry in "${entries[@]}"; do
|
||||
read -r pname debStem darwinStem <<<"$entry"
|
||||
releaseJson="$(find_release_with_asset "$versionsJson" "release" "${debStem}_\${version}_amd64.deb")"
|
||||
write_package_nix "$pname" "$releaseJson" "$debStem" "$darwinStem"
|
||||
done
|
||||
@@ -837,7 +837,7 @@
|
||||
}
|
||||
},
|
||||
"ungoogled-chromium": {
|
||||
"version": "150.0.7871.181",
|
||||
"version": "150.0.7871.186",
|
||||
"deps": {
|
||||
"depot_tools": {
|
||||
"rev": "f4fadaf6a5ba1bced9d3d9021060667b563bf583",
|
||||
@@ -849,16 +849,16 @@
|
||||
"hash": "sha256-/1A+DkzAQj2zGPe/A/G0Z3VrYJXUxq4Hd/+d/o5p3G8="
|
||||
},
|
||||
"ungoogled-patches": {
|
||||
"rev": "150.0.7871.181-1",
|
||||
"hash": "sha256-ifqEnOcvi49cFOYan8ShiwteXYnFrLPclrIBZiE1rGY="
|
||||
"rev": "150.0.7871.186-1",
|
||||
"hash": "sha256-kL9xE/w0W4Wf+z9qX5EFLGMYWQ3Hvyzhy7PtF59a/Sk="
|
||||
},
|
||||
"npmHash": "sha256-pF0JtwFpPC4/fodbhSJnQKkczA9WlDg4VqEAy9aDVLg="
|
||||
},
|
||||
"DEPS": {
|
||||
"src": {
|
||||
"url": "https://chromium.googlesource.com/chromium/src.git",
|
||||
"rev": "24b04c927b23c39cf9c5227cc8dc6f64a744c8e9",
|
||||
"hash": "sha256-F52wmxyNPEV26v8YgAz+MRhyEGyV7YUX+/wj95H4Lf0=",
|
||||
"rev": "0fcdce5f4fdec8d442d7df760cb541f1ca6e446d",
|
||||
"hash": "sha256-6coAYewN8RC5kx0PmmiV6mXQhLqWF3BZP320PmOcPvw=",
|
||||
"recompress": true
|
||||
},
|
||||
"src/third_party/clang-format/script": {
|
||||
|
||||
@@ -45,11 +45,11 @@
|
||||
"vendorHash": "sha256-031RZo1EqWrt79NvdrrZ9FW/E+mfwkGmr7wyMYX4SHg="
|
||||
},
|
||||
"aliyun_alicloud": {
|
||||
"hash": "sha256-G52l+5WlcxSNflx0ioD0jEKI1GBWe5D4qW8VH8k6uTA=",
|
||||
"hash": "sha256-es2ti8tSgShwUWYtZ7OEff88LLiAnK4B/Hq9PaNEEOc=",
|
||||
"homepage": "https://registry.terraform.io/providers/aliyun/alicloud",
|
||||
"owner": "aliyun",
|
||||
"repo": "terraform-provider-alicloud",
|
||||
"rev": "v1.285.0",
|
||||
"rev": "v1.286.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-sZeXHTrMUUPllPzvpbFjwA5FjFJXnO1k5h9B5i8U+vs="
|
||||
},
|
||||
@@ -445,13 +445,13 @@
|
||||
"vendorHash": "sha256-FcxAh8EOvnT8r1GHu0Oj2C5Jgbr2WPwD7/vY4/qIvTA="
|
||||
},
|
||||
"gitlabhq_gitlab": {
|
||||
"hash": "sha256-BMOFi/g0W6xo/Kfqw8oqsMeeU3aXyWAKSgF9lIS4AbA=",
|
||||
"hash": "sha256-eTtmEW3sdCkpojxshhdQq+8qNTYjzin5TmCGil/3F5E=",
|
||||
"homepage": "https://registry.terraform.io/providers/gitlabhq/gitlab",
|
||||
"owner": "gitlabhq",
|
||||
"repo": "terraform-provider-gitlab",
|
||||
"rev": "v19.1.0",
|
||||
"rev": "v19.2.1",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-9aoJGVTC9t76auYy8K3QSWGzSAq9aTxemKNc3aCLjRY="
|
||||
"vendorHash": "sha256-uEXZEYlQZ24h4IffJQEmqqrmHbiRSKVGJ1OCv4k1zVQ="
|
||||
},
|
||||
"go-gandi_gandi": {
|
||||
"hash": "sha256-fsCtmwyxkXfOtiZG27VEb010jglK35yr4EynnUWlFog=",
|
||||
@@ -905,13 +905,13 @@
|
||||
"vendorHash": "sha256-t4dbDJNjEQ6/u+/6zqk2Sdd3LVn/L2BCJujpiLdGc58="
|
||||
},
|
||||
"metio_migadu": {
|
||||
"hash": "sha256-Aef1H/L2EFeU9mhecOnlPAbJbt3XfBL0Wz67IqxCI10=",
|
||||
"hash": "sha256-qeN2Zlx4qSrjb7qxjDf4v3uG1GR/faTiCNKD/HZkoyw=",
|
||||
"homepage": "https://registry.terraform.io/providers/metio/migadu",
|
||||
"owner": "metio",
|
||||
"repo": "terraform-provider-migadu",
|
||||
"rev": "2026.7.2",
|
||||
"rev": "2026.7.23",
|
||||
"spdx": "0BSD",
|
||||
"vendorHash": "sha256-wUX2smEhKUftBCRi7ANq8NpHXpB+EmlVshrhI2ltY2I="
|
||||
"vendorHash": "sha256-rwIHdtVVWygfxadoJigGBIUV0xoQ6vqDsHJgjYQ2RBM="
|
||||
},
|
||||
"mongey_kafka": {
|
||||
"hash": "sha256-rTa6c7jAMH027V7h/yUGVGz6TS0PDdObilxU0Vpr6FI=",
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
gst_all_1,
|
||||
gtk2,
|
||||
gtk2-x11,
|
||||
gtkspell2,
|
||||
intltool,
|
||||
lib,
|
||||
libice,
|
||||
@@ -94,7 +93,6 @@ let
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
gtk2
|
||||
gtkspell2
|
||||
farstream
|
||||
]
|
||||
++ lib.optional stdenv.hostPlatform.isDarwin gtk2-x11;
|
||||
@@ -126,16 +124,14 @@ let
|
||||
"--disable-nm"
|
||||
"--disable-tcl"
|
||||
"--disable-gevolution"
|
||||
"--disable-gtkspell"
|
||||
]
|
||||
++ lib.optionals withCyrus_sasl [ "--enable-cyrus-sasl=yes" ]
|
||||
++ lib.optionals withGnutls [
|
||||
"--enable-gnutls=yes"
|
||||
"--enable-nss=no"
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
"--disable-gtkspell"
|
||||
"--disable-vv"
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [ "--disable-vv" ]
|
||||
++ lib.optionals stdenv.cc.isClang [ "CFLAGS=-Wno-error=int-conversion" ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
@@ -78,8 +78,8 @@ rec {
|
||||
thunderbird = thunderbird-latest;
|
||||
|
||||
thunderbird-latest = common {
|
||||
version = "152.0.1";
|
||||
sha512 = "f66c87de4dd73c3c45e420a55d76c3cb6ac091a61794ccf58ba59d1a40cf8001dee19a6a7f4c6bef7d36ea94ed4e4f677449d3006b2004abbd3fab42ad1c9228";
|
||||
version = "153.0";
|
||||
sha512 = "f77bde3dd0933dd35870a889386c41d55ff0cbe276ec3373b27e9885f7db7e35529e7ecc2fc149ae4f8c5ae53eddb3ad444e7499a850a59a82b8940c7a4c7747";
|
||||
|
||||
updateScript = callPackage ./update.nix {
|
||||
attrPath = "thunderbirdPackages.thunderbird-latest";
|
||||
@@ -89,6 +89,19 @@ rec {
|
||||
# Eventually, switch to an updateScript without versionPrefix hardcoded...
|
||||
thunderbird-esr = thunderbird-140;
|
||||
|
||||
thunderbird-153 = common {
|
||||
applicationName = "Thunderbird ESR";
|
||||
|
||||
version = "153.0.1esr";
|
||||
sha512 = "3773b49b69341aea108a627faa0dd5b7cfb52cdb4c37e625fbb8cbaef7f9166f925ecbc199173302d5bef7994e6bff3b56cd56a3a4c38a9d702cc3e5aeafcf7c";
|
||||
|
||||
updateScript = callPackage ./update.nix {
|
||||
attrPath = "thunderbirdPackages.thunderbird-153";
|
||||
versionPrefix = "153";
|
||||
versionSuffix = "esr";
|
||||
};
|
||||
};
|
||||
|
||||
thunderbird-140 = common {
|
||||
applicationName = "Thunderbird ESR";
|
||||
|
||||
|
||||
@@ -12,13 +12,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "droidcam-obs";
|
||||
version = "2.5.0";
|
||||
version = "2.5.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dev47apps";
|
||||
repo = "droidcam-obs-plugin";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-JPAQoGZFzTIdBQ7GpCPaYUVPkkcBdCRFkVPU+nyRa7Q=";
|
||||
hash = "sha256-T7CQrjQK5OV1bgqa2il9snsK7nScuVhV06NuX2SoIeI=";
|
||||
};
|
||||
|
||||
preBuild = ''
|
||||
|
||||
@@ -97,6 +97,82 @@ let
|
||||
|
||||
buildPrefix = "Build/*/*";
|
||||
|
||||
isQemuPlatform = builtins.elem projectDscPath [
|
||||
"OvmfPkg/OvmfPkgX64.dsc"
|
||||
"ArmVirtPkg/ArmVirtQemu.dsc"
|
||||
"OvmfPkg/RiscVVirt/RiscVVirtQemu.dsc"
|
||||
"OvmfPkg/LoongArchVirt/LoongArchVirtQemu.dsc"
|
||||
];
|
||||
|
||||
# QEMU firmware interop descriptors to install, keyed by file name.
|
||||
# Add an attribute to ship an additional descriptor.
|
||||
qemuDescriptors =
|
||||
let
|
||||
description = "${fwPrefix} UEFI firmware for ${cpuName}${lib.optionalString secureBoot " with Secure Boot"}";
|
||||
|
||||
flashMapping = varsFile: {
|
||||
device = "flash";
|
||||
mode = "split";
|
||||
executable = {
|
||||
filename = "${placeholder "fd"}/FV/${fwPrefix}_CODE.fd";
|
||||
format = "raw";
|
||||
};
|
||||
nvram-template = {
|
||||
filename = "${placeholder "fd"}/FV/${varsFile}";
|
||||
format = "raw";
|
||||
};
|
||||
};
|
||||
|
||||
common = {
|
||||
interface-types = [ "uefi" ];
|
||||
targets = [
|
||||
{
|
||||
architecture = cpuName;
|
||||
machines =
|
||||
{
|
||||
x86_64 =
|
||||
if systemManagementModeRequired then
|
||||
[ "pc-q35-*" ]
|
||||
else
|
||||
[
|
||||
"pc-i440fx-*"
|
||||
"pc-q35-*"
|
||||
];
|
||||
aarch64 = [ "virt-*" ];
|
||||
riscv64 = [ "virt*" ];
|
||||
loongarch64 = [ "virt*" ];
|
||||
}
|
||||
.${cpuName} or [ ];
|
||||
}
|
||||
];
|
||||
features =
|
||||
lib.optionals stdenv.hostPlatform.isx86 [
|
||||
"acpi-s3"
|
||||
"amd-sev"
|
||||
]
|
||||
++ lib.optionals (stdenv.hostPlatform.isx86 && !systemManagementModeRequired) [ "amd-sev-es" ]
|
||||
++ lib.optionals secureBoot [ "secure-boot" ]
|
||||
++ lib.optionals systemManagementModeRequired [ "requires-smm" ]
|
||||
++ lib.optionals (stdenv.hostPlatform.isx86 && !debug) [ "verbose-dynamic" ];
|
||||
tags = [ ];
|
||||
};
|
||||
in
|
||||
lib.optionalAttrs isQemuPlatform (
|
||||
{
|
||||
"50-edk2-${cpuName}${lib.optionalString secureBoot "-sb"}.json" = common // {
|
||||
inherit description;
|
||||
mapping = flashMapping "${fwPrefix}_VARS.fd";
|
||||
};
|
||||
}
|
||||
// lib.optionalAttrs msVarsTemplate {
|
||||
"40-edk2-${cpuName}${lib.optionalString secureBoot "-sb"}-enrolled.json" = common // {
|
||||
description = "${description}, Microsoft keys enrolled";
|
||||
mapping = flashMapping "${fwPrefix}_VARS.ms.fd";
|
||||
features = common.features ++ [ "enrolled-keys" ];
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
in
|
||||
|
||||
assert msVarsTemplate -> fdSize4MB;
|
||||
@@ -242,7 +318,17 @@ edk2.mkDerivation projectDscPath (finalAttrs: {
|
||||
mkdir -vp $fd/AAVMF
|
||||
ln -s $fd/FV/AAVMF_CODE.fd $fd/AAVMF/QEMU_EFI-pflash.raw
|
||||
ln -s $fd/FV/AAVMF_VARS.fd $fd/AAVMF/vars-template-pflash.raw
|
||||
'';
|
||||
''
|
||||
+ lib.optionalString (qemuDescriptors != { }) ''
|
||||
mkdir -vp $fd/share/qemu/firmware
|
||||
''
|
||||
+ lib.concatStrings (
|
||||
lib.mapAttrsToList (name: descriptor: ''
|
||||
python3 -m json.tool > $fd/share/qemu/firmware/${name} <<'EOF'
|
||||
${builtins.toJSON descriptor}
|
||||
EOF
|
||||
'') qemuDescriptors
|
||||
);
|
||||
|
||||
dontPatchELF = true;
|
||||
|
||||
|
||||
@@ -143,6 +143,27 @@ let
|
||||
hash = mobyHash;
|
||||
};
|
||||
|
||||
extraMobyPath = lib.optionals stdenv.hostPlatform.isLinux (
|
||||
lib.makeBinPath [
|
||||
iproute2
|
||||
iptables
|
||||
e2fsprogs
|
||||
xz
|
||||
xfsprogs
|
||||
procps
|
||||
util-linuxMinimal
|
||||
gitMinimal
|
||||
]
|
||||
);
|
||||
|
||||
extraMobyUserPath = lib.optionals (stdenv.hostPlatform.isLinux && !clientOnly) (
|
||||
lib.makeBinPath [
|
||||
rootlesskit
|
||||
slirp4netns
|
||||
fuse-overlayfs
|
||||
]
|
||||
);
|
||||
|
||||
moby = buildGoModule (
|
||||
lib.optionalAttrs stdenv.hostPlatform.isLinux {
|
||||
pname = "moby";
|
||||
@@ -170,27 +191,6 @@ let
|
||||
++ lib.optionals withSystemd [ systemd ]
|
||||
++ lib.optionals withSeccomp [ libseccomp ];
|
||||
|
||||
extraPath = lib.optionals stdenv.hostPlatform.isLinux (
|
||||
lib.makeBinPath [
|
||||
iproute2
|
||||
iptables
|
||||
e2fsprogs
|
||||
xz
|
||||
xfsprogs
|
||||
procps
|
||||
util-linuxMinimal
|
||||
gitMinimal
|
||||
]
|
||||
);
|
||||
|
||||
extraUserPath = lib.optionals (stdenv.hostPlatform.isLinux && !clientOnly) (
|
||||
lib.makeBinPath [
|
||||
rootlesskit
|
||||
slirp4netns
|
||||
fuse-overlayfs
|
||||
]
|
||||
);
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs hack/make.sh hack/make/
|
||||
''
|
||||
@@ -218,7 +218,9 @@ let
|
||||
install -Dm755 ./bundles/dynbinary-daemon/docker-proxy $out/libexec/docker/docker-proxy
|
||||
|
||||
makeWrapper $out/libexec/docker/dockerd $out/bin/dockerd \
|
||||
--prefix PATH : "$out/libexec/docker:$extraPath"
|
||||
--prefix PATH : "$out/libexec/docker${
|
||||
lib.optionalString (extraMobyPath != "") ":${extraMobyPath}"
|
||||
}"
|
||||
|
||||
ln -s ${docker-containerd}/bin/containerd $out/libexec/docker/containerd
|
||||
ln -s ${docker-containerd}/bin/containerd-shim${lib.optionalString (lib.versionAtLeast version "29.0.0") "-runc-v2"} $out/libexec/docker/containerd-shim${lib.optionalString (lib.versionAtLeast version "29.0.0") "-runc-v2"}
|
||||
@@ -233,7 +235,9 @@ let
|
||||
# rootless Docker
|
||||
install -Dm755 ./contrib/dockerd-rootless.sh $out/libexec/docker/dockerd-rootless.sh
|
||||
makeWrapper $out/libexec/docker/dockerd-rootless.sh $out/bin/dockerd-rootless \
|
||||
--prefix PATH : "$out/libexec/docker:$extraPath:$extraUserPath"
|
||||
--prefix PATH : "$out/libexec/docker${
|
||||
lib.optionalString (extraMobyPath != "") ":${extraMobyPath}"
|
||||
}${lib.optionalString (extraMobyUserPath != "") ":${extraMobyUserPath}"}"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
@@ -335,7 +339,7 @@ let
|
||||
install -Dm755 ./build/docker $out/libexec/docker/docker
|
||||
|
||||
makeWrapper $out/libexec/docker/docker $out/bin/docker \
|
||||
--prefix PATH : "$out/libexec/docker:$extraPath" \
|
||||
--prefix PATH : "$out/libexec/docker" \
|
||||
--prefix DOCKER_CLI_PLUGIN_DIRS : "${dockerCliPluginsDirs}"
|
||||
''
|
||||
+ lib.optionalString (!clientOnly) ''
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
mkHyprlandPlugin (finalAttrs: {
|
||||
pluginName = "hypr-darkwindow";
|
||||
version = "0.55.4";
|
||||
version = "0.56.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "micha4w";
|
||||
repo = "Hypr-DarkWindow";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-91l5TD46OMfvmhd1WqWxm42cEnjR1yAj2Qk/73mr3ks=";
|
||||
hash = "sha256-2upGTy7IRhrhxf+5VPjzrua8ebOtED6i8kSN8ka+ffg=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
||||
@@ -122,7 +122,8 @@ in
|
||||
|
||||
stdenvNoCC.mkDerivation (
|
||||
{
|
||||
name = baseNameOf src;
|
||||
name =
|
||||
if (attrs ? pname && attrs ? version) then "${attrs.pname}-${attrs.version}" else baseNameOf src;
|
||||
}
|
||||
// optionalAttrs
|
||||
// forcedAttrs
|
||||
|
||||
@@ -1,81 +0,0 @@
|
||||
From 081d9c3284075c65b70837079bd67621c3b64da7 Mon Sep 17 00:00:00 2001
|
||||
From: Moraxyc <i@qaq.li>
|
||||
Date: Sun, 28 Dec 2025 00:39:49 +0800
|
||||
Subject: [PATCH] fix build with c23
|
||||
|
||||
---
|
||||
libAfterBase/fs.c | 2 +-
|
||||
src/ASDocGen/ASDocGen.c | 2 +-
|
||||
src/Ident/Ident.c | 2 +-
|
||||
src/afterstep/dirtree.c | 2 +-
|
||||
src/afterstep/menus.h | 2 +-
|
||||
5 files changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/libAfterBase/fs.c b/libAfterBase/fs.c
|
||||
index 731bfd3..954bfd6 100644
|
||||
--- a/libAfterBase/fs.c
|
||||
+++ b/libAfterBase/fs.c
|
||||
@@ -818,7 +818,7 @@ my_scandir (char *dirname, struct direntry *(*namelist[]),
|
||||
}
|
||||
/* Optionally sort the list */
|
||||
if (dcomp)
|
||||
- qsort (*namelist, n, sizeof (struct direntry *), (int (*)())dcomp);
|
||||
+ qsort (*namelist, n, sizeof (struct direntry *), (int (*)(const void *, const void *))dcomp);
|
||||
|
||||
/* Return the count of the entries */
|
||||
return n;
|
||||
diff --git a/src/ASDocGen/ASDocGen.c b/src/ASDocGen/ASDocGen.c
|
||||
index 31d7a70..9a86219 100644
|
||||
--- a/src/ASDocGen/ASDocGen.c
|
||||
+++ b/src/ASDocGen/ASDocGen.c
|
||||
@@ -667,7 +667,7 @@ write_options_keywords(const char *source_dir, const char *syntax_dir, SyntaxDef
|
||||
sorted_list = safecalloc( max_i, sizeof(TermDef*));
|
||||
for (i = 0; i < max_i; i++)
|
||||
sorted_list[i] = &(syntax->terms[i]) ;
|
||||
- qsort(sorted_list, max_i, sizeof(TermDef*), (int (*)())sort_terms_by_alpha );
|
||||
+ qsort(sorted_list, max_i, sizeof(TermDef*), (int (*)(const void *, const void *))sort_terms_by_alpha );
|
||||
for (i = 0; i < max_i; i++)
|
||||
{
|
||||
SyntaxDef *sub_syntax = sorted_list[i]->sub_syntax ;
|
||||
diff --git a/src/Ident/Ident.c b/src/Ident/Ident.c
|
||||
index 1497d06..d6ddad6 100644
|
||||
--- a/src/Ident/Ident.c
|
||||
+++ b/src/Ident/Ident.c
|
||||
@@ -89,7 +89,7 @@ void HandleEvents();
|
||||
void DispatchEvent (ASEvent * event);
|
||||
void process_message (send_data_type type, send_data_type *body);
|
||||
|
||||
-Window make_ident_window();
|
||||
+Window make_ident_window(int width, int height);
|
||||
void fill_window_data();
|
||||
void display_window_data();
|
||||
void add_property( const char *name, const char *value, unsigned long value_encoding, Bool span_cols );
|
||||
diff --git a/src/afterstep/dirtree.c b/src/afterstep/dirtree.c
|
||||
index 46ce782..48f7e30 100644
|
||||
--- a/src/afterstep/dirtree.c
|
||||
+++ b/src/afterstep/dirtree.c
|
||||
@@ -675,7 +675,7 @@ void dirtree_sort (dirtree_t * tree)
|
||||
list = (dirtree_t **) safemalloc (n * sizeof (dirtree_t *));
|
||||
for (n = 0, t = tree->child; t != NULL; t = t->next, n++)
|
||||
list[n] = t;
|
||||
- qsort (list, n, sizeof (dirtree_t *), (int (*)())dirtree_compar);
|
||||
+ qsort (list, n, sizeof (dirtree_t *), (int (*)(const void *, const void *))dirtree_compar);
|
||||
tree->child = list[0];
|
||||
for (i = 1; i < n; i++)
|
||||
list[i - 1]->next = list[i];
|
||||
diff --git a/src/afterstep/menus.h b/src/afterstep/menus.h
|
||||
index 98b2ad3..bb2a5b1 100644
|
||||
--- a/src/afterstep/menus.h
|
||||
+++ b/src/afterstep/menus.h
|
||||
@@ -95,7 +95,7 @@ MenuData* FindPopup( const char* name, int quiet );
|
||||
|
||||
void DeleteMenuItem( MenuDataItem* item );
|
||||
|
||||
-MenuData *CreateMenuData();
|
||||
+MenuData *CreateMenuData(char *name);
|
||||
MenuData *NewMenuData (char *name);
|
||||
void DeleteMenuData (MenuData * menu);
|
||||
|
||||
--
|
||||
2.51.2
|
||||
|
||||
@@ -1,101 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
dbus,
|
||||
fltk_1_3,
|
||||
gtk2,
|
||||
libice,
|
||||
libsm,
|
||||
libtiff,
|
||||
pkg-config,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "afterstep";
|
||||
version = "2.2.12";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "afterstep";
|
||||
repo = "afterstep";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-j1ADTRZ3Mxv9VNZWhWCFMnM/CJfkphdrgbw9Ca3bBw0=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://salsa.debian.org/debian/afterstep/raw/master/debian/patches/44-Fix-build-with-gcc-5.patch";
|
||||
hash = "sha256-RNLB6PuFVA1PsYt2VwLyLyvY2OO3oIl1xk+0/6nwN+4=";
|
||||
})
|
||||
|
||||
# Fix pending upstream inclusion for binutils-2.36 support:
|
||||
# https://github.com/afterstep/afterstep/pull/7
|
||||
(fetchpatch {
|
||||
name = "binutils-2.36.patch";
|
||||
url = "https://github.com/afterstep/afterstep/commit/5e9e897cf8c455390dd6f5b27fec49707f6b9088.patch";
|
||||
hash = "sha256-aGMTyojzXEHGjO9lMT6dwLl01Fd333BUuCIX0FU9ac4=";
|
||||
})
|
||||
|
||||
# fix build with c23
|
||||
# fs.c:821:66: error: passing argument 4 of 'qsort' from incompatible pointer type [-Wincompatible-pointer-types]
|
||||
# Ident.c:326:1: error: conflicting types for 'make_ident_window'; have 'Window(int, int)' {aka 'long unsigned int(int, int)'}
|
||||
# menuitem.c:85:11: error: conflicting types for 'CreateMenuData'; have 'MenuData *(char *)'
|
||||
./fix-build-with-c23.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# Causes fatal ldconfig cache generation attempt on non-NixOS Linux
|
||||
for mkfile in autoconf/Makefile.common.lib.in libAfter{Base,Image}/Makefile.in; do
|
||||
substituteInPlace $mkfile \
|
||||
--replace-fail 'test -w /etc' 'false'
|
||||
done
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
dbus
|
||||
fltk_1_3
|
||||
gtk2
|
||||
libice
|
||||
libsm
|
||||
libtiff
|
||||
];
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"man"
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
preConfigure = ''
|
||||
# A strange type of bug: dbus is not immediately found by pkg-config
|
||||
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config dbus-1 --cflags)"
|
||||
'';
|
||||
|
||||
# Parallel build fails due to missing dependencies between private libraries:
|
||||
# ld: cannot find ../libAfterConf/libAfterConf.a: No such file or directory
|
||||
# Let's disable parallel builds until it's fixed upstream:
|
||||
# https://github.com/afterstep/afterstep/issues/8
|
||||
enableParallelBuilding = false;
|
||||
|
||||
meta = {
|
||||
homepage = "http://www.afterstep.org/";
|
||||
description = "NEXTStep-inspired window manager";
|
||||
longDescription = ''
|
||||
AfterStep is a window manager for the Unix X Window System. Originally
|
||||
based on the look and feel of the NeXTStep interface, it provides end
|
||||
users with a consistent, clean, and elegant desktop. The goal of AfterStep
|
||||
development is to provide for flexibility of desktop configuration,
|
||||
improving aestetics, and efficient use of system resources.
|
||||
'';
|
||||
license = lib.licenses.gpl2Plus;
|
||||
maintainers = [ ];
|
||||
mainProgram = "afterstep";
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
@@ -9,12 +9,14 @@
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "airspyhf";
|
||||
version = "1.6.8-unstable-2025-07-12";
|
||||
version = "1.8.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "airspy";
|
||||
repo = "airspyhf";
|
||||
rev = "87cf12a30f3a0f10f313aab8e54999ca69b753af";
|
||||
# Not clear why upstream won't tag releases. See:
|
||||
# https://github.com/airspy/airspyhf/commit/c0bb66dd8976651c53884ccec3d70a108f1e50e1#r193607536
|
||||
rev = "c0bb66dd8976651c53884ccec3d70a108f1e50e1";
|
||||
hash = "sha256-7bXBv4YTOaWRFI6Svb9/lSBEAssUgJMqxKM5zHk1swM=";
|
||||
};
|
||||
|
||||
|
||||
@@ -15,12 +15,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "algol68g";
|
||||
version = "3.12.2";
|
||||
version = "3.12.3";
|
||||
|
||||
src = fetchurl {
|
||||
# Uses archive.org because the original site removes older versions.
|
||||
url = "https://web.archive.org/web/20260515052918/https://algol68genie.nl/algol68g-3.12.2.tar.gz";
|
||||
hash = "sha256-4fiubqpgoH3YOlCg1bJHQ3kOayKNulW3CYbOK1awE7k";
|
||||
url = "https://algol68genie.nl/algol68g-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-TS5m+Byi+5j4jiOuQbR159QERfNJsQiGNngtoyC9IrE=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
@@ -48,8 +47,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
postInstall =
|
||||
let
|
||||
pdfdoc = fetchurl {
|
||||
url = "https://web.archive.org/web/20260503174213/https://algol68genie.nl/learning-algol-68-genie.pdf";
|
||||
hash = "sha256-eLMRf3XcAkr/Dmk7ieRe62x76VcCj+2QltHH7YtL15s=";
|
||||
url = "https://algol68genie.nl/learning-algol-68-genie.pdf";
|
||||
hash = "sha256-BrVjYXd5sknV0+UCRgQMf0H3QMzMQcLhytEEuiTGkLE=";
|
||||
};
|
||||
in
|
||||
lib.optionalString withPDFDoc ''
|
||||
|
||||
@@ -12,16 +12,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "alistral";
|
||||
version = "0.6.7";
|
||||
version = "0.6.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "RustyNova016";
|
||||
repo = "Alistral";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-XsN4UyIXkd0YVtO/q9EcFP/sBYkH9leISmbJZ93ef6E=";
|
||||
hash = "sha256-NDWQl2Gq4Q0OMMCrHQhybInaJRjY3Fxe3GXrGb32MMY=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-KFNFioZ/5moC5FNXw+hA+NrPjsqu+3V8A5mtZ4FZUHw=";
|
||||
cargoHash = "sha256-QxTmjtntp5zy7UijRn0hF3DyOOl3dIpZjPSASCuHaEk=";
|
||||
|
||||
buildNoDefaultFeatures = true;
|
||||
# Would be cleaner with an "--all-features" option
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "all-the-package-names";
|
||||
version = "2.0.2503";
|
||||
version = "2.0.2511";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nice-registry";
|
||||
repo = "all-the-package-names";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-UtwbQXhX8dmmA6dVuVFcMQkM98kOt/U//OAVMGBImDU=";
|
||||
hash = "sha256-KnEvFnPXQZ+XhNyweWIE0mjM4vqcqXcJKuus/dFq5f0=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-V7MWSEJT2RtYE1iYJHj2ltrfzke+GO1PfT/wo+MqlZk=";
|
||||
npmDepsHash = "sha256-Xw/SXRpQkPd+EcemeHO89tC9amDiVV/RD/1H0H8rax0=";
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
|
||||
@@ -15,21 +15,21 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "anubis";
|
||||
version = "1.25.0";
|
||||
version = "1.26.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "TecharoHQ";
|
||||
repo = "anubis";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-9/XIwSMEmnS3L/Wzg6ABso7R6W3TYkJomC8aFMycxZo=";
|
||||
hash = "sha256-0ceF4Te0H5edBhvGJgGc/NLJxEAcDVGnnKlqHKnpW60=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-9CMD8Rn4q8b+hyrph+BqqS32ijZyJRNsop6ML7z5Zuk=";
|
||||
vendorHash = "sha256-+NPwL4p0p/s74m1Ld0z2GEcsWk5FqhcLbHrTNP3yEzk=";
|
||||
|
||||
npmDeps = fetchNpmDeps {
|
||||
name = "anubis-npm-deps";
|
||||
inherit (finalAttrs) src;
|
||||
hash = "sha256-2U91Dt+ymspjYgTtgCjahCNr6fIs85TT/k+I8M2aC9s=";
|
||||
hash = "sha256-6sj9C8GHm+RzFl/X5HIPhIDl5l8muBzDSXSRCHumGBs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -75,6 +75,8 @@ buildGoModule (finalAttrs: {
|
||||
export DONT_USE_NETWORK=1
|
||||
'';
|
||||
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
||||
passthru = {
|
||||
tests = { inherit (nixosTests) anubis; };
|
||||
updateScript = nix-update-script { extraArgs = [ "--version-regex=^v(\\d+\\.\\d+\\.\\d+)$" ]; };
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
|
||||
let
|
||||
opencv4WithGtk = python3Packages.opencv4.override {
|
||||
enableGtk2 = true; # For GTK2 support
|
||||
enableGtk3 = true; # For GTK3 support
|
||||
};
|
||||
in
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
rustPlatform.buildRustPackage {
|
||||
pname = "as-tree";
|
||||
version = "unstable-2021-03-09";
|
||||
version = "0.12.0-unstable-2021-03-09";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jez";
|
||||
|
||||
@@ -10,16 +10,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "assh";
|
||||
version = "2.17.2";
|
||||
version = "2.17.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
repo = "assh";
|
||||
owner = "moul";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-/w4RluA7py6d75S04czNsgHpmR5rmAUZx8OnZfu9oNg=";
|
||||
hash = "sha256-CH6QM/dy5fKo7Tq2ekrc06iqjJDZl8JHMG7jalho7BI=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-EA39KqAN9SHPU362j6/j6okvT+eZb2R4unMA0bB+bVg=";
|
||||
vendorHash = "sha256-ENCJNgMLTZDlKL0DIt48F1G8TYo2blPdsFH6v8dNC8w=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
||||
@@ -12,16 +12,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "aube";
|
||||
version = "1.29.1";
|
||||
version = "1.32.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jdx";
|
||||
repo = "aube";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-87r9qltKUhjnYG9O484OUzKFiO8Xoge9VZ13l6RgrdA=";
|
||||
hash = "sha256-0BnaxRk6+KY4AGZ31lis0zxc9uWp3OrxCgp9SgOrqNI=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-Cy5Ea/rF2IJ5WppKKI7E1toy9N+bQEArVW9o2pHzBMc=";
|
||||
cargoHash = "sha256-vYbbnEpVWG6kjnycl1kk3D+lXuzTzOKuilA0ImBHYAI=";
|
||||
|
||||
nativeBuildInputs = [ cmake ]; # libz-ng-sys
|
||||
|
||||
@@ -36,6 +36,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
|
||||
checkFlags = [
|
||||
# failed on x86_64-linux
|
||||
"--skip=concurrency::tests::floor_and_ceiling_inclusive"
|
||||
"--skip=http::ticket_cache::tests::max_per_host_evicts_oldest"
|
||||
"--skip=http::ticket_cache::tests::invalidate_removes_all_for_host"
|
||||
# require network access
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "automatic-timezoned";
|
||||
version = "2.0.143";
|
||||
version = "2.0.149";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "maxbrunet";
|
||||
repo = "automatic-timezoned";
|
||||
rev = "v${finalAttrs.version}";
|
||||
sha256 = "sha256-bbdhvQ9THiBRf1rLExXQiwlrkgZBFZlaV2CUszDmwo4=";
|
||||
sha256 = "sha256-FQ4SJcHkdNJcZOncY0BHg+CwnUcyszzfYPCUhWZHhi0=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-J7h1hVp8wK6UlkstcLCq4uMKJ9ZyLwGR75tcxpWnHT8=";
|
||||
cargoHash = "sha256-4+gNtQrlaDrSCUFEIByFUQnITSkF9Mo9bq6Ug9d7t1w=";
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "autoprefixer";
|
||||
version = "10.5.3";
|
||||
version = "10.5.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "postcss";
|
||||
repo = "autoprefixer";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-hjckcgWojItp2gseQI18zzxizjw/HxQPiTb/JegSCcs=";
|
||||
hash = "sha256-616VFB6qJiNfsDsaxR4Y+xoqKDrBOtKgWfGMeiaDeGQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
inherit (finalAttrs) pname version src;
|
||||
pnpm = pnpm_10;
|
||||
fetcherVersion = 4;
|
||||
hash = "sha256-diOgX9lXKOwCx9V737mmmtrhqDg5beXJH/PjlJHFpto=";
|
||||
hash = "sha256-+EPzrG2vt2FRIwcJqwwiYPevQFCNAbX7kgFlY+vLbqE=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
}:
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "aztfexport";
|
||||
version = "0.19.0";
|
||||
version = "0.20.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Azure";
|
||||
repo = "aztfexport";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-97lahgEsth2YUeqTe8J58brykpFV0lG6KwB7FJgODAE=";
|
||||
hash = "sha256-wHI/osu2Jq85zCgh1HfOTuO81mYtQJcSbvlDnXd7Duc=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-4u40PdRT3E+BZ8bIrnIgRnJkpws6EPK5DRyXu9oY7hc=";
|
||||
vendorHash = "sha256-QDpoOlu1qGNK0ennplusXBgeQWZP3EH7aSStllP8uzw=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
||||
82
pkgs/by-name/az/azure-mcp/package.nix
Normal file
82
pkgs/by-name/az/azure-mcp/package.nix
Normal file
@@ -0,0 +1,82 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchzip,
|
||||
autoPatchelfHook,
|
||||
azure-cli,
|
||||
makeWrapper,
|
||||
}:
|
||||
|
||||
let
|
||||
version = "3.0.0-beta.10";
|
||||
srcs = {
|
||||
x86_64-linux = {
|
||||
url = "https://github.com/microsoft/mcp/releases/download/Azure.Mcp.Server-${version}/Azure.Mcp.Server-linux-x64-native.zip";
|
||||
hash = "sha256-2wrpyTVunT54dYD1ascVDRTW2AN5NpoV+q3UUt5dQSg=";
|
||||
};
|
||||
aarch64-linux = {
|
||||
url = "https://github.com/microsoft/mcp/releases/download/Azure.Mcp.Server-${version}/Azure.Mcp.Server-linux-arm64.zip";
|
||||
hash = "sha256-K1QRpj5/RzZx2mrmtnB5lGX9CoaAC+pRVGqqHtXWncY=";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
url = "https://github.com/microsoft/mcp/releases/download/Azure.Mcp.Server-${version}/Azure.Mcp.Server-osx-x64.zip";
|
||||
hash = "sha256-ebT6sipbA7IdGx98kF/8GLpHL1fVSVqnmL4rEwsa43k=";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
url = "https://github.com/microsoft/mcp/releases/download/Azure.Mcp.Server-${version}/Azure.Mcp.Server-osx-arm64.zip";
|
||||
hash = "sha256-33rg+fnIB/VJZbVKTP7b8829BbcDnfnaYFMOyPLFzEw=";
|
||||
};
|
||||
};
|
||||
unavailable = throw "azure-mcp package is not available for this platform.";
|
||||
src = fetchzip {
|
||||
inherit (srcs.${stdenv.hostPlatform.system} or unavailable) url hash;
|
||||
stripRoot = false;
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "azure-mcp";
|
||||
inherit version src;
|
||||
|
||||
strictDeps = true;
|
||||
__structuredAttrs = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook ];
|
||||
|
||||
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
|
||||
stdenv.cc.cc.lib
|
||||
];
|
||||
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -Dm755 ./azmcp $out/bin/azure-mcp
|
||||
|
||||
wrapProgram $out/bin/azure-mcp \
|
||||
--prefix PATH : ${lib.makeBinPath [ azure-cli ]}
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Model Context Protocol server for Azure services";
|
||||
longDescription = ''
|
||||
The Azure MCP Server implements the Model Context Protocol (MCP)
|
||||
specification to create a seamless connection between AI agents and
|
||||
Azure services. It provides 321+ tools for interacting with Azure
|
||||
resources including storage, compute, databases, and more.
|
||||
'';
|
||||
homepage = "https://github.com/microsoft/mcp";
|
||||
changelog = "https://github.com/microsoft/mcp/blob/Azure.Mcp.Server-${version}/servers/Azure.Mcp.Server/CHANGELOG.md";
|
||||
license = lib.licenses.mit;
|
||||
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
|
||||
platforms = lib.attrNames srcs;
|
||||
mainProgram = "azure-mcp";
|
||||
maintainers = with lib.maintainers; [ sheeeng ];
|
||||
};
|
||||
}
|
||||
@@ -8,13 +8,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "azurehound";
|
||||
version = "2.12.2";
|
||||
version = "3.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "SpecterOps";
|
||||
repo = "AzureHound";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-w8PmSt+QvU0HELkgdYLfIUgK3R5vCYzlPbMyrHztiPw=";
|
||||
hash = "sha256-4uc4XSjvuMUSeCsJl9uHBFIaeG1KZ1xDaACXnXkp7v0=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-WF46wXaNU/Em0KpF6hkuuJ+7K1IKLGqpNS/HxpxX5WY=";
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
lib,
|
||||
python3Packages,
|
||||
fetchPypi,
|
||||
fetchgit,
|
||||
patatt,
|
||||
}:
|
||||
|
||||
@@ -31,6 +32,15 @@ python3Packages.buildPythonApplication (finalAttrs: {
|
||||
textual
|
||||
];
|
||||
|
||||
passthru = {
|
||||
src-misc = fetchgit {
|
||||
url = "https://git.kernel.org/pub/scm/utils/b4/b4.git";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-NjYL3RKQpjDkU98qbXyl/cvLTJYVAfIowm8E2Rg8AgI=";
|
||||
fetchSubmodules = false;
|
||||
};
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://git.kernel.org/pub/scm/utils/b4/b4.git/about";
|
||||
license = lib.licenses.gpl2Only;
|
||||
|
||||
@@ -20,13 +20,13 @@ let
|
||||
in
|
||||
buildBazelPackage rec {
|
||||
pname = "bant";
|
||||
version = "0.3.0";
|
||||
version = "0.3.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hzeller";
|
||||
repo = "bant";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-T/BQRYCFAHkaGi5T485I9vbr3g7PzgIEHC27w6mg/3A=";
|
||||
hash = "sha256-6c403+DK1tcQxC16FKEtdhnJEA9LJl8H8Usnw08FBnA=";
|
||||
};
|
||||
|
||||
bazelFlags = [
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "bazel-remote";
|
||||
version = "2.6.1";
|
||||
version = "2.6.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "buchgr";
|
||||
repo = "bazel-remote";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-9vPaTm/HTJ3ftlFg+AkcwXX7xyhmGTgKL3PXhtUHRDk=";
|
||||
hash = "sha256-wE0l1tBtj44l1Eamd4wCHzjnPhT7W5yZ5MkTA5cOUrg=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-uh8ST1AQ8OsFMfXly23TMMcheNmhb1MknmPMjB76GIQ=";
|
||||
vendorHash = "sha256-DGyGQLEAwy79ibWGxAWa7gmaXTajcW3jqGJou2Wnykc=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# Generated by ./update.sh - do not update manually!
|
||||
# Generated by ./update.sh
|
||||
{
|
||||
version = "1.10.3";
|
||||
deb-hash = "sha256-kzLtadq8gfX6j9XU3PD5kNV43wLDoICPlXdJqULkAWE=";
|
||||
sig-hash = "sha256-+51j+SBp7buukop1T4Gz0YDUga6540BVxDRoU2YE3pY=";
|
||||
version = "1.10.4";
|
||||
deb-hash = "sha256-rOFbiuEbeO2qZntUhO+LNhwX6XlvWRU9v0HIAjyHwd8=";
|
||||
sig-hash = "sha256-3fAGauXHA8S+XIuHeOIFxp7TsXd1LdqFg8hpWIU4P7k=";
|
||||
key-E222AA02-hash = "sha256-Ue/UmS6F440/ybEEIAR+pdPEIksAt6QSMN6G5TZVWzc=";
|
||||
key-4A133008-hash = "sha256-UijG3DkJNNTakVJd2wl30mDepa27n6R/Xxfl4sjt0sk=";
|
||||
key-387C8307-hash = "sha256-PrRYZLT0xv82dUscOBgQGKNf6zwzWUDhriAffZbNpmI=";
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/apps/desktop/src/key-management/biometrics/os-biometrics-linux.service.ts b/apps/desktop/src/key-management/biometrics/os-biometrics-linux.service.ts
|
||||
index 791b4d6f88..dfee0bbf8d 100644
|
||||
--- a/apps/desktop/src/key-management/biometrics/os-biometrics-linux.service.ts
|
||||
+++ b/apps/desktop/src/key-management/biometrics/os-biometrics-linux.service.ts
|
||||
@@ -115,7 +115,7 @@ export default class OsBiometricsServiceLinux implements OsBiometricService {
|
||||
diff --git a/apps/desktop/src/key-management/biometrics/native-v2/os-biometrics-linux.service.ts b/apps/desktop/src/key-management/biometrics/native-v2/os-biometrics-linux.service.ts
|
||||
index 110db23ec79..dfaf600bcdf 100644
|
||||
--- a/apps/desktop/src/key-management/biometrics/native-v2/os-biometrics-linux.service.ts
|
||||
+++ b/apps/desktop/src/key-management/biometrics/native-v2/os-biometrics-linux.service.ts
|
||||
@@ -83,7 +83,7 @@ export default class OsBiometricsServiceLinux implements OsBiometricService {
|
||||
// The user needs to manually set up the polkit policy outside of the sandbox
|
||||
// since we allow access to polkit via dbus for the sandboxed clients, the authentication works from
|
||||
// the sandbox, once the policy is set up outside of the sandbox.
|
||||
@@ -10,4 +10,4 @@ index 791b4d6f88..dfee0bbf8d 100644
|
||||
+ return false;
|
||||
}
|
||||
|
||||
async osBiometricsSetup(): Promise<void> {
|
||||
async runSetup(): Promise<void> {
|
||||
|
||||
@@ -5,14 +5,14 @@
|
||||
copyDesktopItems,
|
||||
dart-sass,
|
||||
darwin,
|
||||
electron_39,
|
||||
electron_41,
|
||||
fetchFromGitHub,
|
||||
gnome-keyring,
|
||||
jq,
|
||||
makeDesktopItem,
|
||||
makeWrapper,
|
||||
nix-update-script,
|
||||
nodejs_22,
|
||||
nodejs_24,
|
||||
pkg-config,
|
||||
rustc,
|
||||
rustPlatform,
|
||||
@@ -22,17 +22,17 @@
|
||||
|
||||
let
|
||||
icon = "bitwarden";
|
||||
electron = electron_39;
|
||||
electron = electron_41;
|
||||
in
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "bitwarden-desktop";
|
||||
version = "2026.6.1";
|
||||
version = "2026.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bitwarden";
|
||||
repo = "clients";
|
||||
tag = "desktop-v${finalAttrs.version}";
|
||||
hash = "sha256-ee+C58Y5pZWEmqbRO/w7rdY+e6gy4EL7Sn0S1AxGMXI=";
|
||||
hash = "sha256-E4glf4G70BuT0GYu1kEb5Z9B76ElIlDPe1rdGSdmCzo=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@@ -64,7 +64,7 @@ buildNpmPackage (finalAttrs: {
|
||||
rm -r apps/cli
|
||||
'';
|
||||
|
||||
nodejs = nodejs_22;
|
||||
nodejs = nodejs_24;
|
||||
|
||||
makeCacheWritable = true;
|
||||
npmFlags = [
|
||||
@@ -74,7 +74,7 @@ buildNpmPackage (finalAttrs: {
|
||||
|
||||
npmWorkspace = "apps/desktop";
|
||||
npmDepsFetcherVersion = 3;
|
||||
npmDepsHash = "sha256-C5GLei/WWetd4qLv7obBJWbQR9LBy+Sqdbjko3/W7VY=";
|
||||
npmDepsHash = "sha256-8wjt5wnJG4S4EeGWGxbo6Bwt76GIqrSiwqwwwQ17Y5Y=";
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoVendor {
|
||||
inherit (finalAttrs)
|
||||
@@ -84,7 +84,7 @@ buildNpmPackage (finalAttrs: {
|
||||
cargoRoot
|
||||
patches
|
||||
;
|
||||
hash = "sha256-xyK3+z2yfCG9K5XAB6LNEeyqMRknONi6ZfY/3oko7Z8=";
|
||||
hash = "sha256-PLfR+yS+MtscRRuyLaK/qIWJVDoefhOobev1fpNeHNo=";
|
||||
};
|
||||
cargoRoot = "apps/desktop/desktop_native";
|
||||
|
||||
@@ -197,7 +197,7 @@ buildNpmPackage (finalAttrs: {
|
||||
# Extract the polkit policy file from the multiline string in the source code.
|
||||
# This may break in the future but its better than copy-pasting it manually.
|
||||
mkdir -p $out/share/polkit-1/actions/
|
||||
pushd apps/desktop/src/key-management/biometrics
|
||||
pushd apps/desktop/src/key-management/biometrics/native-v2
|
||||
awk '/const polkitPolicy = `/{gsub(/^.*`/, ""); print; str=1; next} str{if (/`;/) str=0; gsub(/`;/, ""); print}' os-biometrics-linux.service.ts > $out/share/polkit-1/actions/com.bitwarden.Bitwarden.policy
|
||||
popd
|
||||
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "bobgen";
|
||||
version = "0.48.0";
|
||||
version = "0.49.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "stephenafamo";
|
||||
repo = "bob";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-iD9GPYBt1s6xx4vNRlArERmv5AyBR6Q4mLLDNDWy1qY=";
|
||||
hash = "sha256-5uwYw5CraOBUG55MIWa9I6GGIdJz/K+OXHIjOrjFuTQ=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-tL6f8XkAsBL76idEVxlAAcdYyzo9Rh9fEHy6ysfZWG8=";
|
||||
vendorHash = "sha256-fQmhAuxl23jRGJ4ysKh9QiiA8dtZlM37dE9aBXrYwao=";
|
||||
|
||||
subPackages = [
|
||||
"gen/bobgen-sql"
|
||||
|
||||
@@ -12,16 +12,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "bottom";
|
||||
version = "0.14.4";
|
||||
version = "0.14.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ClementTsang";
|
||||
repo = "bottom";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-axzZEviUVosXo5XzQB32A2+sUdiLzEtjZg52Z6hp4lM=";
|
||||
hash = "sha256-52aUYfFm72nSG7bAlwa18kMu13i+c4myl2QfaA2YZmw=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-RUFlv95VoRhfHeIXWFWWtbwn71uJnEYoi2NozU4ybK8=";
|
||||
cargoHash = "sha256-N+dfYORAdWAg5qUrFEgXbiRtYJpcvV1AcbLR5WiD0QI=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoAddDriverRunpath
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
# Expression generated by update.sh; do not edit it by hand!
|
||||
{ stdenv, callPackage, ... }@args:
|
||||
|
||||
let
|
||||
pname = "brave";
|
||||
version = "1.92.143";
|
||||
|
||||
allArchives = {
|
||||
aarch64-linux = {
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_arm64.deb";
|
||||
hash = "sha256-IHBJm9uow2d/X4Z9e117aGdP1Y+3R1ApWu40sPtdbr8=";
|
||||
};
|
||||
x86_64-linux = {
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
|
||||
hash = "sha256-jaxNneurduBiw3jho5Fp7gXnBfSpLB5hlE06i/JK+ic=";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-v${version}-darwin-arm64.zip";
|
||||
hash = "sha256-EvfZgO8FAijof1Ml6gqSOyRndL8KYFdT0MNmVmuxAnU=";
|
||||
};
|
||||
};
|
||||
|
||||
archive =
|
||||
if builtins.hasAttr stdenv.system allArchives then
|
||||
allArchives.${stdenv.system}
|
||||
else
|
||||
throw "Unsupported platform.";
|
||||
|
||||
in
|
||||
callPackage ./make-brave.nix (removeAttrs args [ "callPackage" ]) (
|
||||
archive
|
||||
// {
|
||||
inherit pname version;
|
||||
}
|
||||
)
|
||||
@@ -1,48 +0,0 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p curl gnused nix jq
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
|
||||
|
||||
latestVersion="$(curl --fail -s ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} "https://api.github.com/repos/brave/brave-browser/releases/latest" | jq -r '.tag_name' | sed 's/^v//')"
|
||||
|
||||
hashAarch64="$(nix-hash --to-sri --type sha256 "$(nix-prefetch-url --type sha256 "https://github.com/brave/brave-browser/releases/download/v${latestVersion}/brave-browser_${latestVersion}_arm64.deb")")"
|
||||
hashAmd64="$(nix-hash --to-sri --type sha256 "$(nix-prefetch-url --type sha256 "https://github.com/brave/brave-browser/releases/download/v${latestVersion}/brave-browser_${latestVersion}_amd64.deb")")"
|
||||
hashAarch64Darwin="$(nix-hash --to-sri --type sha256 "$(nix-prefetch-url --type sha256 "https://github.com/brave/brave-browser/releases/download/v${latestVersion}/brave-v${latestVersion}-darwin-arm64.zip")")"
|
||||
|
||||
cat > $SCRIPT_DIR/package.nix << EOF
|
||||
# Expression generated by update.sh; do not edit it by hand!
|
||||
{ stdenv, callPackage, ... }@args:
|
||||
|
||||
let
|
||||
pname = "brave";
|
||||
version = "${latestVersion}";
|
||||
|
||||
allArchives = {
|
||||
aarch64-linux = {
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v\${version}/brave-browser_\${version}_arm64.deb";
|
||||
hash = "${hashAarch64}";
|
||||
};
|
||||
x86_64-linux = {
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v\${version}/brave-browser_\${version}_amd64.deb";
|
||||
hash = "${hashAmd64}";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v\${version}/brave-v\${version}-darwin-arm64.zip";
|
||||
hash = "${hashAarch64Darwin}";
|
||||
};
|
||||
};
|
||||
|
||||
archive =
|
||||
if builtins.hasAttr stdenv.system allArchives then
|
||||
allArchives.\${stdenv.system}
|
||||
else
|
||||
throw "Unsupported platform.";
|
||||
|
||||
in
|
||||
callPackage ./make-brave.nix (removeAttrs args [ "callPackage" ]) (
|
||||
archive
|
||||
// {
|
||||
inherit pname version;
|
||||
}
|
||||
)
|
||||
EOF
|
||||
@@ -21,13 +21,13 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "bruno";
|
||||
version = "3.5.2";
|
||||
version = "4.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "usebruno";
|
||||
repo = "bruno";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-Lll/ywDkHv0xvLk8iiBEySek7A3dBmfO4V/q2xaNtBQ=";
|
||||
hash = "sha256-M4oNx3nSe8hSAtZMVyXIW0qQIQkaOeQgpPsfjmmJ30E=";
|
||||
|
||||
postFetch = ''
|
||||
${lib.getExe npm-lockfile-fix} $out/package-lock.json
|
||||
@@ -36,7 +36,7 @@ buildNpmPackage rec {
|
||||
|
||||
nodejs = nodejs_22;
|
||||
|
||||
npmDepsHash = "sha256-4VsSXiHj/INCu4ryZ+JxPbfDpsgIb5eYvOUYz+gbKEE=";
|
||||
npmDepsHash = "sha256-Jrlpztg1JxuPaLD4O9elOaU1eFH3dmr6oWwi4Ch9Zv8=";
|
||||
npmFlags = [ "--legacy-peer-deps" ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -77,6 +77,10 @@ buildNpmPackage rec {
|
||||
# fix version reported in sidebar and about page
|
||||
${jq}/bin/jq '.version |= "${version}"' packages/bruno-electron/package.json | ${moreutils}/bin/sponge packages/bruno-electron/package.json
|
||||
${jq}/bin/jq '.version |= "${version}"' packages/bruno-app/package.json | ${moreutils}/bin/sponge packages/bruno-app/package.json
|
||||
|
||||
# disable remote image download to prevent network calls to comply with build sandboxing
|
||||
substituteInPlace packages/bruno-app/plugins/remote-images/loader.cjs \
|
||||
--replace-fail 'const urls = findRemoteImageUrls(source, domains);' 'const urls = [];'
|
||||
'';
|
||||
|
||||
postConfigure = ''
|
||||
|
||||
@@ -21,11 +21,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "btrfs-progs";
|
||||
version = "7.0";
|
||||
version = "7.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-wobWh2y81yMnoLQX5M/SgDU+wj43tUn9vNeACoMtmpk=";
|
||||
hash = "sha256-0fVcwpcTmMkULqp50gPmPVhqO0uGf5VmZKHWgyLNTjQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -15,20 +15,20 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "bumpp";
|
||||
version = "11.1.0";
|
||||
version = "12.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "antfu-collective";
|
||||
repo = "bumpp";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-LzFusuzFpbqh/gNV0c0vhoKE17CzTPJUppdpdKaGOFs=";
|
||||
hash = "sha256-9o3eUZ4cCusvV+IwQbLqbEI4NhTKkcwgqv4Mqe/VxZ4=";
|
||||
};
|
||||
|
||||
pnpmDeps = fetchPnpmDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
inherit pnpm;
|
||||
fetcherVersion = 3;
|
||||
hash = "sha256-KYTz/SO4rV+c57G8dv4ExCZrunA0xvgCNk8Td4HbCig=";
|
||||
hash = "sha256-Em3HvH5nCiyxgaPQvenqAnOraYnvQNxLVdHQd1lz3+o=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
clutter-gtk,
|
||||
gst_all_1,
|
||||
glib,
|
||||
gtk2,
|
||||
gtk3,
|
||||
libgsf,
|
||||
libxml2,
|
||||
fluidsynth,
|
||||
@@ -52,7 +52,7 @@ stdenv.mkDerivation {
|
||||
gst_all_1.gst-plugins-base
|
||||
gst_all_1.gst-plugins-good
|
||||
glib
|
||||
gtk2
|
||||
gtk3
|
||||
libgsf
|
||||
libxml2
|
||||
# optional packages
|
||||
|
||||
@@ -11,16 +11,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "cargo-binstall";
|
||||
version = "1.21.0";
|
||||
version = "1.21.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cargo-bins";
|
||||
repo = "cargo-binstall";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-6msYAVCN1i2srA4DquqcdJxUrJP1jub34c/a/4RbWCg=";
|
||||
hash = "sha256-7YXdKK6P6LSf/DGDL6jroR3VVqAD4uGUOGJS/dZbcvw=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-r9iGWxrLlD83QtvZuWXIxjI2S0RO1GNwOed531FVvJk=";
|
||||
cargoHash = "sha256-iUYTFtx0KBi4qgJNyuIAGcTCbS4KMyBbTIgR3nDiNAI=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
||||
@@ -9,16 +9,16 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
__structuredAttrs = true;
|
||||
|
||||
pname = "cargo-feature-combinations";
|
||||
version = "0.3.0";
|
||||
version = "0.4.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "romnn";
|
||||
repo = "cargo-feature-combinations";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-PneHMWX7IRoX4oSm8iePeI+pEPs8n3F2PW06ZWKDFcc=";
|
||||
hash = "sha256-0aPe0YmEpLHt3aZHDuNlov/TiRbLLpR7TLt0ULkjsVU=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-DCfO2N6ml1a1P2hFs3gxRE9k+WYv8eqMzwL+cionwYE=";
|
||||
cargoHash = "sha256-r09otRStFli5Bx0pfDOMu1LGDonDyCVGPEdY/KnjkmY=";
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
|
||||
@@ -8,15 +8,15 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "cargo-shear";
|
||||
version = "1.13.2";
|
||||
version = "1.13.3";
|
||||
|
||||
src = fetchCrate {
|
||||
pname = "cargo-shear";
|
||||
version = finalAttrs.version;
|
||||
hash = "sha256-69OwhT4vc4xwvuVxZ0C7F/Us01TsuYJnnTKT6PHsOF8=";
|
||||
hash = "sha256-Qaq3nBZZR0biG5kVL15zhI8GwLEWBNzgeD3rHeZZOeU=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-x0lZ8E/P9IaPSdzUo2O3t5qR2I3959So9uaAm4PBM4E=";
|
||||
cargoHash = "sha256-3YMdOCCK+rVx0XZfBqiMAw+aep1TBU5Ok6//c433h4o=";
|
||||
|
||||
env = {
|
||||
# https://github.com/Boshen/cargo-shear/blob/v1.6.2/src/lib.rs#L51-L54
|
||||
|
||||
@@ -16,14 +16,14 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "cargo-update";
|
||||
version = "22.0.0";
|
||||
version = "22.1.0";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit (finalAttrs) pname version;
|
||||
hash = "sha256-7SjJ+v+6PzwV8dTXxSVxKrj4/yUlyGVJtt0A+WaWNc8=";
|
||||
hash = "sha256-0iXO+cmW1vfKc9sPTnw132fZlqTMfInVCIgT8NLrhwM=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-xRjPnZPewo/5pCDUem8+9Ko0XJ1p5HJtLLmErtZQb8w=";
|
||||
cargoHash = "sha256-6yE4zdGosZhXhT3Q3mh/1h33OXqXrAWhZ0b18qaI1vs=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
libxml2,
|
||||
libxklavier,
|
||||
libxtst,
|
||||
gtk2,
|
||||
intltool,
|
||||
libxslt,
|
||||
at-spi2-core,
|
||||
@@ -82,7 +81,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
pythonEnv
|
||||
python3.pkgs.pygobject3
|
||||
libxtst
|
||||
gtk2
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
@@ -90,6 +88,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
libxklavier
|
||||
];
|
||||
|
||||
configureFlags = [ "--enable-gtk2-module=no" ];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs .
|
||||
substituteInPlace libcaribou/Makefile.am --replace "--shared-library=libcaribou.so.0" "--shared-library=$out/lib/libcaribou.so.0"
|
||||
|
||||
@@ -8,40 +8,45 @@
|
||||
apple-sdk_15,
|
||||
libiconv,
|
||||
versionCheckHook,
|
||||
nix-update-script,
|
||||
nix-update,
|
||||
writeShellApplication,
|
||||
curl,
|
||||
runCommand,
|
||||
jq,
|
||||
}:
|
||||
|
||||
let
|
||||
# ccusage embeds the LiteLLM model-pricing table at build time. Its build
|
||||
# script otherwise downloads this file from the network, which fails in the
|
||||
# sandbox. Upstream pins the data via a flake input and points
|
||||
# CCUSAGE_PRICING_JSON_PATH at it; mirror that exact revision here so the
|
||||
# build is offline and reproducible (see package.nix + flake.lock in the
|
||||
# upstream repo at tag v20.0.6). Bump this revision together with the package
|
||||
# version; nix-update only refreshes the src and cargo hashes.
|
||||
# ccusage embeds the LiteLLM model-pricing table at build time instead of
|
||||
# downloading it (the Nix sandbox has no network). Upstream pins the exact
|
||||
# data revision via its flake.lock and points CCUSAGE_PRICING_JSON_PATH at it;
|
||||
# we mirror that revision here so the build is offline, reproducible, and
|
||||
# byte-identical to what upstream ships.
|
||||
#
|
||||
# Both values below are kept in sync with the package version by
|
||||
# passthru.updateScript — do not edit them by hand.
|
||||
litellmPricingRev = "49ca04d8c3ddea336237ce6f3082dbc26d19e944";
|
||||
litellmPricingHash = "sha256-rkUyugxdoD7WlPN//6BQpl4OJQuBbc20db7gt7exqpc=";
|
||||
litellmPricing = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/BerriAI/litellm/f27df8d516802ce4c1b32973992154fe83b851cf/model_prices_and_context_window.json";
|
||||
hash = "sha256-zJa6H2EwP9s+hMVs78Y+hwo4UX1dHRtvX5J3MdGh5aI=";
|
||||
url = "https://raw.githubusercontent.com/BerriAI/litellm/${litellmPricingRev}/model_prices_and_context_window.json";
|
||||
hash = litellmPricingHash;
|
||||
};
|
||||
in
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "ccusage";
|
||||
version = "20.0.6";
|
||||
version = "20.0.17";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ccusage";
|
||||
repo = "ccusage";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-uf/FlPprxx4jh74YwjmYMtoIHpTkKrWTLetbNoYiFv4=";
|
||||
hash = "sha256-486iLPRqQVRnKVbVT93D08RTRzd6/h503ckB//24nho=";
|
||||
};
|
||||
|
||||
# The Cargo workspace lives in rust/, not at the repo root.
|
||||
cargoRoot = "rust";
|
||||
buildAndTestSubdir = "rust";
|
||||
|
||||
cargoHash = "sha256-izA2Gs5nPmt0zn6/e1xM80vyyQHYKGEUDpUFRpyFiB8=";
|
||||
cargoHash = "sha256-23l/BCCGcZ1i5mFBC6Q+FE7sQRHnPLbU4QoQe7TfoiQ=";
|
||||
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
@@ -72,7 +77,40 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
doInstallCheck = true;
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
# Plain nix-update only refreshes version + src/cargo hashes; it can't know
|
||||
# about the LiteLLM pricing pin above. This wrapper bumps the package as
|
||||
# usual, then reads the litellm revision that ccusage locks at the new tag
|
||||
# and rewrites litellmPricingRev/litellmPricingHash to match, so automated
|
||||
# (r-ryantm) bumps stay complete instead of shipping stale pricing data.
|
||||
updateScript = lib.getExe (writeShellApplication {
|
||||
name = "ccusage-update";
|
||||
runtimeInputs = [
|
||||
curl
|
||||
jq
|
||||
nix-update
|
||||
];
|
||||
text = ''
|
||||
set -euo pipefail
|
||||
|
||||
attr="''${UPDATE_NIX_ATTR_PATH:-ccusage}"
|
||||
|
||||
nix-update "$attr"
|
||||
|
||||
version=$(nix-instantiate --eval --raw -A "$attr.version")
|
||||
rev=$(curl --fail --silent --show-error --location \
|
||||
"https://raw.githubusercontent.com/ccusage/ccusage/v''${version}/flake.lock" \
|
||||
| jq --raw-output '.nodes.litellm.locked.rev')
|
||||
hash=$(nix-prefetch-url --type sha256 \
|
||||
"https://raw.githubusercontent.com/BerriAI/litellm/''${rev}/model_prices_and_context_window.json" \
|
||||
| xargs nix --extra-experimental-features nix-command hash convert --hash-algo sha256 --to sri)
|
||||
|
||||
file=$(nix-instantiate --eval --raw -A "$attr.meta.position" | sed -re 's/:[0-9]+$//')
|
||||
sed -i \
|
||||
-e "s|litellmPricingRev = \"[0-9a-f]*\"|litellmPricingRev = \"''${rev}\"|" \
|
||||
-e "s|litellmPricingHash = \"sha256-[^\"]*\"|litellmPricingHash = \"''${hash}\"|" \
|
||||
"$file"
|
||||
'';
|
||||
});
|
||||
|
||||
tests = {
|
||||
# With no agent data on disk, ccusage must still emit a valid, empty JSON
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user