Commit graph

21317 commits

Author SHA1 Message Date
Janne Heß 563e5c46f5
Merge pull request #175445 from helsinki-systems/fix/vmware-mkoverride
nixos/vmware-guest: Remove the video driver
2022-05-30 12:30:46 +02:00
Janne Heß 5157246aa4
nixos/vmware-guest: Remove the video driver
This breaks isos since https://github.com/NixOS/nixpkgs/pull/172668
because vmware is enabled there. @K900 tested this and confirmed that
the GPU acceleration still works.
2022-05-30 11:56:21 +02:00
Florian Klink f12a263b69
Merge pull request #172707 from klemensn/init-zfs-mount-options
nixos/stage-1: Fix library path in libraries, fix ZFS mount options
2022-05-30 10:51:17 +02:00
Guillaume Girol f2493e87d8
Merge pull request #173110 from symphorien/ovmf-cross
nixos/libvirtd: make it possible to boot a UEFI aarch64 vm on x86_64
2022-05-29 21:46:45 +00:00
linj 37792e5766 nixos/dendrite: add an option loadCredential
systemd-247 provides a mechanism called LoadCredential for secrets and
it is better than environment file. See the section of Environment=
in the manual of systemd.exec for more information.

Some options in config.yaml need values to be strings, which currently
can be used with environmentFile but not loadCredential. But it's
possible to use loadCredential for those options, e.g. we can
substitute their values in ExecStart, but not in ExecStartPre due to
[1].

[1]: https://github.com/systemd/systemd/issues/19604
2022-05-29 13:34:14 -07:00
Jörg Thalheim d32a2bf207 nixos/mimir: also expose mimirtool to users 2022-05-29 03:49:17 -04:00
Jörg Thalheim 6497902407 nixos/mimir: set workingdirectory
Mimir writes files relatative to its working directory.
With this option less files have to be configured.
2022-05-29 03:49:17 -04:00
Alyssa Ross c3c0dd00d8 treewide: fix loss of precision in NixOS systems
Prior to this patch:

	$ nix-instantiate --eval -E '
	>   with import ./. {
	>     localSystem.config = "aarch64-unknown-linux-musl";
	>   };
	>   (nixos {}).config.nixpkgs.localSystem.config
	> '
	"aarch64-unknown-linux-gnu"

Because only the system triple was being passed through, the Musl part
of the system specification was lost.  This patch fixes various
occurrences of NixOS evaluation when a Nixpkgs evaluation is already
available, to pass through the full elaborated system attribute set,
to avoid this loss of precision.
2022-05-28 20:01:55 +00:00
Aleksandar Topuzović fd86efb8c2 nixos/nextcloud: Fix broken config file 2022-05-28 19:14:12 +01:00
Florian Klink 8707ec2798
Merge pull request #174167 from chivay/saleae
nixos/saleae-logic: init
2022-05-28 14:30:32 +02:00
Martin Weinelt c48756aae2
Merge pull request #172849 from waldheinz/systemd-boot-builder-downgrade
nixos/systemd-boot: fix systemd-boot-builder dowgrade to fail
2022-05-28 13:23:44 +02:00
Matthias Treydte a30de3b849 nixos/systemd-boot: fix systemd-boot-builder dowgrade to fail
Since, 4ddc78818e systemd-boot-builder
is broken in two ways:

  * if no systemd-boot is currently installed *and* the NIXOS_INSTALL_BOOTLOADER
    env variable is not set, it will try to run "bootctl update", which will fail
  * if the currently installed systemd-boot version is newer than the version
    we're about to install, it will also try to run "bootctl update", which will fail

This patch changes the behaviour,

  * for the first case to still fail, but not even bother to try running
    "bootctl update" and instead erroring out with an exception
  * for the second case to leave the newer version in place, restoring
    the pre - 4ddc78818e behaviour

To do the proper version check a new "should_update" helper function was introduced,
mimicing the compare_product C function from bootctl. If the following systemd
issue gets resolved, we would have a nice way to get rid of this function:

> https://github.com/systemd/systemd/issues/23450

This change allows to again switch to a different NixOS configuration which contains
an older systemd-boot.

