Subject: Re: [bug#68577] [PATCH 1/2] gnu: icecat: Improve inheritance.

From: Mark H Weaver <[email-masked]>
Date: Sat, 03 Feb 2024 14:28:40 -0500

Hi André,

First, let me say that I appreciate you and your contributions to Guix.
I'm sorry that my message made you feel badly.  That's not an apology,
but rather a sincere feeling of sadness that your feelings were hurt.

André Batista <[email-masked]> writes:

> seg 22 jan 2024 às 01:09:21 (1705896561), [email-masked] enviou:
>> Hi Clément,
>> 
>> I see now that in November, you added 'torbrowser', which inherits from
>> 'icecat-minimal'.
>> 
>> > commit 756ba0429e84ee0f8ce30484439b78c00c61d286
>> > Author: Clément Lassieur <[email-masked]>
>> > Date:   Sun Nov 12 02:23:27 2023 +0100
>> > 
>> >     gnu: Add torbrowser.
>> >     
>> >     * gnu/packages/tor.scm (torbrowser): New variable.
>> >     (torbrowser-assets): New variable.
>> >     * gnu/packages/browser-extensions.scm (noscript): New variable.
>> >     (noscript/icecat): New variable.
>> >     
>> >     Co-authored-by: André Batista <[email-masked]>
>> >     Change-Id: I73dc53905e4a028108bb34aae07e44256cf16c85
>> 
>> Did you consult me on this change?  I don't remember seeing anything
>> about this in my mailbox.

Please note that this was simply a question, and not a rhetorical one.
I asked the question because I do not want to assume that my failure to
see an email implies that it was not sent to me.  Any email can be lost
due to spam filters, a man-in-the-middle who wishes to prevent delivery,
or because the recipient overlooks it among the torrent of (mostly junk)
mail that many of us receive.

>> This change concerns me, because it compels me to coordinate with you
>> when making nontrivial IceCat updates.  As things stand now, it seems
>> that the 'icecat' and 'torbrowser' packages must be updated together,
>> in lock step.
>> 
>> Also, do 'torbrowser' and 'mullvad' both comply with the requirements of
>> the GNU FSDG?  For example, do they support EME?  Do they steer the user
>> to nonfree software, e.g. nonfree addons.
>
> Considering I was cc'ed and part of the thread that led to that patch,
> I'll consider myself invited to give a piece of my mind on your
> comments.

I'm glad that you did.  It is far better than letting unspoken feelings
fester indefinitely.  I'm sorry that I was too overloaded to respond
sooner.

> First things first: when I sent the very first version of this patch, I
> didn't use inheritance anywhere and it was actually suggested to me as
> an improvement over what I had done[1].
[...]
> 1. https://lists.gnu.org/archive/html/guix-patches/2020-09/msg00261.html

I looked at the messages in that thread from people other than you, but
I was unable to find any suggestion to use inheritance.  Can you point
to the specific message where inheritance was suggested?

What I do see is a suggestion by Ludovic to "think of ways to factorize
code with IceCat".  I agree with that suggestion, but not with the use
of inheritance.  Instead, I suggest creating a new (guix build icecat)
module, and moving some of the code from the build phases of IceCat into
Scheme procedures placed within that module.  Of course, please CC me on
any proposals along those lines.

> Looking back, it is true I should have probably known better and have you
> cc'ed right from the start. My code was heavily based on / similar to
> Icecat's package definition and so it made sense to avoid duplication.
> I didn't know and did not care to look who were the contributors to
> Icecat's definition. I see now that I was careless and that my behaviour
> could be seen as disrespectful. No disrespect was intended, but I
> certainly could have done better and I do apologize for my shortcomings.

For what it's worth, I don't believe that you were "careless" or
"disrespectful", nor do I think that an apology is warranted here.
As Clément correctly pointed out, I was not listed as a member of the
mozilla team, and that reason alone makes it understandable that I would
be overlooked.

FYI, I've just recently added myself to the 'mozilla' team.

> Now, do you believe me when I say that there was no ill will towards you
> or others?

Yes, and I never believed otherwise.  I have neither perceived ill will
from, nor felt ill will towards, you or Clément.

> I ask this because your last comments strike me on the opposite sense.
> Risking to add insult to injury, but in the hopes of gaining your help,
> I'd say that your comments appear to be assuming ill intention on our
> part towards you and somewhat belittle you at the same time.

I made no such assumption.

> Why do you assume to be compelled to do anything if you were not even
> cc'ed? As things stand, my assumption here is that the burden would be
> on us to either ask you directly or to keep a close eye on any changes
> done to Icecat. IMO, you certainly wouldn't be to blame if you changed
> something on Icecat and torbrowser/mullvad/librewolf had some issue. We
> would.

I would not feel compelled *by you*, but rather as an unintended
consequence of your actions, due to my own desire to not break other
packages while updating IceCat.

> On the other hand, would it really be that much of added work if we were
> to ask you to copy us when proposing some changes to Icecat? Would it be
> presumptuous or forceful to ask that?

The problem is partly due to my own (admittedly suboptimal) tendency to
procastinate performing major IceCat updates until shortly before the
previous ESR branch reaches end-of-life.  These major updates, which
occur approximately once per year, usually require substantial changes
to the IceCat package definition.  These changes are likely to break any
other packages that inherit from the IceCat package, unless all of the
inheriting packages are updated in lock-step within a single batch of
commits.

Theoretically, there is a window of 2-3 months when these major IceCat
updates could be done, and therefore it would theoretically be possible
to coordinate a lock-step update of IceCat, TorBrowser, and Mullvad at
the same time.  However, this would be an added burden on me, and I'm
unwilling to commit to doing this.

> More than that, it suprises me that after discovering these threads and
> having a good amount of knowledge on building Icecat you've decided to
> just lash out on us, instead of trying to be of help, reviewing the
> proposed patches or letting we learn from our short-sightedness the hard
> way.

This idea that I "lashed out" at you is unsupported by my actual words.
I think that you have made many assumptions about what I felt about you,
when in fact I merely asked a question, and then proceeded to explain
why the changes created a problem for me.

I do not deny that I was *mildly* displeased at not being informed in
advance about the changes you made.  Of course, I expect to be CC'd on
future updates that relate to the IceCat package, including any changes
that could add more burdens on me when modifying the IceCat package,
given that I feel a responsibility to try my best to avoid breaking
other packages.  However, I do not fault you in any way.

Anyway: thanks again, André and Clément, for your contributions to Guix.
I think well of you both, and I hope that this message will help to
clear up any misunderstandings between us.

    Sincerely,
       Mark