[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: guix pull only from private channel

From: Phil
Subject: Re: guix pull only from private channel
Date: Tue, 22 Dec 2020 09:27:34 +0000
User-agent: mu4e 1.2.0; emacs 26.3

zimoun writes:

> Hi,
> Do not take the snippet as bullet-proof.  It is a quick example to
> illustrate the Guix power. ;-)

Yep understood - it was a good starting point for me to expand on!

> You mean that:

> $ guix pull -C /tmp/one-channel.scm -p /tmp/one

> /tmp/one-channel.scm:2:1: error: 'guix' channel is lacking
> hint: Make sure your list of channels contains one channel named `guix' 
> providing the core of Guix.

Yes - I think I understand now, having re-read parts of the manual.  A
channel.scm represents a guix channel AND optional other channels.  It
has to describe where guix is.

> I am not sure to understand what you want to do, but you can pin one
> “guix” version with something like:
> --8<---------------cut here---------------start------------->8---
> (list
>  (channel
>   (name 'past)
>   (url "";))
>  (channel
>   (name 'guix) ; avoid to recompute heavy derivations and build modules
>   (url "";)
>   (commit "d62c9b2671be55ae0305bebfda17b595f33797f2"))) ; v1.1.0
> --8<---------------cut here---------------end--------------->8---

Yep this is what I've ended up doing - but am still a bit surprised that
even with a pinned guix commit id, and a private channel containing a
single trivial package with available substitute, doing a 'git pull' is
still fairly expensive (approx 1min).  This is quicker than pulling
latest guix, of course - so there is some improvement.

I was hoping that pinning the guix channel would make 'guix pull'
pretty fast.

My guess is that even though no packages are downloaded to update the
guix channel, time is still required to create the updated profile with the
pinned guix and the update to the single package in my private channel?


In my (simple/limited) use-case I can avoid the 'guix pull' altogether by using
use of GUIX_PACKAGE_PATH to point to my local packages that I'm
updating - no 'guix pull' is then needed (unlike a local channel/git
repo) and I get rid of the 1min wait.

This works well but having read this in the cookbook:

"Note: Starting from Guix 0.16, the more flexible Guix channels are the
preferred way and supersede ‘GUIX_PACKAGE_PATH’."

I'm wondering GUIX_PACKAGE_PATH is ultimately going to be removed, and
replaced by local clones of channels (which I accept are far more
flexible, but in my specific use-case less efficient)?

I don't suppose anyone cares to comment on if GUIX_PACKAGE_PATH is
likely to be completely phased out in favor of channels or if it is
recognized as separately useful to channels?

Personally I think GUIX_PACKAGE_PATH still serves some practical
purpose, which is not as well covered by channels?

reply via email to

[Prev in Thread] Current Thread [Next in Thread]