Subject: Re: [bug#75550] [PATCH v2] gnu: smartmontools: Fix PATH in smartd_warning.sh.
From: Hilton Chain <[email-masked]>
To: Tomas Volf <[email-masked]>
Cc: [email-masked], Sharlatan Hellseher <[email-masked]>
Date: Thu, 30 Jan 2025 20:29:15 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

On Wed, 29 Jan 2025 07:00:15 +0800,
Tomas Volf wrote:
>
> 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)[inputs]: Add sed, coreutils-minimal.
> [arguments]<#:configure-flags>: Pass --with-scriptpath=.
>
> Change-Id: Ide97f572e6f369fe24337f945474dc7a65584eda
> ---
>  gnu/packages/admin.scm | 13 ++++++++++---
>  1 file changed, 10 insertions(+), 3 deletions(-)
>
> diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
> index fd5d67ec50..e21f3f6e19 100644
> --- a/gnu/packages/admin.scm
> +++ b/gnu/packages/admin.scm
> @@ -3051,9 +3051,16 @@ (define-public smartmontools
>                  "0gcrzcb4g7f994n6nws26g6x15yjija1gyzd359sjv7r3xj1z9p9"))))
>      (build-system gnu-build-system)
>      (arguments
> -     (list #:make-flags
> -           #~(list "BUILD_INFO=\"(Guix)\"")))
> -    (inputs (list libcap-ng))
> +     (list
> +      #:make-flags
> +      #~(list "BUILD_INFO=\"(Guix)\"")
> +      #:configure-flags
> +      #~(list (format #f "--with-scriptpath=~a:~a:$PATH"
> +                      (dirname (search-input-file %build-inputs "bin/sed"))
> +                      (dirname (search-input-file %build-inputs "bin/true"))))))

I have modified #:configure-flags to use `this-package-input', to have proper
cross build support:
--8<---------------cut here---------------start------------->8---
#~(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---

Thinking of the limitation of %build-inputs, it might be convenient to define
`inputs' and `native-inputs' directly in builder's environment.  🤔

Anyway, applied as f7fc4caf7da8f1d7cc76b3bc6ac0c4e643507454 with above change.

> +    (inputs (list coreutils-minimal
> +                  libcap-ng
> +                  sed))
>      (home-page "https://www.smartmontools.org/")
>      (synopsis "S.M.A.R.T. harddisk control and monitoring tools")
>      (description
> --
> 2.47.1

Thanks