aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/perl.scm
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2016-08-04 08:17:05 -0400
committerMark H Weaver <mhw@netris.org>2016-08-04 08:17:05 -0400
commit536fc5f8cd45023c3c6f28f9c768338b5e797b47 (patch)
tree8516410664ed4d6ff0f68b48e71e5ec866367c44 /gnu/packages/perl.scm
parent0832787e5c463c713d8f24fdec0f52900ff1c2bd (diff)
parenta8cb87abe98d57fb763d5b14524dc32c96bd31b5 (diff)
downloadguix-536fc5f8cd45023c3c6f28f9c768338b5e797b47.tar
guix-536fc5f8cd45023c3c6f28f9c768338b5e797b47.tar.gz
Merge branch 'core-updates'
Diffstat (limited to 'gnu/packages/perl.scm')
-rw-r--r--gnu/packages/perl.scm39
1 files changed, 29 insertions, 10 deletions
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 08a16ad2af..4423c77bbd 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -90,15 +90,7 @@
"-Dinstallstyle=lib/perl5"
"-Duseshrplib"
(string-append "-Dlocincpth=" libc "/include")
- (string-append "-Dloclibpth=" libc "/lib")
-
- ;; Force the library search path to contain only libc
- ;; because it is recorded in Config.pm and
- ;; Config_heavy.pl; we don't want to keep a reference
- ;; to everything that's in $LIBRARY_PATH at build
- ;; time (Binutils, bzip2, file, etc.)
- (string-append "-Dlibpth=" libc "/lib")
- (string-append "-Dplibpth=" libc "/lib"))))))
+ (string-append "-Dloclibpth=" libc "/lib"))))))
(add-before
'strip 'make-shared-objects-writable
@@ -109,7 +101,34 @@
(lib (string-append out "/lib")))
(for-each (lambda (dso)
(chmod dso #o755))
- (find-files lib "\\.so$"))))))))
+ (find-files lib "\\.so$")))))
+
+ (add-after 'install 'remove-extra-references
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (libc (assoc-ref inputs "libc"))
+ (config1 (car (find-files (string-append out "/lib/perl5")
+ "^Config_heavy\\.pl$")))
+ (config2 (find-files (string-append out "/lib/perl5")
+ "^Config\\.pm$")))
+ ;; Force the library search path to contain only libc because
+ ;; it is recorded in Config.pm and Config_heavy.pl; we don't
+ ;; want to keep a reference to everything that's in
+ ;; $LIBRARY_PATH at build time (GCC, Binutils, bzip2, file,
+ ;; etc.)
+ (substitute* config1
+ (("^incpth=.*$")
+ (string-append "incpth='" libc "/include'\n"))
+ (("^(libpth|plibpth|libspath)=.*$" _ variable)
+ (string-append variable "='" libc "/lib'\n")))
+
+ (for-each (lambda (file)
+ (substitute* config2
+ (("libpth => .*$")
+ (string-append "libpth => '" libc
+ "/lib',\n"))))
+ config2)
+ #t))))))
(native-search-paths (list (search-path-specification
(variable "PERL5LIB")
(files '("lib/perl5/site_perl")))))