aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Bakke <marius@gnu.org>2021-07-18 13:43:16 +0200
committerMarius Bakke <marius@gnu.org>2021-07-23 17:26:44 +0200
commit9840ec8cabc0adf5d99d45276617eeaf6f4f3635 (patch)
tree68751d857d58550290647237313812940c9231f3
parentd672c57a770a481dabd355ec7eea1a73d2c67139 (diff)
downloadguix-9840ec8cabc0adf5d99d45276617eeaf6f4f3635.tar.gz
guix-9840ec8cabc0adf5d99d45276617eeaf6f4f3635.zip
gnu: Perl: Resolve TODO.
* gnu/packages/perl.scm (perl)[inputs]: Add COREUTILS-MINIMAL. [arguments]: Unconditionally patch /bin/pwd in Cwd.pm. While at it, remove trailing #t's.
-rw-r--r--gnu/packages/perl.scm58
1 files changed, 25 insertions, 33 deletions
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 682b58338b..685a31914c 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -123,20 +123,19 @@
#:phases
(modify-phases %standard-phases
(add-before 'configure 'setup-configure
- (lambda _
- ;; Use the right path for `pwd'.
- ;; TODO: use coreutils from INPUTS instead of 'which'
- ;; in next rebuild cycle, see fixup below.
- (substitute* "dist/PathTools/Cwd.pm"
- (("/bin/pwd")
- (which "pwd")))
-
- ;; Build in GNU89 mode to tolerate C++-style comment in libc's
- ;; <bits/string3.h>.
- (substitute* "cflags.SH"
- (("-std=c89")
- "-std=gnu89"))
- #t))
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((coreutils (or (assoc-ref inputs "coreutils-minimal")
+ (assoc-ref inputs "coreutils"))))
+ ;; Use the right path for `pwd'.
+ (substitute* "dist/PathTools/Cwd.pm"
+ (("'/bin/pwd'")
+ (string-append "'" coreutils "/bin/pwd'")))
+
+ ;; Build in GNU89 mode to tolerate C++-style comment in libc's
+ ;; <bits/string3.h>.
+ (substitute* "cflags.SH"
+ (("-std=c89")
+ "-std=gnu89")))))
,@(if (%current-target-system)
`((add-after 'unpack 'unpack-cross
(lambda* (#:key native-inputs inputs #:allow-other-keys)
@@ -155,8 +154,7 @@
(("! */bin/sh") (string-append "! " bash "/bin/bash"))
((" /bin/sh") (string-append bash "/bin/bash")))
(substitute* '("ext/Errno/Errno_pm.PL")
- (("\\$cpp < errno.c") "$Config{cc} -E errno.c")))
- #t))
+ (("\\$cpp < errno.c") "$Config{cc} -E errno.c")))))
(replace 'configure
(lambda* (#:key configure-flags outputs inputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -172,22 +170,18 @@
(lambda (x) (or (string-prefix? "-d" x)
(string-prefix? "-Dcc=" x))))
configure-flags)))
- (bash (assoc-ref inputs "bash"))
- (coreutils (assoc-ref inputs "coreutils")))
+ (bash (assoc-ref inputs "bash")))
(format (current-error-port)
- "running ./configure ~a\n" (string-join configure-flags))
+ "running ./configure ~a\n"
+ (string-join configure-flags))
(apply invoke (cons "./configure" configure-flags))
(substitute* "config.sh"
(((string-append store-directory "/[^/]*-bash-[^/]*"))
bash))
(substitute* '("config.h")
(("^#define SH_PATH .*")
- (string-append "#define SH_PATH \"" bash "/bin/bash\"\n")))
- ;;TODO: fix this in setup-configure next rebuild cycle
- (substitute* "dist/PathTools/Cwd.pm"
- (((string-append store-directory "/[^/]*-coreutils-[^/]*"))
- coreutils))
- #t)))
+ (string-append "#define SH_PATH \""
+ bash "/bin/bash\"\n"))))))
(add-after 'build 'touch-non-built-files-for-install
(lambda _
;; `make install' wants to install these although they do
@@ -201,8 +195,7 @@
'("Pod-Usage/blib/script/pod2text"
"Pod-Usage/blib/script/pod2usage"
"Pod-Checker/blib/script/podchecker"
- "Pod-Parser/blib/script/podselect")))
- #t)))
+ "Pod-Parser/blib/script/podselect"))))))
`((replace 'configure
(lambda* (#:key configure-flags #:allow-other-keys)
(format #t "Perl configure flags: ~s~%" configure-flags)
@@ -233,13 +226,12 @@
(("libpth => .*$")
(string-append "libpth => '" libc
"/lib',\n"))))
- config2)
- #t))))))
+ config2)))))))
(inputs
- (if (%current-target-system)
- `(("bash" ,bash-minimal)
- ("coreutils" ,coreutils))
- '()))
+ (append (list coreutils-minimal)
+ (if (%current-target-system)
+ (list bash-minimal)
+ '())))
(native-inputs
(if (%current-target-system)
`(("perl-cross"