Subject: [PATCH 2/6] gnu: openpmix: Enable Python bindings.

From: Maxim Cournoyer <[email-masked]>
Date: Thu, 28 Nov 2024 16:47:53 +0900

* gnu/packages/parallel.scm (openpmix)
[arguments] <configure-flags>: Add '--enable-python-bindings'.
<phases>: Add set-LDFLAGS phase.
[native-inputs]: Add python-cython.

Change-Id: I6910ed9c3c7b47b3a76085b95b1f251286a48077
---
 gnu/packages/parallel.scm | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index e508dc6493..6a16f0e4c0 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -16,6 +16,7 @@
 ;;; Copyright © 2024 David Elsing <[email-masked]>
 ;;; Copyright © 2024 Romain Garbage <[email-masked]>
 ;;; Copyright © 2024 Arun Isaac <[email-masked]>
+;;; Copyright © 2024 Maxim Cournoyer <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -709,14 +710,20 @@ (define-public openpmix
    (arguments
     (list #:configure-flags
           #~(list (string-append "--with-hwloc="
-                                 (ungexp (this-package-input "hwloc") "lib")))
+                                 (ungexp (this-package-input "hwloc") "lib"))
+                  "--enable-python-bindings") ;disabled by default
 
           ;; Don't keep a reference to GCC.
           #:disallowed-references (and (not (%current-target-system))
                                        (list (canonical-package gcc)))
-
           #:phases
           #~(modify-phases %standard-phases
+              (add-after 'unpack 'set-LDFLAGS
+                (lambda _
+                  ;; The Cython-compiled shared library would fail the
+                  ;; validate-runpath phase otherwise.
+                  (setenv "LDFLAGS"
+                          (string-append "-Wl,-rpath=" #$output "/lib"))))
               (add-before 'configure 'strip-pmix-cc-absolute
                 (lambda _
                   ;; The 'pmix_info' program prints the 'configure' command
@@ -733,7 +740,7 @@ (define-public openpmix
                     (("#define PMIX_CONFIGURE_CLI .*")
                      "#define PMIX_CONFIGURE_CLI \"[scrubbed]\"\n")))))))
    (inputs (list libevent `(,hwloc "lib") zlib))
-   (native-inputs (list perl python))
+   (native-inputs (list perl python python-cython))
    (synopsis "PMIx library")
    (description
     "PMIx is an application programming interface standard that provides
-- 
2.46.0