Commit Graph

33 Commits

Author SHA1 Message Date
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
Arian van Putten
16526f454f nixos/binfmt: fix race condition between systemd-tmpfiles and systemd-binfmt
We need to make sure systemd-tmpfiles-setup.service ran before we
start systemd-binft.service. Otherwise it might fail to start
due to non-existant files

Fixes #295365
2024-03-12 21:08:03 +01:00
nikstur
3be357b2e7 nixos/binfmt: remove unused stringAfter 2023-12-29 03:41:45 +01:00
nikstur
88f63d1165 nixos/binfmt: replace activationScript via tmpfiles 2023-10-25 23:44:01 +02:00
LuoChen
9c5afb2f9a
nixos/binfmt: improve type annotations 2023-09-08 19:40:42 +08:00
Artturi
206ca4bef4
Merge pull request #246487 from amjoseph-nixpkgs/pr/binfmt-mips 2023-08-28 22:40:30 +03:00
K900
c6cf85b0d5 nixos/binfmt: use PE magic to detect Wine executables
Otherwise we break every Meson build because it creates native executables named foo.exe
2023-08-23 16:20:57 +03:00
Adam Joseph
957541ad69 nixos/modules/system/boot/binfmt.nix: update mips patterns
This commit updates the binfmt magic-patterns using

  f5e6786de4/scripts/qemu-binfmt-conf.sh

The patterns prior to this commit did not understand the difference
between mips32-*-* (32-bit void*,int) and mips64-*-*abin32 (32-bit
void*, 64-bit int).  This commit corrects that.
2023-07-31 21:24:26 -07:00
Victor Engmark
8deaa732a8 refactor: Split mkdir -m … into mkdir + chmod
As recommended by ShellCheck
<https://www.shellcheck.net/wiki/SC2174>.
2023-06-08 15:55:40 +12:00
jackyliu16
15e3a50bd3 nixos/binfmt: add loongarch64-linux 2023-04-28 12:11:58 +03:00
Berk D. Demir
147186a95b nixos/binfmt: fix extension for Windows binaries
Extension based matching for Windows targets define it '.exe' but kernel
documentation explicitly states it should be passed "without the .".