Co-authored-by: Martin Weinelt <mweinelt@users.noreply.github.com>
2022-05-28 13:18:21 +02:00
Hubert Jasudowicz 91015fe196 nixos/saleae-logic: init 2022-05-27 20:39:32 +02:00
Sandro e34ee08ec5
Merge pull request #174639 from mtoohey31/fix/os-release-newline 2022-05-27 19:29:38 +02:00
Sandro 23ec1c06c0
Merge pull request #173126 from NULLx76/update-hedgedoc-module
nixos/hedgedoc: fix and add config options
2022-05-27 16:03:22 +02:00
Maximilian Bosch 57a8966d03
Merge pull request #171227 from aidalgol/nextcloud-setup-script-fix
nixos/nextcloud: Fix broken error suppression in setup script
2022-05-27 13:23:10 +02:00
Klemens Nanni 9eb704b65a nixos/stage-1: Zap no longer needed LD_LIBRARY_PATH
The previous commit properly adjusts all library paths, thus no need to
forcefully adjust the path at runtime any longer.
2022-05-26 22:17:02 +02:00
Klemens Nanni d33e52b253 nixos/stage-1: Fix library path in libraries also
`extra-utils` composes the set of programs and libraries needed by

1. copying over all programs
2. copying over all libraries any program directly links against
3. set the runtime path for every program to the library directory

It seems that this approach misses the case where a library itself links
against another library.  That is to say, `extra-utils` assumes that
either only progams link against libraries or that every library linked
to by a library is already linked to by a program.

`mount.zfs` linking against `libcrypto`, in turn linking against `libdl`
shows how the current approach falls short:

```
$ objdump -p $(which mount.zfs) | grep NEEDED | grep -e libdl -e libcrypto
  NEEDED               libcrypto.so.1.1
$ ldd (which mount.zfs) | grep libdl
        libdl.so.2 => /nix/store/ybkkrhdwdj227kr20vk8qnzqnmj7a06x-glibc-2.34-115/lib/libdl.so.2 (0x00007f9967a9a000
```

Using `mount.zfs` directly in stage 1 init still works since
`LD_LIBRARY_PATH` overrides this (as intended).

util-linux's `mount` however executes `mount.zfs` with LD_LIBRARY_PATH
removed from its environment as can be seen with strace(1) in an
interactive stage 1 init shell (`boot.shell_on_fail` kernel parameter):

```
 # env -i LD_LIBRARY_PATH=$LD_LIBRARY_PATH $(which strace) -ff -e trace=/exec -v -qqq $(which mount) /mnt-root
execve("/nix/store/3gqbb3swgiy749fxd5a4k6kirkr2jr9n-extra-utils/bin/mount", ["/nix/store/3gqbb3swgiy749fxd5a4k"..., "/mnt-root"], ["LD_LIBRARY_PATH=/nix/store/3gqbb"...]) = 0
[pid  1026] execve("/sbin/mount.zfs", ["/sbin/mount.zfs", "<redacted>", "/mnt-root", "-o", "rw,zfsutil"], []) = 0
/sbin/mount.zfs: error while loading shared libraries: libdl.so.2: cannot open shared object file: No such file or directory
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=1026, si_uid=0, si_status=127, si_utime=0, si_stime=0} ---
```

env(1) is used for clarity (hence subshells for absoloute paths).

While `mount` uses the right library path, `mount.zfs` is stripped of
it, so ld.so(8) fails resolve `libdl` (as required by `libcrypto`).

To fix this and not rely on `LD_LIBRARY_PATH` to be set, fix the library
path inside libraries as well.

This finally mounts all ZFS filesystems using `zfsutil` with correct and
intended mount options.
2022-05-26 22:17:02 +02:00
Klemens Nanni 4b045c7066 nixos/stage-1: Remove redundant symlink check
find(1)'s test `-type f` already excludes symbolic links, so `test -L`
will never return false for found files.
2022-05-26 22:17:02 +02:00
Klemens Nanni de77849ad6 nixos/stage-1: Account for hardcoded executable paths
At least pkgs/os-specific/linux/util-linux/default.nix uses
```
    "--enable-fs-paths-default=/run/wrappers/bin:/run/current-system/sw/bin:/sbin"
```

which does not cover stage 1 init's PATH as all executables are put
under /bin/.

Fix util-linux's `mount` usage by symlinking /sbin to it.
2022-05-26 22:17:02 +02:00
Klemens Nanni 9553106832 nixos/stage-1: Ensure correct ZFS mount options
Consider ZFS filesystems meant to be mounted with zfs.mount(8), e.g.
```
config.fileSystems."/media".options = [ "zfsutil" ];
config.fileSystems."/nix".options = [ "zfsutil" ];
```

