Subject: bug#47949: Failed to produce output path for guix-package-cache

From: Maxim Cournoyer <[email-masked]>
Date: Thu, 04 May 2023 08:55:57 -0400

Hi Ludovic,

Ludovic Courtès <[email-masked]> writes:

> Hi Maxim,
>
> Maxim Cournoyer <[email-masked]> skribis:
>
>> $ guix pull
>> [...]
>> \builder for `/gnu/store/zliavnqgx3jxp8yc44nn1y34b3bjvlcw-guix-package-cache.drv' failed to produce output path `/gnu/store/0m2c2zrphqpmfhjb60k85yhfq704ay5r-guix-package-cache'
>> la compilation de /gnu/store/zliavnqgx3jxp8yc44nn1y34b3bjvlcw-guix-package-cache.drv a échoué
>> conseil : This usually indicates a bug in one of the channels you are pulling from, or some incompatibility
>> among them.  You can check the build log and report the issue to the channel developers.
>>
>> The channels you are pulling from are: guix sfl-packages.
>>
>> Vous trouverez le journal de compilation dans « /var/log/guix/drvs/zl/iavnqgx3jxp8yc44nn1y34b3bjvlcw-guix-package-cache.drv ».
>> cannot build derivation `/gnu/store/v5rszp4m1vv7zf20vrb1sghi4528d40j-profile.drv': 1 dependencies couldn't be built
>> guix pull: erreur : build of `/gnu/store/v5rszp4m1vv7zf20vrb1sghi4528d40j-profile.drv' failed
>>
>> $ tail /var/log/guix/drvs/zl/iavnqgx3jxp8yc44nn1y34b3bjvlcw-guix-package-cache.drv
>>   1694:48  4 (thunk)
>> In sfl/packages/sflvault.scm:
>>     75:29  3 (propagated-inputs #<package [email-masked]?>)
>> In ice-9/boot-9.scm:
>>   1685:16  2 (raise-exception _ #:continuable? _)
>>   1780:13  1 (_ #<&compound-exception components: (#<&undefined-vari?>)
>> In unknown file:
>>            0 (backtrace #<undefined>)
>>
>> (exception unbound-variable (value #f) (value "Unbound variable: ~S")
>> (value (python-pycrypto)) (value #f))
>
> Isn’t the advice above correct?  The unbound-variable error appears to
> come from sfl/packages/sflvault.scm, not from the ‘guix’ channel.

I think so :-).  My confusion stemmed from using a Guix inferior for the
package 'sflvault-client' from that channel... but that only holds at
the time of building the package, not at the time of 'guix pull'.

I'll see if I can fix the channel, thanks.

For the record, a stripped down version of my user manifest reads:

--8<---------------cut here---------------start------------->8---
(use-modules (gnu packages)
             (guix channels)
             (guix inferior)
             (guix profiles)
             (srfi srfi-1))

;;; An inferior for a working sflvault-client package.
(define sflvault-inferior
  (inferior-for-channels
   (list (channel
          (name 'guix)
          (url "https://git.savannah.gnu.org/git/guix.git")
          (commit "9ed65e6af77893b658a7159b091b5002892c2f95"))
         (channel
          (name 'sfl-guix-channels)
          (url "https://gitlab.com/Apteryks/sfl-guix-channel")
          (commit "9b9ba3f72d939bfc796b7457eafe0ef8b2ace81f")))))

(concatenate-manifests
 (list (specifications->manifest
        '("hello"))
       ;; FIXME: sflvault-client doesn't build anymore on latest Guix.
       (packages->manifest
        (list (first (lookup-inferior-packages sflvault-inferior
                                               "sflvault-client"))))))
--8<---------------cut here---------------end--------------->8---

While my channel definitions at ~/.config/guix/channels.scm reads:

--8<---------------cut here---------------start------------->8---
(cons (channel
       (name 'sfl-packages)
       (url "https://gitlab.com/Apteryks/sfl-guix-channel"))
      %default-channels)
--8<---------------cut here---------------end--------------->8---

-- 
Thanks,
Maxim