GNU bug report logs - #46390
“guix lint -L relative/path foo“ fails

Previous Next

Package: guix;

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.

View this report as an mbox folder, status mbox, maintainer mbox


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):

From: zimoun <zimon.toutoune <at> gmail.com>
To: bug-guix <at> gnu.org
Subject: “guix lint -L relative/path foo“ fails
Date: Mon, 08 Feb 2021 23:39:05 +0100
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):

From: Ludovic Courtès <ludo <at> gnu.org>
To: zimoun <zimon.toutoune <at> gmail.com>
Cc: 46390-done <at> debbugs.gnu.org
Subject: Re: bug#46390: “guix lint -L relative/path
 foo“ fails
Date: Mon, 22 Feb 2021 12:15:12 +0100
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 34 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.