Commit Graph

32597 Commits

Author SHA1 Message Date
Minijackson
36a550c6f9 nixos/netbox: RFC42-style options
- allows specifying allowed hosts
- setup sane default for logging
2023-04-04 11:45:29 +02:00
Kerstin Humm
0b0cc93e79
remove myself (erictapen) from packages which I don't use anymore 2023-04-03 17:07:16 +02:00
David Dunn
e0205290f5
go-ethereum: 1.10.26 -> 1.11.5
Release notes:
https://github.com/ethereum/go-ethereum/releases/tag/v1.11.5

Removes `puppeth`, as noted in the `Removed Features` section of the
release notes for v1.11.0:
https://github.com/ethereum/go-ethereum/releases/tag/v1.11.0
2023-04-03 13:40:09 +02:00
7c6f434c
8ce248a734
Merge pull request #218870 from Uthar/lisp2
lisp-modules: replace with an implementation based on github:uthar/nix-cl
2023-04-03 06:00:48 +00:00
Bobby Rong
28031f7579
Merge pull request #216737 from FedericoSchonborn/budgie
Budgie Desktop
2023-04-03 10:57:32 +08:00
Federico Damián Schonborn
ce6f0af954
nixos/doc: add release note for Budgie Desktop
Signed-off-by: Federico Damián Schonborn <fdschonborn@gmail.com>
2023-04-02 21:52:39 -03:00
Federico Damián Schonborn
c0dcb5c24a
nixos/tests/budgie: init
Signed-off-by: Federico Damián Schonborn <fdschonborn@gmail.com>
2023-04-02 21:52:36 -03:00
Martin Weinelt
814401390c
Merge pull request #224418 from jtojnar/users-validate-passwords-with-options
nixos/users-groups: Fix password scheme validation
2023-04-03 02:28:07 +02:00
Jan Tojnar
5a3eb4f6fe nixos/users-groups: Fix password scheme validation
0d7cd66652 broke validation for hashes with options
such as those generated with `mkpasswd --method=sha-512 --rounds=1000000`:

    $6$rounds=1000000$xpzZ6Rfg873gZnDY$RxS7lpVnohfDrrKG3lt9UFHED1KoiPGzH7zQv/HzwalZepo/IfFtxw05ap25duEJSKYhC14.Fn9eXszEpWVtF.

This fixes it.
2023-04-03 02:16:07 +02:00
0x4A6F
6f62b499cf nixos/atuin: add maxHistoryLength 2023-04-02 18:31:36 -04:00
Kasper Gałkowski
2b180f796a lisp-modules: add release note about the new manual and the interface 2023-04-02 21:49:37 +02:00
K900
8f172ed10a nixos/grafana-image-renderer: fix setting name 2023-04-02 16:48:36 +03:00
happysalada
5ba4f4293d chatgpt-retrieval-plugin: init module 2023-04-02 09:26:35 -04:00
Nick Cao
39a96c9518
Merge pull request #224255 from Kiskae/patch-1
nixos/nvidia: use correct attribute
2023-04-02 08:31:52 +08:00
Sandro
ef6206c3ee
Merge pull request #224170 from mvnetbiz/ddclient 2023-04-02 01:29:59 +02:00
Sandro
34c25b025f
Merge pull request #224272 from mattmelling/cloudlog-no-ifd 2023-04-02 00:38:00 +02:00
Sandro
44bdb9ce9f
Merge pull request #223091 from Izorkin/update-nginx-compression 2023-04-02 00:32:47 +02:00
Federico Damián Schonborn
50198ac1f8
nixos/budgie: init
Signed-off-by: Federico Damián Schonborn <fdschonborn@gmail.com>
2023-04-01 18:06:52 -03:00
Sandro
b5618fe81b
Merge pull request #215493 from Izorkin/fix-dhcpcd-ipv6rs 2023-04-01 22:58:01 +02:00
Luke Granger-Brown
7c66437cba
Merge pull request #207248 from Izorkin/update-nginx
nginxQuic: 3be953161026 -> 0af598651e33
2023-04-01 21:55:05 +01:00
Kiskae
0491659cd0
nixos/nvidia: use correct attribute 2023-04-01 20:24:02 +02:00
Izorkin
c72007809d
nixos/tests/nginx: update nginx-http3 test 2023-04-01 16:25:44 +03:00
Nick Cao
236d77246c
Merge pull request #223939 from Kiskae/patch-1
linuxPackages.nvidia_x11_production: 525.89.02 -> 525.105.17
2023-04-01 21:15:43 +08:00
Kiskae
ea126529eb nixos/nvidia: allow package to override IBT support 2023-04-01 14:44:43 +02:00
Izorkin
427ae14373
nixos/nginx: update description in compression modules 2023-04-01 13:56:26 +03:00
Izorkin
3ab26f9f00
nixos/dhcpcd: add IPv6rs option 2023-04-01 13:52:38 +03:00
Izorkin
77d6fd36cf
nixos/nginx: update quic configuration 2023-04-01 13:09:49 +03:00
Vladimír Čunát
45c671173b
Merge #224143: nixos/qtile: fix manual build
(the build is OK on unstable/master but not on 22.11)
2023-04-01 09:30:00 +02:00
Matt Votava
ee88bac7be nixos/ddclient: add iproute2 to unit path if using "if" method 2023-03-31 21:54:21 -07:00
Sandro
eb5d126dcb
Merge pull request #163082 from ettom/zeyple 2023-04-01 02:35:08 +02:00
Lily Foster
858acb7bfc
nixos/qtile: fix manual build 2023-03-31 19:21:31 -04:00
Silvan Mosberger
e58b3b8ce5
Merge pull request #223843 from simplejack-src/nixos_manual_desktop_item
nixos/documentation: Fix desktopIcon, GenericName/Comment
2023-03-31 03:19:39 +02: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
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
simeplejack-src
fe28e8f1e6 nixos/documentation: Fix desktopIcon, GenericName/Comment 2023-03-29 22:23:39 -04: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