Subject: [bug#39091] [PATCH] gnu: entr: Fix references to external programs

From: Jakub Kądziołka <[email-masked]>
Date: Sat, 11 Jan 2020 19:11:44 +0100

* gnu/packages/entr.scm (entr)[remove-fhs-file-names]: Use (which)
  instead of relying on the runtime PATH. Patch the path for /bin/sh
  too.
* gnu/packages/entr.scm (entr)[inputs]: Add a dependency on ncurses to
  get the path of the clear binary it provides.
---
 gnu/packages/entr.scm | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/entr.scm b/gnu/packages/entr.scm
index d0111452df..3b006e2d85 100644
--- a/gnu/packages/entr.scm
+++ b/gnu/packages/entr.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2016 Ludovic Courtès <[email-masked]>
 ;;; Copyright © 2019 Ricardo Wurmus <[email-masked]>
 ;;; Copyright © 2019 Tobias Geerinckx-Rice <[email-masked]>
+;;; Copyright © 2020 Jakub Kądziołka <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,6 +21,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages entr)
+  #:use-module (gnu packages ncurses)
   #:use-module (guix licenses)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -52,11 +54,13 @@
                (invoke "./configure"))))
          (add-before 'build 'remove-fhs-file-names
            (lambda _
-             ;; Use the tools available in $PATH.
              (substitute* "entr.c"
-               (("/bin/cat") "cat")
-               (("/usr/bin/clear") "clear"))
+               (("/bin/sh") (which "sh"))
+               (("/bin/cat") (which "cat"))
+               (("/usr/bin/clear") (which "clear")))
              #t)))))
+    ;; ncurses provides the `clear' binary
+    (inputs `(("ncurses" ,ncurses)))
     (home-page "http://entrproject.org/")
     (synopsis "Run arbitrary commands when files change")
     (description
-- 
2.24.1