summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2021-10-23 22:53:12 +0200
committerLudovic Courtès <ludo@gnu.org>2021-10-23 23:05:21 +0200
commit2dffe4767c64e00a2b97b71b9e2ac568ffc99595 (patch)
treef103a9611d8c02ea63d88f8f7b3c92ff8fd30201
parente5f21c7e38fc7c61271e532f434284c94cd6fbb3 (diff)
downloadguix-2dffe4767c64e00a2b97b71b9e2ac568ffc99595.tar.gz
gnu: Use 'search-input-file' some more.
This patch replaces occurrences of:

  (string-append (assoc-ref %build-inputs "…") "/…")

by:

  (search-input-file %build-inputs "/…")

* doc/guix.texi (Miscellaneous Services): Use 'search-input-file' in R
Shiny example.
* gnu/packages/admin.scm (screenfetch): Use 'search-input-file'.
(ufetch): Likewise.
(hosts): Likewise.
* gnu/packages/backup.scm (dirvish): Likewise.
* gnu/packages/code.scm (colormake): Likewise.
* gnu/packages/compression.scm (makeself-safeextract): Likewise.
* gnu/packages/debug.scm (scanmem): Likewise.
* gnu/packages/education.scm (snap): Likewise.
(omnitux): Likewise.
* gnu/packages/emacs-xyz.scm (epipe): Likewise.
* gnu/packages/games.scm (openttd-opensfx): Likewise.
(openttd-openmsx): Likewise.
(openrct2-title-sequences):  Likewise.
(openrct2-objects):  Likewise.
(mrrescue):  Likewise.
(0ad-data):  Likewise.
(xonotic-data):  Likewise.
(drascula):  Likewise.
(make-lure-package):  Likewise.
(make-queen-package):  Likewise.
(sky):  Likewise.
* gnu/packages/gnome.scm (network-manager): Likewise.
* gnu/packages/gnuzilla.scm (icedove): Likewise.
* gnu/packages/guile-xyz.scm (guile-shapefile): Likewise.
* gnu/packages/hurd.scm (netdde): Likewise.
* gnu/packages/javascript.scm (js-context-menu): Likewise.
(js-commander): Likewise.
(js-xmldom-sre): Likewise.
* gnu/packages/kde-frameworks.scm (krunner): Likewise.
* gnu/packages/kodi.scm (kodi-cli): Likewise.
* gnu/packages/libreoffice.scm (hunspell-dict-pl): Likewise.
* gnu/packages/linux.scm (e2fsck/static): Likewise.
* gnu/packages/markup.scm (markdown): Likewise.
* gnu/packages/maths.scm (hdf-java): Likewise.
* gnu/packages/multiprecision.scm (libtomcrypt): Likewise.
* gnu/packages/networking.scm (batctl): Likewise.
* gnu/packages/python-xyz.scm (python-pymediainfo): Likewise.
* gnu/packages/shells.scm (fish-foreign-env): Likewise.
* gnu/packages/tex.scm (texlive-fonts-iwona): Likewise.
* gnu/packages/upnp.scm (miniupnpc): Likewise.
* gnu/packages/version-control.scm (git-annex-remote-rclone): Likewise.
* gnu/packages/virtualization.scm (qemu): Likewise.
* gnu/packages/web.scm (icedtea-web): Likewise.
* gnu/packages/wm.scm (stumpish): Likewise.
-rw-r--r--doc/guix.texi3
-rw-r--r--gnu/packages/admin.scm12
-rw-r--r--gnu/packages/backup.scm3
-rw-r--r--gnu/packages/code.scm2
-rw-r--r--gnu/packages/compression.scm4
-rw-r--r--gnu/packages/debug.scm4
-rw-r--r--gnu/packages/education.scm18
-rw-r--r--gnu/packages/emacs-xyz.scm2
-rw-r--r--gnu/packages/games.scm43
-rw-r--r--gnu/packages/gnome.scm3
-rw-r--r--gnu/packages/gnuzilla.scm4
-rw-r--r--gnu/packages/guile-xyz.scm6
-rw-r--r--gnu/packages/hurd.scm4
-rw-r--r--gnu/packages/javascript.scm9
-rw-r--r--gnu/packages/kde-frameworks.scm4
-rw-r--r--gnu/packages/kodi.scm4
-rw-r--r--gnu/packages/libreoffice.scm4
-rw-r--r--gnu/packages/linux.scm3
-rw-r--r--gnu/packages/markup.scm3
-rw-r--r--gnu/packages/maths.scm4
-rw-r--r--gnu/packages/multiprecision.scm5
-rw-r--r--gnu/packages/networking.scm5
-rw-r--r--gnu/packages/python-xyz.scm5
-rw-r--r--gnu/packages/shells.scm9
-rw-r--r--gnu/packages/tex.scm3
-rw-r--r--gnu/packages/upnp.scm2
-rw-r--r--gnu/packages/version-control.scm6
-rw-r--r--gnu/packages/virtualization.scm12
-rw-r--r--gnu/packages/web.scm4
-rw-r--r--gnu/packages/wm.scm9
30 files changed, 87 insertions, 112 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 67a05a10ff..656dc357f5 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -33078,8 +33078,7 @@ The common way to create this file is as follows:
 (let* ((out       (assoc-ref %outputs "out"))
        (targetdir (string-append out "/share/" ,name))
        (app       (string-append out "/bin/" ,name))
-       (Rbin      (string-append (assoc-ref %build-inputs "r-min")
-                                 "/bin/Rscript")))
+       (Rbin      (search-input-file %build-inputs "/bin/Rscript")))
   ;; @dots{}
   (mkdir-p (string-append out "/bin"))
   (call-with-output-file app
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index af8f86e70b..419b78b2fb 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -3639,8 +3639,7 @@ you are running, what theme or icon set you are using, etc.")
                          (string-append out "/share/doc/" ,name "-" ,version))
            (substitute* (string-append out "/bin/screenfetch")
              (("/usr/bin/env bash")
-              (string-append (assoc-ref %build-inputs "bash")
-                             "/bin/bash")))
+              (search-input-file %build-inputs "/bin/bash")))
            (wrap-program
                (string-append out "/bin/screenfetch")
              `("PATH" ":" prefix
@@ -3650,8 +3649,9 @@ you are running, what theme or icon set you are using, etc.")
                                 (assoc-ref %build-inputs "xprop") "/bin"))))
            (substitute* (string-append out "/bin/screenfetch")
              (("#!#f")
-              (string-append "#!" (assoc-ref %build-inputs "bash")
-                             "/bin/bash")))))))
+              (string-append "#!"
+                             (search-input-file %build-inputs
+                                                "/bin/bash"))))))))
     (inputs
      `(("bash" ,bash)
        ("bc" ,bc)
@@ -3693,7 +3693,7 @@ everyone's screenshots nowadays.")
                   (output (assoc-ref %outputs "out"))
                   (bindir (string-append output "/bin"))
                   (docdir (string-append output "/share/doc/ufetch-" ,version))
-                  (tput (string-append (assoc-ref %build-inputs "tput") "/bin/tput")))
+                  (tput   (search-input-file %build-inputs "/bin/tput")))
              (install-file (string-append source "/LICENSE") docdir)
              (setenv "PATH" (string-append (assoc-ref %build-inputs "bash") "/bin"))
              (mkdir-p bindir)
