Subject: [bug#43578] [PATCH 0/4] Rewriting implicit inputs with 'package-input-rewriting' & co.

From: Efraim Flashner <[email-masked]>
Date: Thu, 24 Sep 2020 09:28:55 +0300

On Wed, Sep 23, 2020 at 10:51:21PM +0200, Ludovic Courtès wrote:
> Hi!
> 
> zimoun <[email-masked]> skribis:
> 
> > On Wed, 23 Sep 2020 at 18:23, Ludovic Courtès <[email-masked]> wrote:
> >
> >> Concretely, the following commands had no effect thus far:
> >>
> >>   guix build python-itsdangerous --with-input=python=python2
> >>   guix build hello --with-input=gcc=gcc-toolchain@10
> >>
> >> In both cases, this is because the input we want to change is
> >> an implicit input.  This patch set fixes that, and it fixes
> >> <https://issues.guix.gnu.org/42156> as a side effect.
> >
> > Awesome!
> >
> > Therefore, 'package-with-explicit-python' & co. are becoming obsolete
> > (or almost), right?
> 
> Good question, we’d have to check on a case-by-case basis.
> ‘package-input-rewriting’ is coarser-grain: it can potentially rewrite
> ‘python’ dependencies deeper in the graph than
> ‘package-with-explicit-python’.
> 

IIRC part of the reason for python-minimal was to build tcl/tk and xorg.
We don't really want to rebuild deep enough to rebuild xorg with
python2. I'm struggling to find a use-case but going as deep as sqlite
shouldn't be a problem.

> >> This opens new possibilities.  ‘--with-input=python=python2’ is one
> >> of them, but ‘--with-input=gcc=gcc-toolchain@10’ is not (it fails
> >> to build for obscure reasons that I’ll fix in ‘core-updates’, and
> >> it rebuilds the world anyway, which is not practical).  Another
> >
> > Rebuilding the world, maybe. :-)  It is interesting in the HPC context
> > where one would like use an "optimized" compiler, isn't?
> 
> Like I wrote, ‘--with-input=gcc=gcc-toolchain@10’ (or similar) isn’t
> practical: you’d have to rebuild the world.
> 
> What I envision for the use case where you want to build a specific
> package set with a different toolchain is to have a
> ‘--with-toolchain=PACKAGE=TOOLCHAIN’ option.  That would rebuild PACKAGE
> with TOOLCHAIN.  Then it would either rebuild all its dependents (as per
> ‘--with-input’) or graft the rebuilt package (as per ‘--with-graft’).
> The latter may not always be a viable option though, so I don’t know.
> 
> In fact I think it would be nice if the graft vs. rebuild choice could
> be made independently for all the transformation options.
> 
> > Thank you.  I will give it a try for my use cases. :-)
> 
> Awesome, let me know how it goes!
> 
> Thank you,
> Ludo’.
> 
> 
> 

-- 
Efraim Flashner   <[email-masked]>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted