Commit Graph

220 Commits

Author SHA1 Message Date
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
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
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
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
Maximilian Bosch
f191ad8240 postgresql: use systemdLibs (#337441) 2024-08-28 23:28:37 +02: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
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
Vladimír Čunát
b99f751acd Merge #333461: postgres: security+bugfix updates
...into staging-next

https://www.postgresql.org/about/news/postgresql-164-158-1413-1316-1220-and-17-beta-3-released-2910/
2024-08-10 07:26:13 +02:00
Sandro Jäckel
84a9400564 postgresql_12: 12.19 -> 12.20
https://www.postgresql.org/support/security/CVE-2024-7348/
Fixes CVE-2024-7348
2024-08-09 16:19:06 +02:00
Kirill Radzikhovskyy
1e5b7660b2 postgresql: fix postgis
nixosTests.postgis is failing due to libxml2 update
2024-07-31 07:53:33 +10:00
Vladimír Čunát
3f0fd423e3 postgresql_*: upstream patches to support libxml2-2.13
/cc PR #326637
2024-07-21 08:43:52 +02:00
Alexis Hildebrandt
755b915a15 treewide: Remove indefinite article from meta.description
nix run nixpkgs#silver-searcher -- -G '\.nix$' -0l 'description.*"[Aa]n?' pkgs \
  | xargs -0 nix run nixpkgs#gnused -- -i '' -Ee 's/(description.*")[Aa]n? (.)/\1\U\2/'
2024-06-09 23:07:45 +02:00
Wolfgang Walther
f43616270a postgresql: add wolfgangwalther as maintainer 2024-06-04 20:56:47 +02:00
Sigmanificient
d48a9bb622 treewide: remove unused fetchpatch arguments 2024-06-04 12:40:25 +02:00
Maximilian Bosch
3ad254b1c4 postgresql: drop obsolete musl checkPhase fix 2024-05-11 18:23:38 +02:00
Vladimír Čunát
d157c07324 Merge branch 'master' into staging-next 2024-04-25 20:43:34 +02:00
github-actions[bot]
d0efe40740 Merge master into staging-next 2024-04-25 06:01:20 +00:00
Mario Rodas
2becf6e837 maintainers: drop marsam 2024-04-24 04:20:00 +00:00
Wolfgang Walther
a0a1328606 buildPgxExtension: remove old versions
pgx had been renamed to pgrx in April 2023 already [1]. Newer versions
are already in nixpkgs as pgrx. Since the previous commit removed
the only remaining instance of a package still depending on
pgx 0.6.1, we can now remove all of buildPgxExtension and cargo-pgx.

[1]: https://github.com/pgcentralfoundation/pgrx/issues/1106
2024-04-20 20:10:13 +02:00
Wolfgang Walther
81201ce889 pkgsMusl.postgresql: add TODO to run all regression tests
This was fixed upstream as a result of this discussion:

https://www.postgresql.org/message-id/flat/ef1b47df-0808-4bd7-b08c-5153d5d75f4c%40technowledgy.de
2024-04-04 08:41:19 +02:00
Wolfgang Walther
30fa4dca88 pkgsMusl.postgresql: remove icu-collations-hack patch
This was introduced in #228349, but doesn't seem necessary to build for pkgsMusl.

In fact the patch itself seems to be very specific about a stripped down icu
package in Alpine Linux, which does not apply to nixpkgs.
2024-04-04 08:41:19 +02:00
Wolfgang Walther
ec7b4581d7 pkgsMusl.postgresql: mark v12 and v13 with JIT as broken
Those currently don't build on master, not sure whether they ever built
correctly in the first place.
2024-04-04 08:41:18 +02:00
Wolfgang Walther
9f90ad30fa postgresql: enable parallel building on darwin
This was disabled to fix #51093. The related discussion upstream revealed that this
has been fixed in [1] for v12+. Since v12 is our oldest supported version right now,
we should be able to safely enable parallel building on darwin again.

Furthermore, it seems that this kind of issue was also fixed in #51221 and #51408
for the general case.

[1]: 826eff57c4
2024-04-04 08:41:18 +02:00
Wolfgang Walther
4adcc41cd9 postgresql: move explicit libxml2 include behind version flag
This was introduced in #44083 to fix cross building, where xml2-config
wouldn't run on the host platform. This was fixed upstream two years
later [1], so that from v13 on pkg-config is used before xml2-config is.

Once v12 is EOL, we can remove this entirely.

[1]: 0bc8cebdb8
2024-04-04 08:41:18 +02:00
Wolfgang Walther
6c1e2a4401 postgresql: remove preConfigure CC variable
This seems to have been done better by now. There are no references kept
and the build does not fail when removing it.
2024-04-04 08:41:18 +02:00
Wolfgang Walther
c3c52231f0 postgresql: remove left-over LC_ALL environment variable
This was introduced in 65fd8f3f48 around 20 years
ago as LANG=en_US, later changed to LC_ALL=en_US and LC_ALL=C to avoid bash
warnings. This might have been relevant to run initdb during the check phase, but
the PostgreSQL docs [1] say this today:

  For implementation reasons, setting LC_ALL does not work for this purpose

Therefore it can be removed safely.

[1]: https://www.postgresql.org/docs/current/regress-run.html#REGRESS-RUN-LOCALE
2024-04-04 08:41:18 +02:00
Wolfgang Walther
154215cfd8 postgresql: rename patches
Trying to understand what each patch does made me come up with some more
descriptive names:

- Renaming the two disable-xxx patches to a common names makes it immediately
  clear that one replaces the other depending on version number.
- findstring was really not descriptive at all.
- hardcode-pgxs-path will be extended with more paths for split outputs in
  a later commit. Renaming here already to allow git to better track renames.

Finally replacing HARDCODED_PGXS_PATH with $out/lib in the last patch, makes
it easier to understand what the end result will look like when reading the
patch.
2024-04-04 08:41:18 +02:00
Wolfgang Walther
29d5adb676 postgresql: change pname for postgresql_jit attributes to postgresql-jit
This is for consistency between the top-level attribute and the respective package
name, which makes it easier to track derivations.
2024-04-04 08:41:17 +02:00
Wolfgang Walther
aea4ba847a postgresql: remove thisAttr argument by calling tests directly
Previously, it was not possible to run tests on an overridden derivation, because
the derivation under test was always pulled from pkgs.

With this change, the following will return the same test:

  postgresql_jit.tests

and

  (postgresql.override { jitSupport = true; }).tests
2024-04-04 08:41:17 +02:00
Nick Cao
60f5ab8a3e postgresql: enable spinlock on riscv 2024-03-25 16:15:05 -04:00
Wolfgang Walther
01444957ba postgresql: explain use of fetchurl for alpine patches 2024-03-16 11:52:39 +01:00
Wolfgang Walther
e6bfabf366 postgresql: rename enableSystemd to systemdSupport for consistency
We have gssSupport, jitSupport and pythonSupport - but enableSystemd?

Across nixpkgs there are currently three styles commonly used, about equally
often: withX, xSupport and enableX.

Let's at least use one consistent style in this package.
2024-03-15 21:11:10 +01:00
Wolfgang Walther
d7ae1c5143 postgresql: refactor to remove doInstallCheck = false
This is the default anyway.
2024-03-15 21:11:09 +01:00
Wolfgang Walther
4b6bce5c31 postgresql: refactor to remove "this" argument
This was proposed by abbradar in #150801, but left out of the follow up PR
#221851 by Ma27 to reduce the size of the diff. Compared to the initial
proposal this includes the callPackage call in the recursion, which avoids
breaking the withJIT/withoutJIT helpers.

In terms of nixpkgs, this is a pure refactor, no derivations change. However,
this makes downstream expressions like the following possible:

  (postgresql.override { jitSupport = true; }).pkgs.postgis

This would have not worked before without passing another "this" argument,
which is error prone as can be seen in this example:

  https://github.com/PostgREST/postgrest/pull/3222/files
2024-03-15 21:11:09 +01:00
Wolfgang Walther
14b3ea2789 postgresql: refactor to pass jitSupport/llvm via scope instead of passthru
This makes it less error-prone to use the llvm package in extensions, because
it will always match the package used by the postgresql derivation itself.

Previously, you could've accidentally used llvm instead of postgresql.llvm
with a different result.
2024-03-15 21:11:09 +01:00
Wolfgang Walther
b301c01e31 postgresql: refactor to move musl patches into versioned .nix files
This makes it obvious that the required argument muslPatches must be passed when
creating a new version file.

Pure refactor, not changing any derivations.
2024-03-15 18:51:02 +01:00
Wolfgang Walther
82e6c4a609 postgresql: refactor to remove psqlSchema argument
The passthru attribute is still set, but automatically created from
the major version number. Fewer moving parts decrease the chance
for mistakes.
2024-03-15 18:51:02 +01:00
Wolfgang Walther
a92a323a1d postgresql: refactor to remove passthru's readline attribute
This seems to have been introduced 20 years ago in 5863d4f - but
seems to have been a copy&paste mistake from the beginning.
AFAICT, it's not used anywhere.
2024-03-15 18:51:02 +01:00
Wolfgang Walther
62635c9643 postgresql: refactor mkPackages in default.nix
Refactors some low hanging fruit in default.nix to make it easier to add new
versions later on.

Pure refactor, not changing any derivations.

This change makes it easier to add new versions in default.nix without messing
up - and also prevents us from adding version-specific arguments in default.nix
by accident in the future. Those should be put in the versioned .nix files
instead.
2024-03-15 18:51:02 +01:00
Wolfgang Walther
1d9f2bd726 postgresql: refactor to split up default.nix (2/2)
The recommended [1] structure for a package regarding versioning is to have each
version in a separate file. This commit just mechanically copies code around
without any changes.

Pure refactor, not changing any derivations.

[1]: pkgs/README.md
2024-03-15 18:51:02 +01:00
Wolfgang Walther
9af8c0a3b7 postgresql: refactor to split up default.nix (1/2)
This just renames default.nix to generic.nix, because the biggest chunk
of code should move that way in the next commit. This gives us a much
better diff for the next commit and makes rebasing **much** easier in
case of changes. This commit does not stand on its own and needs to go
in with the next commit (2/2).
2024-03-15 18:51:02 +01:00
Eelco Dolstra
05f1457c1e Revert "postgresql: Refactor 8.4 into generic"
This reverts commit 1bb67e514b.
2015-06-04 14:54:50 +02:00
Eelco Dolstra
5efd73fce6 Revert "postgresql: 9.0.19 -> 9.0.20"
This reverts commit 8c99f2e3d6.
2015-06-04 14:54:49 +02:00