Commit graph

1065 commits

Author SHA1 Message Date
Wolfgang Walther 91a8fee3aa
treewide: remove redundant parentheses
Auto-fixed by nixf-diagnose.
2025-10-05 10:52:03 +02:00
Maximilian Bosch a6b0564b7d
nixos/filesystems: fix special file-systems for systemd-nspawn (#345899) 2025-10-03 19:33:31 +00:00
Will Fancher 62a07189b4 nixos/bcachefs: fix warning 2025-09-30 13:57:31 -04:00
Will Fancher 6e331d90bd bcachefs-kernel-module: Nest within bcachefs-tools
When you set the bcachefs userspace tools with:

```nix
boot.bcachefs.package = /* custom pacakge */;
```

This now also changes the kernel package. The NixOS module now calls
on the nested `cfg.package.kernelModule` expression with
`kernelPackages.callPackage`. This will enable overriding both
userspace and kernel space from e.g. upstream git.
2025-09-30 01:16:01 -04:00
Will Fancher 89e7815828 nixos/bcachefs: Use out-of-tree module when possible. 2025-09-24 21:15:52 -04:00
Will Fancher 25d56c5a34 nixos/bcachefs: Don't duplicate assertions.
The first instance is unconditional. No need to have it twice.
2025-09-24 21:15:52 -04:00
John Titor f93738d6a2
Partially revert "nixos/bcachefs: remove linuxPackages_latest requirement"
This reverts commit afbaa572ed.

Bcachefs upstream recommends using the latest kernel for best compatibility.
2025-09-23 13:13:37 +05:30
Maximilian Bosch a532cb052e
nixos/containers: add boot.isNspawnContainer option
There are a bunch of components such as incus or LXC that also use
`boot.isContainer`, so we'd have to differentiate between "OS container"
and "actually nspawn".

This became necessary for the file-systems part where nspawn takes care
of setting up special filesystems like `/proc`, `/dev` etc., but others
don't.

To allow for a `boot.isContainer` being less overloaded, this introduces
`boot.isNspawnContainer` that is exclusively used for nspawn-specific
things. When `true`, `boot.isContainer = true;` is implied.
2025-09-21 13:26:23 +02:00
Nikita Uvarov 4de40fc8a8
nixos/filesystems: fix special file-systems for systemd-nspawn
This is a subset of aba55d1b96 (#67336)[1]
that I (Ma27) am using for quite a while in my systemd-nspawn setup
(without `nixos-container`) to have unprivileged containers.

Recently, Linus reminded me that this isn't part of upstream NixOS and
their setup fails like this when activating config in an nspawn
instance (no shared store):

    stderr) activating the configuration...
    stdout) setting up /etc...
    stderr) mount: /dev: permission denied.
    stderr)        dmesg(1) may have more information after failed mount system call.
    stderr) mount: /dev/pts: permission denied.
    stderr)        dmesg(1) may have more information after failed mount system call.
    stderr) mount: /dev/shm: permission denied.
    stderr)        dmesg(1) may have more information after failed mount system call.
    stderr) mount: /run: permission denied.
    stderr)        dmesg(1) may have more information after failed mount system call.
    stdout) Activation script snippet 'specialfs' failed (32)

So I decided to submit this portion again.

[1] Hence I retained the original authorship.

Co-authored-by: Maximilian Bosch <maximilian@mbosch.me>
2025-09-21 13:26:23 +02:00
John Titor d6ed16a832
nixos/bcachefs: add boot.bcachefs.package
This allows configuring the userspace bcachefs package to use.
Similar to boot.zfs.package
2025-09-13 22:17:32 +05:30
h7x4 3c10ae2f66
nixos/networking: prefer types.ints over addCheck 2025-09-12 02:37:50 +02:00
clerie 076f59fd54 nixos/networking: network.target depends on netdev service directly
So we don't depend on addresses configured for an interface or
network-setup.service existing anymore.

Fixes #349882
2025-08-27 18:42:09 +02:00
John Titor afbaa572ed nixos/bcachefs: remove linuxPackages_latest requirement
Nixpkgs has been on 6.12 for a while
2025-08-20 01:56:40 +05:30
John Titor 74d1da02aa nixos/bcachefs: handle / (root filesystem) in autoScrub service
Without this, the service and timer name become like this:

❯  systemctl status bcachefs-scrub--.service
○ bcachefs-scrub--.service - bcachefs scrub on /
     Loaded: loaded (/etc/systemd/system/bcachefs-scrub--.service; linked; preset: ignored)
     Active: inactive (dead)
