# [quagga-dev 12206] Re: [PATCH 2/2] HACKING: Quagga is a GPL project, all contributions must be compatible with GPL

Martin Winter mwinter at opensourcerouting.org
Thu Apr 30 06:30:14 BST 2015

On Apr 29, 2015, at 3:41 AM, Paul Jakma <paul at jakma.org> wrote:

> On Wed, 29 Apr 2015, Martin Winter wrote:
>
>> Paul (and everyone else on the list)
>>
>>
>> honestly, I think this is not the right time to discuss these changes.
>
> There never seems to be a right time.
>
>> There are still unresolved difference opinions with some previous code (Babel) and I think that needs to be resolved first.
>
> There are no unresolved differences there, afaik.

There are and you should know about them. But this isn’t the thread to discuss them.

> That matter was decided in 2012, based on legal advice. The 3 maintainers involved in that had different opinions on the specifics, but we ultimately agreed on a least-worst way forward.
>
> If there are issues, I'd encourage people to speak up here.

Some people may get frustrated to bring the same issue up over and over again. Yes, a decision was made in 2012, but like code commits, sometimes things may have to get fixed because they are broken or someone may come up with a cleaner or better solution. We (as the community) should always be open to review information based on new information.

Maybe there is something to learn from it which would help us to make the hacking better in the future.
We (as OpenSourceRouting) are still trying to get more legal advice here on possible options. Unfortunately not even the lawyers seem to agree.
But again, we can discuss this in a seperate thread. I just suggested the bad timing as we hope to get more legal advice soon

>> Personally, I would strongly SUGGEST (but not force) any contributor to submit contributions under “GPLv2 or later”. Otherwise they may get VERY long delays or get rejected because of different views on licenses.
>
>> But I would NOT make this into a forced rule. If someone thinks their “other" license is not an issue, then they can always make their point with the community and/or maintainers of Quagga.
>
> So if it's loosened to stop after "other than where the contribution explicitly and clearly indicates otherwise" bit does that address that? I.e. remove the "and in all cases under terms that do not conflict with the COPYING file in the top-level directory." bit.
>
> The intent there, note, is to cover the implicit cases - where people just contribute stuff without indicating licences. Even then, it only matters where additional licences are at play. E.g. they modify a non-!GPL licensed file in the tree.

My point I tried to make here, was if someone contributes on the same licensing as Quagga is (GPLv2+), then there will be no delay or discussion on the license. So this is what I would strongly suggest. If somebody thinks this doesn’t work, then they can always bring it up, but because different opinions in the community it may get delayed for a long time or never go in.

>> What should be clear is that any changes to existing files follow the existing license and any new files must have a license header (and my above strong suggestion would apply here)
>
> Yes, copyright and licence notices are important. Need to check if that that's there, and draw attention to it.
>
>> Anyway, some other clarifications/questions inline (but again, would rather have this discussion on hold for the time being until the existing issue):
>
> Then we need to discuss that issue. I'll reply to this email seperately with a new subject for those issues to be raised.
>
>> On Apr 27, 2015, at 12:53 PM, Paul Jakma <paul at jakma.org> wrote:
>
>>> At present, it isn't clear (to me) when a contribution is made to an file with only a permissive licence notification in Quagga, whether that contribution is under the GPLv2 that Quagga generally is under, or whether it is under the terms of the licence notification in that file, or both. Generally, I'd guess most people would think the licence notification of the file itself would take precedence, though maybe it's both, or only the GPL. It isn't clear.
>>>
>>> So my suggestion was intended to clarify that and make it clear that when contributors modify stuff, their modifications are made available under the terms of both any licence of the file and, independently, the GPLv2 of Quagga generally. At least, unless explicitly indicated otherwise (which isn't in the text!).
>
>> I believe the license of Quagga is "GPLv2 or later”. And it probably will never change (as it might be impossible to ever get all the contributors to agree). This also means that it must be compatible with the “GPLv2 or later”, or to be specific with both: GPLv2 and any later version. (I see the choice for the or not by the person who contribute to the main quagga project, but the enduser or anyone who might fork it.)
>
> I've been careful to write "GPL" in that changeset to avoid getting into the specifics of that.
>
> FWIW, no permission is needed to 'uprev' "GPLv2 or later" (aka GPLv2+) code to a later revision. We've discussed this between maintainers in the past though, and the desire then was to keep it at v2.

Ok, first of I’m not a GPL expert. But I know some projects which they put it under GPLv2 only (and no later version). Quagga is (based on the license text) GPLv2 or any later version. Maybe obvious to you and many others, but I just want to avoid the issue when someone thinks their contribution can be GPLv2 only or GPLv3 only because of Quagga being “GPLv2 OR later”. Spelling it out might avoid this mistake.

> I think "GPL" suffices for the "REQUIRED READING" section, detailed discussion of revisions isn't important there - it refers to a specific COPYING file in our tree which hasn't changed and is unlikely to change.
>
>> Be careful to not (by mistake) just call it “GPLv2”.
>
> ACK. Indeed! :)
>
> I'll double-check.
>
>>>   * HACKING.tex: Quagga is a GPL project, as the top-level COPYING file has
>>>     clearly stated, since inception.  All contributions must be under terms
>>>     that are compatible with the GPL.  This is obvious, but good to be
>
>> I like this form. “Compatible”, but says nothing about forced license change.
>
>> Contributions MUST be compatible with it (for inclusion on GPLv2 _AND_ any later version), but I’m missing the point why they must be under this license. Many contributors might feel like they just give a small piece of code with the “I don’t care” license. They may not care who is reusing their code at all or even include it in a commercial part (who knows, might be just some clever core library). So I think the right thing is to ask for a compatible for including into “GPLv2 or later” project, so the resulting binary is still “GPLv2 or later” and the distributed source is compatible with it.
>
> So, I already know what this is about :), and the specifics of that let's try move to a new thread.
>
> If someone contributes to Quagga events have shown it is important they are aware that this may mean their code is distributed under the GPL.

