utils: Treat 'configure' and Makefiles with an 8-bit encoding.

* guix/build/utils.scm (patch-makefile-SHELL, patch-/usr/bin/file): Wrap
  'substitute*' in 'with-fluids'.  Fixes <http://hydra.gnu.org/build/262895>.
This commit is contained in:
Ludovic Courtès 2015-02-28 12:25:22 +01:00
parent 4db87162e6
commit dd0a8ef15f

View file

@ -712,6 +712,8 @@ (define (find-shell name)
shell)) shell))
(let ((st (stat file))) (let ((st (stat file)))
;; Consider FILE is using an 8-bit encoding to avoid errors.
(with-fluids ((%default-port-encoding #f))
(substitute* file (substitute* file
(("^ *SHELL[[:blank:]]*:?=[[:blank:]]*([[:graph:]]*/)([[:graph:]]+)(.*)$" (("^ *SHELL[[:blank:]]*:?=[[:blank:]]*([[:graph:]]*/)([[:graph:]]+)(.*)$"
_ dir shell args) _ dir shell args)
@ -721,7 +723,7 @@ (define (find-shell name)
(format (current-error-port) (format (current-error-port)
"patch-makefile-SHELL: ~a: changing `SHELL' from `~a' to `~a'~%" "patch-makefile-SHELL: ~a: changing `SHELL' from `~a' to `~a'~%"
file old new)) file old new))
(string-append "SHELL = " new args)))) (string-append "SHELL = " new args)))))
(when keep-mtime? (when keep-mtime?
(set-file-time file st)))) (set-file-time file st))))
@ -738,13 +740,15 @@ (define* (patch-/usr/bin/file file
"patch-/usr/bin/file: warning: \ "patch-/usr/bin/file: warning: \
no replacement 'file' command, doing nothing~%") no replacement 'file' command, doing nothing~%")
(let ((st (stat file))) (let ((st (stat file)))
;; Consider FILE is using an 8-bit encoding to avoid errors.
(with-fluids ((%default-port-encoding #f))
(substitute* file (substitute* file
(("/usr/bin/file") (("/usr/bin/file")
(begin (begin
(format (current-error-port) (format (current-error-port)
"patch-/usr/bin/file: ~a: changing `~a' to `~a'~%" "patch-/usr/bin/file: ~a: changing `~a' to `~a'~%"
file "/usr/bin/file" file-command) file "/usr/bin/file" file-command)
file-command))) file-command))))
(when keep-mtime? (when keep-mtime?
(set-file-time file st))))) (set-file-time file st)))))