TriggeredBy: ● bcachefs-scrub--.timer
2025-08-20 01:56:40 +05:30
Guanran Wang 7faeef0e92 nixos/btrfs: use sha256 instead of sha256_generic
Upstream dropped `sha256_generic` in e96cb9507f

Quoting from upstream:

> sha256_blocks_generic() is moved from lib/crypto/sha256-generic.c into
  lib/crypto/sha256.c.  It's now a static function marked with
  __maybe_unused, so the compiler automatically eliminates it in any
  cases where it's not used.

Co-authored-by: dramforever <dramforever@live.com>
2025-08-20 01:34:50 +05:30
Colin a3e64d8d08
nixos: Elaborate documentation for fileSystems.* options (#405043) 2025-08-15 19:01:06 +00:00
nikstur f087e5c94b nixos/network-interfaces: add packages to corePackages
This allows users to override (i.e. exclude) these packages from their
system closure if they don't need them.
2025-08-10 22:48:26 +02:00
nikstur 0d9a5c2059 nixos/fuse: add enable option
Fuse is stil enabled by default so the default behaviour of NixOS
doesn't change. However, now it's possible to actively exclude fuse when
you don't need it.
2025-08-10 22:43:39 +02:00
nikstur d5ae87bdeb
Revert "nixos: allow more things to be disabled" 2025-08-10 22:22:08 +02:00
Arian van Putten 1bb040fae8
nixos: allow more things to be disabled (#429695) 2025-08-10 19:49:52 +02:00
Ryan Lahfa bcc20cad16
nixos/network-interfaces: let networkd handle privacy extensions (#431967) 2025-08-09 17:53:39 +02:00
nikstur bb954cddf5 nixos/network-interfaces: let networkd handle privacy extensions
This removes bash from the mandatory system closure.
2025-08-09 00:10:13 +02:00
Arian van Putten a009838396
nixos/filesystem: remove mount-pstore (#432049) 2025-08-08 21:36:03 +02:00
nikstur e9c71d971f nixos/filesystem: remove mount-pstore
Ever since fb49d81b25 we set
CONFIG_PSTORE=y in the config because we set CONIFG_ACPI_APEI=y in the
kernel. This means we always have pstore built right into the kernel.

systemd thus always mounts `/sys/fs/pstore` which makes our custom unit
superfluous and redudant.
2025-08-08 19:03:05 +02:00
nikstur eca55074cb nixos/fuse: add enable option
Fuse is stil enabled by default so the default behaviour of NixOS
doesn't change. However, now it's possible to actively exclude fuse when
you don't need it.
2025-07-31 20:42:36 +02:00
nikstur f5ffdbfeb0 nixos/network-interfaces: add packages to corePackages
This allows users to override (i.e. exclude) these packages from their
system closure if they don't need them.
2025-07-31 20:42:35 +02:00
Will Fancher 0894e88e99
bcachefs: Fix systemd dependencies (#422961) 2025-07-30 14:20:15 -04:00
Wolfgang Walther 5a0711127c
treewide: run nixfmt 1.0.0 2025-07-24 13:55:40 +02:00
Michele Guerini Rocco 6424dede0c
nixos/network-interfaces: improve IPv6 support (#417150) 2025-07-23 16:51:24 +02:00
rnhmjoj 602006b0b6
nixos/networking-interfaces: add rnhmjoj as maintainer 2025-07-11 09:44:49 +02:00
rnhmjoj 4e5205a68a
nixos/networking-interfaces: add IPIP tunnels 2025-07-11 09:44:49 +02:00
rnhmjoj 716634530e
nixos/networking-interfaces: clean up networking.sits
This change rework a bit the documentation on networking.sits to explain
what they actually are. In fact, there are three different protocols
being collectively called "SIT", which itself is a nonstandard term.
2025-07-11 09:44:48 +02:00
rnhmjoj 1a8c90128b
nixos/network-interfaces: add option to set source address 2025-07-11 09:44:48 +02:00
rnhmjoj a1a86470e3
nixos/network-interfaces-scripted: disable DAD
Duplicate address detection (DAD) causes newly added IPv6 addresses to
be effectively unusable for an unpredictable amount of time, introducing
race conditions in the network setup.
For example, a "tentative" addresses is not considered a valid source
address, so installing routes can fail unpredictably.

This change disables DAD for static IPv6 addresses, with the assumption
that the user already made sure they are unique when configuring the
network.
2025-07-11 09:44:47 +02:00
ners e801d5894f
nixos/network-interfaces-systemd: fix WoL policy handling 2025-07-08 10:33:20 +02:00
Martin Weinelt 20a1869006
hostname-debian: set main program and use in more places (#422282) 2025-07-07 00:32:38 +02:00
Will Fancher 45bb7f83f4 nixos/unlock-bcachefs: Support x-systemd.requires/wants-mounts-for= 2025-07-06 11:47:05 -04:00
Will Fancher 9d769b6b9d nixos/unlock-bcachefs: Fix x-systemd.requires/wants= matching.
It would match options with those keys as a prefix,
e.g. x-systemd.requires-mounts-for=, and fail to extract a sensible
value.
2025-07-06 11:47:05 -04:00
Martin Weinelt 8e70f11f88
networking: clarify search and domain option descriptions
There is no canonical way to set a system domain name any longer. The one
we previously used was the NIS/YP one, but that is pointless these days.

The hostname is set up through /etc/hostname, but hostname(5) states that
it should only contain 64 7-bit ASCII characters, so it cannot be used
to cover the domain name.

We still support setting the domain name to complete the `fqdn` option
and as a central option to reference the domain name from. If anyone
wants a NIS/YP domain name set, do it yourself..

We then clarify that the domain option has nothing to do with DNS
resolution anymore and search should be configured instead.

Finally explain the purpose of the ndots option in the context of search
domains, since they decide when we stop considering the search domains
when querying names with more than one dot.
2025-07-06 00:59:37 +02:00
Martin Weinelt 8a4536fdaf
networking: stop configuring NIS domain name
The `domainname` utility uses setdomainname (see getdomainname(2)) to
configure the NIS[1] (also known as YP) domain name.

It provided a central directory for various objects that are resolved via
nsswitch in the late 1990s and early 2000s.

It is however not a safe nor common deployment scenario anymore.

[1] https://en.wikipedia.org/wiki/Network_Information_Service
2025-07-06 00:59:36 +02:00
Martin Weinelt b84f8fdaa0
networking: provide hostname-debian by default
This is first and foremost to provide compat with scripts that call the
hostname executable to retrieve the hostname, an assumptions we probably
should not be breaking.
2025-07-06 00:59:36 +02:00
Martin Weinelt bf1b4d35fb
networking: don't install nettools by default
https://lwn.net/Articles/710533/ has been true in 2017 and still holds
today.
2025-07-06 00:59:36 +02:00
Will Fancher c90c29bacc nixos/bcachefs: Parse tags
Fixes #317901
2025-07-05 23:46:05 +05:30
Martin Weinelt 4dd357b322
nixos/network-interfaces-systemd: support WoL and ProxyARP
This completes support for all `network.interfaces` options.
2025-07-04 22:13:16 +02:00
Martin Weinelt 87a1396702
nixos/zfs: use hostname-debian for hostname lookups
This is the simpler, more lightweight and better maintained version of
the hostname utility.
2025-07-04 06:57:54 +02:00
Will Fancher b1fb0503ec
bcachefs-unlock: respect x-systemd mount options (#419473) 2025-06-25 06:08:32 -04:00
Charlotte 814bbef95e
bcachefs-unlock: Also handle mount paths
Co-authored-by: Will Fancher <elvishjerricco@gmail.com>
2025-06-25 09:37:33 +01:00
Charlotte 🦝 Deleńkec ca0c35d813 bcachefs-unlock: respect x-systemd mount options
This will allow unlocking to take place *after* all of the devices have
been probed, as indicated by the x-systemd.wants and x-systemd.requires
options. This allows for multi-device bcachefs volumes to be reliably
unlocked.
2025-06-25 09:01:43 +01:00
qubitnano f9bd91aa07 nixos/bcachefs: include poly1305 and chacha20 kernel modules for kernel < 6.15
Kernel 6.16-rc1 removed the poly1305 algorithm in
ceef731b0e22df80a13d67773ae9afd55a971f9e

bcachefs switched to the kernel libraries for poly1305 and chacha20 in
6.15 in 4bf4b5046de0ef7f9dc50f3a9ef8a6dcda178a6d
2025-06-24 13:34:08 +05:30
John Titor 4cd9dd4a87 nixos/bcachefs, bcachefs: add johnrtitor as maintainer
Let's give it a try once again, now that I am back on Bcachefs

Signed-off-by: John Titor <50095635+JohnRTitor@users.noreply.github.com>
2025-06-22 02:58:48 +05:30