GNU bug report logs - #31669
Allowing system-wide package replacements with 'guix system'

Previous Next

Package: guix;

Reported by: Rutger Helling <rhelling <at> mykolab.com>

Date: Thu, 31 May 2018 14:46:01 UTC

Severity: normal

To reply to this bug, email your comments to 31669 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#31669; Package guix. (Thu, 31 May 2018 14:46:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Rutger Helling <rhelling <at> mykolab.com>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Thu, 31 May 2018 14:46:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Rutger Helling <rhelling <at> mykolab.com>
To: bug-guix <at> gnu.org
Subject: 'guix system' enhancements
Date: Thu, 31 May 2018 16:44:38 +0200
[Message part 1 (text/plain, inline)]
Hi Guix,

This isn't really a bug, but I noticed that 'guix system' right now cannot use certain common build
options like 'with-input'. I don't know how hard it would be to add
that, because I think it could be pretty useful for something like the
following for example:

guix system reconfigure --with-input=openssl=libressl system.scm

WDYT?
[Message part 2 (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#31669; Package guix. (Fri, 01 Jun 2018 12:59:01 GMT) Full text and rfc822 format available.

Message #8 received at 31669 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Rutger Helling <rhelling <at> mykolab.com>
Cc: 31669 <at> debbugs.gnu.org
Subject: Re: bug#31669: 'guix system' enhancements
Date: Fri, 01 Jun 2018 14:58:03 +0200
Hello,

Rutger Helling <rhelling <at> mykolab.com> skribis:

> This isn't really a bug, but I noticed that 'guix system' right now cannot use certain common build
> options like 'with-input'. I don't know how hard it would be to add
> that, because I think it could be pretty useful for something like the
> following for example:
>
> guix system reconfigure --with-input=openssl=libressl system.scm

Note that ‘--with-input’ & co. are *package* transformation options, so
the question is which packages we’d apply them to.

We could take those options as applying to all the packages in the
global profile, but it may not be exactly what people would expect
because it would not apply to packages used by Shepherd services.

WDYT?

Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#31669; Package guix. (Fri, 01 Jun 2018 14:42:01 GMT) Full text and rfc822 format available.

Message #11 received at 31669 <at> debbugs.gnu.org (full text, mbox):

From: Rutger Helling <rhelling <at> mykolab.com>
To: ludo <at> gnu.org (Ludovic Courtès)
Cc: 31669 <at> debbugs.gnu.org
Subject: Re: bug#31669: 'guix system' enhancements
Date: Fri, 1 Jun 2018 16:40:52 +0200
[Message part 1 (text/plain, inline)]
Hi Ludo,

That might cause confusion like you said, so I'm not sure if that would
be an improvement.

I guess I was wondering whether there was an easy way to do something
like build your entire system with a newer Mesa, or use LibreSSL 
instead of OpenSSL as mentioned. Of course you could change your own
git checkout, but that's not as elegant as '--with-input/--with-graft'
etc.

Another option would be to make your own transformed packages and add
those as services instead of the regular versions. Unfortunately a lot
of services right now don't have that option (OpenSSH for example).
Plus you're pretty liable to make a mistake that way.

On Fri, 01 Jun 2018 14:58:03 +0200
ludo <at> gnu.org (Ludovic Courtès) wrote:

> Hello,
> 
> Rutger Helling <rhelling <at> mykolab.com> skribis:
> 
> > This isn't really a bug, but I noticed that 'guix system' right now
> > cannot use certain common build options like 'with-input'. I don't
> > know how hard it would be to add that, because I think it could be
> > pretty useful for something like the following for example:
> >
> > guix system reconfigure --with-input=openssl=libressl system.scm  
> 
> Note that ‘--with-input’ & co. are *package* transformation options,
> so the question is which packages we’d apply them to.
> 
> We could take those options as applying to all the packages in the
> global profile, but it may not be exactly what people would expect
> because it would not apply to packages used by Shepherd services.
> 
> WDYT?
> 
> Ludo’.

[Message part 2 (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#31669; Package guix. (Fri, 01 Jun 2018 20:36:02 GMT) Full text and rfc822 format available.

Message #14 received at 31669 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Rutger Helling <rhelling <at> mykolab.com>
Cc: 31669 <at> debbugs.gnu.org
Subject: Re: bug#31669: 'guix system' enhancements
Date: Fri, 01 Jun 2018 22:35:26 +0200
Hello,

Rutger Helling <rhelling <at> mykolab.com> skribis:

> That might cause confusion like you said, so I'm not sure if that would
> be an improvement.
>
> I guess I was wondering whether there was an easy way to do something
> like build your entire system with a newer Mesa, or use LibreSSL 
> instead of OpenSSL as mentioned. Of course you could change your own
> git checkout, but that's not as elegant as '--with-input/--with-graft'
> etc.

Another option would be to operate at the derivation level rather than
at the package level.  There’s a currently unused procedure called
‘map-derivation’ which is similar to what ‘--with-input’ does, except
that it’s at the derivation level.  Example:

--8<---------------cut here---------------start------------->8---
scheme@(guile-user)> ,use(guix)
scheme@(guile-user)> ,use(gnu)
scheme@(guile-user)> (getcwd)
$2 = "/home/ludo/src/guix/guix"
scheme@(guile-user)> (define os (load "../gnu/system/examples/bare-bones.tmpl"))
scheme@(guile-user)> ,run-in-store (operating-system-derivation os)
$4 = #<derivation /gnu/store/x0ixll4myzk2s2g0lvq29qr5fx1hsgqi-system.drv => /gnu/store/4igvd1ynxjv3hk8qpf0l9bpb2v157hjf-system 4c209b0>
scheme@(guile-user)> ,use(gnu packages tls)
scheme@(guile-user)> ,run-in-store (package->derivation openssl)
$5 = #<derivation /gnu/store/8d4dim068nky5y8dls3p2nijc79jhhv1-openssl-1.0.2o.drv => /gnu/store/yvy6pj9b3rpb3wr98x0sjlxv5g9p5x5l-openssl-1.0.2o-doc /gnu/store/ggrpw6gh2rnqjwyjf99z8cdw5digc4hb-openssl-1.0.2o /gnu/store/9cdb2xydmm012v81l78jliird4f7dy25-openssl-1.0.2o-static 5594370>
scheme@(guile-user)> ,run-in-store (package->derivation libressl)
substitute: updating list of substitutes from 'https://berlin.guixsd.org'... 100.0%
$6 = #<derivation /gnu/store/2wds8bdyl25iqx63p2vv7fy05rbmq4s5-libressl-2.7.3.drv => /gnu/store/d9askfqx719bv3610kd6s3jqjh5rnfsh-libressl-2.7.3 538b1e0>
scheme@(guile-user)> (define s (open-connection))
scheme@(guile-user)> (map-derivation s $4 `((,$5 . ,$6)))
$7 = #<derivation /gnu/store/g9xxa9fkiaij5i9g8s71b04yswi69cig-system.drv => /gnu/store/x5gyjvmq663jhd1pc1pc5w46hpcghvwd-system 618bf00>
--8<---------------cut here---------------end--------------->8---

It’s a bit of a sledgehammer and ‘map-derivation’ may be buggy on the
edges, but worth exploring.  :-)

HTH,
Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#31669; Package guix. (Sat, 02 Jun 2018 12:30:01 GMT) Full text and rfc822 format available.

Message #17 received at 31669 <at> debbugs.gnu.org (full text, mbox):

From: Rutger Helling <rhelling <at> mykolab.com>
To: ludo <at> gnu.org (Ludovic Courtès)
Cc: 31669 <at> debbugs.gnu.org
Subject: Re: bug#31669: 'guix system' enhancements
Date: Sat, 2 Jun 2018 14:29:23 +0200
[Message part 1 (text/plain, inline)]
That's neat! I'll play around with it later, thanks for the tip.

On Fri, 01 Jun 2018 22:35:26 +0200
ludo <at> gnu.org (Ludovic Courtès) wrote:

> Hello,
> 
> Rutger Helling <rhelling <at> mykolab.com> skribis:
> 
> > That might cause confusion like you said, so I'm not sure if that
> > would be an improvement.
> >
> > I guess I was wondering whether there was an easy way to do
> > something like build your entire system with a newer Mesa, or use
> > LibreSSL instead of OpenSSL as mentioned. Of course you could
> > change your own git checkout, but that's not as elegant as
> > '--with-input/--with-graft' etc.  
> 
> Another option would be to operate at the derivation level rather than
> at the package level.  There’s a currently unused procedure called
> ‘map-derivation’ which is similar to what ‘--with-input’ does, except
> that it’s at the derivation level.  Example:
> 
> --8<---------------cut here---------------start------------->8---
> scheme@(guile-user)> ,use(guix)
> scheme@(guile-user)> ,use(gnu)
> scheme@(guile-user)> (getcwd)
> $2 = "/home/ludo/src/guix/guix"
> scheme@(guile-user)> (define os (load
> "../gnu/system/examples/bare-bones.tmpl"))
> scheme@(guile-user)> ,run-in-store (operating-system-derivation os)
> $4 =
> #<derivation /gnu/store/x0ixll4myzk2s2g0lvq29qr5fx1hsgqi-system.drv
> => /gnu/store/4igvd1ynxjv3hk8qpf0l9bpb2v157hjf-system 4c209b0>
> scheme@(guile-user)> ,use(gnu packages tls)
> scheme@(guile-user)> ,run-in-store (package->derivation openssl) $5 =
> #<derivation /gnu/store/8d4dim068nky5y8dls3p2nijc79jhhv1-openssl-1.0.2o.drv
> => /gnu/store/yvy6pj9b3rpb3wr98x0sjlxv5g9p5x5l-openssl-1.0.2o-doc /gnu/store/ggrpw6gh2rnqjwyjf99z8cdw5digc4hb-openssl-1.0.2o /gnu/store/9cdb2xydmm012v81l78jliird4f7dy25-openssl-1.0.2o-static
> 5594370> scheme@(guile-user)> ,run-in-store (package->derivation
> 5594370> libressl) substitute: updating list of substitutes from
> 5594370> 'https://berlin.guixsd.org'... 100.0% $6 =
> 5594370> #<derivation /gnu/store/2wds8bdyl25iqx63p2vv7fy05rbmq4s5-libressl-2.7.3.drv
> 5594370> => /gnu/store/d9askfqx719bv3610kd6s3jqjh5rnfsh-libressl-2.7.3
> 5594370> 538b1e0> scheme@(guile-user)> (define s (open-connection))
> 5594370> 538b1e0> scheme@(guile-user)> (map-derivation s $4
> 5594370> 538b1e0> `((,$5 . ,$6)))
> $7 =
> #<derivation /gnu/store/g9xxa9fkiaij5i9g8s71b04yswi69cig-system.drv
> => /gnu/store/x5gyjvmq663jhd1pc1pc5w46hpcghvwd-system 618bf00>
> --8<---------------cut here---------------end--------------->8---
> 
> It’s a bit of a sledgehammer and ‘map-derivation’ may be buggy on the
> edges, but worth exploring.  :-)
> 
> HTH,
> Ludo’.

[Message part 2 (application/pgp-signature, inline)]

Changed bug title to 'Allowing system-wide package replacements with 'guix system'' from ''guix system' enhancements' Request was from ludo <at> gnu.org (Ludovic Courtès) to control <at> debbugs.gnu.org. (Fri, 15 Jun 2018 15:31:02 GMT) Full text and rfc822 format available.

This bug report was last modified 6 years and 362 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.