Compare commits

..

433 Commits

Author SHA1 Message Date
Raito Bezarius
4ecab32735 Release NixOS 23.05
(cherry picked from commit 2c6ae7132c)
2023-05-31 22:57:43 +02:00
Francesco Gazzetta
96104cd70d Merge pull request #235217 from NixOS/backport-235199-to-release-23.05
[Backport release-23.05] tclx: 8.6.1 -> 8.6.2
2023-05-31 21:34:25 +02:00
Michael Weiss
8e037d02c5 Merge pull request #235170 from primeos/chromium-backport
[release-23.05] Prepare for backporting Chromium M114
2023-05-31 21:28:55 +02:00
Francesco Gazzetta
c73d5bbe29 tclx: 8.6.1 -> 8.6.2
(cherry picked from commit 75dbeee434)
2023-05-31 15:19:22 +00:00
Ulrik Strid
afc48694f2 Merge pull request #235181 from NixOS/backport-235165-to-release-23.05
[Backport release-23.05] ocamlPackages.benchmark: 1.4 → 1.6
2023-05-31 15:19:04 +02:00
r-vdp
7098a461b9 modules/sshd: print the offending keys when we detect duplicate sshd keys.
(cherry picked from commit 2206548a32)
2023-05-31 15:12:45 +02:00
maxine
41055915ba Merge pull request #235174 from NixOS/backport-234924-to-release-23.05
[Backport release-23.05] webkitgtk: 2.40.1 → 2.40.2
2023-05-31 14:47:05 +02:00
Michael Raitza
542ccc3f66 fabs: Mark broken
Not compatible with SQLAlchemy >= 2.0.

(cherry picked from commit 44494cc49f)
2023-05-31 12:06:59 +00:00
Martin Weinelt
3a70dd9299 Merge pull request #235190 from NixOS/backport-235011-to-release-23.05
[Backport release-23.05] release: before 23.05 final release
2023-05-31 13:52:02 +02:00
Raito Bezarius
e0c4bd5a43 nixos/doc/manual/installation: update the upgrading chapter for 23.05
(cherry picked from commit b8c2962807)
2023-05-31 11:51:46 +00:00
Raito Bezarius
a24d8907d8 readme: replace 23.11 by 23.05 for the links
(cherry picked from commit 6664618d92)
2023-05-31 11:51:46 +00:00
Martin Weinelt
79f01961e1 Merge pull request #235187 from NixOS/23.05/rl2305-final
[backport release-23.05] rl-2305: finalize the release notes
2023-05-31 13:51:44 +02:00
Lennart Mühlenmeier
3c8af3ab55 rl-2305: finalize the release notes
Co-Authored-By: Martin Weinelt <hexa@darmstadt.ccc.de>

(cherry picked from commit a17e3e356a)
2023-05-31 13:48:17 +02:00
Aaron Andersen
8d3dea249c Merge pull request #234991 from NixOS/backport-234685-to-release-23.05
[Backport release-23.05] flirc: lock readline to 6.x version as required
2023-05-31 07:43:22 -04:00
Vincent Laporte
48f3d9f076 coqPackages.corn: enable for Coq 8.17
(cherry picked from commit 1dc5b6c9ee)
2023-05-31 13:35:29 +02:00
Vincent Laporte
d5abae4393 coqPackages.math-classes: 8.15.0 → 8.17.0
(cherry picked from commit ae809a58f6)
2023-05-31 13:35:29 +02:00
Vincent Laporte
db3bdea8aa ocamlPackages.benchmark: 1.4 → 1.6
(cherry picked from commit e5e2b16a89)
2023-05-31 11:15:20 +00:00
Vincent Laporte
368a647283 ocamlPackages.rope: refactor
- remove legacy version 0.5 (broken)
 - disable for OCaml ≥ 5.0

(cherry picked from commit d74ed5ebb0)
2023-05-31 11:15:20 +00:00
Bobby Rong
d6247c820e webkitgtk: 2.40.1 → 2.40.2
https://webkitgtk.org/2023/05/29/webkitgtk2.40.2-released.html
https://github.com/WebKit/WebKit/compare/webkitgtk-2.40.1...webkitgtk-2.40.2

CVE-2023-28204
CVE-2023-32373

(cherry picked from commit b5da7670cf)
2023-05-31 10:38:27 +00:00
Michael Weiss
495a318fbc chromiumBeta: Fix the build with LLVM 16 by reverting a commit
This reverts a small commit [0] that adds the flag
"-disable-auto-upgrade-debug-info" as it requires an unreleased LLVM
version or the build will fail with the following error message:
```
ld.lld: error: -mllvm: ld.lld: Unknown command line argument '-disable-auto-upgrade-debug-info'.  Try: '/nix/store/bx494s1r30zwa7zdsyg72sjryy0k0pyg-llvm-binutils-16.0.1/bin/ld.lld --help'
ld.lld: Did you mean '--disable-auto-paired-vec-st'?
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
```

See [1] for a full example output.

Thanks to Lorenz Brun for the analysis/help [2].

[0]: 54969766fd
[1]: https://github.com/NixOS/nixpkgs/issues/213862#issuecomment-1542887001
[2]: https://github.com/NixOS/nixpkgs/issues/213862#issuecomment-1542927502

