all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: brettg@posteo.net
To: help-guix <help-guix@gnu.org>
Cc: Help-Guix <help-guix-bounces+brettg=posteo.net@gnu.org>
Subject: Re: System-level inferiors.
Date: Wed, 20 Nov 2019 03:05:40 +0100	[thread overview]
Message-ID: <7dc16ac6617c713631a29f639397f6d0@posteo.net> (raw)
In-Reply-To: <4de784d5ed1ec86e5d02f1b3dd6b3ee2@posteo.net>



On 20.11.2019 02:55, brettg@posteo.net wrote:
> On 20.11.2019 02:35, brettg@posteo.net wrote:
>> On 20.11.2019 02:29, brettg@posteo.net wrote:
>>> On 19.11.2019 21:02, brettg@posteo.net wrote:
>>>> Hey all,
>>>> 
>>>> I am experimenting with the inferior system a little bit. I am
>>>> attempting to see if I can specify a specific version of the
>>>> linux-libre kernel to be taken from an inferior and applied to my
>>>> system configuration.
>>>> 
>>>> (define kernel-channel-inf
>>>>   ;; This is the old revision from which
>>>>   ;; we will obtain our desired kernel version.
>>>>   (list (channel
>>>>  (name 'guix)
>>>>  (url "https://git.savannah.gnu.org/git/guix.git")
>>>>  (commit
>>>>           "fd41243c819635795f4e4bdef1e2823db5234e24"))))
>>>> 
>>>> (define kernel-inferior-proc
>>>>   ;; An inferior representing `kernel-channel-inf'.
>>>>   (inferior-for-channels kernel-channel-inf))
>>>> 
>>>> (operating-system
>>>> 
>>>>   ...
>>>> 
>>>>  (kernel (lookup-inferior-packages
>>>>   kernel-inferior-proc "linux-libre" "4.19.81"))
>>>> 
>>>> It took me some experimenting to come up with this, in that
>>>> experimenting the channel revision was built and cached. However, 
>>>> when
>>>> I run `guix system build config.scm` with the above code snippet, 
>>>> the
>>>> process just hangs on
>>>> 
>>>> Updating channel 'guix' from Git repository at
>>>> 'https://git.savannah.gnu.org/git/guix.git'...
>>>> 
>>>> I am not sure how to proceed to achieve what I am hoping for. Any 
>>>> thoughts?
>>>> 
>>>> Brett Gilio
>>> 
>>> Update, I used guix time-machine to ensure that this specific build 
>>> of
>>> linux-libre 4.19.81 was available in the store, so now it is not
>>> hanging:
>>> 
>>> Instead, it is telling me:
>>> 
>>> guix/gexp.scm:201:36: In procedure lookup-compiler:
>>> In procedure struct_vtable: Wrong type argument in position 1
>>> (expecting struct): (#<inferior-package linux-libre@4.19.81
>>> 7f13870f8900>)
>>> 
>>> Will keep investigating a way to do this.
>>> 
>>> Brett Gilio
>> 
>> brettg@oryx ~/Repos/cfg/machines/oryx$ guix system build config.scm
>> Updating channel 'guix' from Git repository at
>> 'https://git.savannah.gnu.org/git/guix.git'...
>> Backtrace:
>>           18 (primitive-load 
>> "/home/brettg/.config/guix/current/bin/guix")
>> In guix/ui.scm:
>>   1774:12 17 (run-guix-command _ . _)
>> In ice-9/boot-9.scm:
>>     829:9 16 (catch _ _ #<procedure 7f359bd3d1f8 at guix/ui.scm:647:2 
>> (key …> …)
>>     829:9 15 (catch _ _ #<procedure 7f359bd3d210 at guix/ui.scm:770:6 
>> (key …> …)
>> In guix/scripts/system.scm:
>>    1216:8 14 (_)
>> In guix/status.scm:
>>     768:4 13 (call-with-status-report _ _)
>> In guix/scripts/system.scm:
>>    1072:4 12 (process-action _ _ _)
>> In guix/store.scm:
>>    623:10 11 (call-with-store _)
>>   1834:24 10 (run-with-store #<store-connection 256.99 7f358c4d65a0> _ 
>> # _ # …)
>> In guix/scripts/system.scm:
>>     778:2  9 (_ _)
>> In gnu/services.scm:
>>     320:2  8 (_ _)
>> In gnu/system.scm:
>>     469:4  7 (_ _)
>> In guix/gexp.scm:
>>     859:2  6 (_ _)
>>     720:2  5 (_ _)
>> In ./guix/monads.scm:
>>     482:9  4 (_ _)
>> In guix/gexp.scm:
>>    590:13  3 (_ _)
>> In guix/store.scm:
>>   1692:13  2 (_ _)
>> In guix/gexp.scm:
>>     222:2  1 (lower-object (#<inferior-package linux-libre@4.19.81 
>> 7f358c6…>) …)
>>    201:36  0 (lookup-compiler (#<inferior-package linux-libre@4.19.81 
>> 7f358…>))
>> 
>> guix/gexp.scm:201:36: In procedure lookup-compiler:
>> In procedure struct_vtable: Wrong type argument in position 1
>> (expecting struct): (#<inferior-package linux-libre@4.19.81
>> 7f358c651660>)
> 
> https://lists.gnu.org/archive/html/bug-guix/2018-12/msg00153.html
> 
> Relevant bug issue.

I figured it out, nevermind!

Final solution:

(define kernel-inferior-channel
   ;; This is the old revision from which
   ;; we will obtain our desired kernel version.
   (list (channel
	 (name 'guix)
	 (url "https://git.savannah.gnu.org/git/guix.git")
	 (commit
           "fd41243c819635795f4e4bdef1e2823db5234e24"))))

(define linux-libre-4.19.81-inf
   (first
    (lookup-inferior-packages
     (inferior-for-channels kernel-inferior-channel)
     "linux-libre" "4.19.81")))

... in operating-system ...

  (kernel linux-libre-4.19.81-inf)

  reply	other threads:[~2019-11-20  2:05 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-19 20:02 System-level inferiors brettg
2019-11-20  1:29 ` brettg
2019-11-20  1:35   ` brettg
2019-11-20  1:55     ` brettg
2019-11-20  2:05       ` brettg [this message]
2019-11-20 10:57         ` Pierre Neidhardt
2019-11-20 16:13           ` brettg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7dc16ac6617c713631a29f639397f6d0@posteo.net \
    --to=brettg@posteo.net \
    --cc=help-guix-bounces+brettg=posteo.net@gnu.org \
    --cc=help-guix@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.