Subject: bug#25762: trailing slash breaks “guix package”

From: Ricardo Wurmus <[email-masked]>
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