bug#57801: 'inferior-with-channels' is eager, making it hard to use in channels

2024-09-13 Thread Moisés Simón Vázquez
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

2022-09-15 Thread Maxime Devos



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

2022-09-14 Thread Lukasz Olszewski
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

2022-09-14 Thread Maxime Devos

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