GNU bug report logs -
#46390
“guix lint -L relative/path foo“ fails
Previous Next
Reported by: zimoun <zimon.toutoune <at> gmail.com>
Date: Mon, 8 Feb 2021 22:47:02 UTC
Severity: normal
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 46390 in the body.
You can then email your comments to 46390 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-guix <at> gnu.org
:
bug#46390
; Package
guix
.
(Mon, 08 Feb 2021 22:47:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
zimoun <zimon.toutoune <at> gmail.com>
:
New bug report received and forwarded. Copy sent to
bug-guix <at> gnu.org
.
(Mon, 08 Feb 2021 22:47:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Hi,
Here an example to reproduce. Everything is fine with the full path…
--8<---------------cut here---------------start------------->8---
$ cat /tmp/example/hello.scm
(define-module (hello)
#:use-module (guix packages)
#:use-module (guix build-system gnu)
#:use-module (guix git-download)
#:use-module (guix licenses))
(define-public hi
(package
(name "hi")
(version "2.10")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://example.org/hello-example.git")
(commit "e1eefd033b8a2c4c81babc6fde08ebb116c6abb8")))
(sha256
(base32
"1im1gglfm4k10bh4mdaqzmx3lm3kivnsmxrvl6vyvmfqqzljq75l"))))
(build-system gnu-build-system)
(synopsis "Hello, GNU world: An example GNU package")
(description
"GNU Hello prints the message \"Hello, world!\" and then exits. It
serves as an example of standard GNU coding practices. As such, it supports
command-line arguments, multiple languages, and so on.")
(home-page "https://www.gnu.org/software/hello/")
(license gpl3+)))
$ guix lint -L /tmp/example hi -c source-file-name
/tmp/example/hello.scm:11:12: hi <at> 2.10 : le nom du fichier source devrait contenir le nom du paquet
--8<---------------cut here---------------end--------------->8---
…but breaks with relative path:
--8<---------------cut here---------------start------------->8---
$ 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 hi <at> 2.10 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 hi <at> 2.10 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
--8<---------------cut here---------------end--------------->8---
The reason is from ’package-field-location’ in (guix packages):
--8<---------------cut here---------------start------------->8---
(catch 'system-error
(lambda ()
;; In general we want to keep relative file names for modules.
(call-with-input-file (search-path %load-path file)
--8<---------------cut here---------------end--------------->8---
the ’search-path’ returns #f. Somehow, the %load-path should only
contain absolute paths and here it is not the case. Therefore, the fix
should be in (guix build):
--8<---------------cut here---------------start------------->8---
(define %standard-build-options
;; List of standard command-line options for tools that build something.
(list (option '(#\L "load-path") #t #f
(lambda (opt name arg result . rest)
;; XXX: Imperatively modify the search paths.
(%package-module-path (cons arg (%package-module-path)))
(%patch-path (cons arg (%patch-path)))
(set! %load-path (cons arg %load-path))
(set! %load-compiled-path (cons arg %load-compiled-path))
--8<---------------cut here---------------end--------------->8---
For instance using ’canonicalize-path’.
All the best,
simon
Reply sent
to
Ludovic Courtès <ludo <at> gnu.org>
:
You have taken responsibility.
(Mon, 22 Feb 2021 11:16:01 GMT)
Full text and
rfc822 format available.
Notification sent
to
zimoun <zimon.toutoune <at> gmail.com>
:
bug acknowledged by developer.
(Mon, 22 Feb 2021 11:16:01 GMT)
Full text and
rfc822 format available.
Message #10 received at 46390-done <at> debbugs.gnu.org (full text, mbox):
Hi,
zimoun <zimon.toutoune <at> gmail.com> 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 hi <at> 2.10 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 hi <at> 2.10 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’.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Mon, 22 Mar 2021 11:24:06 GMT)
Full text and
rfc822 format available.
This bug report was last modified 3 years and 35 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.