Subject: [bug#28693] [PATCH] gnu: Add missing input to python-py3status and fix call path.

From: Christopher Baines <[email-masked]>
Date: Fri, 6 Oct 2017 07:32:50 +0100

On Thu,  5 Oct 2017 23:24:39 +0200
Tomáš Čech <[email-masked]> wrote:

> * gnu/packages/python.scm (python-py3status)[inputs, arguments]: Add
> missing file utility as input, adjust path used to call it.

I would usually put the changelog last, as I think this is more
consistent with other committers. Also, maybe this could be more
specific like:

    * gnu/packages/python.scm (python-py3status)[inputs]: Add file.
      [arguments]: Modify phases to patch py3status to call file with an
      absolute path.

> file is used to determine configuration file encoding and py3status
> fails to start when this tool is missing.
> ---
>  gnu/packages/python.scm | 15 ++++++++++++++-
>  1 file changed, 14 insertions(+), 1 deletion(-)
> 
> diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
> index 6ffd468b3..426ff12eb 100644
> --- a/gnu/packages/python.scm
> +++ b/gnu/packages/python.scm
> @@ -11468,8 +11468,21 @@ to occurrences in strings and comments.")
>          (base32
>           "0i283z1pivmir61z8kbiycigc94l61v33ygzkhczf1ifq7cppyds"))))
>      (build-system python-build-system)
> +    (inputs
> +     `(("file" ,file)))
>      (arguments
> -     '(#:tests? #f)) ; TODO: Requires many libraries not in Guix.
> +     '(#:phases
> +       (modify-phases %standard-phases
> +         ;; 'file' is used for detection of configuration file
> encoding
> +         ;; let's make link the dependency to particular input
> +         (add-before 'build 'patch-file-path
> +           (lambda* (#:key inputs #:allow-other-keys)
> +             (let ((file-path (assoc-ref inputs "file")))
> +               (substitute* "py3status/parse_config.py"
> +                 (("check_output\\(\\['file'")
> +                  (string-append "check_output(['" file-path
> "/bin/file'")))
> +               #t))))
> +       #:tests? #f)) ; TODO: Requires many libraries not in Guix.
>      (home-page "https://github.com/ultrabug/py3status")
>      (synopsis "Extensible i3status wrapper written in Python")
>      (description "py3status is an i3status wrapper which extends
> i3status

This change looks fine to me, and I checked that it builds as well.
Please push :)