They are aware that Quagga (as a binary) is GPL licensed. Binary might (most likely) be GPLv2 or later, but could even end up GPLv3 (i.e. with the SNMP support because of some external libraries as far as I know).
Not sure on the source. Actually, really confused there. But I’m not the one giving advice, I just like to point out things which confuse me to help to make it clear for everyone. (I assume with “source” is only the part referred to which is contained in the Quagga git / tarball and not all the source, including system headers, which are required to build Quagga.)

> Making it "REQUIRED READING" that they give a GPL grant - in addition to any other licence - is one way of achieving that awareness.

So by them giving a "GPL grant”, does this mean a submission is automatically having this, because it’s required reading?
If yes, great.
But if not, then I’m curious why even spelling it out as it seems to be non-binding, but spelled like some binding agreement.

>>> diff --git a/HACKING.tex b/HACKING.tex
>>> index f78d451..56f36c6 100644
>>> --- a/HACKING.tex
>>> +++ b/HACKING.tex
>>> @@ -21,19 +21,28 @@ are welcome.
>>> \label{sec:required}
>>>
>>> -Note well: By proposing a change to Quagga, by whatever means, you are implicitly agreeing:
>>> +Note well: Quagga generally is a GPL project. By proposing a change to
>>> +Quagga, by whatever means, you are implicitly agreeing:
>>>
>>> \begin{itemize}
>>> -  \item To licence your contribution according to the licence of any files in Quagga being
>>> -        modified.
>>> +
>>> +  \item To licence your contribution according to the licence notification
>>> +        of any files in Quagga being modified, \textit{and} according to the
>>> +        COPYING file in the top-level directory of Quagga, other than where
>>> +        the contribution explicitly and clearly indicates otherwise; and in
>>> +        all cases under terms that do not conflict with the COPYING file in
>>> +        the top-level directory.
>
>> Confusing to me. It does not spell if the contributor agrees on an explicit dual licensing with adding the GPLv2+ license even for different license which are common known as compatible with GPL) for non-GPL code or he just confirms that the license on his code is compatible with the Quagga GPLv2+ license as stated in copying.
>
> The last clause actually can and should be removed I think. Then what it says is that for contributions - where not otherwise indicated - the contributor is implicitly giving licences under both the COPYING file, and the licence notification of the file.
>
> Note that this has no bearing on babeld, which I suspectr is what you and David are concerned about.

Not talking about babel directly. I do not see this applying to past contributions. I’m talking about the future
and avoiding issues and discussions like they happened with babel. Just like to have it clearly spelled out.

Your wording isn’t clear to me. Some people may assume that (if their license is compatible), then their
code will end up unchanged. You might think of it as adding GPL headers. If this is the intend, then I
would like to have it spelled out - preferably with the reference to the software freedom
site which seems to be the example you followed for Babel.
( http://www.softwarefreedom.org/resources/2007/gpl-non-gpl-collaboration.html )

This might be all obvious to you, but it at least wasn’t to Juliusz and it might be worthwhile to have it
clearly spelled out for future contributions.

> It wouldn't have affected the contribution from Juliusz and Matthieu, because it had MIT/X11 notices.

So based on this if we get MIT/X11 contributions, then they are ok without adding the GPL on top of it?

Sorry, don’t take this the wrong way. I really would just like to make it clear on how to deal with similar issues.
>
> It /shouldn't/ affect future contributors to babeld/, because the Quagga maintainers are (were anyway) agreed to ask babeld/ contributors to give an explicit MIT/X11 licence grant by signing the babeld/LICENCE file (maintainers shouldn't integrate a babeld change from others without that otherwise).
>
> So, that item shouldn't matter.
>
> Indeed, none of this matters to babeld really, other than the "Quagga is a GPL project" generalisation, because the babeld thing seems to be about something other than the licencing.
>
>>> -  \item That it is your responsibility to ensure you hold whatever rights are required to be -        able to contribute this change under the licenses of the files in Quagga being
>>> -        modified.
>>> +  \item That it is your responsibility to ensure you hold whatever rights
>>> +        are required to be able to contribute this change under the licenses
>>> +        of the files in Quagga being modified, and the top-level COPYING
>>> +        file.
>>>
>>> -  \item That it is your responsibility to give with the contribution a full account of all
>>> -        interests held and claims in the contribution; such as through copyright, trademark and
>>> -        patent laws or otherwise; that are known to you or your associates (e.g. your employer).
>>> +  \item That it is your responsibility to give with the contribution a full
>>> +        account of all interests held and claims in the contribution; such
>>> +        as through copyright, trademark and patent laws or otherwise; that
>>> +        are known to you or your associates (e.g.  your employer).
>>> +
>>> \end{itemize}
>>
>> By having this in the doc, would that mean that there is no discussion if something is ok to included as the contributor agreed on a distribution under GPLv2+ ? Basically, if the contributor says it’s ok, then there is no discussion on the license anymore, because he agreed to it?
>
> This is "REQUIRED READING" for contributors. It does not say that if the contributor chooses some other licence the maintainers could accept it. :)

Does it say that opposite, that it if the contributor chooses some other license that it must/will be rejected? (I think not…)

>> I would like that idea…
>
> Except it's not practically possible. :)

But it seems to be formulated as clear guidelines. If this isn’t the case, then why even spell it out and not just suggest something? (Like I said to strongly suggest for “GPLv2 or later” license?

- Martin