gnu: Use 'search-input-file' when looking for executables.

* gnu/packages/admin.scm (isc-dhcp): Use 'search-input-file' when
looking for executables.
* gnu/packages/audio.scm (ableton-link): Likewise.
* gnu/packages/benchmark.scm (fio): Likewise.
* gnu/packages/bioinformatics.scm (roary): Likewise.
(ngless): Likewise.
* gnu/packages/boost.scm (boost-for-irods): Likewise.
* gnu/packages/bootloaders.scm (grub): Likewise.
(grub-efi): Likewise.
* gnu/packages/chemistry.scm (inchi): Likewise.
* gnu/packages/dictionaries.scm (ding): Likewise.
* gnu/packages/dlang.scm (ldc): Likewise.
* gnu/packages/education.scm (childsplay): Likewise.
* gnu/packages/emacs-xyz.scm (emacs-hyperbole): Likewise.
(emacs-haskell-mode): Likewise.
(emacs-auctex): Likewise.
(emacs-ggtags): Likewise.
(emacs-graphviz-dot-mode): Likewise.
(emacs-flycheck-grammalecte): Likewise.
(emacs-counsel-notmuch): Likewise.
(emacspeak): Likewise.
(emacs-exwm): Likewise.
(emacs-exwm-x): Likewise.
(emacs-treemacs): Likewise.
(emacs-telega): Likewise.
(emacs-exiftool): Likewise.
* gnu/packages/emulators.scm (higan): Likewise.
* gnu/packages/engineering.scm (freehdl): Likewise.
(librepcb): Likewise.
* gnu/packages/entr.scm (entr): Likewise.
* gnu/packages/file-systems.scm (libeatmydata): Likewise.
(xfstests): Likewise.
(mergerfs): Likewise.
(mergerfs-tools): Likewise.
* gnu/packages/finance.scm (monero-gui): Likewise.
* gnu/packages/flashing-tools.scm (flashrom): Likewise.
* gnu/packages/fontutils.scm (fontforge): Likewise.
* gnu/packages/game-development.scm (python2-renpy): Likewise.
* gnu/packages/games.scm (opensurge): Likewise.
(xboard): Likewise.
(hyperrogue): Likewise.
(flare-game): Likewise.
(chessx): Likewise.
* gnu/packages/geo.scm (grass): Likewise.
* gnu/packages/glib.scm (glib): Likewise.
* gnu/packages/gnome.scm (mm-common): Likewise.
(network-manager-openvpn): Likewise.
(network-manager-vpnc): Likewise.
(network-manager-openconnect): Likewise.
(apostrophe): Likewise.
* gnu/packages/gnupg.scm (pius): Likewise.
(jetring): Likewise.
* gnu/packages/gnuzilla.scm (icedove): Likewise.
* gnu/packages/golang.scm (go-1.4): Likewise.
* gnu/packages/graphviz.scm (xdot): Likewise.
* gnu/packages/guile-xyz.scm (jupyter-guile-kernel): Likewise.
* gnu/packages/haskell-xyz.scm (ghc-hindent): Likewise.
* gnu/packages/ibus.scm (ibus): Likewise.
* gnu/packages/image.scm (phockup): Likewise.
* gnu/packages/irc.scm (quassel): Likewise.
* gnu/packages/java.scm (drip): Likewise.
(ant-bootstrap): Likewise.
(tla2tools): Likewise.
* gnu/packages/julia.scm (julia): Likewise.
* gnu/packages/less.scm (lesspipe): Likewise.
* gnu/packages/libreoffice.scm (libreoffice): Likewise.
* gnu/packages/linux.scm (fuse): Likewise.
(lm-sensors): Likewise.
(bluez): Likewise.
(fakeroot): Likewise.
(inputattach): Likewise.
* gnu/packages/lisp-xyz.scm (sbcl-cl-diskspace): Likewise.
* gnu/packages/lisp.scm (lisp-repl-core-dumper): Likewise.
* gnu/packages/lua.scm (fennel): Likewise.
* gnu/packages/lxde.scm (spacefm): Likewise.
* gnu/packages/mail.scm (public-inbox): Likewise.
* gnu/packages/maths.scm (hdf-java): Likewise.
(maxima): Likewise.
(frama-c): Likewise.
* gnu/packages/messaging.scm (libgadu): Likewise.
* gnu/packages/music.scm (denemo): Likewise.
(curseradio): Likewise.
* gnu/packages/netpbm.scm (netpbm): Likewise.
* gnu/packages/networking.scm (blueman): Likewise.
(squid): Likewise.
(aircrack-ng): Likewise.
* gnu/packages/node.scm (node): Likewise.
(node-llparse-frontend-bootstrap): Likewise.
(node-llparse-bootstrap): Likewise.
(llhttp-bootstrap): Likewise.
(node-lts): Likewise.
* gnu/packages/ocaml.scm (ocaml-4.11): Likewise.
(opam): Likewise.
(ocaml-graph): Likewise.
* gnu/packages/orpheus.scm (orpheus): Likewise.
* gnu/packages/password-utils.scm (password-store): Likewise.
* gnu/packages/python.scm (pypy3): Likewise.
* gnu/packages/qt.scm (qt5ct): Likewise.
* gnu/packages/radio.scm (libosmo-dsp): Likewise.
* gnu/packages/ruby.scm (ruby-pandoc-ruby): Likewise.
* gnu/packages/rust.scm (rust-1.30): Likewise.
* gnu/packages/screen.scm (byobu): Likewise.
* gnu/packages/statistics.scm (r-with-tests): Likewise.
* gnu/packages/suckless.scm (surf): Likewise.
* gnu/packages/syndication.scm (gfeeds): Likewise.
* gnu/packages/telephony.scm (mumble): Likewise.
* gnu/packages/terminals.scm (alacritty): Likewise.
* gnu/packages/tex.scm (texlive-bin): Likewise.
* gnu/packages/uml.scm (plantuml): Likewise.
* gnu/packages/version-control.scm (python-git-multimail): Likewise.
(gitolite): Likewise.
(hg-commitsigs): Likewise.
(git-when-merged): Likewise.
(git-imerge): Likewise.
(gita): Likewise.
* gnu/packages/video.scm (you-get): Likewise.
* gnu/packages/vim.scm (eovim): Likewise.
* gnu/packages/virtualization.scm (qemu): Likewise.
(virt-manager): Likewise.
(criu): Likewise.
* gnu/packages/vpn.scm (strongswan): Likewise.
(xl2tpd): Likewise.
* gnu/packages/wm.scm (i3lock-fancy): Likewise.
* gnu/packages/wxwidgets.scm (python-wxpython): Likewise.
(python2-wxpython): Likewise.
* gnu/packages/xdisorg.scm (autorandr): Likewise.
* gnu/packages/xorg.scm (hackneyed-x11-cursors): Likewise.
(v86d): Likewise.
(mkfontdir): Likewise.
(xpra): Likewise.
This commit is contained in:
Ludovic Courtès 2021-07-16 16:50:56 +02:00
parent 377e9453ca
commit bc64d9554b
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
73 changed files with 279 additions and 397 deletions

View File

