Commit graph

1174 commits

Author SHA1 Message Date
github-actions[bot] a58f8abed0
Merge staging-next into staging 2025-01-06 00:15:41 +00:00
Robert Hensing 04a5fd4b4f
nixos/eval-config: Deprecate NIXOS_EXTRA_MODULE_PATH (#349549) 2025-01-05 20:51:20 +01:00
K900 1d9d206c4e Merge remote-tracking branch 'origin/staging-next' into staging 2025-01-05 00:25:30 +03:00
Will Fancher 15be453e9a
switch-to-configuration: Better handling of socket-activated units (#359724) 2025-01-04 11:51:21 -05:00
Robert Hensing e2078ef31e tests.nixosOptionsDoc: init 2025-01-02 22:42:05 +01:00
Robert Hensing 925dc2fe30 nixosOptionsDoc/optionsCommonMark: Add extraFlags attr 2025-01-02 21:08:48 +01:00
github-actions[bot] 5d88e3a361
Merge staging-next into staging 2025-01-02 18:04:58 +00:00
Robert Hensing 039cbd8e93
nixos/lib/eval-config: Add warning when masking pkgs (#349453) 2025-01-02 17:41:14 +01:00
K900 936f4e016d Merge remote-tracking branch 'origin/staging-next' into staging 2025-01-02 19:21:56 +03:00
Julien Malka fa99ba3c13
nixos/systemd-boot: Don't write to /etc/machine-id (#347493) 2025-01-02 11:47:20 +01:00
K900 ca300e32f7 Merge remote-tracking branch 'origin/staging-next' into staging 2025-01-01 10:07:33 +03:00
Emily f6ce575a03 nixos/test-driver: avoid lib.fileset 2024-12-31 02:30:18 +00:00
Wolfgang Walther cf127c9dc3
treewide: load structured attributes in all bash builders consistently
It's hard to put the sourcing of ./.attrs.sh into all builder
consistently - mistakes will happen. Thus, load structured attrs once in
make-derivation and then source the remaining builder on top.

This should fix quite a few builders with structured attributes in
principle. Most importantly it helps substitute / substituteAll, which
are required for bootstrap on some platforms.
2024-12-29 18:36:47 +01:00
Jared Baur bae7a7ac67
nixos/make-disk-image: fix hybrid and legacy+gpt image generation
Prevent GNU parted from complaining about misaligned partitions for
partitions that aren't supposed to be aligned.
2024-12-20 12:58:31 -08:00
Jared Baur 324189bc82
nixos/make-disk-image: ensure partitions are aligned to sector size
This ensures that GNU parted doesn't complain that partitions are
unaligned.
2024-12-19 19:58:26 -08:00
Jared Baur 95587053f7
nixos/make-disk-image: nixfmt 2024-12-19 19:58:25 -08:00
Andreas Fuchs bc1cfec920 Address review feedback: It's "configuration switch" 2024-12-18 08:18:27 -05:00
Andreas Fuchs 878be9c20b Address review feedback: Attempt to fix wonky indentation 2024-12-18 08:17:04 -05:00
Gavin John b0a3a9a52f nixos/lib/eval-config: Add warning when masking pkgs 2024-12-13 21:52:21 -08:00
DavHau 2ec06a51a0 make-ext4-fs: enable parallel compression for zstd
... as done in a couple of other image builders already
2024-12-13 00:39:12 +07: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
Adam C. Stephens da18b9bc79
nixos/lib/make-squashfs: set root mode to 0755
default is 0777 which is likely undesirable in all situations
2024-12-08 10:05:04 -05:00
Arne Keller b6aa3932ce
nixos/lib/qemu-common: fix cross to x86_64 (#327349) 2024-12-06 14:44:08 +01:00
Jan Tojnar 8fe87559a9 nixos/lib: Add disablePackageByName
We do this in multiple DE modules and the behaviour was not consistent.
2024-12-04 22:31:35 +01:00
misuzu 6eac218f2d
Count hard links separately when sizing virtual disks (#330055) 2024-12-04 21:44:45 +02:00
Emily 8221c09ff5
nixos/lib/test-driver: fix linting after compatibility clean‐up
The previous commit removed the handling of `dict` arguments, but
didn’t adjust the type, leading to the following type-checking error:

    test_driver/driver.py:216: error: Argument 1 to "NixStartScript" has incompatible type "str | dict[Any, Any]"; expected "str"  [arg-type]

It also left an unused import that Ruff is unhappy about:

    build/lib/test_driver/driver.py:11:22: F401 [*] `colorama.Fore` imported but unused
    …
    build/lib/test_driver/driver.py:11:28: F401 [*] `colorama.Style` imported but unused

Fixes: 71306e6b36
(cherry picked from commit d490680530)
(cherry picked from commit ff31b814b6)
2024-11-30 15:11:39 +01:00
Wolfgang Walther a92ea1ff26
nixos/lib/test-driver: remove legacy args handling
Scheduled for removal in 24.11, so let's follow through.

Added in #291544.

(cherry picked from commit 71306e6b36)
(cherry picked from commit 8427b6f640)
2024-11-30 15:11:38 +01:00
Andreas Fuchs bf9c6c9861 switch-to-configuration-ng: Better handling of socket-activated units
Previously, if any unit had a socket associated with it, stc-ng
counted it as "socket-activated", meaning that the unit would get
stopped and the socket get restarted. That can wreak havoc on units
like systemd-udevd and systemd-networkd.

Instead, let units set the new flag notSocketActivated, which sets a
boolean on the unit indicating to stc-ng that the unit wants to be
treated like any other non-socket-activated unit instead. That will
stop/start or restart these units on upgrades, without unnecessarily
tearing down any machinery that the system needs to run.
2024-11-27 21:36:09 -05:00
Wolfgang Walther d232880c20
various: remove left-over rtc_cmos rootModule
This is not needed anymore after
65a50ea453.
2024-11-26 22:02:46 +01:00
phaer bb6586c4e6 make-disk-image: Allow passing of image baseName
It's currently alsways "nixos", which leads to various schemes of
renaming the resulting files in virtualisation/*-image.nix files as
well as further downstream, outside of nixpkgs.
2024-11-26 17:19:18 +01:00
Wolfgang Walther de69ff528b
nixos/lib/make-options-doc: remove optionsDocBook
Follow through on #296384.
2024-11-22 18:30:11 +01:00
Wolfgang Walther 73df63f8ef
lib/options: remove mdDoc
Following through on message itself.
2024-11-22 18:30:11 +01:00
Nick Cao 172a35f8ce
nixos/test-driver: target python 3.12 2024-11-22 10:49:32 -05:00
Nick Cao e23f1733c6
nixos/test-driver: use ruff format in place of black 2024-11-22 10:49:31 -05:00
Nick Cao ef2d3c542a
nixos/test-driver: modernize 2024-11-22 10:49:31 -05:00
Nick Cao 42d4046e94
nixos/test-driver: format with nixfmt 2024-11-22 10:49:30 -05:00
Nick Cao b25360a7e5
nixos/test-driver: apply ruff check suggestions 2024-11-22 10:49:30 -05:00
Masum Reza e13831335f
treewide: stdenv.is -> stdenv.hostPlatform.is (#356363)
* treewide: stdenv.is -> stdenv.hostPlatform.is

* treewide: nixfmt due to ci error
2024-11-17 16:11:54 +05:30
Jack Wilsdon 2223312e3d nixos/networkd: allow byte values to be integers 2024-11-03 18:26:20 +00:00
Will Fancher 37ee6ba681 Revert "NixOS apply script"
Reverts #344407

This has broken nixos-rebuild switch so that it no longer updates the profile, which has bad consequences including not updating the systemd-boot menu with new generations.
2024-11-01 20:18:09 -04:00
Robert Hensing 7902cea1de nixos: Update documentation to refer to bin/apply 2024-10-30 00:21:21 +01:00
Sandro Jäckel 729a6f3bd7
nixos/lib/testing: remove alias usage 2024-10-26 14:30:45 +02:00
Robert Hensing 5f197bf5d0 nixos/eval-config: Deprecate NIXOS_EXTRA_MODULE_PATH
This gets rid of a potentially confusing behavior that doesn't need to
be in NixOS, and nobody ever bothered to add a test for it.
Let's keep things simple!
The suggested snippet is better than this feature ever was, and will be
in the user's face, where it belongs, kindly.

Tested with

    nix-instantiate nixos/lib/eval-config.nix --arg modules '[{fileSystems."/".device="x";boot.loader.grub.enable=false;}]' -A config.system.build.toplevel
    NIXOS_EXTRA_MODULE_PATH=$HOME/whatever.nix nix-instantiate nixos/lib/eval-config.nix --arg modules '[{fileSystems."/".device="x";boot.loader.grub.enable=false;}]' -A config.system.build.toplevel
2024-10-18 17:04:35 +02:00
Jörg Thalheim ef9502a009 nixos/test-driver: fix resource cleanup of vlan/qmp objects
Using __del__ is somewhat unsound resource cleanup in our clase the
logger already closed its logfile and therefor fails with exception
before the rest of the resources can be cleaned up.
2024-10-16 19:46:38 +03:00
Will Fancher a6e54f566a
nixos/networkd: support systemd-creds in WireGuard (#346964) 2024-10-15 14:31:27 -04:00
Arian van Putten 627221c262 nixos/make-disk-image: Remove hack that cleans up machine-id
machine-id is not written by the install bootloader step anymore
so this step is also not needed
2024-10-09 15:34:34 +02:00
Silvan Mosberger c5cea342ce
lib.oldestSupportedReleaseIsAtLeast: rename from bad name (#347258) 2024-10-09 02:20:39 +02:00
r-vdp 2b224f0e3c
nixos/systemd: allow using writeShellApplication for systemd unit scripts 2024-10-08 12:01:48 +02:00
Robert Hensing 729225e355 treewide: lib.isInOldestRelease -> lib.oldestSupportedReleaseIsAtLeast 2024-10-08 11:14:24 +02:00
James Atkins 42f5ecde9d nixos/networkd: support systemd-creds in WireGuard
systemd 256 supports network.wireguard.* credentials (https://github.com/systemd/systemd/pull/30826).
Check whether PrivateKey / PresharedKey starts with an @, if so it is a credential.
2024-10-06 18:38:40 -05:00
K900 1f9fc918ce treewide: use pkgs.nixos-enter instead of config.system.build.nixos-enter 2024-09-21 16:13:36 +03:00
K900 2bc5aac960 nixos/lib/testing: enable stc by default for installBootLoader VMs 2024-09-12 15:44:02 +03:00
K900 4cfbbb3c1d nixos/tests: don't include switch-to-configuration in DUT by default 2024-09-08 17:04:44 +03:00
Ganga Ram 0c848e9ef0 fix build: sdimage
Increase extra space to 20% to accomodate file system overhead.
Align image size to 1 MiB.

Signed-off-by: Ganga Ram <Ganga.Ram@tii.ae>
2024-08-28 11:32:36 +04:00
Adam Stephens 9277993de4
make-squashfs: add support for generating hydra build products
left default to write the image directly to the store, but enabling hydraBuildProduct
will create $out as a directory
2024-08-17 09:00:43 -04:00
František Hanzlík 8b4cd01f90
nixos/networkd: allow specifying FirewallMark mask 2024-08-01 22:22:01 +02:00
Philip Taron 2b67819d55 nixos-test-driver: avoid top-level with in shell.nix 2024-07-29 19:46:18 +02:00
Graham Dennis 17555cad79 Count hard links when sizing virtual disks
cptofs does not preserve hard links, so each hard link needs to be
accounted for separately when sizing virtual disks
2024-07-25 12:35:37 +10:00
Will Fancher 6f959a9e96 nixos/make-initrd-ng: dlopen ELF notes 2024-07-21 06:31:42 -04:00
Will Fancher e6c544270c nixos/make-initrd-ng: Pass contents as JSON 2024-07-21 06:31:42 -04:00
nikstur d4a80b6d0c systemd: 255.6 -> 256.2 2024-07-21 06:31:37 -04:00
Philip Taron f56ba38335
make-disk-image.nix: avoid top-level with statement (#327020) 2024-07-19 11:19:19 +02:00
Frédéric Christ c6f6c28218 nixos/testing: Add ipv6 configuration
This contribution enables a working IPv6 setup by default. This works
analog to the current automatic IPv4 setup.
2024-07-18 10:22:32 +02:00
Alyssa Ross 259db30f0b
nixos/lib/qemu-common: fix cross to x86_64
qemu-kvm won't be the right thing if the build platform isn't x86_64.
2024-07-15 14:30:56 +02:00
Jörg Thalheim d1b9c95fdf
Merge pull request #325284 from trueNAHO/docs-fix-broken-nix-dev-urls
treewide: fix broken `nix.dev` URLs
2024-07-07 17:41:07 +02:00
NAHO a7cc1dcd68
treewide: fix broken 'nix.dev' URLs 2024-07-07 17:15:35 +02:00
Lin Yinfeng 01543e789c
nixos/utils: support JSON secret files in genJqSecretsReplacementSnippet
genJqReplacementSnippet quotes the content of the secret file in the
output json file, which prevents structured secret, such as a list or
an object, from being used.

This commit adds a `quote = true|false` option to the `{ _secret =
"/path/to/secret"; }` attribute set. `quote = true` treats the
content of /path/to/secret as string, while `quote = false` treats
the content of /path/to/secret as a JSON document.

`quote = true` is the default, maintaining backward compatibility.
2024-07-07 19:22:10 +08:00
Jörg Thalheim 2654628f2c
Merge pull request #319238 from Mic92/digital-ocean
make-disk-image: fix build for systems that use boot.loader.grub.devices
2024-06-23 13:28:50 +02:00
Silvan Mosberger b3ad661e9f nixos/lib/test-driver: Prevent unnecessary rebuilds
E.g. when only Nix files change
2024-06-14 20:42:16 +02:00
Jörg Thalheim d0126c0508 make-disk-image: fix build for systems that use boot.loader.grub.devices
config.boot.loader.grub.device is just an alias that gets assigned to config.boot.loader.grub.devices.
If config.boot.loader.grub.device is set to null, it will fail with the following error
as described in https://github.com/nix-community/nixos-generators/issues/339
2024-06-12 08:27:18 +02:00
Jared Baur b867cc215f
nixos/systemd-networkd: add PREF64 related options 2024-06-09 20:41:32 -07:00
Martin Weinelt ab897a8c62
nixos/test-driver: fix return value of subtest function
Mypy since version 1.10.0 complains about this:

> test_driver/driver.py:109: error: No return value expected  [return-value]
2024-06-06 01:07:39 +02:00
Franz Pletz 4e1b4397d9
Merge pull request #312472 from Ma27/networkd-option-rename
nixos/networkd: get rid of *Config attributes in lists
2024-05-30 04:06:01 +02:00
Gaetan Lepage 622ccf42c2 nixosTests.nixos-test-driver: fix ruff check 2024-05-23 14:30:23 +02:00
Dawid Dziurla f8a88fd22c
nixos/test-driver: adjust to ruff changes 2024-05-22 11:29:02 +02:00
nikstur cf1909ddd0
Merge pull request #301772 from hertrste/junit-xml-prod
nixos/test-driver: Add Junit XML report creation
2024-05-21 15:07:10 +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
Donovan Glover 4afa9444ae
nixos/testing: fix markdown link in enableOCR description 2024-05-14 21:22:09 -04:00
Stefan Hertrampf d07866cddc nixos/test-driver: rm global logger
We remove the global rootlog in favor of instantiating the logger as
required in the __init__.py and pass it down as a parameter (of our
AbstractLogger type).
2024-05-07 15:17:17 +02:00
Stefan Hertrampf 303618c7e1 nixos/test-driver: enable XML log selectively
Previously, the XML logging was always present and only created an
output file if a special environment variable was present. We now only
create the XML logger if the environment variable is present, saving us
from logging to XML internally if it is not required.
2024-05-07 15:17:17 +02:00
Stefan Hertrampf 9e8d6bbe24 nixos/test-driver: add junit-xml logger
We add a new logger that allows generating a junit-xml compatible report
listing the subtests used in the nixos integration test. Junit-xml is a
widely used standard for test reports. The report can be used for quick
evaluation of which subtest failed.
2024-05-07 15:17:16 +02:00
Stefan Hertrampf 9d90df51a9 nixos/test-driver: Separate XML and Terminal log
We use the newly AbstractLogger class and separate the XML and Terminal
logging that is currently mixed into one class. We restore the old
behavior by introducing a CompositeLogger that takes care of logging
both to terminal and XML.
2024-05-07 15:17:16 +02:00
Stefan Hertrampf b505db6f6d nixos/test-driver: add AbstractLogger interface 2024-05-07 15:17:15 +02:00
Jared Baur 38907ef84d
nixos/systemd-lib: fix assertRangeOrOneOf when value is not comparable
We cannot compare non-numerical values to a min or max value in a range.
2024-05-06 10:41:20 -07:00
stove a7931adab8 nixos/lib/qemu-common: add riscv{32,64}-linux to qemu guest matrix 2024-04-29 14:05:39 +02:00
Florian Klink 5a2d4496d3
Merge pull request #297726 from r-vdp/systemd-unit-names
systemd: add a name option to all systemd units
2024-04-23 12:58:51 +03:00
Stefan Hertrampf a6160e5763 nixos/test-driver: use function instead of var
Use a proper function to enable serial log printing instead of setting
class member variables directly.
2024-04-22 13:35:25 +02:00
Stefan Hertrampf c2c525f5bc nixos/test-driver: add junit-xml python package 2024-04-22 13:35:24 +02:00
Stefan Hertrampf 0d015895de nixos/test-driver: separate the subtest log call
We do not use the generic "nested" function but introduce a separate
subtest log call. This will later allow us to track subtests and account
logs to specific subtests.
2024-04-22 13:35:24 +02:00
Ryan Hendrickson 61153af068
Merge pull request #298983 from illustris/mysql
nixos/systemd-lib: fix restart/reloadTriggers when passing paths
2024-04-21 17:45:16 -04:00
illustris 4a9c962aca
nixos/systemd-lib: fix restart/reloadTriggers when passing paths
When passing a path to restartTriggers or reloadTriggers, X-Restart/Reload-Triggers
will get populated by the absolute path of the file on the machine where the
config is evaluated. This patch corrects this behavior.
2024-04-21 09:40:17 +05:30
r-vdp 9258f57625
systemd: add a name option to all systemd units
This allows us to set things like dependencies in a way that we can
catch typos at eval time.
So instead of
```nix
systemd.services.foo.wants = [ "bar.service" ];
```
we can write
```nix
systemd.services.foo.wants = [ config.systemd.services.bar.name ];
```
which will throw an error if no such service has been defined.

Not all cases can be done like this (eg template services), but in a lot
of cases this will allow to avoid typos.

There is a matching option on the unit option
(`systemd.units."foo.service".name`) as well.
2024-04-15 11:32:45 +02:00
Astrid Yu ed854ed0e3 nixos/networkd: add [Bridge] section to netdev conf
This setting was missing from netdev.

This commit additionally adds a test using the new
section, ensuring that STP can be enabled.
2024-04-14 15:16:44 -07:00
Jacek Galowicz 8d3a38e8b1 NixOS Integration tests: Re-enable for macOS 2024-04-12 13:41:27 +02:00
Cole Helbling dbc967d14d Revert "NixOS Integration Tests: Enable again for darwin" 2024-04-10 12:52:12 -07:00
Jacek Galowicz e4bf075cff NixOS Integration Tests: Enable again for darwin 2024-04-10 17:59:11 +02:00
nikstur 80cafa6a29
Merge pull request #302590 from nikstur/repart-image-label-length
nixos/image/repart: assert maximum label length
2024-04-08 18:48:53 +02:00
nikstur 4c397ea6de systemd-lib: include GPTMaxLabelLength constant 2024-04-08 16:42:25 +02:00
Jacek Galowicz aaef13b238
Merge pull request #301799 from alyssais/QEMU_OPTS
nixos/test-driver: don't add QEMU_OPTS twice
2024-04-05 14:56:09 +02:00
Alyssa Ross 4491b9ec0d
nixos/test-driver: don't add QEMU_OPTS twice
As the TODO says, this is already included by the script.

If adding a device, including this again here would result in either
two devices being added, or, if they were explicitly named, an error
due to reuse of the name.
2024-04-05 12:30:36 +02:00