`zfsutil` uses dataset properties as mount options such that zfsprops(7)
do not have to be duplicated in fstab(5) entries or manual mount(8)
invocations.

Given the example configuation above, /media is correctly mounted with
`setuid=off` translated into `nosuid`:

```
$ zfs get -Ho value setuid /media
off
$ findmnt -t zfs -no options /media
rw,nosuid,nodev,noexec,noatime,xattr,posixacl
```

/nix however was mounted with default mount(8) options:
```
$ zfs get -Ho value setuid /nix
off
$ findmnt -t zfs -no options /nix
rw,relatime,xattr,noacl
```

This holds true for all other ZFS properties/mount options, including
`exec/[no]exec`, `devices/[no]dev`, `atime/[no]atime`, etc.

/nix is mounted using BusyBox's `mount` during stage 1 init while /media
is mounted later using proper systemd and/or util-linux's `mount`.

Tracing stage 1 init showed that BusyBox never tried to execute
mount.zfs(8) as intended by `zfsutil`.

Replacing it with util-linux's `mount` and adding the mount helper
showed attempts to execute mount.zfs(8).

Ensure ZFS filesystems are mounted with correct options iff `zfsutil` is
used.
2022-05-26 22:16:53 +02:00
Jonas Heinrich f81c763c1d nixos/appvm: init at unstable-2021-12-20
Co-authored-by: Mikhail Klementev <blame@dumpstack.io>
Co-authored-by: Cabia Rangris <me@cab404.ru>
2022-05-26 08:33:49 -04:00
sternenseemann 8b5e372c97
Merge pull request #168113 from a-m-joseph/ispowerpc-becomes-ispower32
lib/systems/inspect.nix: replace isPowerPC with isPower32BigEndian
2022-05-26 11:44:39 +02:00
Maciej Krüger 41e3072c81
Merge pull request #147232 from mkg20001/zen-tweaks 2022-05-26 06:44:54 +02:00
Matthew Toohey e41c423b01 nixos/version: add trailing newline to os-release 2022-05-25 20:25:27 -04:00
Jörg Thalheim 9ae4a910e4
nixos/timetagger: drop non-evaluating service files
The file was not included in the module list and also does not evaluate.
2022-05-25 21:24:48 +02:00
Sandro 7fa8d8b2e2
Merge pull request #153481 from Tchekda/submit/bird-lg 2022-05-25 18:20:58 +02:00
Adam Joseph c0085404bd lib/systems/inspect.nix: remove isPowerPC
Very confusingly, the `isPowerPC` predicate in
`lib/systems/inspect.nix` does *not* match `powerpc64le`!

This is because `isPowerPC` is defined as

  isPowerPC      = { cpu = cpuTypes.powerpc; };

Where `cpuTypes.powerpc` is:

  { bits = 32; significantByte = bigEndian; family = "power"; };

This means that the `isPowerPC` predicate actually only matches the
subset of machines marketed under this name which happen to be 32-bit
and running in big-endian mode which is equivalent to:

  with stdenv.hostPlatform; isPower && isBigEndian && is32bit

This seems like a sharp edge that people could easily cut themselves
on.  In fact, that has already happened: in
`linux/kernel/common-config.nix` there is a test which will always
fail:

  (stdenv.hostPlatform.isPowerPC && stdenv.hostPlatform.is64bit)

A more subtle case of the strict isPowerPC being used instead of the
moreg general isPower accidentally are the GHC expressions:

  Update pkgs/development/compilers/ghc/8.10.7.nix
  Update pkgs/development/compilers/ghc/8.8.4.nix
  Update pkgs/development/compilers/ghc/9.2.2.nix
  Update pkgs/development/compilers/ghc/9.0.2.nix
  Update pkgs/development/compilers/ghc/head.nix

Since the remaining legitimate use sites of isPowerPC are so few, remove
the isPowerPC predicate completely. The alternative expression above is
noted in the release notes as an alternative.

