ML on Guix (Was: Re: gfortran seems to require gcc-toolchain)

2019-11-19 Thread brettg




On 20.11.2019 05:37, John Soo wrote:

Hi Brett,

A touch off-topic.


That is what I do, like in my mlton package.


Do you have urweb packaged by any chance, too?

It would really save me the trouble!

- John


John,

I am familiar with it but I do not have it packaged. If you would like I 
might be able to see if I can do that. I really would like to get the ML 
situation on Guix spiffed up but there are some obstacles that need to 
be addressed (namely around bootstrapping, of course.)


You can reach out to me off list, or on Telegram @brettmg.

Best,
Brett Gilio
https://git.sr.ht/~brettgilio



Re: gfortran seems to require gcc-toolchain

2019-11-19 Thread John Soo
Hi Brett,

A touch off-topic.

> That is what I do, like in my mlton package.

Do you have urweb packaged by any chance, too?

It would really save me the trouble!

- John



Re: System-level inferiors.

2019-11-19 Thread brettg




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.

2019-11-19 Thread brettg




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.

2019-11-19 Thread brettg




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.

2019-11-19 Thread brettg




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



Re: Installing Guix System on an external hard drive

2019-11-19 Thread Marius Bakke
Jan  writes:

> On Fri, 15 Nov 2019 15:49:23 +0100
> Marius Bakke  wrote:
>
>> Did you get the same error when you mounted at /boot/efi?
> Yes.
>
>> If you want the USB drive to be 'portable', i.e. not tied to a single
>> system, you can not use 'grub-efi-bootloader'.  The reason is that
>> grub-efi relies on updating UEFI firmware variables *on the running
>> system*, to make the newly installed bootloader show up in the UEFI
>> boot menu.
>> 
>> For the same reason, it is not possible to use it on a non-UEFI
>> system.
>> 
>> It would be good to have a 'grub-standalone-bootloader' procedure that
>> would write a self-contained UEFI firmware executable to a standard
>> location, similar to what Guix does for disk images:
>> 
>> https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/build/vm.scm?id=4dcf32b56b824efcdb181c9f4cc7ee6c8a0ba125#n399
>> 
>> Would you like to try implementing it?
>
> Well, I could try as a Scheme learning exercise, but it would take me
> some time, because I'm a fresh Guile coder and the only thing I know
> about UEFI is that it has a buggy implementation on my motherboard and
> GRUB goes to hell :)
> Any hint where could I start?

I would start by copying an existing bootloader from
gnu/bootloader/grub.scm and make it run 'grub-mkstandalone' as in the
above URL.

Hope this helps!
Marius


signature.asc
Description: PGP signature


Re: Emacs in server mode using a Shepherd user service

2019-11-19 Thread brettg




On 19.11.2019 22:58, bre...@posteo.net wrote:

On 19.11.2019 22:57, Maxim Cournoyer wrote:

Hello!

bre...@posteo.net writes:


On 18.11.2019 00:10, Chris Marusich wrote:

Hi Maxim,

Maxim Cournoyer  writes:

I typically start Emacs in server mode using a shepherd user 
service,

so rarely restart Emacs.


If it isn't too much to ask, could you share the configuration you 
use

to accomplish this?  I'd like to do something similar, and I suspect
it's probably one of those things that is "easy to do" if you 
already

know exactly what to do, and rather time-consuming to figure out
otherwise.  Perhaps we could make another Cook Book section about 
it?


Seconding Chris' comment

Brett Gilio


A Cook Book section would indeed be great!  I originally was 
enlightened

by Dave Thompson on how to go about it.

In my ~/.config/shepherd directory, I have two Scheme files:

init.scm
--8<---cut here---start->8---
;;; Shepherd User Services
(load "services.scm")

(register-services
 emacs
 gpg-agent
 jackd
 ibus-daemon
 workrave)

;; Send shepherd into the background.
(action 'shepherd 'daemonize)

;; Services to start when shepherd starts:
(for-each start '(emacs
  gpg-agent
  ibus-daemon
  workrave))
--8<---cut here---end--->8---