@@ -4491,7 +4491,7 @@ text table representation to stdout.")
                            "\nPATH=" (getenv "PATH"))))
          ;; check phase
          (setenv "TERM" "linux") ;set to tty for test
-         (invoke (string-append (assoc-ref %build-inputs "bats") "/bin/bats")
+         (invoke (search-input-file %build-inputs "/bin/bats")
                  "test")
          ;; install phase
          (install-file "hosts" (string-append %output "/bin"))
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 37f32fa078..8c5ea07a9f 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -840,8 +840,7 @@ NTFS volumes using @code{ntfs-3g}, preserving NTFS-specific attributes.")
                     ;; You probably want a service with file(s) to point to.
                     (confdir "/etc/dirvish")
 
-                    (perl (string-append (assoc-ref %build-inputs "perl")
-                                         "/bin/perl"))
+                    (perl (search-input-file inputs "/bin/perl"))
                     (loadconfig.pl (call-with-input-file "loadconfig.pl"
                                      read-string)))
 
diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm
index 884283383d..cdd9e3306b 100644
--- a/gnu/packages/code.scm
+++ b/gnu/packages/code.scm
@@ -702,7 +702,7 @@ importantly we give you proper follow-symbol and find-references support.")
            (substitute* "colormake"
              (("colormake\\.pl") (string-append bin "/colormake.pl"))
              (("/bin/bash")
-              (string-append (assoc-ref %build-inputs "bash") "/bin/sh")))
+              (search-input-file %build-inputs "/bin/sh")))
            (install-file "colormake.1" (string-append doc "/man/man1"))
            (install-files '("AUTHORS" "BUGS" "ChangeLog" "README") doc)
            (install-files '("colormake" "colormake-short" "clmake"
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index a640019abb..0deb8f3e1c 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -2428,8 +2428,8 @@ at run time, and must be installed separately.")
                   (bin (string-append (assoc-ref %outputs "out") "/bin"))
                   (target (string-append bin "/" name))
                   (python (string-append (assoc-ref %build-inputs "python") "/bin"))
-                  (7z (string-append (assoc-ref %build-inputs "p7zip") "/bin/7z"))
-                  (unzip (string-append (assoc-ref %build-inputs "unzip") "/bin/unzip")))
+                  (7z (search-input-file %build-inputs "/bin/7z"))
+                  (unzip (search-input-file %build-inputs "/bin/unzip")))
              (setenv "PATH" (string-append (getenv "PATH") ":" python))
              (mkdir-p bin)
              (copy-file source target)
diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
index 6507c82fcc..fa3a449b7b 100644
--- a/gnu/packages/debug.scm
+++ b/gnu/packages/debug.scm
@@ -561,9 +561,7 @@ input.  Zzuf's behaviour is deterministic, making it easy to reproduce bugs.")
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (substitute* "gui/GameConqueror.py"
                (("/usr/bin/env python")
-                (string-append (assoc-ref %build-inputs
-                                          "python-wrapper") "/bin/python")))
-             #t))
+                (search-input-file inputs "/bin/python")))))
          (add-after 'install 'wrap-gameconqueror
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out               (assoc-ref outputs "out"))
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index 716f15a9db..9573a397fd 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -337,17 +337,16 @@ easy.")
            ;; Replace the sole minified file in the package.
            (with-directory-excursion (string-append share "/src")
              (delete-file "FileSaver.min.js")
-             (symlink (string-append (assoc-ref %build-inputs "js-filesaver")
-                                     "/share/javascript/FileSaver.min.js")
+             (symlink (search-input-file %build-inputs
+                                         "/share/javascript/FileSaver.min.js")
                       "FileSaver.min.js"))
            ;; Create a "snap" executable.
            (let* ((bin (string-append out "/bin"))
                   (script (string-append bin "/snap"))
                   (snap (string-append share "/snap.html"))
-                  (bash (string-append (assoc-ref %build-inputs "bash")
-                                       "/bin/sh"))
-                  (xdg-open (string-append (assoc-ref %build-inputs "xdg-utils")
-                                           "/bin/xdg-open")))
+                  (bash (search-input-file %build-inputs "/bin/sh"))
+                  (xdg-open (search-input-file %build-inputs
+                                               "/bin/xdg-open")))
              (mkdir-p bin)
              (call-with-output-file script
                (lambda (port)
@@ -589,10 +588,9 @@ letters of the alphabet, spelling, eye-hand coordination, etc.")
                ;; Install the launcher.
                (let* ((bin (string-append out "/bin"))
                       (script (string-append bin "/omnitux"))
-                      (bash (string-append (assoc-ref %build-inputs "bash")
-                                           "/bin/bash"))
-                      (python (string-append (assoc-ref %build-inputs "python")
-                                             "/bin/python2")))
+                      (bash (search-input-file %build-inputs "/bin/bash"))
+                      (python (search-input-file %build-inputs
+                                                 "/bin/python2")))
                  (mkdir-p bin)
                  (with-output-to-file script
                    (lambda ()
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index c8c914e283..c8515d729c 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -16394,7 +16394,7 @@ Features:
          ;; Patch shebangs.
          (substitute* "epipe"
            (("/usr/bin/env bash")
-            (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
+            (search-input-file %build-inputs "/bin/bash")))
          (patch-shebang "epipe.pl"
                         (list (string-append (assoc-ref %build-inputs "perl")
                                              "/bin")))
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 3909a6c5a9..c913d99334 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -4390,8 +4390,8 @@ OpenGFX provides you with...
     (arguments
      `(#:make-flags
        (list (string-append "DIR_NAME=opensfx")
-             (string-append "TAR=" (assoc-ref %build-inputs "tar")
-                            "/bin/tar"))
+             (string-append "TAR="
+                            (search-input-file %build-inputs "/bin/tar")))
        ;; The check phase only verifies md5sums, see openttd-opengfx.
        #:tests? #f
        #:phases
@@ -4440,8 +4440,8 @@ the original Transport Tycoon Deluxe.")
     (arguments
      `(#:make-flags
        (list (string-append "DIR_NAME=openmsx")
-             (string-append "TAR=" (assoc-ref %build-inputs "tar")
-                            "/bin/tar"))
+             (string-append "TAR="
+                            (search-input-file %build-inputs "/bin/tar")))
        ;; The check phase only verifies md5sums, see openttd-opengfx.
        #:tests? #f
        #:phases
@@ -4513,7 +4513,7 @@ Transport Tycoon Deluxe.")
                (openrct2-title-sequences (string-append out
                                          "/share/openrct2/title-sequences"))
                (source (assoc-ref %build-inputs "source"))
-               (unzip (string-append (assoc-ref %build-inputs "unzip") "/bin/unzip")))
+               (unzip (search-input-file %build-inputs "/bin/unzip")))
           (copy-file source (string-append ,name "-" ,version ".zip"))
           (invoke unzip (string-append ,name "-" ,version ".zip"))
           (delete-file (string-append ,name "-" ,version ".zip"))
@@ -4553,7 +4553,7 @@ Transport Tycoon Deluxe.")
                (openrct2-objects (string-append out
                                          "/share/openrct2/objects"))
                (source (assoc-ref %build-inputs "source"))
-               (unzip (string-append (assoc-ref %build-inputs "unzip") "/bin/unzip")))
+               (unzip (search-input-file %build-inputs "/bin/unzip")))
           (copy-file source (string-append ,name "-" ,version ".zip"))
           (invoke unzip (string-append ,name "-" ,version ".zip"))
           (delete-file (string-append ,name "-" ,version ".zip"))
@@ -5714,14 +5714,10 @@ colors, pictures, and sounds.")
                 (script (string-append out "/bin/" ,name))
                 (data   (string-append out "/share/" ,name))
                 (source (assoc-ref %build-inputs "source"))
-                (unzip  (string-append (assoc-ref %build-inputs "unzip")
-                                       "/bin/unzip"))
-                (patch  (string-append (assoc-ref %build-inputs "patch")
-                                       "/bin/patch"))
-                (bash   (string-append (assoc-ref %build-inputs "bash")
-                                       "/bin/bash"))
-                (love   (string-append (assoc-ref %build-inputs "love")
-                                       "/bin/love")))
+                (unzip  (search-input-file %build-inputs "/bin/unzip"))
+                (patch  (search-input-file %build-inputs "/bin/patch"))
+                (bash   (search-input-file %build-inputs "/bin/bash"))
+                (love   (search-input-file %build-inputs "/bin/love")))
 
            (mkdir-p (dirname script))
            (with-output-to-file script
@@ -6683,7 +6679,7 @@ fight against their plot and save his fellow rabbits from slavery.")
          (use-modules (guix build utils))
          (let ((out (assoc-ref %outputs "out"))
                (source (assoc-ref %build-inputs "source"))
-               (tar (string-append (assoc-ref %build-inputs "tar") "/bin/tar"))
+               (tar (search-input-file %build-inputs "/bin/tar"))
                (xz-path (string-append (assoc-ref %build-inputs "xz") "/bin")))
            (setenv "PATH" xz-path)
            (mkdir out)
@@ -7758,7 +7754,7 @@ quotation from a collection of quotes.")
          (let* ((out (assoc-ref %outputs "out"))
                 (xonotic (string-append out "/share/xonotic"))
                 (source (assoc-ref %build-inputs "source"))
-                (unzip (string-append (assoc-ref %build-inputs "unzip") "/bin/unzip")))
+                (unzip (search-input-file %build-inputs "/bin/unzip")))
            (copy-file source (string-append ,name "-" ,version ".zip"))
            (invoke unzip (string-append ,name "-" ,version ".zip"))
            (mkdir-p out)
@@ -9547,8 +9543,7 @@ on items and player adaptability for character progression.")
                 (share (string-append out "/share/drascula"))
                 (scummvm (assoc-ref %build-inputs "scummvm")))
            ;; Install data.
-           (let ((unzip (string-append (assoc-ref %build-inputs "unzip")
-                                       "/bin/unzip"))
+           (let ((unzip (search-input-file %build-inputs "/bin/unzip"))
                  (doc (string-append out "/share/doc/" ,name "-" ,version)))
              (for-each
               (lambda (input)
@@ -9574,8 +9569,7 @@ on items and player adaptability for character progression.")
            ;; Create standalone executable.
            (let* ((bin (string-append out "/bin"))
                   (executable (string-append bin "/drascula"))
-                  (bash (string-append (assoc-ref %build-inputs "bash")
-                                       "/bin/bash")))
+                  (bash (search-input-file %build-inputs "/bin/bash")))
              (mkdir-p bin)
              (with-output-to-file executable
                (lambda ()
@@ -9665,8 +9659,7 @@ the World and demonstrating that he is even more evil than his brother Vlad.")
                 (bin (string-append out "/bin"))
                 (executable (string-append bin "/" ,name))
                 (scummvm (assoc-ref %build-inputs "scummvm")))
-           (let ((unzip (string-append (assoc-ref %build-inputs "unzip")
-                                       "/bin/unzip")))
+           (let ((unzip (search-input-file %build-inputs "/bin/unzip")))
              (invoke unzip "-j" (assoc-ref %build-inputs "source")))
            (let ((doc (string-append share "/doc/" ,name "-" ,version)))
              (for-each (lambda (f) (install-file f doc))
@@ -9772,8 +9765,7 @@ Skorl.  Maybe it would be an idea to try and escape...")
                 (bin (string-append out "/bin"))
                 (executable (string-append bin "/" ,name))
                 (scummvm (assoc-ref %build-inputs "scummvm")))
-           (let ((unzip (string-append (assoc-ref %build-inputs "unzip")
-                                       "/bin/unzip")))
+           (let ((unzip (search-input-file %build-inputs "/bin/unzip")))
              (invoke unzip "-j" (assoc-ref %build-inputs "source")))
            (let ((doc (string-append share "/doc/" ,name "-" ,version)))
              (install-file "readme.txt" doc))
@@ -9871,8 +9863,7 @@ women and 6-foot-tall pygmies.")
                 (bin (string-append out "/bin"))
                 (executable (string-append bin "/" ,name))
                 (scummvm (assoc-ref %build-inputs "scummvm")))
-           (let ((unzip (string-append (assoc-ref %build-inputs "unzip")
-                                       "/bin/unzip")))
+           (let ((unzip (search-input-file %build-inputs "/bin/unzip")))
              (invoke unzip "-j" (assoc-ref %build-inputs "source")))
            (let ((doc (string-append share "/doc/bass-" ,version)))
              (install-file "readme.txt" doc))
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 2fc27cf22b..b3553196dd 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -7713,8 +7713,7 @@ users.")
     (arguments
      `(#:configure-flags
        (let ((out      (assoc-ref %outputs "out"))
-             (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
-                                      "/sbin/dhclient")))
+             (dhclient (search-input-file %build-inputs "/sbin/dhclient")))
          (list
           ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
           ;; component.
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index d32815b7ce..ce53695f87 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -1457,9 +1457,7 @@ standards of the IceCat project.")
                     (mozconfig (string-append (getcwd) "/.mozconfig")))
                (setenv "SHELL" bash)
                (setenv "AUTOCONF"
-                       (string-append (assoc-ref %build-inputs
-                                                 "autoconf")
-                                      "/bin/autoconf"))
+                       (search-input-file %build-inputs "/bin/autoconf"))
                (setenv "CONFIG_SHELL" bash)
                (setenv "QA_CONFIGURE_OPTIONS" ".*")
                (setenv "MOZBUILD_STATE_PATH"
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 6ac1b7c5a2..3c93779209 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -4623,12 +4623,12 @@ including parsing and code generation.")
              (delete-file-recursively "docs")
              #t))
          (add-after 'install 'install-info-documentation
-           (lambda* (#:key outputs #:allow-other-keys)
+           (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((share (string-append (assoc-ref outputs "out") "/share"))
                     (doc (string-append share "/doc/" ,name "-" ,version))
                     (info (string-append share "/info/"))
-                    (makeinfo (string-append (assoc-ref %build-inputs "texinfo")
-                                             "/bin/makeinfo")))
+                    (makeinfo (search-input-file inputs
+                                                 "/bin/makeinfo")))
                (invoke makeinfo "guile-shapefile.texi" "-o" info)
                #t))))))
     (inputs
diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
index f30192961c..1e6af1029f 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -581,8 +581,8 @@ implementing them.")
       (build-system gnu-build-system)
       (arguments
        `(#:make-flags
-         (list (string-append "SHELL=" (assoc-ref %build-inputs "bash")
-                              "/bin/bash")
+         (list (string-append "SHELL="
+                              (search-input-file %build-inputs "/bin/bash"))
                "PKGDIR=libdde_linux26"
                ,@(if (%current-target-system)
                      (list "CC=i586-pc-gnu-gcc"
diff --git a/gnu/packages/javascript.scm b/gnu/packages/javascript.scm
index cdf9dd19fa..694b12adae 100644
--- a/gnu/packages/javascript.scm
+++ b/gnu/packages/javascript.scm
@@ -80,8 +80,7 @@
          (use-modules (guix build utils))
          (chdir (assoc-ref %build-inputs "source"))
          (let ((target (string-append %output "/share/javascript/context-menu")))
-           (apply invoke (string-append (assoc-ref %build-inputs "esbuild")
-                                        "/bin/esbuild")
+           (apply invoke (search-input-file %build-inputs "/bin/esbuild")
                   "--bundle"
                   "--tsconfig=tsconfig.json"
                   (string-append "--outdir=" target)
@@ -209,8 +208,7 @@ be able to view it naturally and easily.")))
        (begin
          (use-modules (guix build utils))
          (chdir (assoc-ref %build-inputs "source"))
-         (let ((esbuild (string-append (assoc-ref %build-inputs "esbuild")
-                                       "/bin/esbuild"))
+         (let ((esbuild (search-input-file %build-inputs "/bin/esbuild"))
                (target (string-append %output "/share/javascript/commander")))
            (invoke esbuild
                    "--bundle"
@@ -251,8 +249,7 @@ command-line interfaces.  ")
          (begin
            (use-modules (guix build utils))
            (chdir (assoc-ref %build-inputs "source"))
-           (let ((esbuild (string-append (assoc-ref %build-inputs "esbuild")
-                                         "/bin/esbuild"))
+           (let ((esbuild (search-input-file %build-inputs "/bin/esbuild"))
                  (target (string-append %output "/share/javascript/xmldom-sre")))
              (invoke esbuild
                      "--bundle"
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 83bf7bd95a..f7af1f58a9 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -3070,8 +3070,8 @@ to easily extend the contacts collection.")
              (substitute* "autotests/runnercontexttest.cpp"
                (("/home\"") "/tmp\"") ;; single path-part
                (("//usr/bin\"") (string-append (getcwd) "\"")) ;; multiple path-parts
-               (("/bin/ls" path)
-                (string-append (assoc-ref %build-inputs "coreutils") path)))))
+               (("/bin/ls")
+                (search-input-file %build-inputs "/bin/ls")))))
          (add-before 'check 'check-setup
            (lambda _
              (setenv "HOME" (getcwd))
diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm
index 0ed5d829fb..2c641b85a0 100644
--- a/gnu/packages/kodi.scm
+++ b/gnu/packages/kodi.scm
@@ -508,8 +508,8 @@ plug-in system.")
            (use-modules (guix build utils))
            (copy-recursively (assoc-ref %build-inputs "source") ".")
            (substitute* "kodi-cli"
-             (("/bin/bash") (string-append (assoc-ref %build-inputs "bash")
-                                           "/bin/bash"))
+             (("/bin/bash")
+              (search-input-file %build-inputs "/bin/bash"))
              (("output=\\$\\((curl)" all curl)
               (string-append "output=$("
                              (assoc-ref %build-inputs "curl")
diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index 4ce833aa2c..ab75650481 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -972,8 +972,8 @@ library.")
                           (myspell  (string-append out "/share/myspell"))
                           (doc      (string-append out "/share/doc/"
                                                    ,name))
-                          (unzip (string-append (assoc-ref %build-inputs "unzip")
-                                                "/bin/unzip")))
+                          (unzip (search-input-file %build-inputs
+                                                    "/bin/unzip")))
                      (invoke unzip "-j" "-o" (assoc-ref %build-inputs "source"))
                      (invoke unzip "-j" "-o" "pl_PL.zip")
                      (for-each (cut install-file <> hunspell)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 669db96602..83761e5955 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -2287,8 +2287,7 @@ module.")
                       (ice-9 ftw)
                       (srfi srfi-26))
 
-         (let ((e2fsck (string-append (assoc-ref %build-inputs "e2fsprogs")
-                                      "/sbin/e2fsck"))
+         (let ((e2fsck (search-input-file %build-inputs "/sbin/e2fsck"))
                (bin    (string-append (assoc-ref %outputs "out") "/sbin")))
            (mkdir-p bin)
            (with-directory-excursion bin
diff --git a/gnu/packages/markup.scm b/gnu/packages/markup.scm
index 368976bfde..359b8c47e8 100644
--- a/gnu/packages/markup.scm
+++ b/gnu/packages/markup.scm
@@ -90,8 +90,7 @@ processing library written in C.")
          (let ((source (assoc-ref %build-inputs "source"))
                (out    (assoc-ref %outputs "out"))
                (perlbd (string-append (assoc-ref %build-inputs "perl") "/bin"))
-               (unzip  (string-append (assoc-ref %build-inputs "unzip")
-                                      "/bin/unzip")))
+               (unzip  (search-input-file %build-inputs "/bin/unzip")))
            (mkdir-p out)
            (with-directory-excursion out
              (invoke unzip source)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index dc4d7f677c..9bfb7bc75e 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -1381,9 +1381,9 @@ extremely large and complex data collections.")
        #:make-flags
        (list (string-append "HDFLIB=" (assoc-ref %build-inputs "hdf4") "/lib")
              (string-append "HDF5LIB=" (assoc-ref %build-inputs "hdf5") "/lib")
-             (string-append "ZLIB=" (assoc-ref %build-inputs "zlib") "/lib/libz.so")
+             (string-append "ZLIB=" (search-input-file %build-inputs "/lib/libz.so"))
              (string-append "JPEGLIB="
-                            (assoc-ref %build-inputs "libjpeg") "/lib/libjpeg.so")
+                            (search-input-file %build-inputs "/lib/libjpeg.so"))
              "LLEXT=so")
 
        #:phases
diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm
index 163632769f..bc03427e0a 100644
--- a/gnu/packages/multiprecision.scm
+++ b/gnu/packages/multiprecision.scm
@@ -379,8 +379,9 @@ multiplies.")
        #:make-flags
        (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
              "CFLAGS += -DLTM_DESC -DUSE_LTM"
-             (string-append "EXTRALIBS=" (assoc-ref %build-inputs "libtommath")
-                            "/lib/libtommath.so")
+             (string-append "EXTRALIBS="
+                            (search-input-file %build-inputs
+                                               "/lib/libtommath.so"))
              (string-append "CC=" ,(cc-for-target)))))
     (native-inputs
      `(("libtool" ,libtool)))
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 76d72a9a0b..260399e253 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -3701,8 +3701,9 @@ written (and providing API) in C.  Current implementation covers YANG 1.0 (RFC
       #:phases (modify-phases %standard-phases (delete 'configure))
       #:make-flags
       (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
-            (string-append "PKG_CONFIG=" (assoc-ref %build-inputs "pkg-config")
-                           "/bin/pkg-config")
+            (string-append "PKG_CONFIG="
+                           (search-input-file %build-inputs
+                                              "/bin/pkg-config"))
             ,(string-append "CC=" (cc-for-target)))))
    (home-page "https://www.open-mesh.org/projects/batman-adv/wiki/Wiki")
    (synopsis "Management tool for the mesh networking BATMAN protocol")
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index fa1fec6b5b..178ebf4ae3 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -936,9 +936,8 @@ to CommonMark.")
            (lambda _
              (substitute* "pymediainfo/__init__.py"
                (("libmediainfo.so.0")
-                (string-append (assoc-ref %build-inputs "libmediainfo")
-                               "/lib/libmediainfo.so.0")))
-             #t))
+                (search-input-file %build-inputs
+                                   "/lib/libmediainfo.so.0")))))
          (replace 'check
            (lambda* (#:key tests? #:allow-other-keys)
              (when tests?
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index 6f8f515096..acc5ac9e49 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -297,12 +297,13 @@ and syntax highlighting.")
                           ,(string-append func-path "/fenv.apply.fish")
                           ,(string-append func-path "/fenv.main.fish"))
              (("bash")
-              (string-append (assoc-ref %build-inputs "bash") "/bin/bash"))
+              (search-input-file %build-inputs "/bin/bash"))
              (("sed")
-              (string-append (assoc-ref %build-inputs "sed") "/bin/sed"))
+              (search-input-file %build-inputs "/bin/sed"))
              ((" tr ")
-              (string-append " " (assoc-ref %build-inputs "coreutils")
-                             "/bin/tr ")))))))
+              (string-append " "
+                             (search-input-file %build-inputs "/bin/tr")
+                             " ")))))))
     (inputs
      `(("bash" ,bash)
        ("coreutils" ,coreutils)
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index 60f199a857..bf427f1594 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -6132,8 +6132,7 @@ TeX metrics (VF and TFM files) and macros for use with LaTeX.")
          (use-modules (guix build utils))
          (let ((target (string-append (assoc-ref %outputs "out")
                                       "/share/texmf-dist/"))
-               (unzip  (string-append (assoc-ref %build-inputs "unzip")
-                                      "/bin/unzip")))
+               (unzip  (search-input-file %build-inputs "/bin/unzip")))
            (invoke unzip (assoc-ref %build-inputs "source"))
            (mkdir-p target)
            (copy-recursively "iwona" target)
diff --git a/gnu/packages/upnp.scm b/gnu/packages/upnp.scm
index ffdebdf1de..6dded5e0d2 100644
--- a/gnu/packages/upnp.scm
+++ b/gnu/packages/upnp.scm
@@ -63,7 +63,7 @@
      ;; the configure phase.
      `(#:make-flags
        (list
-        (string-append "SH=" (assoc-ref %build-inputs "bash") "/bin/sh")
+        (string-append "SH=" (search-input-file %build-inputs "/bin/sh"))
         (string-append "INSTALLPREFIX=" (assoc-ref %outputs "out"))
         ,(string-append "CC=" (cc-for-target))
 
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index ef0fe869cd..3bd087d672 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -2553,10 +2553,8 @@ Features include:
        #:builder
        (begin
          (use-modules (guix build utils))
-         (let ((bash (string-append (assoc-ref %build-inputs "bash")
-                                    "/bin/bash"))
-               (rclone (string-append (assoc-ref %build-inputs "rclone")
-                                      "/bin/rclone")))
+         (let ((bash (search-input-file %build-inputs "/bin/bash"))
+               (rclone (search-input-file %build-inputs "/bin/rclone")))
            (copy-file (string-append (assoc-ref %build-inputs "source")
                                      "/git-annex-remote-rclone")
                       "git-annex-remote-rclone")
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index ce5d6cfa6f..9d005eec52 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -173,7 +173,7 @@
      `(#:tests? ,(or (%current-target-system)
                      (not (string=? "i686-linux" (%current-system))))
        #:configure-flags
-       (let ((gcc (string-append (assoc-ref %build-inputs "gcc") "/bin/gcc"))
+       (let ((gcc (search-input-file %build-inputs "/bin/gcc"))
              (out (assoc-ref %outputs "out")))
          (list (string-append "--cc=" gcc)
                ;; Some architectures insist on using HOST_CC.
@@ -1535,10 +1535,12 @@ domains, their live performance and resource utilization statistics.")
        (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
              (string-append "LIBDIR=" (assoc-ref %outputs "out")
                             "/lib")
-             (string-append "ASCIIDOC=" (assoc-ref %build-inputs "asciidoc")
-                            "/bin/asciidoc")
-             (string-append "XMLTO=" (assoc-ref %build-inputs "xmlto")
-                            "/bin/xmlto"))
+             (string-append "ASCIIDOC="
+                            (search-input-file %build-inputs
+                                               "/bin/asciidoc"))
+             (string-append "XMLTO="
+                            (search-input-file %build-input
+                                               "/bin/xmlto")))
        #:phases
        (modify-phases %standard-phases
          (replace 'configure
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index fc7a5ac7bc..bb52eeab82 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -1011,8 +1011,8 @@ and UNIX socket support.")
     (arguments
      `(#:configure-flags
        (list  "--disable-plugin"         ;NPAPI plugins are obsolete nowadays.
-             (string-append "BIN_BASH=" (assoc-ref %build-inputs "bash")
-                            "/bin/bash")
+              (string-append "BIN_BASH="
+                             (search-input-file %build-inputs "/bin/bash"))
              (string-append "--with-jdk-home=" (assoc-ref %build-inputs "jdk")))))
     (outputs '("out" "doc"))
     (native-inputs
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index eb03b3637b..acb593ade2 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -1932,12 +1932,9 @@ productive, customizable lisp based systems.")
          (copy-recursively (assoc-ref %build-inputs "source") ".")
          (chdir "util/stumpish")
          (substitute* "stumpish"
-           (("rlwrap") (string-append (assoc-ref %build-inputs "rlwrap")
-                                      "/bin/rlwrap"))
-           (("xprop") (string-append (assoc-ref %build-inputs "xprop")
-                                      "/bin/xprop"))
-           (("/bin/sh") (string-append (assoc-ref %build-inputs "bash")
-                                       "/bin/bash")))
+           (("rlwrap") (search-input-file %build-inputs "/bin/rlwrap"))
+           (("xprop") (search-input-file %build-inputs "/bin/xprop"))
+           (("/bin/sh") (search-input-file %build-inputs "/bin/bash")))
          (install-file "stumpish" (string-append %output "/bin")))))
     (home-page "https://github.com/stumpwm/stumpwm-contrib")
     (synopsis "StumpWM interactive shell")