gnu: docbook-xsl update to 1.78.1
[jackhill/guix/guix.git] / gnu / packages / gawk.scm
index 34a119f..6185409 100644 (file)
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -18,6 +19,7 @@
 
 (define-module (gnu packages gawk)
   #:use-module (guix licenses)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages libsigsegv)
   #:use-module (guix packages)
   #:use-module (guix download)
 (define-public gawk
   (package
    (name "gawk")
-   (version "4.0.2")
+   (version "4.1.1")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/gawk/gawk-" version
                                 ".tar.xz"))
             (sha256
-             (base32 "04vd0axif762mf781pj3days6ilv2333b9zi9c50y5mma66g5q91"))))
+             (base32 "1nz83vpss8xv7m475sv4qhhj40g74nvcw0y9kwq9ds8wzfmcdm7g"))))
    (build-system gnu-build-system)
    (arguments
     `(#:parallel-tests? #f                ; test suite fails in parallel
 
-      ;; Work around test failure on Cygwin.
-      #:tests? ,(not (string=? (%current-system) "i686-cygwin"))
-
       #:phases (alist-cons-before
                 'configure 'set-shell-file-name
                 (lambda* (#:key inputs #:allow-other-keys)
                   ;; Refer to the right shell.
-                  ;; FIXME: Remove `else' arm upon core-updates.
-                  ,(if (%current-target-system)
-                       '(let ((sh (which "sh")))
-                          (substitute* "io.c"
-                            (("/bin/sh") sh)))
-                       '(let ((bash (assoc-ref inputs "bash")))
-                          (substitute* "io.c"
-                            (("/bin/sh")
-                             (string-append bash "/bin/bash"))))))
-                ,(if (%current-target-system)
-                     '%standard-cross-phases
-                     '%standard-phases))))
-   (inputs `(("libsigsegv" ,libsigsegv)))
+                  (let ((bash (assoc-ref inputs "bash")))
+                    (substitute* "io.c"
+                      (("/bin/sh")
+                       (string-append bash "/bin/bash")))
+
+                    ;; When cross-compiling, remove dependencies on the
+                    ;; `check-for-shared-lib-support' target, which tries to
+                    ;; run the cross-built `gawk'.
+                    ,@(if (%current-target-system)
+                          '((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)
+
+             ,@(if (%current-target-system)
+                   `(("bash" ,bash))
+                   '())))
+
    (home-page "http://www.gnu.org/software/gawk/")
    (synopsis "A text scanning and processing language")
    (description
-    "Many computer users need to manipulate text files: extract and then
-operate on data from parts of certain lines while discarding the rest, make
-changes in various text files wherever certain patterns appear, and so on.
-To write a program to do these things in a language such as C or Pascal is a
-time-consuming inconvenience that may take many lines of code.  The job is
-easy with awk, especially the GNU implementation: Gawk.
-
-The awk utility interprets a special-purpose programming language that makes
-it possible to handle many data-reformatting jobs with just a few lines of
-code.")
+    "Gawk is the GNU implementation of Awk, a specialized programming
+language for the easy manipulation of formatted text, such as tables of data.
+ Gawk features many extensions beyond the traditional implementation,
+including network access, sorting, and large libraries.")
    (license gpl3+)))