about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2023-03-29Merge pull request #221851 from Ma27/postgresql-jit-supportSandro11-73/+290
postgresql: implement opt-in JIT support
2023-03-29Merge pull request #222998 from viraptor/livepeer-darwinStanisław Pitucha1-2/+1
livepeer: mark not broken on darwin
2023-03-29Merge pull request #222011 from ↵Pavol Rusnak1-1/+3
mikroskeem/perl-cryptopensslrandom-aarch64-darwin perlPackages.CryptOpenSSLRandom: unbreak on aarch64-darwin
2023-03-29Merge pull request #223006 from viraptor/dump1090-darwinStanisław Pitucha1-1/+0
dump1090: mark working on darwin
2023-03-29Merge pull request #223716 from wegank/nixpkgs-review-hotfixWeijia Wang1-0/+5
rust-hypervisor-firmware: check if path exists
2023-03-29Merge pull request #223727 from r-ryantm/auto-update/rocm-smiWeijia Wang1-1/+1
rocm-smi: 5.4.3 -> 5.4.4
2023-03-29mastodon: update ruby packageIzorkin2-5/+9
2023-03-29Merge pull request #223711 from fabaff/dalfox-bumpFabian Affolter1-4/+8
dalfox: 2.8.2 -> 2.9.0
2023-03-29Merge pull request #223651 from fabaff/grype-bumpFabian Affolter1-3/+3
grype: 0.59.1 -> 0.60.0
2023-03-29Merge pull request #223702 from fabaff/pyaussiebb-bumpFabian Affolter1-3/+4
python310Packages.pyaussiebb: 0.0.15 -> 0.0.16
2023-03-29Merge pull request #223658 from fabaff/angr-bumpFabian Affolter6-16/+16
python310Packages.angr: 9.2.43 -> 9.2.44
2023-03-29Merge pull request #221090 from gunar/github-copilot-cliSandro3-1534/+2705
github-copilot-cli: init at version 0.1.21
2023-03-29Merge pull request #219416 from erdnaxe/obex-data-server-strictdepsSandro1-1/+5
obex-data-server: enable strictDeps
2023-03-29Merge pull request #223159 from fabaff/dpath-bumpFabian Affolter1-6/+14
python310Packages.dpath: 2.1.4 -> 2.1.5
2023-03-29Merge pull request #223556 from xrelkd/update/firectlMario Rodas1-7/+8
firectl: unstable-2022-07-12 -> 0.2.0
2023-03-29rocm-smi: 5.4.3 -> 5.4.4R. Ryantm1-1/+1
2023-03-29Merge pull request #223330 from marsam/update-esbuildMario Rodas1-2/+2
esbuild: 0.17.13 -> 0.17.14
2023-03-29Merge pull request #223668 from r-ryantm/auto-update/golangci-lint-langserverSandro1-3/+3
golangci-lint-langserver: 0.0.7 -> 0.0.8
2023-03-29Merge pull request #223693 from ↵Sandro1-2/+2
r-ryantm/auto-update/python310Packages.google-cloud-bigquery-storage python310Packages.google-cloud-bigquery-storage: 2.19.0 -> 2.19.1
2023-03-29rust-hypervisor-firmware: check if path existsWeijia Wang1-0/+5
2023-03-29perlPackages.CryptOpenSSLX509: unbreak on aarch64-darwinMark Vainomaa1-0/+1
2023-03-29perlPackages.CryptOpenSSLRSA: unbreak on aarch64-darwinMark Vainomaa1-0/+1
2023-03-29Merge pull request #223199 from r-ryantm/auto-update/kubernetes-metrics-serverWeijia Wang1-3/+3
kubernetes-metrics-server: 0.6.2 -> 0.6.3
2023-03-29perlPackages.CryptOpenSSLRandom: unbreak on aarch64-darwinMark Vainomaa1-1/+1
2023-03-29Merge pull request #223707 from orivej/setbfreeWeijia Wang1-3/+12
setbfree: build GUI
2023-03-29Merge pull request #223685 from xinyangli/fix/jetbrainsWeijia Wang1-0/+2
jetbrains: add libxcrypt-legacy
2023-03-29Merge pull request #223496 from r-ryantm/auto-update/dontgo403Weijia Wang1-4/+5
dontgo403: 0.5 -> 0.8.1
2023-03-29runc: 1.1.4 -> 1.1.5Sascha Grunert1-2/+2
Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2023-03-29dalfox: 2.8.2 -> 2.9.0Fabian Affolter1-4/+8
Diff: https://github.com/hahwul/dalfox/compare/refs/tags/v2.8.2...v2.9.0 Changelog: https://github.com/hahwul/dalfox/releases/tag/v2.9.0
2023-03-29Merge pull request #223160 from fabaff/datadog-bumpFabian Affolter2-4/+4
python310Packages.datadog: 0.44.0 -> 0.45.0
2023-03-29Merge pull request #223425 from fabaff/yara-python-bumpFabian Affolter1-2/+2
python310Packages.yara-python: 4.2.3 -> 4.3.0
2023-03-29Merge pull request #223640 from fabaff/python-engineio-bumpFabian Affolter2-14/+4
python310Packages.python-engineio: 4.3.4 -> 4.4.0, python310Packages.python-socketio: 5.7.2 -> 5.8.0
2023-03-29grype: 0.59.1 -> 0.60.0Fabian Affolter1-3/+3
Diff: https://github.com/anchore/grype.git/compare/refs/tags/v0.59.1...v0.60.0 Changelog: https://github.com/anchore/grype/releases/tag/v0.60.0
2023-03-29python310Packages.dpath: update disabledFabian Affolter1-2/+8
- add format
2023-03-29setbfree: build GUIOrivej Desh1-3/+12
2023-03-29python310Packages.dpath: add changelog to metaFabian Affolter1-4/+6
2023-03-29python310Packages.pyaussiebb: add changelog to metaFabian Affolter1-1/+2
2023-03-29python310Packages.pyaussiebb: 0.0.15 -> 0.0.16Fabian Affolter1-2/+2
2023-03-29python310Packages.yara-python: 4.2.3 -> 4.3.0Fabian Affolter1-2/+2
Diff: https://github.com/VirusTotal/yara-python/compare/v4.2.3...v4.3.0
2023-03-29postgresql: save rebuilds of existing packagesMaximilian Bosch1-31/+27
...by using `+ lib.optionalString ...` rather than a substitution. That way the phases don't have additional trailing white-spaces in the non-JIT case which cause rebuilds.
2023-03-29nixos/postgresql: fix enableJITMaximilian Bosch2-6/+13
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-29postgresql_jit: fix darwin buildMaximilian Bosch1-5/+7
So, patchelf works on ELF files and these don't exist on Darwin. I'm not aware of any other way to eliminate all references of the executable's body while preserving library paths in the header. This still works, the only problem is that darwin has a dependency on llvm.dev, so it's runtime closure is larger.
2023-03-29nixos/tests/postgresql: fix deprecation warningMaximilian Bosch1-1/+1
2023-03-29postgresql: pass through JIT-enabled variant of non-JIT postgres and vice versaMaximilian Bosch4-8/+57
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-29postgresql: implement opt-in JIT supportMaximilian Bosch8-64/+227
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] https://github.com/postgres/postgres/commit/c45643d618e35ec2fe91438df15abd4f3c0d85ca
2023-03-29python310Packages.gradient: update postPatch sectionFabian Affolter1-2/+2
2023-03-29Merge pull request #223696 from linj-fork/fix-zshenv-guard-variableJörg Thalheim1-1/+1
zsh: fix the guard variable for /etc/set-environment
2023-03-29Merge pull request #223604 from r-ryantm/auto-update/avalanchegoWeijia Wang1-3/+3
avalanchego: 1.9.11 -> 1.9.16
2023-03-29Merge pull request #220832 from wegank/glucose-bumpWeijia Wang1-4/+7
glucose: 4.1 -> 4.2.1
2023-03-29python310Packages.angr: 9.2.43 -> 9.2.44Fabian Affolter1-3/+3