Commit graph

1038 commits

Author SHA1 Message Date
Christian Kögler 945777b8ed
nixos/zfs: Set scrub default IOSchedulingClass to idle (#312193) 2025-01-05 23:57:50 +01:00
Will Fancher b7ea795937
nixos/overlayfs: add a switch to disable prefixing with /sysroot for initrd mounts (#340763) 2025-01-05 17:56:41 -05:00
Will Fancher 764082c095
nixos/fileSystems: add enable option (#301915) 2025-01-05 17:40:23 -05:00
Wolfgang Walther d63aa1ddbe
nixos/tasks: remove obsolete tty-backgrounds-combine.sh file
This should have been removed in
82e1d0c8b1.
2024-12-29 18:36:48 +01:00
MakiseKurisu dab01f875c
nixos/powertop: add hooks to fix incorrect configurations 2024-12-26 01:12:15 +08:00
Adam C. Stephens c937a5c697
nixos/zfs: fix not auto-importing pools without any fileSystems (#365058) 2024-12-14 10:22:24 -05:00
misuzu 9c54c30f11
tasks/network-interfaces: Disable network-local-commands service if unnecessary (#338622) 2024-12-14 13:17:13 +02:00
Andrew Marshall 4ed27101c6 nixos/zfs: fix not auto-importing pools without any fileSystems
`lib.all (_: false) [ ]` is `true`, which is not the semantics we want
here, and interacts poorly with `boot.zfs.extraPools` where
`getPoolFilesystems` may return `[]`. So explicitly handle this case.
This does mean there isn’t a straightforward way to disable auto-import
with `extraPools` and no associated `fileSystems` while keeping the unit
around, but that’s probably okay for now.

See https://github.com/NixOS/nixpkgs/issues/364995.
Broken in 7f8278a264.
2024-12-13 19:02:30 -05:00
Arne Keller e3f940648e
nixos/zfs: do not auto-import pools marked noauto (#352391) 2024-12-12 06:51:39 +01:00
Andrew Marshall 7f8278a264 nixos/zfs: do not auto-import pools marked noauto
This requires all datasets for the pool specified in `fileSystems` to be
marked noauto.

Note that this implicitly skips some tasks for the pool, such as
`expandOnBoot`, as the pool will not be imported at that time.
2024-12-11 22:56:13 -05:00
Silvan Mosberger 4f0dadbf38 treewide: format all inactive Nix files
After final improvements to the official formatter implementation,
this commit now performs the first treewide reformat of Nix files using it.
This is part of the implementation of RFC 166.

Only "inactive" files are reformatted, meaning only files that
aren't being touched by any PR with activity in the past 2 months.
This is to avoid conflicts for PRs that might soon be merged.
Later we can do a full treewide reformat to get the rest,
which should not cause as many conflicts.

A CI check has already been running for some time to ensure that new and
already-formatted files are formatted, so the files being reformatted here
should also stay formatted.

This commit was automatically created and can be verified using

    nix-build a08b3a4d19.tar.gz \
      --argstr baseRev b32a094368
    result/bin/apply-formatting $NIXPKGS_PATH
2024-12-10 20:26:33 +01:00
Tomodachi94 2e98ec0e0e nixos/networking-interfaces-scripted: use read -r
...instead of plain read, which can cause issues.

See SC2162:
https://www.shellcheck.net/wiki/SC2162
2024-12-09 08:06:29 +01:00
Will Fancher fb70f75220
nixos/filesystems: assert when label and device are set simultaneously (#362481) 2024-12-08 22:02:53 -05:00
r-vdp b6dbf6deed
nixos/filesystems: assert that the device and label options are consistent 2024-12-09 02:52:24 +03:00
Bjørn Forsman 7aad7090b7 nixos/zfs: order pool sync services before final.target
If we don't do this, I think systemd can kill the service(s) before they
finish.
2024-12-07 10:16:55 +01:00
Will Fancher 74454e41a5
nixos/filesystems: don't silently ignore label when device is set (#361418) 2024-12-03 23:59:55 -05:00
r-vdp 9226d4e9ee
nixos/filesystems: don't silently ignore label when device is set
Before this change, when both device and label were set, the label would
be silently ignored. This is especially problematic when the device is
set in another module, and it's not immediately obvious why the label is
not having any effect.

Additionally, some other modules use the device option to get the device
of a filesystem, but this option is not populated when only the label is
set, causing those modules to conclude that the filesystem does not have
a backing device.

With this change, we populate the device option using the label when the
label is set. This means that we get a clear error message when both the
device and label are set, and that the device is properly populated
whenever the label is used to specify the backing device.
2024-12-03 11:45:42 +01:00
Egor Savkin 9354d385e2 network: Fix cycle dependency causing race of netdev and address configuration
This changes the following chain after `nixos-rebuild switch` with modified tunnel interfaces:
stop network-setup -> stop TUN-netdev -> stop network-addresses-TUN -> start network-addresses-TUN (fails since it depends on TUN-netdev which is off).

Chain after this change:
stop TUN-netdev -> stop network-setup -> stop network-addresses-TUN -> start TUN-netdev -> start network-addresses-TUN -> start network-setup

Signed-off-by: Egor Savkin <es@m-labs.hk>
2024-12-02 10:54:47 +08:00
Sandro b5ad44e06e
nixos/lvm: expand enable description to better inform users about the… (#355463) 2024-11-27 22:37:48 +01:00
Will Fancher 9100366975
nixos/network-interfaces-systemd: improve default ethernet network matching (#347283) 2024-11-18 21:18:19 -08:00
liberodark b9956ceb87 nixos/auto-upgrade: Format 2024-11-15 08:36:15 +01:00
Sandro a9f3a296d3
nixos/lvm: expand enable description to better inform users about their actions 2024-11-12 16:54:14 +01:00
Moritz Sanft cba277a1dc
nixos/overlayfs: format 2024-11-05 17:02:24 +01:00
Moritz Sanft 96a7448a4e
nixos/overlayfs: add a switch to disable prefixing with /sysroot for initrd mounts 2024-11-05 16:54:01 +01:00
Andrew Marshall 9ce881027b zfs: remove recommendations to use unstable
`pkgs.zfs_unstable` is pre-release software and may very well have
critical bugs that make it unsuitable for general use. As such, we
should not recommend it as a general solution to the problem of "my
Kernel is too new for stable ZFS".
2024-11-01 18:50:24 -04:00
Andrew Marshall a0de415588 nixos/zfs: improve docs for boot.zfs.devNodes option
Specify more clearly how this is used, and defer to upstream docs for
guidance on selecting it.
2024-10-31 09:04:11 -04:00
Andrew Marshall 0f69b960b8 nixos/zfs: teach to override devNodes per pool
This may be useful if some pools use LUKS or some other intermediate
layer, while others do not.
2024-10-30 10:41:18 -04:00
Sandro Jäckel 91cf1d31c8 nixos/zfs: fix shellcheck findings with enableStrictShellChecks enabled 2024-10-30 08:33:57 +00:00
Sefa Eyeoglu 8e6cc2f3f6
nixos/networking: fix shellcheck findings with enableStrictShellChecks enabled
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2024-10-18 18:23:05 +02:00
Masum Reza cb9ac608fc
nixos/{bcache,lvm}: enable when using systemd in stage 1 initrd (#343760) 2024-10-10 12:16:31 +05:30
Lương Việt Hoàng 24597e9460 nixos/network-interfaces-systemd: improve default ethernet network matching
Reliably match physical ethernet interfaces by using `Kind=!*` with `Type=ether`.
This will exclude veth interfaces, which have `Kind=veth`.
2024-10-08 20:23:48 +07:00
Bjørn Forsman 20a3012813 nixos/networking: improve vlan service description
VLAN is an abbreviation, so let's not write Vlan.
2024-10-04 22:09:01 +02:00
Bjørn Forsman e8da2c8981 nixos/networking: fix macvlan service description
Fix copy pasta from the vlan service: Vlan -> MACVLAN
2024-10-04 22:08:40 +02:00
Franz Pletz cc2142b9f0
nixos/zfs: remove incorrect conditional use of spl kmod; remove withs (#344271) 2024-09-28 15:30:13 +02:00
Andrew Marshall bec753ddfc nixos/zfs: replace with with let
The fully-qualified name would certainly be a lot here, but `with` can
still be unclear even with narrow scope. A short `let` adds clarity
without significantly increasing verbosity.
2024-09-27 08:08:31 -04:00
Andrew Marshall eef4c18ae8 nixos/zfs: remove unused vars 2024-09-27 08:08:31 -04:00
Andrew Marshall 33bd85a6c8 nixos/zfs: remove top-level withs
As it is generally considered an anti-pattern. Removing them here in
fact exposed one bug (see previous commit).
2024-09-27 08:08:30 -04:00
Andrew Marshall 06ed2c46fb nixos/zfs: remove incorrect conditional use of spl kmod
This was incorrectly getting `lib.version` which is e.g.
`"24.11pre-git"`, but should have been the ZFS package version. However,
the condition, at least per the comment, is reversed and should be
instead `versionOlder cfgZfs.package.version "2.2.0"`. However, the
entire premise seems to be incorrect, as ZFS 2.2.6 includes the spl
module. Since the previous condition here was effectively always true,
it would initially seem the best move is to remove the conditional
altogether and always include the spl kmod. However, going back to
4360a87c45 where this condition was added,
the intent appears to be that spl was no longer needed here in
the-pre-release ZFS (long since in all supported versions), due to it
being merged into ZFS mainline. Given that intent and that our boot
tests on all versions succeed without including it in the initrd, remove
it.
2024-09-27 08:08:30 -04:00
Artturin ecd4ea0ab2
nixos/auto-upgrade: correct typo in assertion message (#295125) 2024-09-25 20:41:02 +03:00
Patrick Collins 448240f6e2
nixos/nfsd: fix typo that breaks services.nfs.settings (#342200)
Currently will always fail when nfs.server.hostName is specified alongside nfs.settings.
2024-09-25 20:33:23 +03:00
Artturin e0464e4788 treewide: replace stdenv.is with stdenv.hostPlatform.is
In preparation for the deprecation of `stdenv.isX`.

These shorthands are not conducive to cross-compilation because they
hide the platforms.

Darwin might get cross-compilation for which the continued usage of `stdenv.isDarwin` will get in the way

One example of why this is bad and especially affects compiler packages
https://www.github.com/NixOS/nixpkgs/pull/343059

There are too many files to go through manually but a treewide should
get users thinking when they see a `hostPlatform.isX` in a place where it
doesn't make sense.

```
fd --type f "\.nix" | xargs sd --fixed-strings "stdenv.is" "stdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "stdenv'.is" "stdenv'.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "clangStdenv.is" "clangStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "gccStdenv.is" "gccStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "stdenvNoCC.is" "stdenvNoCC.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "inherit (stdenv) is" "inherit (stdenv.hostPlatform) is"
fd --type f "\.nix" | xargs sd --fixed-strings "buildStdenv.is" "buildStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "effectiveStdenv.is" "effectiveStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "originalStdenv.is" "originalStdenv.hostPlatform.is"
```
2024-09-25 00:04:37 +03:00
John Titor 468a6cbbbe
nixos/bcache: enable bcache when using systemd in stage 1 initrd 2024-09-22 23:37:51 +05:30
John Titor 3f90386b24
nixos/lvm: enable lvm when using systemd in stage 1 initrd
Fixes https://github.com/NixOS/nixpkgs/issues/343566
2024-09-22 22:04:30 +05:30
Felix Buehler dd7ab59690 nixos/services.nfs: remove with lib; 2024-09-15 10:43:58 +02:00
github-actions[bot] b6b2ac4f61
Merge master into staging-next 2024-09-07 00:12:59 +00:00
Aaron Ecay 345618de26
nixos/zfs: mitigate data loss issues when resuming from hibernation 2024-09-06 13:39:21 -04:00
tu-maurice a7ef1254e6 tasks/network-interfaces: Disable network-local-commands service if unnecessary
If the localCommands variable is empty this service does nothing, but
runs anyway. We can disable it in these cases.
2024-08-31 15:22:14 +02:00
github-actions[bot] fab50d5f8d
Merge staging-next into staging 2024-08-31 00:13:46 +00:00
Philip Taron 9916dc8728
treewide/nixos: remove with lib; part 2 (#335618) 2024-08-30 15:56:57 -07:00
Felix Buehler cd197cebdf nixos/system.autoUpgrade: remove with lib; 2024-08-30 23:01:45 +02:00
Will Fancher c653608dcd overlayfs: Assert that upperdir == null requires systemd initrd 2024-08-30 15:18:36 -04:00
Will Fancher 160ff9ff9c overlayfs: Use depends 2024-08-30 15:18:36 -04:00
Will Fancher b7c5fd93f1 nixos: Support fileSystems.<name>.depends with fstab-generator 2024-08-30 15:18:35 -04:00
Luflosi 8032f77462
nixos/filesystems: init bindfs 2024-08-27 13:43:46 +02:00
github-actions[bot] 3b85a864c3
Merge staging-next into staging 2024-08-26 18:04:37 +00:00
Jörg Thalheim f40cd1bfe0 nixos/autoUpgrade: add --refresh when using flakes
otherwise the cache might delay updates quite a bit
2024-08-26 12:02:38 +02:00
ajs124 bd0539cb20 nixos/tasks/lvm: assert kernel version for vdo 2024-08-23 19:59:34 +02:00
ajs124 9366ef0fbd vdo: 8.2.2.2 -> 8.3.0.71 2024-08-23 19:59:33 +02:00
ajs124 ee6a0e376d kvdo: drop 2024-08-23 19:59:31 +02:00
7c6f434c da64ac6beb
Merge pull request #310807 from Naxdy/work/improve-btrfs-autoscrub
nixos/btrfs: refactor & improve device selection for autoScrub
2024-08-03 15:31:32 +00:00
misuzu 4df3c4c17b nixos/clevis: add support for parent encrypted zfs datasets 2024-06-12 21:21:50 +03:00
Michele Guerini Rocco 9e97770a19
Merge pull request #312317 from tom-kuca/replace-existing-network-addresses
nixos/network-interfaces: prevent failure when a network address already exists
2024-06-03 15:30:13 +02:00
Maximilian Bosch 3cf4304692
Revert "nixos/networking: use mkIfs on the inner attributes" 2024-05-31 13:05:19 +02:00
Linus Heckemann cf50bd0aa1 nixos/networking: use mkIfs on the inner attributes
This is a bit more compact and yields the same evaluation results.
2024-05-23 17:46:15 +02:00
Maximilian Bosch f9f943b36e
nixos/networking: use optionalAttrs -> mkIf for networkd route generation
Suggested in https://github.com/NixOS/nixpkgs/pull/312472#discussion_r1605894882
2024-05-20 17:30:21 +02:00
Maximilian Bosch c4fd7cf16d
nixos/networkd: get rid of *Config attributes in lists
This patch is about removing `wireguardPeerConfig`,
`dhcpServerStaticLeaseConfig` - a.k.a. the
AbstractSingletonProxyFactoryBean of nixpkgs - and friends.

As a former colleague said

> worst abstraction ever

I second that. I've written enough networkd config for NixOS systems so
far to have a strong dislike. In fact, these don't even make sense:
`netdevs.wireguardPeers._.wireguardPeerConfig` will be rendered into
the key `[WireGuardPeer]` and every key from `wireguardPeerConfig` is in
there. Since it's INI, there's no place where sections on the same level
as wireguardPeerConfig fit into. Hence, get rid of it all.

For the transition, using the old way is still allowed, but gives a
warning. I think we could drop this after one release.

The tests of rosenpass and systemd-networkd-dhcpserver-static-leases
were broken on the rev before, hence they were updated, but are still
not building.
2024-05-20 17:26:42 +02:00
Tomáš Kuča 71ce6b582b
nixos/network-interfaces: prevent failure when a network address already exists
The original code tests output of `ip addr add` command to detect if an
adress already exists. The error message was changed in the past and the
test no longer works.

The patch replaces `ip addr add` with `ip addr replace`. The new command
replaces an existing address or creates a new one if there isn't any.

fixes 306841
2024-05-17 01:02:29 +02:00
Jonathan Davies 0274fc2212
nixos/zfs: Set scrub default IOSchedulingClass to idle 2024-05-16 13:47:02 +01:00
Naxdy d0239a1e50
nixos/btrfs: improve default selection of filesystems for autoScrub 2024-05-11 12:10:38 +02:00
Naxdy 804bc033a6
nixos/btrfs: refactor global with lib; 2024-05-11 11:50:58 +02:00
Franz Pletz 338a208e7d
Merge pull request #287505 from jpds/zfs-scrub-trim-randomizedDelaySec 2024-05-10 02:11:13 +02:00
Jonathan Davies 8e0e9bdee8 nixos/zfs: Added a randomizedDelaySec option to ZFS autoscrub/trim timers
Allows operators to space out these IO operations across a fleet of
machines, rather than have them all happen at the same time.
2024-05-03 15:01:53 +01:00
Jonathan Davies 5b671b7fc8 nixos/zfs: Default autoscrub interval to monthly 2024-05-03 13:41:51 +01:00
Jared Baur 43d8f47df3
nixos/fileSystems: add enable option
Add the ability to disable filesystems set in a nixos config (enabled by
default). This makes the submodules under `fileSystems` behave more like
submodules in other nixos modules.
2024-04-20 16:50:45 -07:00
stuebinm 6afb255d97 nixos: remove all uses of lib.mdDoc
these changes were generated with nixq 0.0.2, by running

  nixq ">> lib.mdDoc[remove] Argument[keep]" --batchmode nixos/**.nix
  nixq ">> mdDoc[remove] Argument[keep]" --batchmode nixos/**.nix
  nixq ">> Inherit >> mdDoc[remove]" --batchmode nixos/**.nix

two mentions of the mdDoc function remain in nixos/, both of which
are inside of comments.

Since lib.mdDoc is already defined as just id, this commit is a no-op as
far as Nix (and the built manual) is concerned.
2024-04-13 10:07:35 -07:00
Luís Fonseca 38b68216a5
nixos/zfs: install zfs udev rules on stage1
Install zfs udev rules on initrd, so that /dev/zvol gets populated.
2024-04-08 02:53:01 +01:00
Matt Moriarity 10035ed5ab nixos/bcachefs: support unlock with clevis in systemd stage 1 2024-04-05 14:39:11 +00:00
Aaron Andersen c4719710f0
Merge pull request #298068 from posch/manage-gids
nixos/nfsd: settings for /etc/nfs.conf
2024-04-01 16:15:10 +00:00
Tobias Poschwatta ee2b899ff7 nixos/nfsd: settings for /etc/nfs.conf
services.nfs.settings is added for options that go into /etc/nfs.conf.

There are services.nfs.server.extraNfsdConfig and
services.nfs.extraConfig, but they have drawbacks.  They overlap in
scope (nfs.extraConfig can also add nfsd options). They require that one
writes INI syntax. They often produce nfs.conf files with duplicate
section names, which is confusing.

This deprecates services.nfs.server.extraNfsdConfig and
services.nfs.extraConfig.

services.nfs.settings cannot be used together with
services.nfs.server.extraNfsdConfig or services.nfs.extraConfig.
2024-03-25 12:22:48 +01:00
Jörg Thalheim 3a8e8369a6 envfs: 1.0.3 -> 1.0.6
Diff: https://github.com/Mic92/envfs/compare/1.0.3...1.0.6
2024-03-24 10:26:45 +01:00
Andrew Kvalheim 6e8f91da32 nixos/auto-upgrade: correct typo in assertion message 2024-03-11 14:12:36 -07:00
Attila Oláh ac4441fabd
Add missing closing parens.
https://xkcd.com/859
2024-03-02 12:40:40 +01:00
Adam C. Stephens b52452f8c7
Merge pull request #291951 from amarshall/zfs-pkgs-renaming
zfs: rename zfsStable -> zfs_2_2; zfsUnstable -> zfs_unstable; remove enableUnstable option in favor of package
2024-03-01 10:09:12 -05:00
Andrew Marshall 1f32eb724d nixos/zfs: Remove enableUnstable in favor of setting package
This just adds complexity and confusion. Once-upon-a-time, there was no
`package` and only `enableUnstable`, but now it is just confusing to
have both, as it would be possible to do e.g. `package = pkgs.zfs` and
`enableUnstable = true`, but then `enableUnstable` does nothing.
2024-02-27 19:30:19 -05:00
Andrew Marshall 929fcf9335 zfs_unstable: Rename from zfsUnstable
This matches the naming of other zfs_* pkgs.
2024-02-27 18:45:55 -05:00
Andrew Marshall ce5b1e007e nixos/zfs: Fix typo in option doc 2024-02-27 18:45:55 -05:00
Alyssa Ross 45f1428902
zfs_2_1: 2.1.14 -> 2.1.15
This adds compatibility with newer kernels, which fixes
nixosTests.zfs.series_2_1, which broke when the default kernel version
was bumped.

This means we no longer need the removeLinuxDRM option at all, but
I've kept it around as a no-op so people can leave it set in case the
same thing happens again in future.
2024-02-27 13:44:16 +01:00
Alyssa Ross 2b9f043823
zfs: update latestCompatibleLinuxPackages
ZFS no longer tries to use GPL-only symbols on aarch64.

Tested by building nixosTests.zfs.stable (modified to use Linux 6.6)
and nixosTests.zfs.unstable.
2024-02-26 12:27:10 +01:00
pennae 258b935d70 nixos/filesystems: make supportedFilesystems an attrset
this lets us *dis*able filesystem explicitly, as is required by e.g. the
zfs-less installer images. currently that specifically is only easily
possible by adding an overlay that stubs out `zfs`, with the obvious
side-effect of also removing tooling that could run without the kernel
module loaded.
2024-02-19 11:46:52 +01:00
nikstur 1c1cfa073a nixos/filesystems: init overlayfs 2024-02-07 22:13:00 +01:00
Jörg Thalheim 559ddda570
Merge pull request #279852 from Madouura/pr/bcachefs
bcachefs: update comments, release-notes, only use IFS for bcachefs, update bcachefs-tools and module
2024-01-25 01:11:04 +01:00
Lassulus 65f1d64303
Merge pull request #279923 from jopejoe1/sshfs
nixos/filesystems: set `system.fsPackages` for sshfs
2024-01-24 22:04:41 +01:00
Luke Granger-Brown f5344c8b87
Merge pull request #280658 from simonhollingshead/add-fixedrandomdelay
nixos/auto-upgrade: add system.autoUpgrade.fixedRandomDelay
2024-01-22 14:48:23 +00:00
Madoura c3316bcce4
nixos/bcachefs: add 'bcachefs-tools' to (udev/systemd).packages 2024-01-16 15:19:39 -06:00
Madoura 9dfa878a20
nixos/bcachefs: clarify 'FIXME' comment on when to remove 2024-01-16 15:06:05 -06:00
Franz Pletz a436870727
Merge pull request #278179 from sinanmohd/network-interfaces-sit
nixos/network-interfaces: fix implicit dependency on underlying device
2024-01-16 19:49:46 +01:00
Will Fancher c6f2b53e78
Merge pull request #280296 from ancathri/getKeyLocations-nosnapshots
nixos/zfs: fix getKeyLocations when listsnaps=on
2024-01-15 11:31:25 -05:00
Guillaume Girol e52366c4d8
Merge pull request #272169 from nyabinary/remove-deprecated-network-interfaces
nixos/network-interfaces: remove network-interfaces.target
2024-01-14 14:17:14 +01:00
nikstur ce1ed11483
Merge pull request #280708 from thillux/fix-trackpoint
modules/trackpoint: fix quote
2024-01-13 15:25:25 +01:00
Markus Theil 7fcfa4f0d6 modules/trackpoint: fix quote
Fixes:

[    7.106281] systemd[1]: /etc/systemd/system/trackpoint.service:10: Unbalanced quoting, ignoring: "/nix/store/iidxwcyp8pqhrq3iji17shs4m6gin0kv-systemd-254.6/bin/udevadm trigger --attr-match=name="TPPS/2 IBM TrackPoint"

Signed-off-by: Markus Theil <theil.markus@gmail.com>
2024-01-13 12:22:06 +01:00