Subject: Re: bug#46390: “guix lint -L relative/pathfoo“ fails
From: Ludovic Courtès <[email-masked]>
To: zimoun <[email-masked]>
Cc: [email-masked]
Date: Mon, 22 Feb 2021 12:15:12 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

zimoun <[email-masked]> skribis:

> …but breaks with relative path:
>
> $ cd /tmp/
> $ guix lint -L example hi -c source-file-name
> Backtrace:
>           13 (primitive-load "/home/sitour/.config/guix/current/bin/guix")
> In guix/ui.scm:
>   2150:12 12 (run-guix-command _ . _)
> In ice-9/boot-9.scm:
>   1736:10 11 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
>   1731:15 10 (with-exception-handler #<procedure 7ff41750b750 at ice-9/boot-9.scm:1815:7 (exn)> _ #:unwind? _ #:unwind-for-type _)
> In srfi/srfi-1.scm:
>     634:9  9 (for-each #<procedure 7ff4175090e0 at guix/scripts/lint.scm:222:23 (spec)> ("hi"))
> In guix/scripts/lint.scm:
>      65:4  8 (run-checkers #<package [email-masked] example/hello.scm:8 7ff415cc7dc0> (#<<lint-checker> name: source-file-name descripti…>) …)
> In srfi/srfi-1.scm:
>     634:9  7 (for-each #<procedure 7ff40797f480 at guix/scripts/lint.scm:65:14 (checker)> (#<<lint-checker> name: source-file-name…>))
> In guix/scripts/lint.scm:
>     74:21  6 (_ _)
> In guix/lint.scm:
>     897:9  5 (check-source-file-name _)
>    148:18  4 (%make-warning #<package [email-masked] example/hello.scm:8 7ff415cc7dc0> "the source file name should contain the package n…" …)
> In ice-9/boot-9.scm:
>   1731:15  3 (with-exception-handler #<procedure 7ff40797f1e0 at ice-9/boot-9.scm:1815:7 (exn)> _ #:unwind? _ #:unwind-for-type _)
> In ice-9/ports.scm:
>    440:11  2 (call-with-input-file #f #<procedure 7ff40797f120 at guix/packages.scm:482:11 (port)> #:binary _ #:encoding _ # _)
> In unknown file:
>            1 (open-file #f "r" #:encoding #f #:guess-encoding #f)
> In ice-9/boot-9.scm:
>   1669:16  0 (raise-exception _ #:continuable? _)
>
> ice-9/boot-9.scm:1669:16: In procedure raise-exception:
> Wrong type (expecting string): #f
>
>
> The reason is from ’package-field-location’ in (guix packages):
>
>      (catch 'system-error
>        (lambda ()
>          ;; In general we want to keep relative file names for modules.
>          (call-with-input-file (search-path %load-path file)

Indeed.  Fixed in 9a38bed2cf32e9462badfa43e74cdd4580e804fc.

Thanks!

Ludo’.