services.scm
--8<---cut here---start->8---
(define emacs
  (make 
#:provides '(emacs)
#:requires '()
#:start (make-system-constructor "emacs --daemon")
#:stop (make-system-destructor "emacsclient --eval 
\"(kill-emacs)\"")))


(define ibus-daemon
  (make 
#:provides '(ibus-daemon)
#:requires '()
#:start (make-system-constructor "ibus-daemon --xim --daemonize 
--replace")

#:stop (make-system-destructor "pkill ibus-daemon")))

(define jackd
  (make 
#:provides '(jackd)
#:requires '()
#:start (make-system-constructor "jackd -d alsa &")
#:stop (make-system-destructor "pkill jackd")))

(define gpg-agent
  (let ((pinentry (string-append (getenv "HOME")
 "/.guix-profile/bin/pinentry")))
(make 
  #:provides '(gpg-agent)
  #:requires '()
  #:start (make-system-constructor
   (string-append "gpg-agent --daemon "
  "--pinentry-program " pinentry))
  #:stop (make-system-destructor "gpgconf --kill gpg-agent"

(define workrave
  (make 
#:provides '(workrave)
#:requires '()
#:start (make-system-constructor "workrave &")
#:stop (make-system-destructor "pkill workrave")))
--8<---cut here---end--->8---

I've included all the services I currently use in case they might be 
of

interest.

The last bit that is needed (other than having the required software
installed to your profile, including shepherd), is to launch shepherd
when your session starts:

For me, that is simply calling 'shepherd' in my ~/.xsession, just 
before

the call to my window manager (ratpoison).

I then start Emacs using 'emacsclient -c'.

HTH!

Maxim


Perfect, thank you Maxim!


I also want to throw Alex's git repo out there which is relevant

https://github.com/alezost/shepherd-config



Re: Emacs in server mode using a Shepherd user service

2019-11-19 Thread brettg




On 19.11.2019 22:57, Maxim Cournoyer wrote:

Hello!

bre...@posteo.net writes:


On 18.11.2019 00:10, Chris Marusich wrote:

Hi Maxim,

Maxim Cournoyer  writes:

I typically start Emacs in server mode using a shepherd user 
service,

so rarely restart Emacs.


If it isn't too much to ask, could you share the configuration you 
use

to accomplish this?  I'd like to do something similar, and I suspect
it's probably one of those things that is "easy to do" if you already
know exactly what to do, and rather time-consuming to figure out
otherwise.  Perhaps we could make another Cook Book section about it?


Seconding Chris' comment

Brett Gilio


A Cook Book section would indeed be great!  I originally was 
enlightened

by Dave Thompson on how to go about it.

In my ~/.config/shepherd directory, I have two Scheme files:

init.scm
--8<---cut here---start->8---
;;; Shepherd User Services
(load "services.scm")

(register-services
 emacs
 gpg-agent
 jackd
 ibus-daemon
 workrave)

;; Send shepherd into the background.
(action 'shepherd 'daemonize)

;; Services to start when shepherd starts:
(for-each start '(emacs
  gpg-agent
  ibus-daemon
  workrave))
--8<---cut here---end--->8---

services.scm
--8<---cut here---start->8---
(define emacs
  (make 
#:provides '(emacs)
#:requires '()
#:start (make-system-constructor "emacs --daemon")
#:stop (make-system-destructor "emacsclient --eval 
\"(kill-emacs)\"")))


(define ibus-daemon
  (make 
#:provides '(ibus-daemon)
#:requires '()
#:start (make-system-constructor "ibus-daemon --xim --daemonize 
--replace")

#:stop (make-system-destructor "pkill ibus-daemon")))

(define jackd
  (make 
#:provides '(jackd)
#:requires '()
#:start (make-system-constructor "jackd -d alsa &")
#:stop (make-system-destructor "pkill jackd")))

(define gpg-agent
  (let ((pinentry (string-append (getenv "HOME")
 "/.guix-profile/bin/pinentry")))
(make 
  #:provides '(gpg-agent)
  #:requires '()
  #:start (make-system-constructor
   (string-append "gpg-agent --daemon "
  "--pinentry-program " pinentry))
  #:stop (make-system-destructor "gpgconf --kill gpg-agent"

(define workrave
  (make 
#:provides '(workrave)
#:requires '()
#:start (make-system-constructor "workrave &")
#:stop (make-system-destructor "pkill workrave")))
--8<---cut here---end--->8---

I've included all the services I currently use in case they might be of
interest.

The last bit that is needed (other than having the required software
installed to your profile, including shepherd), is to launch shepherd
when your session starts:

For me, that is simply calling 'shepherd' in my ~/.xsession, just 
before

the call to my window manager (ratpoison).

I then start Emacs using 'emacsclient -c'.

HTH!

Maxim


Perfect, thank you Maxim!



Re: Emacs in server mode using a Shepherd user service

2019-11-19 Thread Maxim Cournoyer
Hello!

bre...@posteo.net writes:

> On 18.11.2019 00:10, Chris Marusich wrote:
>> Hi Maxim,
>>
>> Maxim Cournoyer  writes:
>>
>>> I typically start Emacs in server mode using a shepherd user service,
>>> so rarely restart Emacs.
>>
>> If it isn't too much to ask, could you share the configuration you use
>> to accomplish this?  I'd like to do something similar, and I suspect
>> it's probably one of those things that is "easy to do" if you already
>> know exactly what to do, and rather time-consuming to figure out
>> otherwise.  Perhaps we could make another Cook Book section about it?
>
> Seconding Chris' comment
>
> Brett Gilio

A Cook Book section would indeed be great!  I originally was enlightened
by Dave Thompson on how to go about it.

In my ~/.config/shepherd directory, I have two Scheme files:

init.scm
--8<---cut here---start->8---
;;; Shepherd User Services
(load "services.scm")

(register-services
 emacs
 gpg-agent
 jackd
 ibus-daemon
 workrave)

;; Send shepherd into the background.
(action 'shepherd 'daemonize)

;; Services to start when shepherd starts:
(for-each start '(emacs
  gpg-agent
  ibus-daemon
  workrave))
--8<---cut here---end--->8---

services.scm
--8<---cut here---start->8---
(define emacs
  (make 
#:provides '(emacs)
#:requires '()
#:start (make-system-constructor "emacs --daemon")
#:stop (make-system-destructor "emacsclient --eval \"(kill-emacs)\"")))

(define ibus-daemon
  (make 
#:provides '(ibus-daemon)
#:requires '()
#:start (make-system-constructor "ibus-daemon --xim --daemonize --replace")
#:stop (make-system-destructor "pkill ibus-daemon")))

(define jackd
  (make 
#:provides '(jackd)
#:requires '()
#:start (make-system-constructor "jackd -d alsa &")
#:stop (make-system-destructor "pkill jackd")))

(define gpg-agent
  (let ((pinentry (string-append (getenv "HOME")
 "/.guix-profile/bin/pinentry")))
(make 
  #:provides '(gpg-agent)
  #:requires '()
  #:start (make-system-constructor
   (string-append "gpg-agent --daemon "
  "--pinentry-program " pinentry))
  #:stop (make-system-destructor "gpgconf --kill gpg-agent"

(define workrave
  (make 
#:provides '(workrave)
#:requires '()
#:start (make-system-constructor "workrave &")
#:stop (make-system-destructor "pkill workrave")))
--8<---cut here---end--->8---

I've included all the services I currently use in case they might be of
interest.

The last bit that is needed (other than having the required software
installed to your profile, including shepherd), is to launch shepherd
when your session starts:

For me, that is simply calling 'shepherd' in my ~/.xsession, just before
the call to my window manager (ratpoison).

I then start Emacs using 'emacsclient -c'.

HTH!

Maxim



Re: gfortran seems to require gcc-toolchain

2019-11-19 Thread brettg




On 19.11.2019 22:26, Marius Bakke wrote:

Konrad Hinsen  writes:


Hi Simon,


Maybe a "gfortran-toolchain" package with all the battery included?


That sounds like a very good idea! And I even volunteer to
implement it. Except if someone comes up with a better
solution of course.


Sounds great to me.  :-)


That is what I do, like in my mlton package.

(define-public mlton
  (package (inherit mlton-no-gcc)
   (name "mlton")
   (propagated-inputs
`(("gcc-toolchain" ,gcc-toolchain)
  ,@(package-propagated-inputs mlton-no-gcc)




Re: gfortran seems to require gcc-toolchain

2019-11-19 Thread Marius Bakke
Konrad Hinsen  writes:

> Hi Simon,
>
>> Maybe a "gfortran-toolchain" package with all the battery included?
>
> That sounds like a very good idea! And I even volunteer to
> implement it. Except if someone comes up with a better
> solution of course.

Sounds great to me.  :-)


signature.asc
Description: PGP signature


System-level inferiors.

2019-11-19 Thread brettg

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




Why does installing texlive download that 2 GB file twice?

2019-11-19 Thread Konrad Hinsen
Hi Guix,

I am building an environment containing texlive. I was prepared for a
huge download, but not for it to happen twice! Here's the log
(with some comments):

  The following derivations will be built:
 /gnu/store/mp6v3nngryf58l74l1j4y32dv60rp6qn-profile.drv
 /gnu/store/5bv2w5k8lgjwpzgyh31cyp8vxfg0rrnr-texlive-texmf-20180414.drv

OK.
  2,640.0 MB will be downloaded:
 /gnu/store/w02vdgqimzrby3yab4062yq34hjxz6nr-libyaml-0.1.7
 /gnu/store/byhjm99aabwh91csyjsaja83m7xlbln6-python-pyyaml-3.13
 /gnu/store/5aq60gx42sfs5drigb5g7fpa7fh1pq4z-texlive-20180414
 /gnu/store/jl8jj8d1s2ldvazylyfgmz7ga7rvcgxx-module-import-compiled
 /gnu/store/mj40l554qxw15acz0h018gk5c9mxzfgn-texlive-20180414-texmf.tar.xz
 /gnu/store/w3jlc8pk8416m7h677r5vq92b66h8cqd-module-import
 /gnu/store/dch016c5w3zijqrpkhsky89s81jk7p41-cairo-1.16.0
 /gnu/store/18q4r8bpwmpm4w15zipf66l3bvdjzfbs-poppler-0.79.0
 /gnu/store/xypzclmh2i1nkzyyb1crmhpbngx3pcmw-ruby-2.5.3
 /gnu/store/15zh79zna12m45afl6h1rclsnfsw7m7b-ghostscript-9.27
 /gnu/store/94nw4ch1gjn6pqdb54a90k6cvnx3lag3-potrace-1.15
 /gnu/store/l06xm6ax5j99gkqjkbwsrb0353l2fclz-zziplib-0.13.69
 /gnu/store/543ybxjpmkpwzcbdxmlr3x8qwpxlb1hw-teckit-2.5.9
 /gnu/store/azd3rg350gjkgzvzps3s4j3kpz5kxh57-texlive-bin-20180414
 /gnu/store/78w7y0lxar70j512iqw8x3nimzj10yga-python-3.7.4
 /gnu/store/6r0hkmky937g824g02c8mzyhq80vjql4-python-3.7.4-tk

Make sense. That's 2.6 GB.

  The following grafts will be made:
 /gnu/store/j3xfkw271db0bnvkylf8fik3dqnmwwck-python-3.7.4.drv
 /gnu/store/vcbpxwrrkk1frp1kgdbn86dm87l1zl85-texlive-20180414.drv
 /gnu/store/97c19j1dnxsjshmpp80p6hfi4v4bg0by-texlive-bin-20180414.drv
 /gnu/store/bs7w34zc6a0sznbln8wmsbrdjdhfzpmk-teckit-2.5.9.drv
 /gnu/store/cb0aag3qha7znkrv9z12j2smvk3kn8h2-ruby-2.5.3.drv
 /gnu/store/dqn2lf7755s4wl4kn49m4b18va5yvxjz-texlive-texmf-20180414.drv
 /gnu/store/w7ynpv1wyvcqk8lkzwkgblik5gl5q0r2-python-pyyaml-3.13.drv
  The following profile hooks will be built:
 /gnu/store/609kij4ac4154x3aslmpwpiq8b6kpb5g-fonts-dir.drv
 /gnu/store/6ckxy3rmh55dd95zr94wx3q063q1bhv1-info-dir.drv
 /gnu/store/v7wnqdpbfk9yd1kfdsa013rj22jy47id-manual-database.drv
 /gnu/store/yqzsdl5b4mmfplbhp08lskb5m0g2v1iq-ca-certificate-bundle.drv

Looks OK as well. And now...

  downloading from 
https://ci.guix.gnu.org/nar/mj40l554qxw15acz0h018gk5c9mxzfgn-texlive-20180414-texmf.tar.xz...
   texlive-20180414-texmf.tar.xz  2.42GiB 1.4MiB/s 29:22 [##] 
100.0%

That's my 2 GB of TeXLive. Some small stuff follows:

  downloading from 
https://ci.guix.gnu.org/nar/lzip/dch016c5w3zijqrpkhsky89s81jk7p41-cairo-1.16.0...
   cairo-1.16.0  1.0MiB 3.0MiB/s 00:00 [##] 
100.0%

  downloading from 
https://ci.guix.gnu.org/nar/lzip/15zh79zna12m45afl6h1rclsnfsw7m7b-ghostscript-9.27...
   ghostscript-9.27  10.9MiB4.8MiB/s 00:02 [##] 
100.0%

  downloading from 
https://ci.guix.gnu.org/nar/lzip/w02vdgqimzrby3yab4062yq34hjxz6nr-libyaml-0.1.7...
   libyaml-0.1.7  70KiB 1.6MiB/s 00:00 [##] 
100.0%

  downloading from 
https://ci.guix.gnu.org/nar/gzip/w3jlc8pk8416m7h677r5vq92b66h8cqd-module-import...
   module-import  334B   29KiB/s 00:00 [##] 
100.0%

  downloading from 
https://ci.guix.gnu.org/nar/lzip/18q4r8bpwmpm4w15zipf66l3bvdjzfbs-poppler-0.79.0...
   poppler-0.79.0  1.3MiB   4.4MiB/s 00:00 [##] 
100.0%

  downloading from 
https://ci.guix.gnu.org/nar/lzip/jl8jj8d1s2ldvazylyfgmz7ga7rvcgxx-module-import-compiled...
   module-import-compiled  166KiB   2.0MiB/s 00:00 [##] 
100.0%

  downloading from 
https://ci.guix.gnu.org/nar/lzip/94nw4ch1gjn6pqdb54a90k6cvnx3lag3-potrace-1.15...
   potrace-1.15  96KiB  1.9MiB/s 00:00 [##] 
100.0%

  downloading from 
https://ci.guix.gnu.org/nar/lzip/6r0hkmky937g824g02c8mzyhq80vjql4-python-3.7.4-tk...
   python-3.7.4-tk  29KiB   2.2MiB/s 00:00 [##] 
100.0%

  downloading from 
https://ci.guix.gnu.org/nar/lzip/byhjm99aabwh91csyjsaja83m7xlbln6-python-pyyaml-3.13...
   python-pyyaml-3.13  148KiB   1.7MiB/s 00:00 [##] 
100.0%

  downloading from 
https://ci.guix.gnu.org/nar/lzip/xypzclmh2i1nkzyyb1crmhpbngx3pcmw-ruby-2.5.3...
   ruby-2.5.3  5.5MiB   1.7MiB/s 00:03 [##] 
100.0%

  downloading from 
https://ci.guix.gnu.org/nar/lzip/543ybxjpmkpwzcbdxmlr3x8qwpxlb1hw-teckit-2.5.9...
   teckit-2.5.9  445KiB 2.3MiB/s 00:00 [##] 
100.0%

  downloading from 
https://ci.guix.gnu.org/nar/lzip/l06xm6ax5j99gkqjkbwsrb0353l2fclz-zziplib-0.13.69...
   zziplib-0.13.69  93KiB   1.3MiB/s 00:00 [##] 
100.0%

  downloading from 
https://ci.guix.gnu.org/nar/lzip/azd3rg350gjkgzvzps3s4j3kpz5kxh57-texlive-bin-20180414...
   texlive-bin-20180414