From 1063d325ea76aa2b00dfcd3d436b16e412103df1 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 20 Aug 2016 21:40:59 -0400 Subject: [PATCH] gnu: grep: Fix egrep/fgrep to work regardless of PATH. * gnu/packages/base.scm (grep)[arguments]: New field. Add 'fix-egrep-and-fgrep' phase. --- gnu/packages/base.scm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 8c470c318f..58a8e52e4b 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -88,6 +88,20 @@ command-line arguments, multiple languages, and so on.") (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