Co-authored-by: sternenseemann <sternenseemann@systemli.org>
2022-05-25 09:45:42 +02:00
Sandro 49d6b4aa34
Merge pull request #173512 from SuperSandro2000/gnupg-pinentry
nixos/gnupg: default to a reasonable pinentry program on headless sys…
2022-05-23 21:29:16 +02:00
Maximilian Bosch 2b7e06e0b6
Merge pull request #174145 from alarsyo/nextcloud24-php8
nixos/nextcloud: use PHP 8 avoiding broken 2FA app
2022-05-23 20:23:11 +02:00
Janne Heß 3673f148b3
Merge remote-tracking branch 'origin/staging-next'
* origin/staging-next: (62 commits)
  Re-Revert "lua: fix on darwin by using makeBinaryWrapper (#172749)"
  openldap: fix cross-compilation
  makeBinaryWrapper: fix codesign on aarch64-darwin
  python3Packages.ldap: fix linking with openldap 2.5+
  Revert "lua: fix on darwin by using makeBinaryWrapper (#172749)"
  wine: enable parallel build again
  pkgsi686Linux.gdb: fix formatting for 32-bit systems
  gtk4: Fix incorrect merge
  nixos/openldap: use upstream unit defaults
  openldap: update maintainers
  openldap: 2.4.58 -> 2.6.2
  Revert "Add mingwW64-llvm cross-system."
  lua: fix on darwin by using makeBinaryWrapper (#172749)
  python310Packages.python-mimeparse: execute tests
  pandas: fix darwin build
  gtk3: 3.24.33 -> 3.24.33-2022-03-11
  gtk4: patch fixing g-c-c crashes
  e2fsprogs: patch for CVE-2022-1304
  firefox-unwrapped: fix cross compilation
  rustc: expose correct llvmPackages for cross compile
  ...
2022-05-23 19:56:59 +02:00
Antoine Martin f3f0b60006 nixos/nextcloud: use PHP 8 avoiding broken 2FA app 2022-05-23 18:39:39 +02:00
Martin Weinelt 6d8f8a7b46
Merge pull request #174090 from helsinki-systems/fix/plymouth
nixos/plymouth: Fix non-systemd initrd boot
2022-05-23 17:08:02 +02:00
github-actions[bot] f51499324c
Merge master into staging-next 2022-05-23 12:01:25 +00:00
pennae 023e25264c
Merge pull request #172983 from pennae/mosquitto-bind-interface
nixos/mosquitto: add bind_interface listener option, fix assertion messages
2022-05-23 10:53:08 +00:00
Janne Heß e9bdd5fa74
Merge pull request #168168 from fedeinthemix/home-mode
nixos/users-group: Add 'homeMode' option.
2022-05-23 12:27:49 +02:00
Florian Klink 2403723108
Merge pull request #172652 from klemensn/systemd-optional-system-units
nixos/systemd: Package only built component units
2022-05-23 11:35:01 +02:00
Janne Heß 2cc4bf9427
nixos/plymouth: Fix non-systemd initrd boot 2022-05-23 11:17:21 +02:00
Federico Beffa 572ff94f55 nixos/users-group: make homeMode respect is_dry and create home directly with right permissions 2022-05-23 07:47:11 +02:00
Jared Baur 5463b86d03
nixos/users: Fix typo 2022-05-22 22:13:39 -07:00
github-actions[bot] 107b6041bc
Merge master into staging-next 2022-05-22 18:01:20 +00:00
Martin Weinelt 05232d19b6
Merge pull request #163220 from fleaz/init-r53_ddns 2022-05-22 17:08:55 +02:00
Benno Bielmeier d156db7d17 nixos/gollum: add option 'no-edit' 2022-05-22 15:06:00 +02:00
Benno Bielmeier 8e7b82be49 nixos/gollum: add option 'user-icons' 2022-05-22 15:06:00 +02:00
Benno Bielmeier 8a770f06a2 gollum: refactor package
use `bundlerApp` in preference to `stdenv.mkDerivation`
2022-05-22 15:06:00 +02:00
github-actions[bot] 86ec85655d
Merge master into staging-next 2022-05-22 12:01:28 +00:00
Yureka 821724b184 nixos/gitlab: support 15.x 2022-05-22 13:09:36 +02:00
Jörg Thalheim e2e77bfb9a
Merge pull request #173978 from alyssais/postfix-RemainAfterExit
nixos/postfix: make postfix-setup RemainAfterExit
2022-05-22 12:04:04 +01:00
Alyssa Ross 27530ba856
nixos/postfix: make postfix-setup RemainAfterExit
Otherwise, it wouldn't get restarted when a new system configuration
was activatad, so the Postfix configuration wouldn't be updated.

Fixes: fb2fa1b50f ("nixos/postfix: pull setup into its own unit")
2022-05-22 10:33:22 +00:00
github-actions[bot] dbef850602
Merge master into staging-next 2022-05-22 00:02:20 +00:00