Re: System-level inferiors.
On 20.11.2019 11:57, Pierre Neidhardt wrote: This is very nice. As far as I know, the inferior interface is still "unstable", but this would be a good start for a blog/cookbook article nonetheless! :) Pierre, I think something like this definitely should go in the cookbook regarding inferiors and the time-machine mechanism. Let me know what I can do to help. Brett
Re: System-level inferiors.
On 20.11.2019 02:55, bre...@posteo.net wrote: On 20.11.2019 02:35, bre...@posteo.net wrote: On 20.11.2019 02:29, bre...@posteo.net wrote: On 19.11.2019 21:02, bre...@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): (#) 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 _ _ #(key …> …) 829:9 15 (catch _ _ #(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 # _ # _ # …) 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 (#7f358c6…>) …) 201:36 0 (lookup-compiler (#7f358…>)) guix/gexp.scm:201:36: In procedure lookup-compiler: In procedure struct_vtable: Wrong type argument in position 1 (expecting struct): (#) 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)
Re: System-level inferiors.
On 20.11.2019 02:35, bre...@posteo.net wrote: On 20.11.2019 02:29, bre...@posteo.net wrote: On 19.11.2019 21:02, bre...@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): (#) 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 _ _ #(key …> …) 829:9 15 (catch _ _ #(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 # _ # _ # …) 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 (#7f358c6…>) …) 201:36 0 (lookup-compiler (#7f358…>)) guix/gexp.scm:201:36: In procedure lookup-compiler: In procedure struct_vtable: Wrong type argument in position 1 (expecting struct): (#) https://lists.gnu.org/archive/html/bug-guix/2018-12/msg00153.html Relevant bug issue.
Re: System-level inferiors.
On 20.11.2019 02:29, bre...@posteo.net wrote: On 19.11.2019 21:02, bre...@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): (#) 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 _ _ #(key …> …) 829:9 15 (catch _ _ #(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 # _ # _ # …) 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 (#7f358c6…>) …) 201:36 0 (lookup-compiler (#7f358…>)) guix/gexp.scm:201:36: In procedure lookup-compiler: In procedure struct_vtable: Wrong type argument in position 1 (expecting struct): (#)
Re: System-level inferiors.
On 19.11.2019 21:02, bre...@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): (#) Will keep investigating a way to do this. Brett Gilio