* guix/build/perl-build-system.scm (wrap): New procedure. (%standard-phases): Add 'wrap' phase. --- guix/build/perl-build-system.scm | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/guix/build/perl-build-system.scm b/guix/build/perl-build-system.scm index b2024e440..5bf5b2523 100644 --- a/guix/build/perl-build-system.scm +++ b/guix/build/perl-build-system.scm @@ -19,7 +19,7 @@ (define-module (guix build perl-build-system) #:use-module ((guix build gnu-build-system) #:prefix gnu:) #:use-module (guix build utils) - #:use-module (ice-9 match) + #:use-module (srfi srfi-1) #:export (%standard-phases perl-build)) @@ -51,6 +51,15 @@ (format #t "running `perl' with arguments ~s~%" args) (zero? (apply system* "perl" args)))) +;; Use 'program-wrapper' to return an executable wrapper for perl. +(define wrap + (program-wrapper + (lambda (inputs outputs) + (string-append (assoc-ref outputs "out") "/lib/perl5/site_perl/" + ;; As in python, assume version at end of `perl' string. + (last (string-split (assoc-ref inputs "perl") #\-)))) + "PERL5LIB")) + (define-syntax-rule (define-w/gnu-fallback* (name args ...) body ...) (define* (name args ... #:rest rest) (if (access? "Build" X_OK) @@ -74,9 +83,11 @@ (define %standard-phases ;; Everything is as with the GNU Build System except for the `configure', - ;; `build', `check', and `install' phases. + ;; `build', `check', and `install' phases. We also add a `wrap' phase to + ;; wrap perl binaries with a complete PERL5LIB path. (modify-phases gnu:%standard-phases (replace 'install install) + (add-after 'install 'wrap wrap) (replace 'check check) (replace 'build build) (replace 'configure configure))) -- 2.12.2