;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
;;;
(define-module (gnu packages gawk)
#:use-module (guix licenses)
+ #:use-module (gnu packages)
#:use-module (gnu packages bash)
#:use-module (gnu packages libsigsegv)
#:use-module (guix packages)
(define-public gawk
(package
(name "gawk")
- (version "4.1.0")
+ (version "4.1.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gawk/gawk-" version
".tar.xz"))
(sha256
- (base32 "0hin2hswbbd6kd6i4zzvgciwpl5fba8d2s524z8y5qagyz3x010q"))))
+ (base32 "0rn2mmjxm767zliqzd67j7h2ncjn4j0321c60y9fy3grs3i89qak"))))
(build-system gnu-build-system)
(arguments
`(#:parallel-tests? #f ; test suite fails in parallel
- #:phases (alist-cons-before
- 'configure 'set-shell-file-name
- (lambda* (#:key inputs #:allow-other-keys)
- ;; Refer to the right shell.
- (let ((bash (assoc-ref inputs "bash")))
- (substitute* "io.c"
- (("/bin/sh")
- (string-append bash "/bin/bash")))
+ #:phases (modify-phases %standard-phases
+ (add-before 'configure 'set-shell-file-name
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Refer to the right shell.
+ (let ((bash (assoc-ref inputs "bash")))
+ (substitute* "io.c"
+ (("/bin/sh")
+ (string-append bash "/bin/sh")))
+
+ ;; 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))))
+ '()))))
+
+ (add-before 'check 'adjust-test-infrastructure
+ (lambda _
+ ;; Remove dependency on 'more' (from util-linux), which
+ ;; would needlessly complicate bootstrapping.
+ (substitute* "test/Makefile"
+ (("\\| more") ""))
+
+ ;; Adjust the shebang in that file since it is then diff'd
+ ;; against the actual test output.
+ (substitute* "test/watchpoint1.ok"
+ (("#! /usr/bin/gawk")
+ (string-append "#!" (which "gawk"))))
+ #t)))))
- ;; 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))))
- '())))
- %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")
+ (home-page "https://www.gnu.org/software/gawk/")
+ (synopsis "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+)))