gnu-build-system: Add 'patch-usr-bin-file' to %standard-phases.
* guix/build/gnu-build-system.scm (patch-usr-bin-file): New procedure. (%standard-phases): Add it.
This commit is contained in:
parent
8f5708c1d8
commit
8a0576f175
|
@ -106,6 +106,35 @@ working directory."
|
||||||
(and (zero? (system* "tar" "xvf" source))
|
(and (zero? (system* "tar" "xvf" source))
|
||||||
(chdir (first-subdirectory ".")))))
|
(chdir (first-subdirectory ".")))))
|
||||||
|
|
||||||
|
;; See <http://bugs.gnu.org/17840>.
|
||||||
|
(define* (patch-usr-bin-file #:key native-inputs inputs
|
||||||
|
(patch-/usr/bin/file? #t)
|
||||||
|
#:allow-other-keys)
|
||||||
|
"Patch occurrences of /usr/bin/file in configure, if present."
|
||||||
|
(when patch-/usr/bin/file?
|
||||||
|
(let ((file "configure")
|
||||||
|
(file-command (or (and=> (assoc-ref (or native-inputs inputs) "file")
|
||||||
|
(cut string-append <> "/bin/file"))
|
||||||
|
(which "file"))))
|
||||||
|
(cond ((not (file-exists? file))
|
||||||
|
(format (current-error-port)
|
||||||
|
"patch-usr-bin-file: warning: `~a' not found~%"
|
||||||
|
file))
|
||||||
|
((not file-command)
|
||||||
|
(format (current-error-port)
|
||||||
|
"patch-usr-bin-file: warning: `file' not found in PATH~%"))
|
||||||
|
(else
|
||||||
|
(let ((st (stat file)))
|
||||||
|
(substitute* file
|
||||||
|
(("/usr/bin/file")
|
||||||
|
(begin
|
||||||
|
(format (current-error-port)
|
||||||
|
"patch-usr-bin-file: ~a: changing `~a' to `~a'~%"
|
||||||
|
file "/usr/bin/file" file-command)
|
||||||
|
file-command)))
|
||||||
|
(set-file-time file st))))))
|
||||||
|
#t)
|
||||||
|
|
||||||
(define* (patch-source-shebangs #:key source #:allow-other-keys)
|
(define* (patch-source-shebangs #:key source #:allow-other-keys)
|
||||||
"Patch shebangs in all source files; this includes non-executable
|
"Patch shebangs in all source files; this includes non-executable
|
||||||
files such as `.in' templates. Most scripts honor $SHELL and
|
files such as `.in' templates. Most scripts honor $SHELL and
|
||||||
|
@ -353,6 +382,7 @@ makefiles."
|
||||||
(let-syntax ((phases (syntax-rules ()
|
(let-syntax ((phases (syntax-rules ()
|
||||||
((_ p ...) `((p . ,p) ...)))))
|
((_ p ...) `((p . ,p) ...)))))
|
||||||
(phases set-paths unpack
|
(phases set-paths unpack
|
||||||
|
patch-usr-bin-file
|
||||||
patch-source-shebangs configure patch-generated-file-shebangs
|
patch-source-shebangs configure patch-generated-file-shebangs
|
||||||
build check install
|
build check install
|
||||||
patch-shebangs strip)))
|
patch-shebangs strip)))
|
||||||
|
|
Loading…
Reference in New Issue