Commit Graph

1237 Commits

Author SHA1 Message Date
Wolfgang Walther
f2640ee208 top-level: return __splicedPackages 2025-10-31 20:34:05 +01:00
K900
e93c560b79 Merge remote-tracking branch 'origin/master' into staging-next 2025-10-05 12:17:08 +03:00
Wolfgang Walther
91a8fee3aa treewide: remove redundant parentheses
Auto-fixed by nixf-diagnose.
2025-10-05 10:52:03 +02:00
nixpkgs-ci[bot]
592e2df8c6 Merge staging-next into staging 2025-09-17 00:16:57 +00:00
K900
cf105c3841 nixos/test-driver: Crash on closed socket during connect() (#443539) 2025-09-16 22:05:37 +03:00
Will Fancher
90e7c6f90c nixos/test-driver: Crash on closed socket during connect()
If a VM crashes during `connect()`, e.g. because of `panic_on_fail`
during initrd, we would spin on the closed socket forever. We should
rasie an exception instead.
2025-09-16 14:35:26 -04:00
nixpkgs-ci[bot]
4e30eb214a Merge staging-next into staging 2025-09-15 00:18:11 +00:00
Robert Hensing
d916df7775 nixos/make-options-doc: Remove now redundant fixup
This fixes a problem where most NixOS option declaration paths started
with `nixos/modules/nixos/modules/`, which should have been only
just `nixos/modules/`.

Since dcc0ee9ea1, we use a source path
that includes both the `modules` and `nixos/modules`, so we don't need
to additionally prefix `nixos/modules` anymore.

Manually checked with

    nix-build nixos/release.nix -A options
    jq < result/share/doc/nixos/options.json '[ ."_module.args".declarations, ."meta.maintainers".declarations, ."nixpkgs.system".declarations, ."zramSwap.swapDevices".declarations ]'

Samples:

- `_module` for options defined in `lib/`
- `meta.maintainers` for options defined in `modules/`
- `nixpkgs.system` for options defined in `nixos/` with `meta.buildDocsInSandbox = false;`
- `zramSwap.swapDevices` for regular `nixos/` without that

I'm a big fan of automated tests, but in this case I am not doing that because
- the solution is a simplification, and
- no obvious place for the test, and it would couple with unrelated
  downstream code more than I would like.
2025-09-14 16:15:09 +02:00
K900
5e55633983 Merge remote-tracking branch 'origin/staging-next' into staging 2025-09-13 21:19:36 +03:00
Robert Hensing
6d521ceac9 nixos/test-driver: Add machine.get_console_log() 2025-09-12 16:46:03 +02:00
Will Fancher
f1f9ee2028 nixos/systemd: introduce settingsToSections util, migrate existing rfc42 options to use settingsToSections, migrate oomd to rfc42 (#437477) 2025-09-12 03:41:59 +00:00
Léana 江
0829ce947c nixos/eval-config: Remove NIXOS_EXTRA_MODULE_PATH
This removes the previously depricated NIXOS_EXTRA_MODULE_PATH
environment variable.

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
2025-09-08 11:02:43 +08:00
Grimmauld
a27a433370 nixos/lib/systemd: migrate single-section attrsToSection to settingsToSections 2025-08-27 12:38:10 +02:00
Grimmauld
e88c68514d nixos/lib/systemd: introduce settingsToSections 2025-08-27 12:28:40 +02:00
dish
970dcca69c treewide: Fix links in module documentation 2025-08-25 12:55:11 -04:00
K900
041aa01117 Merge remote-tracking branch 'origin/master' into staging-next 2025-08-21 15:22:18 +03:00
Naïm Camille Favier
494a23fb73 make-{iso9660-image,squashfs,system-tarball}: drop references to build closure (#425700) 2025-08-21 12:14:26 +02:00
Robert Hensing
4d3eb9460a Factor out the NixOS meta.maintainers module (#431450) 2025-08-21 10:11:08 +02:00
K900
8eb75c9e73 Merge remote-tracking branch 'origin/master' into staging-next 2025-08-18 15:14:49 +03:00
Sizhe Zhao
c4bfbd8926 recursiveGetAttrsetWithJqPrefix: fix top level values
Co-authored-by: linyinfeng <lin.yinfeng@outlook.com>
2025-08-16 23:25:45 +08:00
nixpkgs-ci[bot]
d060c7e4de Merge master into staging-next 2025-08-13 12:07:08 +00:00
Johannes Kirschbauer
826a474d7a Doc/nixosOptionsDoc: fix baseModules cannot be empty (#430354) 2025-08-13 12:09:20 +02:00
Jeremy Kescher
a1545a073c nixos/systemd: drop kbrequest.target symlink 2025-08-12 22:50:39 +02:00
Maximilian Bosch
9b1025c7fd nixos/test-driver: always respect --dump-vsock
Before, the vsocks the test-run will use were only printed in
interactive mode. However, with `enableDebugHook = true;` this
functionality can also be used via `breakpointHook` within the build
sandbox, i.e. in the non-interactive mode.

I misremembered how much effort this is to fix, otherwise, I would've
added this to #422066 already ;)
2025-08-10 18:25:57 +02:00
Jacek Galowicz
6fe959f8ce nixos test driver: drop wrong assertion 2025-08-07 11:59:39 +02:00
Robert Hensing
dcc0ee9ea1 nixos/documentation: Allow the inclusion of a nixpkgs/modules directory 2025-08-06 14:58:50 +02:00
Johannes Kirschbauer
6f79a7af3a Doc/nixosOptionsDoc: fix baseModules cannot be empty 2025-08-02 14:10:58 +02:00
K900
ae766afdc2 nixos/display-managers: tty1 everywhere (#428972) 2025-07-29 07:32:42 +03:00
Will Fancher
570ae8423d nixos/autovt: Pull in autovt@tty1 in Nix, not generateUnits 2025-07-28 14:46:39 -04:00
Wolfgang Walther
535b720589 Merge branch 'master' into staging-next 2025-07-24 14:27:50 +02:00
Wolfgang Walther
5a0711127c treewide: run nixfmt 1.0.0 2025-07-24 13:55:40 +02:00
Martin Weinelt
f5a40e1102 nixos/testing: fix pyflakes builtins with bash 5.3p0
Printing the file contents with `< file` does not seem to work anymore.
2025-07-23 13:13:55 +02:00
Maximilian Bosch
b4b7218254 nixos/testing: enable ssh backdoor by default if debug hook is enabled
You usually want both, so it makes sense to have the former imply the
latter. If this is not desired, it can still be modified within a test.
2025-07-18 17:39:03 +02:00
Jacek Galowicz
d6b326d659 test-driver: Implement debugging breakpoint hooks
Co-authored-by: Maximilian Bosch <maximilian@mbosch.me>
2025-07-18 17:39:01 +02:00
Michael Hoang
575a9f0e0b make-system-tarball: drop references to build closure 2025-07-16 15:31:33 +10:00
Michael Hoang
acfcf0f40b make-system-tarball: use __structuredAttrs
Based on ea81a2465e
2025-07-16 15:29:05 +10:00
Michael Hoang
f03674d868 make-squashfs: drop references to build closure 2025-07-16 13:40:02 +10:00
Michael Hoang
6c2ccf3f6e make-iso9660-image: drop references to build closure 2025-07-16 13:40:00 +10:00
Philip Taron
8279ffe622 treewide: specify that mebibytes are used when it's ambiguous (#424169) 2025-07-11 12:29:33 -07:00
Axel Karjalainen
7159ab6f43 treewide: specify where mebibytes are used when it's ambiguous 2025-07-11 00:44:23 +03:00
Wolfgang Walther
f965d36fa1 nixos/lib/test-driver: correct regex in pythonize_name() (#423064) 2025-07-09 16:01:27 +00:00
Robert Hensing
0e32661202 nixos/testing: Add test attribute to please discoverTests 2025-07-07 22:23:55 +02:00
Michael Daniels
98b97a2011 nixos/lib/test-driver: correct regex in pythonize_name()
r"[A-z]" is not equivalent to r"[A-Za-z]"; it is equivalent to r"[A-Z[]^_`a-z]".
But Python variable names cannot contain, e.g., a backtick.
So the current regex is wrong.
2025-07-06 21:09:36 -04:00
Robert Hensing
7845abc842 NixOS test framework: add overriding methods (#421480) 2025-07-06 13:40:24 +02:00
Robert Hensing
f2b3aeb383 nixos.runTest: Add extendNixOS 2025-07-06 13:39:15 +02:00
Robert Hensing
63e2606ddf nixos.runTest: Add extend, overrideTestDerivation 2025-07-06 13:39:15 +02:00
Yarny0
5e2baf54d4 nixos/test-driver: fix race from filename clash in OCR
There is a race condition
in the new paralleized OCR code.
The race condition got "active" in commit
819d304a39 (Use futures for OCR parallelization),
however, the underlying bug already slipped in with commit
e6ea13f4ea (User proper `Path` instead of `str` in OCR code).

The OCR module applies tesseract to at most three variants
of the screenshot: the original one, and two variants that
are created by a preprocessing step (with ImageMagick).
The preprocessing step needs an output filename
that is used to write the preprocessed image file.

The "Path" commit broke the way the output file is named:
The code still attempts to append a ".negative" to *one*
of the preprocessed output files, but the method
`.with_suffix` is not suitable for that purpose:
Lateron, ".png" is also added with `.with_suffix`,
*replacing* the ".negative" and thereby yielding the
*the same* output filename for both preprocessed files.

Without parallelization, this doesn't hurt;
preprocessed files are simply created and analyzed in order.
But the parallelization commit
causes that these two tasks now run in parallel
(plus the third task that analyses the original screensshot,
but that does not cause any further harm here):

* Task 1: preprocess (non-negative), then tesseract the output
* Task 2: preprocess (negative), then tesseract the output

Both tasks use the same filename and thus the same file for the
preprocessed image that is generated, then used by tesseract.
This often creates a garbage file since both
preprocessings write that one file at the same time.
Tesseract consequently fails and
complains about bad data in its input file.

The commit at hand simply fixes the file naming
by adding ".negative.png" or ".positive.png"
to the filename for the preprocessed image.
This ensures both threads no longer hurt each
other's data and can now coexist in peace.
2025-07-04 12:10:53 +02:00
Jacek Galowicz
3a670480d1 nixos/lib/test-driver: try using XDG_RUNTIME_DIR if available (#414231) 2025-07-02 16:11:44 +02:00
Jacek Galowicz
26bcb57f3c test-driver: fix number of cores 2025-07-02 13:59:15 +00:00
Maximilian Bosch
59b4d0de90 nixos/lib/test-driver: try using XDG_RUNTIME_DIR if available
At work we have the use-case that several people connect to a large
Linux box to run tests and debug those interactively.

All tests write their state into a global `/tmp` -- e.g. the vde1 socket
and the VMs' state. This leads to conflicts when multiple people are
doing this.

This change tries to use XDG_RUNTIME_DIR before using Python's detection
of a global temp directory: when connecting, this requires a working
user session, but then we get working directories per user. This is
preferable over doing something like `mktemp -d` per run since that
would break use-cases where you want to keep the VMs' state across
multiple sessions (`--keep-vm-state`).
2025-07-02 15:53:12 +02:00