gnu: postgresql-15: Update to 16.4. [security fixes]

This fixes CVE-2024-7348.

* /gnu/packages/databases.scm
(postgresql-15): Move from here...
(postgresql-16): ... to here.
[version]: Update to 16.4.
[source]: Adapt source and add patch.
[native-inputs]: Add pkg-config.
[inputs]: Add icu4c.
* gnu/packages/patches/postgresql-disable-normalize_exec_path.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Change-Id: I57771ebcf462bdeca73eda157274db089816fd12
This commit is contained in:
Nicolas Graves 2024-10-27 00:47:24 +02:00 committed by Maxim Cournoyer
parent 168001df96
commit 09bbdc3ead
No known key found for this signature in database
GPG key ID: 1260E46482E63562
3 changed files with 51 additions and 6 deletions

View file

@ -1988,6 +1988,7 @@ dist_patch_DATA = \
%D%/packages/patches/portaudio-audacity-compat.patch \
%D%/packages/patches/portmidi-modular-build.patch \
%D%/packages/patches/postgresql-disable-resolve_symlinks.patch \
%D%/packages/patches/postgresql-disable-normalize_exec_path.patch \
%D%/packages/patches/procmail-ambiguous-getline-debian.patch \
%D%/packages/patches/procmail-CVE-2014-3618.patch \
%D%/packages/patches/procmail-CVE-2017-16844.patch \

View file

@ -1289,18 +1289,19 @@ (define-public galera
(license license:gpl2))) ;'COPYING' says "version 2" only
;; Don't forget to update the other postgresql packages when upgrading this one.
(define-public postgresql-15
(define-public postgresql-16
(package
(name "postgresql")
(version "15.7")
(version "16.4")
(source (origin
(method url-fetch)
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
"1xwq1592k1r64ki9bmkcyw39416kymabdfxbkpiqaqxbhnaf8vx4"))
(patches (search-patches "postgresql-disable-resolve_symlinks.patch"))))
"0vvd73rzj0sl294v15bh8yslakqv412bxqzlkqxyjwxa8pb6c5wp"))
(patches (search-patches
"postgresql-disable-normalize_exec_path.patch"))))
(build-system gnu-build-system)
(arguments
(list
@ -1338,8 +1339,10 @@ (define-public postgresql-15
(invoke "make" "postgres.info")
(install-file "postgres.info"
(string-append #$output "/share/info"))))))))
(native-inputs (list docbook-xml-4.5 docbook2x libxml2 perl texinfo))
(inputs (list readline `(,util-linux "lib") openssl zlib))
(native-inputs
(list docbook-xml-4.5 docbook2x libxml2 perl pkg-config texinfo))
(inputs
(list icu4c readline `(,util-linux "lib") openssl zlib))
(home-page "https://www.postgresql.org/")
(synopsis "Powerful object-relational database system")
(description
@ -1351,6 +1354,25 @@ (define-public postgresql-15
pictures, sounds, or video.")
(license (license:x11-style "file://COPYRIGHT"))))
(define-public postgresql-15
(package
(inherit postgresql-16)
(name "postgresql")
(version "15.8")
(source (origin
(inherit (package-source postgresql-16))
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
"0snbxmlygf7m4cxjpscmz3yjn4lnqsw313y9xgpv7vk9k9gm20s4"))
(patches (search-patches
"postgresql-disable-resolve_symlinks.patch"))))
(native-inputs (modify-inputs (package-native-inputs postgresql-16)
(delete "pkg-config")))
(inputs (modify-inputs (package-inputs postgresql-16)
(delete "icu4c")))))
(define-public postgresql-14
(package
(inherit postgresql-15)

View file

@ -0,0 +1,22 @@
diff --git a/src/common/exec.c b/src/common/exec.c
index f209b93..ed42202 100644
--- a/src/common/exec.c
+++ b/src/common/exec.c
@@ -238,6 +238,14 @@ find_my_exec(const char *argv0, char *retpath)
static int
normalize_exec_path(char *path)
{
+ /*
+ * Guix specific patch: postgresql extensions need to be located in the
+ * same directory as postgresql.
+ * In Guix we currently use directory-unions to create extended postgresql
+ * packages. Directory unions use symlinks, that's why we need to be able
+ * to use symlinks.
+ */
+ return 0;
/*
* We used to do a lot of work ourselves here, but now we just let
* realpath(3) do all the heavy lifting.
--
2.46.0