gnu: grep: Fix egrep/fgrep to work regardless of PATH.

* gnu/packages/base.scm (grep)[arguments]: New field.  Add
'fix-egrep-and-fgrep' phase.
This commit is contained in:
Mark H Weaver 2016-08-20 21:40:59 -04:00
parent 5cbc24de44
commit 1063d325ea
No known key found for this signature in database
GPG key ID: 7CEF29847562C516

View file

@ -88,6 +88,20 @@ (define-public grep
(patches (search-patches "grep-timing-sensitive-test.patch"))))
(build-system gnu-build-system)
(native-inputs `(("perl" ,perl))) ;some of the tests require it
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'install 'fix-egrep-and-fgrep
;; Patch 'egrep' and 'fgrep' to execute 'grep' via its
;; absolute file name instead of searching for it in $PATH.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(substitute* (list (string-append bin "/egrep")
(string-append bin "/fgrep"))
(("^exec grep")
(string-append "exec " bin "/grep")))
#t))))))
(synopsis "Print lines matching a pattern")
(description
"grep is a tool for finding text inside files. Text is found by