Commit graph

32563 commits

Author SHA1 Message Date
github-actions[bot] 47ddbcb1f0
Merge staging-next into staging 2023-03-31 00:03:05 +00:00
David Houston 6e8c2760ac
maintainers: Update houstdav000 -> cyntheticfox 2023-03-30 18:50:29 -04:00
Ilan Joselevich 003c2e3957
Merge pull request #221964 from randomnetcat/sanoid-service-package
sanoid/syncoid: Add package options
2023-03-30 23:33:53 +03:00
github-actions[bot] 04fb768a55
Merge staging-next into staging 2023-03-30 18:01:42 +00:00
Benjamin Staffin ff296a777e
Merge pull request #207115 from s1341/init_freeipa
freeipa: init at 4.10.1
2023-03-30 13:15:18 -04:00
Ilan Joselevich faf84687ce
Merge pull request #223754 from IndeedNotJames/nixos-loki
nixos/loki: add `package` option
2023-03-30 17:43:50 +03:00
K900 3947e917cf
Merge pull request #223760 from K900/nicer-pure-eval-error
nixos/system: disallow system.copySystemConfiguration in pure eval mode
2023-03-30 17:00:15 +03:00
IndeedNotJames f8f3eb7a48
nixos/loki: add package option 2023-03-30 14:35:53 +02:00
superherointj a180470959 nixos/k3s: start after network-online 2023-03-30 07:53:38 -03:00
Robert Scott 9a6aabc474
Merge pull request #223548 from enc0urage/fix-graphene-hardened
nixos/malloc: set vm.max_map_count when using graphene-hardened
2023-03-29 22:32:24 +01:00
Janet Cobb 1033d0f6ac (nixos/sanoid, nixos/syncoid): Add package options
Allows changing the sanoid package to be used for these services.
2023-03-29 17:23:51 -04:00
K900 48b2f723f5 nixos/system: disallow system.copySystemConfiguration in pure eval mode
This is already broken, so let's give it a better error message.
2023-03-29 17:49:30 +03:00
ajs124 800426cf64
Merge pull request #222422 from mdarocha/remove-dotnet-3
dotnet-sdk_3: remove
2023-03-29 16:13:25 +02:00
K900 542012fe24
Merge pull request #222336 from motiejus/master_synapse_signing_key_path
matrix-synapse: fix signing key path in fix-permissions script
2023-03-29 16:57:56 +03:00
Bernardo Meurer afbc94b2a8
Merge pull request #223661 from filakhtov/resolvconf-disable 2023-03-29 09:39:06 -03:00
Sandro c2ae278eb8
Merge pull request #221851 from Ma27/postgresql-jit-support
postgresql: implement opt-in JIT support
2023-03-29 13:29:30 +02:00
Maximilian Bosch e2fb651752
nixos/postgresql: fix enableJIT
Make sure that JIT is actually available when using

    services.postgresql = {
      enable = true;
      enableJIT = true;
      package = pkgs.postgresql_15;
    };

The current behavior is counter-intuitive because the docs state that
`enableJIT = true;` is sufficient even though it wasn't in that case
because the declared package doesn't have the LLVM dependency.

Fixed by using `package.withJIT` if `enableJIT = true;` and
`package.jitSupport` is `false`.

Also updated the postgresql-jit test to test for that case.
2023-03-29 08:39:47 +02:00
Maximilian Bosch 608cb37533
nixos/tests/postgresql: fix deprecation warning 2023-03-29 08:39:46 +02:00
Maximilian Bosch 43dbeae02d
postgresql: pass through JIT-enabled variant of non-JIT postgres and vice versa
This is useful if your postgresql version is dependant on
`system.stateVersion` and not pinned down manually. Then it's not
necessary to find out which version exactly is in use and define
`package` manually, but just stay with what NixOS provides as default:

    $ nix-instantiate -A postgresql
    /nix/store/82fzmb77mz2b787dgj7mn4a8i4f6l6sn-postgresql-14.7.drv
    $ nix-instantiate -A postgresql_jit
    /nix/store/qsjkb72fcrrfpsszrwbsi9q9wgp39m50-postgresql-14.7.drv
    $ nix-instantiate -A postgresql.withJIT
    /nix/store/qsjkb72fcrrfpsszrwbsi9q9wgp39m50-postgresql-14.7.drv
    $ nix-instantiate -A postgresql.withJIT.withoutJIT
    /nix/store/82fzmb77mz2b787dgj7mn4a8i4f6l6sn-postgresql-14.7.drv

