Report forwarded
to bug-guix@gnu.org: bug#31669; Package guix.
(Thu, 31 May 2018 14:46:01 GMT) (full text, mbox, link).
Acknowledgement sent
to Rutger Helling <rhelling@mykolab.com>:
New bug report received and forwarded. Copy sent to bug-guix@gnu.org.
(Thu, 31 May 2018 14:46:01 GMT) (full text, mbox, link).
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?
Hello,
Rutger Helling <rhelling@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@gnu.org: bug#31669; Package guix.
(Fri, 01 Jun 2018 14:42:01 GMT) (full text, mbox, link).
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@gnu.org (Ludovic Courtès) wrote:
> Hello,
>
> Rutger Helling <rhelling@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’.
Hello,
Rutger Helling <rhelling@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@gnu.org: bug#31669; Package guix.
(Sat, 02 Jun 2018 12:30:01 GMT) (full text, mbox, link).
That's neat! I'll play around with it later, thanks for the tip.
On Fri, 01 Jun 2018 22:35:26 +0200
ludo@gnu.org (Ludovic Courtès) wrote:
> Hello,
>
> Rutger Helling <rhelling@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’.
Changed bug title to 'Allowing system-wide package replacements with 'guix system'' from ''guix system' enhancements'
Request was from ludo@gnu.org (Ludovic Courtès)
to control@debbugs.gnu.org.
(Fri, 15 Jun 2018 15:31:02 GMT) (full text, mbox, link).
Debbugs is free software and licensed under the terms of the
GNU Public License version 2. The current version can be
obtained from https://bugs.debian.org/debbugs-source/.