@ -1259,8 +1259,7 @@ connection alive.")
(sed (assoc-ref inputs "sed*")))
(substitute* "client/scripts/linux"
(("/sbin/ip")
(string-append (assoc-ref inputs "iproute")
"/sbin/ip")))
(search-input-file inputs "/sbin/ip")))
(mkdir-p libexec)
(copy-file "client/scripts/linux"
@ -1561,8 +1560,7 @@ at once based on a Perl regular expression.")
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "rc/rc"
(("/usr/sbin/sendmail")
(string-append (assoc-ref inputs "mailutils")
"/bin/mail")))
(search-input-file inputs "/bin/mail")))
#t))
(add-after 'unpack 'fix-configure
(lambda* (#:key inputs native-inputs #:allow-other-keys)

View File

@ -5223,11 +5223,10 @@ Rate} 3600x2250 bit/s vocoder used in various radio systems.")
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs #:allow-other-keys)
(let* ((python (string-append (assoc-ref inputs "python")
"/bin/python3"))
(run-tests (string-append "../ableton-link-"
,version
"-checkout/ci/run-tests.py")))
(let* ((python (search-input-file inputs "/bin/python3"))
(run-tests (string-append "../ableton-link-"
,version
"-checkout/ci/run-tests.py")))
(invoke python run-tests "--target" "LinkCoreTest")
(invoke python run-tests "--target" "LinkDiscoveryTest"))))
(add-before 'install 'patch-cmake

View File

@ -69,8 +69,7 @@
'unpack 'patch-paths
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(gnuplot (string-append (assoc-ref inputs "gnuplot")
"/bin/gnuplot")))
(gnuplot (search-input-file inputs "/bin/gnuplot")))
(substitute* "tools/plot/fio2gnuplot"
(("/usr/share/fio") (string-append out "/share/fio"))
;; FIXME (upstream): The 'gnuplot' executable is used inline

View File

@ -5704,7 +5704,7 @@ partial genes, and identifies translation initiation sites.")
(string-append out "/bin/roary-create_pan_genome_plots.R"))
(r-site-lib (getenv "R_LIBS_SITE"))
(coreutils-path
(string-append (assoc-ref inputs "coreutils") "/bin")))
(dirname (search-input-file inputs "bin/chmod"))))
(wrap-program file
`("R_LIBS_SITE" ":" prefix
(,(string-append r-site-lib ":" out "/site-library/"))))
@ -12285,17 +12285,13 @@ datasets.")
(add-after 'install 'link-tools
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
(symlink (string-append (assoc-ref inputs "prodigal")
"/bin/prodigal")
(symlink (search-input-file inputs "/bin/prodigal")
(string-append bin "ngless-" ,version "-prodigal"))
(symlink (string-append (assoc-ref inputs "minimap2")
"/bin/minimap2")
(symlink (search-input-file inputs "/bin/minimap2")
(string-append bin "ngless-" ,version "-minimap2"))
(symlink (string-append (assoc-ref inputs "samtools")
"/bin/samtools")
(symlink (search-input-file inputs "/bin/samtools")
(string-append bin "ngless-" ,version "-samtools"))
(symlink (string-append (assoc-ref inputs "bwa")
"/bin/bwa")
(symlink (search-input-file inputs "/bin/bwa")
(string-append bin "ngless-" ,version "-bwa"))
#t))))))
(inputs

View File

@ -3,7 +3,7 @@
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
@ -252,7 +252,7 @@ across a broad spectrum of applications.")
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((icu (assoc-ref inputs "icu4c"))
(out (assoc-ref outputs "out"))
(sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
(sh (search-input-file inputs "/bin/sh")))
(substitute* '("libs/config/configure"
"libs/spirit/classic/phoenix/test/runtest.sh"
"tools/build/src/engine/execunix.c"

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
@ -139,9 +139,9 @@
;; Give the absolute file name of 'ckbcomp'.
(substitute* "util/grub-kbdcomp.in"
(("^ckbcomp ")
(string-append (assoc-ref inputs "console-setup")
"/bin/ckbcomp ")))
#t))
(string-append
(search-input-file inputs "/bin/ckbcomp")
" ")))))
(add-after 'unpack 'set-freetype-variables
;; These variables need to be set to the native versions
;; of the dependencies because they are used to build
@ -315,9 +315,8 @@ menu to select one of the installed operating systems.")
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "grub-core/osdep/unix/platform.c"
(("efibootmgr")
(string-append (assoc-ref inputs "efibootmgr")
"/sbin/efibootmgr")))
#t))
(search-input-file inputs
"/sbin/efibootmgr")))))
(add-after 'patch-stuff 'use-absolute-mtools-path
(lambda* (#:key inputs #:allow-other-keys)
(let ((mtools (assoc-ref inputs "mtools")))

View File

@ -192,8 +192,7 @@ only with Python 2 and NumPy < 1.9.")
(include-dir (string-append out "/include/inchi"))
(lib (string-append out "/lib/inchi"))
(inchi-doc (assoc-ref inputs "inchi-doc"))
(unzip (string-append (assoc-ref inputs "unzip")
"/bin/unzip")))
(unzip (search-input-file inputs "/bin/unzip")))
(chdir "../../..")
;; Install binary.
(with-directory-excursion "INCHI_EXE/bin/Linux"

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2016, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017, 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2017, 2018, 2019, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
@ -178,8 +178,7 @@ work, such as sentence length and other readability measures.")
(lambda* (#:key inputs #:allow-other-keys)
(let ((bindir (string-append
(assoc-ref %outputs "out") "/bin"))
(wish (string-append (assoc-ref inputs "tk")
"/bin/wish8.6"))
(wish (search-input-file inputs "/bin/wish8.6"))
(sharedir (string-append
(assoc-ref %outputs "out")
"/share/applications"))

View File

@ -261,7 +261,7 @@ bootstrapping more recent compilers written in D.")
(lambda* (#:key inputs outputs #:allow-other-keys)
;; some tests call into gdb binary which needs SHELL and CC set
(setenv "SHELL" (which "sh"))
(setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
(setenv "CC" (search-input-file inputs "/bin/gcc"))
(invoke "make" "test" "-j" (number->string (parallel-job-count))))))))
(native-inputs
`(("llvm" ,llvm-6)

View File

@ -513,8 +513,7 @@ specialized device.")
#t)))
(add-after 'install 'create-executable
(lambda* (#:key outputs inputs #:allow-other-keys)
(let* ((python (string-append (assoc-ref inputs "python")
"/bin/python"))
(let* ((python (search-input-file inputs "/bin/python"))
(out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(executable (string-append bin "/childsplay")))

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
@ -484,8 +484,7 @@ system.")
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "hypb.el"
(("/bin/domainname")
(string-append (assoc-ref inputs "inetutils")
"/bin/dnsdomainname")))
(search-input-file inputs "bin/dnsdomainname")))
(substitute* "hyperbole.el"
(("\\(hyperb:check-dir-user\\)") ""))))
(add-after 'install 'install-images
@ -1413,7 +1412,7 @@ replacement.")
((f1 f2 ...) (dirname f1))
(_ "")))
(let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
(let ((sh (search-input-file inputs "/bin/sh")))
(define emacs-prefix? (cut string-prefix? "emacs-" <>))
(setenv "SHELL" "sh")
@ -2568,7 +2567,7 @@ as a library for other Emacs packages.")
(lambda* (#:key inputs #:allow-other-keys)
(emacs-substitute-variables "preview.el"
("preview-gs-command"
(string-append (assoc-ref inputs "ghostscript") "/bin/gs")))
(search-input-file inputs "/bin/gs")))
(substitute* "preview.el"
(("\"dvipng ")
(string-append "\"" (assoc-ref inputs "texlive")
@ -2932,8 +2931,7 @@ into mode hooks and is intended to be used that way.")
(chmod "ggtags.el" #o644)
(emacs-substitute-variables "ggtags.el"
("ggtags-executable-directory"
(string-append (assoc-ref inputs "global") "/bin")))
#t)))))
(dirname (search-input-file inputs "bin/global")))))))))
(home-page "https://github.com/leoliu/ggtags")
(synopsis "Frontend to the GNU Global source code tagging system")
(description "@code{ggtags} provides a frontend to the GNU Global source
@ -3039,7 +3037,7 @@ directly inside Emacs. It requires a Google Map Static API key to function.")
(with-directory-excursion "texinfo"
(substitute* "Makefile"
(("\\/usr\\/bin\\/gzip")
(string-append (assoc-ref inputs "gzip") "/bin/gzip")))
(search-input-file inputs "/bin/gzip")))
(invoke "make"
"clean"
"info"
@ -5503,8 +5501,7 @@ for Flow files.")
(add-after 'unpack 'specify-python-location
;; Hard-code python3 executable location in the library.
(lambda* (#:key inputs #:allow-other-keys)
(let ((python3 (string-append (assoc-ref inputs "python")
"/bin/python3")))
(let ((python3 (search-input-file inputs "/bin/python3")))
(substitute* "flycheck-grammalecte.el"
(("\"python3") (string-append "\"" python3)))
(substitute* '("conjugueur.py" "flycheck-grammalecte.py")
@ -9276,9 +9273,7 @@ queries using counsel.")
(make-file-writable "counsel-notmuch.el")
(emacs-substitute-variables "counsel-notmuch.el"
("counsel-notmuch-path"
(string-append (assoc-ref inputs "notmuch")
"/bin/notmuch")))
#t)))))
(search-input-file inputs "/bin/notmuch"))))))))
(inputs
`(("emacs-counsel" ,emacs-counsel)
("notmuch" ,notmuch)
@ -12973,8 +12968,7 @@ highlights quasi-quoted expressions.")
(bin (string-append out "/bin"))
(lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
(info (string-append out "/share/info"))
(emacs (string-append (assoc-ref inputs "emacs")
"/bin/emacs")))
(emacs (search-input-file inputs "/bin/emacs")))
;; According to etc/install.org, the Emacspeak directory should
;; be copied to its installation destination.
(for-each
@ -13700,10 +13694,10 @@ It should enable you to implement low-level X11 applications.")
(format #t "#!~a ~@
~a +SI:localuser:$USER ~@
exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
(string-append (assoc-ref inputs "bash") "/bin/sh")
(string-append (assoc-ref inputs "xhost") "/bin/xhost")
(string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
(string-append (assoc-ref inputs "emacs") "/bin/emacs")
(search-input-file inputs "/bin/sh")
(search-input-file inputs "/bin/xhost")
(search-input-file inputs "/bin/dbus-launch")
(search-input-file inputs "/bin/emacs")
'(cond
((file-exists-p "~/.exwm")
(load-file "~/.exwm"))
@ -13816,10 +13810,10 @@ other operations.")
(format #t "#!~a ~@
~a +SI:localuser:$USER ~@
exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
(string-append (assoc-ref inputs "bash") "/bin/sh")
(string-append (assoc-ref inputs "xhost") "/bin/xhost")
(string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
(string-append (assoc-ref inputs "emacs") "/bin/emacs")
(search-input-file inputs "/bin/sh")
(search-input-file inputs "/bin/xhost")
(search-input-file inputs "/bin/dbus-launch")
(search-input-file inputs "/bin/emacs")
'(require 'exwmx-loader))))
(chmod exwm-executable #o555)
#t))))))
@ -23332,7 +23326,7 @@ processes for Emacs")
(chmod "src/elisp/treemacs-customization.el" #o644)
(emacs-substitute-variables "src/elisp/treemacs-customization.el"
("treemacs-python-executable"
(string-append (assoc-ref inputs "python") "/bin/python3")))
(search-input-file inputs "/bin/python3")))
(chmod "src/elisp/treemacs-async.el" #o644)
(substitute* "src/elisp/treemacs-async.el"
(("src/scripts") (string-append "share/" ,name "/scripts"))))
@ -26285,14 +26279,14 @@ service, and connect it with Emacs via inter-process communication.")
(add-after 'unpack 'patch-sources
(lambda* (#:key inputs #:allow-other-keys)
;; Hard-code paths to `ffplay` and `ffmpeg`.
(let* ((ffmpeg (assoc-ref inputs "ffmpeg"))
(ffmpeg-bin (string-append ffmpeg "/bin/ffmpeg"))
(ffplay-bin (string-append ffmpeg "/bin/ffplay")))
(let* ((ffplay-bin (search-input-file inputs "/bin/ffplay"))
(ffmpeg-bin (search-input-file inputs "/bin/ffmpeg")))
(substitute* '("telega-ffplay.el" "telega-vvnote.el")
(("(shell-command-to-string\|concat) \"(ffmpeg\|ffprobe)"
all func cmd)
(string-append func " \"" (assoc-ref inputs "ffmpeg")
"/bin/" cmd))
(string-append func " \""
(search-input-file
inputs (string-append "/bin/" cmd))))
(("\\(executable-find \"ffplay\"\\)")
(string-append "(and (file-executable-p \"" ffplay-bin "\")"
"\"" ffplay-bin "\")"))
@ -26303,8 +26297,7 @@ service, and connect it with Emacs via inter-process communication.")
(lambda* (#:key inputs outputs #:allow-other-keys)
(substitute* "telega-server.el"
(("@TELEGA_SERVER_BIN@")
(string-append (assoc-ref inputs "emacs-telega-server")
"/bin/telega-server")))
(search-input-file inputs "/bin/telega-server")))
(substitute* "telega-util.el"
(("@TELEGA_SHARE@")
(string-append (assoc-ref outputs "out")
@ -27596,9 +27589,7 @@ emoji.")
(make-file-writable "exiftool.el")
(emacs-substitute-variables "exiftool.el"
("exiftool-executable"
(string-append (assoc-ref inputs "perl-image-exiftool")
"/bin/exiftool")))
#t)))))
(search-input-file inputs "/bin/exiftool"))))))))
(inputs
`(("perl-image-exiftool" ,perl-image-exiftool)))
(home-page "https://git.systemreboot.net/exiftool.el/about/")

View File

@ -615,8 +615,7 @@ and a game metadata scraper.")
(bin (string-append out "/bin"))
(higan (string-append bin "/higan"))
(higan-original (string-append higan "-original"))
(bash (string-append (assoc-ref inputs "bash")
"/bin/bash"))
(bash (search-input-file inputs "/bin/bash"))
(coreutils (assoc-ref inputs "coreutils"))
(mkdir (string-append coreutils "/bin/mkdir"))
(cp (string-append coreutils "/bin/cp"))

View File

@ -1964,19 +1964,14 @@ parallel computing platforms. It also supports serial execution.")
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "freehdl/freehdl-config"
(("pkg-config")
(string-append (assoc-ref inputs "pkg-config")
"/bin/pkg-config"))
(search-input-file inputs "/bin/pkg-config"))
(("cat")
(string-append (assoc-ref inputs "coreutils")
"/bin/cat")))
#t))
(search-input-file inputs "/bin/cat")))))
(add-after 'patch-pkg-config 'setenv
(lambda* (#:key inputs #:allow-other-keys)
(setenv "CXX" (string-append (assoc-ref inputs "gcc")
"/bin/g++"))
(setenv "SYSTEM_LIBTOOL" (string-append (assoc-ref inputs "libtool")
"/bin/libtool"))
#t))
(setenv "CXX" (search-input-file inputs "/bin/g++"))
(setenv "SYSTEM_LIBTOOL"
(search-input-file inputs "/bin/libtool"))))
(add-after 'setenv 'patch-gvhdl
(lambda _
(substitute* "v2cc/gvhdl.in"
@ -1987,7 +1982,7 @@ parallel computing platforms. It also supports serial execution.")
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "freehdl/freehdl-gennodes.in"
(("guile")
(string-append (assoc-ref inputs "guile") "/bin/guile"))
(search-input-file inputs "/bin/guile"))
(("\\(debug") ";(debug")
(("\\(@ ") "(apply-emit")
(("\\(@@ ") "(apply-mini-format"))
@ -2066,8 +2061,7 @@ parallel computing platforms. It also supports serial execution.")
(lambda* (#:key inputs outputs #:allow-other-keys)
(mkdir-p "build")
(chdir "build")
(let ((lrelease (string-append (assoc-ref inputs "qttools")
"/bin/lrelease"))
(let ((lrelease (search-input-file inputs "/bin/lrelease"))
(out (assoc-ref outputs "out")))
(invoke "qmake"
(string-append "QMAKE_LRELEASE=" lrelease)

View File

@ -59,11 +59,11 @@
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "entr.c"
(("/bin/sh" command)
(string-append (assoc-ref inputs "bash") command))
(search-input-file inputs command))
(("/bin/cat" command)
(string-append (assoc-ref inputs "coreutils") command))
(search-input-file inputs command))
(("/usr(/bin/clear)" _ command)
(string-append (assoc-ref inputs "ncurses") command)))
(search-input-file inputs command)))
#t)))))
(inputs
`(("bash" ,bash)

View File

@ -868,7 +868,8 @@ All of this is accomplished without a centralized metadata server.")
(lambda* (#:key inputs #:allow-other-keys)
(substitute* (list "eatmydata.in" "eatmydata.sh.in")
(("basename|readlink|uname" command)
(string-append (assoc-ref inputs "coreutils") "/bin/" command)))))
(search-input-file inputs
(string-append "bin/" command))))))
(add-before 'patch-file-names 'tighten-symlink-mode
;; When the eatmydata helper detects that it's a symlink, it will
;; transparently invoke the command of the same name. However, it's
@ -1046,11 +1047,9 @@ APFS.")
(assoc-ref inputs "bash")
match))
(("/bin/(rm|true)" match)
(string-append (assoc-ref inputs "coreutils")
match))
(search-input-file inputs match))
(("/usr(/bin/time)" _ match)
(string-append (assoc-ref inputs "time")
match))))
(search-input-file inputs match))))
(append (find-files "common" ".*")
(find-files "tests" ".*")
(find-files "tools" ".*")
@ -1097,8 +1096,7 @@ APFS.")
(with-output-to-file helper
(lambda _
(format #t "#!~a --no-auto-compile\n!#\n"
(string-append (assoc-ref inputs "guile")
"/bin/guile"))
(search-input-file inputs "/bin/guile"))
(write
`(begin
(define (try proc dir)
@ -1407,8 +1405,9 @@ On Guix System, you will need to invoke the included shell scripts as
(substitute* '("libfuse/lib/mount_util.c"
"libfuse/util/mount_util.c")
(("/bin/(u?)mount" _ maybe-u)
(string-append (assoc-ref inputs "util-linux")
"/bin/" maybe-u "mount")))
(search-input-file inputs
(string-append "bin/" maybe-u
"mount"))))
(substitute* '("libfuse/util/mount.mergerfs.c")
(("/bin/sh" command)
(string-append (assoc-ref inputs "bash-minimal") command))))))))
@ -1461,10 +1460,9 @@ is similar to mhddfs, unionfs, and aufs.")
(string-append "'" (assoc-ref inputs "coreutils") "/bin/rm'")))
(substitute* "src/mergerfs.mktrash"
(("xattr")
(string-append (assoc-ref inputs "python-xattr") "/bin/xattr"))
(search-input-file inputs "/bin/xattr"))
(("mkdir")
(string-append (assoc-ref inputs "coreutils") "/bin/mkdir")))
#t)))))
(search-input-file inputs "/bin/mkdir"))))))))
(synopsis "Tools to help manage data in a mergerfs pool")
(description "mergerfs-tools is a suite of programs that can audit
permissions and ownership of files and directories on a mergerfs volume,

View File

@ -823,8 +823,7 @@ the Monero command line client and daemon.")
;; The monerod program must be available so that monero-wallet-gui
;; can start a Monero daemon if necessary.
(lambda* (#:key inputs outputs #:allow-other-keys)
(symlink (string-append (assoc-ref inputs "monero")
"/bin/monerod")
(symlink (search-input-file inputs "/bin/monerod")
(string-append (assoc-ref outputs "out")
"/bin/monerod")))))))
(home-page "https://web.getmonero.org/")

