Subject: [bug#30572] [PATCH 1/7] gnu: bootstrap: Add trivial packages for bash, mkdir, tar, and xz.

From: Chris Marusich <[email-masked]>
Date: Tue, 20 Mar 2018 04:13:41 +0100

Danny Milosavljevic <[email-masked]> writes:

>> +(define (bootstrap-binary program-name)
> ...
>> +    (license gpl3+)
>
> I can't believe I'm nitpicking on this - but can we fish that out of the package
>
>   (search-bootstrap-binary program-name (%current-system))
>
> using package-license ?

At first I tried to do what you suggest, but then it occurred to me that
this might create a loop in the module dependency graph.  For example,
if in the case of "bash" I use a form like (package-license bash) to
obtain the actual license used by the canonical bash package, the (gnu
packages bootstrap) module will now depend on the (gnu packages bash)
module.  I don't know how that will interact with the rest of Guix; it
seems safer to just avoid adding that and accept this small discrepancy
in the bootstrap packages.  It is simpler.

Note that the bootstrap binaries' licenses are not currently correctly
surfaced in every place to begin with.  For example, the license of the
"bootstrap-binaries" package (i.e., the %bootstrap-coreutils&co) is
defined to be gpl3+, even though it contains xz, which actually uses
gpl2+ and lgpl2.1+.  Since (I suspect) these packages are intended for
internal use, and since the canonical versions of these packages do have
correct sources, licenses, and so forth, I'm not so sure we need to be
very concerned about minor discrepancies like this.

[email-masked] (Ludovic Courtès) writes:

> Chris Marusich <[email-masked]> skribis:
>
>> * gnu/packages/bootstrap.scm (bootstrap-binary): New procedure.
>>   (%bootstrap-bash, %bootstrap-mkdir, %bootstrap-tar, %bootstrap-xz):
>>   Use it to create these new packages, and export them.
>
> For ‘guix pack --bootstrap’, I believe we could avoid defining these
> packages and simply use ‘%bootstrap-coreutils&co’ when ‘--bootstrap’ is
> used.
>
> Would that work for you?

I considered this.  However, my understanding is that a network
connection is required to build %bootstrap-coreutils&co.  Would we want
to use it in tests even if it requires a network connection?

-- 
Chris