(cherry picked from commit 16f87c4cdb)
2023-05-31 12:10:43 +02:00
Michael Weiss
863f1aeaae chromiumDev: 115.0.5773.4 -> 115.0.5790.3
(cherry picked from commit 39b4e85e6c)
2023-05-31 12:10:43 +02:00
Michael Weiss
45a7531aa7 chromiumBeta: 114.0.5735.35 -> 114.0.5735.45
(cherry picked from commit d1896a86bc)
2023-05-31 12:10:42 +02:00
Silvan Mosberger
6d633268cc Merge pull request #235047 from NixOS/backport-235040-to-release-23.05
[Backport release-23.05] cameradar: Mark as broken
2023-05-31 12:08:06 +02:00
Ulrik Strid
d2bb180efb Merge pull request #235152 from NixOS/backport-234049-to-release-23.05
[Backport release-23.05] ocamlPackages.virtual_dom: 0.15.0 → 0.15.1
2023-05-31 11:28:28 +02:00
Bernardo Meurer
b742bc935f linux/hardened/patches/6.1: 6.1.28-hardened1 -> 6.1.29-hardened1
(cherry picked from commit f17741766a)
2023-05-31 11:18:41 +02:00
Bernardo Meurer
aa5def2b01 linux/hardened/patches/5.4: 5.4.242-hardened1 -> 5.4.243-hardened1
(cherry picked from commit 676b5334de)
2023-05-31 11:18:41 +02:00
Bernardo Meurer
c586a8d161 linux/hardened/patches/5.15: 5.15.111-hardened1 -> 5.15.112-hardened1
(cherry picked from commit 4463f66bb7)
2023-05-31 11:18:41 +02:00
Bernardo Meurer
0bc8042190 linux/hardened/patches/5.10: 5.10.179-hardened1 -> 5.10.180-hardened1
(cherry picked from commit 1a721f0f09)
2023-05-31 11:18:41 +02:00
Bernardo Meurer
9ad9df906f linux/hardened/patches/4.19: 4.19.282-hardened1 -> 4.19.283-hardened1
(cherry picked from commit 1b3bfdfc54)
2023-05-31 11:18:41 +02:00
Bernardo Meurer
1c4e8d50d5 linux/hardened/patches/4.14: 4.14.314-hardened1 -> 4.14.315-hardened1
(cherry picked from commit c992b20267)
2023-05-31 11:18:41 +02:00
Bernardo Meurer
f75211f50e linux_latest-libre: 19299 -> 19308
(cherry picked from commit afa1f44200)
2023-05-31 11:18:41 +02:00
Bernardo Meurer
30c0659823 linux-rt_5_15: 5.15.111-rt63 -> 5.15.113-rt64
(cherry picked from commit 8070db833f)
2023-05-31 11:18:41 +02:00
Bernardo Meurer
ab5948439b linux: 6.3.4 -> 6.3.5
(cherry picked from commit 775eba5758)
2023-05-31 11:18:41 +02:00
Bernardo Meurer
375ecfd863 linux: 6.1.30 -> 6.1.31
(cherry picked from commit fe5f9c2732)
2023-05-31 11:18:41 +02:00
Bernardo Meurer
28e673c3fd linux: 5.4.243 -> 5.4.244
(cherry picked from commit 46fb14a870)
2023-05-31 11:18:41 +02:00
Bernardo Meurer
db376128a9 linux: 5.15.113 -> 5.15.114
(cherry picked from commit 885386ff42)
2023-05-31 11:18:41 +02:00
Bernardo Meurer
887b93a670 linux: 5.10.180 -> 5.10.181
(cherry picked from commit 83f8f4d9be)
2023-05-31 11:18:41 +02:00
Bernardo Meurer
46769d3fb3 linux: 4.19.283 -> 4.19.284
(cherry picked from commit ecd3d6a7e2)
2023-05-31 11:18:41 +02:00
Bernardo Meurer
08d8ab0ac0 linux: 4.14.315 -> 4.14.316
(cherry picked from commit 082fc4cdff)
2023-05-31 11:18:41 +02:00
sternenseemann
f789a17825 haskell.compiler.ghc96: 9.6.1 -> 9.6.2 2023-05-31 11:06:33 +02:00
ners
cdfdc7a73d haskell.compiler.ghc962: init at 9.6.2
https://www.haskell.org/ghc/blog/20230523-ghc-9.6.2-released.html
(cherry picked from commit 08f19f5520)
2023-05-31 11:06:33 +02:00
Vincent Laporte
f088e9e4bf ocamlPackages.virtual_dom: 0.15.0 → 0.15.1
(cherry picked from commit a572ce9cab)
2023-05-31 08:52:04 +00:00
Bobby Rong
eb592ef8bb Merge pull request #235134 from NixOS/backport-234935-to-release-23.05
[Backport release-23.05] blueberry: add missing libnotify
2023-05-31 15:14:05 +08:00
Bobby Rong
f83d0ac0dd blueberry: add missing libnotify
ref: https://github.com/NixOS/nixpkgs/issues/234833
(cherry picked from commit 990e429f06)
2023-05-31 06:01:19 +00:00
Nick Cao
9f3c48eea5 Merge pull request #235118 from NixOS/backport-234154-to-release-23.05
[Backport release-23.05] ocamlPackages.iter: 1.6 → 1.7
2023-05-30 23:46:09 -06:00
Vincent Laporte
8b26f67c6c alt-ergo: 2.4.2 → 2.4.3
(cherry picked from commit 1f7e936bb9)
2023-05-31 06:52:33 +02:00
Vincent Laporte
35a6f5fba6 ocamlPackages.iter: 1.6 → 1.7
(cherry picked from commit 56376c4eee)
2023-05-31 04:03:19 +00:00
Vincent Laporte
91f654d57c ocamlPackages.lwt: fix for OCaml 5.0
(cherry picked from commit ffcfca42e4)
2023-05-31 04:03:19 +00:00
Vincent Laporte
75b9ef08a3 ocamlPackages.ocplib-endian: fix for OCaml 5.0
(cherry picked from commit 67a752bf71)
2023-05-31 04:03:19 +00:00
Nick Cao
8c5f01ab09 Merge pull request #235067 from NixOS/backport-234720-to-release-23.05
[Backport release-23.05] httpdump: 20210126-d2e0dea -> unstable-2023-05-07
2023-05-30 20:01:37 -06:00
Nick Cao
8c11bacbe0 Merge pull request #234992 from NixOS/backport-234780-to-release-23.05
[Backport release-23.05] libreoffice-still: 7.4.6.2 -> 7.4.7.2, libreoffice-fresh 7.5.2.2 -> 7.5.4.1
2023-05-30 20:00:20 -06:00
Aaron Jheng
396b302063 httpdump: 20210126-d2e0dea -> unstable-2023-05-07
(cherry picked from commit 6993699596)
2023-05-30 21:20:09 +00:00
figsoda
456af4e174 Merge pull request #235037 from NixOS/backport-234837-to-release-23.05
[Backport release-23.05] ftxui: 4.1.0 -> 4.1.1
2023-05-30 15:20:17 -04:00
Silvan Mosberger
836e08d4a3 cameradar: Mark as broken
(cherry picked from commit 5041790beb)
2023-05-30 18:59:10 +00:00
Henner Zeller
150e1d646f ftxui: 4.1.0 -> 4.1.1
(cherry picked from commit 65dd3c5d35)
2023-05-30 17:47:23 +00:00
ajs124
4b2b21e057 Merge pull request #235018 from NixOS/backport-235005-to-release-23.05
[Backport release-23.05] openssl_1_1: 1.1.1t -> 1.1.1u
2023-05-30 19:08:27 +02:00
github-actions[bot]
0ac05883fd nixos/pam_mount: fix mounts without options (#234147)
This commit adds a comma in front of the given options, which makes the
mounts still succeed even if no options are given.

Fixes #233946

(cherry picked from commit 4431a34369)

Co-authored-by: netali <me@netali.de>
2023-05-30 18:53:13 +02:00
Martin Weinelt
44be25f5d3 Merge pull request #233625 from euank/k3s-23.05
k3s: drop 1.24 & 1.25 for 23.05
2023-05-30 17:56:33 +02:00
Martin Weinelt
1c236e4e4b openssl_1_1: 1.1.1t -> 1.1.1u
https://github.com/openssl/openssl/blob/OpenSSL_1_1_1u/NEWS

Fixes: CVE-2023-2650, CVE-2023-0466, CVE-2023-0465, CVE-2023-0464
(cherry picked from commit bca975c293)
2023-05-30 15:46:35 +00:00
Martin Weinelt
21c2ec414a Merge pull request #234998 from yayayayaka/backport-184586-to-release-23.05
[23.05] nixos/sftpgo: init, nixosTests.sftpgo: init
2023-05-30 17:14:04 +02:00
Nick Cao
0491e5b06c Merge pull request #234999 from NixOS/backport-234930-to-release-23.05
[Backport release-23.05] maddy: 0.6.3 -> 0.7.0
2023-05-30 09:13:29 -06:00
Jonas Heinrich
1c9ddfaf79 nixos/maddy: change secrets option to accept a list of paths
(cherry picked from commit 63f73b3295)
2023-05-30 13:03:27 +00:00
Nick Cao
91b7c492eb maddy: 0.6.3 -> 0.7.0
Diff: https://github.com/foxcpp/maddy/compare/v0.6.3...v0.7.0
(cherry picked from commit 288b2fa580)
2023-05-30 13:03:27 +00:00
Robert Hensing
6b0edc9c69 Merge pull request #234794 from NixOS/backport-234230-to-release-23.05
[Backport release-23.05] Update nixops
2023-05-30 15:01:24 +02:00
Aaron Andersen
3e687616ef Merge pull request #234996 from NixOS/backport-231665-to-release-23.05
[Backport release-23.05] nixos/vmalert: init
2023-05-30 08:38:48 -04:00
Otavio Salvador
c8cc8f57b6 snagboot: init at 1.0
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
(cherry picked from commit cf377038df)
2023-05-30 12:37:30 +00:00
Aaron Andersen
d124449613 nixos/vmalert: init
(cherry picked from commit d098eec2da)
2023-05-30 12:33:17 +00:00
Yaya
8cc61b1760 nixos/tests/sftpgo: init
(cherry picked from commit e0444dd55f)
2023-05-30 12:31:40 +00:00
Yaya
b092d78933 nixos/sftpgo: init
A fully featured and highly configurable SFTP server with optional
HTTP/S, FTP/S and WebDAV support.

https://github.com/drakkan/sftpgo
(cherry picked from commit a11c9cf7dc)
2023-05-30 12:31:40 +00:00
Yaya
302fb6f669 sftpgo: add yayayayaka to maintainers
(cherry picked from commit b28e72ec46)
2023-05-30 12:31:40 +00:00
Yaya
7f4bf64484 sftpgo: Include openapi, static and templates folders
Those are needed for serving the web client

(cherry picked from commit 12c32b5583)
2023-05-30 12:31:40 +00:00
teutat3s
b0738abee5 libreoffice-fresh: 7.5.2.2 -> 7.5.4.1
(cherry picked from commit 9da8091506)
2023-05-30 12:06:31 +00:00
teutat3s
6513727cd2 libreoffice-still: 7.4.6.2 -> 7.4.7.2
(cherry picked from commit c92d120e01)
2023-05-30 12:06:31 +00:00
Aaron Andersen
1a51bda012 flirc: lock readline to 6.x version as required
(cherry picked from commit 5d0e2af544)
2023-05-30 11:58:17 +00:00
Atemu
b88f160f57 Merge pull request #234969 from NixOS/backport-234446-to-release-23.05
[Backport release-23.05]  linux_xanmod: 6.1.29 -> 6.1.30
2023-05-30 13:14:20 +02:00
Nick Cao
ebf717d1c8 Merge pull request #234971 from NixOS/backport-234931-to-release-23.05
[Backport release-23.05] netbird-ui: 0.20.3 -> 0.20.5
2023-05-30 05:14:09 -06:00
Vladimír Čunát
199f37ef27 Merge #234983: doc: clarify that meta.timeout is only for Hydra
...into release-23.05
2023-05-30 13:02:01 +02:00
Martin Weinelt
eaad07e492 Merge pull request #234981 from NixOS/backport/rl-alpha-2305
[release-23.05] rl2305: alpha version for 23.05
2023-05-30 12:40:39 +02:00
Raito Bezarius
2677e428c0 rl-2305: alpha version for 23.05
This is an alpha version worked out by the release managers.

Co-Authored-By: Martin Weinelt <hexa@darmstadt.ccc.de>
2023-05-30 12:33:19 +02:00
Atemu
63c89cb2b2 rl-2305: mention buildFHSEnv switch to bubblewrap
See https://github.com/NixOS/nixpkgs/pull/225748

(cherry picked from commit 3720991c06)
2023-05-30 12:32:37 +02:00
Yaya
50801ac9ce nixos/doc: add release note for sftpgo
(cherry picked from commit ae47862b93)
2023-05-30 12:32:34 +02:00
Adam Joseph
7aeb7d0a61 release-notes: note ability to build powerpc64le-linux NixOS ISOs
This commit adds a mention to the release notes of the fact that
NixOS 23.05 can build installer ISOs for a new platform.

(cherry picked from commit 2983698c4b)
2023-05-30 12:32:04 +02:00
Adam Joseph
7f2b788a7d release-notes: mention that powerpc64 now uses IEEE-standard floats
(cherry picked from commit c87e1115d7)
2023-05-30 12:31:58 +02:00
Alyssa Ross
701cdfea20 doc: clarify that meta.timeout is only for Hydra
I read this and expected it to be a timeout that was always applied
when building the derivation, but it's actually a Hydra-specific
thing.

(cherry picked from commit c64d9a3878)
2023-05-30 10:28:41 +00:00
R. Ryantm
e8e6dd43cc netbird-ui: 0.20.3 -> 0.20.5
(cherry picked from commit e2f30e50a8)
2023-05-30 09:16:03 +00:00
Atemu
ebda50955b linux_xanmod: 6.1.29 -> 6.1.30
(cherry picked from commit f42d43dcca)
2023-05-30 08:57:39 +00:00
Nick Cao
7c3e7b3316 Merge pull request #234947 from NixOS/backport-234842-to-release-23.05
[Backport release-23.05] matrix-synapse: 1.84.0 -> 1.84.1
2023-05-30 02:25:08 -06:00
Weijia Wang
808b8c28a6 Merge pull request #234933 from NixOS/backport-234424-to-release-23.05
[Backport release-23.05] pgmanage: 11.0.1 -> unstable-2022-05-11
2023-05-30 11:00:33 +03:00
Sumner Evans
1e41641dbc matrix-synapse: 1.84.0 -> 1.84.1
https://github.com/matrix-org/synapse/releases/tag/v1.84.1
Signed-off-by: Sumner Evans <me@sumnerevans.com>
(cherry picked from commit e1a8113c12)
2023-05-30 06:37:11 +00:00
Bas van Dijk
e014c1146e pgmanage: use a valid version number
(cherry picked from commit 8195adcf53)
2023-05-30 04:50:47 +00:00
Bas van Dijk
18b51048e7 pgmanage: 11.0.1 -> 11.0.1-git-a028604
The last release 11.0.1 from 2018 fails the NixOS test
probably because of PostgreSQL-12 incompatibility.
Fortunately the latest master does succeed the test.

(cherry picked from commit dd2c53cb2c)
2023-05-30 04:50:47 +00:00
Weijia Wang
8d245c250a Merge pull request #234919 from NixOS/backport-234873-to-release-23.05
[Backport release-23.05] wasmtime: fix lib on darwin
2023-05-30 06:51:30 +03:00
Weijia Wang
dda46f49cf Merge pull request #234757 from NixOS/backport-234739-to-release-23.05
[Backport release-23.05] python3Packages.libsixel: fix build on darwin
2023-05-30 06:17:14 +03:00
Bas van Dijk
1c4f953551 wasmtime: fix lib on darwin
Before:

```
otool -D result-dev/lib/libwasmtime.dylib
result-dev/lib/libwasmtime.dylib:
/private/tmp/nix-build-wasmtime-9.0.2.drv-0/source/target/aarch64-apple-darwin/release/deps/libwasmtime.dylib
```

After:

```
otool -D result-dev/lib/libwasmtime.dylib
result-dev/lib/libwasmtime.dylib:
/nix/store/bz6l7dr60izrq6vga83df9y2p1mgh5hw-wasmtime-9.0.2-dev/lib/libwasmtime.dylib
```

(cherry picked from commit ad3402c664)
2023-05-30 03:16:58 +00:00
Nick Cao
26666e9ff0 Merge pull request #234840 from NixOS/backport-233947-to-release-23.05
[Backport release-23.05] furnace: 0.6pre4-hotfix -> 0.6pre5
2023-05-29 20:30:19 -06:00
figsoda
8be013d859 Merge pull request #234889 from NixOS/backport-234799-to-release-23.05 2023-05-29 21:52:22 -04:00
Gaetan Lepage
f3dc1b9162 neovim: 0.9.0 -> 0.9.1
(cherry picked from commit 70f9da69a5)
2023-05-29 22:18:07 +00:00
Martin Weinelt
e205638d49 Merge pull request #234885 from NixOS/backport-234728-to-release-23.05
[Backport release-23.05] python3Packages.boa-api: disable tests
2023-05-29 23:36:32 +02:00
Fabian Affolter
46853f900d python311Packages.boa-api: add format
- disable on unsupported Python relases

(cherry picked from commit 5b7fc70b8f)
2023-05-29 21:24:06 +00:00
natsukium
df86485a0a python3Packages.boa-api: add changelog to meta
(cherry picked from commit 5c06b08329)
2023-05-29 21:24:06 +00:00
natsukium
e2696767a7 python3Packages.boa-api: disable checkPhase
(cherry picked from commit e2294f9f88)
2023-05-29 21:24:06 +00:00
Otavio Salvador
f3cf6bf825 dtc: 1.6.1 -> 1.7.0
The package now uses Meson and Ninja as the build system.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
(cherry picked from commit 8f4d39a46a)
2023-05-29 21:10:28 +00:00
Martin Weinelt
bee04d0747 Merge pull request #234848 from NixOS/backport-234777-to-release-23.05
[Backport release-23.05] manim: Pin networkx and watchdog
2023-05-29 22:09:48 +02:00
Martin Weinelt
73eca51a59 Merge pull request #234847 from NixOS/backport-234786-to-release-23.05
[Backport release-23.05] python310Packages.pontos: disable failing test
2023-05-29 22:09:38 +02:00
Martin Weinelt
56b4c2b5b1 Merge pull request #234846 from NixOS/backport-234781-to-release-23.05
[Backport release-23.05] python310Packages.jupyterhub: mark broken
2023-05-29 21:32:26 +02:00
Otavio Salvador
a421d99009 pythonPackages.tftpy: init 0.8.2
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
(cherry picked from commit 29504a3354)
2023-05-29 19:03:13 +00:00
Martin Weinelt
5238dd1398 manim: Pin networkx and watchdog
Fixes the build.

(cherry picked from commit d27954a561)
2023-05-29 18:58:16 +00:00
Martin Weinelt
9bad46c9e2 python310Packages.pontos: disable failing test
Expects to be executed in a Git repository, but we remove .git for
reproducibility.

(cherry picked from commit 179f7614ae)
2023-05-29 18:57:26 +00:00
Martin Weinelt
c5fba7d0cc python310Packages.jupyterhub: mark broken
Not compatible with SQLAlchemy 2.0.

(cherry picked from commit 4b41ea8cbe)
2023-05-29 18:57:12 +00:00
OPNA2608
5991c8c879 furnace: 0.6pre4-hotfix -> 0.6pre5
(cherry picked from commit d200470be8)
2023-05-29 18:20:05 +00:00
Sandro
d14b8ea6d4 Merge pull request #234052 from NixOS/backport-231630-to-release-23.05 2023-05-29 20:18:57 +02:00
Luke Granger-Brown
82fbf4ed44 Merge pull request #234831 from NixOS/backport-234756-to-release-23.05
[Backport release-23.05] pomerium: 0.22.1 -> 0.22.2
2023-05-29 19:07:15 +01:00
R. Ryantm
89b62b7d9c pomerium: 0.22.1 -> 0.22.2
(cherry picked from commit cc62398c92)
2023-05-29 17:34:44 +00:00
Francesco Gazzetta
577d6a0770 Merge pull request #234793 from NixOS/backport-234614-to-release-23.05
[Backport release-23.05] shattered-pixel-dungeon: 1.1.2 -> 2.0.2
2023-05-29 16:38:35 +02:00
Francesco Gazzetta
91e5c9cd6d release-notes: mention shattered-pixel-dungeon 2023-05-29 16:38:09 +02:00
Robert Hensing
c982eeacaa nixops_unstable: Set meta.mainProgram
(cherry picked from commit 7f3706f7e1)
2023-05-29 12:08:58 +00:00
Robert Hensing
85fcd99c25 nixops_unstable: update
(cherry picked from commit bd5568b0d6)
2023-05-29 12:08:58 +00:00
Francesco Gazzetta
1215b850a0 shattered-pixel-dungeon: 1.1.2 -> 2.0.2
(cherry picked from commit a5472cf9b5)
2023-05-29 12:08:27 +00:00
Nick Cao
0f7f5ca1cd Merge pull request #234764 from NixOS/backport-234562-to-release-23.05
[Backport release-23.05] ocamlPackages.oseq: 0.4 -> 0.5
2023-05-29 04:30:26 -06:00
Nick Cao
cc0473f1f2 Merge pull request #234759 from NixOS/backport-234559-to-release-23.05
[Backport release-23.05] ocamlPackages.ocamlfuse: 2.7.1_cvs7 -> 2.7.1_cvs8
2023-05-29 04:27:25 -06:00
Nick Cao
768823d0d3 Merge pull request #234762 from NixOS/backport-234561-to-release-23.05
[Backport release-23.05] ocamlPackages.gapi-ocaml: 0.4.3 -> 0.4.4
2023-05-29 04:25:28 -06:00
Martin Weinelt
ce84f29a07 Merge pull request #234737 from NixOS/backport-234700-to-release-23.05
[Backport release-23.05] esphome: 2023.5.4 -> 2023.5.5
2023-05-29 11:47:50 +02:00
Mario Rodas
d4815196cf ocamlPackages.oseq: 0.4 -> 0.5
Diff: https://github.com/c-cube/oseq/compare/v0.4...v0.5

Changelog: https://github.com/c-cube/oseq/releases/tag/v0.5
(cherry picked from commit 7135df8c66)
2023-05-29 09:35:46 +00:00
Martin Weinelt
a9f370a0ab Merge pull request #234760 from NixOS/backport-234383-to-release-23.05
[Backport release-23.05] qc71_laptop: 2022-06-01 -> 2023-03-02; fix kernel 6.3
2023-05-29 11:25:56 +02:00
Mario Rodas
b32a7c2830 ocamlPackages.gapi-ocaml: 0.4.3 -> 0.4.4
Diff: https://github.com/astrada/gapi-ocaml/compare/v0.4.3...v0.4.4

Changelog: https://github.com/astrada/gapi-ocaml/releases/tag/v0.4.4
(cherry picked from commit bec329df4a)
2023-05-29 09:22:45 +00:00
Alexandre Iooss
457addc5e4 qc71_laptop: 2022-06-01 -> 2023-03-02
(cherry picked from commit 5703ff7dfb)
2023-05-29 09:16:08 +00:00
Martin Weinelt
274a1f5513 Merge pull request #234726 from NixOS/backport-234702-to-release-23.05
[Backport release-23.05] python310Packages.ariadne: fix build
2023-05-29 11:14:12 +02:00
Mario Rodas
e0fcf8d473 ocamlPackages.ocamlfuse: 2.7.1_cvs7 -> 2.7.1_cvs8
Diff: https://github.com/astrada/ocamlfuse/compare/v2.7.1_cvs7...v2.7.1_cvs8

Changelog: https://github.com/astrada/ocamlfuse/releases/tag/v2.7.1_cvs8
(cherry picked from commit c74e6fa66f)
2023-05-29 09:13:24 +00:00
natsukium
bf0b59d28a python3Packages.libsixel: fix build on darwin
(cherry picked from commit 21a36d6727)
2023-05-29 09:00:23 +00:00
Weijia Wang
a524bdb793 Merge pull request #234748 from NixOS/backport-234729-to-release-23.05
[Backport release-23.05] nixos/pufferpanel: buildFHSUserEnv -> buildFHSEnv
2023-05-29 11:00:59 +03:00
Ivan Trubach
bb0e938339 nixos/pufferpanel: buildFHSUserEnv -> buildFHSEnv
The pufferpanel module (#225274) was merged shortly after the tree-wide
rename f63a12f296 (#225748), so the use of
deperecated buildFHSUserEnv in the docs slipped through review 😅

(cherry picked from commit 0143b16935)
2023-05-29 07:56:47 +00:00
Nick Cao
6287b47dbf Merge pull request #234704 from NixOS/backport-234186-to-release-23.05
[Backport release-23.05] nixos/shadowsocks: wait for nginx to prevent race condition
2023-05-28 23:31:37 -06:00
Martin Weinelt
e8362b3301 esphome: 2023.5.4 -> 2023.5.5
https://github.com/esphome/esphome/releases/tag/2023.5.5
(cherry picked from commit 6b7434d32e)
2023-05-29 05:28:21 +00:00
Nick Cao
3af35e0160 Merge pull request #234703 from NixOS/backport-234170-to-release-23.05
[Backport release-23.05] rtl8189fs: 2022-10-30 -> 2023-03-27; fix kernel 6.3
2023-05-28 23:26:57 -06:00
Martin Weinelt
6b1d2713ba python310Packages.ariadne: fix build
Fix the format and disable tests that require an unpackaged dependency.

(cherry picked from commit e39ea12e31)
2023-05-29 03:40:57 +00:00
Henri Menke
0f7dc597a1 nixos/shadowsocks: wait for nginx to prevent race condition
(cherry picked from commit 7d621d6be5)
2023-05-28 23:38:09 +00:00
Alexandre Iooss
6d6c02e2d1 rtl8189fs: 2022-10-30 -> 2023-03-27
(cherry picked from commit 79ac113a2c)
2023-05-28 23:34:39 +00:00
Weijia Wang
6b78c6fff6 Merge pull request #234697 from NixOS/backport-234461-to-release-23.05
[Backport release-23.05] nextcloud26: 26.0.1 -> 26.0.2
2023-05-29 01:57:40 +03:00
Raito Bezarius
72a91b65a0 nextcloud26: 26.0.1 -> 26.0.2
https://nextcloud.com/changelog/#26-0-2
(cherry picked from commit 2ede3cb621)
2023-05-28 21:43:11 +00:00
Martin Weinelt
d5ecf14485 Merge pull request #234682 from NixOS/backport-234074-to-release-23.05
[Backport release-23.05] python310Packages.trio-websocket: 0.9.2 -> 0.10.2
2023-05-28 22:54:08 +02:00
Weijia Wang
e59879a082 Merge pull request #234659 from NixOS/backport-233654-to-release-23.05
[Backport release-23.05] ovftool: replace libxcrypt with libxcrypt-legacy
2023-05-28 23:51:01 +03:00
Martin Weinelt
421a2a2865 python310Packages.trio-websocket: fix/disable tests on darwin
(cherry picked from commit 658c049602)
2023-05-28 20:24:28 +00:00
Martin Weinelt
299739821b python310Packages.trio-websocket: 0.9.2 -> 0.10.2
Fixes the build on Python 3.11.

https://github.com/HyperionGray/trio-websocket/blob/0.10.2/CHANGELOG.md
https://github.com/HyperionGray/trio-websocket/compare/0.9.2...0.10.2
(cherry picked from commit 1b130c8aba)
2023-05-28 20:24:28 +00:00
Alyssa Ross
b2ea8027e4 nixosTests.public-inbox: extend sleep
5 seconds isn't reliably enough here on my system.

(cherry picked from commit ad31856bd9)
2023-05-28 19:33:27 +00:00
P. R. d. O
cc1d74ebb7 ovftool: replace libxcrypt with libxcrypt-legacy
(cherry picked from commit e9c0fffbef)
2023-05-28 18:11:03 +00:00
Raito Bezarius
76eaaa955a nixos/qemu-vm: fix 32-bits assert for memorySize
It should be an implication, rather than &&.

(cherry picked from commit 09d1022782)
2023-05-28 18:08:48 +00:00
emilylange
8a12d9d2b1 nixos/qemu-vm: add virtualisation.memorySize < 2048 assertion on 32bit
(cherry picked from commit 5dbd4f3243)
2023-05-28 18:08:48 +00:00
Martin Weinelt
aea3db7cca Merge pull request #234657 from NixOS/backport-233442-to-release-23.05
[Backport release-23.05] ansible_2_14: 2.14.5 -> 2.14.6; ansible_2_13: 2.13.9 -> 2.13.10
2023-05-28 20:01:57 +02:00
Martin Weinelt
4a6941468c ansible_2_13: 2.13.9 -> 2.13.10
Changelog: https://github.com/ansible/ansible/blob/v2.13.10/changelogs/CHANGELOG-v2.13.rst
(cherry picked from commit 7daa2b144f)
2023-05-28 18:00:45 +00:00
Martin Weinelt
c9781594ad ansible_2_14: 2.14.5 -> 2.14.6
Changelog: https://github.com/ansible/ansible/blob/v2.14.6/changelogs/CHANGELOG-v2.14.rst
(cherry picked from commit bc4250f411)
2023-05-28 18:00:45 +00:00
Martin Weinelt
1f0296a3c2 Merge pull request #234653 from NixOS/backport-234067-to-release-23.05
[Backport release-23.05] python311Packages.opentracing: disable
2023-05-28 19:41:18 +02:00
Martin Weinelt
ea94a9a03f python311Packages.opentracing: disable
The upstream project has been archived.

(cherry picked from commit 1b2c716b68)
2023-05-28 17:40:44 +00:00
OPNA2608
ad665ad345 ppsspp-{sdl,sdl-wayland,qt}: Install desktop icons
(cherry picked from commit ef7ced6fd6)
2023-05-28 14:45:44 +00:00
Ryan Lahfa
a97b9eb156 Merge pull request #234633 from NixOS/backport-234597-to-release-23.05
[Backport release-23.05] netdata: 1.39.0 -> 1.39.1
2023-05-28 16:40:32 +02:00
Mario Rodas
b8b0e887c2 netdata: add changelog to meta
(cherry picked from commit 86c8d96f77)
2023-05-28 14:36:39 +00:00
R. Ryantm
6d756d6811 netdata: 1.39.0 -> 1.39.1
(cherry picked from commit b56c79d1cb)
2023-05-28 14:36:39 +00:00
Andres Navarro
3406dd8fc3 openbugs: init at 3.2.3
(cherry picked from commit cfbff1faff)
2023-05-28 13:52:53 +00:00
Andres Navarro
d1c9b778de maintainers: add andresnav
(cherry picked from commit 59b3572a67)
2023-05-28 13:52:53 +00:00
Robert Scott
a7adeadc7d Merge pull request #234467 from NixOS/backport-234399-to-release-23.05
[Backport release-23.05] metabase: 0.46.2 -> 0.46.4
2023-05-28 12:14:33 +01:00
Francesco Gazzetta
08510f659c Merge pull request #234589 from NixOS/backport-233837-to-release-23.05
[Backport release-23.05] mindustry-server: Fix
2023-05-28 13:14:06 +02:00
Francesco Gazzetta
442779c7da Merge pull request #234586 from NixOS/backport-231259-to-release-23.05
[Backport release-23.05] organicmaps: 2023.04.02-7 -> 2023.05.08-7
2023-05-28 13:13:21 +02:00
Scott Worley
2509259b74 mindustry-server: Fix
(cherry picked from commit dfdb06dad3)
2023-05-28 09:24:39 +00:00
Francesco Gazzetta
b8de729e7c organicmaps: 2023.04.02-7 -> 2023.05.08-7
(cherry picked from commit f9c2637ca5)
2023-05-28 09:17:40 +00:00
Winter
58c3fa5e2d thelounge: fix build
Upstream switched to using TypeScript in v4.4.0, which broke the patch.
This fixes that issue by migrating to building The Lounge from source,
instead of having to patch the minified JavaScript.

(cherry picked from commit 6347aba26a)
2023-05-28 03:58:12 -04:00
Winter
8a3be7b666 npmHooks.npmInstallHook: allow disabling npm prune invocation
In some odd scenarios, `npm prune` either fails, or hangs. I have no idea
what could possibly be wrong at the moment, but let's provide an escape
hatch for packages that can still use the rest of the install hook's
functionality.

(cherry picked from commit 9de86832f4)
2023-05-28 03:58:12 -04:00
Nick Cao
93c81a0355 Merge pull request #234420 from NixOS/backport-232330-to-release-23.05
[Backport release-23.05] linuxPackages.rtl8821cu: unstable-2022-12-07 -> unstable-2023-04-28
2023-05-27 23:59:08 -06:00
Nick Cao
f0ea32a015 Merge pull request #234453 from NixOS/backport-234398-to-release-23.05
[Backport release-23.05] prometheus: skip tests on 32-bit platforms
2023-05-27 23:41:26 -06:00
Mario Rodas
0123c9a037 Merge pull request #234517 from NixOS/backport-234499-to-release-23.05
[Backport release-23.05] wasmtime: 9.0.1 -> 9.0.2
2023-05-27 19:49:35 -05:00
Rafael Fernández López
d5f9514859 wasmtime: 9.0.1 -> 9.0.2
(cherry picked from commit 8f73830dbe)
2023-05-27 22:46:35 +00:00
Weijia Wang
090f9827ca Merge pull request #234515 from NixOS/backport-234472-to-release-23.05
[Backport release-23.05] libwacom: disable tests on risc-v
2023-05-28 01:41:05 +03:00
Jakob Leifhelm
988659956f libwacom: disable tests on risc-v
(cherry picked from commit 0f7191d6d9)
2023-05-27 22:12:04 +00:00
Robert Scott
edc5dba610 Merge pull request #234390 from NixOS/backport-234164-to-release-23.05
[Backport release-23.05] python3Packages.uptime-kuma-api: 0.13.0 -> 1.0.1
2023-05-27 20:44:34 +01:00
Robert Scott
ece06e393a Merge pull request #234057 from NixOS/backport-228553-to-release-23.05
[Backport release-23.05] matrix-hookshot: 3.2.0 -> 4.0.0
2023-05-27 20:41:54 +01:00
Robert Scott
1de6861e51 Merge pull request #234080 from NixOS/backport-233626-to-release-23.05
[Backport release-23.05] python3Packages.pymanopt: marked as broken
2023-05-27 20:36:24 +01:00
Alyssa Ross
af521cd2ae nixos/test-driver: undeprecate create_machine
This warning was added a year and a half ago, but still no test in
NixOS directly instantiates the machine class, presumably because it's
not actually possible for a test to do so without losing
functionality.  For example, there's no way for a NixOS test to access
the output directory that create_machine passes to the Machine
constructor.

This warning is therefore just contributing to alert fatigue for
users, who are unable to follow its advice.  Once it's actually
possible to do what it suggests, the warning can be reintroduced.

(cherry picked from commit 845576aac4)
2023-05-27 17:33:53 +00:00
Thomas Gerbet
b2d02f4b32 metabase: 0.46.2 -> 0.46.4
Fixes CVE-2023-32680.

Changelogs:
https://github.com/metabase/metabase/releases/tag/v0.46.4
https://github.com/metabase/metabase/releases/tag/v0.46.3
(cherry picked from commit 55a9632753)
2023-05-27 17:22:42 +00:00
Alyssa Ross
ccaac5fbce nixos/test-driver: add missing spaces to warning
(cherry picked from commit d5b992a56a)
2023-05-27 16:16:23 +00:00
Lorenz Brun
556740604e prometheus: skip tests on 32-bit platforms
(cherry picked from commit e1a0a7aa76)
2023-05-27 15:04:20 +00:00
Weijia Wang
d04b2c2d20 Merge pull request #234413 from NixOS/backport-234406-to-release-23.05
[Backport release-23.05] libb64: Fix i686-linux build failure
2023-05-27 16:51:41 +03:00
Robert Scott
a188d8f164 Merge pull request #234419 from NixOS/backport-234205-to-release-23.05
[Backport release-23.05] python3Packages.fenics: fixed tests for FIAT
2023-05-27 13:26:34 +01:00
Vanilla
9f50e6fd10 linuxPackages.rtl8821cu: unstable-2022-12-07 -> unstable-2023-04-28
(cherry picked from commit f09bffe4d7)
2023-05-27 12:14:11 +00:00
Alexander Kiselyov
cc29349069 python3Packages.fenics: fixed tests for FIAT
(cherry picked from commit 3579ce8c72)
2023-05-27 12:02:01 +00:00
Eelco Dolstra
058e009d69 libb64: Fix i686-linux build failure
https://hydra.nixos.org/build/221506062
(cherry picked from commit 015722217e)
2023-05-27 11:47:12 +00:00
Fabian Affolter
69983d044b python3Packages.uptime-kuma-api: update disabled
(cherry picked from commit fa10919cd0)
2023-05-27 09:14:48 +00:00
Julien Malka
3d622da1d3 python3Packages.uptime-kuma-api: 0.13.0 -> 1.0.1
(cherry picked from commit e29436ee4d)
2023-05-27 09:14:48 +00:00
Ilan Joselevich
5d0a53f1d5 Merge pull request #234385 from NixOS/backport-218803-to-release-23.05
[Backport release-23.05] bkt: init at version 0.6.1
2023-05-27 12:02:22 +03:00
mangoiv
d0d8540dba bkt: init at version 0.6.1
- packages https://github.com/dimo414/bkt
- release notes for version 0.6.1 can be found at https://github.com/dimo414/bkt/releases/tag/0.6.1

(cherry picked from commit f5c317d5ac)
2023-05-27 09:00:59 +00:00
mangoiv
6e175cb034 adds mangoiv to maintainers
(cherry picked from commit 28ac9c2cf1)
2023-05-27 09:00:59 +00:00
Thomas Gerbet
35db04da32 vector: enable sources-dnstap feature
This feature is enabled in the official build:
https://github.com/vectordotdev/vector/blob/v0.30.0/Cargo.toml#L376

(cherry picked from commit fc9211ea94)
2023-05-26 21:16:45 -04:00
Weijia Wang
aa28d88d0f Merge pull request #234315 from NixOS/backport-234120-to-release-23.05
[Backport release-23.05] python3Packages.umap-learn: patch for numpy>=1.24
2023-05-27 02:54:30 +03:00
Weijia Wang
00ce943ed2 Merge pull request #234300 from NixOS/backport-234283-to-release-23.05
[Backport release-23.05] flatcam: fix build
2023-05-27 02:37:42 +03:00
natsukium
1d821d002d python3Packages.umap-learn: patch for numpy>=1.24
(cherry picked from commit dff3db7d73)
2023-05-26 22:51:34 +00:00
Weijia Wang
b672dde513 Merge pull request #234301 from NixOS/backport-234272-to-release-23.05
[Backport release-23.05] dablin: 1.14.0 -> 1.15.0
2023-05-27 00:22:27 +03:00
Markus Kowalewski
e3aaf954ea dablin: 1.14.0 -> 1.15.0
(cherry picked from commit cfa11faeb7)
2023-05-26 21:03:30 +00:00
Weijia Wang
99450b7ebd Merge pull request #234291 from NixOS/backport-234280-to-release-23.05
[Backport release-23.05] cups-filters: 1.28.15 -> 1.28.17
2023-05-27 00:02:38 +03:00
Silvan Mosberger
a422cd1f5b flatcam: fix build
(cherry picked from commit 5c042401b4)
2023-05-26 21:01:01 +00:00
Weijia Wang
e996ea9d5d Merge pull request #234275 from NixOS/backport-234174-to-release-23.05
[Backport release-23.05] nfs-ganesha: 5.1 -> 5.2
2023-05-26 23:11:50 +03:00
Weijia Wang
5e99b338b7 cups-filters: 1.28.15 -> 1.28.17
(cherry picked from commit b5de94e8a7)
2023-05-26 20:11:19 +00:00
Weijia Wang
213b7e96ef Merge pull request #234278 from NixOS/backport-234242-to-release-23.05
[Backport release-23.05] rekor-cli, rekor-server: 1.1.1 -> 1.2.1
2023-05-26 22:45:13 +03:00
Thomas Gerbet
28b5e66f35 rekor-cli, rekor-server: 1.1.1 -> 1.2.1
Fixes CVE-2023-33199.

Changelog:
https://github.com/sigstore/rekor/releases/tag/v1.2.1
(cherry picked from commit e655d0318c)
2023-05-26 18:48:36 +00:00
Weijia Wang
e122f584b2 Merge pull request #234271 from NixOS/backport-234203-to-release-23.05
[Backport release-23.05] gpac: 2.2.0 -> 2.2.1
2023-05-26 21:33:39 +03:00
Markus Kowalewski
9b7fe8be9e nfs-ganesha: 5.1 -> 5.2
(cherry picked from commit 04f05e328d)
2023-05-26 18:31:13 +00:00
Pavol Rusnak
02d4e45afa Merge pull request #234274 from NixOS/backport-234191-to-release-23.05
[Backport release-23.05] bitcoin: 24.1 -> 25.0
2023-05-26 20:30:00 +02:00
fanquake
08a2058e17 bitcoin: 24.1 -> 25.0
(cherry picked from commit 83da7af2ca)
2023-05-26 18:26:38 +00:00
Weijia Wang
0f99cd5301 gpac: 2.2.0 -> 2.2.1
(cherry picked from commit cf5538a4ba)
2023-05-26 18:24:01 +00:00
Weijia Wang
64ed370bfc Merge pull request #234213 from NixOS/backport-234031-to-release-23.05
[Backport release-23.05] gitlab: 15.11.5 -> 15.11.6
2023-05-26 21:14:45 +03:00
Weijia Wang
2746b294b4 Merge pull request #234180 from NixOS/backport-230818-to-release-23.05
[Backport release-23.05] vscode-extensions.davidanson.vscode-markdownlint: 0.49.0 -> 0.50.0
2023-05-26 21:11:29 +03:00
Weijia Wang
9262ab08dd Merge pull request #234200 from NixOS/backport-230618-to-release-23.05
[Backport release-23.05] vscode-extensions.elixir-lsp.vscode-elixir-ls: 0.14.5 -> 0.14.7
2023-05-26 21:10:50 +03:00
Weijia Wang
dfac16396a Merge pull request #234229 from NixOS/backport-234161-to-release-23.05
[Backport release-23.05] tailscale: 1.40.1 -> 1.42.0
2023-05-26 21:08:58 +03:00
Alyssa Ross
a3d0197ac9 kernelPatches.make-maple-state-reusable-after-mas_empty_area: drop
No longer used.

(cherry picked from commit 1e73fcbebf)
2023-05-26 17:42:42 +00:00
Weijia Wang
dd8ed4f367 Merge pull request #234197 from NixOS/backport-233668-to-release-23.05
[Backport release-23.05] fastly: 10.0.1 -> 10.1.0
2023-05-26 18:26:33 +03:00
Martin Weinelt
e7c76f733a Merge pull request #234222 from NixOS/backport-234188-to-release-23.05
[Backport release-23.05] linux_6_2: drop
2023-05-26 17:05:26 +02:00
Ashish SHUKLA
857fe6edc9 tailscale: 1.40.1 -> 1.42.0
(cherry picked from commit 532f47f28b)
2023-05-26 14:13:59 +00:00
Weijia Wang
0514bdfa1b Merge pull request #234217 from NixOS/backport-233687-to-release-23.05
[Backport release-23.05] cups-filters: fix CVE-2023-24805
2023-05-26 16:43:32 +03:00
github-actions[bot]
0827d32976 python3Packages.stopit: added setuptools dependency (#234224)
(cherry picked from commit dd6d95536c)
2023-05-26 09:34:58 -04:00
Ryan Lahfa
6b93b785a8 Merge pull request #234218 from NixOS/backport-221861-to-release-23.05
[Backport release-23.05] diffoscope: move unfree dependencies behind a enableUnfree flag
2023-05-26 15:33:00 +02:00
Alyssa Ross
10d5a68270 linux_6_2: drop
EOL

(cherry picked from commit 9fa0644d60)
2023-05-26 13:04:47 +00:00
sternenseemann
119e81ec25 haskellPackages: ghcWithPackages needs buildHaskellPackages scope
ghc and also ghcWithPackages (when taken from a haskell package set) are
a bit weird—in the same way stdenv is: ghc is actually from
buildPackages (pkgsBuildHost) wheras the main package set belongs to
pkgsHostTarget. ghc (and stdenv) is included in the package set due to
its special relation to the set: it is built by that ghc, so constituted
by the compiler in a manner of speaking.

For ghc this works in a straightforward way: It is packaged
independently from the haskell package sets and passed to
make-package-set.nix to create the different sets we expose.
With ghcWithPackages an error crept in, though: Since it needs to
receive the haskellPackages fix point (and thus can't be instantiated
before the package set), it is defined in make-package-set.nix. Here it
was neglected to make sure that it also has the same scope as ghc, i.e.
buildHaskellPackages/buildPackages: Otherwise the shell the wrapper
scripts use to invoke ghc (originally from buildPackages) would be from
pkgsHostTarget—in the cross case, the wrapper scripts would be
executable by neither host nor build platform. We want them to work on
the build platform, though.

Note that this creates a weird mismatch where it is hard to see which of
the alternatives would be more natural: ghcWithPackages and
ghcWithHoogle now use packages from the package set they are a member
of, but have *-ghc and hoogle executables that are executable on the
build platform. This works because ghc originates from buildPackages (as
discussed) and hoogleWithPackages is taken from buildHaskellPackages.
This does imply though that while set.ghcWithHoogle will be executable
on the build platform, set.hoogleWithPackages will be executable on the
host platform—both will use the fix point of set for the package
selector function. This is maybe a confusing asymmetry, but it seems
like a valid use case to cross-compile a hoogle instance. Most
development tools use ghcWithHoogle (or equivalent), so that use case is
covered as well in principle.

(cherry picked from commit 391a9612d8)
2023-05-26 14:59:54 +02:00
Raito Bezarius
f53631beb6 diffoscope: introduce lib.meta.availableOn stdenv.hostPlatform for "plugins"
This makes it easier to add new plugins without having to worry whether they are supported on Darwin, aarch64-*, etc.

As long as they are properly tagged through their `platforms` meta attribute (or `badPlatforms`).

Broken packages needs to be separated to avoid silent breakages which we would not notice.

(cherry picked from commit 43957dc150)
2023-05-26 12:23:48 +00:00
Raito Bezarius
fbeebc72a5 python3Packages.pyxattr: platforms are the ones xattr supports
This ensures the proper propagation for `lib.meta.availableOn` to work.

(cherry picked from commit d99434c90b)
2023-05-26 12:23:48 +00:00
Raito Bezarius
43e777fc54 python3Packages.guestfs: platforms are the ones libguestfs supports
This ensures the proper propagation for `lib.meta.availableOn` to work fine.

(cherry picked from commit 0cde352ef1)
2023-05-26 12:23:48 +00:00
Raito Bezarius
048b207b83 oggvideotools: mark it as broken on Darwin
(cherry picked from commit 4e79d6857e)
2023-05-26 12:23:48 +00:00
Raito Bezarius
4976401a1b diffoscope: fix build on Darwin
Moved packages requiring x86_64-linux, x86_64-darwin into their proper arrays.

(cherry picked from commit 5e8671460b)
2023-05-26 12:23:48 +00:00
Raito Bezarius
7f90e4f465 diffoscope: move unfree dependencies behind a enableUnfree flag
(cherry picked from commit 21332b8fd5)
2023-05-26 12:23:48 +00:00
Weijia Wang
5140520c46 Merge pull request #234171 from NixOS/backport-233974-to-release-23.05
[Backport release-23.05] nc4nix: add patch to fix unstable package updates
2023-05-26 15:21:47 +03:00
Yaya
f5d2a562aa cups-filters: Fix CVE-2023-24805
https://github.com/OpenPrinting/cups-filters/security/advisories/GHSA-gpxc-v2m8-fr3x
(cherry picked from commit bb8168bf78)
2023-05-26 12:21:18 +00:00
Yaya
21bdb31acf gitlab: Fix commit option in update.py
(cherry picked from commit 9df3d57e43)
2023-05-26 12:11:12 +00:00
Yaya
32f83afa1d gitlab: 15.11.5 -> 15.11.6
https://gitlab.com/gitlab-org/gitlab/-/blob/v15.11.6-ee/CHANGELOG.md
(cherry picked from commit ce6aec74d7)
2023-05-26 12:11:11 +00:00
Weijia Wang
ef5edfaa02 Merge pull request #234199 from NixOS/backport-234079-to-release-23.05
[Backport release-23.05] bento4: 1.6.0-639 -> 1.6.0-640
2023-05-26 14:06:05 +03:00
Weijia Wang
471fa6198c Merge pull request #234196 from NixOS/backport-234184-to-release-23.05
[Backport release-23.05] gnushogi: refactor, unbreak on darwin
2023-05-26 14:05:29 +03:00
K900
f4f955bdb1 Merge pull request #234202 from NixOS/backport-234190-to-release-23.05
[Backport release-23.05] qtcreator-qt6: fix build with qt 6.5.1
2023-05-26 14:03:17 +03:00
K900
2b13371ea4 qtcreator-qt6: fix build with qt 6.5.1
(cherry picked from commit f0c4667867)
2023-05-26 11:02:39 +00:00
datafoo
793f18cc0a vscode-extensions.elixir-lsp.vscode-elixir-ls: 0.14.5 -> 0.14.7
(cherry picked from commit ae6b1df643)
2023-05-26 11:01:10 +00:00
Weijia Wang
85105ce9e5 bento4: 1.6.0-639 -> 1.6.0-640
(cherry picked from commit 840551bc69)
2023-05-26 10:46:14 +00:00
Rafael Fernández López
3e04372002 fastly: 10.0.1 -> 10.1.0
(cherry picked from commit 3a5076501f)
2023-05-26 10:38:14 +00:00
Weijia Wang
2119607b04 gnushogi: refactor, unbreak on darwin
(cherry picked from commit 60849da99a)
2023-05-26 10:36:09 +00:00
K900
fed0f6b679 Merge pull request #234189 from NixOS/backport-234010-to-release-23.05
[Backport release-23.05] qt6: 6.5.0 -> 6.5.1
2023-05-26 13:05:36 +03:00
K900
52f7661302 qt6.qtmqtt: 6.5.0 -> 6.5.1, switch to fetchFromGitHub
(cherry picked from commit 028fbeb19c)
2023-05-26 10:03:00 +00:00
K900
0298ddc291 qt6: 6.5.0 -> 6.5.1
(cherry picked from commit 8e0510ff6a)
2023-05-26 10:03:00 +00:00
Bobby Rong
551a52bfdd Merge pull request #234181 from NixOS/backport-229744-to-release-23.05
[Backport release-23.05] vscode-extensions.elixir-lsp.vscode-elixir-ls: 0.13.0 -> 0.14.5
2023-05-26 17:41:49 +08:00
Alexandre Pereira
78a71d663b vscode-extensions.elixir-lsp.vscode-elixir-ls: 0.13.0 -> 0.14.5
(cherry picked from commit 1597d6463e)
2023-05-26 09:26:20 +00:00
datafoo
0613dd2f7f vscode-extensions.davidanson.vscode-markdownlint: 0.49.0 -> 0.50.0
(cherry picked from commit 85003bfef9)
2023-05-26 09:22:01 +00:00
K900
80c96eeab6 Merge pull request #234175 from NixOS/backport-233927-to-release-23.05
[Backport release-23.05] Kernel updates for 2023-05-25
2023-05-26 12:08:12 +03:00
K900
77df69d5d4 linux: drop merged patch
(cherry picked from commit d64a444657)
2023-05-26 09:07:30 +00:00
K900
6d511393be linux_latest-libre: 19204 -> 19299
(cherry picked from commit cbc1ca0345)
2023-05-26 09:07:29 +00:00
K900
4a588b3dde linux-rt_5_10: 5.10.176-rt86 -> 5.10.179-rt87
(cherry picked from commit de66762d8e)
2023-05-26 09:07:29 +00:00
K900
b8237ed368 linux: 6.3.3 -> 6.3.4
(cherry picked from commit fe5ff41bc8)
2023-05-26 09:07:29 +00:00
K900
457cf1d281 linux: 6.1.29 -> 6.1.30
(cherry picked from commit 669156c282)
2023-05-26 09:07:29 +00:00
K900
c2f8c299fa linux: 5.15.112 -> 5.15.113
(cherry picked from commit b1d5878347)
2023-05-26 09:07:29 +00:00
Jonas Heinrich
9b4265a561 nc4nix: add patch to fix unstable package updates
(cherry picked from commit cc1cd3eca7)
2023-05-26 08:51:14 +00:00
Weijia Wang
174545d89c Merge pull request #234168 from NixOS/backport-234121-to-release-23.05
[Backport release-23.05] jackett: 0.21.17 -> 0.21.34
2023-05-26 11:45:02 +03:00
R. Ryantm
c9b70da3ad jackett: 0.21.17 -> 0.21.34
(cherry picked from commit df85fc53a3)
2023-05-26 08:28:46 +00:00
Weijia Wang
7f17766e1f Merge pull request #234158 from NixOS/backport-233730-to-release-23.05
[Backport release-23.05] jackett: 0.20.4199 -> 0.21.17
2023-05-26 11:20:34 +03:00
Weijia Wang
e3fdbb4901 Merge pull request #234160 from NixOS/backport-234083-to-release-23.05
[Backport release-23.05] rippled: mark as insecure
2023-05-26 10:26:10 +03:00
Weijia Wang
223ecb9e8f rippled: mark as insecure
(cherry picked from commit 1ebd98fe8c)
2023-05-26 07:11:41 +00:00
R. Ryantm
efdc2d5bdc jackett: 0.20.4199 -> 0.21.17
(cherry picked from commit 153da9ab8c)
2023-05-26 07:07:58 +00:00
Nick Cao
31ecd7ecbb Merge pull request #234143 from NixOS/backport-230362-to-release-23.05
[Backport release-23.05] cpio: add some key reverse dependencies to `passthru.tests`
2023-05-26 00:52:35 -06:00
Nick Cao
3efe5de302 Merge pull request #234146 from NixOS/backport-233980-to-release-23.05
[Backport release-23.05] vscode-extensions.esbenp.prettier-vscode: 9.12.0 -> 9.13.0
2023-05-26 00:51:56 -06:00
Weijia Wang
c624e77f6e Merge pull request #234148 from NixOS/backport-234094-to-release-23.05
[Backport release-23.05] syncplay: fix `TypeError` on Linux
2023-05-26 09:27:02 +03:00
Michael Hoang
04db6fa39a syncplay: fix TypeError on Linux
(cherry picked from commit 0aa72aa8c2)
2023-05-26 06:10:59 +00:00
datafoo
0ab0470e38 vscode-extensions.esbenp.prettier-vscode: 9.12.0 -> 9.13.0
(cherry picked from commit b7efded285)
2023-05-26 05:56:44 +00:00
Robert Scott
d6abff1574 cpio: add some key reverse dependencies to passthru.tests
(cherry picked from commit 3349cfc4df)
2023-05-26 05:41:45 +00:00
Martin Weinelt
a0135679f4 Merge pull request #234092 from NixOS/backport-233896-to-release-23.05
[Backport release-23.05] frigate: substitute more paths
2023-05-26 01:35:11 +02:00
Martin Weinelt
11dfe1a879 frigate: substitute more paths
Fixes the error image for unreachable cameras, the idle image for the
birdseye view and fix cache path in old clip removal function.

(cherry picked from commit d55cec42d1)
2023-05-25 23:34:52 +00:00
Dennis Gosnell
e55d24212a Merge pull request #233986 from NixOS/backport-233623-to-release-23.05
[Backport release-23.05] hledger_1_29_2: fix dependency toward hledger-lib
2023-05-26 07:49:12 +09:00
Weijia Wang
1fe7da90a3 Merge pull request #234058 from NixOS/backport-233517-to-release-23.05
[Backport release-23.05] nixos/proxmox-image: fix qemu build failure
2023-05-26 01:04:46 +03:00
Alexander Kiselyov
ed71b5b0f7 python3Packages.pymanopt: marked as broken
(cherry picked from commit 17eec7a30d)
2023-05-25 21:40:06 +00:00
github-actions[bot]
ee70acd48c gitlab-runner: 15.11.0 -> 16.0.1 (#234068)
https://gitlab.com/gitlab-org/gitlab-runner/-/blob/v16.0.1/CHANGELOG.md
(cherry picked from commit f31fa5192b)

Co-authored-by: Yaya <mak@nyantec.com>
2023-05-25 23:39:57 +02:00
Weijia Wang
1fdfe31764 Merge pull request #234048 from NixOS/backport-199985-to-release-23.05
[Backport release-23.05] cyrus-sasl-xoauth2: init at 0.2
2023-05-26 00:09:32 +03:00
Weijia Wang
a997a4d9d3 Merge pull request #234051 from NixOS/backport-230786-to-release-23.05
[Backport release-23.05] memento: init at v1.1.0
2023-05-26 00:08:33 +03:00
Martin Weinelt
857d4a5b6c Merge pull request #234050 from NixOS/backport-234023-to-release-23.05
[Backport release-23.05] pynitrokey: 0.4.36 -> 0.4.37
2023-05-25 22:10:32 +02:00
illustris
069de7d3de nixos/proxmox-image: fix qemu build failure
(cherry picked from commit 6a20c13258)
2023-05-25 20:07:47 +00:00
Charlotte Van Petegem
cc6e2950a7 matrix-sdk-crypto-nodejs: reintroduce 0.1.0-beta.3
Use in matrix-appservice-slack, matrix-appservice-discord & mjolnir

(cherry picked from commit 8329281111)
2023-05-25 20:05:25 +00:00
Charlotte Van Petegem
3ec17e7bb1 matrix-hookshot: 3.2.0 -> 4.0.0
https://github.com/matrix-org/matrix-hookshot/releases/tag/4.0.0
(cherry picked from commit 7c8ebabaaa)
2023-05-25 20:05:24 +00:00
Charlotte Van Petegem
bd194bf1c3 matrix-sdk-crypto-nodejs: 0.1.0-beta.3 -> 0.1.0-beta.6
https://github.com/matrix-org/matrix-rust-sdk/releases/tag/matrix-sdk-crypto-nodejs-v0.1.0-beta.4
https://github.com/matrix-org/matrix-rust-sdk/releases/tag/matrix-sdk-crypto-nodejs-v0.1.0-beta.5
https://github.com/matrix-org/matrix-rust-sdk/releases/tag/matrix-sdk-crypto-nodejs-v0.1.0-beta.6
(cherry picked from commit f3e1791f20)
2023-05-25 20:05:24 +00:00
OPNA2608
250cb590d7 mir: Pull patch to fix evdev device misses
(cherry picked from commit 447657c2de)
2023-05-25 19:41:23 +00:00
Weijia Wang
d6b7715a4e Merge pull request #234047 from NixOS/backport-234017-to-release-23.05
[Backport release-23.05] brave: 1.51.114 -> 1.51.118
2023-05-25 22:37:46 +03:00
Weijia Wang
a1fa641087 Merge pull request #234045 from NixOS/backport-232305-to-release-23.05
[Backport release-23.05] libopenmpt: doCheck only if canExecute
2023-05-25 22:37:16 +03:00
Matthieu Coudron
83c738b00b memento: init at v1.1.0
a reader with kanji reading

There is an optional manga-ocr dependency that I would like to support
but in a second time see https://github.com/ripose-jp/Memento/issues/159

(cherry picked from commit 1f008595ba)
2023-05-25 19:33:11 +00:00
Martin Weinelt
04a15cb807 pynitrokey: 0.4.36 -> 0.4.37
https://github.com/Nitrokey/pynitrokey/releases/tag/v0.4.37
(cherry picked from commit 266471ac2d)
2023-05-25 19:32:00 +00:00
Weijia Wang
36ecfe225b Merge pull request #233880 from NixOS/backport-231467-to-release-23.05
[Backport release-23.05] modules/sshd: check for duplicate config keys
2023-05-25 22:24:14 +03:00
Weijia Wang
48c9c85664 Merge pull request #234042 from NixOS/backport-220590-to-release-23.05
[Backport release-23.05] raspberrypi-wireless-firmware: fix broken firmware symlink
2023-05-25 22:23:04 +03:00
Weijia Wang
a28170c0a2 Merge pull request #233827 from NixOS/backport-232837-to-release-23.05
[Backport release-23.05] nixos/synapse: allow omitting `trusted_key_servers[].verify_keys`
2023-05-25 22:22:23 +03:00
Weijia Wang
06aa417df3 Merge pull request #233640 from NixOS/backport-230891-to-release-23.05
[Backport release-23.05] mathcomp: 1.16.0 -> 1.17.0
2023-05-25 22:21:44 +03:00
Weijia Wang
9345dd394a Merge pull request #233496 from NixOS/backport-232637-to-release-23.05
[Backport release-23.05] mattermost-desktop: 5.1.0 -> 5.3.1
2023-05-25 22:21:09 +03:00
Weijia Wang
966dd8adbf Merge pull request #233988 from NixOS/backport-233092-to-release-23.05
[Backport release-23.05] mirakurun: use node 18
2023-05-25 22:19:46 +03:00
Michal Sojka
f432d56d3e cyrus-sasl-xoauth2: init at 0.2
(cherry picked from commit c8faadaf0b)
2023-05-25 19:17:54 +00:00
Sean Buckley
1f69bc18e5 brave: 1.51.114 -> 1.51.118
https://community.brave.com/t/release-channel-1-51-118/487618/1
(cherry picked from commit a20d08b876)
2023-05-25 19:14:03 +00:00
OPNA2608
38c09c6171 libopenmpt: doCheck only if canExecute
And optional -> optionals style for libpulseaudio

(cherry picked from commit 3e2f831360)
2023-05-25 19:11:51 +00:00
Travis Staton
2dd05e9405 raspberrypi-wireless-firmware: fix broken firmware symlink
(cherry picked from commit f15d0ecc32)
2023-05-25 18:26:41 +00:00
Martin Weinelt
e2132c5a86 Merge pull request #234040 from NixOS/backport-233887-to-release-23.05
[Backport release-23.05] esphome: 2023.5.3 -> 2023.5.4
2023-05-25 20:07:35 +02:00
Martin Weinelt
f2d887176a esphome: 2023.5.3 -> 2023.5.4
https://github.com/esphome/esphome/releases/tag/2023.5.4
(cherry picked from commit b236363131)
2023-05-25 18:04:33 +00:00
github-actions[bot]
f50a0e5265 texlive.combine: link TEXMFDIST in $out/share for backward compatibility (#234025)
(cherry picked from commit 3d6e2420a2)
2023-05-25 13:44:50 -04:00
Weijia Wang
b1b92a66d6 Merge pull request #234000 from NixOS/backport-233992-to-release-23.05
[Backport release-23.05] qogir-theme: 2023-02-27 -> 2023-05-24
2023-05-25 17:37:53 +03:00
José Romildo
8739e6886d qogir-theme: 2023-02-27 -> 2023-05-24
(cherry picked from commit 6f31bdba88)
2023-05-25 14:11:08 +00:00
Weijia Wang
a388f4eed2 Merge pull request #233987 from NixOS/backport-233736-to-release-23.05
[Backport release-23.05] gnushogi: fix build
2023-05-25 16:42:03 +03:00
midchildan
1c34225a4e mirakurun: use node 18
Relates to #229910.

(cherry picked from commit c3346f87c4)
2023-05-25 12:48:23 +00:00
Yongun Seong
62df627f4c gnushogi: fix build
Also, mark as broken as darwin due to unsupported linker flags

(cherry picked from commit 410aa6fbc2)
2023-05-25 12:42:56 +00:00
Damien Cassou
425db8ee16 hledger_1_29_2: fix dependency toward hledger-lib
hledger version X always depends on hledger-lib version X.

(cherry picked from commit aa047eb431)
2023-05-25 12:40:59 +00:00
Weijia Wang
4cecc10dce Merge pull request #233985 from NixOS/backport-233823-to-release-23.05
[Backport release-23.05] owncloud-client: mark darwin broken
2023-05-25 15:40:35 +03:00
Miao, ZhiCheng
8e46085919 owncloud-client: mark darwin broken
(cherry picked from commit d4651a7cd1)
2023-05-25 12:39:37 +00:00
Weijia Wang
0087595dcf Merge pull request #233982 from NixOS/backport-233958-to-release-23.05
[Backport release-23.05] python3Packages.lightgbm: fix build on darwin
2023-05-25 15:14:26 +03:00
natsukium
8d3f727a71 python3Packages.lightgbm: add runHook
(cherry picked from commit 936351d941)
2023-05-25 12:01:24 +00:00
natsukium
ad00d58a94 python3Packages.lightgbm: disable gpu support on darwin
(cherry picked from commit 602bfd6a31)
2023-05-25 12:01:24 +00:00
Weijia Wang
41a6a73503 Merge pull request #233964 from NixOS/backport-233950-to-release-23.05
[Backport release-23.05] ferretdb: 1.2.0 -> 1.2.1
2023-05-25 14:59:42 +03:00
Mario Rodas
1ff23dda0d busybox: 1.36.0 -> 1.36.1
(cherry picked from commit 0d3d953f33)
2023-05-25 11:57:57 +00:00
Weijia Wang
bfc5164718 Merge pull request #233971 from NixOS/backport-232391-to-release-23.05
[Backport release-23.05] bluej: 5.0.3 -> 5.1.0
2023-05-25 14:55:31 +03:00
Charlotte Van Petegem
cfb827885f bluej: 5.0.3 -> 5.1.0
https://bluej.org/versions.html
(cherry picked from commit ef8929e62c)
2023-05-25 10:56:41 +00:00
Charlotte Van Petegem
2bc6602211 openjfx17: fix building with webkit
(cherry picked from commit cf69135539)
2023-05-25 10:56:40 +00:00
noisersup
be5b4ac906 ferretdb: 1.2.0 -> 1.2.1
(cherry picked from commit 22224846c4)
2023-05-25 10:10:30 +00:00
github-actions[bot]
6497f21147 ferretdb: 1.1.0 -> 1.2.0 (#233956)
(cherry picked from commit 7ea816fd24)

Co-authored-by: Julien Malka <julien@malka.sh>
2023-05-25 12:09:42 +02:00
Yaya
3e01645c40 gitlab: Reformat update.py with black
(cherry picked from commit 007f087b52)
2023-05-25 10:44:13 +02:00
Yaya
7d9b9174b0 gitlab-container-registry: init at 3.74.0
With version 15.8 GitLab deprecates the use of an "external" container
registry (in our case pkgs.docker-distribution). The external registry
will be replaced with this fork that contains extra functionality that
GitLab uses internally. See
https://gitlab.com/gitlab-org/container-registry/-/blob/master/docs-gitlab/README.md

(cherry picked from commit 4afee948dc)
2023-05-25 10:44:13 +02:00
Nick Cao
74e6f7f561 Merge pull request #233911 from NixOS/backport-233666-to-release-23.05
[Backport release-23.05] wasmtime: 9.0.0 -> 9.0.1
2023-05-24 21:48:10 -06:00
Nick Cao
3f70e5731e Merge pull request #233775 from NixOS/backport-233270-to-release-23.05
[Backport release-23.05] dlib: 19.24 -> 19.24.2
2023-05-24 21:09:41 -06:00
Nick Cao
0eaad3f2a2 Merge pull request #233769 from NixOS/backport-232388-to-release-23.05
[Backport release-23.05] coqPackages.aac-tactics: init at 8.17.0
2023-05-24 21:03:50 -06:00
Rafael Fernández López
1090358cdf wasmtime: 9.0.0 -> 9.0.1
(cherry picked from commit 4907906a88)
2023-05-25 02:55:21 +00:00
Weijia Wang
f699078542 Merge pull request #233879 from kira-bruneau/clonehero-backport
clonehero: update src url
2023-05-25 01:53:24 +03:00
Martin Weinelt
cd8ffddea1 Merge pull request #233810 from NixOS/backport-233676-to-release-23.05
[Backport release-23.05] firefox: 113.0.1 -> 113.0.2 🦊
2023-05-25 00:06:44 +02:00
nyanotech
3c261da1c3 nixos/sshd: detect duplicate config keys
(cherry picked from commit 49bb115b37)
2023-05-24 22:01:46 +00:00
Kira Bruneau
835b889643 clonehero: update src url 2023-05-24 17:52:00 -04:00
Ilan Joselevich
b123ab2d5e Merge pull request #233848 from NixOS/backport-233833-to-release-23.05
[Backport release-23.05] cachix: build using GHC 9.4 to avoid kernel crash
2023-05-24 23:45:05 +03:00
Weijia Wang
d3126ce1e2 Merge pull request #233843 from NixOS/backport-233044-to-release-23.05
[Backport release-23.05] insync: 3.8.5.50499 -> 3.8.6.50504
2023-05-24 23:40:05 +03:00
Domen Kožar
a5f2d4f163 cachix: build using GHC 9.4 to avoid kernel crash
(cherry picked from commit 3a021d1a23)
2023-05-24 16:09:36 +00:00
Miao, ZhiCheng
ed08a674a0 insync: 3.8.5.50499 -> 3.8.6.50504
With fixes:

- Top-level runner is now simply insync, in sync with vendor's desktopfile.
- The /share folder including desktop files are now part of the top package.
- use stdenvNoCC instead of stdenv.

(cherry picked from commit 00253158de)
2023-05-24 15:41:25 +00:00
Martin Weinelt
cc1aaa3622 Merge pull request #233800 from NixOS/backport-233691-to-release-23.05
[Backport release-23.05] home-assistant: 2023.5.3 -> 2023.5.4
2023-05-24 17:11:17 +02:00
IndeedNotJames
9602964d5d nixos/synapse: allow omitting trusted_key_servers[].verify_keys
Synapse does not require the `verify_keys` attr/object to be set.
It made sense back in the day, when federation traffic used to use self-signed certificates. But this is no longer the case.

The previous `types.nullOr` didn't actually allow omitting `verify_keys` because Synapse's config parser is unable to parse that.

Not a breaking change.

Upstream docs: https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html?highlight=verify_keys#trusted_key_servers

(cherry picked from commit d212ec13b8)
2023-05-24 14:28:38 +00:00
Domen Kožar
d6568f8517 Merge pull request #233814 from NixOS/backport-233599-to-release-23.05
[Backport release-23.05] patray: fix segfault
2023-05-24 15:27:24 +01:00
markuskowa
ac1000808e Merge pull request #233766 from NixOS/backport-233709-to-release-23.05
[Backport release-23.05] ucx: 1.14.0 -> 1.14.1
2023-05-24 14:50:18 +02:00
Ilan Joselevich
0b078833a6 Merge pull request #233816 from NixOS/backport-233497-to-release-23.05
[Backport release-23.05] mattermost: 7.8.4 -> 7.8.5
2023-05-24 15:21:39 +03:00
Thomas Gerbet
e364809951 mattermost: 7.8.4 -> 7.8.5
Fixes MMSA-2023-00183, MMSA-2023-00152, MMSA-2023-00171, MMSA-2023-00177, MMSA-2023-00172, MMSA-2023-00164,
MMSA-2023-00163 and MMSA-2023-00161.

Changelog:
https://docs.mattermost.com/install/self-managed-changelog.html#release-v7-8-extended-support-release
(cherry picked from commit 5be7979101)
2023-05-24 12:19:48 +00:00
Domen Kožar
4261dbd169 patray: fix segfault
(cherry picked from commit 8fbf4aa9be)
2023-05-24 12:14:12 +00:00
Martin Weinelt
8d8853e273 firefox-bin-unwrapped: 113.0.1 -> 113.0.2
https://www.mozilla.org/en-US/firefox/113.0.2/releasenotes/
(cherry picked from commit 875dff11a4)
2023-05-24 11:50:45 +00:00
Martin Weinelt
d5a516fb3e firefox-unwrapped: 113.0.1 -> 113.0.2
https://www.mozilla.org/en-US/firefox/113.0.2/releasenotes/
(cherry picked from commit ae0526b224)
2023-05-24 11:50:45 +00:00
Martin Weinelt
99f643e1e5 Merge pull request #233802 from NixOS/backport-233683-to-release-23.05
[Backport release-23.05] python312: 3.12.0a7 -> 3.12.0b1
2023-05-24 13:18:06 +02:00
Martin Weinelt
b024fb946f python312: 3.12.0a7 -> 3.12.0b1
https://docs.python.org/3.12/whatsnew/changelog.html#python-3-12-0b1
(cherry picked from commit 3f736faef0)
2023-05-24 11:16:13 +00:00
Martin Weinelt
ede5abe8a8 python310Packages.homeassistant-stubs: 2023.5.3 -> 2023.5.4
https://github.com/KapJI/homeassistant-stubs/releases/tag/2023.5.4
(cherry picked from commit 94495fa63c)
2023-05-24 11:15:44 +00:00
Martin Weinelt
29a1f5da8a home-assistant: 2023.5.3 -> 2023.5.4
https://github.com/home-assistant/core/releases/tag/2023.5.4
(cherry picked from commit 25fa902f9e)
2023-05-24 11:15:44 +00:00
Martin Weinelt
60689d8e90 python310Packages.zwave-js-server-python: 0.48.0 -> 0.48.1
Diff: https://github.com/home-assistant-libs/zwave-js-server-python/compare/refs/tags/0.48.0...0.48.1

Changelog: https://github.com/home-assistant-libs/zwave-js-server-python/releases/tag/0.48.1
(cherry picked from commit 7f188bac26)
2023-05-24 11:15:44 +00:00
Martin Weinelt
4652001fbf python310Packages.yalexs: 1.3.3 -> 1.5.1
Diff: https://github.com/bdraco/yalexs/compare/refs/tags/v1.3.3...v1.5.1

Changelog: https://github.com/bdraco/yalexs/releases/tag/v1.5.1
(cherry picked from commit bd163c9308)
2023-05-24 11:15:44 +00:00
Martin Weinelt
27b772ec41 python310Packages.python-matter-server: 3.3.1 -> 3.4.1
https://github.com/home-assistant-libs/python-matter-server/releases/tag/3.4.0
https://github.com/home-assistant-libs/python-matter-server/releases/tag/3.4.1
(cherry picked from commit f948ec3cde)
2023-05-24 11:15:44 +00:00
Martin Weinelt
77eef13fa1 python310Packages.home-assistant-chip-clusters: 2023.4.1 -> 2023.5.1
https://github.com/home-assistant-libs/chip-wheels/releases/tag/2023.5.0
https://github.com/home-assistant-libs/chip-wheels/releases/tag/2023.5.1
https://github.com/home-assistant-libs/chip-wheels/releases/tag/2023.5.2
(cherry picked from commit 95cad7b006)
2023-05-24 11:15:44 +00:00
Martin Weinelt
27d8b3f96c python310Packages.home-assistant-chip-core: 2023.4.1 -> 2023.5.2
https://github.com/home-assistant-libs/chip-wheels/releases/tag/2023.5.0
https://github.com/home-assistant-libs/chip-wheels/releases/tag/2023.5.1
https://github.com/home-assistant-libs/chip-wheels/releases/tag/2023.5.2
(cherry picked from commit fc87002a50)
2023-05-24 11:15:43 +00:00
Martin Weinelt
4427ab6984 python310Packages.async-upnp-client: 0.33.1 -> 0.33.2
Diff: https://github.com/StevenLooman/async_upnp_client/compare/refs/tags/0.33.1...0.33.2

Changelog: https://github.com/StevenLooman/async_upnp_client/blob/0.33.2/CHANGES.rst
(cherry picked from commit 399b65d5a9)
2023-05-24 11:15:43 +00:00
Fabian Affolter
12f0d28a0d python311Packages.aionotion: 2023.05.4 -> 2023.05.5
(cherry picked from commit 9918bf2932)
2023-05-24 11:15:43 +00:00
Weijia Wang
04aaf85116 Merge pull request #233774 from NixOS/backport-233728-to-release-23.05
[Backport release-23.05] nixpkgs-review: 2.9.1 -> 2.9.2
2023-05-24 13:08:09 +03:00
piegames
14d705891f Merge pull request #233689
[23.05] gnomeExtensions.easyeffects-preset-selector: patch EasyEffects schema source
2023-05-24 11:20:29 +02:00
Maximilian Bosch
3af25a499b python3*.pkgs.dlib: remove patches that are included in the latest release
(cherry picked from commit c93171d2f4)
2023-05-24 09:04:51 +00:00
R. Ryantm
cbafec613f dlib: 19.24 -> 19.24.2
(cherry picked from commit 3dc228ff81)
2023-05-24 09:04:50 +00:00
Maximilian Bosch
180628d1ff Merge pull request #233652 from NixOS/backport-233635-to-release-23.05
[Backport release-23.05] matrix-synapse: 1.83.0 -> 1.84.0
2023-05-24 11:04:24 +02:00
figsoda
d062649518 nixpkgs-review: 2.9.1 -> 2.9.2
Diff: https://github.com/Mic92/nixpkgs-review/compare/2.9.1...2.9.2

Changelog: https://github.com/Mic92/nixpkgs-review/releases/tag/2.9.2
(cherry picked from commit 6c0ea0caba)
2023-05-24 09:04:05 +00:00
Weijia Wang
6f45b048f7 Merge pull request #233773 from NixOS/backport-233743-to-release-23.05
[Backport release-23.05] ocamlPackages: small fixes
2023-05-24 12:03:09 +03:00
Vincent Laporte
9af725960d ocamlPackages.lsp: add missing input
(cherry picked from commit c26ad319b3)
2023-05-24 08:39:19 +00:00
Vincent Laporte
50c2d6286d ocamlPackages.dot-merlin-reader: add missing input
(cherry picked from commit 6c31436baa)
2023-05-24 08:39:18 +00:00
Vincent Laporte
8a2ccaac6b ocamlPackages.polynomial: disable for OCaml < 4.08
(cherry picked from commit 9d9fe9971d)
2023-05-24 08:39:18 +00:00
Vincent Laporte
8580a5b082 coqPackages.aac-tactics: init at 8.17.0
(cherry picked from commit a749e72830)
2023-05-24 08:19:23 +00:00
R. Ryantm
18cec7ec49 ucx: 1.14.0 -> 1.14.1
(cherry picked from commit 6383528945)
2023-05-24 07:54:50 +00:00
Nick Cao
1ecb1e3999 Merge pull request #233667 from NixOS/backport-231838-to-release-23.05
[Backport release-23.05] vulkan-caps-viewer: 3.29 -> 3.30
2023-05-23 20:16:06 -06:00
Nick Cao
2a71badc26 Merge pull request #233681 from NixOS/backport-233663-to-release-23.05
[Backport release-23.05] etcd_3_5: 3.5.7 -> 3.5.9
2023-05-23 20:11:30 -06:00
4JX
9eb7c64209 gnomeExtensions.easyeffects-preset-selector: patch EasyEffects schema source
(cherry picked from commit 1789d59062)
2023-05-24 00:00:16 +02:00
Ben Siraphob
2d23b78c52 Merge pull request #233685 from NixOS/backport-233684-to-release-23.05 2023-05-23 17:50:56 -04:00
Ben Siraphob
9278039db1 vyper: 0.3.6 -> 0.3.8
(cherry picked from commit a13dfb7e5f)
2023-05-23 21:49:54 +00:00
Thomas Gerbet
41d0491b13 etcd_3_5: 3.5.7 -> 3.5.9
Fixes CVE-2023-32082.

Changelog:
https://github.com/etcd-io/etcd/releases/tag/v3.5.9
https://github.com/etcd-io/etcd/releases/tag/v3.5.8
(cherry picked from commit 84db3e5c95)
2023-05-23 21:26:02 +00:00
Weijia Wang
cb3978d9a3 Merge pull request #233665 from NixOS/backport-233622-to-release-23.05
[Backport release-23.05] fira: Fix permissions of installed files
2023-05-24 00:07:57 +03:00
Weijia Wang
f6a7c6e773 Merge pull request #233656 from NixOS/backport-233461-to-release-23.05
[Backport release-23.05] androidenv: rename android sdk package name
2023-05-24 00:07:15 +03:00
Martin Weinelt
ca24dcc740 Merge pull request #233673 from NixOS/backport-233490-to-release-23.05
[Backport release-23.05] firefox-{devedition,beta}{,-bin}-unwrapped: 114.0b6 -> 114.0b7
2023-05-23 22:30:22 +02:00
jopejoe1
a9310e60df firefox-devedition-unwrapped: 114.0b6 -> 114.0b7
(cherry picked from commit a68f2e67c7)
2023-05-23 20:30:01 +00:00
jopejoe1
631d992dc2 firefox-beta-unwrapped: 114.0b6 -> 114.0b7
(cherry picked from commit ac7ec4c46a)
2023-05-23 20:30:01 +00:00
jopejoe1
001eb8b632 firefox-devedition-bin-unwrapped: 114.0b6 -> 114.0b7
(cherry picked from commit 0d5bb3e360)
2023-05-23 20:30:01 +00:00
jopejoe1
86e3f67337 firefox-beta-bin-unwrapped: 114.0b6 -> 114.0b7
(cherry picked from commit 5e46fe26bf)
2023-05-23 20:30:01 +00:00
PedroHLC ☭
dfc1683fe9 vulkan-caps-viewer: replace withX11 with x11Support to match no-x-libs
(cherry picked from commit e3a53e1c97)
2023-05-23 19:51:25 +00:00
PedroHLC ☭
b0459b97a5 vulkan-caps-viewer: 3.29 -> 3.30
(cherry picked from commit 0015306203)
2023-05-23 19:51:25 +00:00
Damien Cassou
5f224f1ecc fira: Fix permissions of installed files
No need for the executable permissions on fonts.

(cherry picked from commit af0a2a03a0)
2023-05-23 19:19:27 +00:00
Hadi
5ca6cfb7f9 androidenv: rename android sdk package name
(cherry picked from commit 40df7d3f3b)
2023-05-23 17:52:11 +00:00
Sumner Evans
84f2456559 matrix-synapse: 1.83.0 -> 1.84.0
Signed-off-by: Sumner Evans <me@sumnerevans.com>
(cherry picked from commit a1e84c454d)
2023-05-23 17:22:34 +00:00
figsoda
78334a1869 Merge pull request #233633 from NixOS/backport-230730-to-release-23.05
[Backport release-23.05] Fix some JUCE packages on Darwin
2023-05-23 12:40:12 -04:00
Pierre Roux
36e5814189 Mathcomp 1.16.0 -> 1.17.0
(cherry picked from commit ed1f52d4c2)
2023-05-23 15:52:53 +00:00
Pierre Roux
9db4a3ce91 coqPackages.coqeal: 1.1.1 -> 1.1.3
(cherry picked from commit 52c9e5c8f9)
2023-05-23 15:52:53 +00:00
Pierre Roux
cc670234fe coqPackages.multinomials: 1.5.6 -> 1.6.0
(cherry picked from commit 7a3bc4f18f)
2023-05-23 15:52:52 +00:00
Pierre Roux
34e8da526f coqPackages.coquelicot: 3.3.0 -> 3.3.1
(cherry picked from commit e5264e45b7)
2023-05-23 15:52:52 +00:00
OPNA2608
dbedb3ca64 bespokesynth: Fix build on Darwin
(cherry picked from commit 5b90562718)
2023-05-23 15:37:11 +00:00
OPNA2608
2005b4cb36 dexed: Fix build on Darwin
(cherry picked from commit a6bb41168f)
2023-05-23 15:37:11 +00:00
OPNA2608
ad13c7d4b2 fire: Fix build on Darwin
(cherry picked from commit fd589ed13c)
2023-05-23 15:37:11 +00:00
Ryan Lahfa
daa7efafc2 Merge pull request #233631 from NixOS/backport-233518-to-release-23.05
[Backport release-23.05] nixos/iso-image: enable BIOS boot by default if possible
2023-05-23 17:09:26 +02:00
Ivan Trubach
e9541f5ef8 nixos/iso-image: enable BIOS boot by default if possible
The change introduced in commit e5b072eca1
breaks backwards compatibility for some users, see
e5b072eca1 (commitcomment-113775008)
https://github.com/NixOS/nixpkgs/pull/219351#discussion_r1139773448

This change updates the implementation to enable BIOS boot if possible
for the build and host platforms, and also assert that BIOS boot is not
enabled for non-x86 host platforms.

(cherry picked from commit c68a5bb85a)
2023-05-23 15:05:57 +00:00
Euan Kemp
211887ae92 k3s: drop 1.24 & 1.25 for 23.05
In-line with the policy described
[here](30b82a186b/pkgs/applications/networking/cluster/k3s/README.md (versions-in-nixos-releases))
(xref #224483), drop versions of k3s that will not be supported for the
full duration of the NixOS release.

Since 22.11 has k3s 1.25, that means we must have k3s 1.26 at least.

Both k3s 1.24 and 1.25 will lose support before the 23.11 nixos release
goes out of support, so we should drop them. Respectively, 1.24 loses
support in July 2023, and 1.25 loses support in October 2023. NixOS is
supported through December 2023.
2023-05-23 23:38:21 +09:00
Vladimír Čunát
4ff81fbbb2 darwin-tested: drop wireshark.x86_64-darwin
The package hasn't succeded since January,
so it's surely not suitable to be a channel blocker (anymore)
https://hydra.nixos.org/job/nixpkgs/trunk/wireshark.x86_64-darwin
2023-05-23 16:02:31 +02:00
Robert Hensing
4a2c772aa4 Merge pull request #233611 from NixOS/backport-233397-to-release-23.05
[Backport release-23.05] nixos/hercules-ci-agent: sync module with upstream
2023-05-23 15:04:15 +02:00
Ilan Joselevich
6bcc5c7313 hercules-ci-agent: replace help test with a better version test
(cherry picked from commit b419a39f1f)
2023-05-23 12:18:19 +00:00
Robert Hensing
db62d67165 hercules-ci-agent: tests: Only build NixOS config for Linux
(cherry picked from commit 3746d88d79)
2023-05-23 12:18:19 +00:00
Robert Hensing
e259aab293 hercules-ci-agent: Add ssh and use makeBinaryWrapper
... like upstream.

(cherry picked from commit 38fd1bad36)
2023-05-23 12:18:19 +00:00
Robert Hensing
8f7ea8122a hercules-ci-agent: Improve passthru tests
(cherry picked from commit 0d405840d3)
2023-05-23 12:18:19 +00:00
Ilan Joselevich
8d7f712c6d nixos/hercules-ci-agent: sync module with upstream
(cherry picked from commit ebafd551d7)
2023-05-23 12:18:19 +00:00
Nick Cao
a2d9192c79 Merge pull request #233590 from NixOS/backport-232214-to-release-23.05
[Backport release-23.05] coqPackages.CoLoR: 1.8.2 → 1.8.3
2023-05-23 05:37:53 -06:00
Weijia Wang
7503df039b Merge pull request #233529 from NixOS/backport-233521-to-release-23.05
[Backport release-23.05] cargo: mark broken for cross compilation to x86
2023-05-23 13:56:10 +03:00
Weijia Wang
88b0a6677a Merge pull request #233582 from NixOS/backport-233567-to-release-23.05
[Backport release-23.05] xrdp: 0.9.22 -> 0.9.22.1
2023-05-23 13:46:17 +03:00
Vincent Laporte
b2dc3d2ff7 coqPackages.CoLoR: 1.8.2 → 1.8.3
(cherry picked from commit 2060195c2d)
2023-05-23 10:30:07 +00:00
github-actions[bot]
60eb8e5a16 helix: prevent grammars referencing sources (#233588)
(cherry picked from commit 377773de0f)

Co-authored-by: Yureka <yuka@yuka.dev>
2023-05-23 12:09:55 +02:00
Weijia Wang
d69ca6f2a5 Merge pull request #233572 from NixOS/backport-233405-to-release-23.05
[Backport release-23.05] python3Packages.skorch: 0.12.1 -> 0.13.0
2023-05-23 12:54:53 +03:00
Charlotte Van Petegem
bd49ad26dc xrdp: 0.9.22 -> 0.9.22.1
https://github.com/neutrinolabs/xrdp/releases/tag/v0.9.22.1
(cherry picked from commit 46b5120d5e)
2023-05-23 09:50:42 +00:00
Nick Cao
77a0718670 Merge pull request #233561 from NixOS/backport-233539-to-release-23.05
[Backport release-23.05] discord-canary: 0.0.151 -> 0.0.154
2023-05-23 03:49:38 -06:00
natsukium
29b02e8a1a python3Packages.skorch: 0.12.1 -> 0.13.0
Changelog: https://github.com/skorch-dev/skorch/blob/master/CHANGES.md
(cherry picked from commit 7fc30298e4)
2023-05-23 08:36:07 +00:00
Robert Hensing
e860af4f68 Merge pull request #233560 from NixOS/backport-224834-to-release-23.05
[Backport release-23.05] Improvements to pathType, pathIsDirectory and pathIsRegularFile
2023-05-23 09:35:16 +02:00
R. Ryantm
dc190db41e discord-canary: 0.0.151 -> 0.0.154
(cherry picked from commit 3869deb3ab)
2023-05-23 07:33:39 +00:00
Silvan Mosberger
b183dcf768 lib/filesystem.nix: Update top comment
Co-Authored-By: Robert Hensing <robert@roberthensing.nl>
(cherry picked from commit 378bf1a619)
2023-05-23 07:32:40 +00:00
Silvan Mosberger
7e50a2399e lib.filesystem.pathType: Use new builtins.readFileType if available
Co-Authored-By: Robert Hensing <robert@roberthensing.nl>
(cherry picked from commit fcaa2b1097)
2023-05-23 07:32:40 +00:00
Silvan Mosberger
c8b6900c66 lib.filesystem.pathType and co.: Improve documentation
(cherry picked from commit 84a3d633d6)
2023-05-23 07:32:39 +00:00
Silvan Mosberger
8300aaab9e lib.filesystem.pathType: Improve error for non-existent paths
Previously it would fail with

  error: attribute 'nonexistent' missing

         at nixpkgs/lib/filesystem.nix:29:10:

             28|     if dirOf path == path then "directory"
             29|     else (readDir (dirOf path)).${baseNameOf path};
               |          ^
             30|

(cherry picked from commit d064d972f0)
2023-05-23 07:32:39 +00:00
Silvan Mosberger
d73b4bfb70 lib.filesystem.pathType: Fix for filesystem root argument
Previously this function couldn't handle / being passed, it would throw
an error:

error: attribute '' missing

       at nixpkgs/lib/filesystem.nix:24:20:

           23|   */
           24|   pathType = path: (readDir (dirOf path)).${baseNameOf path};
             |                    ^
           25|

Consequently this also fixes the
lib.filesystem.{pathIsDirectory,pathIsRegularFile} functions.

(cherry picked from commit bb6eab0bdb)
2023-05-23 07:32:39 +00:00
Silvan Mosberger
7043f47103 lib.filesystem: Minor refactor
Co-Authored-By: Robert Hensing <robert@roberthensing.nl>
(cherry picked from commit 5346636c20)
2023-05-23 07:32:39 +00:00
Silvan Mosberger
157663393d lib.filesystem.pathType and co.: Add tests
Co-Authored-By: Robert Hensing <robert@roberthensing.nl>
(cherry picked from commit a1dedc908d)
2023-05-23 07:32:39 +00:00
Silvan Mosberger
0518ad2c6b lib.sources.pathType and co.: Move to lib.filesystem
These functions only work with the filesystem, they don't import
anything as sources

(cherry picked from commit c701a4dd29)
2023-05-23 07:32:39 +00:00
Pierre Bourdon
1e78d6d6e0 Merge pull request #233547 from NixOS/backport-232308-to-release-23.05
[Backport release-23.05]  jetbrains: 2023.1.1 → 2023.1.2
2023-05-23 07:18:46 +02:00
Fabián Heredia Montiel
2280d15d30 jetbrains.jdk: 17.0.6-b829.5 → 17.0.6-b829.9
(cherry picked from commit 009626acbc)
2023-05-23 05:09:30 +00:00
Fabián Heredia Montiel
bb48e97e74 jetbrains: 2023.1.1 → 2023.1.2
(cherry picked from commit 48aecaac35)
2023-05-23 05:09:30 +00:00
Nick Cao
f61ba66c1f Merge pull request #233526 from NixOS/backport-233361-to-release-23.05
[Backport release-23.05] coqPackages.coqprime: 8.15 → 8.17
2023-05-22 21:26:03 -06:00
Alyssa Ross
f2a02c5e98 cargo: mark broken for cross compilation to x86
(cherry picked from commit 467c7ca038)
2023-05-23 02:41:07 +00:00
Vincent Laporte
10b3b1a274 coqPackages.coqprime: 8.15 → 8.17
(cherry picked from commit a68600dc25)
2023-05-23 02:28:08 +00:00
Nick Cao
23b868ac75 Merge pull request #233495 from NixOS/backport-231876-to-release-23.05
[Backport release-23.05] opentsdb: add patches for CVE-2023-25826, CVE-2023-25827 & more
2023-05-22 20:13:03 -06:00
Nick Cao
695508d5c9 Merge pull request #233510 from NixOS/backport-233443-to-release-23.05
[Backport release-23.05] wasmtime: 8.0.1 -> 9.0.0
2023-05-22 20:11:43 -06:00
Martin Weinelt
cb9cb51a63 Merge pull request #233522 from NixOS/backport-233512-to-release-23.05
[Backport release-23.05] esphome: 2023.5.2 -> 2023.5.3
2023-05-23 03:56:38 +02:00
Martin Weinelt
953775aa72 esphome: 2023.5.2 -> 2023.5.3
https://github.com/esphome/esphome/releases/tag/2023.5.3
(cherry picked from commit 257ac0ddd4)
2023-05-23 01:53:03 +00:00
Thomas Gerbet
41cec0a1a4 wasmtime: 8.0.1 -> 9.0.0
https://github.com/bytecodealliance/wasmtime/blob/v9.0.0/RELEASES.md
(cherry picked from commit 4a01ba47ee)
2023-05-22 22:24:43 +00:00
Rafael Fernández López
24b7752252 wamr: init at 1.2.2
(cherry picked from commit cc16bceffe)
2023-05-22 21:43:41 +00:00
Martin Weinelt
99e8d57c5f Merge pull request #233484 from NixOS/backport-229953-to-release-23.05
[Backport release-23.05] navidrome: Use npmConfig and fetchNpmDeps
2023-05-22 23:26:10 +02:00
Ilan Joselevich
4ac8d95088 Merge pull request #233499 from NixOS/backport-233237-to-release-23.05
[Backport release-23.05] funzzy: init at 0.6.0
2023-05-22 23:55:43 +03:00
figsoda
f82ab134e9 funzzy: init at 0.6.0
https://github.com/cristianoliveira/funzzy
(cherry picked from commit 09e292fba6)
2023-05-22 20:55:16 +00:00
Thomas Gerbet
58fa829fed mattermost-desktop: 5.1.0 -> 5.3.1
Fixes CVE-2023-2000 / MMSA-2023-00142.

https://docs.mattermost.com/install/desktop-app-changelog.html
(cherry picked from commit ae1ce53f74)
2023-05-22 20:46:47 +00:00
Robert Scott
ce6d6ed974 opentsdb: bump dependencies covering various vulnerabilities
(cherry picked from commit f6db29a5d3)
2023-05-22 20:45:55 +00:00
Robert Scott
d4399a0f2c opentsdb: add patches for CVE-2023-25826 & CVE-2023-25827
(cherry picked from commit 6ed215b81a)
2023-05-22 20:45:55 +00:00
Robert Scott
3a4e027db8 opentsdb: add meta.sourceProvenance
(cherry picked from commit 027a84d6e3)
2023-05-22 20:45:55 +00:00
Martin Weinelt
9a0a5e68bc navidrome: Use npmConfigHook and fetchNpmDeps for the UI bits
Simplifies the moving parts we need to keep around by a lot.

This also obsoletes the custom update script, because nix-update can
handle all hashes we use in this package.

(cherry picked from commit 8dd18f6987)
2023-05-22 20:13:37 +00:00
Ryan Lahfa
8966c43feb 23.05 beta release 2023-05-22 21:05:44 +02:00
1999 changed files with 40650 additions and 73577 deletions

7
.github/CODEOWNERS vendored
View File

@@ -305,10 +305,3 @@ pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt
/pkgs/build-support/ocaml @romildo @ulrikstrid
/pkgs/development/compilers/ocaml @romildo @ulrikstrid
/pkgs/development/ocaml-modules @romildo @ulrikstrid
# ZFS
pkgs/os-specific/linux/zfs @raitobezarius
nixos/lib/make-single-disk-zfs-image.nix @raitobezarius
nixos/lib/make-multi-disk-zfs-image.nix @raitobezarius
nixos/modules/tasks/filesystems/zfs.nix @raitobezarius
nixos/tests/zfs.nix @raitobezarius

View File

@@ -19,7 +19,7 @@ jobs:
# we don't limit this action to only NixOS repo since the checks are cheap and useful developer feedback
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v21
- uses: cachix/install-nix-action@v20
- uses: cachix/cachix-action@v12
with:
# This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.

View File

@@ -16,7 +16,7 @@ jobs:
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- uses: cachix/install-nix-action@v21
- uses: cachix/install-nix-action@v20
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true

View File

@@ -28,7 +28,7 @@ jobs:
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- uses: cachix/install-nix-action@v21
- uses: cachix/install-nix-action@v20
with:
# nixpkgs commit is pinned so that it doesn't break
# editorconfig-checker 2.4.0

View File

@@ -18,7 +18,7 @@ jobs:
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- uses: cachix/install-nix-action@v21
- uses: cachix/install-nix-action@v20
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true

View File

@@ -19,7 +19,7 @@ jobs:
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- uses: cachix/install-nix-action@v21
- uses: cachix/install-nix-action@v20
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true

View File

@@ -18,7 +18,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v21
- uses: cachix/install-nix-action@v20
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true

View File

@@ -38,10 +38,6 @@ jobs:
into: staging-next-22.11
- from: staging-next-22.11
into: staging-22.11
- from: release-23.05
into: staging-next-23.05
- from: staging-next-23.05
into: staging-23.05
name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
steps:
- uses: actions/checkout@v3

View File

@@ -17,7 +17,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v21
- uses: cachix/install-nix-action@v20
with:
nix_path: nixpkgs=channel:nixpkgs-unstable
- name: setup

View File

@@ -1 +1 @@
23.11
23.05

View File

@@ -8,7 +8,7 @@ A package set is available for each CUDA version, so for example
`cudaPackages_11_6`. Within each set is a matching version of the above listed
packages. Additionally, other versions of the packages that are packaged and
compatible are available as well. For example, there can be a
`cudaPackages.cudnn_8_3` package.
`cudaPackages.cudnn_8_3_2` package.
To use one or more CUDA packages in an expression, give the expression a `cudaPackages` parameter, and in case CUDA is optional
```nix
@@ -28,7 +28,7 @@ set.
```nix
mypkg = let
cudaPackages = cudaPackages_11_5.overrideScope' (final: prev: {
cudnn = prev.cudnn_8_3;
cudnn = prev.cudnn_8_3_2;
}});
in callPackage { inherit cudaPackages; };
```

View File

@@ -307,12 +307,12 @@ $ nix-env --install --attr haskellPackages.dhall-nixpkgs
$ nix-env --install --attr nix-prefetch-git # Used by dhall-to-nixpkgs
$ dhall-to-nixpkgs github https://github.com/Gabriella439/dhall-semver.git
$ dhall-to-nixpkgs github https://github.com/Gabriel439/dhall-semver.git
{ buildDhallGitHubPackage, Prelude }:
buildDhallGitHubPackage {
name = "dhall-semver";
githubBase = "github.com";
owner = "Gabriella439";
owner = "Gabriel439";
repo = "dhall-semver";
rev = "2d44ae605302ce5dc6c657a1216887fbb96392a4";
fetchSubmodules = false;

View File

@@ -19,7 +19,7 @@ In the following is an example expression using `buildGoModule`, the following a
To avoid updating this field when dependencies change, run `go mod vendor` in your source repo and set `vendorHash = null;`
To obtain the actual hash, set `vendorHash = lib.fakeSha256;` and run the build ([more details here](#sec-source-hashes)).
- `proxyVendor`: Fetches (go mod download) and proxies the vendor directory. This is useful if your code depends on c code and go mod tidy does not include the needed sources to build or if any dependency has case-insensitive conflicts which will produce platform-dependent `vendorHash` checksums.
- `proxyVendor`: Fetches (go mod download) and proxies the vendor directory. This is useful if your code depends on c code and go mod tidy does not include the needed sources to build or if any dependency has case-insensitive conflicts which will produce platform dependant `vendorHash` checksums.
- `modPostBuild`: Shell commands to run after the build of the go-modules executes `go mod vendor`, and before calculating fixed output derivation's `vendorHash` (or `vendorSha256`). Note that if you change this attribute, you need to update `vendorHash` (or `vendorSha256`) attribute.
```nix

View File

@@ -276,15 +276,6 @@ Defaults to `true`.
: Whether to generate an index for interactive navigation of the HTML documentation.
Defaults to `true` if supported.
`doInstallIntermediates`
: Whether to install intermediate build products (files written to `dist/build`
by GHC during the build process). With `enableSeparateIntermediatesOutput`,
these files are instead installed to [a separate `intermediates`
output.][multiple-outputs] The output can then be passed into a future build of
the same package with the `previousIntermediates` argument to support
incremental builds. See [“Incremental builds”](#haskell-incremental-builds) for
more information. Defaults to `false`.
`enableLibraryProfiling`
: Whether to enable [profiling][profiling] for libraries contained in the
package. Enabled by default if supported.
@@ -380,12 +371,6 @@ Defaults to `false`.
: Whether to install documentation to a separate `doc` output.
Is automatically enabled if `doHaddock` is `true`.
`enableSeparateIntermediatesOutput`
: When `doInstallIntermediates` is true, whether to install intermediate build
products to a separate `intermediates` output. See [“Incremental
builds”](#haskell-incremental-builds) for more information. Defaults to
`false`.
`allowInconsistentDependencies`
: If enabled, allow multiple versions of the same Haskell package in the
dependency tree at configure time. Often in such a situation compilation would
@@ -396,11 +381,6 @@ later fail because of type mismatches. Defaults to `false`.
when loading the library in the REPL, but requires extra build time and
disk space. Defaults to `false`.
`previousIntermediates`
: If non-null, intermediate build artifacts are copied from this input to
`dist/build` before performing compiling. See [“Incremental
builds”](#haskell-incremental-builds) for more information. Defaults to `null`.
`buildTarget`
: Name of the executable or library to build and install.
If unset, all available targets are built and installed.
@@ -516,54 +496,6 @@ the [Meta-attributes section](#chap-meta) for their documentation.
* `broken`
* `hydraPlatforms`
### Incremental builds {#haskell-incremental-builds}
`haskellPackages.mkDerivation` supports incremental builds for GHC 9.4 and
newer with the `doInstallIntermediates`, `enableSeparateIntermediatesOutput`,
and `previousIntermediates` arguments.
The basic idea is to first perform a full build of the package in question,
save its intermediate build products for later, and then copy those build
products into the build directory of an incremental build performed later.
Then, GHC will use those build artifacts to avoid recompiling unchanged
modules.
For more detail on how to store and use incremental build products, see
[Gabriella Gonzalez blog post “Nixpkgs support for incremental Haskell
builds”.][incremental-builds] motivation behind this feature.
An incremental build for [the `turtle` package][turtle] can be performed like
so:
```nix
let
pkgs = import <nixpkgs> {};
inherit (pkgs) haskell;
inherit (haskell.lib.compose) overrideCabal;
# Incremental builds work with GHC >=9.4.
turtle = haskell.packages.ghc944.turtle;
# This will do a full build of `turtle`, while writing the intermediate build products
# (compiled modules, etc.) to the `intermediates` output.
turtle-full-build-with-incremental-output = overrideCabal (drv: {
doInstallIntermediates = true;
enableSeparateIntermediatesOutput = true;
}) turtle;
# This will do an incremental build of `turtle` by copying the previously
# compiled modules and intermediate build products into the source tree
# before running the build.
#
# GHC will then naturally pick up and reuse these products, making this build
# complete much more quickly than the previous one.
turtle-incremental-build = overrideCabal (drv: {
previousIntermediates = turtle-full-build-with-incremental-output.intermediates;
}) turtle;
in
turtle-incremental-build
```
## Development environments {#haskell-development-environments}
In addition to building and installing Haskell software, nixpkgs can also
@@ -1151,11 +1083,8 @@ on the issue linked above.
[haskell.nix]: https://input-output-hk.github.io/haskell.nix/index.html
[HLS user guide]: https://haskell-language-server.readthedocs.io/en/latest/configuration.html#configuring-your-editor
[hoogle]: https://wiki.haskell.org/Hoogle
[incremental-builds]: https://www.haskellforall.com/2022/12/nixpkgs-support-for-incremental-haskell.html
[jailbreak-cabal]: https://github.com/NixOS/jailbreak-cabal/
[multiple-outputs]: https://nixos.org/manual/nixpkgs/stable/#chap-multiple-output
[optparse-applicative-completions]: https://github.com/pcapriotti/optparse-applicative/blob/7726b63796aa5d0df82e926d467f039b78ca09e2/README.md#bash-zsh-and-fish-completions
[profiling-detail]: https://cabal.readthedocs.io/en/latest/cabal-project.html#cfg-field-profiling-detail
[profiling]: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/profiling.html
[search.nixos.org]: https://search.nixos.org
[turtle]: https://hackage.haskell.org/package/turtle

View File

@@ -1514,6 +1514,10 @@ Note: There is a boolean value `lib.inNixShell` set to `true` if nix-shell is in
Packages inside nixpkgs are written by hand. However many tools exist in
community to help save time. No tool is preferred at the moment.
- [pypi2nix](https://github.com/nix-community/pypi2nix): Generate Nix
expressions for your Python project. Note that [sharing derivations from
pypi2nix with nixpkgs is possible but not
encouraged](https://github.com/nix-community/pypi2nix/issues/222#issuecomment-443497376).
- [nixpkgs-pytools](https://github.com/nix-community/nixpkgs-pytools)
- [poetry2nix](https://github.com/nix-community/poetry2nix)

View File

@@ -123,11 +123,7 @@ rec {
{ x = "a"; y = "b"; }
=> { x = "a"; xa = "a"; y = "b"; yb = "b"; }
*/
concatMapAttrs = f: v:
foldl' mergeAttrs { }
(attrValues
(mapAttrs f v)
);
concatMapAttrs = f: flip pipe [ (mapAttrs f) attrValues (foldl' mergeAttrs { }) ];
/* Update or set specific paths of an attribute set.

View File

@@ -31,7 +31,7 @@ in
(lazyDerivation { inherit derivation; meta.foo = true; }).meta
In these expressions, `derivation` _will_ be evaluated:
In these expressions, it `derivation` _will_ be evaluated:
"${lazyDerivation { inherit derivation }}"

View File

@@ -27,9 +27,9 @@ let
# Linux
"aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux"
"armv7l-linux" "i686-linux" "loongarch64-linux" "m68k-linux" "microblaze-linux"
"microblazeel-linux" "mips-linux" "mips64-linux" "mips64el-linux"
"mipsel-linux" "powerpc64-linux" "powerpc64le-linux" "riscv32-linux"
"riscv64-linux" "s390-linux" "s390x-linux" "x86_64-linux"
"microblazeel-linux" "mipsel-linux" "mips64el-linux" "powerpc64-linux"
"powerpc64le-linux" "riscv32-linux" "riscv64-linux" "s390-linux"
"s390x-linux" "x86_64-linux"
# MMIXware
"mmix-mmixware"

View File

@@ -91,16 +91,22 @@ rec {
} // platforms.fuloong2f_n32;
# can execute on 32bit chip
mips-linux-gnu = { config = "mips-unknown-linux-gnu"; } // platforms.gcc_mips32r2_o32;
mipsel-linux-gnu = { config = "mipsel-unknown-linux-gnu"; } // platforms.gcc_mips32r2_o32;
mips-linux-gnu = { config = "mips-unknown-linux-gnu"; } // platforms.gcc_mips32r2_o32;
mipsel-linux-gnu = { config = "mipsel-unknown-linux-gnu"; } // platforms.gcc_mips32r2_o32;
mipsisa32r6-linux-gnu = { config = "mipsisa32r6-unknown-linux-gnu"; } // platforms.gcc_mips32r6_o32;
mipsisa32r6el-linux-gnu = { config = "mipsisa32r6el-unknown-linux-gnu"; } // platforms.gcc_mips32r6_o32;
# require 64bit chip (for more registers, 64-bit floating point, 64-bit "long long") but use 32bit pointers
mips64-linux-gnuabin32 = { config = "mips64-unknown-linux-gnuabin32"; } // platforms.gcc_mips64r2_n32;
mips64el-linux-gnuabin32 = { config = "mips64el-unknown-linux-gnuabin32"; } // platforms.gcc_mips64r2_n32;
mips64-linux-gnuabin32 = { config = "mips64-unknown-linux-gnuabin32"; } // platforms.gcc_mips64r2_n32;
mips64el-linux-gnuabin32 = { config = "mips64el-unknown-linux-gnuabin32"; } // platforms.gcc_mips64r2_n32;
mipsisa64r6-linux-gnuabin32 = { config = "mipsisa64r6-unknown-linux-gnuabin32"; } // platforms.gcc_mips64r6_n32;
mipsisa64r6el-linux-gnuabin32 = { config = "mipsisa64r6el-unknown-linux-gnuabin32"; } // platforms.gcc_mips64r6_n32;
# 64bit pointers
mips64-linux-gnuabi64 = { config = "mips64-unknown-linux-gnuabi64"; } // platforms.gcc_mips64r2_64;
mips64el-linux-gnuabi64 = { config = "mips64el-unknown-linux-gnuabi64"; } // platforms.gcc_mips64r2_64;
mips64-linux-gnuabi64 = { config = "mips64-unknown-linux-gnuabi64"; } // platforms.gcc_mips64r2_64;
mips64el-linux-gnuabi64 = { config = "mips64el-unknown-linux-gnuabi64"; } // platforms.gcc_mips64r2_64;
mipsisa64r6-linux-gnuabi64 = { config = "mipsisa64r6-unknown-linux-gnuabi64"; } // platforms.gcc_mips64r6_64;
mipsisa64r6el-linux-gnuabi64 = { config = "mipsisa64r6el-unknown-linux-gnuabi64"; } // platforms.gcc_mips64r6_64;
muslpi = raspberryPi // {
config = "armv6l-unknown-linux-musleabihf";

View File

@@ -91,10 +91,14 @@ rec {
microblaze = { bits = 32; significantByte = bigEndian; family = "microblaze"; };
microblazeel = { bits = 32; significantByte = littleEndian; family = "microblaze"; };
mips = { bits = 32; significantByte = bigEndian; family = "mips"; };
mipsel = { bits = 32; significantByte = littleEndian; family = "mips"; };
mips64 = { bits = 64; significantByte = bigEndian; family = "mips"; };
mips64el = { bits = 64; significantByte = littleEndian; family = "mips"; };
mips = { bits = 32; significantByte = bigEndian; family = "mips"; };
mipsel = { bits = 32; significantByte = littleEndian; family = "mips"; };
mipsisa32r6 = { bits = 32; significantByte = bigEndian; family = "mips"; };
mipsisa32r6el = { bits = 32; significantByte = littleEndian; family = "mips"; };
mips64 = { bits = 64; significantByte = bigEndian; family = "mips"; };
mips64el = { bits = 64; significantByte = littleEndian; family = "mips"; };
mipsisa64r6 = { bits = 64; significantByte = bigEndian; family = "mips"; };
mipsisa64r6el = { bits = 64; significantByte = littleEndian; family = "mips"; };
mmix = { bits = 64; significantByte = bigEndian; family = "mmix"; };

View File

@@ -35,50 +35,58 @@ touch regular
ln -s target symlink
mkfifo fifo
expectSuccess() {
local expr=$1
local expectedResultRegex=$2
if ! result=$(nix-instantiate --eval --strict --json \
--expr "with (import <nixpkgs/lib>).filesystem; $expr"); then
die "$expr failed to evaluate, but it was expected to succeed"
fi
if [[ ! "$result" =~ $expectedResultRegex ]]; then
die "$expr == $result, but $expectedResultRegex was expected"
checkPathType() {
local path=$1
local expectedPathType=$2
local actualPathType=$(nix-instantiate --eval --strict --json 2>&1 \
-E '{ path }: let lib = import <nixpkgs/lib>; in lib.filesystem.pathType path' \
--argstr path "$path")
if [[ "$actualPathType" != "$expectedPathType" ]]; then
die "lib.filesystem.pathType \"$path\" == $actualPathType, but $expectedPathType was expected"
fi
}
expectFailure() {
local expr=$1
local expectedErrorRegex=$2
if result=$(nix-instantiate --eval --strict --json 2>"$work/stderr" \
--expr "with (import <nixpkgs/lib>).filesystem; $expr"); then
die "$expr evaluated successfully to $result, but it was expected to fail"
fi
if [[ ! "$(<"$work/stderr")" =~ $expectedErrorRegex ]]; then
die "Error was $(<"$work/stderr"), but $expectedErrorRegex was expected"
checkPathType "/" '"directory"'
checkPathType "$PWD/directory" '"directory"'
checkPathType "$PWD/regular" '"regular"'
checkPathType "$PWD/symlink" '"symlink"'
checkPathType "$PWD/fifo" '"unknown"'
checkPathType "$PWD/non-existent" "error: evaluation aborted with the following error message: 'lib.filesystem.pathType: Path $PWD/non-existent does not exist.'"
checkPathIsDirectory() {
local path=$1
local expectedIsDirectory=$2
local actualIsDirectory=$(nix-instantiate --eval --strict --json 2>&1 \
-E '{ path }: let lib = import <nixpkgs/lib>; in lib.filesystem.pathIsDirectory path' \
--argstr path "$path")
if [[ "$actualIsDirectory" != "$expectedIsDirectory" ]]; then
die "lib.filesystem.pathIsDirectory \"$path\" == $actualIsDirectory, but $expectedIsDirectory was expected"
fi
}
expectSuccess "pathType /." '"directory"'
expectSuccess "pathType $PWD/directory" '"directory"'
expectSuccess "pathType $PWD/regular" '"regular"'
expectSuccess "pathType $PWD/symlink" '"symlink"'
expectSuccess "pathType $PWD/fifo" '"unknown"'
# Different errors depending on whether the builtins.readFilePath primop is available or not
expectFailure "pathType $PWD/non-existent" "error: (evaluation aborted with the following error message: 'lib.filesystem.pathType: Path $PWD/non-existent does not exist.'|getting status of '$PWD/non-existent': No such file or directory)"
checkPathIsDirectory "/" "true"
checkPathIsDirectory "$PWD/directory" "true"
checkPathIsDirectory "$PWD/regular" "false"
checkPathIsDirectory "$PWD/symlink" "false"
checkPathIsDirectory "$PWD/fifo" "false"
checkPathIsDirectory "$PWD/non-existent" "false"
expectSuccess "pathIsDirectory /." "true"
expectSuccess "pathIsDirectory $PWD/directory" "true"
expectSuccess "pathIsDirectory $PWD/regular" "false"
expectSuccess "pathIsDirectory $PWD/symlink" "false"
expectSuccess "pathIsDirectory $PWD/fifo" "false"
expectSuccess "pathIsDirectory $PWD/non-existent" "false"
checkPathIsRegularFile() {
local path=$1
local expectedIsRegularFile=$2
local actualIsRegularFile=$(nix-instantiate --eval --strict --json 2>&1 \
-E '{ path }: let lib = import <nixpkgs/lib>; in lib.filesystem.pathIsRegularFile path' \
--argstr path "$path")
if [[ "$actualIsRegularFile" != "$expectedIsRegularFile" ]]; then
die "lib.filesystem.pathIsRegularFile \"$path\" == $actualIsRegularFile, but $expectedIsRegularFile was expected"
fi
}
expectSuccess "pathIsRegularFile /." "false"
expectSuccess "pathIsRegularFile $PWD/directory" "false"
expectSuccess "pathIsRegularFile $PWD/regular" "true"
expectSuccess "pathIsRegularFile $PWD/symlink" "false"
expectSuccess "pathIsRegularFile $PWD/fifo" "false"
expectSuccess "pathIsRegularFile $PWD/non-existent" "false"
checkPathIsRegularFile "/" "false"
checkPathIsRegularFile "$PWD/directory" "false"
checkPathIsRegularFile "$PWD/regular" "true"
checkPathIsRegularFile "$PWD/symlink" "false"
checkPathIsRegularFile "$PWD/fifo" "false"
checkPathIsRegularFile "$PWD/non-existent" "false"
echo >&2 tests ok

View File

@@ -378,7 +378,7 @@ checkConfigOutput '^{ }$' config.sub.nixosOk ./class-check.nix
checkConfigError 'The module .*/module-class-is-darwin.nix was imported into nixos instead of darwin.' config.sub.nixosFail.config ./class-check.nix
# submoduleWith type merge with different class
checkConfigError 'A submoduleWith option is declared multiple times with conflicting class values "darwin" and "nixos".' config.sub.mergeFail.config ./class-check.nix
checkConfigError 'error: A submoduleWith option is declared multiple times with conflicting class values "darwin" and "nixos".' config.sub.mergeFail.config ./class-check.nix
# _type check
checkConfigError 'Could not load a value as a module, because it is of type "flake", in file .*/module-imports-_type-check.nix' config.ok.config ./module-imports-_type-check.nix

View File

@@ -2,63 +2,53 @@
# Don't test properties of pkgs.lib, but rather the lib in the parent directory
pkgs ? import ../.. {} // { lib = throw "pkgs.lib accessed, but the lib tests should use nixpkgs' lib path directly!"; },
nix ? pkgs.nix,
nixVersions ? [ pkgs.nixVersions.minimum nix pkgs.nixVersions.unstable ],
}:
let
testWithNix = nix:
pkgs.runCommand "nixpkgs-lib-tests-nix-${nix.version}" {
buildInputs = [
(import ./check-eval.nix)
(import ./maintainers.nix {
inherit pkgs;
lib = import ../.;
})
(import ./teams.nix {
inherit pkgs;
lib = import ../.;
})
(import ../path/tests {
inherit pkgs;
})
];
nativeBuildInputs = [
nix
];
strictDeps = true;
} ''
datadir="${nix}/share"
export TEST_ROOT=$(pwd)/test-tmp
export NIX_BUILD_HOOK=
export NIX_CONF_DIR=$TEST_ROOT/etc
export NIX_LOCALSTATE_DIR=$TEST_ROOT/var
export NIX_LOG_DIR=$TEST_ROOT/var/log/nix
export NIX_STATE_DIR=$TEST_ROOT/var/nix
export NIX_STORE_DIR=$TEST_ROOT/store
export PAGER=cat
cacheDir=$TEST_ROOT/binary-cache
pkgs.runCommand "nixpkgs-lib-tests" {
buildInputs = [
(import ./check-eval.nix)
(import ./maintainers.nix {
inherit pkgs;
lib = import ../.;
})
(import ./teams.nix {
inherit pkgs;
lib = import ../.;
})
(import ../path/tests {
inherit pkgs;
})
];
nativeBuildInputs = [
nix
];
strictDeps = true;
} ''
datadir="${nix}/share"
export TEST_ROOT=$(pwd)/test-tmp
export NIX_BUILD_HOOK=
export NIX_CONF_DIR=$TEST_ROOT/etc
export NIX_LOCALSTATE_DIR=$TEST_ROOT/var
export NIX_LOG_DIR=$TEST_ROOT/var/log/nix
export NIX_STATE_DIR=$TEST_ROOT/var/nix
export NIX_STORE_DIR=$TEST_ROOT/store
export PAGER=cat
cacheDir=$TEST_ROOT/binary-cache
mkdir -p $NIX_CONF_DIR
echo "experimental-features = nix-command" >> $NIX_CONF_DIR/nix.conf
mkdir -p $NIX_CONF_DIR
echo "experimental-features = nix-command" >> $NIX_CONF_DIR/nix.conf
nix-store --init
nix-store --init
cp -r ${../.} lib
echo "Running lib/tests/modules.sh"
bash lib/tests/modules.sh
cp -r ${../.} lib
echo "Running lib/tests/modules.sh"
bash lib/tests/modules.sh
echo "Running lib/tests/filesystem.sh"
TEST_LIB=$PWD/lib bash lib/tests/filesystem.sh
echo "Running lib/tests/filesystem.sh"
TEST_LIB=$PWD/lib bash lib/tests/filesystem.sh
echo "Running lib/tests/sources.sh"
TEST_LIB=$PWD/lib bash lib/tests/sources.sh
echo "Running lib/tests/sources.sh"
TEST_LIB=$PWD/lib bash lib/tests/sources.sh
mkdir $out
echo success > $out/${nix.version}
'';
in
pkgs.symlinkJoin {
name = "nixpkgs-lib-tests";
paths = map testWithNix nixVersions;
}
touch $out
''

View File

@@ -23,19 +23,14 @@ clean_up() {
trap clean_up EXIT
cd "$work"
# Crudely unquotes a JSON string by just taking everything between the first and the second quote.
# We're only using this for resulting /nix/store paths, which can't contain " anyways,
# nor can they contain any other characters that would need to be escaped specially in JSON
# This way we don't need to add a dependency on e.g. jq
crudeUnquoteJSON() {
cut -d \" -f2
}
touch {README.md,module.o,foo.bar}
dir="$(nix-instantiate --eval --strict --read-write-mode --json --expr '(with import <nixpkgs/lib>; "${
# nix-instantiate doesn't write out the source, only computing the hash, so
# this uses the experimental nix command instead.
dir="$(nix eval --impure --raw --expr '(with import <nixpkgs/lib>; "${
cleanSource ./.
}")' | crudeUnquoteJSON)"
}")')"
(cd "$dir"; find) | sort -f | diff -U10 - <(cat <<EOF
.
./foo.bar
@@ -44,9 +39,9 @@ EOF
) || die "cleanSource 1"
dir="$(nix-instantiate --eval --strict --read-write-mode --json --expr '(with import <nixpkgs/lib>; "${
dir="$(nix eval --impure --raw --expr '(with import <nixpkgs/lib>; "${
cleanSourceWith { src = '"$work"'; filter = path: type: ! hasSuffix ".bar" path; }
}")' | crudeUnquoteJSON)"
}")')"
(cd "$dir"; find) | sort -f | diff -U10 - <(cat <<EOF
.
./module.o
@@ -54,9 +49,9 @@ dir="$(nix-instantiate --eval --strict --read-write-mode --json --expr '(with im
EOF
) || die "cleanSourceWith 1"
dir="$(nix-instantiate --eval --strict --read-write-mode --json --expr '(with import <nixpkgs/lib>; "${
dir="$(nix eval --impure --raw --expr '(with import <nixpkgs/lib>; "${
cleanSourceWith { src = cleanSource '"$work"'; filter = path: type: ! hasSuffix ".bar" path; }
}")' | crudeUnquoteJSON)"
}")')"
(cd "$dir"; find) | sort -f | diff -U10 - <(cat <<EOF
.
./README.md

View File

@@ -18,7 +18,7 @@ with lib.systems.doubles; lib.runTests {
testarm = mseteq arm [ "armv5tel-linux" "armv6l-linux" "armv6l-netbsd" "armv6l-none" "armv7a-linux" "armv7a-netbsd" "armv7l-linux" "armv7l-netbsd" "arm-none" "armv7a-darwin" ];
testarmv7 = mseteq armv7 [ "armv7a-darwin" "armv7a-linux" "armv7l-linux" "armv7a-netbsd" "armv7l-netbsd" ];
testi686 = mseteq i686 [ "i686-linux" "i686-freebsd13" "i686-genode" "i686-netbsd" "i686-openbsd" "i686-cygwin" "i686-windows" "i686-none" "i686-darwin" ];
testmips = mseteq mips [ "mips-linux" "mips64-linux" "mips64el-linux" "mipsel-linux" "mipsel-netbsd" ];
testmips = mseteq mips [ "mips64el-linux" "mipsel-linux" "mipsel-netbsd" ];
testmmix = mseteq mmix [ "mmix-mmixware" ];
testpower = mseteq power [ "powerpc-netbsd" "powerpc-none" "powerpc64-linux" "powerpc64le-linux" "powerpcle-none" ];
testriscv = mseteq riscv [ "riscv32-linux" "riscv64-linux" "riscv32-netbsd" "riscv64-netbsd" "riscv32-none" "riscv64-none" ];
@@ -34,7 +34,7 @@ with lib.systems.doubles; lib.runTests {
testredox = mseteq redox [ "x86_64-redox" ];
testgnu = mseteq gnu (linux /* ++ kfreebsd ++ ... */);
testillumos = mseteq illumos [ "x86_64-solaris" ];
testlinux = mseteq linux [ "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" "armv7l-linux" "i686-linux" "loongarch64-linux" "m68k-linux" "microblaze-linux" "microblazeel-linux" "mips-linux" "mips64-linux" "mips64el-linux" "mipsel-linux" "powerpc64-linux" "powerpc64le-linux" "riscv32-linux" "riscv64-linux" "s390-linux" "s390x-linux" "x86_64-linux" ];
testlinux = mseteq linux [ "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" "armv7l-linux" "i686-linux" "mips64el-linux" "mipsel-linux" "riscv32-linux" "riscv64-linux" "x86_64-linux" "powerpc64-linux" "powerpc64le-linux" "m68k-linux" "s390-linux" "s390x-linux" "microblaze-linux" "microblazeel-linux" "loongarch64-linux" ];
testnetbsd = mseteq netbsd [ "aarch64-netbsd" "armv6l-netbsd" "armv7a-netbsd" "armv7l-netbsd" "i686-netbsd" "m68k-netbsd" "mipsel-netbsd" "powerpc-netbsd" "riscv32-netbsd" "riscv64-netbsd" "x86_64-netbsd" ];
testopenbsd = mseteq openbsd [ "i686-openbsd" "x86_64-openbsd" ];
testwindows = mseteq windows [ "i686-cygwin" "x86_64-cygwin" "i686-windows" "x86_64-windows" ];

View File

@@ -195,7 +195,7 @@ rec {
On each release the first letter is bumped and a new animal is chosen
starting with that new letter.
*/
codeName = "Tapir";
codeName = "Stoat";
/* Returns the current nixpkgs version suffix as string. */
versionSuffix =

View File

@@ -177,12 +177,6 @@
githubId = 12578560;
name = "Quinn Bohner";
};
_8-bit-fox = {
email = "sebastian@markwaerter.de";
github = "8-bit-fox";
githubId = 43320117;
name = "Sebastian Marquardt";
};
_9999years = {
email = "rbt@fastmail.com";
github = "9999years";
@@ -1639,12 +1633,6 @@
fingerprint = "2688 0377 C31D 9E81 9BDF 83A8 C8C6 BDDB 3847 F72B";
}];
};
azd325 = {
email = "tim.kleinschmidt@gmail.com";
github = "Azd325";
githubId = 426541;
name = "Tim Kleinschmidt";
};
azuwis = {
email = "azuwis@gmail.com";
github = "azuwis";
@@ -1875,12 +1863,6 @@
githubId = 11135;
name = "Berk D. Demir";
};
bddvlpr = {
email = "luna@bddvlpr.com";
github = "bddvlpr";
githubId = 17461028;
name = "Luna Simons";
};
bdesham = {
email = "benjamin@esham.io";
github = "bdesham";
@@ -5265,12 +5247,6 @@
githubId = 2489598;
name = "Felix Breidenstein";
};
flemzord = {
email = "maxence@maireaux.fr";
github = "flemzord";
githubId = 1952914;
name = "Maxence Maireaux";
};
flexagoon = {
email = "flexagoon@pm.me";
github = "flexagoon";
@@ -5422,12 +5398,6 @@
githubId = 7551358;
name = "Frede Emil";
};
Freed-Wu = {
email = "wuzhenyu@ustc.edu";
github = "Freed-Wu";
githubId = 32936898;
name = "Wu Zhenyu";
};
freezeboy = {
github = "freezeboy";
githubId = 13279982;
@@ -5560,18 +5530,18 @@
githubId = 606000;
name = "Gabriel Adomnicai";
};
Gabriel439 = {
email = "Gabriel439@gmail.com";
github = "Gabriella439";
githubId = 1313787;
name = "Gabriel Gonzalez";
};
GabrielDougherty = {
email = "contact@gabrieldougherty.com";
github = "GabrielDougherty";
githubId = 10541219;
name = "Gabriel Dougherty";
};
Gabriella439 = {
email = "GenuineGabriella@gmail.com";
github = "Gabriella439";
githubId = 1313787;
name = "Gabriella Gonzalez";
};
gador = {
email = "florian.brandes@posteo.de";
github = "gador";
@@ -6394,12 +6364,6 @@
fingerprint = "45A9 9917 578C D629 9F5F B5B4 C22D 4DE4 D7B3 2D19";
}];
};
hitsmaxft = {
name = "Bhe Hongtyu";
email = "mfthits@gmail.com";
github = "hitsmaxft";
githubId = 352727;
};
hjones2199 = {
email = "hjones2199@gmail.com";
github = "hjones2199";
@@ -6433,15 +6397,6 @@
githubId = 6074754;
name = "Hlodver Sigurdsson";
};
hmajid2301 = {
name = "Haseeb Majid";
email = "hello@haseebmajid.dev";
github = "hmajid2301";
githubId = 998807;
keys = [{
fingerprint = "A236 785D 59F1 9076 1E9C E8EC 7828 3DB3 D233 E1F9";
}];
};
hmenke = {
name = "Henri Menke";
email = "henri@henrimenke.de";
@@ -6925,12 +6880,6 @@
githubId = 137306;
name = "Michele Catalano";
};
isaozler = {
email = "isaozler@gmail.com";
github = "isaozler";
githubId = 1378630;
name = "Isa Ozler";
};
isgy = {
name = "isgy";
email = "isgy@teiyg.com";
@@ -7578,12 +7527,6 @@
githubId = 8900;
name = "Johan Magnus Jonsson";
};
jmbaur = {
email = "jaredbaur@fastmail.com";
github = "jmbaur";
githubId = 45740526;
name = "Jared Baur";
};
jmc-figueira = {
email = "business+nixos@jmc-figueira.dev";
github = "jmc-figueira";
@@ -8999,12 +8942,6 @@
githubId = 1572058;
name = "Leonardo Cecchi";
};
leonid = {
email = "belyaev.l@northeastern.edu";
github = "leonidbelyaev";
githubId = 77865363;
name = "Leonid Belyaev";
};
leshainc = {
email = "leshainc@fomalhaut.me";
github = "LeshaInc";
@@ -9075,12 +9012,6 @@
githubId = 1769386;
name = "Liam Diprose";
};
liberatys = {
email = "liberatys@hey.com";
name = "Nick Anthony Flueckiger";
github = "liberatys";
githubId = 35100156;
};
libjared = {
email = "jared@perrycode.com";
github = "libjared";
@@ -10692,12 +10623,6 @@
githubId = 708570;
name = "Manuel Mendez";
};
mmusnjak = {
email = "marko.musnjak@gmail.com";
github = "mmusnjak";
githubId = 668956;
name = "Marko Mušnjak";
};
mnacamura = {
email = "m.nacamura@gmail.com";
github = "mnacamura";
@@ -11113,11 +11038,6 @@
githubId = 1009523;
name = "Ashijit Pramanik";
};
name-snrl = {
github = "name-snrl";
githubId = 72071763;
name = "Yusup Urazaev";
};
namore = {
email = "namor@hemio.de";
github = "namore";
@@ -11503,16 +11423,6 @@
githubId = 26231126;
name = "Nils ANDRÉ-CHANG";
};
nim65s = {
email = "guilhem.saurel@laas.fr";
matrix = "@gsaurel:laas.fr";
github = "nim65s";
githubId = 131929;
name = "Guilhem Saurel";
keys = [{
fingerprint = "9B1A 7906 5D2F 2B80 6C8A 5A1C 7D2A CDAF 4653 CF28";
}];
};
ninjatrappeur = {
email = "felix@alternativebit.fr";
matrix = "@ninjatrappeur:matrix.org";
@@ -11813,12 +11723,6 @@
githubId = 30825096;
name = "Ning Zhang";
};
oaksoaj = {
email = "oaksoaj@riseup.net";
name = "Oaksoaj";
github = "oaksoaj";
githubId = 103952141;
};
obadz = {
email = "obadz-nixos@obadz.com";
github = "obadz";
@@ -12605,12 +12509,6 @@
githubId = 3737;
name = "Peter Jones";
};
pjrm = {
email = "pedrojrmagalhaes@gmail.com";
github = "pjrm";
githubId = 4622652;
name = "Pedro Magalhães";
};
pkharvey = {
email = "kayharvey@protonmail.com";
github = "pkharvey";
@@ -15244,12 +15142,6 @@
githubId = 38893265;
name = "StrikerLulu";
};
stteague = {
email = "stteague505@yahoo.com";
github = "stteague";
githubId = 77596767;
name = "Scott Teague";
};
stumoss = {
email = "samoss@gmail.com";
github = "stumoss";
@@ -15407,13 +15299,6 @@
githubId = 20063502;
name = "Sybrand Aarnoutse";
};
syboxez = {
email = "syboxez@gmail.com";
matrix = "@Syboxez:matrix.org";
github = "syboxez";
githubId = 12841859;
name = "Syboxez Blank";
};
symphorien = {
email = "symphorien_nixpkgs@xlumurb.eu";
matrix = "@symphorien:xlumurb.eu";
@@ -15917,12 +15802,6 @@
github = "thielema";
githubId = 898989;
};
thilobillerbeck = {
name = "Thilo Billerbeck";
email = "thilo.billerbeck@officerent.de";
github = "thilobillerbeck";
githubId = 7442383;
};
thled = {
name = "Thomas Le Duc";
email = "dev@tleduc.de";
@@ -16017,12 +15896,6 @@
github = "TilCreator";
githubId = 18621411;
};
tillkruss = {
name = "Till Krüss";
email = "till@kruss.io";
github = "tillkruss";
githubId = 665029;
};
tilpner = {
name = "Till Höppner";
email = "nixpkgs@tilpner.com";
@@ -17461,10 +17334,10 @@
};
yayayayaka = {
email = "nixpkgs@uwu.is";
matrix = "@yaya:uwu.is";
matrix = "@lara:uwu.is";
github = "yayayayaka";
githubId = 73759599;
name = "Yaya";
name = "Lara A.";
};
ydlr = {
name = "ydlr";

View File

@@ -213,7 +213,7 @@ with lib.maintainers; {
dhall = {
members = [
Gabriella439
Gabriel439
ehmry
];
scope = "Maintain Dhall and related packages.";
@@ -292,8 +292,6 @@ with lib.maintainers; {
members = [
imincik
sikmir
nh2
willcohen
];
scope = "Maintain geospatial packages.";
shortName = "Geospatial";
@@ -385,6 +383,7 @@ with lib.maintainers; {
members = [
cleeyv
ryantm
yuka
];
scope = "Maintain Jitsi.";
shortName = "Jitsi";
@@ -558,15 +557,6 @@ with lib.maintainers; {
shortName = "Minimal Bootstrap";
};
mercury = {
members = [
_9999years
Gabriella439
];
scope = "Group registry for packages maintained by Mercury";
shortName = "Mercury Employees";
};
mobile = {
members = [
samueldr
@@ -604,6 +594,7 @@ with lib.maintainers; {
lilyinstarlight
marsam
winter
yuka
];
scope = "Maintain Node.js runtimes and build tooling.";
shortName = "Node.js";

View File

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

View File

@@ -12,11 +12,11 @@ To upgrade to the latest release, follow the [upgrade chapter](https://nixos.org
In addition to numerous new and updated packages, this release has the following highlights:
- The default [Nix](https://github.com/NixOS/nix) version was updated from 2.11 to 2.13. In particular, this includes a [small language alteration](https://github.com/NixOS/nix/issues/8259) in the way floats are represented in `builtins.toJSON`. See the release notes for [2.12](https://nixos.org/manual/nix/stable/release-notes/rl-2.12.html) and [2.13](https://nixos.org/manual/nix/unstable/release-notes/rl-2.13.html) for more information.
- The default [Nix](https://github.com/NixOS/nix) version was updated from 2.11 to 2.13. In particular, this includes a [small language alteration](https://github.com/NixOS/nix/issues/8259) in the way floats are represented in `builtins.toJSON`. See the release notes for [2.13](https://nixos.org/manual/nix/stable/release-notes/rl-2.13.html) and [2.14](https://nixos.org/manual/nix/unstable/release-notes/rl-2.14.html) for more information.
- The default [Linux Kernel](https://kernel.org/) was updated from version 5.15 to 6.1, see [Kernelnewbies](https://kernelnewbies.org/Linux_6.1) for what has changed. All Kernels currently shown on [kernel.org](https://kernel.org/) are available.
- The default [Linux Kernel](https://kernel.org/) was updated from version 5.15 to 6.1, see [Kernelnewbies](https://kernelnewbies.org/Linux_6.1) for what has changed. All currently shown Kernels shown on [kernel.org](https://kernel.org/) are available.
- [systemd](https://systemd.io) has been updated from v252 to v253, see [the release notes](https://github.com/systemd/systemd/blob/v253/NEWS#L3-L659) for more information on the changes.
- [systemd](https://systemd.io) has been updated from v252 to v253, see [the release notes](https://github.com/systemd/systemd/blob/main/NEWS#L21-L677) for more information on the changes.
- Updating with `nixos-rebuild boot` and rebooting is recommended, since in some rare cases the `nixos-rebuild switch` into the new generation on a live system might fail due to missing mount units.
- [glibc](https://www.gnu.org/software/libc/) has been updated from version 2.35 to 2.37, see [the release notes](https://sourceware.org/glibc/wiki/Release/2.37) for what was changed.
@@ -192,12 +192,17 @@ In addition to numerous new and updated packages, this release has the following
};
```
- Many `services.syncthing` options have been moved to `services.syncthing.settings`, as part of [RFC 42](https://github.com/NixOS/rfcs/pull/42)'s implementation, see [#226088](https://github.com/NixOS/nixpkgs/pull/226088).
- `podman` now uses the `netavark` network stack. Users will need to delete all of their local containers, images, volumes, etc, by running `podman system reset --force` once before upgrading their systems.
- `git-bug` has been updated to at least version 0.8.0, which includes backwards incompatible changes. The `git-bug-migration` package can be used to upgrade existing repositories.
- `graylog` has been updated to version 5, which can not be updated directly from the previously packaged version 3.3. If you had installed the previously packaged version 3.3, please follow the [upgrade path](https://go2docs.graylog.org/5-0/upgrading_graylog/upgrade_path.htm) from 3.3 to 4.0 to 4.3 to 5.0.
- `buildFHSUserEnv` is now called `buildFHSEnv` and uses FlatPak's Bubblewrap sandboxing tool rather than Nixpkgs' own chrootenv. The old chrootenv-based implemenation is still available via `buildFHSEnvChrootenv` but is considered deprecated and will be removed when the remaining uses inside Nixpkgs have been migrated. If your FHSEnv-wrapped application misbehaves when using the new bubblewrap implementation, please create an issue in Nixpkgs.
- `buildFHSUserEnv` is now called `buildFHSEnv` and uses FlatPak's Bubblewrap sandboxing tool rather than Nixpkgs' own chrootenv. The old chrootenv-based implemenation is still available via `buildFHSEnvChrootenv` but is considered deprecated and will be removed when the remaining uses inside Nixpkgs have been migrated. If your FHSEnv-wrapped application misbehaves when using the new bubblewrap implementation, please create an issue in Nixpkgs.
- `nushell` has been updated to at least version 0.77.0, which includes potential breaking changes in aliases. The old aliases are now available as `old-alias` but it is recommended you migrate to the new format. See [Reworked aliases](https://www.nushell.sh/blog/2023-03-14-nushell_0_77.html#reworked-aliases-breaking-changes-kubouch).
@@ -272,10 +277,6 @@ In addition to numerous new and updated packages, this release has the following
- The EC2 image module previously detected and activated swap-formatted instance store devices and partitions in stage-1 (initramfs). This behaviour has been removed. Users relying on this should provide their own implementation.
- `gitlab` has been upgraded from major version 15 to major version 16 and requires at least PostgreSQL 13.6. Check the [upgrade guide](#module-services-postgres-upgrading) in the NixOS manual on how to upgrade your PostgreSQL installation.
- `gitlab` 16 deprecates the use of external container registries, in our case `pkgs.docker-distribution`. Module users who have [`services.gitlab.registry.enable`](#opt-services.gitlab.registry.enable) set to `true` are advised to back up their state and switch to gitlab's fork by setting [`services.gitlab.registry.package`](#opt-services.gitlab.registry.package) to `pkgs.gitlab-container-registry`.
- `fail2ban` has been updated to 1.0.2, which has a few breaking changes compared to 0.11.2 ([changelog for 1.0.1](https://github.com/fail2ban/fail2ban/blob/1.0.1/ChangeLog), [changelog for 1.0.2](https://github.com/fail2ban/fail2ban/blob/1.0.2/ChangeLog))
- `albert` has been updated from 0.17.6 to 0.20.13, and 0.18.0 changed the config format and many plugins ([changelog for 0.18.0](https://github.com/albertlauncher/albert/blob/v0.18.0/CHANGELOG.md))
@@ -544,6 +545,8 @@ In addition to numerous new and updated packages, this release has the following
- Booting from a volume managed by the Stratis storage management daemon is now supported. Use `fileSystems.<name>.stratis.poolUuid` to configure the pool containing the fs.
- Only `k3s` version 1.26 is included. Users of the `k3s_1_24` or `k3s_1_25` packages should upgrade to use the version 1.26 of the package.
## Nixpkgs internals {#sec-release-23.05-nixpkgs-internals}
- `buildDunePackage` now defaults to `strictDeps = true` which means that any library should go into `buildInputs` or `checkInputs`. Any executable that is run on the building machine should go into `nativeBuildInputs` or `nativeCheckInputs` respectively. Example of executables are `ocaml`, `findlib` and `menhir`. PPXs are libraries which are built by dune and should therefore not go into `nativeBuildInputs`.

View File

@@ -1,35 +0,0 @@
# Release 23.11 (“Tapir”, 2023.11/??) {#sec-release-23.11}
## Highlights {#sec-release-23.11-highlights}
- FoundationDB now defaults to major version 7.
## New Services {#sec-release-23.11-new-services}
- Create the first release note entry in this section!
- [acme-dns](https://github.com/joohoi/acme-dns), a limited DNS server to handle ACME DNS challenges easily and securely. Available as [services.acme-dns](#opt-services.acme-dns.enable).
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
- [river](https://github.com/riverwm/river), A dynamic tiling wayland compositor. Available as [programs.river](#opt-programs.river.enable).
- [sitespeed-io](https://sitespeed.io), a tool that can generate metrics (timings, diagnostics) for websites. Available as [services.sitespeed-io](#opt-services.sitespeed-io.enable).
## Backward Incompatibilities {#sec-release-23.11-incompatibilities}
- The latest version of `clonehero` now stores custom content in `~/.clonehero`. See the [migration instructions](https://clonehero.net/2022/11/29/v23-to-v1-migration-instructions.html). Typically, these content files would exist along side the binary, but the previous build used a wrapper script that would store them in `~/.config/unity3d/srylain Inc_/Clone Hero`.
- `python3.pkgs.fetchPypi` (and `python3Packages.fetchPypi`) has been deprecated in favor of top-level `fetchPypi`.
- `etcd` has been updated to 3.5, you will want to read the [3.3 to 3.4](https://etcd.io/docs/v3.5/upgrades/upgrade_3_4/) and [3.4 to 3.5](https://etcd.io/docs/v3.5/upgrades/upgrade_3_5/) upgrade guides
- `util-linux` is now supported on Darwin and is no longer an alias to `unixtools`. Use the `unixtools.util-linux` package for access to the Apple variants of the utilities.
## Other Notable Changes {#sec-release-23.11-notable-changes}
- The Cinnamon module now enables XDG desktop integration by default. If you are experiencing collisions related to xdg-desktop-portal-gtk you can safely remove `xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];` from your NixOS configuration.
- A new option was added to the virtualisation module that enables specifying explicitly named network interfaces in QEMU VMs. The existing `virtualisation.vlans` is still supported for cases where the name of the network interface is irrelevant.
- `services.nginx` gained a `defaultListen` option at server-level with support for PROXY protocol listeners, also `proxyProtocol` is now exposed in `services.nginx.virtualHosts.<name>.listen` option. It is now possible to run PROXY listeners and non-PROXY listeners at a server-level, see [#213510](https://github.com/NixOS/nixpkgs/pull/213510/) for more details.

View File

@@ -855,37 +855,21 @@ class Machine:
with self.nested(f"waiting for {regex} to appear on screen"):
retry(screen_matches)
def wait_for_console_text(self, regex: str, timeout: int | None = None) -> None:
"""
Wait for the provided regex to appear on console.
For each reads,
If timeout is None, timeout is infinite.
`timeout` is in seconds.
"""
# Buffer the console output, this is needed
# to match multiline regexes.
console = io.StringIO()
def console_matches() -> bool:
nonlocal console
try:
# This will return as soon as possible and
# sleep 1 second.
console.write(self.last_lines.get(block=False))
except queue.Empty:
pass
console.seek(0)
matches = re.search(regex, console.read())
return matches is not None
def wait_for_console_text(self, regex: str) -> None:
with self.nested(f"waiting for {regex} to appear on console"):
if timeout is not None:
retry(console_matches, timeout)
else:
while not console_matches():
pass
# Buffer the console output, this is needed
# to match multiline regexes.
console = io.StringIO()
while True:
try:
console.write(self.last_lines.get())
except queue.Empty:
self.sleep(1)
continue
console.seek(0)
matches = re.search(regex, console.read())
if matches is not None:
return
def send_key(
self, key: str, delay: Optional[float] = 0.01, log: Optional[bool] = True

View File

@@ -12,9 +12,7 @@ let
};
vlans = map (m: (
m.virtualisation.vlans ++
(lib.mapAttrsToList (_: v: v.vlan) m.virtualisation.interfaces))) (lib.attrValues config.nodes);
vlans = map (m: m.virtualisation.vlans) (lib.attrValues config.nodes);
vms = map (m: m.system.build.vm) (lib.attrValues config.nodes);
nodeHostNames =

View File

@@ -4,7 +4,7 @@ let
inherit (lib)
attrNames concatMap concatMapStrings flip forEach head
listToAttrs mkDefault mkOption nameValuePair optionalString
range toLower types zipListsWith zipLists
range types zipListsWith zipLists
mdDoc
;
@@ -18,41 +18,24 @@ let
networkModule = { config, nodes, pkgs, ... }:
let
qemu-common = import ../qemu-common.nix { inherit lib pkgs; };
# Convert legacy VLANs to named interfaces and merge with explicit interfaces.
vlansNumbered = forEach (zipLists config.virtualisation.vlans (range 1 255)) (v: {
name = "eth${toString v.snd}";
vlan = v.fst;
assignIP = true;
});
explicitInterfaces = lib.mapAttrsToList (n: v: v // { name = n; }) config.virtualisation.interfaces;
interfaces = vlansNumbered ++ explicitInterfaces;
interfacesNumbered = zipLists interfaces (range 1 255);
# Automatically assign IP addresses to requested interfaces.
assignIPs = lib.filter (i: i.assignIP) interfaces;
ipInterfaces = forEach assignIPs (i:
nameValuePair i.name { ipv4.addresses =
[ { address = "192.168.${toString i.vlan}.${toString config.virtualisation.test.nodeNumber}";
interfacesNumbered = zipLists config.virtualisation.vlans (range 1 255);
interfaces = forEach interfacesNumbered ({ fst, snd }:
nameValuePair "eth${toString snd}" {
ipv4.addresses =
[{
address = "192.168.${toString fst}.${toString config.virtualisation.test.nodeNumber}";
prefixLength = 24;
}];
});
qemuOptions = lib.flatten (forEach interfacesNumbered ({ fst, snd }:
qemu-common.qemuNICFlags snd fst.vlan config.virtualisation.test.nodeNumber));
udevRules = forEach interfacesNumbered ({ fst, snd }:
# MAC Addresses for QEMU network devices are lowercase, and udev string comparison is case-sensitive.
''SUBSYSTEM=="net",ACTION=="add",ATTR{address}=="${toLower(qemu-common.qemuNicMac fst.vlan config.virtualisation.test.nodeNumber)}",NAME="${fst.name}"'');
networkConfig =
{
networking.hostName = mkDefault config.virtualisation.test.nodeName;
networking.interfaces = listToAttrs ipInterfaces;
networking.interfaces = listToAttrs interfaces;
networking.primaryIPAddress =
optionalString (ipInterfaces != [ ]) (head (head ipInterfaces).value.ipv4.addresses).address;
optionalString (interfaces != [ ]) (head (head interfaces).value.ipv4.addresses).address;
# Put the IP addresses of all VMs in this machine's
# /etc/hosts file. If a machine has multiple
@@ -68,13 +51,16 @@ let
"${config.networking.hostName}.${config.networking.domain} " +
"${config.networking.hostName}\n"));
virtualisation.qemu.options = qemuOptions;
boot.initrd.services.udev.rules = concatMapStrings (x: x + "\n") udevRules;
virtualisation.qemu.options =
let qemu-common = import ../qemu-common.nix { inherit lib pkgs; };
in
flip concatMap interfacesNumbered
({ fst, snd }: qemu-common.qemuNICFlags snd fst config.virtualisation.test.nodeNumber);
};
in
{
key = "network-interfaces";
key = "ip-address";
config = networkConfig // {
# Expose the networkConfig items for tests like nixops
# that need to recreate the network config.

View File

@@ -38,7 +38,10 @@ with lib;
boot.loader.grub.enable = false;
# !!! Hack - attributes expected by other modules.
environment.systemPackages = lib.filter (lib.meta.availableOn pkgs.stdenv.hostPlatform) [ pkgs.grub2_efi pkgs.grub2 pkgs.syslinux ];
environment.systemPackages = [ pkgs.grub2_efi ]
++ (if pkgs.stdenv.hostPlatform.system == "aarch64-linux"
then []
else [ pkgs.grub2 pkgs.syslinux ]);
fileSystems."/" = mkImageMediaOverride
{ fsType = "tmpfs";

View File

@@ -335,7 +335,7 @@ sub findStableDevPath {
my $st = stat($dev) or return $dev;
foreach my $dev2 (glob("/dev/stratis/*/*"), glob("/dev/disk/by-uuid/*"), glob("/dev/mapper/*"), glob("/dev/disk/by-label/*")) {
foreach my $dev2 (glob("/dev/disk/by-uuid/*"), glob("/dev/mapper/*"), glob("/dev/disk/by-label/*")) {
my $st2 = stat($dev2) or next;
return $dev2 if $st->rdev == $st2->rdev;
}
@@ -467,17 +467,6 @@ EOF
}
}
# is this a stratis fs?
my $stableDevPath = findStableDevPath $device;
my $stratisPool;
if ($stableDevPath =~ qr#/dev/stratis/(.*)/.*#) {
my $poolName = $1;
my ($header, @lines) = split "\n", qx/stratis pool list/;
my $uuidIndex = index $header, 'UUID';
my ($line) = grep /^$poolName /, @lines;
$stratisPool = substr $line, $uuidIndex - 32, 36;
}
# Don't emit tmpfs entry for /tmp, because it most likely comes from the
# boot.tmp.useTmpfs option in configuration.nix (managed declaratively).
next if ($mountPoint eq "/tmp" && $fsType eq "tmpfs");
@@ -485,7 +474,7 @@ EOF
# Emit the filesystem.
$fileSystems .= <<EOF;
fileSystems.\"$mountPoint\" =
{ device = \"$stableDevPath\";
{ device = \"${\(findStableDevPath $device)}\";
fsType = \"$fsType\";
EOF
@@ -495,12 +484,6 @@ EOF
EOF
}
if ($stratisPool) {
$fileSystems .= <<EOF;
stratis.poolUuid = "$stratisPool";
EOF
}
$fileSystems .= <<EOF;
};

View File

@@ -28,6 +28,7 @@ let
DOCUMENTATION_URL = lib.optionalString (cfg.distroId == "nixos") "https://nixos.org/learn.html";
SUPPORT_URL = lib.optionalString (cfg.distroId == "nixos") "https://nixos.org/community.html";
BUG_REPORT_URL = lib.optionalString (cfg.distroId == "nixos") "https://github.com/NixOS/nixpkgs/issues";
SUPPORT_END = "2023-12-31";
} // lib.optionalAttrs (cfg.variant_id != null) {
VARIANT_ID = cfg.variant_id;
};
@@ -143,7 +144,7 @@ in
defaultChannel = mkOption {
internal = true;
type = types.str;
default = "https://nixos.org/channels/nixos-unstable";
default = "https://nixos.org/channels/nixos-23.05";
description = lib.mdDoc "Default NixOS channel to which the root user is subscribed.";
};

View File

@@ -241,6 +241,7 @@
./programs/starship.nix
./programs/steam.nix
./programs/streamdeck-ui.nix
./programs/sway.nix
./programs/sysdig.nix
./programs/system-config-printer.nix
./programs/systemtap.nix
@@ -255,9 +256,7 @@
./programs/usbtop.nix
./programs/vim.nix
./programs/wavemon.nix
./programs/wayland/river.nix
./programs/wayland/sway.nix
./programs/wayland/waybar.nix
./programs/waybar.nix
./programs/weylus.nix
./programs/wireshark.nix
./programs/xastir.nix
@@ -808,7 +807,6 @@
./services/network-filesystems/xtreemfs.nix
./services/network-filesystems/yandex-disk.nix
./services/networking/3proxy.nix
./services/networking/acme-dns.nix
./services/networking/adguardhome.nix
./services/networking/alice-lg.nix
./services/networking/amuled.nix
@@ -914,7 +912,6 @@
./services/networking/knot.nix
./services/networking/kresd.nix
./services/networking/lambdabot.nix
./services/networking/legit.nix
./services/networking/libreswan.nix
./services/networking/lldpd.nix
./services/networking/logmein-hamachi.nix
@@ -1010,7 +1007,6 @@
./services/networking/shorewall.nix
./services/networking/shorewall6.nix
./services/networking/shout.nix
./services/networking/sitespeed-io.nix
./services/networking/skydns.nix
./services/networking/smartdns.nix
./services/networking/smokeping.nix
@@ -1314,6 +1310,7 @@
./services/x11/window-managers/default.nix
./services/x11/window-managers/fluxbox.nix
./services/x11/window-managers/icewm.nix
./services/x11/window-managers/bspwm.nix
./services/x11/window-managers/katriawm.nix
./services/x11/window-managers/metacity.nix
./services/x11/window-managers/nimdow.nix
@@ -1350,7 +1347,6 @@
./system/boot/loader/raspberrypi/raspberrypi.nix
./system/boot/loader/systemd-boot/systemd-boot.nix
./system/boot/luksroot.nix
./system/boot/stratisroot.nix
./system/boot/modprobe.nix
./system/boot/networkd.nix
./system/boot/plymouth.nix

View File

@@ -49,7 +49,7 @@ in {
description = lib.mdDoc ''
Sway package to use. Will override the options
'wrapperFeatures', 'extraSessionCommands', and 'extraOptions'.
Set to `null` to not add any Sway package to your
Set to <code>null</code> to not add any Sway package to your
path. This should be done if you want to use the Home Manager Sway
module to install Sway.
'';
@@ -123,36 +123,41 @@ in {
};
config = mkIf cfg.enable
(mkMerge [
config = mkIf cfg.enable {
assertions = [
{
assertions = [
{
assertion = cfg.extraSessionCommands != "" -> cfg.wrapperFeatures.base;
message = ''
The extraSessionCommands for Sway will not be run if
wrapperFeatures.base is disabled.
'';
}
];
environment = {
systemPackages = optional (cfg.package != null) cfg.package ++ cfg.extraPackages;
# Needed for the default wallpaper:
pathsToLink = optionals (cfg.package != null) [ "/share/backgrounds/sway" ];
etc = {
"sway/config.d/nixos.conf".source = pkgs.writeText "nixos.conf" ''
# Import the most important environment variables into the D-Bus and systemd
# user environments (e.g. required for screen sharing and Pinentry prompts):
exec dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP
'';
} // optionalAttrs (cfg.package != null) {
"sway/config".source = mkOptionDefault "${cfg.package}/etc/sway/config";
};
};
# To make a Sway session available if a display manager like SDDM is enabled:
services.xserver.displayManager.sessionPackages = optionals (cfg.package != null) [ cfg.package ]; }
(import ./wayland-session.nix { inherit lib pkgs; })
]);
assertion = cfg.extraSessionCommands != "" -> cfg.wrapperFeatures.base;
message = ''
The extraSessionCommands for Sway will not be run if
wrapperFeatures.base is disabled.
'';
}
];
environment = {
systemPackages = optional (cfg.package != null) cfg.package ++ cfg.extraPackages;
# Needed for the default wallpaper:
pathsToLink = optionals (cfg.package != null) [ "/share/backgrounds/sway" ];
etc = {
"sway/config.d/nixos.conf".source = pkgs.writeText "nixos.conf" ''
# Import the most important environment variables into the D-Bus and systemd
# user environments (e.g. required for screen sharing and Pinentry prompts):
exec dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP
'';
} // optionalAttrs (cfg.package != null) {
"sway/config".source = mkOptionDefault "${cfg.package}/etc/sway/config";
};
};
security.polkit.enable = true;
security.pam.services.swaylock = {};
hardware.opengl.enable = mkDefault true;
fonts.enableDefaultFonts = mkDefault true;
programs.dconf.enable = mkDefault true;
# To make a Sway session available if a display manager like SDDM is enabled:
services.xserver.displayManager.sessionPackages = optionals (cfg.package != null) [ cfg.package ];
programs.xwayland.enable = mkDefault true;
# For screen sharing (this option only has an effect with xdg.portal.enable):
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-wlr ];
};
meta.maintainers = with lib.maintainers; [ primeos colemickens ];
}

View File

@@ -1,59 +0,0 @@
{
config,
pkgs,
lib,
...
}:
with lib; let
cfg = config.programs.river;
in {
options.programs.river = {
enable = mkEnableOption (lib.mdDoc "river, a dynamic tiling Wayland compositor");
package = mkOption {
type = with types; nullOr package;
default = pkgs.river;
defaultText = literalExpression "pkgs.river";
description = lib.mdDoc ''
River package to use.
Set to `null` to not add any River package to your path.
This should be done if you want to use the Home Manager River module to install River.
'';
};
extraPackages = mkOption {
type = with types; listOf package;
default = with pkgs; [
swaylock
foot
dmenu
];
defaultText = literalExpression ''
with pkgs; [ swaylock foot dmenu ];
'';
example = literalExpression ''
with pkgs; [
termite rofi light
]
'';
description = lib.mdDoc ''
Extra packages to be installed system wide. See
[Common X11 apps used on i3 with Wayland alternatives](https://github.com/swaywm/sway/wiki/i3-Migration-Guide#common-x11-apps-used-on-i3-with-wayland-alternatives)
for a list of useful software.
'';
};
};
config =
mkIf cfg.enable (mkMerge [
{
environment.systemPackages = optional (cfg.package != null) cfg.package ++ cfg.extraPackages;
# To make a river session available if a display manager like SDDM is enabled:
services.xserver.displayManager.sessionPackages = optionals (cfg.package != null) [ cfg.package ];
}
(import ./wayland-session.nix { inherit lib pkgs; })
]);
meta.maintainers = with lib.maintainers; [ GaetanLepage ];
}

View File

@@ -1,23 +0,0 @@
{ lib, pkgs, ... }: with lib; {
security = {
polkit.enable = true;
pam.services.swaylock = {};
};
hardware.opengl.enable = mkDefault true;
fonts.enableDefaultFonts = mkDefault true;
programs = {
dconf.enable = mkDefault true;
xwayland.enable = mkDefault true;
};
xdg.portal = {
enable = mkDefault true;
extraPortals = [
# For screen sharing
pkgs.xdg-desktop-portal-wlr
];
};
}

View File

@@ -29,7 +29,6 @@ in {
};
appservice = rec {
id = "facebook";
address = "http://${hostname}:${toString port}";
hostname = "localhost";
port = 29319;
@@ -172,7 +171,7 @@ in {
services.mautrix-facebook = {
registrationData = {
id = cfg.settings.appservice.id;
id = "mautrix-facebook";
namespaces = {
users = [

View File

@@ -49,14 +49,6 @@ in {
options.services.dockerRegistry = {
enable = mkEnableOption (lib.mdDoc "Docker Registry");
package = mkOption {
type = types.package;
description = mdDoc "Which Docker registry package to use.";
default = pkgs.docker-distribution;
defaultText = literalExpression "pkgs.docker-distribution";
example = literalExpression "pkgs.gitlab-container-registry";
};
listenAddress = mkOption {
description = lib.mdDoc "Docker registry host or ip to bind to.";
default = "127.0.0.1";
@@ -125,7 +117,7 @@ in {
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
script = ''
${cfg.package}/bin/registry serve ${configFile}
${pkgs.docker-distribution}/bin/registry serve ${configFile}
'';
serviceConfig = {
@@ -144,7 +136,7 @@ in {
serviceConfig.Type = "oneshot";
script = ''
${cfg.package}/bin/registry garbage-collect ${configFile}
${pkgs.docker-distribution}/bin/registry garbage-collect ${configFile}
/run/current-system/systemd/bin/systemctl restart docker-registry.service
'';

View File

@@ -15,8 +15,6 @@ in {
type = types.bool;
};
package = mkPackageOptionMD pkgs "etcd" { };
name = mkOption {
description = lib.mdDoc "Etcd unique node name.";
default = config.networking.hostName;
@@ -189,13 +187,13 @@ in {
serviceConfig = {
Type = "notify";
ExecStart = "${cfg.package}/bin/etcd";
ExecStart = "${pkgs.etcd}/bin/etcd";
User = "etcd";
LimitNOFILE = 40000;
};
};
environment.systemPackages = [ cfg.package ];
environment.systemPackages = [ pkgs.etcd ];
users.users.etcd = {
isSystemUser = true;

View File

@@ -498,8 +498,7 @@ in
systemd.services.gitea = {
description = "gitea";
after = [ "network.target" ] ++ optional usePostgresql "postgresql.service" ++ optional useMysql "mysql.service";
requires = optional usePostgresql "postgresql.service" ++ optional useMysql "mysql.service";
after = [ "network.target" ] ++ lib.optional usePostgresql "postgresql.service" ++ lib.optional useMysql "mysql.service";
wantedBy = [ "multi-user.target" ];
path = [ cfg.package pkgs.git pkgs.gnupg ];

View File

@@ -9,10 +9,12 @@ let
toml = pkgs.formats.toml {};
yaml = pkgs.formats.yaml {};
ruby = cfg.packages.gitlab.ruby;
postgresqlPackage = if config.services.postgresql.enable then
config.services.postgresql.package
else
pkgs.postgresql_13;
pkgs.postgresql_12;
gitlabSocket = "${cfg.statePath}/tmp/sockets/gitlab.socket";
gitalySocket = "${cfg.statePath}/tmp/sockets/gitaly.socket";
@@ -45,6 +47,9 @@ let
[git]
bin_path = "${pkgs.git}/bin/git"
[gitaly-ruby]
dir = "${cfg.packages.gitaly.ruby}"
[gitlab-shell]
dir = "${cfg.packages.gitlab-shell}"
@@ -84,9 +89,6 @@ let
};
};
# Redis configuration file
resqueYml = pkgs.writeText "resque.yml" (builtins.toJSON redisConfig);
gitlabConfig = {
# These are the default settings from config/gitlab.example.yml
production = flip recursiveUpdate cfg.extraConfig {
@@ -170,6 +172,7 @@ let
SCHEMA = "${cfg.statePath}/db/structure.sql";
GITLAB_UPLOADS_PATH = "${cfg.statePath}/uploads";
GITLAB_LOG_PATH = "${cfg.statePath}/log";
GITLAB_REDIS_CONFIG_FILE = pkgs.writeText "redis.yml" (builtins.toJSON redisConfig);
prometheus_multiproc_dir = "/run/gitlab";
RAILS_ENV = "production";
MALLOC_ARENA_MAX = "2";
@@ -553,20 +556,6 @@ in {
default = false;
description = lib.mdDoc "Enable GitLab container registry.";
};
package = mkOption {
type = types.package;
default =
if versionAtLeast config.system.stateVersion "23.11"
then pkgs.gitlab-container-registry
else pkgs.docker-distribution;
defaultText = literalExpression "pkgs.docker-distribution";
description = lib.mdDoc ''
Container registry package to use.
External container registries such as `pkgs.docker-distribution` are not supported
anymore since GitLab 16.0.0.
'';
};
host = mkOption {
type = types.str;
default = config.services.gitlab.host;
@@ -1081,13 +1070,6 @@ in {
};
config = mkIf cfg.enable {
warnings = [
(mkIf
(cfg.registry.enable && versionAtLeast (getVersion cfg.packages.gitlab) "16.0.0" && cfg.registry.package == pkgs.docker-distribution)
''Support for container registries other than gitlab-container-registry has ended since GitLab 16.0.0 and is scheduled for removal in a future release.
Please back up your data and migrate to the gitlab-container-registry package.''
)
];
assertions = [
{
@@ -1119,8 +1101,8 @@ in {
message = "services.gitlab.secrets.jwsFile must be set!";
}
{
assertion = versionAtLeast postgresqlPackage.version "13.6.0";
message = "PostgreSQL >=13.6 is required to run GitLab 16. Follow the instructions in the manual section for upgrading PostgreSQL here: https://nixos.org/manual/nixos/stable/index.html#module-services-postgres-upgrading";
assertion = versionAtLeast postgresqlPackage.version "12.0.0";
message = "PostgreSQL >=12 is required to run GitLab 14. Follow the instructions in the manual section for upgrading PostgreSQL here: https://nixos.org/manual/nixos/stable/index.html#module-services-postgres-upgrading";
}
];
@@ -1231,7 +1213,6 @@ in {
services.dockerRegistry = optionalAttrs cfg.registry.enable {
enable = true;
enableDelete = true; # This must be true, otherwise GitLab won't manage it correctly
package = cfg.package;
extraConfig = {
auth.token = {
realm = "http${optionalString (cfg.https == true) "s"}://${cfg.host}/jwt/auth";
@@ -1334,7 +1315,6 @@ in {
cp -rf --no-preserve=mode ${cfg.packages.gitlab}/share/gitlab/db/* ${cfg.statePath}/db
ln -sf ${extraGitlabRb} ${cfg.statePath}/config/initializers/extra-gitlab.rb
ln -sf ${cableYml} ${cfg.statePath}/config/cable.yml
ln -sf ${resqueYml} ${cfg.statePath}/config/resque.yml
${cfg.packages.gitlab-shell}/bin/install
@@ -1482,7 +1462,10 @@ in {
partOf = [ "gitlab.target" ];
path = with pkgs; [
openssh
procps # See https://gitlab.com/gitlab-org/gitaly/issues/1562
git
cfg.packages.gitaly.rubyEnv
cfg.packages.gitaly.rubyEnv.wrappedRuby
gzip
bzip2
];

View File

@@ -165,14 +165,14 @@ in
enableDebug = mkEnableOption (lib.mdDoc "request logs and debug endpoints");
proxy = mkOption {
type = types.str;
default = "";
type = types.nullOr types.str;
default = null;
description = lib.mdDoc "URL to a HTTP/HTTPS proxy.";
};
proxyAuth = mkOption {
type = types.str;
default = "";
type = types.nullOr types.str;
default = null;
description = lib.mdDoc "Credentials for proxy.";
};

View File

@@ -61,17 +61,8 @@ in
services.ntfy-sh.settings = {
auth-file = mkDefault "/var/lib/ntfy-sh/user.db";
listen-http = mkDefault "127.0.0.1:2586";
attachment-cache-dir = mkDefault "/var/lib/ntfy-sh/attachments";
cache-file = mkDefault "/var/lib/ntfy-sh/cache-file.db";
};
systemd.tmpfiles.rules = [
"f ${cfg.settings.auth-file} 0600 ${cfg.user} ${cfg.group} - -"
"d ${cfg.settings.attachment-cache-dir} 0700 ${cfg.user} ${cfg.group} - -"
"f ${cfg.settings.cache-file} 0600 ${cfg.user} ${cfg.group} - -"
];
systemd.services.ntfy-sh = {
description = "Push notifications server";
@@ -83,7 +74,6 @@ in
User = cfg.user;
StateDirectory = "ntfy-sh";
DynamicUser = true;
AmbientCapabilities = "CAP_NET_BIND_SERVICE";
PrivateTmp = true;
NoNewPrivileges = true;
@@ -98,8 +88,6 @@ in
RestrictNamespaces = true;
RestrictRealtime = true;
MemoryDenyWriteExecute = true;
# Upstream Recommandation
LimitNOFILE = 20500;
};
};

View File

@@ -35,7 +35,6 @@ let
"dovecot"
"fastly"
"fritzbox"
"graphite"
"influxdb"
"ipmi"
"json"

View File

@@ -1,41 +0,0 @@
{ config, lib, pkgs, options }:
let
cfg = config.services.prometheus.exporters.graphite;
format = pkgs.formats.yaml { };
in
{
port = 9108;
extraOpts = {
graphitePort = lib.mkOption {
type = lib.types.port;
default = 9109;
description = lib.mdDoc ''
Port to use for the graphite server.
'';
};
mappingSettings = lib.mkOption {
type = lib.types.submodule {
freeformType = format.type;
options = { };
};
default = { };
description = lib.mdDoc ''
Mapping configuration for the exporter, see
<https://github.com/prometheus/graphite_exporter#yaml-config> for
available options.
'';
};
};
serviceOpts = {
serviceConfig = {
ExecStart = ''
${pkgs.prometheus-graphite-exporter}/bin/graphite_exporter \
--web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
--graphite.listen-address ${cfg.listenAddress}:${toString cfg.graphitePort} \
--graphite.mapping-config ${format.generate "mapping.yml" cfg.mappingSettings} \
${lib.concatStringsSep " \\\n " cfg.extraFlags}
'';
};
};
}

View File

@@ -1,154 +0,0 @@
{ lib
, config
, pkgs
, ...
}:
let
cfg = config.services.acme-dns;
format = pkgs.formats.toml { };
inherit (lib)
literalExpression
mdDoc
mkEnableOption
mkOption
mkPackageOptionMD
types
;
domain = "acme-dns.example.com";
in
{
options.services.acme-dns = {
enable = mkEnableOption (mdDoc "acme-dns");
package = mkPackageOptionMD pkgs "acme-dns" { };
settings = mkOption {
description = mdDoc ''
Free-form settings written directly to the `acme-dns.cfg` file.
Refer to <https://github.com/joohoi/acme-dns/blob/master/README.md#configuration> for supported values.
'';
default = { };
type = types.submodule {
freeformType = format.type;
options = {
general = {
listen = mkOption {
type = types.str;
description = mdDoc "IP+port combination to bind and serve the DNS server on.";
default = "[::]:53";
example = "127.0.0.1:53";
};
protocol = mkOption {
type = types.enum [ "both" "both4" "both6" "udp" "udp4" "udp6" "tcp" "tcp4" "tcp6" ];
description = mdDoc "Protocols to serve DNS responses on.";
default = "both";
};
domain = mkOption {
type = types.str;
description = mdDoc "Domain name to serve the requests off of.";
example = domain;
};
nsname = mkOption {
type = types.str;
description = mdDoc "Zone name server.";
example = domain;
};
nsadmin = mkOption {
type = types.str;
description = mdDoc "Zone admin email address for `SOA`.";
example = "admin.example.com";
};
records = mkOption {
type = types.listOf types.str;
description = mdDoc "Predefined DNS records served in addition to the `_acme-challenge` TXT records.";
example = literalExpression ''
[
# replace with your acme-dns server's public IPv4
"${domain}. A 198.51.100.1"
# replace with your acme-dns server's public IPv6
"${domain}. AAAA 2001:db8::1"
# ${domain} should resolve any *.${domain} records
"${domain}. NS ${domain}."
]
'';
};
};
database = {
engine = mkOption {
type = types.enum [ "sqlite3" "postgres" ];
description = mdDoc "Database engine to use.";
default = "sqlite3";
};
connection = mkOption {
type = types.str;
description = mdDoc "Database connection string.";
example = "postgres://user:password@localhost/acmedns";
default = "/var/lib/acme-dns/acme-dns.db";
};
};
api = {
ip = mkOption {
type = types.str;
description = mdDoc "IP to bind the HTTP API on.";
default = "[::]";
example = "127.0.0.1";
};
port = mkOption {
type = types.port;
description = mdDoc "Listen port for the HTTP API.";
default = 8080;
# acme-dns expects this value to be a string
apply = toString;
};
disable_registration = mkOption {
type = types.bool;
description = mdDoc "Whether to disable the HTTP registration endpoint.";
default = false;
example = true;
};
tls = mkOption {
type = types.enum [ "letsencrypt" "letsencryptstaging" "cert" "none" ];
description = mdDoc "TLS backend to use.";
default = "none";
};
};
logconfig = {
loglevel = mkOption {
type = types.enum [ "error" "warning" "info" "debug" ];
description = mdDoc "Level to log on.";
default = "info";
};
};
};
};
};
};
config = lib.mkIf cfg.enable {
systemd.packages = [ cfg.package ];
systemd.services.acme-dns = {
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = [ "" "${lib.getExe cfg.package} -c ${format.generate "acme-dns.toml" cfg.settings}" ];
StateDirectory = "acme-dns";
WorkingDirectory = "%S/acme-dns";
DynamicUser = true;
};
};
};
}

View File

@@ -1,182 +0,0 @@
{ config, lib, pkgs, ... }:
let
inherit (lib)
literalExpression
mkEnableOption
mdDoc
mkIf
mkOption
mkPackageOptionMD
optionalAttrs
optional
types;
cfg = config.services.legit;
yaml = pkgs.formats.yaml { };
configFile = yaml.generate "legit.yaml" cfg.settings;
defaultStateDir = "/var/lib/legit";
defaultStaticDir = "${cfg.settings.repo.scanPath}/static";
defaultTemplatesDir = "${cfg.settings.repo.scanPath}/templates";
in
{
options.services.legit = {
enable = mkEnableOption (mdDoc "legit git web frontend");
package = mkPackageOptionMD pkgs "legit-web" { };
user = mkOption {
type = types.str;
default = "legit";
description = mdDoc "User account under which legit runs.";
};
group = mkOption {
type = types.str;
default = "legit";
description = mdDoc "Group account under which legit runs.";
};
settings = mkOption {
default = { };
description = mdDoc ''
The primary legit configuration. See the
[sample configuration](https://github.com/icyphox/legit/blob/master/config.yaml)
for possible values.
'';
type = types.submodule {
options.repo = {
scanPath = mkOption {
type = types.path;
default = defaultStateDir;
description = mdDoc "Directory where legit will scan for repositories.";
};
readme = mkOption {
type = types.listOf types.str;
default = [ ];
description = mdDoc "Readme files to look for.";
};
mainBranch = mkOption {
type = types.listOf types.str;
default = [ "main" "master" ];
description = mdDoc "Main branch to look for.";
};
ignore = mkOption {
type = types.listOf types.str;
default = [ ];
description = mdDoc "Repositories to ignore.";
};
};
options.dirs = {
templates = mkOption {
type = types.path;
default = "${pkgs.legit-web}/lib/legit/templates";
defaultText = literalExpression ''"''${pkgs.legit-web}/lib/legit/templates"'';
description = mdDoc "Directories where template files are located.";
};
static = mkOption {
type = types.path;
default = "${pkgs.legit-web}/lib/legit/static";
defaultText = literalExpression ''"''${pkgs.legit-web}/lib/legit/static"'';
description = mdDoc "Directories where static files are located.";
};
};
options.meta = {
title = mkOption {
type = types.str;
default = "legit";
description = mdDoc "Website title.";
};
description = mkOption {
type = types.str;
default = "git frontend";
description = mdDoc "Website description.";
};
};
options.server = {
name = mkOption {
type = types.str;
default = "localhost";
description = mdDoc "Server name.";
};
host = mkOption {
type = types.str;
default = "127.0.0.1";
description = mdDoc "Host address.";
};
port = mkOption {
type = types.port;
default = 5555;
description = mdDoc "Legit port.";
};
};
};
};
};
config = mkIf cfg.enable {
users.groups = optionalAttrs (cfg.group == "legit") {
"${cfg.group}" = { };
};
users.users = optionalAttrs (cfg.user == "legit") {
"${cfg.user}" = {
group = cfg.group;
isSystemUser = true;
};
};
systemd.services.legit = {
description = "legit git frontend";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
restartTriggers = [ configFile ];
serviceConfig = {
Type = "simple";
User = cfg.user;
Group = cfg.group;
ExecStart = "${cfg.package}/bin/legit -config ${configFile}";
Restart = "always";
WorkingDirectory = cfg.settings.repo.scanPath;
StateDirectory = [ ] ++
optional (cfg.settings.repo.scanPath == defaultStateDir) "legit" ++
optional (cfg.settings.dirs.static == defaultStaticDir) "legit/static" ++
optional (cfg.settings.dirs.templates == defaultTemplatesDir) "legit/templates";
# Hardening
CapabilityBoundingSet = [ "" ];
DeviceAllow = [ "" ];
LockPersonality = true;
MemoryDenyWriteExecute = true;
NoNewPrivileges = true;
PrivateDevices = true;
PrivateTmp = true;
PrivateUsers = true;
ProcSubset = "pid";
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectProc = "invisible";
ProtectSystem = "strict";
ReadWritePaths = cfg.settings.repo.scanPath;
RemoveIPC = true;
RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
SystemCallArchitectures = "native";
SystemCallFilter = [ "@system-service" "~@privileged" ];
UMask = "0077";
};
};
};
}

View File

@@ -313,7 +313,7 @@ in
systemd.services.murmur = {
description = "Murmur Chat Service";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
after = [ "network-online.target" ];
preStart = ''
${pkgs.envsubst}/bin/envsubst \
-o /run/murmur/murmurd.ini \

View File

@@ -1,122 +0,0 @@
{ lib, config, pkgs, ... }:
let
cfg = config.services.sitespeed-io;
format = pkgs.formats.json { };
in
{
options.services.sitespeed-io = {
enable = lib.mkEnableOption (lib.mdDoc "Sitespeed.io");
user = lib.mkOption {
type = lib.types.str;
default = "sitespeed-io";
description = lib.mdDoc "User account under which sitespeed-io runs.";
};
package = lib.mkOption {
type = lib.types.package;
default = pkgs.sitespeed-io;
defaultText = "pkgs.sitespeed-io";
description = lib.mdDoc "Sitespeed.io package to use.";
};
dataDir = lib.mkOption {
default = "/var/lib/sitespeed-io";
type = lib.types.str;
description = lib.mdDoc "The base sitespeed-io data directory.";
};
period = lib.mkOption {
type = lib.types.str;
default = "hourly";
description = lib.mdDoc ''
Systemd calendar expression when to run. See {manpage}`systemd.time(7)`.
'';
};
runs = lib.mkOption {
default = [ ];
description = lib.mdDoc ''
A list of run configurations. The service will call sitespeed-io once
for every run listed here. This lets you examine different websites
with different sitespeed-io settings.
'';
type = lib.types.listOf (lib.types.submodule {
options = {
urls = lib.mkOption {
type = with lib.types; listOf str;
default = [];
description = lib.mdDoc ''
URLs the service should monitor.
'';
};
settings = lib.mkOption {
type = lib.types.submodule {
freeformType = format.type;
options = { };
};
default = { };
description = lib.mdDoc ''
Configuration for sitespeed-io, see
<https://www.sitespeed.io/documentation/sitespeed.io/configuration/>
for available options. The value here will be directly transformed to
JSON and passed as `--config` to the program.
'';
};
extraArgs = lib.mkOption {
type = with lib.types; listOf str;
default = [];
description = lib.mdDoc ''
Extra command line arguments to pass to the program.
'';
};
};
});
};
};
config = lib.mkIf cfg.enable {
assertions = [
{
assertion = cfg.runs != [];
message = "At least one run must be configured.";
}
{
assertion = lib.all (run: run.urls != []) cfg.runs;
message = "All runs must have at least one url configured.";
}
];
systemd.services.sitespeed-io = {
description = "Check website status";
startAt = cfg.period;
serviceConfig = {
WorkingDirectory = cfg.dataDir;
User = cfg.user;
};
preStart = "chmod u+w -R ${cfg.dataDir}"; # Make sure things are writable
script = (lib.concatMapStrings (run: ''
${lib.getExe cfg.package} \
--config ${format.generate "sitespeed.json" run.settings} \
${lib.escapeShellArgs run.extraArgs} \
${builtins.toFile "urls.txt" (lib.concatLines run.urls)} &
'') cfg.runs) +
''
wait
'';
};
users = {
extraUsers.${cfg.user} = {
isSystemUser = true;
group = cfg.user;
home = cfg.dataDir;
createHome = true;
homeMode = "755";
};
extraGroups.${cfg.user} = { };
};
};
}

View File

@@ -25,8 +25,6 @@ in
options.services.thelounge = {
enable = mkEnableOption (lib.mdDoc "The Lounge web IRC client");
package = mkPackageOptionMD pkgs "thelounge" { };
public = mkOption {
type = types.bool;
default = false;
@@ -95,11 +93,11 @@ in
serviceConfig = {
User = "thelounge";
StateDirectory = baseNameOf dataDir;
ExecStart = "${getExe cfg.package} start";
ExecStart = "${pkgs.thelounge}/bin/thelounge start";
};
};
environment.systemPackages = [ cfg.package ];
environment.systemPackages = [ pkgs.thelounge ];
};
meta = {

View File

@@ -80,11 +80,11 @@ in
options.services.epgstation = {
enable = lib.mkEnableOption (lib.mdDoc description);
package = lib.mkPackageOptionMD pkgs "epgstation" { };
ffmpeg = lib.mkPackageOptionMD pkgs "ffmpeg" {
default = [ "ffmpeg-headless" ];
example = "pkgs.ffmpeg-full";
package = lib.mkOption {
default = pkgs.epgstation;
type = lib.types.package;
defaultText = lib.literalExpression "pkgs.epgstation";
description = lib.mdDoc "epgstation package to use";
};
usePreconfiguredStreaming = lib.mkOption {
@@ -278,8 +278,6 @@ in
package = lib.mkDefault pkgs.mariadb;
ensureDatabases = [ cfg.database.name ];
# FIXME: enable once mysqljs supports auth_socket
# https://github.com/mysqljs/mysql/issues/1507
#
# ensureUsers = [ {
# name = username;
# ensurePermissions = { "${cfg.database.name}.*" = "ALL PRIVILEGES"; };
@@ -297,8 +295,8 @@ in
database = cfg.database.name;
};
ffmpeg = lib.mkDefault "${cfg.ffmpeg}/bin/ffmpeg";
ffprobe = lib.mkDefault "${cfg.ffmpeg}/bin/ffprobe";
ffmpeg = lib.mkDefault "${pkgs.ffmpeg-full}/bin/ffmpeg";
ffprobe = lib.mkDefault "${pkgs.ffmpeg-full}/bin/ffprobe";
# for disambiguation with TypeScript files
recordedFileExtension = lib.mkDefault ".m2ts";
@@ -310,15 +308,9 @@ in
];
systemd.tmpfiles.rules = [
"d '/var/lib/epgstation/key' - ${username} ${groupname} - -"
"d '/var/lib/epgstation/streamfiles' - ${username} ${groupname} - -"
"d '/var/lib/epgstation/drop' - ${username} ${groupname} - -"
"d '/var/lib/epgstation/recorded' - ${username} ${groupname} - -"
"d '/var/lib/epgstation/thumbnail' - ${username} ${groupname} - -"
"d '/var/lib/epgstation/db/subscribers' - ${username} ${groupname} - -"
"d '/var/lib/epgstation/db/migrations/mysql' - ${username} ${groupname} - -"
"d '/var/lib/epgstation/db/migrations/postgres' - ${username} ${groupname} - -"
"d '/var/lib/epgstation/db/migrations/sqlite' - ${username} ${groupname} - -"
];
systemd.services.epgstation = {

View File

@@ -1,199 +1,107 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.code-server;
defaultUser = "code-server";
defaultGroup = defaultUser;
in {
###### interface
options = {
services.code-server = {
enable = lib.mkEnableOption (lib.mdDoc "code-server");
enable = mkEnableOption (lib.mdDoc "code-server");
package = lib.mkPackageOptionMD pkgs "code-server" { };
extraPackages = lib.mkOption {
default = [ ];
description = lib.mdDoc ''
Additional packages to add to the code-server {env}`PATH`.
'';
example = lib.literalExpression "[ pkgs.go ]";
type = lib.types.listOf lib.types.package;
package = mkOption {
default = pkgs.code-server;
defaultText = lib.literalExpression "pkgs.code-server";
description = lib.mdDoc "Which code-server derivation to use.";
type = types.package;
};
extraEnvironment = lib.mkOption {
type = lib.types.attrsOf lib.types.str;
description = lib.mdDoc ''
Additional environment variables to pass to code-server.
'';
extraPackages = mkOption {
default = [ ];
description = lib.mdDoc "Packages that are available in the PATH of code-server.";
example = "[ pkgs.go ]";
type = types.listOf types.package;
};
extraEnvironment = mkOption {
type = types.attrsOf types.str;
description =
lib.mdDoc "Additional environment variables to passed to code-server.";
default = { };
example = { PKG_CONFIG_PATH = "/run/current-system/sw/lib/pkgconfig"; };
};
extraArguments = lib.mkOption {
default = [ ];
description = lib.mdDoc ''
Additional arguments to pass to code-server.
'';
example = lib.literalExpression ''[ "--log=info" ]'';
type = lib.types.listOf lib.types.str;
extraArguments = mkOption {
default = [ "--disable-telemetry" ];
description = lib.mdDoc "Additional arguments that passed to code-server";
example = ''[ "--verbose" ]'';
type = types.listOf types.str;
};
host = lib.mkOption {
default = "localhost";
description = lib.mdDoc ''
The host name or IP address the server should listen to.
'';
type = lib.types.str;
host = mkOption {
default = "127.0.0.1";
description = lib.mdDoc "The host-ip to bind to.";
type = types.str;
};
port = lib.mkOption {
port = mkOption {
default = 4444;
description = lib.mdDoc ''
The port the server should listen to.
'';
type = lib.types.port;
description = lib.mdDoc "The port where code-server runs.";
type = types.port;
};
auth = lib.mkOption {
auth = mkOption {
default = "password";
description = lib.mdDoc ''
The type of authentication to use.
'';
type = lib.types.enum [ "none" "password" ];
description = lib.mdDoc "The type of authentication to use.";
type = types.enum [ "none" "password" ];
};
hashedPassword = lib.mkOption {
hashedPassword = mkOption {
default = "";
description = lib.mdDoc ''
Create the password with: `echo -n 'thisismypassword' | npx argon2-cli -e`.
'';
type = lib.types.str;
description =
lib.mdDoc "Create the password with: `echo -n 'thisismypassword' | npx argon2-cli -e`.";
type = types.str;
};
user = lib.mkOption {
user = mkOption {
default = defaultUser;
example = "yourUser";
description = lib.mdDoc ''
The user to run code-server as.
By default, a user named `${defaultUser}` will be created.
'';
type = lib.types.str;
type = types.str;
};
group = lib.mkOption {
group = mkOption {
default = defaultGroup;
example = "yourGroup";
description = lib.mdDoc ''
The group to run code-server under.
By default, a group named `${defaultGroup}` will be created.
'';
type = lib.types.str;
type = types.str;
};
extraGroups = lib.mkOption {
extraGroups = mkOption {
default = [ ];
description = lib.mdDoc ''
An array of additional groups for the `${defaultUser}` user.
'';
description =
lib.mdDoc "An array of additional groups for the `${defaultUser}` user.";
example = [ "docker" ];
type = lib.types.listOf lib.types.str;
};
socket = lib.mkOption {
default = null;
example = "/run/code-server/socket";
description = lib.mdDoc ''
Path to a socket (bind-addr will be ignored).
'';
type = lib.types.nullOr lib.types.str;
};
socketMode = lib.mkOption {
default = null;
description = lib.mdDoc ''
File mode of the socket.
'';
type = lib.types.nullOr lib.types.str;
};
userDataDir = lib.mkOption {
default = null;
description = lib.mdDoc ''
Path to the user data directory.
'';
type = lib.types.nullOr lib.types.str;
};
extensionsDir = lib.mkOption {
default = null;
description = lib.mdDoc ''
Path to the extensions directory.
'';
type = lib.types.nullOr lib.types.str;
};
proxyDomain = lib.mkOption {
default = null;
example = "code-server.lan";
description = lib.mdDoc ''
Domain used for proxying ports.
'';
type = lib.types.nullOr lib.types.str;
};
disableTelemetry = lib.mkOption {
default = false;
example = true;
description = lib.mdDoc ''
Disable telemetry.
'';
type = lib.types.bool;
};
disableUpdateCheck = lib.mkOption {
default = false;
example = true;
description = lib.mdDoc ''
Disable update check.
Without this flag, code-server checks every 6 hours against the latest github release and
then notifies you once every week that a new release is available.
'';
type = lib.types.bool;
};
disableFileDownloads = lib.mkOption {
default = false;
example = true;
description = lib.mdDoc ''
Disable file downloads from Code.
'';
type = lib.types.bool;
};
disableWorkspaceTrust = lib.mkOption {
default = false;
example = true;
description = lib.mdDoc ''
Disable Workspace Trust feature.
'';
type = lib.types.bool;
};
disableGettingStartedOverride = lib.mkOption {
default = false;
example = true;
description = lib.mdDoc ''
Disable the coder/coder override in the Help: Getting Started page.
'';
type = lib.types.bool;
type = types.listOf types.str;
};
};
};
config = lib.mkIf cfg.enable {
###### implementation
config = mkIf cfg.enable {
systemd.services.code-server = {
description = "Code server";
description = "VSCode server";
wantedBy = [ "multi-user.target" ];
after = [ "network-online.target" ];
path = cfg.extraPackages;
@@ -201,37 +109,18 @@ in {
HASHED_PASSWORD = cfg.hashedPassword;
} // cfg.extraEnvironment;
serviceConfig = {
ExecStart = ''
${lib.getExe cfg.package} \
--auth=${cfg.auth} \
--bind-addr=${cfg.host}:${toString cfg.port} \
'' + lib.optionalString (cfg.socket != null) ''
--socket=${cfg.socket} \
'' + lib.optionalString (cfg.userDataDir != null) ''
--user-data-dir=${cfg.userDataDir} \
'' + lib.optionalString (cfg.extensionsDir != null) ''
--extensions-dir=${cfg.extensionsDir} \
'' + lib.optionalString (cfg.disableTelemetry == true) ''
--disable-telemetry \
'' + lib.optionalString (cfg.disableUpdateCheck == true) ''
--disable-update-check \
'' + lib.optionalString (cfg.disableFileDownloads == true) ''
--disable-file-downloads \
'' + lib.optionalString (cfg.disableWorkspaceTrust == true) ''
--disable-workspace-trust \
'' + lib.optionalString (cfg.disableGettingStartedOverride == true) ''
--disable-getting-started-override \
'' + lib.escapeShellArgs cfg.extraArguments;
ExecStart = "${cfg.package}/bin/code-server --bind-addr ${cfg.host}:${toString cfg.port} --auth ${cfg.auth} " + lib.escapeShellArgs cfg.extraArguments;
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
RuntimeDirectory = cfg.user;
User = cfg.user;
Group = cfg.group;
Restart = "on-failure";
};
};
users.users."${cfg.user}" = lib.mkMerge [
(lib.mkIf (cfg.user == defaultUser) {
users.users."${cfg.user}" = mkMerge [
(mkIf (cfg.user == defaultUser) {
isNormalUser = true;
description = "code-server user";
inherit (cfg) group;
@@ -242,8 +131,9 @@ in {
}
];
users.groups."${defaultGroup}" = lib.mkIf (cfg.group == defaultGroup) { };
users.groups."${defaultGroup}" = mkIf (cfg.group == defaultGroup) { };
};
meta.maintainers = [ lib.maintainers.stackshadow ];
meta.maintainers = with maintainers; [ stackshadow ];
}

View File

@@ -117,9 +117,7 @@ in {
# PHP 8.0 is the only version which is supported/tested by upstream:
# https://github.com/grocy/grocy/blob/v3.3.0/README.md#how-to-install
# Compatibility with PHP 8.1 is available on their development branch:
# https://github.com/grocy/grocy/commit/38a4ad8ec480c29a1bff057b3482fd103b036848
phpPackage = pkgs.php81;
phpPackage = pkgs.php80;
inherit (cfg.phpfpm) settings;

View File

@@ -226,7 +226,7 @@ in
services.phpfpm.pools.limesurvey = {
inherit user group;
phpPackage = pkgs.php81;
phpPackage = pkgs.php80;
phpEnv.DBENGINE = "${cfg.database.dbEngine}";
phpEnv.LIMESURVEY_CONFIG = "${limesurveyConfig}";
settings = {
@@ -288,8 +288,8 @@ in
environment.LIMESURVEY_CONFIG = limesurveyConfig;
script = ''
# update or install the database as required
${pkgs.php81}/bin/php ${pkg}/share/limesurvey/application/commands/console.php updatedb || \
${pkgs.php81}/bin/php ${pkg}/share/limesurvey/application/commands/console.php install admin password admin admin@example.com verbose
${pkgs.php80}/bin/php ${pkg}/share/limesurvey/application/commands/console.php updatedb || \
${pkgs.php80}/bin/php ${pkg}/share/limesurvey/application/commands/console.php install admin password admin admin@example.com verbose
'';
serviceConfig = {
User = user;

View File

@@ -586,7 +586,7 @@ in
# Create an outline-sequalize wrapper (a wrapper around the wrapper) that
# has the config file's path baked in. This is necessary because there is
# at least two occurrences of outline calling this from its own code.
# at least one occurrence of outline calling this from its own code.
sequelize = pkgs.writeShellScriptBin "outline-sequelize" ''
exec ${cfg.package}/bin/outline-sequelize \
--config $RUNTIME_DIRECTORY/database.json \
@@ -687,18 +687,21 @@ in
openssl rand -hex 32 > ${lib.escapeShellArg cfg.utilsSecretFile}
fi
# The config file is required for the sequelize CLI.
# The config file is required for the CLI, the DATABASE_URL environment
# variable is read by the app.
${if (cfg.databaseUrl == "local") then ''
cat <<EOF > $RUNTIME_DIRECTORY/database.json
{
"production-ssl-disabled": {
"production": {
"dialect": "postgres",
"host": "/run/postgresql",
"username": null,
"password": null,
"dialect": "postgres"
"password": null
}
}
EOF
export DATABASE_URL=${lib.escapeShellArg localPostgresqlUrl}
export PGSSLMODE=disable
'' else ''
cat <<EOF > $RUNTIME_DIRECTORY/database.json
{
@@ -717,7 +720,11 @@ in
}
}
EOF
export DATABASE_URL=${lib.escapeShellArg cfg.databaseUrl}
''}
cd $RUNTIME_DIRECTORY
${sequelize}/bin/outline-sequelize db:migrate
'';
script = ''
@@ -774,7 +781,7 @@ in
RuntimeDirectoryMode = "0750";
# This working directory is required to find stuff like the set of
# onboarding files:
WorkingDirectory = "${cfg.package}/share/outline";
WorkingDirectory = "${cfg.package}/share/outline/build";
};
};
};

View File

@@ -448,7 +448,7 @@ in {
cfg.nginx
{
root = lib.mkForce "${pixelfed}/public/";
locations."/".tryFiles = "$uri $uri/ /index.php?$query_string";
locations."/".tryFiles = "$uri $uri/ /index.php?query_string";
locations."/favicon.ico".extraConfig = ''
access_log off; log_not_found off;
'';

View File

@@ -49,7 +49,7 @@ in
replication_mode = mkOption {
default = "none";
type = types.enum ([ "none" "1" "2" "3" "2-dangerous" "3-dangerous" "3-degraded" 1 2 3 ]);
type = types.enum ([ "none" "1" "2" "3" 1 2 3 ]);
apply = v: toString v;
description = lib.mdDoc "Garage replication mode, defaults to none, see: <https://garagehq.deuxfleurs.fr/documentation/reference-manual/configuration/#replication-mode> for reference.";
};
@@ -80,7 +80,6 @@ in
after = [ "network.target" "network-online.target" ];
wants = [ "network.target" "network-online.target" ];
wantedBy = [ "multi-user.target" ];
restartTriggers = [ configFile ];
serviceConfig = {
ExecStart = "${cfg.package}/bin/garage server";

View File

@@ -309,54 +309,36 @@ let
onlySSL = vhost.onlySSL || vhost.enableSSL;
hasSSL = onlySSL || vhost.addSSL || vhost.forceSSL;
# First evaluation of defaultListen based on a set of listen lines.
mkDefaultListenVhost = listenLines:
# If this vhost has SSL or is a SSL rejection host.
# We enable a TLS variant for lines without explicit ssl or ssl = true.
optionals (hasSSL || vhost.rejectSSL)
(map (listen: { port = cfg.defaultSSLListenPort; ssl = true; } // listen)
(filter (listen: !(listen ? ssl) || listen.ssl) listenLines))
# If this vhost is supposed to serve HTTP
# We provide listen lines for those without explicit ssl or ssl = false.
++ optionals (!onlySSL)
(map (listen: { port = cfg.defaultHTTPListenPort; ssl = false; } // listen)
(filter (listen: !(listen ? ssl) || !listen.ssl) listenLines));
defaultListen =
if vhost.listen != [] then vhost.listen
else
if cfg.defaultListen != [] then mkDefaultListenVhost
# Cleanup nulls which will mess up with //.
# TODO: is there a better way to achieve this? i.e. mergeButIgnoreNullPlease?
(map (listenLine: filterAttrs (_: v: (v != null)) listenLine) cfg.defaultListen)
else
let addrs = if vhost.listenAddresses != [] then vhost.listenAddresses else cfg.defaultListenAddresses;
in mkDefaultListenVhost (map (addr: { inherit addr; }) addrs);
in optionals (hasSSL || vhost.rejectSSL) (map (addr: { inherit addr; port = cfg.defaultSSLListenPort; ssl = true; }) addrs)
++ optionals (!onlySSL) (map (addr: { inherit addr; port = cfg.defaultHTTPListenPort; ssl = false; }) addrs);
hostListen =
if vhost.forceSSL
then filter (x: x.ssl) defaultListen
else defaultListen;
listenString = { addr, port, ssl, proxyProtocol ? false, extraParameters ? [], ... }:
listenString = { addr, port, ssl, extraParameters ? [], ... }:
# UDP listener for QUIC transport protocol.
(optionalString (ssl && vhost.quic) ("
listen ${addr}:${toString port} quic "
+ optionalString vhost.default "default_server "
+ optionalString vhost.reuseport "reuseport "
+ optionalString (extraParameters != []) (concatStringsSep " "
(let inCompatibleParameters = [ "ssl" "proxy_protocol" "http2" ];
+ optionalString (extraParameters != []) (concatStringsSep " " (
let inCompatibleParameters = [ "ssl" "proxy_protocol" "http2" ];
isCompatibleParameter = param: !(any (p: p == param) inCompatibleParameters);
in filter isCompatibleParameter extraParameters))
+ ";"))
+ "
listen ${addr}:${toString port} "
+ optionalString (ssl && vhost.http2) "http2 "
+ optionalString ssl "ssl "
+ optionalString vhost.default "default_server "
+ optionalString vhost.reuseport "reuseport "
+ optionalString proxyProtocol "proxy_protocol "
+ optionalString (extraParameters != []) (concatStringsSep " " extraParameters)
+ ";";
@@ -557,49 +539,6 @@ in
'';
};
defaultListen = mkOption {
type = with types; listOf (submodule {
options = {
addr = mkOption {
type = str;
description = lib.mdDoc "IP address.";
};
port = mkOption {
type = nullOr port;
description = lib.mdDoc "Port number.";
default = null;
};
ssl = mkOption {
type = nullOr bool;
default = null;
description = lib.mdDoc "Enable SSL.";
};
proxyProtocol = mkOption {
type = bool;
description = lib.mdDoc "Enable PROXY protocol.";
default = false;
};
extraParameters = mkOption {
type = listOf str;
description = lib.mdDoc "Extra parameters of this listen directive.";
default = [ ];
example = [ "backlog=1024" "deferred" ];
};
};
});
default = [];
example = literalExpression ''[
{ addr = "10.0.0.12"; proxyProtocol = true; ssl = true; }
{ addr = "0.0.0.0"; }
{ addr = "[::0]"; }
]'';
description = lib.mdDoc ''
If vhosts do not specify listen, use these addresses by default.
This option takes precedence over {option}`defaultListenAddresses` and
other listen-related defaults options.
'';
};
defaultListenAddresses = mkOption {
type = types.listOf types.str;
default = [ "0.0.0.0" ] ++ optional enableIPv6 "[::0]";
@@ -607,7 +546,6 @@ in
example = literalExpression ''[ "10.0.0.12" "[2002:a00:1::]" ]'';
description = lib.mdDoc ''
If vhosts do not specify listenAddresses, use these addresses by default.
This is akin to writing `defaultListen = [ { addr = "0.0.0.0" } ]`.
'';
};
@@ -1140,32 +1078,6 @@ in
which can be achieved by setting `services.nginx.package = pkgs.nginxQuic;`.
'';
}
{
# The idea is to understand whether there is a virtual host with a listen configuration
# that requires ACME configuration but has no HTTP listener which will make deterministically fail
# this operation.
# Options' priorities are the following at the moment:
# listen (vhost) > defaultListen (server) > listenAddresses (vhost) > defaultListenAddresses (server)
assertion =
let
hasAtLeastHttpListener = listenOptions: any (listenLine: if listenLine ? proxyProtocol then !listenLine.proxyProtocol else true) listenOptions;
hasAtLeastDefaultHttpListener = if cfg.defaultListen != [] then hasAtLeastHttpListener cfg.defaultListen else (cfg.defaultListenAddresses != []);
in
all (host:
let
hasAtLeastVhostHttpListener = if host.listen != [] then hasAtLeastHttpListener host.listen else (host.listenAddresses != []);
vhostAuthority = host.listen != [] || (cfg.defaultListen == [] && host.listenAddresses != []);
in
# Either vhost has precedence and we need a vhost specific http listener
# Either vhost set nothing and inherit from server settings
host.enableACME -> ((vhostAuthority && hasAtLeastVhostHttpListener) || (!vhostAuthority && hasAtLeastDefaultHttpListener))
) (attrValues virtualHosts);
message = ''
services.nginx.virtualHosts.<name>.enableACME requires a HTTP listener
to answer to ACME requests.
'';
}
] ++ map (name: mkCertOwnershipAssertion {
inherit (cfg) group user;
cert = config.security.acme.certs.${name};

View File

@@ -27,35 +27,12 @@ with lib;
};
listen = mkOption {
type = with types; listOf (submodule {
options = {
addr = mkOption {
type = str;
description = lib.mdDoc "IP address.";
};
port = mkOption {
type = port;
description = lib.mdDoc "Port number.";
default = 80;
};
ssl = mkOption {
type = bool;
description = lib.mdDoc "Enable SSL.";
default = false;
};
proxyProtocol = mkOption {
type = bool;
description = lib.mdDoc "Enable PROXY protocol.";
default = false;
};
extraParameters = mkOption {
type = listOf str;
description = lib.mdDoc "Extra parameters of this listen directive.";
default = [ ];
example = [ "backlog=1024" "deferred" ];
};
};
});
type = with types; listOf (submodule { options = {
addr = mkOption { type = str; description = lib.mdDoc "IP address."; };
port = mkOption { type = port; description = lib.mdDoc "Port number."; default = 80; };
ssl = mkOption { type = bool; description = lib.mdDoc "Enable SSL."; default = false; };
extraParameters = mkOption { type = listOf str; description = lib.mdDoc "Extra parameters of this listen directive."; default = []; example = [ "backlog=1024" "deferred" ]; };
}; });
default = [];
example = [
{ addr = "195.154.1.1"; port = 443; ssl = true; }
@@ -68,7 +45,7 @@ with lib;
and `onlySSL`.
If you only want to set the addresses manually and not
the ports, take a look at `listenAddresses`.
the ports, take a look at `listenAddresses`
'';
};

View File

@@ -70,9 +70,9 @@ in
name = mkDefault "Mint-Y-Aqua";
package = mkDefault pkgs.cinnamon.mint-themes;
};
iconTheme = mkIf (notExcluded pkgs.cinnamon.mint-y-icons) {
iconTheme = mkIf (notExcluded pkgs.cinnamon.mint-x-icons) {
name = mkDefault "Mint-Y-Aqua";
package = mkDefault pkgs.cinnamon.mint-y-icons;
package = mkDefault pkgs.cinnamon.mint-x-icons;
};
cursorTheme = mkIf (notExcluded pkgs.cinnamon.mint-cursor-themes) {
name = mkDefault "Bibata-Modern-Classic";
@@ -187,15 +187,6 @@ in
xdg.mime.enable = true;
xdg.icons.enable = true;
xdg.portal.enable = true;
xdg.portal.extraPortals = [
pkgs.xdg-desktop-portal-xapp
(pkgs.xdg-desktop-portal-gtk.override {
# Do not build portals that we already have.
buildPortalsInGnome = false;
})
];
# Override GSettings schemas
environment.sessionVariables.NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-overrides}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";

View File

@@ -227,16 +227,11 @@ in
xdg.icons.enable = true;
xdg.portal.enable = true;
xdg.portal.extraPortals = [
# Some Pantheon apps enforce portal usage, we need this for e.g. notifications.
# Currently we have buildPortalsInGnome enabled, if you run into issues related
# to https://github.com/flatpak/xdg-desktop-portal/issues/656 please report to us.
pkgs.xdg-desktop-portal-gtk
] ++ (with pkgs.pantheon; [
xdg.portal.extraPortals = with pkgs.pantheon; [
elementary-files
elementary-settings-daemon
xdg-desktop-portal-pantheon
]);
];
# Override GSettings schemas
environment.sessionVariables.NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-desktop-schemas}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";

View File

@@ -2,7 +2,7 @@
, glib
, gobject-introspection
, python3
, wrapGAppsNoGuiHook
, wrapGAppsHook
, lib
}:
@@ -18,7 +18,7 @@ python3.pkgs.buildPythonApplication {
strictDeps = false;
nativeBuildInputs = [
wrapGAppsNoGuiHook
wrapGAppsHook
gobject-introspection
];

View File

@@ -14,7 +14,6 @@ in
./bspwm.nix
./cwm.nix
./clfswm.nix
./dk.nix
./dwm.nix
./e16.nix
./evilwm.nix

View File

@@ -1,27 +0,0 @@
{ config, lib, pkgs, ... }:
let
cfg = config.services.xserver.windowManager.dk;
in
{
options = {
services.xserver.windowManager.dk = {
enable = lib.mkEnableOption (lib.mdDoc "dk");
package = lib.mkPackageOptionMD pkgs "dk" { };
};
};
config = lib.mkIf cfg.enable {
services.xserver.windowManager.session = lib.singleton {
name = "dk";
start = ''
export _JAVA_AWT_WM_NONREPARENTING=1
${cfg.package}/bin/dk &
waitPID=$!
'';
};
environment.systemPackages = [ cfg.package ];
};
}

View File

@@ -25,11 +25,9 @@ let
sectionDHCPv4 = checkUnitConfig "DHCPv4" [
(assertOnlyFields [
"ClientIdentifier"
"DUIDType"
"DUIDRawData"
])
(assertValueOneOf "ClientIdentifier" ["mac" "duid" "duid-only"])
];
sectionDHCPv6 = checkUnitConfig "DHCPv6" [

View File

@@ -1,64 +0,0 @@
{ config, lib, pkgs, utils, ... }:
let
requiredStratisFilesystems = lib.attrsets.filterAttrs (_: x: utils.fsNeededForBoot x && x.stratis.poolUuid != null) config.fileSystems;
in
{
options = {};
config = lib.mkIf (requiredStratisFilesystems != {}) {
assertions = [
{
assertion = config.boot.initrd.systemd.enable;
message = "stratis root fs requires systemd stage 1";
}
];
boot.initrd = {
systemd = {
storePaths = [
"${pkgs.stratisd}/lib/udev/stratis-base32-decode"
"${pkgs.stratisd}/lib/udev/stratis-str-cmp"
"${pkgs.lvm2.bin}/bin/dmsetup"
"${pkgs.stratisd}/libexec/stratisd-min"
"${pkgs.stratisd.initrd}/bin/stratis-rootfs-setup"
];
packages = [pkgs.stratisd.initrd];
extraBin = {
thin_check = "${pkgs."thin-provisioning-tools"}/bin/thin_check";
thin_repair = "${pkgs."thin-provisioning-tools"}/bin/thin_repair";
thin_metadata_size = "${pkgs."thin-provisioning-tools"}/bin/thin_metadata_size";
stratis-min = "${pkgs.stratisd}/bin/stratis-min";
};
services =
lib.attrsets.mapAttrs' (
mountPoint: fileSystem: {
name = "stratis-setup-${fileSystem.stratis.poolUuid}";
value = {
description = "setup for Stratis root filesystem";
unitConfig.DefaultDependencies = "no";
conflicts = [ "shutdown.target" "initrd-switch-root.target" ];
onFailure = [ "emergency.target" ];
unitConfig.OnFailureJobMode = "isolate";
wants = [ "stratisd-min.service" "plymouth-start.service" ];
wantedBy = [ "initrd.target" ];
after = [ "paths.target" "plymouth-start.service" "stratisd-min.service" ];
before = [ "initrd.target" "shutdown.target" "initrd-switch-root.target" ];
environment.STRATIS_ROOTFS_UUID = fileSystem.stratis.poolUuid;
serviceConfig = {
Type = "oneshot";
ExecStart = "${pkgs.stratisd.initrd}/bin/stratis-rootfs-setup";
RemainAfterExit = "yes";
};
};
}
) requiredStratisFilesystems;
};
availableKernelModules = [ "dm-thin-pool" "dm-crypt" ] ++ [ "aes" "aes_generic" "blowfish" "twofish"
"serpent" "cbc" "xts" "lrw" "sha1" "sha256" "sha512"
"af_alg" "algif_skcipher"
];
services.udev.packages = [
pkgs.stratisd.initrd
pkgs.lvm2
];
};
};
}

View File

@@ -11,145 +11,64 @@ let
];
in
{
options.services.logind = {
extraConfig = mkOption {
options = {
services.logind.extraConfig = mkOption {
default = "";
type = types.lines;
example = "IdleAction=lock";
description = lib.mdDoc ''
Extra config options for systemd-logind.
See [logind.conf(5)](https://www.freedesktop.org/software/systemd/man/logind.conf.html)
for available options.
Extra config options for systemd-logind. See
[
logind.conf(5)](https://www.freedesktop.org/software/systemd/man/logind.conf.html) for available options.
'';
};
killUserProcesses = mkOption {
services.logind.killUserProcesses = mkOption {
default = false;
type = types.bool;
description = lib.mdDoc ''
Specifies whether the processes of a user should be killed
when the user logs out. If true, the scope unit corresponding
to the session and all processes inside that scope will be
terminated. If false, the scope is "abandoned"
(see [systemd.scope(5)](https://www.freedesktop.org/software/systemd/man/systemd.scope.html#)),
and processes are not killed.
terminated. If false, the scope is "abandoned" (see
[systemd.scope(5)](https://www.freedesktop.org/software/systemd/man/systemd.scope.html#)), and processes are not killed.
See [logind.conf(5)](https://www.freedesktop.org/software/systemd/man/logind.conf.html#KillUserProcesses=)
for more details.
'';
};
powerKey = mkOption {
default = "poweroff";
example = "ignore";
type = logindHandlerType;
description = lib.mdDoc ''
Specifies what to do when the power key is pressed.
'';
};
powerKeyLongPress = mkOption {
default = "ignore";
example = "reboot";
type = logindHandlerType;
description = lib.mdDoc ''
Specifies what to do when the power key is long-pressed.
'';
};
rebootKey = mkOption {
default = "reboot";
example = "ignore";
type = logindHandlerType;
description = lib.mdDoc ''
Specifies what to do when the reboot key is pressed.
'';
};
rebootKeyLongPress = mkOption {
default = "poweroff";
example = "ignore";
type = logindHandlerType;
description = lib.mdDoc ''
Specifies what to do when the reboot key is long-pressed.
'';
};
suspendKey = mkOption {
services.logind.lidSwitch = mkOption {
default = "suspend";
example = "ignore";
type = logindHandlerType;
description = lib.mdDoc ''
Specifies what to do when the suspend key is pressed.
Specifies what to be done when the laptop lid is closed.
'';
};
suspendKeyLongPress = mkOption {
default = "hibernate";
example = "ignore";
type = logindHandlerType;
description = lib.mdDoc ''
Specifies what to do when the suspend key is long-pressed.
'';
};
hibernateKey = mkOption {
default = "hibernate";
example = "ignore";
type = logindHandlerType;
description = lib.mdDoc ''
Specifies what to do when the hibernate key is pressed.
'';
};
hibernateKeyLongPress = mkOption {
services.logind.lidSwitchDocked = mkOption {
default = "ignore";
example = "suspend";
type = logindHandlerType;
description = lib.mdDoc ''
Specifies what to do when the hibernate key is long-pressed.
Specifies what to be done when the laptop lid is closed
and another screen is added.
'';
};
lidSwitch = mkOption {
default = "suspend";
example = "ignore";
type = logindHandlerType;
description = lib.mdDoc ''
Specifies what to do when the laptop lid is closed.
'';
};
lidSwitchExternalPower = mkOption {
services.logind.lidSwitchExternalPower = mkOption {
default = cfg.lidSwitch;
defaultText = literalExpression "services.logind.lidSwitch";
example = "ignore";
type = logindHandlerType;
description = lib.mdDoc ''
Specifies what to do when the laptop lid is closed
and the system is on external power. By default use
the same action as specified in services.logind.lidSwitch.
'';
};
lidSwitchDocked = mkOption {
default = "ignore";
example = "suspend";
type = logindHandlerType;
description = lib.mdDoc ''
Specifies what to do when the laptop lid is closed
and another screen is added.
Specifies what to do when the laptop lid is closed and the system is
on external power. By default use the same action as specified in
services.logind.lidSwitch.
'';
};
};
@@ -175,17 +94,9 @@ in
"systemd/logind.conf".text = ''
[Login]
KillUserProcesses=${if cfg.killUserProcesses then "yes" else "no"}
HandlePowerKey=${cfg.powerKey}
HandlePowerKeyLongPress=${cfg.powerKeyLongPress}
HandleRebootKey=${cfg.rebootKey}
HandleRebootKeyLongPress=${cfg.rebootKeyLongPress}
HandleSuspendKey=${cfg.suspendKey}
HandleSuspendKeyLongPress=${cfg.suspendKeyLongPress}
HandleHibernateKey=${cfg.hibernateKey}
HandleHibernateKeyLongPress=${cfg.hibernateKeyLongPress}
HandleLidSwitch=${cfg.lidSwitch}
HandleLidSwitchExternalPower=${cfg.lidSwitchExternalPower}
HandleLidSwitchDocked=${cfg.lidSwitchDocked}
HandleLidSwitchExternalPower=${cfg.lidSwitchExternalPower}
${cfg.extraConfig}
'';
};

View File

@@ -36,15 +36,6 @@ let
description = lib.mdDoc "Location of the mounted file system.";
};
stratis.poolUuid = lib.mkOption {
type = types.uniq (types.nullOr types.str);
description = lib.mdDoc ''
UUID of the stratis pool that the fs is located in
'';
example = "04c68063-90a5-4235-b9dd-6180098a20d9";
default = null;
};
device = mkOption {
default = null;
example = "/dev/sda";

View File

@@ -293,7 +293,7 @@ let
script = ''
# Remove Dead Interfaces
echo "Removing old bridge ${n}..."
ip link show dev "${n}" >/dev/null 2>&1 && ip link del "${n}"
ip link show "${n}" >/dev/null 2>&1 && ip link del "${n}"
echo "Adding bridge ${n}..."
ip link add name "${n}" type bridge
@@ -459,7 +459,7 @@ let
path = [ pkgs.iproute2 ];
script = ''
# Remove Dead Interfaces
ip link show dev "${n}" >/dev/null 2>&1 && ip link delete "${n}"
ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}"
ip link add link "${v.interface}" name "${n}" type macvlan \
${optionalString (v.mode != null) "mode ${v.mode}"}
ip link set "${n}" up
@@ -517,7 +517,7 @@ let
path = [ pkgs.iproute2 ];
script = ''
# Remove Dead Interfaces
ip link show dev "${n}" >/dev/null 2>&1 && ip link delete "${n}"
ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}"
ip link add name "${n}" type sit \
${optionalString (v.remote != null) "remote \"${v.remote}\""} \
${optionalString (v.local != null) "local \"${v.local}\""} \
@@ -551,7 +551,7 @@ let
path = [ pkgs.iproute2 ];
script = ''
# Remove Dead Interfaces
ip link show dev "${n}" >/dev/null 2>&1 && ip link delete "${n}"
ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}"
ip link add name "${n}" type ${v.type} \
${optionalString (v.remote != null) "remote \"${v.remote}\""} \
${optionalString (v.local != null) "local \"${v.local}\""} \
@@ -579,7 +579,7 @@ let
path = [ pkgs.iproute2 ];
script = ''
# Remove Dead Interfaces
ip link show dev "${n}" >/dev/null 2>&1 && ip link delete "${n}"
ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}"
ip link add link "${v.interface}" name "${n}" type vlan id "${toString v.id}"
# We try to bring up the logical VLAN interface. If the master

View File

@@ -536,53 +536,5 @@ let self = {
"22.11".us-west-1.aarch64-linux.hvm-ebs = "ami-052d52b9e30a18562";
"22.11".us-west-2.aarch64-linux.hvm-ebs = "ami-07418b6a4782c9521";
# 23.05.426.afc48694f2a
"23.05".eu-west-1.x86_64-linux.hvm-ebs = "ami-0fc7825fe890f87d1";
"23.05".af-south-1.x86_64-linux.hvm-ebs = "ami-0df2f7b42bfbd53e5";
"23.05".ap-east-1.x86_64-linux.hvm-ebs = "ami-07ba84d7321f6f4bb";
"23.05".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-0e37827874573dbbf";
"23.05".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-0ff5b3b7738651895";
"23.05".ap-northeast-3.x86_64-linux.hvm-ebs = "ami-0a7861571eb44c70c";
"23.05".ap-south-1.x86_64-linux.hvm-ebs = "ami-05c4802ca81d7c95b";
"23.05".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-0aee8193da16bd2db";
"23.05".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-008be032289f60d16";
"23.05".ap-southeast-3.x86_64-linux.hvm-ebs = "ami-033debde7c1659c96";
"23.05".ca-central-1.x86_64-linux.hvm-ebs = "ami-031821b5f83896474";
"23.05".eu-central-1.x86_64-linux.hvm-ebs = "ami-0d6ee9d5e1c985df6";
"23.05".eu-north-1.x86_64-linux.hvm-ebs = "ami-0cecb1f67b2a837f6";
"23.05".eu-south-1.x86_64-linux.hvm-ebs = "ami-0f9fee15eb5a64ac4";
"23.05".eu-west-2.x86_64-linux.hvm-ebs = "ami-0e62fef78d2c4f031";
"23.05".eu-west-3.x86_64-linux.hvm-ebs = "ami-01a6e4c1659b08390";
"23.05".me-south-1.x86_64-linux.hvm-ebs = "ami-0a01a7eeffa8f0fd5";
"23.05".sa-east-1.x86_64-linux.hvm-ebs = "ami-09a1760227f929ccf";
"23.05".us-east-1.x86_64-linux.hvm-ebs = "ami-07df5833f04703a2a";
"23.05".us-east-2.x86_64-linux.hvm-ebs = "ami-04dd2f100d9665df5";
"23.05".us-west-1.x86_64-linux.hvm-ebs = "ami-0fe502361fea4216c";
"23.05".us-west-2.x86_64-linux.hvm-ebs = "ami-0749963dd978a57c7";
"23.05".eu-west-1.aarch64-linux.hvm-ebs = "ami-0a0609421e5638005";
"23.05".af-south-1.aarch64-linux.hvm-ebs = "ami-05d95a055aba9373e";
"23.05".ap-east-1.aarch64-linux.hvm-ebs = "ami-08ae0190b1357465b";
"23.05".ap-northeast-1.aarch64-linux.hvm-ebs = "ami-09418b2049c3c9533";
"23.05".ap-northeast-2.aarch64-linux.hvm-ebs = "ami-040713ad23b404271";
"23.05".ap-northeast-3.aarch64-linux.hvm-ebs = "ami-0c888d6c1d989db68";
"23.05".ap-south-1.aarch64-linux.hvm-ebs = "ami-02da38deb21545675";
"23.05".ap-southeast-1.aarch64-linux.hvm-ebs = "ami-06df0713468bea276";
"23.05".ap-southeast-2.aarch64-linux.hvm-ebs = "ami-0171ee37ae5104c06";
"23.05".ap-southeast-3.aarch64-linux.hvm-ebs = "ami-075da61f5fef1fe80";
"23.05".ca-central-1.aarch64-linux.hvm-ebs = "ami-0ba8bd0a3d0a596f8";
"23.05".eu-central-1.aarch64-linux.hvm-ebs = "ami-0891608ae66031439";
"23.05".eu-north-1.aarch64-linux.hvm-ebs = "ami-0a3ad7ef18d595c68";
"23.05".eu-south-1.aarch64-linux.hvm-ebs = "ami-0fa86b680aa9a0444";
"23.05".eu-west-2.aarch64-linux.hvm-ebs = "ami-0a415791078f05970";
"23.05".eu-west-3.aarch64-linux.hvm-ebs = "ami-05d9b146317962e3b";
"23.05".me-south-1.aarch64-linux.hvm-ebs = "ami-0019b591acf30aa66";
"23.05".sa-east-1.aarch64-linux.hvm-ebs = "ami-030d6c30d91f06cc7";
"23.05".us-east-1.aarch64-linux.hvm-ebs = "ami-0a061ca437b63df33";
"23.05".us-east-2.aarch64-linux.hvm-ebs = "ami-0bf0b2b8fdfda30e8";
"23.05".us-west-1.aarch64-linux.hvm-ebs = "ami-0e75c8f3deb1f842b";
"23.05".us-west-2.aarch64-linux.hvm-ebs = "ami-0d0979d889078d036";
latest = self."23.05";
latest = self."22.11";
}; in self

View File

@@ -1,15 +1,5 @@
{ config, lib, pkgs, ... }:
let
inherit (lib)
boolToString
mkDefault
mkIf
optional
readFile
;
in
with lib;
{
imports = [
../profiles/headless.nix
@@ -75,7 +65,7 @@ in
systemd.services.google-guest-agent = {
wantedBy = [ "multi-user.target" ];
restartTriggers = [ config.environment.etc."default/instance_configs.cfg".source ];
path = optional config.users.mutableUsers pkgs.shadow;
path = lib.optional config.users.mutableUsers pkgs.shadow;
};
systemd.services.google-startup-scripts.wantedBy = [ "multi-user.target" ];
systemd.services.google-shutdown-scripts.wantedBy = [ "multi-user.target" ];
@@ -86,7 +76,7 @@ in
users.groups.google-sudoers = mkIf config.users.mutableUsers { };
boot.extraModprobeConfig = readFile "${pkgs.google-guest-configs}/etc/modprobe.d/gce-blacklist.conf";
boot.extraModprobeConfig = lib.readFile "${pkgs.google-guest-configs}/etc/modprobe.d/gce-blacklist.conf";
environment.etc."sysctl.d/60-gce-network-security.conf".source = "${pkgs.google-guest-configs}/etc/sysctl.d/60-gce-network-security.conf";

View File

@@ -1,8 +1,11 @@
# This module creates a virtual machine from the NixOS configuration.
# Building the `config.system.build.vm' attribute gives you a command
# that starts a KVM/QEMU VM running the NixOS configuration defined in
# `config'. By default, the Nix store is shared read-only with the
# host, which makes (re)building VMs very efficient.
# `config'. The Nix store is shared read-only with the host, which
# makes (re)building VMs very efficient. However, it also means you
# can't reconfigure the guest inside the guest - you need to rebuild
# the VM in the host. On the other hand, the root filesystem is a
# read/writable disk image persistent across VM reboots.
{ config, lib, pkgs, options, ... }:
@@ -561,8 +564,7 @@ in
virtualisation.vlans =
mkOption {
type = types.listOf types.ints.unsigned;
default = if config.virtualisation.interfaces == {} then [ 1 ] else [ ];
defaultText = lib.literalExpression ''if config.virtualisation.interfaces == {} then [ 1 ] else [ ]'';
default = [ 1 ];
example = [ 1 2 ];
description =
lib.mdDoc ''
@@ -577,35 +579,6 @@ in
'';
};
virtualisation.interfaces = mkOption {
default = {};
example = {
enp1s0.vlan = 1;
};
description = lib.mdDoc ''
Network interfaces to add to the VM.
'';
type = with types; attrsOf (submodule {
options = {
vlan = mkOption {
type = types.ints.unsigned;
description = lib.mdDoc ''
VLAN to which the network interface is connected.
'';
};
assignIP = mkOption {
type = types.bool;
default = false;
description = lib.mdDoc ''
Automatically assign an IP address to the network interface using the same scheme as
virtualisation.vlans.
'';
};
};
});
};
virtualisation.writableStore =
mkOption {
type = types.bool;
@@ -775,11 +748,12 @@ in
default = false;
description =
lib.mdDoc ''
Use a boot loader to boot the system.
This allows, among other things, testing the boot loader.
If disabled, the kernel and initrd are directly booted,
forgoing any bootloader.
If enabled, the virtual machine will be booted using the
regular boot loader (i.e., GRUB 1 or 2). This allows
testing of the boot loader. If
disabled (the default), the VM directly boots the NixOS
kernel and initial ramdisk, bypassing the boot loader
altogether.
'';
};
@@ -1022,6 +996,7 @@ in
"-netdev user,id=user.0,${forwardingOptions}${restrictNetworkOption}\"$QEMU_NET_OPTS\""
];
# FIXME: Consolidate this one day.
virtualisation.qemu.options = mkMerge [
(mkIf cfg.qemu.virtioKeyboard [
"-device virtio-keyboard"
@@ -1073,12 +1048,14 @@ in
}) cfg.emptyDiskImages)
];
# Use mkVMOverride to enable building test VMs (e.g. via `nixos-rebuild
# build-vm`) of a system configuration, where the regular value for the
# `fileSystems' attribute should be disregarded (since those filesystems
# don't necessarily exist in the VM).
fileSystems = mkVMOverride cfg.fileSystems;
# Mount the host filesystem via 9P, and bind-mount the Nix store
# of the host into our own filesystem. We use mkVMOverride to
# allow this module to be applied to "normal" NixOS system
# configuration, where the regular value for the `fileSystems'
# attribute should be disregarded for the purpose of building a VM
# test image (since those filesystems don't exist in the VM).
virtualisation.fileSystems = let
mkSharedDir = tag: share:
{

View File

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

View File

@@ -21,7 +21,7 @@
"ln -s '${pkgs.aaaaxy.testing_infra}/assets/demos/benchmark.dem' '/tmp/aaaaxy/assets/demos/'",
"""
'${pkgs.aaaaxy.testing_infra}/scripts/regression-test-demo.sh' \
'aaaaxy' 'on track for Any%, All Paths, No Teleports and No Coil' \
'aaaaxy' 'on track for Any%, All Paths and No Teleports' \
'${pkgs.aaaaxy}/bin/aaaaxy' '/tmp/aaaaxy/assets/demos/benchmark.dem'
""",
)

View File

@@ -1,50 +0,0 @@
import ./make-test-python.nix ({ ... }: {
name = "acme-dns";
nodes.machine = { pkgs, ... }: {
services.acme-dns = {
enable = true;
settings = {
general = rec {
domain = "acme-dns.home.arpa";
nsname = domain;
nsadmin = "admin.home.arpa";
records = [
"${domain}. A 127.0.0.1"
"${domain}. AAAA ::1"
"${domain}. NS ${domain}."
];
};
logconfig.loglevel = "debug";
};
};
environment.systemPackages = with pkgs; [ curl bind ];
};
testScript = ''
import json
machine.wait_for_unit("acme-dns.service")
machine.wait_for_open_port(53) # dns
machine.wait_for_open_port(8080) # http api
result = machine.succeed("curl --fail -X POST http://localhost:8080/register")
print(result)
registration = json.loads(result)
machine.succeed(f'dig -t TXT @localhost {registration["fulldomain"]} | grep "SOA" | grep "admin.home.arpa"')
# acme-dns exspects a TXT value string length of exactly 43 chars
txt = "___dummy_validation_token_for_txt_record___"
machine.succeed(
"curl --fail -X POST http://localhost:8080/update "
+ f' -H "X-Api-User: {registration["username"]}"'
+ f' -H "X-Api-Key: {registration["password"]}"'
+ f' -d \'{{"subdomain":"{registration["subdomain"]}", "txt":"{txt}"}}\'''
)
assert txt in machine.succeed(f'dig -t TXT +short @localhost {registration["fulldomain"]}')
'';
})

View File

@@ -95,7 +95,6 @@ in {
_3proxy = runTest ./3proxy.nix;
aaaaxy = runTest ./aaaaxy.nix;
acme = runTest ./acme.nix;
acme-dns = handleTest ./acme-dns.nix {};
adguardhome = runTest ./adguardhome.nix;
aesmd = runTestOn ["x86_64-linux"] ./aesmd.nix;
agate = runTest ./web-servers/agate.nix;
@@ -171,7 +170,6 @@ in {
cntr = handleTestOn ["aarch64-linux" "x86_64-linux"] ./cntr.nix {};
cockpit = handleTest ./cockpit.nix {};
cockroachdb = handleTestOn ["x86_64-linux"] ./cockroachdb.nix {};
code-server = handleTest ./code-server.nix {};
coder = handleTest ./coder.nix {};
collectd = handleTest ./collectd.nix {};
connman = handleTest ./connman.nix {};
@@ -280,7 +278,6 @@ in {
fsck = handleTest ./fsck.nix {};
fsck-systemd-stage-1 = handleTest ./fsck.nix { systemdStage1 = true; };
ft2-clone = handleTest ./ft2-clone.nix {};
legit = handleTest ./legit.nix {};
mimir = handleTest ./mimir.nix {};
garage = handleTest ./garage {};
gemstash = handleTest ./gemstash.nix {};
@@ -524,7 +521,6 @@ in {
nginx-sandbox = handleTestOn ["x86_64-linux"] ./nginx-sandbox.nix {};
nginx-sso = handleTest ./nginx-sso.nix {};
nginx-variants = handleTest ./nginx-variants.nix {};
nginx-proxyprotocol = handleTest ./nginx-proxyprotocol {};
nifi = handleTestOn ["x86_64-linux"] ./web-apps/nifi.nix {};
nitter = handleTest ./nitter.nix {};
nix-ld = handleTest ./nix-ld.nix {};
@@ -559,7 +555,6 @@ in {
openstack-image-userdata = (handleTestOn ["x86_64-linux"] ./openstack-image.nix {}).userdata or {};
opentabletdriver = handleTest ./opentabletdriver.nix {};
owncast = handleTest ./owncast.nix {};
outline = handleTest ./outline.nix {};
image-contents = handleTest ./image-contents.nix {};
openvscode-server = handleTest ./openvscode-server.nix {};
orangefs = handleTest ./orangefs.nix {};
@@ -614,7 +609,6 @@ in {
postfix-raise-smtpd-tls-security-level = handleTest ./postfix-raise-smtpd-tls-security-level.nix {};
postfixadmin = handleTest ./postfixadmin.nix {};
postgis = handleTest ./postgis.nix {};
apache_datasketches = handleTest ./apache_datasketches.nix {};
postgresql = handleTest ./postgresql.nix {};
postgresql-jit = handleTest ./postgresql-jit.nix {};
postgresql-wal-receiver = handleTest ./postgresql-wal-receiver.nix {};

View File

@@ -1,29 +0,0 @@
import ./make-test-python.nix ({ pkgs, ...} : {
name = "postgis";
meta = with pkgs.lib.maintainers; {
maintainers = [ lsix ]; # TODO: Who's the maintener now?
};
nodes = {
master =
{ pkgs, ... }:
{
services.postgresql = let mypg = pkgs.postgresql_15; in {
enable = true;
package = mypg;
extraPlugins = with mypg.pkgs; [
apache_datasketches
];
};
};
};
testScript = ''
start_all()
master.wait_for_unit("postgresql")
master.sleep(10) # Hopefully this is long enough!!
master.succeed("sudo -u postgres psql -c 'CREATE EXTENSION datasketches;'")
master.succeed("sudo -u postgres psql -c 'SELECT hll_sketch_to_string(hll_sketch_build(1));'")
'';
})

View File

@@ -3,7 +3,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
meta.maintainers = lib.teams.cinnamon.members;
nodes.machine = { ... }: {
nodes.machine = { nodes, ... }: {
imports = [ ./common/user-account.nix ];
services.xserver.enable = true;
services.xserver.desktopManager.cinnamon.enable = true;
@@ -13,7 +13,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
testScript = { nodes, ... }:
let
user = nodes.machine.users.users.alice;
user = nodes.machine.config.users.users.alice;
uid = toString user.uid;
bus = "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/${uid}/bus";
display = "DISPLAY=:0.0";

View File

@@ -1,22 +0,0 @@
import ./make-test-python.nix ({pkgs, lib, ...}:
{
name = "code-server";
nodes = {
machine = {pkgs, ...}: {
services.code-server = {
enable = true;
auth = "none";
};
};
};
testScript = ''
start_all()
machine.wait_for_unit("code-server.service")
machine.wait_for_open_port(4444)
machine.succeed("curl -k --fail http://localhost:4444", timeout=10)
'';
meta.maintainers = [ lib.maintainers.drupol ];
})

View File

@@ -53,7 +53,7 @@ import ./make-test-python.nix ({ pkgs, ... } : let
[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = node1
@@ -79,26 +79,23 @@ import ./make-test-python.nix ({ pkgs, ... } : let
keyFile = etcd_key;
certFile = etcd_cert;
trustedCaFile = ca_pem;
clientCertAuth = true;
peerClientCertAuth = true;
listenClientUrls = ["https://127.0.0.1:2379"];
listenPeerUrls = ["https://0.0.0.0:2380"];
};
};
environment.variables = {
ETCD_CERT_FILE = "${etcd_client_cert}";
ETCD_KEY_FILE = "${etcd_client_key}";
ETCD_CA_FILE = "${ca_pem}";
ETCDCTL_ENDPOINTS = "https://127.0.0.1:2379";
ETCDCTL_CACERT = "${ca_pem}";
ETCDCTL_CERT = "${etcd_cert}";
ETCDCTL_KEY = "${etcd_key}";
ETCDCTL_CERT_FILE = "${etcd_client_cert}";
ETCDCTL_KEY_FILE = "${etcd_client_key}";
ETCDCTL_CA_FILE = "${ca_pem}";
ETCDCTL_PEERS = "https://127.0.0.1:2379";
};
networking.firewall.allowedTCPPorts = [ 2380 ];
};
in {
name = "etcd-cluster";
name = "etcd";
meta = with pkgs.lib.maintainers; {
maintainers = [ offline ];
@@ -137,21 +134,21 @@ in {
node2.start()
node1.wait_for_unit("etcd.service")
node2.wait_for_unit("etcd.service")
node2.wait_until_succeeds("etcdctl endpoint status")
node1.succeed("etcdctl put /foo/bar 'Hello world'")
node2.wait_until_succeeds("etcdctl cluster-health")
node1.succeed("etcdctl set /foo/bar 'Hello world'")
node2.succeed("etcdctl get /foo/bar | grep 'Hello world'")
with subtest("should add another member"):
node1.wait_until_succeeds("etcdctl member add node3 --peer-urls=https://node3:2380")
node1.wait_until_succeeds("etcdctl member add node3 https://node3:2380")
node3.start()
node3.wait_for_unit("etcd.service")
node3.wait_until_succeeds("etcdctl member list | grep 'node3'")
node3.succeed("etcdctl endpoint status")
node3.succeed("etcdctl cluster-health")
with subtest("should survive member crash"):
node3.crash()
node1.succeed("etcdctl endpoint status")
node1.succeed("etcdctl put /foo/bar 'Hello degraded world'")
node1.succeed("etcdctl cluster-health")
node1.succeed("etcdctl set /foo/bar 'Hello degraded world'")
node1.succeed("etcdctl get /foo/bar | grep 'Hello degraded world'")
'';
})

View File

@@ -19,7 +19,7 @@ import ./make-test-python.nix ({ pkgs, ... } : {
node.wait_for_unit("etcd.service")
with subtest("should write and read some values to etcd"):
node.succeed("etcdctl put /foo/bar 'Hello world'")
node.succeed("etcdctl set /foo/bar 'Hello world'")
node.succeed("etcdctl get /foo/bar | grep 'Hello world'")
'';
})

View File

@@ -19,13 +19,13 @@ let
aliceUsername = "alice";
aliceUserId = "2";
alicePassword = "R5twyCgU0uXC71wT9BBTCqLs6HFZ7h3L";
aliceProjectId = "1";
aliceProjectId = "2";
aliceProjectName = "test-alice";
bobUsername = "bob";
bobUserId = "3";
bobPassword = "XwkkBbl2SiIwabQzgcoaTbhsotijEEtF";
bobProjectId = "2";
bobProjectId = "3";
in {
name = "gitlab";
meta.maintainers = with lib.maintainers; [ globin yayayayaka ];

View File

@@ -27,7 +27,6 @@
simpleUefiGrub
simpleUefiGrubSpecialisation
simpleUefiSystemdBoot
stratisRoot
# swraid
zfsroot
;

View File

@@ -989,39 +989,4 @@ in {
)
'';
};
} // optionalAttrs systemdStage1 {
stratisRoot = makeInstallerTest "stratisRoot" {
createPartitions = ''
machine.succeed(
"sgdisk --zap-all /dev/vda",
"sgdisk --new=1:0:+100M --typecode=0:ef00 /dev/vda", # /boot
"sgdisk --new=2:0:+1G --typecode=0:8200 /dev/vda", # swap
"sgdisk --new=3:0:+5G --typecode=0:8300 /dev/vda", # /
"udevadm settle",
"mkfs.vfat /dev/vda1",
"mkswap /dev/vda2 -L swap",
"swapon -L swap",
"stratis pool create my-pool /dev/vda3",
"stratis filesystem create my-pool nixos",
"udevadm settle",
"mount /dev/stratis/my-pool/nixos /mnt",
"mkdir -p /mnt/boot",
"mount /dev/vda1 /mnt/boot"
)
'';
bootLoader = "systemd-boot";
extraInstallerConfig = { modulesPath, ...}: {
config = {
services.stratis.enable = true;
environment.systemPackages = [
pkgs.stratis-cli
pkgs.thin-provisioning-tools
pkgs.lvm2.bin
pkgs.stratisd.initrd
];
};
};
};
}

View File

@@ -63,27 +63,12 @@ import ./make-test-python.nix ({ pkgs, ... }:
''
start_all()
server.wait_for_unit("kanidm.service")
with subtest("Test HTTP interface"):
server.wait_until_succeeds("curl -sf https://${serverDomain} | grep Kanidm")
with subtest("Test LDAP interface"):
server.succeed("ldapsearch -H ldaps://${serverDomain}:636 -b '${ldapBaseDN}' -x '(name=test)'")
with subtest("Test CLI login"):
client.succeed("kanidm login -D anonymous")
client.succeed("kanidm self whoami | grep anonymous@${serverDomain}")
with subtest("Recover idm_admin account"):
# Must stop the server for account recovery or else kanidmd fails with
# "unable to lock kanidm exclusive lock at /var/lib/kanidm/kanidm.db.klock".
server.succeed("systemctl stop kanidm")
server.succeed("su - kanidm -c 'kanidmd recover-account -c ${serverConfigFile} idm_admin 2>&1 | rg -o \'[A-Za-z0-9]{48}\' '")
server.succeed("systemctl start kanidm")
with subtest("Test unixd connection"):
client.wait_for_unit("kanidm-unixd.service")
# TODO: client.wait_for_file("/run/kanidm-unixd/sock")
client.wait_until_succeeds("kanidm-unix status | grep working!")
server.wait_until_succeeds("curl -sf https://${serverDomain} | grep Kanidm")
server.succeed("ldapsearch -H ldaps://${serverDomain}:636 -b '${ldapBaseDN}' -x '(name=test)'")
client.succeed("kanidm login -D anonymous && kanidm self whoami | grep anonymous@${serverDomain}")
rv, result = server.execute("kanidmd recover_account -c ${serverConfigFile} idm_admin 2>&1 | rg -o '[A-Za-z0-9]{48}'")
assert rv == 0
client.wait_for_unit("kanidm-unixd.service")
client.succeed("kanidm_unixd_status | grep working!")
'';
})

View File

@@ -1,54 +0,0 @@
import ./make-test-python.nix ({ lib, pkgs, ... }:
let
port = 5000;
scanPath = "/var/lib/legit";
in
{
name = "legit-web";
meta.maintainers = [ lib.maintainers.ratsclub ];
nodes = {
server = { config, pkgs }: {
services.legit = {
enable = true;
settings = {
server.port = 5000;
repo = { inherit scanPath; };
};
};
environment.systemPackages = [ pkgs.git ];
};
};
testScript = { nodes, ... }:
let
strPort = builtins.toString port;
in
''
start_all()
server.wait_for_unit("network.target")
server.wait_for_unit("legit.service")
server.wait_until_succeeds(
"curl -f http://localhost:${strPort}"
)
server.succeed("${pkgs.writeShellScript "setup-legit-test-repo" ''
set -e
git init --bare -b master ${scanPath}/some-repo
git init -b master reference
cd reference
git remote add origin ${scanPath}/some-repo
date > date.txt
git add date.txt
git -c user.name=test -c user.email=test@localhost commit -m 'add date'
git push -u origin master
''}")
server.wait_until_succeeds(
"curl -f http://localhost:${strPort}/some-repo"
)
'';
})

View File

@@ -27,8 +27,6 @@ import ./make-test-python.nix (
};
};
testScript = ''
import os
start_all()
# Create a fake cache with Nginx service the static files

View File

@@ -93,19 +93,18 @@ let
name = "Static";
nodes.router = router;
nodes.client = { pkgs, ... }: with pkgs.lib; {
virtualisation.interfaces.enp1s0.vlan = 1;
virtualisation.interfaces.enp2s0.vlan = 2;
virtualisation.vlans = [ 1 2 ];
networking = {
useNetworkd = networkd;
useDHCP = false;
defaultGateway = "192.168.1.1";
defaultGateway6 = "fd00:1234:5678:1::1";
interfaces.enp1s0.ipv4.addresses = [
interfaces.eth1.ipv4.addresses = mkOverride 0 [
{ address = "192.168.1.2"; prefixLength = 24; }
{ address = "192.168.1.3"; prefixLength = 32; }
{ address = "192.168.1.10"; prefixLength = 32; }
];
interfaces.enp2s0.ipv4.addresses = [
interfaces.eth2.ipv4.addresses = mkOverride 0 [
{ address = "192.168.2.2"; prefixLength = 24; }
];
};
@@ -171,12 +170,12 @@ let
# Disable test driver default config
networking.interfaces = lib.mkForce {};
networking.useNetworkd = networkd;
virtualisation.interfaces.enp1s0.vlan = 1;
virtualisation.vlans = [ 1 ];
};
testScript = ''
start_all()
client.wait_for_unit("multi-user.target")
client.wait_until_succeeds("ip addr show dev enp1s0 | grep '192.168.1'")
client.wait_until_succeeds("ip addr show dev eth1 | grep '192.168.1'")
client.shell_interact()
client.succeed("ping -c 1 192.168.1.1")
router.succeed("ping -c 1 192.168.1.1")
@@ -188,13 +187,20 @@ let
name = "SimpleDHCP";
nodes.router = router;
nodes.client = { pkgs, ... }: with pkgs.lib; {
virtualisation.interfaces.enp1s0.vlan = 1;
virtualisation.interfaces.enp2s0.vlan = 2;
virtualisation.vlans = [ 1 2 ];
networking = {
useNetworkd = networkd;
useDHCP = false;
interfaces.enp1s0.useDHCP = true;
interfaces.enp2s0.useDHCP = true;
interfaces.eth1 = {
ipv4.addresses = mkOverride 0 [ ];
ipv6.addresses = mkOverride 0 [ ];
useDHCP = true;
};
interfaces.eth2 = {
ipv4.addresses = mkOverride 0 [ ];
ipv6.addresses = mkOverride 0 [ ];
useDHCP = true;
};
};
};
testScript = { ... }:
@@ -205,10 +211,10 @@ let
router.wait_for_unit("network-online.target")
with subtest("Wait until we have an ip address on each interface"):
client.wait_until_succeeds("ip addr show dev enp1s0 | grep -q '192.168.1'")
client.wait_until_succeeds("ip addr show dev enp1s0 | grep -q 'fd00:1234:5678:1:'")
client.wait_until_succeeds("ip addr show dev enp2s0 | grep -q '192.168.2'")
client.wait_until_succeeds("ip addr show dev enp2s0 | grep -q 'fd00:1234:5678:2:'")
client.wait_until_succeeds("ip addr show dev eth1 | grep -q '192.168.1'")
client.wait_until_succeeds("ip addr show dev eth1 | grep -q 'fd00:1234:5678:1:'")
client.wait_until_succeeds("ip addr show dev eth2 | grep -q '192.168.2'")
client.wait_until_succeeds("ip addr show dev eth2 | grep -q 'fd00:1234:5678:2:'")
with subtest("Test vlan 1"):
client.wait_until_succeeds("ping -c 1 192.168.1.1")
@@ -237,15 +243,16 @@ let
name = "OneInterfaceDHCP";
nodes.router = router;
nodes.client = { pkgs, ... }: with pkgs.lib; {
virtualisation.interfaces.enp1s0.vlan = 1;
virtualisation.interfaces.enp2s0.vlan = 2;
virtualisation.vlans = [ 1 2 ];
networking = {
useNetworkd = networkd;
useDHCP = false;
interfaces.enp1s0 = {
interfaces.eth1 = {
ipv4.addresses = mkOverride 0 [ ];
mtu = 1343;
useDHCP = true;
};
interfaces.eth2.ipv4.addresses = mkOverride 0 [ ];
};
};
testScript = { ... }:
@@ -257,10 +264,10 @@ let
router.wait_for_unit("network.target")
with subtest("Wait until we have an ip address on each interface"):
client.wait_until_succeeds("ip addr show dev enp1s0 | grep -q '192.168.1'")
client.wait_until_succeeds("ip addr show dev eth1 | grep -q '192.168.1'")
with subtest("ensure MTU is set"):
assert "mtu 1343" in client.succeed("ip link show dev enp1s0")
assert "mtu 1343" in client.succeed("ip link show dev eth1")
with subtest("Test vlan 1"):
client.wait_until_succeeds("ping -c 1 192.168.1.1")
@@ -279,15 +286,16 @@ let
};
bond = let
node = address: { pkgs, ... }: with pkgs.lib; {
virtualisation.interfaces.enp1s0.vlan = 1;
virtualisation.interfaces.enp2s0.vlan = 2;
virtualisation.vlans = [ 1 2 ];
networking = {
useNetworkd = networkd;
useDHCP = false;
bonds.bond0 = {
interfaces = [ "enp1s0" "enp2s0" ];
interfaces = [ "eth1" "eth2" ];
driverOptions.mode = "802.3ad";
};
interfaces.eth1.ipv4.addresses = mkOverride 0 [ ];
interfaces.eth2.ipv4.addresses = mkOverride 0 [ ];
interfaces.bond0.ipv4.addresses = mkOverride 0
[ { inherit address; prefixLength = 30; } ];
};
@@ -318,11 +326,12 @@ let
};
bridge = let
node = { address, vlan }: { pkgs, ... }: with pkgs.lib; {
virtualisation.interfaces.enp1s0.vlan = vlan;
virtualisation.vlans = [ vlan ];
networking = {
useNetworkd = networkd;
useDHCP = false;
interfaces.enp1s0.ipv4.addresses = [ { inherit address; prefixLength = 24; } ];
interfaces.eth1.ipv4.addresses = mkOverride 0
[ { inherit address; prefixLength = 24; } ];
};
};
in {
@@ -330,12 +339,11 @@ let
nodes.client1 = node { address = "192.168.1.2"; vlan = 1; };
nodes.client2 = node { address = "192.168.1.3"; vlan = 2; };
nodes.router = { pkgs, ... }: with pkgs.lib; {
virtualisation.interfaces.enp1s0.vlan = 1;
virtualisation.interfaces.enp2s0.vlan = 2;
virtualisation.vlans = [ 1 2 ];
networking = {
useNetworkd = networkd;
useDHCP = false;
bridges.bridge.interfaces = [ "enp1s0" "enp2s0" ];
bridges.bridge.interfaces = [ "eth1" "eth2" ];
interfaces.eth1.ipv4.addresses = mkOverride 0 [ ];
interfaces.eth2.ipv4.addresses = mkOverride 0 [ ];
interfaces.bridge.ipv4.addresses = mkOverride 0
@@ -369,7 +377,7 @@ let
nodes.router = router;
nodes.client = { pkgs, ... }: with pkgs.lib; {
environment.systemPackages = [ pkgs.iptables ]; # to debug firewall rules
virtualisation.interfaces.enp1s0.vlan = 1;
virtualisation.vlans = [ 1 ];
networking = {
useNetworkd = networkd;
useDHCP = false;
@@ -377,9 +385,14 @@ let
# reverse path filtering rules for the macvlan interface seem
# to be incorrect, causing the test to fail. Disable temporarily.
firewall.checkReversePath = false;
macvlans.macvlan.interface = "enp1s0";
interfaces.enp1s0.useDHCP = true;
interfaces.macvlan.useDHCP = true;
macvlans.macvlan.interface = "eth1";
interfaces.eth1 = {
ipv4.addresses = mkOverride 0 [ ];
useDHCP = true;
};
interfaces.macvlan = {
useDHCP = true;
};
};
};
testScript = { ... }:
@@ -391,7 +404,7 @@ let
router.wait_for_unit("network.target")
with subtest("Wait until we have an ip address on each interface"):
client.wait_until_succeeds("ip addr show dev enp1s0 | grep -q '192.168.1'")
client.wait_until_succeeds("ip addr show dev eth1 | grep -q '192.168.1'")
client.wait_until_succeeds("ip addr show dev macvlan | grep -q '192.168.1'")
with subtest("Print lots of diagnostic information"):
@@ -418,22 +431,23 @@ let
fou = {
name = "foo-over-udp";
nodes.machine = { ... }: {
virtualisation.interfaces.enp1s0.vlan = 1;
virtualisation.vlans = [ 1 ];
networking = {
useNetworkd = networkd;
useDHCP = false;
interfaces.enp1s0.ipv4.addresses = [ { address = "192.168.1.1"; prefixLength = 24; } ];
interfaces.eth1.ipv4.addresses = mkOverride 0
[ { address = "192.168.1.1"; prefixLength = 24; } ];
fooOverUDP = {
fou1 = { port = 9001; };
fou2 = { port = 9002; protocol = 41; };
fou3 = mkIf (!networkd)
{ port = 9003; local.address = "192.168.1.1"; };
fou4 = mkIf (!networkd)
{ port = 9004; local = { address = "192.168.1.1"; dev = "enp1s0"; }; };
{ port = 9004; local = { address = "192.168.1.1"; dev = "eth1"; }; };
};
};
systemd.services = {
fou3-fou-encap.after = optional (!networkd) "network-addresses-enp1s0.service";
fou3-fou-encap.after = optional (!networkd) "network-addresses-eth1.service";
};
};
testScript = { ... }:
@@ -456,22 +470,22 @@ let
"gue": None,
"family": "inet",
"local": "192.168.1.1",
"dev": "enp1s0",
"dev": "eth1",
} in fous, "fou4 exists"
'';
};
sit = let
node = { address4, remote, address6 }: { pkgs, ... }: with pkgs.lib; {
virtualisation.interfaces.enp1s0.vlan = 1;
virtualisation.vlans = [ 1 ];
networking = {
useNetworkd = networkd;
useDHCP = false;
sits.sit = {
inherit remote;
local = address4;
dev = "enp1s0";
dev = "eth1";
};
interfaces.enp1s0.ipv4.addresses = mkOverride 0
interfaces.eth1.ipv4.addresses = mkOverride 0
[ { address = address4; prefixLength = 24; } ];
interfaces.sit.ipv6.addresses = mkOverride 0
[ { address = address6; prefixLength = 64; } ];
@@ -671,10 +685,10 @@ let
vlan-ping = let
baseIP = number: "10.10.10.${number}";
vlanIP = number: "10.1.1.${number}";
baseInterface = "enp1s0";
baseInterface = "eth1";
vlanInterface = "vlan42";
node = number: {pkgs, ... }: with pkgs.lib; {
virtualisation.interfaces.enp1s0.vlan = 1;
virtualisation.vlans = [ 1 ];
networking = {
#useNetworkd = networkd;
useDHCP = false;
@@ -771,12 +785,12 @@ let
privacy = {
name = "Privacy";
nodes.router = { ... }: {
virtualisation.interfaces.enp1s0.vlan = 1;
virtualisation.vlans = [ 1 ];
boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = true;
networking = {
useNetworkd = networkd;
useDHCP = false;
interfaces.enp1s0.ipv6.addresses = singleton {
interfaces.eth1.ipv6.addresses = singleton {
address = "fd00:1234:5678:1::1";
prefixLength = 64;
};
@@ -784,7 +798,7 @@ let
services.radvd = {
enable = true;
config = ''
interface enp1s0 {
interface eth1 {
AdvSendAdvert on;
AdvManagedFlag on;
AdvOtherConfigFlag on;
@@ -798,11 +812,11 @@ let
};
};
nodes.client_with_privacy = { pkgs, ... }: with pkgs.lib; {
virtualisation.interfaces.enp1s0.vlan = 1;
virtualisation.vlans = [ 1 ];
networking = {
useNetworkd = networkd;
useDHCP = false;
interfaces.enp1s0 = {
interfaces.eth1 = {
tempAddress = "default";
ipv4.addresses = mkOverride 0 [ ];
ipv6.addresses = mkOverride 0 [ ];
@@ -811,11 +825,11 @@ let
};
};
nodes.client = { pkgs, ... }: with pkgs.lib; {
virtualisation.interfaces.enp1s0.vlan = 1;
virtualisation.vlans = [ 1 ];
networking = {
useNetworkd = networkd;
useDHCP = false;
interfaces.enp1s0 = {
interfaces.eth1 = {
tempAddress = "enabled";
ipv4.addresses = mkOverride 0 [ ];
ipv6.addresses = mkOverride 0 [ ];
@@ -833,9 +847,9 @@ let
with subtest("Wait until we have an ip address"):
client_with_privacy.wait_until_succeeds(
"ip addr show dev enp1s0 | grep -q 'fd00:1234:5678:1:'"
"ip addr show dev eth1 | grep -q 'fd00:1234:5678:1:'"
)
client.wait_until_succeeds("ip addr show dev enp1s0 | grep -q 'fd00:1234:5678:1:'")
client.wait_until_succeeds("ip addr show dev eth1 | grep -q 'fd00:1234:5678:1:'")
with subtest("Test vlan 1"):
client_with_privacy.wait_until_succeeds("ping -c 1 fd00:1234:5678:1::1")
@@ -933,7 +947,7 @@ let
), "The IPv6 routing table has not been properly cleaned:\n{}".format(ipv6Residue)
'';
};
rename = if networkd then {
rename = {
name = "RenameInterface";
nodes.machine = { pkgs, ... }: {
virtualisation.vlans = [ 1 ];
@@ -941,20 +955,23 @@ let
useNetworkd = networkd;
useDHCP = false;
};
systemd.network.links."10-custom_name" = {
matchConfig.MACAddress = "52:54:00:12:01:01";
linkConfig.Name = "custom_name";
};
};
} //
(if networkd
then { systemd.network.links."10-custom_name" = {
matchConfig.MACAddress = "52:54:00:12:01:01";
linkConfig.Name = "custom_name";
};
}
else { boot.initrd.services.udev.rules = ''
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:12:01:01", KERNEL=="eth*", NAME="custom_name"
'';
});
testScript = ''
machine.succeed("udevadm settle")
print(machine.succeed("ip link show dev custom_name"))
'';
} else {
name = "RenameInterface";
nodes = { };
testScript = "";
};
nodes = { };
# even with disabled networkd, systemd.network.links should work
# (as it's handled by udev, not networkd)
link = {
@@ -998,46 +1015,6 @@ let
machine.fail("ip address show wlan0 | grep -q ${testMac}")
'';
};
naughtyInterfaceNames = let
ifnames = [
# flags of ip-address
"home" "temporary" "optimistic"
"bridge_slave" "flush"
# flags of ip-route
"up" "type" "nomaster" "address"
# other
"very_loong_name" "lowerUpper" "-"
];
in {
name = "naughtyInterfaceNames";
nodes.machine = { pkgs, ... }: {
networking.useNetworkd = networkd;
networking.bridges = listToAttrs
(flip map ifnames
(name: { inherit name; value.interfaces = []; }));
};
testScript = ''
machine.start()
machine.wait_for_unit("network.target")
for ifname in ${builtins.toJSON ifnames}:
machine.wait_until_succeeds(f"ip link show dev '{ifname}' | grep -q '{ifname}'")
'';
};
caseSensitiveRenaming = {
name = "CaseSensitiveRenaming";
nodes.machine = { pkgs, ... }: {
virtualisation.interfaces.enCustom.vlan = 11;
networking = {
useNetworkd = networkd;
useDHCP = false;
};
};
testScript = ''
machine.succeed("udevadm settle")
print(machine.succeed("ip link show dev enCustom"))
machine.wait_until_succeeds("ip link show dev enCustom | grep -q '52:54:00:12:0b:01")
'';
};
};
in mapAttrs (const (attrs: makeTest (attrs // {

View File

@@ -76,19 +76,19 @@ in
server.wait_for_open_port(443)
# Check http connections
client.succeed("curl --verbose --http3-only https://acme.test | grep 'Hello World!'")
client.succeed("curl --verbose --http3 https://acme.test | grep 'Hello World!'")
# Check downloadings
client.succeed("curl --verbose --http3-only https://acme.test/example.txt --output /tmp/example.txt")
client.succeed("curl --verbose --http3 https://acme.test/example.txt --output /tmp/example.txt")
client.succeed("cat /tmp/example.txt | grep 'Check http3 protocol.'")
# Check header reading
client.succeed("curl --verbose --http3-only --head https://acme.test | grep 'content-type'")
client.succeed("curl --verbose --http3-only --head https://acme.test | grep 'HTTP/3 200'")
client.succeed("curl --verbose --http3-only --head https://acme.test/error | grep 'HTTP/3 404'")
client.succeed("curl --verbose --http3 --head https://acme.test | grep 'content-type'")
client.succeed("curl --verbose --http3 --head https://acme.test | grep 'HTTP/3 200'")
client.succeed("curl --verbose --http3 --head https://acme.test/error | grep 'HTTP/3 404'")
# Check change User-Agent
client.succeed("curl --verbose --http3-only --user-agent 'Curl test 3.0' https://acme.test")
client.succeed("curl --verbose --http3 --user-agent 'Curl test 3.0' https://acme.test")
server.succeed("cat /var/log/nginx/access.log | grep 'Curl test 3.0'")
server.shutdown()

View File

@@ -1,20 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIDLjCCAhagAwIBAgIIP2+4GFxOYMgwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UE
AxMVbWluaWNhIHJvb3QgY2EgNGU3NTJiMB4XDTIzMDEzMDAzNDExOFoXDTQzMDEz
MDAzNDExOFowFTETMBEGA1UEAwwKKi50ZXN0Lm5peDCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAMarJSCzelnzTMT5GMoIKA/MXBNk5j277uI2Gq2MCky/
DlBpx+tjSsKsz6QLBduKMF8OH5AgjrVAKQAtsVPDseY0Qcyx/5dgJjkdO4on+DFb
V0SJ3ZhYPKACrqQ1SaoG+Xup37puw7sVR13J7oNvP6fAYRcjYqCiFC7VMjJNG4dR
251jvWWidSc7v5CYw2AxrngtBgHeQuyG9QCJ1DRH8h6ioV7IeonwReN7noYtTWh8
NDjGnw9HH2nYMcL91E+DWCxWVmbC9/orvYOT7u0Orho0t1w9BB0/zzcdojwQpMCv
HahEmFQmdGbWTuI4caBeaDBJVsSwKlTcxLSS4MAZ0c8CAwEAAaN3MHUwDgYDVR0P
AQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMB
Af8EAjAAMB8GA1UdIwQYMBaAFGyXySYI3gL88d7GHnGMU6wpiBf2MBUGA1UdEQQO
MAyCCioudGVzdC5uaXgwDQYJKoZIhvcNAQELBQADggEBAJ/DpwiLVBgWyozsn++f
kR4m0dUjnuCgpHo2EMoMZh+9og+OC0vq6WITXHaJytB3aBMxFOUTim3vwxPyWPXX
/vy+q6jJ6QMLx1J3VIWZdmXsT+qLGbVzL/4gNoaRsLPGO06p3yVjhas+OBFx1Fee
6kTHb82S/dzBojOJLRRo18CU9yw0FUXOPqN7HF7k2y+Twe6+iwCuCKGSFcvmRjxe
bWy11C921bTienW0Rmq6ppFWDaUNYP8kKpMN2ViAvc0tyF6wwk5lyOiqCR+pQHJR
H/J4qSeKDchYLKECuzd6SySz8FW/xPKogQ28zba+DBD86hpqiEJOBzxbrcN3cjUn
7N4=
-----END CERTIFICATE-----

View File

@@ -1,27 +0,0 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAxqslILN6WfNMxPkYyggoD8xcE2TmPbvu4jYarYwKTL8OUGnH
62NKwqzPpAsF24owXw4fkCCOtUApAC2xU8Ox5jRBzLH/l2AmOR07iif4MVtXRInd
mFg8oAKupDVJqgb5e6nfum7DuxVHXcnug28/p8BhFyNioKIULtUyMk0bh1HbnWO9
ZaJ1Jzu/kJjDYDGueC0GAd5C7Ib1AInUNEfyHqKhXsh6ifBF43uehi1NaHw0OMaf
D0cfadgxwv3UT4NYLFZWZsL3+iu9g5Pu7Q6uGjS3XD0EHT/PNx2iPBCkwK8dqESY
VCZ0ZtZO4jhxoF5oMElWxLAqVNzEtJLgwBnRzwIDAQABAoIBAFuNGOH184cqKJGI
3RSVJ6kIGtJRKA0A4vfZyPd61nBBhx4lcRyXOCd4LYPCFKP0DZBwWLk5V6pM89gC
NnqMbxnPsRbcXBVtGJAvWXW0L5rHJfMOuVBwMRfnxIUljVnONv/264PlcUtwZd/h
o4lsJeBvNg7MnrG5nyVp1+T4RZxYm1P86HLp5zyT+fdj4Cr82b9j6QpxGXEfm1jV
QA1xr1ZkrV8fgETyaE0TBIKcdt6xNfv1mpI1RE5gaP/YzcCs/mL+G0kMar4l7pO/
6OHXTvHz+W3G6Xlha7Wq1ADoqYz2K7VoL/OgSQhIxRNujyWR6lir7eladVrKkCzu
uzFi/HECgYEA0vSNCIK3useSypMPHhYUVNbZ4hbK0WgqSAxfJQtL3nC7KviVMAXj
IKVR90xuzJB+ih88KCJpH84JH90paMpW0Gq1yEae90bnWa8Nj7ULLS/Zuj0WrelU
+DEGbx47IUPOtiLBxooxFKyIVhX3hWRwZ0pokSQzbgb5zYnlM6tqZ3cCgYEA8Rb2
wtt0XmqEQedFacs4fobJoVWMcETjpuxYp0m5Kje/4QkptZIbspXGBgNtPBBRGg51
AYSu8wYkGEueI77KiFDgY8AAkpOk2MrMVPszjOhUiO1oEfbT6ynOY5RDOuXcY6jo
8RpSk46VkfVxt6LVmappqcVFtVWcAjdGfXeSLmkCgYAWP7SgMSkvidzxgJEXmzyJ
th9EuSKq81GCR8vBHG/kBf+3iIAzkGtkBgufCXCmIpc1+hVeJkLwF8rekXTMmIqP
cLG7bbdWXSQJUW0cuvtyyJkuC0NZFELh6knDbmzOFVi33PKS/gAvLgMzER4J843n
VvGwXSEPeazfAKwrxuhyAQKBgQCOm5TPYlyNVNhy20h18d2zCivOoPn3luhKXtd5
7OP4kw2PIYpoesqjcnC2MeS1eLlgfli70y5hVqqXLHOYlUzcIWr51iMAkREbo6oG
QqkVmoAWlsfOiICGRC5vPM4f0sPwt4NCyt05p0fWFKd1hn5u7Ryfba90OfWUYfny
UX5IsQKBgQCswer4Qc3UepkiYxGwSTxgIh4kYlmamU2I00Kar4uFAr9JsCbk98f0
kaCUNZjrrvTwgRmdhwcpMDiMW/F4QkNk0I2unHcoAvzNop6c22VhHJU2XJhrQ57h
n1iPiw0NLXiA4RQwMUMjtt3nqlpLOTXGtsF8TmpWPcAN2QcTxOutzw==
-----END RSA PRIVATE KEY-----

View File

@@ -1,20 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIDSzCCAjOgAwIBAgIITnUr3xFw4oEwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UE
AxMVbWluaWNhIHJvb3QgY2EgNGU3NTJiMCAXDTIzMDEzMDAzNDExOFoYDzIxMjMw
MTMwMDM0MTE4WjAgMR4wHAYDVQQDExVtaW5pY2Egcm9vdCBjYSA0ZTc1MmIwggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1SrJT9k3zXIXApEyL5UDlw7F6
MMOqE5d+8ZwMccHbEKLu0ssNRY+j31tnNYQ/r5iCNeNgUZccKBgzdU0ysyw5n4tw
0y+MTD9fCfUXYcc8pJRPRolo6zxYO9W7WJr0nfJZ+p7zFRAjRCmzXdnZjKz0EGcg
x9mHwn//3SuLt1ItK1n3aZ6im9NlcVtunDe3lCSL0tRgy7wDGNvWDZMO49jk4AFU
BlMqScuiNpUzYgCxNaaGMuH3M0f0YyRAxSs6FWewLtqTIaVql7HL+3PcGAhvlKEZ
fvfaf80F9aWI88sbEddTA0s5837zEoDwGpZl3K5sPU/O3MVEHIhAY5ICG0IBAgMB
AAGjgYYwgYMwDgYDVR0PAQH/BAQDAgKEMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggr
BgEFBQcDAjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRsl8kmCN4C/PHe
xh5xjFOsKYgX9jAfBgNVHSMEGDAWgBRsl8kmCN4C/PHexh5xjFOsKYgX9jANBgkq
hkiG9w0BAQsFAAOCAQEAmvgpU+q+TBbz+9Y2rdiIeTfeDXtMNPf+nKI3zxYztRGC
MoKP6jCQaFSQra4BVumFLV38DoqR1pOV1ojkiyO5c/9Iym/1Wmm8LeqgsHNqSgyS
C7wvBcb/N9PzIBQFq/RiboDoC7bqK/0zQguCmBtGceH+AVpQyfXM+P78B1EkHozu
67igP8GfouPp2s4Vd5P2XGkA6vMgYCtFEnCbtmmo7C8B+ymhD/D9axpMKQ1OaBg9
jfqLOlk+Rc2nYZuaDjnUmlTkYjC6EwCNe9weYkSJgQ9QzoGJLIRARsdQdsp3C2fZ
l2UZKkDJ2GPrrc+TdaGXZTYi0uMmvQsEKZXtqAzorQ==
-----END CERTIFICATE-----

View File

@@ -1,27 +0,0 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAtUqyU/ZN81yFwKRMi+VA5cOxejDDqhOXfvGcDHHB2xCi7tLL
DUWPo99bZzWEP6+YgjXjYFGXHCgYM3VNMrMsOZ+LcNMvjEw/Xwn1F2HHPKSUT0aJ
aOs8WDvVu1ia9J3yWfqe8xUQI0Qps13Z2Yys9BBnIMfZh8J//90ri7dSLStZ92me
opvTZXFbbpw3t5Qki9LUYMu8Axjb1g2TDuPY5OABVAZTKknLojaVM2IAsTWmhjLh
9zNH9GMkQMUrOhVnsC7akyGlapexy/tz3BgIb5ShGX732n/NBfWliPPLGxHXUwNL
OfN+8xKA8BqWZdyubD1PztzFRByIQGOSAhtCAQIDAQABAoIBAQCLeAWs1kWtvTYg
t8UzspC0slItAKrmgt//hvxYDoPmdewC8yPG+AbDOSfmRKOTIxGeyro79UjdHnNP
0yQqpvCU/AqYJ7/inR37jXuCG3TdUHfQbSF1F9N6xb1tvYKoQYKaelYiB8g8eUnj
dYYM+U5tDNlpvJW6/YTfYFUJzWRo3i8jj5lhbkjcJDvdOhVxMXNXJgJAymu1KysE
N1da2l4fzmuoN82wFE9KMyYSn+LOLWBReQQmXHZPP+2LjRIVrWoFoV49k2Ylp9tH
yeaFx1Ya/wVx3PRnSW+zebWDcc0bAua9XU3Fi42yRq5iXOyoXHyefDfJoId7+GAO
IF2qRw9hAoGBAM1O1l4ceOEDsEBh7HWTvmfwVfkXgT6VHeI6LGEjb88FApXgT+wT
1s1IWVVOigLl9OKQbrjqlg9xgzrPDHYRwu5/Oz3X2WaH6wlF+d+okoqls6sCEAeo
GfzF3sKOHQyIYjttCXE5G38uhIgVFFFfK97AbUiY8egYBr0zjVXK7xINAoGBAOIN
1pDBFBQIoKj64opm/G9lJBLUpWLBFdWXhXS6q2jNsdY1mLMRmu/RBaKSfGz7W1a/
a2WBedjcnTWJ/84tBsn4Qj5tLl8xkcXiN/pslWzg724ZnVsbyxM9KvAdXAma3F0g
2EsYq8mhvbAEkpE+aoM6jwOJBnMhTRZrNMKN2lbFAoGAHmZWB4lfvLG3H1FgmehO
gUVs9X0tff7GdgD3IUsF+zlasKaOLv6hB7R2xdLjTJqQMBwCyQ6zOYYtUD/oMHNg
0b+1HesgHbZybuUVorBrQmxWtjOP/BJABtWlrlkso/Zt1S7H/yPdlm9k4GF+qK3W
6RzFEcLTzvH/zXQcsV9jFuECgYEAhaX+1KiC0XFkY2OpaoCHAOlAUa3NdjyIRzcF
XUU8MINkgCxB8qUXAHCJL1wCGoDluL0FpwbM3m1YuR200tYGLIUNzVDJ2Ng6wk8E
H5fxJGU8ydB1Gzescdx5NWt2Tet0G89ecc/NSTHKL3YUnbDUUm/dvA5YdNscc4PA
tsIdc60CgYEArvU1MwqGQUTDKUmaM2t3qm70fbwmOViHfyTWpn4aAQR3sK16iJMm
V+dka62L/VYs5CIbzXvCioyugUMZGJi/zIwrViRzqJQbNnPADAW4lG88UxXqHHAH
q33ivjgd9omGFb37saKOmR44KmjUIDvSIZF4W3EPwAMEyl5mM31Ryns=
-----END RSA PRIVATE KEY-----

View File

@@ -1,144 +0,0 @@
let
certs = import ./snakeoil-certs.nix;
in
import ../make-test-python.nix ({ pkgs, ... }: {
name = "nginx-proxyprotocol";
nodes = {
webserver = { pkgs, lib, ... }: {
environment.systemPackages = [ pkgs.netcat ];
security.pki.certificateFiles = [
certs.ca.cert
];
networking.extraHosts = ''
127.0.0.5 proxy.test.nix
127.0.0.5 noproxy.test.nix
127.0.0.3 direct-nossl.test.nix
127.0.0.4 unsecure-nossl.test.nix
127.0.0.2 direct-noproxy.test.nix
127.0.0.1 direct-proxy.test.nix
'';
services.nginx = {
enable = true;
defaultListen = [
{ addr = "127.0.0.1"; proxyProtocol = true; ssl = true; }
{ addr = "127.0.0.2"; }
{ addr = "127.0.0.3"; ssl = false; }
{ addr = "127.0.0.4"; ssl = false; proxyProtocol = true; }
];
commonHttpConfig = ''
log_format pcombined '(proxy_protocol=$proxy_protocol_addr) - (remote_addr=$remote_addr) - (realip=$realip_remote_addr) - (upstream=) - (remote_user=$remote_user) [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
access_log /var/log/nginx/access.log pcombined;
error_log /var/log/nginx/error.log;
'';
virtualHosts =
let
commonConfig = {
locations."/".return = "200 '$remote_addr'";
extraConfig = ''
set_real_ip_from 127.0.0.5/32;
real_ip_header proxy_protocol;
'';
};
in
{
"*.test.nix" = commonConfig // {
sslCertificate = certs."*.test.nix".cert;
sslCertificateKey = certs."*.test.nix".key;
forceSSL = true;
};
"direct-nossl.test.nix" = commonConfig;
"unsecure-nossl.test.nix" = commonConfig // {
extraConfig = ''
real_ip_header proxy_protocol;
'';
};
};
};
services.sniproxy = {
enable = true;
config = ''
error_log {
syslog daemon
}
access_log {
syslog daemon
}
listener 127.0.0.5:443 {
protocol tls
source 127.0.0.5
}
table {
^proxy\.test\.nix$ 127.0.0.1 proxy_protocol
^noproxy\.test\.nix$ 127.0.0.2
}
'';
};
};
};
testScript = ''
def check_origin_ip(src_ip: str, dst_url: str, failure: bool = False, proxy_protocol: bool = False, expected_ip: str | None = None):
check = webserver.fail if failure else webserver.succeed
if expected_ip is None:
expected_ip = src_ip
return check(f"curl {'--haproxy-protocol' if proxy_protocol else '''} --interface {src_ip} --fail -L {dst_url} | grep '{expected_ip}'")
webserver.wait_for_unit("nginx")
webserver.wait_for_unit("sniproxy")
# This should be closed by virtue of ssl = true;
webserver.wait_for_closed_port(80, "127.0.0.1")
# This should be open by virtue of no explicit ssl
webserver.wait_for_open_port(80, "127.0.0.2")
# This should be open by virtue of ssl = true;
webserver.wait_for_open_port(443, "127.0.0.1")
# This should be open by virtue of no explicit ssl
webserver.wait_for_open_port(443, "127.0.0.2")
# This should be open by sniproxy
webserver.wait_for_open_port(443, "127.0.0.5")
# This should be closed by sniproxy
webserver.wait_for_closed_port(80, "127.0.0.5")
# Sanity checks for the NGINX module
# direct-HTTP connection to NGINX without TLS, this checks that ssl = false; works well.
check_origin_ip("127.0.0.10", "http://direct-nossl.test.nix/")
# webserver.execute("openssl s_client -showcerts -connect direct-noproxy.test.nix:443")
# direct-HTTP connection to NGINX with TLS
check_origin_ip("127.0.0.10", "http://direct-noproxy.test.nix/")
check_origin_ip("127.0.0.10", "https://direct-noproxy.test.nix/")
# Well, sniproxy is not listening on 80 and cannot redirect
check_origin_ip("127.0.0.10", "http://proxy.test.nix/", failure=True)
check_origin_ip("127.0.0.10", "http://noproxy.test.nix/", failure=True)
# Actual PROXY protocol related tests
# Connecting through sniproxy should passthrough the originating IP address.
check_origin_ip("127.0.0.10", "https://proxy.test.nix/")
# Connecting through sniproxy to a non-PROXY protocol enabled listener should not pass the originating IP address.
check_origin_ip("127.0.0.10", "https://noproxy.test.nix/", expected_ip="127.0.0.5")
# Attack tests against spoofing
# Let's try to spoof our IP address by connecting direct-y to the PROXY protocol listener.
# FIXME(RaitoBezarius): rewrite it using Python + (Scapy|something else) as this is too much broken unfortunately.
# Or wait for upstream curl patch.
# def generate_attacker_request(original_ip: str, target_ip: str, dst_url: str):
# return f"""PROXY TCP4 {original_ip} {target_ip} 80 80
# GET / HTTP/1.1
# Host: {dst_url}
# """
# def spoof(original_ip: str, target_ip: str, dst_url: str, tls: bool = False, expect_failure: bool = True):
# method = webserver.fail if expect_failure else webserver.succeed
# port = 443 if tls else 80
# print(webserver.execute(f"cat <<EOF | nc {target_ip} {port}\n{generate_attacker_request(original_ip, target_ip, dst_url)}\nEOF"))
# return method(f"cat <<EOF | nc {target_ip} {port} | grep {original_ip}\n{generate_attacker_request(original_ip, target_ip, dst_url)}\nEOF")
# check_origin_ip("127.0.0.10", "http://unsecure-nossl.test.nix", proxy_protocol=True)
# spoof("1.1.1.1", "127.0.0.4", "direct-nossl.test.nix")
# spoof("1.1.1.1", "127.0.0.4", "unsecure-nossl.test.nix", expect_failure=False)
'';
})

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