summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-06-07 23:58:16 +0200
committerLudovic Courtès <ludo@gnu.org>2022-06-07 23:58:16 +0200
commit05fef7bfc60058763f5a64ec0feaf3876b56281d (patch)
treef1a6773df736ac8a973997cb2fada0da9a2fd217 /gnu
parentb422687cbd29652d21ffcb7b5b202ab9b37dd5d3 (diff)
downloadguix-patches-05fef7bfc60058763f5a64ec0feaf3876b56281d.tar
guix-patches-05fef7bfc60058763f5a64ec0feaf3876b56281d.tar.gz
gnu: timescaledb: Adjust test preparation to PostgreSQL 13.6.
The previous method of making a union with symlinks would work with 13.4 but not with 13.6, which has an extra 'canonicalize_path' call in 'find_my_exec'. * gnu/packages/databases.scm (timescaledb)[arguments]: In 'prepare-tests', pass #:symlink argument to 'union-build'.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/databases.scm16
1 files changed, 15 insertions, 1 deletions
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index df0532a0ea..4556ef4590 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -1353,12 +1353,26 @@ pictures, sounds, or video.")
(pg-union (string-append (getcwd) "/../pg-union")))
(match inputs
(((names . directories) ...)
- (union-build pg-union (cons #$output directories))))
+ ;; PG will only load extensions from its own $libdir,
+ ;; which it calculates based on argv[0]. As of
+ ;; PostgreSQL 13.6, it calls 'canonicalize_path' on
+ ;; argv[0] so a merge symlink is not enough to trick
+ ;; it; thus, the code below makes a full copy of PG
+ ;; and friends such that 'pg_config --libdir', for
+ ;; instance, points to PG-UNION, allowing it to load
+ ;; the timescaledb extension.
+ (union-build pg-union (cons #$output directories)
+ #:symlink
+ (lambda (old new)
+ (if (file-is-directory? old)
+ (copy-recursively old new)
+ (copy-file old new))))))
(setenv "PATH" (string-append pg-union "/bin:"
(getenv "PATH")))
(invoke "initdb" "-D" pg-data)
(copy-file "test/postgresql.conf"
(string-append pg-data "/postgresql.conf"))
+
(invoke "pg_ctl" "-D" pg-data
"-o" (string-append "-k " pg-data)
"-l" (string-append pg-data "/db.log")