From https://docs.kernel.org/admin-guide/binfmt-misc.html
> * magic:
>   [...] If you chose filename extension matching, this is the
>   extension to be recognised (without the ., the \x0a specials are not
>   allowed).
2023-03-08 21:07:31 -08:00
Will Fancher
b3a27afb7c binfmt: Don't create invalid service with no registrations
We shouldn't be creating a systemd.services.systemd-binfmt value when
the upstream unit isn't being pulled in, because it results in a
service unit file with no ExecStart line
2023-02-07 17:02:26 -05:00
arcnmx
0e89c822af nixos/binfmt: mkDefault auto-detected interpreter 2022-12-01 14:57:59 -08:00
arcnmx
873074ac60 nixos/binfmt: add interpreter path to sandbox 2022-12-01 14:57:59 -08:00
Majiir Paktu
ad83bff008 nixos/binfmt: restart systemd-binfmt when registrations change 2022-11-07 11:28:47 +01:00
pennae
9547123258 nixos/*: convert internal option descriptions to MD
we'll have to do it eventually, may as well be now.
2022-08-31 16:32:54 +02:00
pennae
2e751c0772 treewide: automatically md-convert option descriptions
the conversion procedure is simple:

 - find all things that look like options, ie calls to either `mkOption`
   or `lib.mkOption` that take an attrset. remember the attrset as the
   option
 - for all options, find a `description` attribute who's value is not a
   call to `mdDoc` or `lib.mdDoc`
 - textually convert the entire value of the attribute to MD with a few
   simple regexes (the set from mdize-module.sh)
 - if the change produced a change in the manual output, discard
 - if the change kept the manual unchanged, add some text to the
   description to make sure we've actually found an option. if the
   manual changes this time, keep the converted description

this procedure converts 80% of nixos options to markdown. around 2000
options remain to be inspected, but most of those fail the "does not
change the manual output check": currently the MD conversion process
does not faithfully convert docbook tags like <code> and <package>, so
any option using such tags will not be converted at all.
2022-07-30 15:16:34 +02:00
polykernel
4a9d9928dc nixos/nix-daemon: use structural settings
The `nix.*` options, apart from options for setting up the
daemon itself, currently provide a lot of setting mappings
for the Nix daemon configuration. The scope of the mapping yields
convience, but the line where an option is considered essential
is blurry. For instance, the `extra-sandbox-paths` mapping is
provided without its primary consumer, and the corresponding
`sandbox-paths` option is also not mapped.

The current system increases the maintenance burden as maintainers have to
closely follow upstream changes. In this case, there are two state versions
of Nix which have to be maintained collectively, with different options
avaliable.

This commit aims to following the standard outlined in RFC 42[1] to
implement a structural setting pattern. The Nix configuration is encoded
at its core as key-value pairs which maps nicely to attribute sets, making
it feasible to express in the Nix language itself. Some existing options are
kept such as `buildMachines` and `registry` which present a simplified interface
to managing the respective settings. The interface is exposed as `nix.settings`.

Legacy configurations are mapped to their corresponding options under `nix.settings`
for backwards compatibility.

Various options settings in other nixos modules and relevant tests have been
updated to use structural setting for consistency.

The generation and validation of the configration file has been modified to
use `writeTextFile` instead of `runCommand` for clarity. Note that validation
is now mandatory as strict checking of options has been pushed down to the
derivation level due to freeformType consuming unmatched options. Furthermore,
validation can not occur when cross-compiling due to current limitations.

A new option `publicHostKey` was added to the `buildMachines`
submodule corresponding to the base64 encoded public host key settings
exposed in the builder syntax. The build machine generation was subsequently
rewritten to use `concatStringsSep` for better performance by grouping
concatenations.

[1] - https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md
2022-01-26 21:04:50 -05:00
0x4A6F
29acc14f0d
Merge pull request #143060 from zhaofengli/binfmt-argv0
nixos/binfmt: Add QEMU wrapper to preserve argv[0]
2022-01-06 19:21:47 +01:00
Zhaofeng Li
9e5d0a9458 nixos/binfmt: Preserve argv[0] when using QEMU 2021-12-01 22:20:48 -08:00
Christian Kögler
33ffba995d
NixOS: Document impurity issues with boot.binfmt.emulatedSystems (#142778)
* NixOS: Document impurity issues with boot.binfmt.emulatedSystems

* Update nixos/modules/system/boot/binfmt.nix

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>

* Update nixos/modules/system/boot/binfmt.nix

Co-authored-by: Moritz Hedtke <13287984+mohe2015@users.noreply.github.com>

* Update nixos/modules/system/boot/binfmt.nix

Co-authored-by: Moritz Hedtke <13287984+mohe2015@users.noreply.github.com>

* Update nixos/modules/system/boot/binfmt.nix

Co-authored-by: markuskowa <markus.kowalewski@gmail.com>

* Apply suggestions from code review

Co-authored-by: markuskowa <markus.kowalewski@gmail.com>

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
Co-authored-by: Moritz Hedtke <13287984+mohe2015@users.noreply.github.com>
Co-authored-by: markuskowa <markus.kowalewski@gmail.com>
2021-11-09 21:49:45 +01:00
Kazutoshi Noguchi
bf22778585 nixos/binfmt: run binfmt activation script after mounting /run
binfmt activation script creates /run/binfmt before mounting /run
when system activation.

To fix it I added dependency to specialfs to binfmt activation
script.
2021-07-06 17:18:33 +09:00
Matthew Bauer
35bd8f1153 nixos/binfmt: add bash to sandboxPaths
bash is needed to run the new binfmt shell script.

Fixes #110540
2021-01-24 22:47:59 -06:00
Matthew Bauer
08135a3caa nixos/binfmt.nix: fix running commands in binfmt
To allow arguments in binfmt, we need to put the command in a shell
script. This uses exec to run the binfmt interpreter.

Fixes #90683
2020-12-31 13:28:01 -06:00
Florian Klink
4e2715934e nixos/binfmt: move systemd-binfmt.service to binfmt module
Also, remove the dangling systemd.services.systemd-binfmt.wants = [
"proc-sys-fs-binfmt_misc.mount" ]; in systemd.nix.

If boot.binfmt.registrations != {}, systemd will install
proc-sys-fs-binfmt_misc.automount, which will auto-mount
`/proc/sys/fs/binfmt_misc` as soon as systemd-binfmt tries to access it.

Fixes https://github.com/NixOS/nixpkgs/issues/87687
Fixes https://github.com/NixOS/nixops/issues/574
2020-05-18 11:18:44 +02:00
Silvan Mosberger
4ee3e8b21d
nixos/treewide: Move rename.nix imports to their respective modules
A centralized list for these renames is not good because:
- It breaks disabledModules for modules that have a rename defined
- Adding/removing renames for a module means having to find them in the
central file
- Merge conflicts due to multiple people editing the central file
2019-12-10 02:51:19 +01:00
Silvan Mosberger
478e7184f8
nixos/modules: Remove all usages of types.string
And replace them with a more appropriate type

Also fix up some minor module problems along the way
2019-08-31 18:19:00 +02:00
Matthew Bauer
857f7fb4af nixos/binfmt: update release notes and provide examples 2019-07-17 17:09:20 -04:00
Matthew Bauer
1acc701fdb nixos/binfmt: handle wasm binaries
This adds handling for WASM binaries to binfmt’s emulatedSystems. To
enable, add this to your configuration:

  boot.binfmt.emulatedSystems = [ "wasm32-wasi" ];

After rebuilding with nixos-rebuild switch, you can run wasm binaries
directly.
2019-07-17 17:00:46 -04:00
Matthew Bauer
93a522cf0c nixos/binfmt: fixup 2019-05-10 22:53:14 -04:00
Matthew Bauer
60381b7b11 binfmt: add more magics and masks
New ones taken from this script:

https://github.com/qemu/qemu/blob/master/scripts/qemu-binfmt-conf.sh
2019-05-10 21:00:21 -04:00
Matthew Bauer
153598ebb0 nixos/binfmt: handle emulatedSystems
Fixes #61248
2019-05-10 18:05:59 -04:00
Shea Levy
c64639b54c
nixos/binfmt: Initial binfmt_msc support. 2018-02-18 12:42:17 -05:00