Subject: Re: bug#46650: Extending package transformation options

From: Ludovic Courtès <[email-masked]>
Date: Sat, 20 Feb 2021 15:00:02 +0100

Leo Famulari <[email-masked]> skribis:

> On Fri, Feb 19, 2021 at 06:24:57PM -0500, Carl Dong wrote:
>> One of the main reasons for switching over to Guix is for its bootstrappbility and the ability to perform `--bootstrap --no-substitutes` builds. As mentioned in the gnutls ticket, performing these source-based builds can sometimes reveal problems with tests suites:
>> 1. Spurious tests
>> 2. “Expiring” tests (like the gnutls one)
>> 3. Foreign distro problems (0zmcam9sdiag9s1qx3xvlf8a3jnm53x2-sed-4.8.drv fails to build on SELinux-based distros because of a test failure in testsuite/inplace-selinux)
>
> I hate to throw a wrench in your plans, but I think that using package
> transformation options on the command-line militates against many of the
> benefits you are seeking to take advantage of, in terms of an
> introspectable and bootstrappable software system.
>
> Normally when using Guix, our Git tree provides a convenient and
> comprehensive view of the entire software system. It also provides an
> entry point into the system for making changes.
>
> When using these command-line package transformations, you diverge from
> the Guix Git tree and enter uncharted and untracked territory. If you
> install some software or build some system using these transformations,
> there is no Git tree you can check out and begin exploring. For example,
> there will be no package definition of GnuTLS-without-tests that can be
> referred to and shared.

I think that’s OK: you’re building a different GnuTLS derivation, true,
but how that derivation is computed is fully under control as the
transformation option appears on the command line or in your manifest.

It’s really equivalent to forking Guix and adding #:tests? #f, only more
flexible.

Ludo’.