GNU bug report logs - #42543
lint failure for packages on load path specified with -L

Previous Next

Package: guix;

Reported by: Jack Hill <jackhill <at> jackhill.us>

Date: Sun, 26 Jul 2020 04:21:01 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Jack Hill <jackhill <at> jackhill.us>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 42543 <at> debbugs.gnu.org
Subject: bug#42543: lint failure for packages on load path specified with -L
Date: Wed, 5 Aug 2020 17:42:21 -0400 (EDT)
[Message part 1 (text/plain, inline)]
Hi Ludo’! Hope you've enjoyed your (short) time away from the keyboard :)

On Wed, 5 Aug 2020, Ludovic Courtès wrote:

> Hi,
>
> Jack Hill <jackhill <at> jackhill.us> skribis:
>
>> jackhill <at> alperton ~$ guix lint -L lint-test my-hello
>> Backtrace:y-hello <at> 2.10 [formatting]...
>>            8 (primitive-load "/home/jackhill/.config/guix/current/bi…")
>> In guix/ui.scm:
>>   1974:12  7 (run-guix-command _ . _)
>> In ice-9/boot-9.scm:
>>   1736:10  6 (with-exception-handler _ _ #:unwind? _ # _)
>> In guix/store.scm:
>>    631:22  5 (thunk)
>> In srfi/srfi-1.scm:
>>     634:9  4 (for-each #<procedure 7f40c0484020 at guix/scripts/lin…> …)
>> In guix/scripts/lint.scm:
>>      60:4  3 (run-checkers _ _ #:store _)
>> In srfi/srfi-1.scm:
>>     634:9  2 (for-each #<procedure 7f40b2ab53f0 at guix/scripts/lin…> …)
>>     241:2  1 (for-each _ _)
>> In ice-9/boot-9.scm:
>>   1669:16  0 (raise-exception _ #:continuable? _)
>>
>> ice-9/boot-9.scm:1669:16: In procedure raise-exception:
>> In procedure for-each: Wrong type argument: #f
>
> I can’t reproduce this problem:

[…]

> $ guix lint -L /tmp/t my-hello
> $ echo $?
> 0
> $ guix show -L /tmp/t my-hello
> name: my-hello
> version: 2.10
> outputs: out
> systems: x86_64-linux i686-linux
> dependencies:
> location: /tmp/t/my-hello.scm:8:2
> homepage: https://www.gnu.org/software/hello/
> license: GPL 3+
> synopsis: Saluton, mondo GNU: ekzemplo de pako GNU
> description: GNU Hello montras la mesaĝon "Hello, world!" kaj finiĝas.  Ĝi funkcias kiel ekzemplo de norma
> + kodumada tradicio de GNU.  Tiel, ĝi subtenas komand-liniajn argumentojn, plurajn lingvojn, kaj tiel plu.

You've passed an absolute path to -L. Indeed, I don't don't see the 
problem when I do that, only when using a relative path. Can you try 
running `guix lint -L t my-hello` while your current working directory is 
/tmp?

> Do you still have this problem?

Yes, confirmed just now with 05f3d34094b23dc9612ff6641a0257bc4f7dcd12

> (Besides, ‘canonicalize-path’ should be used sparsely: it’s quite
> expensive and sometimes confusing for users.  With the proposed patches,
> “-L /does/not/exist” would now lead to an error.)

Perhaps this can be solved a different way. Could we propagate the 
knowledge of the current working directory, and construct absolute path 
when needed?

However, now that you, hopefully, better understand the problem, do we 
want to support relative paths passed to -L? It seems that they happen to 
work some places now, but not others (guix edit is another place where it 
doesn't work). I would be equally happy if we decided to not support 
relative paths, and warn the user when was was provided to -L.

I also think it might make sense for -L /does/not/exist to print a 
(friendly) error rather than silently not loading modules, but I'm open to 
arguments to the contrary.

Best,
Jack

This bug report was last modified 4 years and 267 days ago.

Previous Next


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