Subject: [bug#75568] [PATCH] gnu: smartmontools: Fix PATH in smartd_warning.sh.

From: Tomas Volf <[email-masked]>
Date: Wed, 26 Mar 2025 22:45:55 +0100

Ludovic Courtès <[email-masked]> writes:

> Tomas Volf <[email-masked]> skribis:
>
>> The script started with reset of the $PATH to a value not suitable to Guix.
>> In addition, the script requires coreutils and sed, so add those into the
>> $PATH.
>>
>> * gnu/packages/admin.scm (smartmontools)[arguments]<#:phases>: Add 'fix-path.
>>
>> Change-Id: Ide97f572e6f369fe24337f945474dc7a65584eda
>
> [...]
>
>> +          (add-after 'install 'fix-path
>> +            (lambda _
>> +              (substitute* (string-append #$output "/etc/smartd_warning.sh")
>> +                (("export PATH=.*$" all)
>> +                 (string-append "PATH="
>> +                                #$(file-append sed "/bin") ":"
>> +                                #$(file-append coreutils "/bin") ":"
>
> Please use (dirname (search-input-file inputs "/bin/sed")) etc. instead.
> That way, when creating a variant with different inputs, the right thing
> will be used.

Merged version uses the following:

--8<---------------cut here---------------start------------->8---
    (arguments
     (list
      #:make-flags
      #~(list "BUILD_INFO=\"(Guix)\"")
      #:configure-flags
      #~(list (format #f "--with-scriptpath=~{~a:~}$PATH"
                      (map (lambda (pkg)
                             (in-vicinity pkg "bin"))
                           '#$(list (this-package-input "coreutils-minimal")
                                    (this-package-input "sed")))))))
--8<---------------cut here---------------end--------------->8---

Is that acceptable as well or should I send a patch switching to
search-input-file?

Tomas

-- 
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.