unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#31669: 'guix system' enhancements
@ 2018-05-31 14:44 Rutger Helling
  2018-06-01 12:58 ` Ludovic Courtès
  0 siblings, 1 reply; 5+ messages in thread
From: Rutger Helling @ 2018-05-31 14:44 UTC (permalink / raw)
  To: 31669

[-- Attachment #1: Type: text/plain, Size: 355 bytes --]

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?

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#31669: 'guix system' enhancements
  2018-05-31 14:44 bug#31669: 'guix system' enhancements Rutger Helling
@ 2018-06-01 12:58 ` Ludovic Courtès
  2018-06-01 14:40   ` Rutger Helling
  0 siblings, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2018-06-01 12:58 UTC (permalink / raw)
  To: Rutger Helling; +Cc: 31669

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’.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#31669: 'guix system' enhancements
  2018-06-01 12:58 ` Ludovic Courtès
@ 2018-06-01 14:40   ` Rutger Helling
  2018-06-01 20:35     ` Ludovic Courtès
  0 siblings, 1 reply; 5+ messages in thread
From: Rutger Helling @ 2018-06-01 14:40 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 31669

[-- Attachment #1: Type: text/plain, Size: 1552 bytes --]

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’.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#31669: 'guix system' enhancements
  2018-06-01 14:40   ` Rutger Helling
@ 2018-06-01 20:35     ` Ludovic Courtès
  2018-06-02 12:29       ` Rutger Helling
  0 siblings, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2018-06-01 20:35 UTC (permalink / raw)
  To: Rutger Helling; +Cc: 31669

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’.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#31669: 'guix system' enhancements
  2018-06-01 20:35     ` Ludovic Courtès
@ 2018-06-02 12:29       ` Rutger Helling
  0 siblings, 0 replies; 5+ messages in thread
From: Rutger Helling @ 2018-06-02 12:29 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 31669

[-- Attachment #1: Type: text/plain, Size: 2697 bytes --]

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’.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-06-02 12:30 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-31 14:44 bug#31669: 'guix system' enhancements Rutger Helling
2018-06-01 12:58 ` Ludovic Courtès
2018-06-01 14:40   ` Rutger Helling
2018-06-01 20:35     ` Ludovic Courtès
2018-06-02 12:29       ` Rutger Helling

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).