guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

branch staging updated: gnu: timescaledb: Adjust test preparation to Pos


From: guix-commits
Subject: branch staging updated: gnu: timescaledb: Adjust test preparation to PostgreSQL 13.6.
Date: Tue, 07 Jun 2022 18:00:32 -0400

This is an automated email from the git hooks/post-receive script.

civodul pushed a commit to branch staging
in repository guix.

The following commit(s) were added to refs/heads/staging by this push:
     new 05fef7bfc6 gnu: timescaledb: Adjust test preparation to PostgreSQL 
13.6.
05fef7bfc6 is described below

commit 05fef7bfc60058763f5a64ec0feaf3876b56281d
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Tue Jun 7 23:58:16 2022 +0200

    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'.
---
 gnu/packages/databases.scm | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

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")



reply via email to

[Prev in Thread] Current Thread [Next in Thread]