[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCHES] Add 'file' to %final-inputs; patch /usr/bin/file
From: |
mhw |
Subject: |
Re: [PATCHES] Add 'file' to %final-inputs; patch /usr/bin/file |
Date: |
Fri, 22 Aug 2014 02:12:54 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) |
Here are updated versions of these patches. Please disregard the
earlier ones.
Mark
>From 554d86b02c75922a1c05b5e65cfccd3cc8bd23db Mon Sep 17 00:00:00 2001
From: Mark H Weaver <address@hidden>
Date: Thu, 21 Aug 2014 11:26:40 -0400
Subject: [PATCH 1/3] gnu: bootstrap: Add 'file' to %boot0-inputs and
%final-inputs.
* gnu/packages/base.scm (file-boot0): New variable.
(%boot0-inputs): Add 'file-boot0'.
(%final-inputs): Add 'file' to list of packages to 'finalize'.
---
gnu/packages/base.scm | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 8060ab6..30176cf 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -29,6 +29,7 @@
#:use-module (gnu packages compression)
#:use-module (gnu packages gcc)
#:use-module (gnu packages ed)
+ #:use-module (gnu packages file)
#:use-module (gnu packages gawk)
#:use-module (gnu packages guile)
#:use-module (gnu packages multiprecision)
@@ -630,11 +631,20 @@ and daylight-saving rules.")
(current-source-location)
#:guile %bootstrap-guile)))
+(define file-boot0
+ (package-with-bootstrap-guile
+ (package-with-explicit-inputs file
+ `(("make" ,gnu-make-boot0)
+ ,@%bootstrap-inputs)
+ (current-source-location)
+ #:guile %bootstrap-guile)))
+
(define %boot0-inputs
`(("make" ,gnu-make-boot0)
("diffutils" ,diffutils-boot0)
("findutils" ,findutils-boot0)
+ ("file" ,file-boot0)
,@%bootstrap-inputs))
(define* (nix-system->gnu-triplet
@@ -1187,6 +1197,7 @@ store.")
("gzip" ,gzip)
("bzip2" ,bzip2)
("xz" ,xz)
+ ("file" ,file)
("diffutils" ,diffutils)
("patch" ,patch)
("sed" ,sed)
--
1.8.4
>From 883f77d92f5b1e8af294f88abea0b09487fb901b Mon Sep 17 00:00:00 2001
From: Mark H Weaver <address@hidden>
Date: Thu, 21 Aug 2014 11:30:08 -0400
Subject: [PATCH 2/3] 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.
---
guix/build/gnu-build-system.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm
index 8636931..a1fe26e 100644
--- a/guix/build/gnu-build-system.scm
+++ b/guix/build/gnu-build-system.scm
@@ -106,6 +106,31 @@ working directory."
(and (zero? (system* "tar" "xvf" source))
(chdir (first-subdirectory ".")))))
+(define* (patch-usr-bin-file #:key native-inputs inputs #:allow-other-keys)
+ "Patch occurrences of /usr/bin/file in configure, if present."
+ (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)
"Patch shebangs in all source files; this includes non-executable
files such as `.in' templates. Most scripts honor $SHELL and
@@ -353,6 +378,7 @@ makefiles."
(let-syntax ((phases (syntax-rules ()
((_ p ...) `((p . ,p) ...)))))
(phases set-paths unpack
+ patch-usr-bin-file
patch-source-shebangs configure patch-generated-file-shebangs
build check install
patch-shebangs strip)))
--
1.8.4
>From 6818e2a6e53afa7b90379a4a99f014308c8cd2ee Mon Sep 17 00:00:00 2001
From: Mark H Weaver <address@hidden>
Date: Thu, 21 Aug 2014 22:39:18 -0400
Subject: [PATCH 3/3] gnu: Rely on 'file' implicit input and
'patch-usr-bin-file'.
* gnu/packages/admin.scm (sudo):
* gnu/packages/gawk.scm (gawk): Remove workaround on MIPS.
* gnu/packages/mcrypt.scm (mcrypt, libmhash):
* gnu/packages/file.scm (file): Remove 'file' from native-inputs.
* gnu/packages/mc.scm (mc):
* gnu/packages/pretty-print.scm (a2ps, trueprint, source-highlight):
* gnu/packages/image.scm (libtiff): Remove 'file' from native-inputs.
Remove 'patch-configure' phase.
---
gnu/packages/admin.scm | 13 +----
gnu/packages/file.scm | 3 --
gnu/packages/gawk.scm | 11 -----
gnu/packages/image.scm | 12 +----
gnu/packages/mc.scm | 11 +----
gnu/packages/mcrypt.scm | 7 +--
gnu/packages/pretty-print.scm | 112 +++++++++++++++++-------------------------
7 files changed, 51 insertions(+), 118 deletions(-)
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index c259974..4d60c17 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -648,18 +648,7 @@ system administrator.")
"")
(("^install: (.*)install-sudoers(.*)" _ before after)
;; Don't try to create /etc/sudoers.
- (string-append "install: " before after "\n")))
-
- ;; XXX FIXME sudo 1.8.10p3 was bootstrapped with a
- ;; prerelease libtool, which fails on MIPS in the absence
- ;; of /usr/bin/file. As a temporary workaround, we patch
- ;; the configure script to hardcode use of the little
- ;; endian N32 ABI on MIPS.
- ,@(if (equal? "mips64el-linux" (or (%current-target-system)
- (%current-system)))
- '((substitute* "configure"
- (("\\$emul") "elf32ltsmipn32")))
- '()))
+ (string-append "install: " before after "\n"))))
%standard-phases)
;; XXX: The 'testsudoers' test series expects user 'root' to exist, but
diff --git a/gnu/packages/file.scm b/gnu/packages/file.scm
index f53c22f..067f20e 100644
--- a/gnu/packages/file.scm
+++ b/gnu/packages/file.scm
@@ -35,9 +35,6 @@
(sha256 (base32
"01xz106biz6x4h5ilymg5v3367djvgnfp4lm87132cjqdmqgn6b5"))))
(build-system gnu-build-system)
- (native-inputs
- ;; This package depends upon a native install of itself.
- (if (%current-target-system) `(("file" ,file)) '() ))
(synopsis "file, a file type guesser")
(description
"The file command is a file type guesser, a command-line tool that tells
diff --git a/gnu/packages/gawk.scm b/gnu/packages/gawk.scm
index 6185409..fd14b4c 100644
--- a/gnu/packages/gawk.scm
+++ b/gnu/packages/gawk.scm
@@ -55,17 +55,6 @@
'((substitute* "extension/Makefile.in"
(("^.*: check-for-shared-lib-support" match)
(string-append "### " match))))
- '())
-
- ;; XXX FIXME gawk 4.1.1 was bootstrapped with a prerelease
- ;; libtool, which fails on MIPS in the absence of
- ;; /usr/bin/file. As a temporary workaround, we patch
- ;; the configure script to hardcode use of the little
- ;; endian N32 ABI on MIPS.
- ,@(if (equal? "mips64el-linux" (or (%current-target-system)
- (%current-system)))
- '((substitute* "extension/configure"
- (("\\$emul") "elf32ltsmipn32")))
'())))
%standard-phases)))
(inputs `(("libsigsegv" ,libsigsegv)
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 014266c..06f6271 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -19,7 +19,6 @@
(define-module (gnu packages image)
#:use-module (gnu packages)
#:use-module (gnu packages compression)
- #:use-module (gnu packages file)
#:use-module ((guix licenses) #:renamer (symbol-prefix-proc 'license:))
#:use-module (guix packages)
#:use-module (guix download)
@@ -97,20 +96,11 @@ image files in PBMPLUS PPM/PGM, GIF, BMP, and Targa file
formats.")
(inputs `(("zlib" ,zlib)
("libjpeg-8" ,libjpeg-8)))
;; currently does not compile with libjpeg version 9
- (native-inputs `(("file" ,file)))
(arguments
`(#:configure-flags
(list (string-append "--with-jpeg-include-dir="
(assoc-ref %build-inputs "libjpeg-8")
- "/include"))
- #:phases
- (alist-cons-before
- 'configure 'patch-configure
- (lambda _
- (substitute* "configure"
- (("`/usr/bin/file")
- (string-append "`" (which "file")))))
- %standard-phases)))
+ "/include"))))
(synopsis "Libtiff, a library for handling TIFF files")
(description
"Libtiff provides support for the Tag Image File Format (TIFF), a format
diff --git a/gnu/packages/mc.scm b/gnu/packages/mc.scm
index aba14d5..6e3747c 100644
--- a/gnu/packages/mc.scm
+++ b/gnu/packages/mc.scm
@@ -28,7 +28,6 @@
#:use-module (gnu packages ssh)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages check)
- #:use-module (gnu packages file)
#:use-module (gnu packages perl))
(define-public mc
@@ -46,7 +45,6 @@
(patches (list (search-patch "mc-fix-ncurses-build.patch")))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)
- ("file" ,file)
("perl" ,perl)))
(inputs `(("aspell" ,aspell)
("ncurses" ,ncurses)
@@ -55,14 +53,7 @@
("check" ,check)))
(arguments
`(#:configure-flags
- '("--with-screen=ncurses" "--enable-aspell")
- #:phases
- (alist-cons-before
- 'configure 'patch-configure
- (lambda _
- (substitute* "configure"
- (("/usr/bin/file") (which "file"))))
- %standard-phases)))
+ '("--with-screen=ncurses" "--enable-aspell")))
(home-page "http://www.midnight-commander.org")
(synopsis "Graphical file manager")
(description
diff --git a/gnu/packages/mcrypt.scm b/gnu/packages/mcrypt.scm
index eac8c72..12a4827 100644
--- a/gnu/packages/mcrypt.scm
+++ b/gnu/packages/mcrypt.scm
@@ -23,8 +23,7 @@
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages compression)
- #:use-module (gnu packages perl)
- #:use-module (gnu packages file))
+ #:use-module (gnu packages perl))
(define-public mcrypt
(package
@@ -68,7 +67,6 @@ them.")
(base32
"0gipgb939vy9m66d3k8il98rvvwczyaw2ixr8yn6icds9c3nrsz4"))))
(build-system gnu-build-system)
- (native-inputs `(("file" ,file)))
(home-page "http://mcrypt.sourceforge.net/")
(synopsis "Encryption algorithm library")
(description
@@ -95,8 +93,7 @@ XTEA, 3WAY, TWOFISH, BLOWFISH, ARCFOUR, WAKE and more.")
(patches (list (search-patch "mhash-keygen-test-segfault.patch")))))
(build-system gnu-build-system)
(native-inputs
- `(("file" ,file)
- ("perl" ,perl))) ;for tests
+ `(("perl" ,perl))) ;for tests
(home-page "http://mhash.sourceforge.net/")
(synopsis "Thread-safe hash library")
(description
diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm
index 8c51b54..07837eb 100644
--- a/gnu/packages/pretty-print.scm
+++ b/gnu/packages/pretty-print.scm
@@ -30,8 +30,7 @@
#:use-module (gnu packages bison)
#:use-module (gnu packages flex)
#:use-module (gnu packages gperf)
- #:use-module (gnu packages perl)
- #:use-module (gnu packages file))
+ #:use-module (gnu packages perl))
(define-public a2ps
(package
@@ -53,45 +52,39 @@
("imagemagick" ,imagemagick)))
(native-inputs
`(("gperf" ,gperf)
- ("perl" ,perl)
- ("file" ,file)))
+ ("perl" ,perl)))
(arguments
'(#:phases (alist-cons-before
- 'configure 'patch-configure
+ 'build 'patch-scripts
(lambda _
- (substitute* "configure"
- (("/usr/bin/file") (which "file"))))
+ (substitute*
+ '("afm/make_fonts_map.sh"
+ "tests/defs"
+ "tests/backup.tst"
+ "tests/styles.tst")
+ (("/bin/rm") (which "rm"))))
(alist-cons-before
- 'build 'patch-scripts
- (lambda _
- (substitute*
- '("afm/make_fonts_map.sh"
- "tests/defs"
- "tests/backup.tst"
- "tests/styles.tst")
- (("/bin/rm") (which "rm"))))
- (alist-cons-before
- 'check 'patch-test-files
- ;; Alternatively, we could unpatch the shebangs in tstfiles
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((perl (assoc-ref inputs "perl")))
- (substitute* '("tests/ps-ref/includeres.ps"
- "tests/gps-ref/includeres.ps")
- (("/usr/local/bin/perl")
- (string-append perl "/bin/perl"))))
- ;; Some of the reference postscript contain a 'version 3'
- ;; string that in inconsistent with the source text in the
- ;; tstfiles directory. Erroneous search-and-replace?
- (substitute* '("tests/ps-ref/InsertBlock.ps"
- "tests/gps-ref/InsertBlock.ps"
- "tests/ps-ref/bookie.ps"
- "tests/gps-ref/bookie.ps")
- (("version 3") "version 2"))
- (substitute* '("tests/ps-ref/psmandup.ps"
- "tests/gps-ref/psmandup.ps")
- (("#! */bin/sh") (string-append
- "#!" (which "sh")))))
- %standard-phases)))))
+ 'check 'patch-test-files
+ ;; Alternatively, we could unpatch the shebangs in tstfiles
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((perl (assoc-ref inputs "perl")))
+ (substitute* '("tests/ps-ref/includeres.ps"
+ "tests/gps-ref/includeres.ps")
+ (("/usr/local/bin/perl")
+ (string-append perl "/bin/perl"))))
+ ;; Some of the reference postscript contain a 'version 3'
+ ;; string that in inconsistent with the source text in the
+ ;; tstfiles directory. Erroneous search-and-replace?
+ (substitute* '("tests/ps-ref/InsertBlock.ps"
+ "tests/gps-ref/InsertBlock.ps"
+ "tests/ps-ref/bookie.ps"
+ "tests/gps-ref/bookie.ps")
+ (("version 3") "version 2"))
+ (substitute* '("tests/ps-ref/psmandup.ps"
+ "tests/gps-ref/psmandup.ps")
+ (("#! */bin/sh") (string-append
+ "#!" (which "sh")))))
+ %standard-phases))))
(home-page "http://www.gnu.org/software/a2ps")
(synopsis "Any file to PostScript, including pretty-printing")
(description
@@ -115,16 +108,9 @@ special cases, such as pretty-printing \"--help\" output.")
(base32
"13rkc0fga10xyf56yy9dnq95zndnfadkhxflnp24skszj21y8jqh"))))
(build-system gnu-build-system)
- (native-inputs `(("file" ,file)))
(arguments
;; Must define DIFF_CMD for tests to pass
- '(#:configure-flags '("CPPFLAGS=-DDIFF_CMD=\\\"diff\\\"")
- #:phases (alist-cons-before
- 'configure 'patch-configure
- (lambda _
- (substitute* "configure"
- (("/usr/bin/file") (which "file"))))
- %standard-phases)))
+ '(#:configure-flags '("CPPFLAGS=-DDIFF_CMD=\\\"diff\\\"")))
(home-page "http://www.gnu.org/software/trueprint")
(synopsis "Pretty-print C sources and other plain text to PostScript")
(description
@@ -178,34 +164,28 @@ different programming languages.")
`(("boost" ,boost)))
(native-inputs
`(("bison" ,bison)
- ("flex" ,flex)
- ("file" ,file)))
+ ("flex" ,flex)))
(arguments
`(#:configure-flags
(list (string-append "--with-boost="
(assoc-ref %build-inputs "boost")))
#:parallel-tests? #f ;There appear to be race conditions
#:phases (alist-cons-before
- 'configure 'patch-configure
+ 'check 'patch-test-files
(lambda _
- (substitute* "configure"
- (("/usr/bin/file") (which "file"))))
- (alist-cons-before
- 'check 'patch-test-files
- (lambda _
- ;; Unpatch shebangs in test input so that source-highlight
- ;; is still able to infer input language
- (substitute* '("tests/test.sh"
- "tests/test2.sh"
- "tests/test.tcl")
- (((string-append "#! *" (which "sh"))) "#!/bin/sh"))
- ;; Initial patching unrecoverably removes whitespace, so
- ;; remove it also in the comparison output.
- (substitute* '("tests/test.sh.html"
- "tests/test2.sh.html"
- "tests/test.tcl.html")
- (("#! */bin/sh") "#!/bin/sh")))
- %standard-phases))))
+ ;; Unpatch shebangs in test input so that source-highlight
+ ;; is still able to infer input language
+ (substitute* '("tests/test.sh"
+ "tests/test2.sh"
+ "tests/test.tcl")
+ (((string-append "#! *" (which "sh"))) "#!/bin/sh"))
+ ;; Initial patching unrecoverably removes whitespace, so
+ ;; remove it also in the comparison output.
+ (substitute* '("tests/test.sh.html"
+ "tests/test2.sh.html"
+ "tests/test.tcl.html")
+ (("#! */bin/sh") "#!/bin/sh")))
+ %standard-phases)))
(home-page "http://www.gnu.org/software/src-highlite")
(synopsis "Produce a document with syntax highlighting from a source file")
(description
--
1.8.4