Commit Graph

2448 Commits

Author SHA1 Message Date
Sandro
512f8ce65e postgresql15Packages.wal2json: 2.5 -> 2.6 (#315097) 2024-09-27 14:53:34 +02:00
Wolfgang Walther
6178e9bd3c postgresql: remove deprecated enableSystemd override
This was deprecated in e6bfabf366, where
we agreed on removing this after one release in [1].

Time has come!

[1]: https://github.com/NixOS/nixpkgs/pull/292993#discussion_r1518883146
2024-09-26 19:08:55 +02:00
Wolfgang Walther
a7fdf2256a postgresql: simplify systemdSupport default value
systemd is not available on static platforms, so the isStatic check is
redundant.
2024-09-26 19:08:54 +02:00
Wolfgang Walther
de4ad2a6ac postgresql: use newer libuuid instead of ossp-uuid
Since PostgreSQL 9.4 it's possible to build with different uuid
libraries. Eversince, the postgres docs [1] have this to say:

  [..] the OSSP UUID library [..] is not well maintained, and is
  becoming increasingly difficult to port to newer platforms. [..]
  On Linux, OS X, and some other platforms, suitable functions are
  provided in the libuuid library, which originally came from the
  e2fsprogs project (though on modern Linux it is considered part of
  util-linux-ng).

Using e2fs for Darwin was introduced 9 years ago in #8574, which library
to use for Linux was never considered again. Thus, start building with
newer libs now.

As a side effect, we require one less patch if we decide to build with
meson later.

[1]: https://www.postgresql.org/docs/current/uuid-ossp.html
2024-09-26 19:08:54 +02:00
Wolfgang Walther
149aa98ce4 postgresql: run full test-suite during checkPhase
doCheck was enabled in #61395 which does not mention an explicit decision
for "check" instead of "check-world". The latter runs more tests, for example
for contrib modules etc. - but results in higher build times..

Running "nix-build -A postgresql":
- with doCheck = false: 46s
- with checkTarget = "check": 60s
- with checkTarget = "check-world": 75s
2024-09-26 09:40:04 +02:00
Wolfgang Walther
fad9dabf9f pkgsMusl.postgresql: disable "locale -a" properly
/bin/locale doesn't exist on musl and was already effectively disabled
in #228349. However this still leaves the following warning for initdb:

  performing post-bootstrap initialization ... sh: locale: not found

By applying the alpine patch to disable locale -a entirely, this warning
will disappear. This will also make one more regression test pass when
testing "check-world" instead of "check", only.
2024-09-26 09:40:04 +02:00
github-actions[bot]
3b110ff21b Merge staging-next into staging 2024-09-26 00:14:18 +00:00
K900
a9128ce2f2 Merge remote-tracking branch 'origin/master' into staging-next 2024-09-25 21:07:19 +03:00
Maximilian Bosch
fc16319c06 Merge: postgresqlPackages: refactor extension checks with helper (#343486) 2024-09-25 19:06:11 +02:00
Franz Pletz
f6e93ec992 postgresqlPackages: some cleanup (#343309) 2024-09-25 17:29:40 +02:00
Artturin
f0e657f3b1 Merge branch 'master' into staging-next 2024-09-25 06:05:01 +03:00
Artturin
e0464e4788 treewide: replace stdenv.is with stdenv.hostPlatform.is
In preparation for the deprecation of `stdenv.isX`.

These shorthands are not conducive to cross-compilation because they
hide the platforms.

Darwin might get cross-compilation for which the continued usage of `stdenv.isDarwin` will get in the way

One example of why this is bad and especially affects compiler packages
https://www.github.com/NixOS/nixpkgs/pull/343059

There are too many files to go through manually but a treewide should
get users thinking when they see a `hostPlatform.isX` in a place where it
doesn't make sense.

```
fd --type f "\.nix" | xargs sd --fixed-strings "stdenv.is" "stdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "stdenv'.is" "stdenv'.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "clangStdenv.is" "clangStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "gccStdenv.is" "gccStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "stdenvNoCC.is" "stdenvNoCC.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "inherit (stdenv) is" "inherit (stdenv.hostPlatform) is"
fd --type f "\.nix" | xargs sd --fixed-strings "buildStdenv.is" "buildStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "effectiveStdenv.is" "effectiveStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "originalStdenv.is" "originalStdenv.hostPlatform.is"
```
2024-09-25 00:04:37 +03:00
github-actions[bot]
6ef8ec38ed Merge staging-next into staging 2024-09-24 12:05:42 +00:00
github-actions[bot]
bcd5388d39 Merge master into staging-next 2024-09-24 12:05:12 +00:00
Yt
2232cae406 postgresqlPackages.pgvecto-rs: 0.2.1 -> 0.3.0 (#321617) 2024-09-24 05:56:28 -04:00
Euan Kemp
4450044b7b postgresql15Packages.wal2json: 2.5 -> 2.6 2024-09-24 10:32:36 +09:00
Wolfgang Walther
fa8a147338 postgresqlPackages: remove unused derivation arguments
Those had been replaced by the following a while ago:

  buildInputs = postgresql.buildInputs
2024-09-23 20:05:37 +02:00
Wolfgang Walther
f27f203f5a postgresqlPackages: use makeFlags USE_PGXS=1 consistently 2024-09-23 20:05:36 +02:00
Wolfgang Walther
37ac1256c4 postgresqlPackages.pgjwt: add simple create extension check 2024-09-21 14:16:13 +02:00
Wolfgang Walther
2b9fa464cf postgresqlPackages: refactor extension checks
The withPackages scope now provides a "postgresqlTestExtension" helper
which removes all the boilerplate for those kind of tests.

This was Mario Rodas' idea in #299756.
2024-09-21 14:16:12 +02:00
Wolfgang Walther
b6567e0a54 postgresqlPackages.lantern.tests.extension: fix test
The name of the access method was changed upstream a while ago.
2024-09-21 14:16:12 +02:00
github-actions[bot]
b84aacf2e6 Merge staging-next into staging 2024-09-21 12:05:41 +00:00
github-actions[bot]
d3ae261fc3 Merge master into staging-next 2024-09-21 12:05:16 +00:00
Maximilian Bosch
9163a9f3b8 Merge: postgresql: improve fake pg_config in default output (#341421) 2024-09-21 14:04:45 +02:00
Maximilian Bosch
789562caae Merge: nixos/tests: add postgresql wal2json test (#315095) 2024-09-21 13:27:22 +02:00
Maximilian Bosch
2795949808 Merge: postgresql_jit.pkgs.postgis: fix build on darwin (#342369) 2024-09-21 11:53:12 +02:00
Augustin Trancart
dc750b8237 postgresqlPackages.postgis: 3.4.2 -> 3.4.3 2024-09-20 23:58:45 +02:00
Wolfgang Walther
486633e3f4 postgresqlPackages.system_stats: 3.0 -> 3.2 2024-09-20 19:08:36 +02:00
K900
d8a54461fc Merge remote-tracking branch 'origin/staging-next' into staging 2024-09-20 07:27:56 +03:00
Wolfgang Walther
0c47767641 postgresql: improve fake pg_config in default output
This fixes some build systems which look up the location of pg_config
via the location of the postgres binary itself, e.g. timescaledb,
instead of calling pg_config which is on PATH.

Since the -dev output is correctly placed before the default output of
postgresql in PATH, we can rely on that and call "pg_config" from the
default output's fake script. Only do that, when the one on PATH is
actually a different file, though, to prevent infinite loops.

Resolves #341408
2024-09-19 18:58:20 +02:00
Wolfgang Walther
cd85a62bc2 postgresql_jit.pkgs.postgis: fix build on darwin
We introduced LTO in #294504. At that time, we still needed to use LLVM
/ lld to make this work on darwin. For this to work for extensions, they
would need to set CFLAGS=-fuse-ld=lld, too. However, since #307880
landed, we don't need to do this anymore in the first place, LTO just
works out of the box on darwin.

Resolves #342362
2024-09-19 14:50:23 +02:00
Peder Bergebakken Sundt
8c8c27bb19 treewide: remove unused inputs 2024-09-18 01:00:07 +02:00
Wolfgang Walther
eb709dd183 timescaledb: use replace-fail instead of replace for substituteInPlace
To avoid the deprecation warning.
2024-09-16 21:43:36 +02:00
Wolfgang Walther
52bb840eaf postgresql: fix regress tests after tzdata update
This was discussed upstream here:
https://postgr.es/m/0a997455-5aba-4cf2-a354-d26d8bcbfae6%40technowledgy.de

This will be in the next minor releases, until then apply the patch.
2024-09-15 17:10:21 +02:00
Euan Kemp
554ec1c0f0 nixos/tests: add postgresql wal2json test
This test should ensure wal2json functions.
I'm planning to upgrade wal2json, so it seems nice to have a test here.

It passes on my machine.
2024-09-14 05:17:49 +00:00
Maximilian Bosch
f191ad8240 postgresql: use systemdLibs (#337441) 2024-08-28 23:28:37 +02:00
github-actions[bot]
32f893fe9e Merge staging-next into staging 2024-08-27 00:13:33 +00:00
Rebecca Turner
6602decb96 postgis: Do not hardcode test suite path (#336889)
postgis: Fix test suite

Fixes this failure:

```
Creating database 'postgis_reg-3.4'.
sh: line 1: /tmp/pgis_reg/regress_log: Permission denied
2024-08-23 19:26:18.810 UTC [3295760] FATAL:  database "postgis_reg-3.4" does not exist
psql: error: FATAL:  database "postgis_reg-3.4" does not exist
Loading unpackaged components from /tmp/nix-build-postgis-3.4.2.drv-0/postgis-3.4.2/regress/00-regress-install/nix/store/kg8g82wxhar9iadxrd3pra3af174khpb-postgis-3.4.2/share/postgresql/contrib/postgis
Loading PostGIS into 'postgis_reg-3.4'
sh: line 1: /tmp/pgis_reg/regress_log: Permission denied
 failed (Error encountered loading /tmp/nix-build-postgis-3.4.2.drv-0/postgis-3.4.2/regress/00-regress-install/nix/store/kg8g82wxhar9iadxrd3pra3af174khpb-postgis-3.4.2/share/postgresql/contrib/postgis/postgis.sql: /tmp/pgis_reg/regress_log)
make: *** [regress/runtest.mk:24: check-regress] Error 1
```
2024-08-26 11:39:19 -07:00
github-actions[bot]
ba8924e6a0 Merge staging-next into staging 2024-08-26 00:13:41 +00:00
Ivan Trubach
2f9c580c6f postgresql: use systemdLibs
Reduces the set of dependencies required to build PostgreSQL.
2024-08-26 01:48:49 +03:00
Wolfgang Walther
050689db30 treewide: fix pg_config / postgresql headers moved to dev output
This was supposed to happen in #294504, but the commit was accidentally
left out when splitting off some libpq-related changes. Originated in
#179962, by Sandro.

Co-authored-by: Sandro Jäckel <sandro.jaeckel@gmail.com>
Co-authored-by: Wolfgang Walther <walther@technowledgy.de>
2024-08-24 15:44:10 +02:00
Bruno Bigras
c64122f97d postgresqlPackages.hypopg: 1.4.0 -> 1.4.1 2024-08-24 01:10:13 -04:00
Wolfgang Walther
73cb40366d postgresql: refactor to simplify condition
glibc is not available on darwin anyway and isGnu is just shorter.
2024-08-23 21:37:49 +02:00
Wolfgang Walther
dfde86f738 postgresql: refactor removal of references in bitcode files
This prevents silently ignoring errors from "find".
2024-08-23 21:37:49 +02:00
Wolfgang Walther
94d432ce88 postgresql: remove references to llvm-dev on darwin as well
The !isDarwin condition seems to have been put in place only because of the
use of patchelf, which in turn seemed to be necessary because of nuke-refs.

Replacing the big nuke with the more granular remove-references-to allows
enabling this for darwin, too.
2024-08-23 21:37:49 +02:00
Wolfgang Walther
435f51c37f postgresql: split dev output
This splits a dev output to make the default output not depend on any
build dependencies anymore. This also avoids removing references from
pgxs' Makefile this way, which should, at least theoretically, be good
to build extensions via pgxs, making sure they use the same tooling.

ecpg is the "embedded SQL C preprocessor", which is certainly a dev
tool.

Most important, for closure size anyway, is to move pg_config to the dev
output, since it retains paths to all the other outputs.

The only thing with references to the dev output remaining is then the
postgres binary itself. It contains all the output paths, because it
shows those in the pg_config system view. There is no other way than
to nuke those references to avoid circular dependencies between outputs
- and blowing up closure size again.
2024-08-23 21:37:49 +02:00
Wolfgang Walther
77977286d8 postgresql: move libecpq to lib output
This library is used by other packages, so should be in the lib output.

By removing unused sections, libecpg will not contain any references to other
outputs and thus does not increase the closure for the lib output anymore.
This will also help massively when splitting a dev output later.

As a side-effect, this also unbreaks pkgsMusl.postgresql_12_jit and
pkgsMusl.postgresql_13_jit. For, at least to me, unknown reasons, those build
fine now.
2024-08-23 21:37:49 +02:00
Wolfgang Walther
5547322a0c postgresql: move dynamic modules to default output
Dynamic modules are technically libraries, but are not used by other packages.
Instead they are loaded by PostgreSQL itself, e.g. as extensions. Those just
increased the size of the lib output without benefit.

This removes the NIX_PGLIBDIR hack introduced in #17838 and instead makes sure
that pg_config always returns the correct PGLIBDIR. The test for postgis
introduced in the same PR is still passing with the change.
2024-08-23 21:37:43 +02:00
Peder Bergebakken Sundt
e471916645 treewide: passthru nixos test (#334491) 2024-08-18 00:29:43 +02:00
Kirill Radzikhovskyy
b023a8a2f1 postgresqlPackages.postgis: sha256 -> hash 2024-08-15 13:56:01 +10:00