GNU bug report logs - #25762
trailing slash breaks “guix package”

Previous Next

Package: guix;

Reported by: Ricardo Wurmus <rekado <at> elephly.net>

Date: Thu, 16 Feb 2017 17:43:02 UTC

Severity: important

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

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: ludo <at> gnu.org (Ludovic Courtès)
Cc: tracker <at> debbugs.gnu.org
Subject: bug#25762: closed (trailing slash breaks “guix package”)
Date: Thu, 20 Jul 2017 13:32:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Thu, 20 Jul 2017 15:31:13 +0200
with message-id <87y3rjutem.fsf <at> gnu.org>
and subject line Re: bug#25772: [PATCH] guix package: Remove trailing slash from profile path.
has caused the debbugs.gnu.org bug report #25762,
regarding trailing slash breaks “guix package”
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
25762: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=25762
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Ricardo Wurmus <rekado <at> elephly.net>
To: "'bug-guix\@gnu.org'" <bug-guix <at> gnu.org>
Subject: trailing slash breaks “guix package”
Date: Thu, 16 Feb 2017 18:41:40 +0100
Here’s a confusing error:

--8<---------------cut here---------------start------------->8---
$ guix package -p $HOME/.guix-profile/ -l
Backtrace:
In ice-9/boot-9.scm:
 160: 13 [catch #t #<catch-closure 15d20c0> ...]
In unknown file:
   ?: 12 [apply-smob/1 #<catch-closure 15d20c0>]
In ice-9/boot-9.scm:
  66: 11 [call-with-prompt prompt0 ...]
In ice-9/eval.scm:
 432: 10 [eval # #]
In ice-9/boot-9.scm:
2404: 9 [save-module-excursion #<procedure 15f5900 at ice-9/boot-9.scm:4051:3 ()>]
4056: 8 [#<procedure 15f5900 at ice-9/boot-9.scm:4051:3 ()>]
1727: 7 [%start-stack load-stack ...]
1732: 6 [#<procedure 1609b70 ()>]
In unknown file:
   ?: 5 [primitive-load "/gnu/store/i3a6hwy46p0hzwiwvpaykl9w84vgpz2p-guix-0.12.0-4.d9da/bin/.guix-real"]
In guix/ui.scm:
1228: 4 [run-guix-command package "-p" "/home/rekado/.guix-profile/" "-l"]
In ice-9/boot-9.scm:
 160: 3 [catch srfi-34 #<procedure 20e3040 at guix/ui.scm:432:2 ()> ...]
 160: 2 [catch system-error ...]
In guix/scripts/package.scm:
 885: 1 [#<procedure 20e3060 at guix/scripts/package.scm:884:4 ()>]
 688: 0 [process-query (# # # # ...)]

guix/scripts/package.scm:688:14: In procedure process-query:
guix/scripts/package.scm:688:14: In procedure car: Wrong type argument in position 1 (expecting pair): ()
--8<---------------cut here---------------end--------------->8---


This works fine, though:

$ guix package -p $HOME/.guix-profile -l

The only difference is the trailing slash of the argument to “-p”.  Guix
should handle this case gracefully, e.g. by stripping the trailing
slash.

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net



[Message part 3 (message/rfc822, inline)]
From: ludo <at> gnu.org (Ludovic Courtès)
To: Alex Kost <alezost <at> gmail.com>
Cc: Ricardo Wurmus <rekado <at> elephly.net>, 25772-done <at> debbugs.gnu.org,
 25762-done <at> debbugs.gnu.org
Subject: Re: bug#25772: [PATCH] guix package: Remove trailing slash from
 profile path.
Date: Thu, 20 Jul 2017 15:31:13 +0200
Hello!

Alex Kost <alezost <at> gmail.com> skribis:

> Ricardo Wurmus (2017-02-17 23:38 +0100) wrote:
>
> [...]
>>>    (let* ((profiles (match (filter-map (match-lambda
>>> -                                        (('profile . p) p)
>>> -                                        (_              #f))
>>> +                                        (('profile . p)
>>> +                                         (readlink (string-trim-right p #\/)))
>>> +                                        (_ #f))
>>>                                        opts)
>>>                       (() (list %current-profile))
>>>                       (lst lst)))
>>
>> I don’t know if this is the right place for this change or if this
>> should be further upstream.
>
> I think it is not the right place: you modify only 'process-query'
> procedure, but there is also 'process-actions', so the following command
> will still fail:
>
>   guix package -p /tmp/test-profile/ -i hello
>
> while the following succeeds:
>
>   guix package -p /tmp/test-profile -i hello
>
> So I would rather modify 'canonicalize-profile' procedure in that
> module.  I think it will be a general solution for --profile option.

Indeed.  I pushed something along these lines as
edbe07cd67d6050d94fe8ac1af15ab15e857b61d, and a related fix as
561f4e450078a06c707d3dcda2cf0e7d6eb5ebae.

Thanks!

Ludo’.


This bug report was last modified 7 years and 310 days ago.

Previous Next


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