I.e. you can use postgresql with JIT (for complex queries only[1]) like
this:

    services.postgresql = {
      enable = true;
      enableJIT = true;
    };

Performing a new override instead of re-using the `_jit`-variants for
that has the nice property that overlays for the original package apply
to the JIT-enabled variant, i.e.

    with import ./. {
      overlays = [
        (self: super: {
          postgresql = super.postgresql.overrideAttrs (_: { fnord = "snens"; });
        })
      ];
    };
    postgresql.withJIT.fnord

still gives the string `snens` whereas `postgresql_jit` doesn't have the
attribute `fnord` in its derivation.

[1] https://www.postgresql.org/docs/current/runtime-config-query.html#GUC-JIT-ABOVE-COST
2023-03-29 08:39:46 +02:00
Maximilian Bosch 2282fa73a1
postgresql: implement opt-in JIT support
Closes #150801

Note: I decided against resuming directly on #150801 because the
conflict was too big (and resolving it seemed too error-prone to me).
Also the `this`-refactoring could be done in an easier manner, i.e. by
exposing JIT attributes with the correct configuration. More on that
below.

This patch creates variants of the `postgresql*`-packages with JIT[1]
support. Please note that a lot of the work was derived from previous
patches filed by other contributors, namely dasJ, andir and abbradar,
hence the co-authored-by tags below.

Effectively, the following things have changed:

* For JIT variants an LLVM-backed stdenv with clang is now used as
  suggested by dasJ[2]. We need LLVM and CLang[3] anyways to build the
  JIT-part, so no need to mix this up with GCC's stdenv. Also, using the
  `dev`-output of LLVM and clang's stdenv for building (and adding llvm
  libs as build-inputs) seems more cross friendly to me (which will
  become useful when cross-building for JIT-variants will actually be
  supported).

* Plugins inherit the build flags from the Makefiles in
  `$out/lib/pgxs/src` (e.g. `-Werror=unguarded-availability-new`). Since
  some of the flags are clang-specific (and stem from the use of the
  CLang stdenv) and don't work on gcc, the stdenv of `pkgs.postgresql`
  is passed to the plugins. I.e., plugins for non-JIT variants are built
  with a gcc stdenv on Linux and plugins for JIT variants with a clang
  stdenv.

  Since `plv8` hard-codes `gcc` as `$CC` in its Makefile[4], I marked it
  as broken for JIT-variants of postgresql only.

