Commit graph

2827 commits

Author SHA1 Message Date
Vladimír Čunát 2a3291834f
Merge #224806: staging-next 2023-04-05 2023-04-12 13:18:37 +02:00
Javed Mohamed 3ecc7b1484 nixos/gpsd: add multiple-device support for gpsd 2023-04-12 10:15:47 +02:00
github-actions[bot] 3c070a08ff
Merge master into staging-next 2023-04-11 12:01:14 +00:00
Michael Raitza 9f0e1b6047 modules.openafsServer: Add FABS backup server 2023-04-11 08:30:56 -03:00
github-actions[bot] fc0616b73d
Merge master into staging-next 2023-04-09 06:01:16 +00:00
betaboon e4e00d22bf nixos/hardware/ipu6: init 2023-04-09 00:41:45 +02:00
betaboon dd33a7a9b9 nixos/v4l2-relayd: init 2023-04-09 00:41:45 +02:00
github-actions[bot] 8ae069b888
Merge master into staging-next 2023-04-08 12:01:05 +00:00
Infinidoge cc46277bf5 nixos/minipro: init
Minipro requires a set of udev rules to be installed to work properly.
This module installs the package and the udev rules.
2023-04-07 22:32:02 -04:00
github-actions[bot] 1ad73cb589
Merge master into staging-next 2023-04-07 18:01:06 +00:00
Vladimír Čunát b856c0f8f4
Merge #218143: GNOME: 43 → 44
...into staging-next
2023-04-07 16:09:13 +02:00
Nick Gerace 6b556aed2c nodePackages.pnpm: 7.29.1 -> 8.1.1
Signed-off-by: Nick Gerace <nickagerace@gmail.com>
2023-04-07 10:08:04 -04:00
Mihai Fufezan c816bd50aa
nixos/hyprland: init (#221730)
* nixos/hyprland: init


---------

Co-authored-by: Jörg Thalheim <Mic92@users.noreply.github.com>
2023-04-07 14:43:01 +01:00
github-actions[bot] 06a0a17fc7
Merge master into staging-next 2023-04-07 06:01:28 +00:00
mrobbetts 3c1c5600e8
bind: replace hard-coded allow-query zone setting with a real zone parameter. (#224776) 2023-04-07 06:55:09 +02:00
github-actions[bot] 135af46604
Merge master into staging-next 2023-04-07 00:02:13 +00:00
Sandro 0cca0c5d18
Merge pull request #224526 from christoph-heiss/pkgs/trurl 2023-04-07 00:15:20 +02:00
Christoph Heiss 453c8f4157
trurl: init at 0.3
This is a new tool for "translating and transposing URLs, made by curl's
Daniel Sternberg.

Signed-off-by: Christoph Heiss <christoph@c8h4.io>
2023-04-06 16:29:30 +02:00
Vladimír Čunát 6afd316cbc
Merge branch 'master' into staging-next 2023-04-06 11:54:07 +02:00
alyaeanyx bd573376ad nixos/wstunnel: init 2023-04-06 09:51:30 +02:00
github-actions[bot] 6e7ab02752
Merge master into staging-next 2023-04-06 06:01:26 +00:00
Franz Pletz 0e950a1ec7
Merge pull request #223085 from Izorkin/update-nginx-proxy-cache
nixos/nginx: enable multiple proxyCachePath support
2023-04-06 02:52:44 +02:00
Bobby Rong 771a33899e nixos/doc/rl-2305: Mention default mutter version change for Pantheon 2023-04-06 01:36:42 +02:00
Jan Tojnar ec3f75d01c nixos/doc/rl-2305: Mention GNOME 44 2023-04-06 01:36:40 +02:00
github-actions[bot] 136b8f41e4
Merge master into staging-next 2023-04-05 18:01:36 +00:00
Ryan Lahfa a6bc6ed645
Merge pull request #206983 from minijackson/netbox-3.4.1
netbox: 3.3.9 -> 3.4.7, netbox_3_3: init at 3.3.10, RFC42-style options, more tests
2023-04-05 14:04:27 +02:00
github-actions[bot] ae5b53747b
Merge master into staging-next 2023-04-05 12:01:10 +00:00
Nick Cao 2d2abaa467
Merge pull request #224042 from linyinfeng/rime-data-refactor
{ibus,fcitx5}-rime: Refactor RIME data support
2023-04-05 16:16:18 +08:00
github-actions[bot] 5e498b046d
Merge staging-next into staging 2023-04-04 12:01:50 +00:00
Martin Weinelt fea1100c99
Merge pull request #194420 from helsinki-systems/drop/elk6
elk6: remove
2023-04-04 11:55:33 +02:00
Minijackson 70e95c699a nixos/doc: add release notes for NetBox changes 2023-04-04 11:45:30 +02:00
ajs124 8b4505a841 nixos/rl-2305: mention elk6 removal 2023-04-04 10:32:26 +02:00
Vladimír Čunát 4eaca2b138
Merge #188492: glibc: 2.35-224 -> 2.37-8
...into staging
2023-04-03 20:29:07 +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
Kasper Gałkowski 2b180f796a lisp-modules: add release note about the new manual and the interface 2023-04-02 21:49:37 +02:00
Lin Yinfeng e4246ae1e7
{ibus,fcitx5}-rime: Refactor RIME data support 2023-04-02 10:36:36 +08:00
Sandro b5618fe81b
Merge pull request #215493 from Izorkin/fix-dhcpcd-ipv6rs 2023-04-01 22:58:01 +02:00
Izorkin 8a289bcc79
nixos/nginx: enable multiple proxyCachePath support 2023-04-01 13:55:56 +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
ajs124 800426cf64
Merge pull request #222422 from mdarocha/remove-dotnet-3
dotnet-sdk_3: remove
2023-03-29 16:13:25 +02: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 667fac1b4e
nixos/doc: mention glibc update in release notes 2023-03-29 09:50:29 +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
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