bug#57801: 'inferior-with-channels' is eager, making it hard to use in channels
Sorry for the empty reply... How can we define an inferior package? some commit broke ceph and we need it. Doing this: in top of our channels break pulling with: , | (define inferior-for-ceph | (inferior-for-channels (list (channel | (name 'guix) | (url "https://git.savannah.gnu.org/git/guix.git";) | (commit "53396a22afc04536ddf75d8f82ad2eafa5082725") | | (define ceph | (first (lookup-inferior-packages inferior-for-ceph "ceph"))) ` , | (repl-version 0 1 1) | (exception %exception (non-self-quoting 140736906039808 "#<&store-connection-error file: \"/var/guix/daemon-socket/socket\" errno: 2>")) ` Do you know what would be the workaround?
bug#57801: 'inferior-with-channels' is eager, making it hard to use in channels
On 14-09-2022 19:18, Lukasz Olszewski wrote: Additionally this fails even when used like this: (define inferior (mlambda () (inferior-for-channels channels))) This makes it lazy (not eager). (lookup-inferior-packages (inferior) "somepackage") You are running (inferior) directly after defining the lazy thing, making it effectively _eager_ (not lazy) again. Instead of doing this on the top-level, move the lookup-inferior-packages to inside the 'inputs' or 'native-inputs', to _keep_ it lazy. Greetings, Maxime. OpenPGP_0x49E3EE22191725EE.asc Description: OpenPGP public key OpenPGP_signature Description: OpenPGP digital signature
bug#57801: 'inferior-with-channels' is eager, making it hard to use in channels
Additionally this fails even when used like this: (define inferior (mlambda () (inferior-for-channels channels))) (lookup-inferior-packages (inferior) "somepackage")
bug#57801: 'inferior-with-channels' is eager, making it hard to use in channels
As experienced by Luks6655, you can't do (define inferior (inferior-with-channels CHANNELS)) on the top-level of a channel module. I think the issue is that inferior-with-channels is eager (not lazy), so it cannot be used in a channel on the top-level, as builds (including channel builds) are isolated from the network and have limited access to the file system. If it would be made lazy, then (define inferior (inferior-with-channels CHANNELS)) (define-public p (package [...] (inputs (list (lookup-inferior-package inferior "hello") should, in theory, work (unverified). Greetings, Maxime. OpenPGP_0x49E3EE22191725EE.asc Description: OpenPGP public key OpenPGP_signature Description: OpenPGP digital signature