View File

@ -2,7 +2,7 @@
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2016, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2018, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
@ -83,9 +83,7 @@
(substitute* "dmi.c"
(("\"dmidecode\"")
(format #f "~S"
(string-append (assoc-ref inputs "dmidecode")
"/sbin/dmidecode"))))
#t)))))
(search-input-file inputs "/sbin/dmidecode")))))))))
(home-page "https://flashrom.org/")
(synopsis "Identify, read, write, erase, and verify ROM/flash chips")
(description

View File

@ -696,7 +696,8 @@ definitions.")
(add-after 'install 'set-library-path
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(potrace (string-append (assoc-ref inputs "potrace") "/bin")))
(potrace (dirname
(search-input-file inputs "bin/potrace"))))
(wrap-program (string-append out "/bin/fontforge")
;; Fontforge dynamically opens libraries.
`("LD_LIBRARY_PATH" ":" prefix

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Tomáš Čech <sleep_walker@suse.cz>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2018, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2018 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015, 2016, 2017 David Thompson <davet@gnu.org>
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
@ -1203,9 +1203,8 @@ developed mainly for Ren'py.")
(add-after 'set-paths 'set-build-vars
(lambda* (#:key inputs native-inputs #:allow-other-keys)
(setenv "RENPY_CYTHON"
(string-append (assoc-ref (or native-inputs inputs)
"python2-cython")
"/bin/cython"))
(search-input-file (or native-inputs inputs)
"/bin/cython"))
(setenv "RENPY_DEPS_INSTALL" (string-join (map cdr inputs) ":"))
#t))
(replace 'build

View File

@ -1555,8 +1555,7 @@ shadow mimic them to reach blocks you couldn't reach alone.")
;; Look for xdg-open in the store.
(substitute* "src/core/web.c"
(("/usr(/bin/xdg-open)" _ bin)
(string-append (assoc-ref inputs "xdg-utils") bin)))
#t))
(search-input-file inputs bin)))))
(add-after 'unpack 'unbundle-fonts
(lambda* (#:key inputs #:allow-other-keys)
;; Replace bundled Roboto fonts with links to the store.
@ -3353,7 +3352,8 @@ exec ~a/bin/freedink -refdir ~a/share/dink\n"
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "xboard.conf"
(("aplay -q")
(string-append (assoc-ref inputs "alsa-utils") "/bin/aplay -q")))))
(string-append (search-input-file inputs "/bin/aplay")
" -q")))))
;; Fixes https://issues.guix.gnu.org/45236.
(add-after 'unpack 'patch-default-engine
(lambda* (#:key inputs #:allow-other-keys)
@ -5848,7 +5848,7 @@ throwing people around in pseudo-randomly generated buildings.")
(let* ((data (assoc-ref inputs "hyperrogue-data"))
(out (assoc-ref outputs "out"))
(sounds (string-append out "/share/hyperrogue/sounds"))
(unzip (string-append (assoc-ref inputs "unzip") "/bin/unzip")))
(unzip (search-input-file inputs "/bin/unzip")))
;; Extract media license information into sounds directory.
(invoke unzip "-j" data
(string-append
@ -9045,10 +9045,8 @@ action RPGs.")
;; parameters.
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bash (string-append (assoc-ref inputs "bash")
"/bin/bash"))
(flare (string-append (assoc-ref inputs "flare-engine")
"/bin/flare"))
(bash (search-input-file inputs "/bin/bash"))
(flare (search-input-file inputs "/bin/flare"))
(script (string-append out "/bin/flare-game")))
(mkdir-p (dirname script))
(call-with-output-file script
@ -11919,8 +11917,7 @@ and chess engines.")
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "chessx.pro"
(("\\$\\$\\[QT_INSTALL_BINS\\]/lrelease")
(string-append (assoc-ref inputs "qttools") "/bin/lrelease")))
#t))
(search-input-file inputs "/bin/lrelease")))))
(add-after 'fix-paths 'make-qt-deterministic
(lambda _
(setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")

View File

@ -1964,8 +1964,7 @@ track your position right from your laptop.")
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((shell (string-append (assoc-ref inputs "bash")
"/bin/bash")))
(let ((shell (search-input-file inputs "/bin/bash")))
(setenv "SHELL" shell)
(setenv "CONFIG_SHELL" shell)
(setenv "LDFLAGS" (string-append "-Wl,-rpath -Wl,"

View File

@ -246,11 +246,11 @@ shared NFS home directories.")
"gobject/glib-genmarshal.in"
"gobject/glib-mkenums.in")
(("@PYTHON@")
(string-append (assoc-ref (or native-inputs inputs) "python")
"/bin/python"
,(version-major+minor
(package-version python)))))
#t))
(search-input-file (or native-inputs inputs)
(string-append
"/bin/python"
,(version-major+minor
(package-version python))))))))
(add-before 'check 'pre-check
(lambda* (#:key native-inputs inputs outputs #:allow-other-keys)
;; For tests/gdatetime.c.

View File

@ -1129,15 +1129,10 @@ freedesktop.org desktop notification specification.")
(add-after 'unpack 'patch
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "util/mm-common-prepare.in"
(("ln") (string-append (assoc-ref inputs "coreutils")
"/bin/ln"))
(("cp") (string-append (assoc-ref inputs "coreutils")
"/bin/cp"))
(("sed") (string-append (assoc-ref inputs "sed")
"/bin/sed"))
(("cat") (string-append (assoc-ref inputs "coreutils")
"/bin/cat")))
#t)))))
(("ln") (search-input-file inputs "/bin/ln"))
(("cp") (search-input-file inputs "/bin/cp"))
(("sed") (search-input-file inputs "/bin/sed"))
(("cat") (search-input-file inputs "/bin/cat"))))))))
(native-inputs
`(("coreutils" ,coreutils)
("gettext" ,gettext-minimal)
@ -7833,10 +7828,8 @@ services.")
(modify-phases %standard-phases
(add-after 'configure 'patch-path
(lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
(let* ((ovpn (string-append (assoc-ref inputs "openvpn")
"/sbin/openvpn"))
(modprobe (string-append (assoc-ref inputs "kmod")
"/bin/modprobe"))
(let* ((ovpn (search-input-file inputs "/sbin/openvpn"))
(modprobe (search-input-file inputs "/bin/modprobe"))
(pretty-ovpn (string-append "\"" ovpn "\"")))
(for-each
(lambda (file)
@ -7889,10 +7882,8 @@ to virtual private networks (VPNs) via OpenVPN.")
(modify-phases %standard-phases
(add-after 'configure 'patch-path
(lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
(let* ((vpnc (string-append (assoc-ref inputs "vpnc")
"/sbin/vpnc"))
(modprobe (string-append (assoc-ref inputs "kmod")
"/bin/modprobe"))
(let* ((vpnc (search-input-file inputs "/sbin/vpnc"))
(modprobe (search-input-file inputs "/bin/modprobe"))
(pretty-ovpn (string-append "\"" vpnc "\"")))
(substitute* "src/nm-vpnc-service.c"
(("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
@ -7938,10 +7929,9 @@ Compatible with Cisco VPN concentrators configured to use IPsec.")
(modify-phases %standard-phases
(add-after 'configure 'patch-path
(lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
(let* ((openconnect (string-append (assoc-ref inputs "openconnect")
"/sbin/openconnect"))
(modprobe (string-append (assoc-ref inputs "kmod")
"/bin/modprobe"))
(let* ((openconnect (search-input-file inputs
"/sbin/openconnect"))
(modprobe (search-input-file inputs "/bin/modprobe"))
(pretty-ovpn (string-append "\"" openconnect "\"")))
(substitute* "src/nm-openconnect-service.c"
(("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
@ -11611,9 +11601,9 @@ GTK+. It integrates well with the GNOME desktop environment.")
(wrap-program prog
`("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
`("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
`("PATH" prefix (,(string-append (assoc-ref inputs "pandoc")
"/bin"))))
#t))))))
`("PATH" prefix (,(dirname
(search-input-file inputs
"/bin/pandoc")))))))))))
(inputs
`(("glib" ,glib)
("gobject-introspection" ,gobject-introspection)

View File

@ -469,8 +469,10 @@ gpgpme starting with version 1.7.")
;; When cross-compiling, the bash script 'libgcrypt-config'
;; must be accessible during the configure phase.
(setenv "PATH"
(string-append (assoc-ref inputs "libgcrypt")
"/bin:" (getenv "PATH")))))))))
(string-append
(dirname
(search-input-file inputs "bin/libgcrypt-config"))
":" (getenv "PATH")))))))))
(native-inputs
`(("pkg-config" ,pkg-config)
("autoconf" ,autoconf)
@ -684,8 +686,7 @@ signing, decryption, verification, and key-listing parsing.")
(add-before
'build 'set-gpg-file-name
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((gpg (string-append (assoc-ref inputs "gpg")
"/bin/gpg")))
(let* ((gpg (search-input-file inputs "/bin/gpg")))
(substitute* "libpius/constants.py"
(("/usr/bin/gpg2") gpg))
#t))))))
@ -1213,8 +1214,7 @@ over.")
(delete 'configure) ; no configure script
(add-before 'install 'hardlink-gnupg
(lambda* (#:key inputs #:allow-other-keys)
(let ((gpg (string-append (assoc-ref inputs "gnupg")
"/bin/gpg")))
(let ((gpg (search-input-file inputs "/bin/gpg")))
(substitute* (find-files "." "jetring-[[:alpha:]]+$")
(("gpg -") (string-append gpg " -"))
(("\\\"gpg\\\"") (string-append "\"" gpg "\"")))

View File

@ -1460,8 +1460,7 @@ standards of the IceCat project.")
(setenv "CC" "gcc")
(setenv "MOZ_NOSPAM" "1")
(setenv "PYTHON"
(string-append (assoc-ref inputs "python2")
"/bin/python"))
(search-input-file inputs "/bin/python"))
(setenv "MOZ_BUILD_DATE" ,%icedove-build-id) ; avoid timestamp
(setenv "LDFLAGS" (string-append "-Wl,-rpath="
(assoc-ref outputs "out")

View File

@ -2,7 +2,7 @@
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
;;; Copyright © 2016 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2016, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017 Petter <petter@mykolab.ch>
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Sergei Trofimovich <slyfox@inbox.ru>
@ -1140,7 +1140,7 @@ your Go binary to be later served from an http.FileSystem.")
(lambda* (#:key outputs inputs #:allow-other-keys)
(let* ((output (assoc-ref outputs "out"))
(doc_out (assoc-ref outputs "doc"))
(bash (string-append (assoc-ref inputs "bash") "bin/bash"))
(bash (search-input-file inputs "bin/bash"))
(docs (string-append doc_out "/share/doc/" ,name "-" ,version))
(tests (string-append
(assoc-ref outputs "tests") "/share/" ,name "-" ,version)))

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2015, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
@ -359,8 +359,7 @@ Graphviz and LaTeX.")
":" (assoc-ref inputs "gdk-pixbuf") "/lib/girepository-1.0"
":" (assoc-ref inputs "atk") "/lib/girepository-1.0")))
`("PATH" ":" prefix
(,(string-append (assoc-ref inputs "graphviz") "/bin"))))
#t)))))
(,(dirname (search-input-file inputs "bin/dot"))))))))))
(inputs
`(("atk" ,atk)
("gdk-pixbuf" ,gdk-pixbuf+svg)

View File

@ -1126,9 +1126,7 @@ messaging library.")
;; command.
(substitute* "src/hmac.scm"
(("openssl")
(string-append (assoc-ref inputs "openssl")
"/bin/openssl")))
#t))
(search-input-file inputs "/bin/openssl")))))
;; XXX: The code uses 'include' to include its own source
;; files, and "-L src" isn't enough in this case.

View File

@ -3,7 +3,7 @@
;;; Copyright © 2015 Siniša Biđin <sinisa@bidin.eu>
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;; Copyright © 2015, 2019 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
@ -5895,8 +5895,7 @@ descriptions.")
(let* ((out (assoc-ref outputs "out"))
(elisp-file "elisp/hindent.el")
(dest (string-append out "/share/emacs/site-lisp"))
(emacs (string-append (assoc-ref inputs "emacs")
"/bin/emacs")))
(emacs (search-input-file inputs "/bin/emacs")))
(make-file-writable elisp-file)
(emacs-substitute-variables elisp-file
("hindent-process-path"

View File

@ -135,11 +135,14 @@
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/ibusenginesimple.c"
(("/usr/share/X11/locale")
(string-append (assoc-ref inputs "libx11")
"/share/X11/locale")))
(search-input-directory inputs
"share/X11/locale")))
(substitute* "ui/gtk3/xkblayout.vala"
(("\"(setxkbmap|xmodmap)\"" _ prog)
(string-append "\"" (assoc-ref inputs prog) "/bin/" prog "\"")))))
(string-append "\""
(search-input-file inputs
(string-append "bin/" prog))
"\"")))))
(add-before 'check 'pre-check
(lambda _
;; Tests write to $HOME.

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2017, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2015, 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014, 2015, 2016, 2020 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
@ -2343,9 +2343,7 @@ Wacom-style graphics tablets.")
(lambda* (#:key inputs #:allow-other-keys)
(substitute* (list "src/dependency.py" "src/exif.py")
(("exiftool")
(string-append (assoc-ref inputs "perl-image-exiftool")
"/bin/exiftool")))
#t))
(search-input-file inputs "/bin/exiftool")))))
(add-before 'install 'check
(lambda _
(invoke "pytest")))

View File

@ -119,7 +119,7 @@
(modify-phases %standard-phases
(add-after 'unpack 'patch-inxi-reference
(lambda* (#:key inputs #:allow-other-keys)
(let ((inxi (string-append (assoc-ref inputs "inxi") "/bin/inxi")))
(let ((inxi (search-input-file inputs "/bin/inxi")))
(symlink inxi "data/scripts/inxi")
#t))))
#:tests? #f)) ; no test target

View File

@ -198,7 +198,7 @@ and binary format defined in The Java Virtual Machine Specification.")
(delete 'configure)
(add-before 'install 'fix-wrapper
(lambda* (#:key inputs #:allow-other-keys)
(let ((jps (string-append (assoc-ref inputs "jdk") "/bin/jps")))
(let ((jps (search-input-file inputs "/bin/jps")))
(substitute* "bin/drip"
(("jps") jps)
(("brew update && brew upgrade drip") "guix pull && guix install drip")
@ -378,11 +378,9 @@ JNI.")
(lambda* (#:key inputs #:allow-other-keys)
(setenv "JAVA_HOME" (assoc-ref inputs "jamvm"))
(setenv "JAVACMD"
(string-append (assoc-ref inputs "jamvm")
"/bin/jamvm"))
(search-input-file inputs "/bin/jamvm"))
(setenv "JAVAC"
(string-append (assoc-ref inputs "jikes")
"/bin/jikes"))
(search-input-file inputs "/bin/jikes"))
(setenv "CLASSPATH"
(string-append (assoc-ref inputs "jamvm")
"/lib/rt.jar"))
@ -14163,8 +14161,7 @@ can be interpreted by IDEs and static analysis tools to improve code analysis.")
"/dist/" jar-name))
(java-cp (string-append share "/" jar-name))
(bin (string-append %output "/bin"))
(java (string-append (assoc-ref inputs "jdk")
"/bin/java")))
(java (search-input-file inputs "/bin/java")))
(install-file jar share)
(mkdir-p bin)
;; Generate wrapper scripts for bin/, which invoke common

View File

@ -286,7 +286,7 @@ libraries. It is also a bit like @code{ldd} and @code{otool -L}.")
;; call our version
(substitute* "base/Makefile"
(("\\$\\$\\(build_depsbindir\\)/libwhich")
(string-append (assoc-ref inputs "libwhich") "/bin/libwhich")))
(search-input-file inputs "/bin/libwhich")))
#t))
(add-before 'check 'set-home
;; Some tests require a home directory to be set.

View File

@ -85,12 +85,11 @@ text editors.")
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "lesspipe.sh"
(("tput colors")
(string-append (assoc-ref inputs "ncurses")
"/bin/tput colors"))
(string-append (search-input-file inputs "/bin/tput")
" colors"))
(("file -")
(string-append (assoc-ref inputs "file")
"/bin/file -")))
#t)))))
(string-append (search-input-file inputs "/bin/file")
" -"))))))))
(inputs
`(("file" ,file)
("ncurses" ,ncurses))) ; for tput

View File

@ -6,7 +6,7 @@
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 20172021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
@ -1228,10 +1228,7 @@ converting QuarkXPress file format. It supports versions 3.1 to 4.1.")
(substitute* '("shell/source/unix/exec/shellexec.cxx"
"shell/source/unix/misc/senddoc.sh")
(("/usr/bin/xdg-open")
(string-append (assoc-ref inputs "xdg-utils")
"/bin/xdg-open")))
#t))
(search-input-file inputs "/bin/xdg-open")))))
(add-after 'install 'reset-zip-timestamps
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))

View File

@ -3143,11 +3143,12 @@ processes currently causing I/O.")
;; it refers to the right ones.
(substitute* '("lib/mount_util.c" "util/mount_util.c")
(("/bin/(u?)mount" _ maybe-u)
(string-append (assoc-ref inputs "util-linux")
"/bin/" maybe-u "mount")))
(substitute* "util/mount.fuse.c"
(("/bin/sh" command)
(string-append (assoc-ref inputs "bash-minimal") command)))
(search-input-file inputs
(string-append "bin/"
maybe-u "mount"))))
(substitute* '("util/mount.fuse.c")
(("/bin/sh")
(search-input-file inputs "/bin/sh")))
;; This hack leads libfuse to search for 'fusermount' in
;; $PATH, where it may find a setuid-root binary, instead of
@ -4234,27 +4235,28 @@ country-specific regulations for the wireless spectrum.")
(substitute* '("prog/pwm/pwmconfig"
"prog/pwm/fancontrol")
(("gnuplot")
(string-append (assoc-ref inputs "gnuplot")
"/bin/gnuplot"))
(search-input-file inputs "/bin/gnuplot"))
(("cat ")
(string-append (assoc-ref inputs "coreutils")
"/bin/cat "))
(string-append (search-input-file inputs "/bin/cat")
" "))
(("e?grep " match)
(string-append (assoc-ref inputs "grep")
"/bin/" match))
(string-append (search-input-file inputs
(string-append
"/bin/"
(string-trim-right match)))
" "))
(("sed -e")
(string-append (assoc-ref inputs "sed")
"/bin/sed -e"))
(string-append (search-input-file inputs "/bin/sed")
" -e"))
(("cut -d")
(string-append (assoc-ref inputs "coreutils")
"/bin/cut -d"))
(string-append (search-input-file inputs "/bin/cut")
" -d"))
(("sleep ")
(string-append (assoc-ref inputs "coreutils")
"/bin/sleep "))
(string-append (search-input-file inputs "/bin/sleep")
" "))
(("readlink -f")
(string-append (assoc-ref inputs "coreutils")
"/bin/readlink -f")))
#t)))))
(string-append (search-input-file inputs "/bin/readlink")
" -f"))))))))
(home-page "https://hwmon.wiki.kernel.org/lm_sensors")
(synopsis "Utilities to read temperature/voltage/fan sensors")
(description
@ -5152,7 +5154,7 @@ Bluetooth audio output devices like headphones or loudspeakers.")
(("hid2hci --method")
(string-append out "/lib/udev/hid2hci --method"))
(("/sbin/udevadm")
(string-append (assoc-ref inputs "eudev") "/bin/udevadm")))
(search-input-file inputs "/bin/udevadm")))
#t))))))
(native-inputs
`(("pkg-config" ,pkg-config)
@ -7686,15 +7688,11 @@ the superuser to make device nodes.")
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "scripts/fakeroot.in"
(("getopt")
(string-append (assoc-ref inputs "util-linux")
"/bin/getopt"))
(search-input-file inputs "/bin/getopt"))
(("sed")
(string-append (assoc-ref inputs "sed")
"/bin/sed"))
(search-input-file inputs "/bin/sed"))
(("cut")
(string-append (assoc-ref inputs "coreutils")
"/bin/cut")) )
#t))
(search-input-file inputs "/bin/cut")) )))
(add-before 'configure 'setenv
(lambda _
(setenv "LIBS" "-lacl")
@ -7795,10 +7793,8 @@ set as @code{LD_PRELOAD} to override the C library file system functions.")
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
(with-directory-excursion "inputattach"
(invoke (string-append (assoc-ref inputs "gcc")
"/bin/gcc")
"-O2" "-o" "inputattach" "inputattach.c"))
#t))
(invoke "gcc" "-O2" "-o" "inputattach"
"inputattach.c"))))
(delete 'check)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)

View File

@ -15634,7 +15634,7 @@ related C functions to get information about the mounted file system.")
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/unix/cl-diskspace-list-all-disks-with-df.lisp"
(("grep")
(string-append (assoc-ref inputs "grep") "/bin/grep")))
(search-input-file inputs "/bin/grep")))
(substitute* "src/unix/cl-diskspace-list-all-disks-with-df.lisp"
(("/bin/df")
(which "df")))

View File

@ -1106,12 +1106,11 @@ assembler, PEG) is less than 1MB.")
(modify-phases %standard-phases
(add-before 'install 'fix-utils-path
(lambda* (#:key inputs #:allow-other-keys)
(let* ((coreutils (string-append (assoc-ref inputs "coreutils") "/bin/"))
(cat (string-append coreutils "cat"))
(paste (string-append coreutils "paste"))
(sort (string-append coreutils "sort"))
(basename (string-append coreutils "basename"))
(sed (string-append (assoc-ref inputs "sed") "/bin/sed")))
(let* ((cat (search-input-file inputs "/bin/cat"))
(paste (search-input-file inputs "/bin/paste"))
(sort (search-input-file inputs "/bin/sort"))
(basename (search-input-file inputs "/bin/basename"))
(sed (search-input-file inputs "/bin/sed")))
(substitute* "lisp-repl-core-dumper"
(("\\$\\(basename") (string-append "$(" basename))
(("\\<cat\\>") cat)

View File

@ -1193,7 +1193,7 @@ enabled.")
(delete 'configure)
(add-before 'build 'patch-lua-calls
(lambda* (#:key inputs #:allow-other-keys)
(let ((lua (string-append (assoc-ref inputs "lua") "/bin/lua")))
(let ((lua (search-input-file inputs "/bin/lua")))
(setenv "LUA" lua)
(substitute* "old/launcher.lua"
(("/usr/bin/env lua") lua))
@ -1202,7 +1202,7 @@ enabled.")
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "fennel"
(("/usr/bin/env .*lua")
(string-append (assoc-ref inputs "lua") "/bin/lua")))
(search-input-file inputs "/bin/lua")))
#t))
(delete 'check)
(add-after 'install 'check

View File

@ -398,9 +398,7 @@ with freedesktop.org standard.")
"terminal_su=/run/setuid-programs/su")
(("#graphical_su=/usr/bin/gksu")
(string-append "graphical_su="
(string-append (assoc-ref inputs "ktsuss")
"/bin/ktsuss"))))
#t)))
(search-input-file inputs "/bin/ktsuss")))))))
#:configure-flags (list
(string-append "--with-preferable-sudo="
(assoc-ref %build-inputs "ktsuss")

View File

@ -4120,7 +4120,7 @@ Git and exports them in maildir format or to an MDA through a pipe.")
;; 'git' is invoked in various files of the PublicInbox
;; perl module.
`("PATH" ":" prefix
(,(string-append (assoc-ref inputs "git") "/bin")))))
(,(dirname (search-input-file inputs "/bin/git"))))))
(find-files (string-append out "/bin"))))
#t)))))
(native-inputs

View File

@ -1390,11 +1390,9 @@ extremely large and complex data collections.")
"test/hdf5lib/junit.sh.in"
"examples/runExample.sh.in")
(("/usr/bin/test")
(string-append (assoc-ref inputs "coreutils")
"/bin/test"))
(search-input-file inputs "/bin/test"))
(("/usr/bin/uname")
(string-append (assoc-ref inputs "coreutils")
"/bin/uname"))
(search-input-file inputs "/bin/uname"))
(("CLASSPATH=[^\n]*")
(string-append "CLASSPATH=" class-path)))
(setenv "CLASSPATH" class-path))
@ -3630,13 +3628,12 @@ to BMP, JPEG or PNG image formats.")
(modify-phases %standard-phases
(add-after 'unpack 'patch-paths
(lambda* (#:key inputs #:allow-other-keys)
(let* ((sed (string-append (assoc-ref inputs "sed") "/bin/sed"))
(let* ((sed (search-input-file inputs "/bin/sed"))
(coreutils (assoc-ref inputs "coreutils"))
(dirname (string-append coreutils "/bin/dirname"))
(head (string-append coreutils "/bin/head"))
(perl (string-append (assoc-ref inputs "perl") "/bin/perl"))
(python (string-append (assoc-ref inputs "python")
"/bin/python3")))
(perl (search-input-file inputs "/bin/perl"))
(python (search-input-file inputs "/bin/python3")))
(substitute* "src/maxima.in"
(("sed ") (string-append sed " "))
(("dirname") dirname)
@ -3670,8 +3667,7 @@ to BMP, JPEG or PNG image formats.")
(let* ((gnuplot (assoc-ref inputs "gnuplot"))
(out (assoc-ref outputs "out"))
(datadir (string-append out "/share/maxima/" ,version))
(binutils (string-append (assoc-ref inputs "binutils")
"/bin")))
(binutils (dirname (search-input-file inputs "/bin/as"))))
(with-directory-excursion out
(mkdir-p "share/emacs")
(mkdir-p "share/doc")
@ -6438,9 +6434,8 @@ of C, Java, or Ada programs.")
(modify-phases %standard-phases
(add-before 'configure 'export-shell
(lambda* (#:key inputs #:allow-other-keys)
(setenv "CONFIG_SHELL" (string-append (assoc-ref inputs "bash")
"/bin/sh"))
#t)))))
(setenv "CONFIG_SHELL"
(search-input-file inputs "/bin/sh")))))))
(inputs
`(("gmp" ,gmp)))
(propagated-inputs

View File

@ -282,9 +282,7 @@ user interfaces in a fast and easy way. It is based on GLib and ncurses.")
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "protobufgen.sh"
(("/bin/sh")
(string-append (assoc-ref inputs "bash")
"/bin/sh")))
#t)))))
(search-input-file inputs "/bin/sh"))))))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)

View File

@ -17,7 +17,7 @@
;;; Copyright © 2018 nee <nee.git@hidamari.blue>
;;; Copyright © 2018, 2021 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com>
;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si>
@ -625,7 +625,7 @@ many input formats and provides a customisable Vi-style user interface.")
;; Replace hard-coded diff file name.
(substitute* "tests/integration.c"
(("/usr/bin/diff")
(string-append (assoc-ref inputs "diffutils") "/bin/diff")))
(search-input-file inputs "/bin/diff")))
;; Denemo's documentation says to use this command to run its
;; test suite.
(invoke "make" "-C" "tests" "check")))
@ -633,8 +633,7 @@ many input formats and provides a customisable Vi-style user interface.")
;; This phase sets the default path for lilypond to its current
;; location in the store.
(lambda* (#:key inputs #:allow-other-keys)
(let* ((lilypond (string-append (assoc-ref inputs "lilypond")
"/bin/lilypond")))
(let* ((lilypond (search-input-file inputs "/bin/lilypond")))
(substitute* "src/core/prefops.c"
(("g_string_new \\(\"lilypond\"\\);")
(string-append "g_string_new (\""
@ -3316,8 +3315,7 @@ socket or command line.")
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "curseradio/curseradio.py"
(("/usr/bin/mpv")
(string-append (assoc-ref inputs "mpv") "/bin/mpv")))
#t)))))
(search-input-file inputs "/bin/mpv"))))))))
(propagated-inputs
`(("python-lxml" ,python-lxml)
("python-requests" ,python-requests)

View File

@ -143,8 +143,7 @@
(("\"%s/gs\"")
"\"%s/gsc\"")
(("/usr/bin/gs")
(string-append (assoc-ref inputs "ghostscript") "/bin/gsc"))))
#t))
(search-input-file inputs "/bin/gsc"))))))
(add-before 'check 'setup-check
(lambda _
;; install temporarily into /tmp/netpbm

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2017, 2018, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016, 2017, 2018, 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2016, 2017, 2021 Stefan Reichör <stefan@xsteve.at>
@ -643,11 +643,12 @@ systems with no further dependencies.")
"blueman-manager.in" "blueman-mechanism.in"
"blueman-rfcomm-watcher.in" "blueman-sendto.in"
"blueman-services.in" "blueman-tray.in")
(("@PYTHON@") (string-append (assoc-ref inputs "python")
"/bin/python"
,(version-major+minor
(package-version python))))))
#t))
(("@PYTHON@")
(search-input-file inputs
(string-append
"/bin/python"
,(version-major+minor
(package-version python)))))))))
;; Fix loading of external programs.
(add-after 'unpack 'patch-external-programs
(lambda* (#:key inputs #:allow-other-keys)
@ -657,12 +658,9 @@ systems with no further dependencies.")
(string-append (assoc-ref inputs "bluez")
"/libexec/bluetooth/bluetoothd"))
(("/sbin/iptables")
(string-append (assoc-ref inputs "iptables")
"/sbin/iptables"))
(search-input-file inputs "/sbin/iptables"))
(("/usr/sbin/pppd")
(string-append (assoc-ref inputs "ppp")
"/sbin/pppd")))
#t))
(search-input-file inputs "/sbin/pppd")))))
;; Fix loading of pulseaudio libraries.
(add-after 'unpack 'patch-pulseaudio-libraries
(lambda* (#:key inputs #:allow-other-keys)
@ -1740,9 +1738,7 @@ TCP connection, TLS handshake and so on) in the terminal.")
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "test-suite/testheaders.sh"
(("/bin/true")
(string-append (assoc-ref inputs "coreutils")
"/bin/true")))
#t)))))
(search-input-file inputs "/bin/true"))))))))
(inputs
`(("perl" ,perl)
("openldap" ,openldap)
@ -1837,8 +1833,8 @@ live network and disk I/O bandwidth monitor.")
#t))
(add-after 'build 'absolutize-tools
(lambda* (#:key inputs #:allow-other-keys)
(let ((ethtool (string-append (assoc-ref inputs "ethtool")
"/sbin/ethtool")))
(let ((ethtool (search-input-file inputs
"/sbin/ethtool")))
(substitute* "scripts/airmon-ng"
(("ethtool ")
(string-append ethtool " ")))

View File

@ -2,7 +2,7 @@
;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
@ -169,10 +169,9 @@
(format #t "configure flags: ~s~%" flags)
;; Node's configure script expects the CC environment variable to
;; be set.
(setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
(setenv "CC" (search-input-file inputs "/bin/gcc"))
(apply invoke
(string-append (assoc-ref inputs "python")
"/bin/python")
(search-input-file inputs "/bin/python")
"configure" flags))))
(add-after 'patch-shebangs 'patch-npm-shebang
(lambda* (#:key outputs #:allow-other-keys)
@ -387,8 +386,7 @@ Node.js and web browsers.")
(delete 'configure)
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
(let ((esbuild (string-append (assoc-ref inputs "esbuild")
"/bin/esbuild")))
(let ((esbuild (search-input-file inputs "/bin/esbuild")))
(invoke esbuild
"--platform=node"
"--outfile=lib/builder.js"
@ -443,8 +441,7 @@ Node.js and web browsers.")
(delete 'configure)
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
(let ((esbuild (string-append (assoc-ref inputs "esbuild")
"/bin/esbuild")))
(let ((esbuild (search-input-file inputs "/bin/esbuild")))
(invoke esbuild
"--platform=node"
"--outfile=lib/frontend.js"
@ -498,8 +495,7 @@ Node.js and web browsers.")
(delete 'configure)
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
(let ((esbuild (string-append (assoc-ref inputs "esbuild")
"/bin/esbuild")))
(let ((esbuild (search-input-file inputs "/bin/esbuild")))
(invoke esbuild
"--platform=node"
"--outfile=lib/api.js"
@ -552,8 +548,7 @@ parser definition into a C output.")
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key inputs #:allow-other-keys)
(let ((esbuild (string-append (assoc-ref inputs "esbuild")
"/bin/esbuild")))
(let ((esbuild (search-input-file inputs "/bin/esbuild")))
(invoke esbuild
"--platform=node"
"--outfile=bin/generate.js"
@ -639,8 +634,7 @@ source files.")
;; be set.
(setenv "CC" ,(cc-for-target))
(apply invoke
(string-append (assoc-ref inputs "python")
"/bin/python3")
(search-input-file inputs "/bin/python3")
"configure" flags))))
(replace 'patch-files
(lambda* (#:key inputs #:allow-other-keys)

View File

@ -210,8 +210,7 @@ This package produces a native @command{ocamlc} and a bytecode @command{ocamllex
(modify-phases %standard-phases
(add-after 'unpack 'patch-/bin/sh-references
(lambda* (#:key inputs #:allow-other-keys)
(let* ((sh (string-append (assoc-ref inputs "bash")
"/bin/sh"))
(let* ((sh (search-input-file inputs "/bin/sh"))
(quoted-sh (string-append "\"" sh "\"")))
(with-fluids ((%default-port-encoding #f))
(for-each
@ -805,8 +804,7 @@ the opam file format.")
(add-before 'build 'pre-build
(lambda* (#:key inputs make-flags #:allow-other-keys)
(let ((bash (assoc-ref inputs "bash"))
(bwrap (string-append (assoc-ref inputs "bubblewrap")
"/bin/bwrap")))
(bwrap (search-input-file inputs "/bin/bwrap")))
(substitute* "src/core/opamSystem.ml"
(("\"/bin/sh\"")
(string-append "\"" bash "/bin/sh\""))
@ -3674,8 +3672,8 @@ and 4 (random based) according to RFC 4122.")
(modify-phases %standard-phases
(add-before 'configure 'set-shell
(lambda* (#:key inputs #:allow-other-keys)
(setenv "CONFIG_SHELL" (string-append (assoc-ref inputs "bash")
"/bin/sh")))))))
(setenv "CONFIG_SHELL"
(search-input-file inputs "/bin/sh")))))))
(inputs `(("lablgtk" ,lablgtk)))
(properties `((upstream-name . "ocamlgraph")))
(home-page "http://ocamlgraph.lri.fr/")

View File

@ -76,12 +76,9 @@
;; To avoid propagating the mpg321 and vorbis-tools inputs, we can
;; make the orpheus application execute the needed players from the
;; store.
(let ((ogg123 (string-append (assoc-ref inputs "vorbis-tools")
"/bin/ogg123"))
(mpg321 (string-append (assoc-ref inputs "mpg321")
"/bin/mpg321"))
(which (string-append (assoc-ref inputs "which")
"/bin/which")))
(let ((ogg123 (search-input-file inputs "/bin/ogg123"))
(mpg321 (search-input-file inputs "/bin/mpg321"))
(which (search-input-file inputs "/bin/which")))
(substitute* "src/orpheusconf.cc"
(("ogg123") ogg123)
(("which") which)

View File

@ -523,11 +523,11 @@ any X11 window.")
(substitute* "contrib/dmenu/passmenu"
(("dmenu=dmenu\n")
(string-append "dmenu="
(assoc-ref inputs "dmenu") "/bin/dmenu\n"))
(search-input-file inputs "/bin/dmenu")
"\n"))
(("xdotool=\"xdotool")
(string-append "xdotool=\""
(assoc-ref inputs "xdotool") "/bin/xdotool")))
#t))
(search-input-file inputs "/bin/xdotool"))))))
(add-after 'install 'install-passmenu
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))

View File

@ -822,7 +822,7 @@ ease from the desktop to a microcontroller or embedded system.")
(substitute* '("lib-python/3/subprocess.py")
;; Fix shell path
(("/bin/sh")
(string-append (assoc-ref inputs "bash-minimal") "/bin/sh")))
(search-input-file inputs "/bin/sh")))
(substitute* '("lib-python/3/distutils/unixccompiler.py")
;; gcc-toolchain does not provide symlink cc -> gcc
(("\"cc\"") "\"gcc\""))

View File

@ -168,9 +168,7 @@
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "qt5ct.pro"
(("\\$\\$\\[QT_INSTALL_BINS\\]/lrelease")
(string-append (assoc-ref inputs "qttools")
"/bin/lrelease")))
#t))
(search-input-file inputs "/bin/lrelease")))))
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")))

View File

@ -723,9 +723,7 @@ to access different radio hardware.")
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "git-version-gen"
(("/bin/sh")
(string-append (assoc-ref inputs "bash")
"/bin/bash")))
#t)))))
(search-input-file inputs "/bin/bash"))))))))
(synopsis "DSP primitives for SDR")
(description
"This a C-language library for common DSP (Digital Signal Processing)

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2016, 2017, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015, 2019 Ricardo Wurmus <rekado@elephly.net>
@ -1175,8 +1175,7 @@ structure. Supports custom object formatting via plugins.")
#t))
(add-after 'unpack 'patch-pandoc-path
(lambda* (#:key inputs #:allow-other-keys)
(let ((pandoc (string-append (assoc-ref inputs "pandoc")
"/bin/pandoc")))
(let ((pandoc (search-input-file inputs "/bin/pandoc")))
(substitute* "lib/pandoc-ruby.rb"
(("@@pandoc_path = 'pandoc'")
(format #f "@@pandoc_path = '~a'" pandoc)))
@ -4850,8 +4849,7 @@ you to merge elements inside a hash together recursively.")
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Make the default git binary an absolute path to the
;; store.
(let ((git (string-append (assoc-ref inputs "git")
"/bin/git"))
(let ((git (search-input-file inputs "/bin/git"))
(config (string-append
(assoc-ref outputs "out")
"/lib/ruby/vendor_ruby/gems/git-"

View File

@ -325,7 +325,7 @@ safety and thread safety guarantees.")
(lambda* (#:key inputs #:allow-other-keys)
(setenv "SHELL" (which "sh"))
(setenv "CONFIG_SHELL" (which "sh"))
(setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
(setenv "CC" (search-input-file inputs "/bin/gcc"))
;; The Guix LLVM package installs only shared libraries.
(setenv "LLVM_LINK_SHARED" "1")))
(add-after 'unpack 'neuter-tidy

View File

@ -132,8 +132,7 @@ controlling terminal and attach to it later.")
(add-after
'install 'wrap-python-scripts
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((python (string-append (assoc-ref inputs "python")
"/bin/python"))
(let* ((python (search-input-file inputs "/bin/python"))
(out (assoc-ref outputs "out"))
(config (string-append out "/bin/byobu-config"))
(select (string-append out "/bin/byobu-select-session")))

View File

@ -216,8 +216,7 @@ This package also provides @command{xls2csv} to export Excel files to CSV.")
#t))
(add-before 'configure 'patch-uname
(lambda* (#:key inputs #:allow-other-keys)
(let ((uname-bin (string-append (assoc-ref inputs "coreutils")
"/bin/uname")))
(let ((uname-bin (search-input-file inputs "/bin/uname")))
(substitute* "src/scripts/R.sh.in"
(("uname") uname-bin)))
#t))

View File

@ -353,8 +353,8 @@ drawing.")
(add-before 'build 'set-dmenu-and-xprop-file-name
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "config.def.h"
(("dmenu") (string-append (assoc-ref inputs "dmenu") "/bin/dmenu"))
(("xprop") (string-append (assoc-ref inputs "xprop") "/bin/xprop")))
(("dmenu") (search-input-file inputs "/bin/dmenu"))
(("xprop") (search-input-file inputs "/bin/xprop")))
#t)))))
(inputs
`(("dmenu" ,dmenu)

View File

@ -599,7 +599,7 @@ that aims to be quite fast and comfortable to its user.")
(add-after 'unpack 'patch-mpv-path
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "gfeeds/confManager.py"
(("mpv") (string-append (assoc-ref inputs "mpv") "/bin/mpv")))
(("mpv") (search-input-file inputs "/bin/mpv")))
#t))
(add-after 'install 'wrap-gfeeds
(lambda* (#:key outputs #:allow-other-keys)

View File

@ -556,8 +556,8 @@ address of one of the participants.")
(lambda* (#:key inputs outputs #:allow-other-keys)
(invoke "qmake" "main.pro" "QMAKE_LRELEASE=lrelease"
(string-append "MUMBLE_PYTHON="
(string-append (assoc-ref inputs "python")
"/bin/python3"))
(search-input-file inputs
"/bin/python3"))
(string-append "CONFIG+="
(string-join
;; Options used are listed in the same order

View File

@ -1350,7 +1350,7 @@ basic input/output.")
(bin (string-append out "/bin"))
(share (string-append out "/share"))
(icons (string-append share "/icons/hicolor/scalable/apps"))
(tic (string-append (assoc-ref inputs "ncurses") "/bin/tic"))
(tic (search-input-file inputs "/bin/tic"))
(man (string-append share "/man/man1"))
(alacritty-bin "target/release/alacritty"))
;; Install the executable.

View File

@ -466,8 +466,8 @@ files from LOCATIONS with expected checksum HASH. CODE is not currently in use.
(cut member <> '("." ".."))))))
(tlpkg-src (string-append tl-extra-root "/" tl-extra-dir
"/tlpkg"))
(config.guess (string-append (assoc-ref inputs "config")
"/bin/config.guess")))
(config.guess (search-input-file inputs
"/bin/config.guess")))
;; Create symbolic links for the latex variants and their
;; man pages.

View File

@ -54,8 +54,7 @@
#t))
(add-after 'delete-extra-from-classpath 'patch-usr-bin-dot
(lambda* (#:key inputs #:allow-other-keys)
(let ((dot (string-append (assoc-ref inputs "graphviz")
"/bin/dot")))
(let ((dot (search-input-file inputs "/bin/dot")))
(substitute*
"src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizLinux.java"
(("/usr/bin/dot") dot)))

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
@ -1035,9 +1035,8 @@ a built-in cache to decrease server I/O pressure.")
(assoc-ref inputs "git") "/bin/git"
"'"))
(("/usr/sbin/sendmail")
(string-append (assoc-ref inputs "sendmail")
"/usr/sbin/sendmail")))
#t)))))
(search-input-file inputs
"/usr/sbin/sendmail"))))))))
(inputs
`(("git" ,git)
("sendmail" ,sendmail)))
@ -1424,8 +1423,7 @@ also walk each side of a merge and test those changes individually.")
(delete 'build)
(add-before 'install 'patch-scripts
(lambda* (#:key inputs #:allow-other-keys)
(let ((perl (string-append (assoc-ref inputs "perl")
"/bin/perl")))
(let ((perl (search-input-file inputs "/bin/perl")))
;; This seems to take care of every shell script that
;; invokes Perl.
(substitute* (find-files "." ".*")
@ -1462,8 +1460,7 @@ also walk each side of a merge and test those changes individually.")
(substitute* '("src/lib/Gitolite/Hooks/PostUpdate.pm"
"src/lib/Gitolite/Hooks/Update.pm")
(("/usr/bin/perl")
(string-append (assoc-ref inputs "perl")
"/bin/perl")))
(search-input-file inputs "/bin/perl")))
(substitute* "src/lib/Gitolite/Common.pm"
(("\"ssh-keygen")
@ -1759,10 +1756,8 @@ history. It implements the changeset evolution concept for Mercurial.")
(modify-phases %standard-phases
(add-after 'unpack 'patch-paths
(lambda* (#:key inputs #:allow-other-keys)
(let ((gpg (string-append (assoc-ref inputs "gnupg")
"/bin/gpg"))
(openssl (string-append (assoc-ref inputs "openssl")
"/bin/openssl")))
(let ((gpg (search-input-file inputs "/bin/gpg"))
(openssl (search-input-file inputs "/bin/openssl")))
(substitute* "commitsigs.py"
(("b'gpg',") (string-append "b'" gpg "',"))
(("b'openssl',") (string-append "b'" openssl "',")))))))
@ -2707,8 +2702,7 @@ directory full of HOWTOs.")
#t))
(add-before 'install 'patch-git
(lambda* (#:key inputs #:allow-other-keys)
(let ((git (string-append (assoc-ref inputs "git")
"/bin/git")))
(let ((git (search-input-file inputs "/bin/git")))
(substitute* "bin/git-when-merged"
(("'git'") (string-append "'" git "'")))
#t)))
@ -2752,8 +2746,7 @@ how information about the merge is displayed.")
(delete 'configure)
(add-before 'install 'patch-git
(lambda* (#:key inputs #:allow-other-keys)
(let ((git (string-append (assoc-ref inputs "git")
"/bin/git")))
(let ((git (search-input-file inputs "/bin/git")))
(substitute* "git-imerge"
(("'git'") (string-append "'" git "'")))
#t)))
@ -3045,11 +3038,10 @@ defects faster.")
(substitute* "tests/test_main.py"
(("'gita\\\\n'") "'source\\n'")
(("'gita'") "'source'"))
(invoke (string-append (assoc-ref inputs "git") "/bin/git")
(invoke (search-input-file inputs "/bin/git")
"init")
(add-installed-pythonpath inputs outputs)
(invoke (string-append (assoc-ref inputs "python-pytest")
"/bin/pytest")
(invoke (search-input-file inputs "/bin/pytest")
"-vv" "tests")))
(add-after 'install 'install-shell-completions
(lambda* (#:key outputs #:allow-other-keys)

View File

@ -2435,8 +2435,7 @@ other site that youtube-dl supports.")
;; Explicitly invoke the input ffmpeg, instead of whichever one
;; happens to be in the user's $PATH at run time.
(lambda* (#:key inputs #:allow-other-keys)
(let ((ffmpeg (string-append (assoc-ref inputs "ffmpeg")
"/bin/ffmpeg")))
(let ((ffmpeg (search-input-file inputs "/bin/ffmpeg")))
(substitute* "src/you_get/processor/ffmpeg.py"
;; Don't blindly replace all occurrences of 'ffmpeg': the
;; same string is also used when sniffing ffmpeg's output.

View File

@ -771,8 +771,7 @@ refactor Vim in order to:
(modify-phases %standard-phases
(add-after 'configure 'reference-nvim
(lambda* (#:key inputs #:allow-other-keys)
(let ((nvim (string-append (assoc-ref inputs "neovim")
"/bin/nvim")))
(let ((nvim (search-input-file inputs "/bin/nvim")))
;; This substitution should change one line, and replaces the default
;; value in the struct of options with an absolute store reference.
(substitute* "../source/src/main.c"

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2017, 2018. 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
@ -247,7 +247,7 @@
;; Configure, build and install QEMU user-emulation static binaries.
(add-after 'configure 'configure-user-static
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((gcc (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
(let* ((gcc (search-input-file inputs "/bin/gcc"))
(static (assoc-ref outputs "static"))
;; This is the common set of configure flags; it is
;; duplicated here to isolate this phase from manipulations
@ -1239,8 +1239,8 @@ virtualization library.")
(lambda* (#:key inputs #:allow-other-keys)
;; Xen is not available for now - so only patch qemu.
(substitute* "virtManager/createconn.py"
(("/usr(/bin/qemu-system)" _ suffix)
(string-append (assoc-ref inputs "qemu") suffix)))
(("/usr(/bin/qemu-system-[a-zA-Z0-9_-]+)" _ suffix)
(search-input-file inputs suffix)))
#t))
(add-before 'wrap 'wrap-with-GI_TYPELIB_PATH
(lambda* (#:key inputs outputs #:allow-other-keys)
@ -1371,9 +1371,7 @@ domains, their live performance and resource utilization statistics.")
(("\\$\\(PYTHON\\)") "python2"))
(substitute* "lib/Makefile"
(("\\$\\(PYTHON\\)")
(string-append (assoc-ref inputs "python")
"/bin/python")))
#t))
(search-input-file inputs "/bin/python")))))
(add-before 'build 'fix-symlink
(lambda* (#:key inputs #:allow-other-keys)
;; The file 'images/google/protobuf/descriptor.proto' points to

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013, 2016, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2016, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Jeff Mickey <j@codemac.net>
;;; Copyright © 2016, 2017, 2019, 2021 Efraim Flashner <efraim@flashner.co.il>
@ -323,7 +323,7 @@ endpoints.")
"/bin/" command)))
(substitute* "src/libstrongswan/utils/process.c"
(("/bin/sh")
(string-append (assoc-ref inputs "bash") "/bin/sh")))
(search-input-file inputs "/bin/sh")))
(substitute* "src/libstrongswan/tests/suites/test_process.c"
(("/bin/sh") (which "sh"))
@ -1115,8 +1115,7 @@ public keys and can roam across IP addresses.")
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "l2tp.h"
(("/usr/sbin/pppd")
(string-append (assoc-ref inputs "ppp")
"/sbin/pppd")))
(search-input-file inputs "/sbin/pppd")))
(setenv "KERNELSRC"
(assoc-ref inputs "linux-libre-headers"))
#t)))

View File

@ -8,7 +8,7 @@
;;; Copyright © 2016, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Al McElrath <hello@yrns.org>
;;; Copyright © 2016 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017, 2018, 2020 Nikita <nikita@n0.is>
;;; Copyright © 2016 doncatnip <gnopap@gmail.com>
;;; Copyright © 2016 Ivan Vilata i Balaguer <ivan@selidor.net>
@ -613,14 +613,10 @@ Features include:
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(icons (string-append out "/share/i3lock-fancy/icons/"))
(wmctrl (string-append (assoc-ref inputs "wmctrl")
"/bin/wmctrl"))
(mconvert (string-append (assoc-ref inputs "imagemagick")
"/bin/convert"))
(mimport (string-append (assoc-ref inputs "imagemagick")
"/bin/import"))
(awk (string-append (assoc-ref inputs "gawk")
"/bin/gawk")))
(wmctrl (search-input-file inputs "/bin/wmctrl"))
(mconvert (search-input-file inputs "/bin/convert"))
(mimport (search-input-file inputs "/bin/import"))
(awk (search-input-file inputs "/bin/gawk")))
(substitute* "lock"
(("\\$\\(command -V wmctrl\\)") wmctrl)

View File

@ -216,7 +216,7 @@ and many other languages.")
(setenv "WXWIN" (assoc-ref inputs "wxwidgets"))
;; Copy the waf executable to the source directory since it needs
;; to be in a writable directory.
(copy-file (string-append (assoc-ref inputs "python-waf") "/bin/waf")
(copy-file (search-input-file inputs "/bin/waf")
"bin/waf")
(setenv "WAF" "bin/waf")
;; The build script tries to copy license files from the
@ -306,8 +306,9 @@ provide a 100% native look and feel for the application.")
(setenv "WXWIN" (assoc-ref inputs "wxwidgets"))
(use-modules (ice-9 popen) (ice-9 rdelim))
(let ((port (open-pipe* OPEN_READ
(string-append (assoc-ref inputs "wxwidgets")
"/bin/wx-config") "--cppflags")))
(search-input-file inputs
"/bin/wx-config")
"--cppflags")))
(setenv "CPPFLAGS" (read-string port))
(close-pipe port))
#t)))))

View File

@ -3,7 +3,7 @@
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014, 2015, 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2013, 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2015, 2017, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2015 Alexander I.Grafov <grafov@gmail.com>
;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
@ -231,8 +231,7 @@ program.")
(modify-phases %standard-phases
(add-before 'build 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((xrandr (string-append (assoc-ref inputs "xrandr")
"/bin/xrandr")))
(let ((xrandr (search-input-file inputs "/bin/xrandr")))
(substitute* "contrib/etc/xdg/autostart/autorandr.desktop"
(("/usr") (assoc-ref outputs "out")))
(substitute* "autorandr.py"

View File

@ -2,7 +2,7 @@
;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014, 2015, 2017, 2018, 2020 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2015 Cyrill Schenkel <cyrill.schenkel@gmail.com>
@ -2289,8 +2289,7 @@ X server: @code{handhelds}, @code{redglass} and @code{whiteglass}.")
(delete 'configure)
(add-before 'build 'set-inkscape-environment-variable
(lambda* (#:key inputs #:allow-other-keys)
(let ((inkscape (string-append (assoc-ref inputs "inkscape")
"/bin/inkscape")))
(let ((inkscape (search-input-file inputs "/bin/inkscape")))
(setenv "INKSCAPE" inkscape)
#t)))
(add-before 'build 'placate-inkscape-warnings
@ -3593,8 +3592,7 @@ X server.")
(format #t "decompressing x86emu source code~%")
(with-directory-excursion "libs"
(let ((srcs (assoc-ref inputs "xorg-server-sources"))
(tar-binary (string-append (assoc-ref inputs "tar")
"/bin/tar")))
(tar-binary (search-input-file inputs "/bin/tar")))
(invoke tar-binary "xvf" srcs "--strip-components=3"
"--wildcards" "*/hw/xfree86/x86emu/")
;; extract license:
@ -4991,9 +4989,8 @@ protocol and arbitrary X extension protocol.")
(wrap-program (string-append (assoc-ref outputs "out")
"/bin/mkfontdir")
`("PATH" ":" prefix
(,(string-append (assoc-ref inputs "mkfontscale")
"/bin"))))
#t)))))
(,(dirname
(search-input-file inputs "/bin/mkfontscale"))))))))))
(inputs
`(("mkfontscale" ,mkfontscale)))
(native-inputs
@ -6430,7 +6427,8 @@ basic eye-candy effects.")
;; The trailing -- is intentional, so we only replace it inside
;; a command line.
(("dbus-launch --")
(string-append (assoc-ref inputs "dbus") "/bin/dbus-launch --")))
(string-append (search-input-file inputs "/bin/dbus-launch")
" --")))
;; /run/user does not exist on guix system
(substitute* "./xpra/scripts/config.py"
(("socket-dir.*: \"\",")