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
This commit is contained in:
Wolfgang Walther 2024-08-24 18:54:54 +02:00
parent 149aa98ce4
commit de4ad2a6ac
No known key found for this signature in database
GPG Key ID: B39893FA5F65CAE1

View File

@ -3,7 +3,7 @@ let
generic =
# dependencies
{ stdenv, lib, fetchurl, fetchpatch, makeWrapper
, glibc, zlib, readline, openssl, icu, lz4, zstd, systemdLibs, libossp_uuid
, glibc, zlib, readline, openssl, icu, lz4, zstd, systemdLibs, libuuid
, pkg-config, libxml2, tzdata, libkrb5, substituteAll, darwin
, linux-pam
@ -102,6 +102,7 @@ let
openssl
(libxml2.override {enableHttp = true;})
icu
libuuid
]
++ lib.optionals (olderThan "13") [ libxcrypt ]
++ lib.optionals jitSupport [ llvmPackages.llvm ]
@ -110,8 +111,7 @@ let
++ lib.optionals systemdSupport' [ systemdLibs ]
++ lib.optionals pythonSupport [ python3 ]
++ lib.optionals gssSupport [ libkrb5 ]
++ lib.optionals stdenv'.hostPlatform.isLinux [ linux-pam ]
++ lib.optionals (!stdenv'.hostPlatform.isDarwin) [ libossp_uuid ];
++ lib.optionals stdenv'.hostPlatform.isLinux [ linux-pam ];
nativeBuildInputs = [
makeWrapper
@ -145,7 +145,7 @@ let
"--with-system-tzdata=${tzdata}/share/zoneinfo"
"--enable-debug"
(lib.optionalString systemdSupport' "--with-systemd")
(if stdenv'.hostPlatform.isDarwin then "--with-uuid=e2fs" else "--with-ossp-uuid")
"--with-uuid=e2fs"
] ++ lib.optionals lz4Enabled [ "--with-lz4" ]
++ lib.optionals zstdEnabled [ "--with-zstd" ]
++ lib.optionals gssSupport [ "--with-gssapi" ]