Commit Graph

1238 Commits

Author SHA1 Message Date
Ryan Lahfa
275a6e3d8d
Merge pull request #193469 from minijackson/mount-options-stage-1
nixos/stage-1: follow mount options
2023-05-05 17:05:48 +02:00
Jacek Galowicz
3ba45b082e
Merge pull request #228111 from alyssais/nixosTest-hostname
nixosTest: remove hostname limitations
2023-05-05 08:12:36 +02:00
Jonas Heinrich
d932d6929b
Merge pull request #227401 from onny/maddytls2
nixos/maddy: Add tls option
2023-05-02 07:32:56 +02:00
Jonas Heinrich
616ba4ae5c nixos/maddy: Add tls option 2023-05-01 19:12:26 +02:00
Weijia Wang
b87aa62298
Merge pull request #227936 from wineee/dde
nixos/deepin: init
2023-05-01 08:38:45 +03:00
Kira Bruneau
50200de3f4
Merge pull request #216230 from tcheronneau/master
nixos/{consul-template,vault-agent}: init
2023-04-30 13:53:57 -04:00
Kira Bruneau
f81a619c91
Merge pull request #227916 from IndeedNotJames/lldap
lldap: init at 0.4.3; nixos/lldap: init; nixosTests.lldap: init
2023-04-29 15:24:12 -04:00
IndeedNotJames
5eb2e64d80
nixosTests.lldap: init 2023-04-29 21:14:25 +02:00
rewine
d63d98212a
nixos/tests/deepin: init 2023-04-29 22:36:22 +08:00
Yaya
5effdaaa40
nixos/tests/snipe-it: init (#180772) 2023-04-26 17:46:15 +02:00
IndeedNotJames
3e7069bb47
nixosTests.consul-template: init 2023-04-25 16:54:08 +02:00
IndeedNotJames
524fe7ff51
nixosTests.vault-agent: init 2023-04-25 15:58:30 +02:00
Minijackson
8f94053a21
nixosTests.early-mount-options: init 2023-04-25 13:07:08 +02:00
Robert Hensing
e207f4a116 nixosTests.nixos-test-driver.node-name: init 2023-04-25 12:21:38 +02:00
Robert Hensing
3ec3d283c5 nixos/tests: extra-python-packages -> nixos-test-driver/extra-python-packages
Categorizing the tests for the test driver helps with testing the test driver.
2023-04-25 12:03:15 +02:00
Mario Rodas
5249a7ce55
Merge pull request #220812 from anpin/feature/promscale-rebase
promscale: 0.10.0 -> 0.17.0
2023-04-24 21:02:25 -05:00
gaykitty
c251c021fe nixos/stargazer: init 2023-04-24 21:52:19 -03:00
Pavel Anpin
08ddf6f0e3
nixosTests.promscale: add tests for promscale_extension 2023-04-22 21:29:50 +04:00
Florian Klink
6b27ed3229
Merge pull request #169116 from ElvishJerricco/systemd-stage-1-networkd
Systemd stage 1 networkd
2023-04-21 18:40:59 +02:00
Weijia Wang
8b1ef3b06c
Merge pull request #225222 from Luflosi/test-aaaaxy
nixos/tests/aaaaxy: init
2023-04-20 22:31:30 +03:00
Sandro
4f6b51d99c
Merge pull request #224212 from Guekka/monica
monica: init at 4.0.0 & nixos-module
2023-04-18 16:58:42 +02:00
Sandro
ed7dd78b3f
Merge pull request #225274 from tie/nixos-pufferpanel
nixos/pufferpanel: init
2023-04-18 16:57:14 +02:00
Linus Heckemann
b14aded48a
Merge pull request #222617 from oddlama/esphome
nixos/esphome: init module
2023-04-18 06:45:40 +02:00
Will Fancher
834ec135ce systemd-initrd: OpenVPN 2023-04-17 16:41:35 -04:00
Will Fancher
0698a1cf04 systemd-initrd: sshd 2023-04-17 16:41:35 -04:00
Will Fancher
dd392d7c76 systemd-initrd: networkd 2023-04-17 16:41:34 -04:00
Guillaume Girol
40bbc9ae53
Merge pull request #225285 from symphorien/ihm-remove
python3.pkgs.ihatemoney: remove
2023-04-16 19:23:00 +00:00
Guillaume Girol
3cc8b4477e python3.pkgs.ihatemoney: remove
sqlalchemy and flask releases break ihatemoney faster than upstream
updates, so the maintenance burden increases over time.
2023-04-16 16:04:35 +02:00
Ivan Trubach
4bbe09068a nixos/pufferpanel: init 2023-04-16 15:41:24 +03:00
Edgar B
33a7f368b4 nixos/monica: init 2023-04-16 11:24:00 +02:00
Luflosi
bf97703f0e
nixos/tests/kubo: clean up code
- Use `runTest` instead of `handleTest`, which simplifies the code a little
- Use `lib.maintainers` instead of `pkgs.lib.maintainers`
- Use `ipfs add --quieter` instead of `ipfs add | awk '{ print $2 }'`
- Whitespace and comment changes
2023-04-15 15:24:43 +02:00
Luflosi
6032e00504
nixos/tests/aaaaxy: init
Add a simple VM test for the game AAAAXY.
2023-04-13 00:43:44 +02:00
Martin Weinelt
7e8b87566a
Merge pull request #219493 from covert8/ceph-17
ceph: 16.2.10 -> 17.2.5
2023-04-11 19:35:38 +02:00
oddlama
8df62ec46c
nixos/esphome: init module 2023-04-05 17:35:58 +02:00
Minijackson
78eb4d64e7 netbox_3_3: init
reintroduce previous version, use in NixOS module if stateVersion < 23.05
2023-04-04 11:45:31 +02: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
c0dcb5c24a
nixos/tests/budgie: init
Signed-off-by: Federico Damián Schonborn <fdschonborn@gmail.com>
2023-04-02 21:52:36 -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
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
Nick Cao
851cd65a21
Merge pull request #220776 from Vonfry/deprecated/fcitx4
fcitx: remove version 4
2023-03-25 10:23:06 +08:00
06kellyjac
818e73fc43 nixos/authelia: init tests 2023-03-24 21:23:41 -03:00
Martin Weinelt
adb0c3560b
nixos/tests/ceph*: Enable on aarch64-linux 2023-03-24 23:50:45 +01:00
Martin Weinelt
e56ea3c325
Merge pull request #222701 from jopejoe1/firefox
firefox-{beta,devedition}-unwrapped: init at 112.0b6
2023-03-24 21:34:31 +01:00
jopejoe1
8a5a08373f firefox-beta-unwrapped: init at 112.0b6 2023-03-24 14:18:26 +01:00
jopejoe1
80168addbe firefox-devedition-unwrapped: init at 112.0b6 2023-03-24 14:16:22 +01:00
Will Fancher
5a9b9e620d
Merge pull request #176828 from therishidesai/luks-multi-key-files
nixos/luksroot: add tryEmptyPassphrase option
2023-03-24 03:02:20 -04:00
Nick Cao
72a8c49415
Merge pull request #222311 from NickCao/qt6-vf
qt6.qtbase: add patch to fix handling of variable fonts
2023-03-23 13:33:22 +08:00
Rishi Desai
cccc3f8a8e nixos/luksroot: add tryEmptyPassphrase option 2023-03-22 09:17:23 -05:00
woojiq
296e7f92cd keyd: add keyd service and test
The keyd package already exists, but without a systemd service.

Keyd requires write access to /var/run to create its socket. Currently
the directory it uses can be changed with an environment variable, but
the keyd repo state suggests that this may turn into a compile-time
option. with that set, and some supplementary groups added, we can run
the service under DynamicUser.

Co-authored-by: pennae <82953136+pennae@users.noreply.github.com>
2023-03-22 15:12:29 +01:00
oxalica
f4385d6010
nixosTests.noto-fonts-cjk-qt-default-weight: init 2023-03-22 16:26:30 +08:00