--- Begin Message ---
Subject: |
Inferior channel (I believe 'inferior-for-channels' function specifically) sometimes fails |
Date: |
Sat, 09 Feb 2019 11:11:39 +0000 (GMT) |
Often I'll get this output when building a manifest* with an inferior:
```
address@hidden /tmp$ guix package -n -m example-inferior.scm
Updating channel 'guix' from Git repository at
'https://git.savannah.gnu.org/git/guix.git'...
guix package: error: failed to load 'example-inferior.scm':
```
I believe this is the 'inferior-for-channels' function that fails.
After investigating a while back, it seems removing the relevant checkout in
~/.cache/guix/checkouts temporarily fixes it, but the issue often comes back.
* The manifest used is the example from the Guix manual in the section on
Inferiors, with the guix commit in the manifest replaced with my guix revision:
```
(use-modules (guix inferior) (guix channels)
(srfi srfi-1)) ;for 'first'
(define channels
;; This is the old revision from which we want to
;; extract guile-json.
(list (channel
(name 'guix)
(url "https://git.savannah.gnu.org/git/guix.git")
(commit
"722ac64cd7dc1f09fb77e2ae780427fa13c03110"))))
(define inferior
;; An inferior representing the above revision.
(inferior-for-channels channels))
;; Now create a manifest with the current "guile" package
;; and the old "guile-json" package.
(packages->manifest
(list (first (lookup-inferior-packages inferior "guile-json"))
(specification->package "guile")))
```
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#34402: Inferior channel (I believe 'inferior-for-channels' function specifically) sometimes fails |
Date: |
Tue, 12 Feb 2019 23:35:44 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) |
Hi,
<address@hidden> skribis:
> It looks like line 16205 (at the bottom pretty much) shows that a permissions
> issue is the culprit:
>
> openat(AT_FDCWD,
> "/home/itsme/.cache/guix/checkouts/pjmkglp4t7znuugeurpurzikxq3tnlaywmisyr27shj7apsnalwq/.git/FETCH_HEAD",
> O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC, 0666) = -1 EACCES (Permission denied)
>
> That file, along with is owned by root and is in the root group, and
> permissions are set to `-rw-r--r--`.
>
> It looks like this is caused by me running a guix command as root, with `sudo
> -E` (the -E is probably why it's modifying ownership of files in my user's
> guix cache directory), that checks out the git commit (I assume since it's
> only changing the ownership on those two files, the rest in that directory
> are owned by my user).
>
> Changing the owner of that file back to my user has made the error go away
> when running `guix package -n -m example-manifest.scm` - and if i then run
> that command again with 'sudo -E', the ownership of those files is changed
> back to root.
Great that you found out!
Commits 70a50305c495ca96fdec3d31e7e7972cfc54f8ee and
1d8b10d00f0c242bc5ce9540737af3d3f24a05c0 fix error reporting in this
case: you now get an error message mentioning Git and the invalid
permissions on a file in ~/.cache/guix/checkouts.
Thanks,
Ludo'.
--- End Message ---