--- Begin Message ---
Subject: |
trailing slash breaks “guix package” |
Date: |
Thu, 16 Feb 2017 18:41:40 +0100 |
User-agent: |
mu4e 0.9.18; emacs 25.1.1 |
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
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#25772: [PATCH] guix package: Remove trailing slash from profile path. |
Date: |
Thu, 20 Jul 2017 15:31:13 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) |
Hello!
Alex Kost <address@hidden> 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’.
--- End Message ---