* Added a test-matrix to confirm that JIT works fine on each
  `pkgs.postgresql_*_jit` (thanks Andi for the original test in
  #124804!).

* For each postgresql version, a new attribute
  `postgresql_<version>_jit` (and a corresponding
  `postgresqlPackages<version>JitPackages`) are now exposed for better
  discoverability and prebuilt artifacts in the binary cache.

* In #150801 the `this`-argument was replaced by an internal recursion.
  I decided against this approach because it'd blow up the diff even
  more which makes the readability way harder and also harder to revert
  this if necessary.

  Instead, it is made sure that `this` always points to the correct
  variant of `postgresql` and re-using that in an additional
  `.override {}`-expression is trivial because the JIT-variant is
  exposed in `all-packages.nix`.

* I think the changes are sufficiently big to actually add myself as
  maintainer here.

* Added `libxcrypt` to `buildInputs` for versions <v13. While
  building things with an LLVM stdenv, these versions complained that
  the extern `crypt()` symbol can't be found. Not sure what this is
  exactly about, but since we want to switch to libxcrypt for `crypt()`
  usage anyways[5] I decided to add it. For >=13 it's not relevant
  anymore anyways[6].

* JIT support doesn't work with cross-compilation. It is attempted to
  build LLVM-bytecode (`%.bc` is the corresponding `make(1)`-rule) for
  each sub-directory in `backend/` for the JIT apparently, but with a
  $(CLANG) that can produce binaries for the build, not the host-platform.

  I managed to get a cross-build with JIT support working with
  `depsBuildBuild = [ llvmPackages.clang ] ++ buildInputs`, but
  considering that the resulting LLVM IR isn't platform-independent this
  doesn't give you much. In fact, I tried to test the result in a VM-test,
  but as soon as JIT was used to optimize a query, postgres would
  coredump with `Illegal instruction`.

A common concern of the original approach - with llvm as build input -
was the massive increase of closure size. With the new approach of using
the LLVM stdenv directly and patching out references to the clang drv in
`$out` the effective closure size changes are:

    $ nix path-info -Sh $(nix-build -A postgresql_14)
    /nix/store/kssxxqycwa3c7kmwmykwxqvspxxa6r1w-postgresql-14.7	306.4M
    $ nix path-info -Sh $(nix-build -A postgresql_14_jit)
    /nix/store/xc7qmgqrn4h5yr4vmdwy56gs4bmja9ym-postgresql-14.7	689.2M

Most of the increase in closure-size stems from the `lib`-output of
LLVM

    $ nix path-info -Sh /nix/store/5r97sbs5j6mw7qnbg8nhnq1gad9973ap-llvm-11.1.0-lib
    /nix/store/5r97sbs5j6mw7qnbg8nhnq1gad9973ap-llvm-11.1.0-lib	349.8M

which is why this shouldn't be enabled by default.

While this is quite much because of LLVM, it's still a massive
improvement over the simple approach of adding llvm/clang as
build-inputs and building with `--with-llvm`:

    $ nix path-info -Sh $(nix-build -E '
	with import ./. {};
	postgresql.overrideAttrs ({ configureFlags ? [], buildInputs ? [], ... }: {
	  configureFlags = configureFlags ++ [ "--with-llvm" ];
	  buildInputs = buildInputs ++ [ llvm clang ];
	})' -j0)
    /nix/store/i3bd2r21c6c3428xb4gavjnplfqxn27p-postgresql-14.7	  1.6G

Co-authored-by: Andreas Rammhold <andreas@rammhold.de>
Co-authored-by: Janne Heß <janne@hess.ooo>
Co-authored-by: Nikolay Amiantov <ab@fmap.me>

[1] https://www.postgresql.org/docs/current/jit-reason.html
[2] https://github.com/NixOS/nixpkgs/pull/124804#issuecomment-864616931
    & https://github.com/NixOS/nixpkgs/pull/150801#issuecomment-1467868321
[3] This fails with the following error otherwise:
    ```
    configure: error: clang not found, but required when compiling --with-llvm, specify with CLANG=
    ```
[4] https://github.com/plv8/plv8/blob/v3.1.5/Makefile#L14
[5] https://github.com/NixOS/nixpkgs/pull/181764
[6] c45643d618
2023-03-29 08:39:46 +02:00
Peter Simons 7942e2e38f
Merge pull request #221108 from mrobbetts/bind_remove_allow_query
bind: remove hard-coded `allow-query` config setting
2023-03-29 07:50:47 +02:00
Garry Filakhtov d86e9911cd
nixos/modules/config/resolvconf.nix: skip systemPackages if disabled
A change made in #166308 added `networking.resolvconf.package` to the
`environment.systemPackages` list, so it is installed as part of the
system image. However it does so unconditionally, meaning that even if
the `config.networking.resolvconf.enable` is set to false the package
listed in the `networking.resolvconf.package` would still be intalled.

This change makes it so the package installation will depend on the
status of the `config.networking.resolvconf.enable` option instead.
2023-03-29 09:31:09 +11:00
Martin Weinelt 0a33e0d071
Merge pull request #223479 from dotlambda/vaultwarden-1.28.0
vaultwarden: 1.27.0 -> 1.28.0
2023-03-28 22:50:12 +02:00
Sandro fd46812f7e
Merge pull request #222667 from chuangzhu/proxychains-package 2023-03-28 22:19:38 +02:00
Daniel Nagy e1a383102f
nixos/x11: set XKB_CONFIG_ROOT from config
The motivation is to make overriding `services.xserver.xkbDir` easier.
2023-03-28 20:00:00 +02:00
Robert Schütz f672b32b2e vaultwarden: 1.27.0 -> 1.28.0
Diff: https://github.com/dani-garcia/vaultwarden/compare/1.27.0..1.28.0

Changelog: https://github.com/dani-garcia/vaultwarden/releases/tag/1.28.0
2023-03-28 10:15:39 -07:00
Atemu 91f5aa3446
Merge pull request #213378 from Atemu/steam-env-vars
steam: add extraEnv argument
2023-03-28 17:25:14 +02:00
Sandro 1625c82884
Merge pull request #221297 from MrFreezeex/bridge-update
protonmail-bridge: 3.0.18 -> 3.0.21
2023-03-28 14:25:49 +02:00
Arthur Outhenin-Chalandre c492acd865
protonmail-bridge: rename back the binary to protonmail-bridge
`bridge` is used by iproute2, so using this name for protonmail-bridge
made it very likely to produce a name "conflict".
Also `bridge` is used in the Makefile by upstream project Makefile but
it apparently is renamed later on when packaged in rpm/deb so even for
coherence purposes it does make sense to revert it back to the name
`protonmail-bridge` that were previously being used.

Signed-off-by: Arthur Outhenin-Chalandre <arthur.outhenin-chalandre@proton.ch>
2023-03-28 13:12:26 +02:00
enc0urage a76bd96e4b nixos/malloc: set vm.max_map_count when using graphene-hardened 2023-03-28 10:18:20 +00:00
r-vdp 982ea4295b
NixOS/opengl: Use the default Mesa package by default.
Fixes #223458
Fixes #223331
2023-03-28 11:06:07 +02:00
Nick Cao ca7c52c4f5
Merge pull request #222762 from Kiskae/nvidia/530.41.03
linuxPackages.nvidia_x11: 525.89.02 -> 530.41.03
2023-03-28 08:23:48 +08:00
Ryan Lahfa 6fcf40805a
Merge pull request #223439 from mjlbach/fix/garage
garage: fix missing stateVersion and default pkg
2023-03-28 00:26:47 +02:00
Michael Lingelbach e6854e7d3a garage: fix missing stateVersion and default pkg
* stateVersion was not in scope, added config.system.systemVersion
* garage_0_8_0 -> garage_0_8, the former does not exist
2023-03-27 13:18:33 -07:00
Ryan Lahfa 16f67c4afc
Merge pull request #223242 from panicgh/nitrokey-libnitrokey
libnitrokey: init at 3.8
2023-03-27 22:07:24 +02:00
Ryan Lahfa 482c735228
Merge pull request #223388 from 06kellyjac/authelia-move
authelia: move module under security and minor fixes
2023-03-27 21:59:57 +02:00
Ryan Lahfa 90b5f42ec9
Merge pull request #222946 from RaitoBezarius/zfs-6_2-6_3-compat
zfsUnstable: make it compatible again with 6.2.8 and potentially 6.3
2023-03-27 21:11:41 +02:00
K900 e74d28259d
Merge pull request #162479 from stuebinm/feature/mattermost-secrets
nixos/mattermost: add secretFile option for declarative configs (again)
2023-03-27 21:50:18 +03:00
stuebinm c29ca6704d mattermost: add environmentFile option to allow declarative secrets
This adds an option `services.mattermost.environmentFile`, intended to be
useful especially when `services.mattermost.mutableConfig` is set to `false`.
Since all mattermost configuration options can also be set by environment
variables, this allows managing secret configuration values in a declarative
manner without placing them in the nix store.
2023-03-27 20:46:01 +02:00
Raito Bezarius 56fa7ab066 nixos/tests/zfs: add zfsUnstable test for systemd-stage 1 2023-03-27 18:18:59 +02:00
Sandro fc7d893822
Merge pull request #222592 from Luflosi/update/kubo
kubo: 0.18.1 -> 0.19.0
2023-03-27 15:24:34 +02:00
Lily Foster 6f07da7277
Merge pull request #220450 from arjan-s/qtile-options
qtile: add more options to NixOS module and expose unwrapped package
2023-03-27 07:23:15 -04:00
06kellyjac 9b60eef4bd authelia: move module under security and minor fixes
Fixed test access to lib
Added nixos test to passthru
2023-03-27 12:00:07 +01:00
Maximilian Bosch 3351d1bdb2
Merge pull request #223294 from SuperSandro2000/synapse.nix
nixos/synapse: fix path
2023-03-27 10:43:25 +02:00
Nicolas Benes 771d39638b nitrokey-udev-rules: replace with libnitrokey 2023-03-27 04:02:13 +02:00
Sandro 8c426b77f5
Merge pull request #222584 from IndeedNotJames/nixos-consul 2023-03-27 01:26:44 +02:00
Sandro Jäckel 40c8cebade
nixos/synapse: Fix incorrect module path after it was moved
Fixes: 22f3d4e4db ("nixos: move matrix services into their category")
2023-03-27 00:49:38 +02:00
Sandro Jäckel 056be64f11 nixos/podman: add example to enable network dns 2023-03-27 08:42:29 +10:00
Sandro 6f558d3009
Merge pull request #212599 from SuperSandro2000/podman-cleanup 2023-03-27 00:05:30 +02:00
Sandro 97d67f4a5f
Merge pull request #221643 from Tungsten842/wireshark-capabilities 2023-03-26 22:31:40 +02:00