Subject: Re: [PATCH 03/10] gnu: Define UPSTREAM-FIREFOX-SOURCE at the top level.

From: Mark H Weaver <[email-masked]>
Date: Sat, 18 Feb 2023 15:46:23 -0500

Hi Maxim,

Maxim Cournoyer <[email-masked]> writes:

> Mark H Weaver <[email-masked]> writes:
>
>> Maxim Cournoyer <[email-masked]> writes:
>>
>>> * gnu/packages/gnuzilla.scm (%icecat-base-version): New variable.
>>> (%upstream-firefox-version): Likewise.
>>> (%icecat-version): Define in terms of %icecat-base-version.
>>> (upstream-firefox-source): New variable.
>>> (icecat-source): Adjust to use the above newly introduced variables.
>>
>> I'm deeply uncomfortable binding toplevel variables, even unexported
>> ones, that provide non-FSDG-complaint software.  I guess that the
>> primary motivation for this commit was to make it easier to use the
>> 'update-mozilla-locales' helper.
>
> While I appreciate your concern, I think "hiding" the upstream source
> would be akin to putting our head in the sand.  We do need that upstream
> source to produce GNU IceCat from source, so it may as well be
> convenient to handle while hacking on the GNU IceCat package.  As you've
> noted, it isn't exported, so I think it'd be a stretch to say that this
> private binding "steers" users toward non-FSDG software.  Note that we
> also have a %upstream-linux-source procedure in (gnu packages linux).

The '%upstream-linux-source' procedure was not easily avoidable, and
it's not at all convenient to use because it requires passing in the
nix-formatted hash.

In contrast, the argument for adding 'unstream-firefox-source' as a
toplevel binding is a very slender thread, and it would immediately
enable users to type commands like:

  guix build -e '(@@ (gnu packages gnuzilla) upstream-firefox-source)'

At which point Guix would dutifully provide non-FSDG-compliant software
to the user.

Moreover, in another of your proposed commits ("gnu: Add a
'update-mozilla-locales' helper for maintenance"), in a comment, you
literally steer the user to download the Firefox source and provide the
precise command to do it.

This is a slippery slope.  It is not the role of core Guix to facilitate
downloading Firefox source code for purposes of IceCat development.
That is the domain of the IceCat project itself.

I feel very strongly about this.

      Thanks,
        Mark