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

Martin Winter mwinter at opensourcerouting.org
Wed Apr 29 08:33:18 BST 2015

Paul (and everyone else on the list)

honestly, I think this is not the right time to discuss these changes. There are still unresolved difference opinions with some previous code (Babel) and I think that needs to be resolved first.

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.

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)

Anyway, some other clarifications/questions inline (but again, would rather have this discussion on hold for the time being until the existing issue):

On Apr 27, 2015, at 12:53 PM, Paul Jakma <paul at jakma.org> wrote:

> On Mon, 27 Apr 2015, Dave Taht wrote:
>
>> I don't really understand what this is intended to clarify.
>>
>> Are you asking contributors to specifically relicense their code as GPL as a criterion for inclusion? That does make for headaches with alternatively licensed code under lighter licenses with many contributors.
>>
>> Or are you merely requiring that the license of included code be compatible with the GPL (as the BSD, apache, and many other OSI approved licenses are.)
>
> Ah, if it's not clear, it needs to be clarified. See below for some little additions (against the 2nd of the 2nd round of split patches).
>
> My intention in drafting that was two-fold:
>
> 1. To allow for (exclusively) permissively licensed files to exist in the
>   Quagga code-base, and contributions to such files to still be available
>   under that permissive licence.
>
> 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.)

Be careful to not (by mistake) just call it “GPLv2”.

> The compatibility issue is actually somewhat orthogonal to this case. It is even possible that we'd have files with GPL-incompatible licences (e.g. part of the docs are GFDL I think), with this clarification we could be sure we'd also have GPL licences on any further modifications.
>
> 2. To ensure that contributors are aware that contributions to Quagga may
>   end up being distributed as GPLv2, at any level.
>
> E.g., non-GPL-but-compatible files could be compiled together with other GPL bits and the result is of course distributed under the GPL. Or it could be that some of the contributed source files are sufficiently dependent on other GPL parts of Quagga that (at least some) maintainers feel that file must be distributed under the GPL[1].
>
> Really, this bit is more about making contributors aware of the social norms of Quagga:
>
>  It is a GPL project, like the subject says. You should expect your
>
> to avoid confusion and upset.
>
> Does the below work a bit better?
>
> 1. In which case we've been happy to try arrange things so the original
>   contributor still gets contributions to Quagga made available under
>   their preferred licence. Further I at least would usually be happy to
>   restructure the code so there's a clear delineation between the
>   non-GPL-dependent and Quagga-dependent code, so the former class can be
>   licensed under the contributor's desired non-GPL-but-compatible licence
>   - if they wish.
>
> Author: Paul Jakma <paul at jakma.org>
> Date:   Mon Apr 27 17:40:55 2015 +0100
>
>    HACKING: Quagga is a GPL project, all contributions must be compatible with GPL
>
>    * 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.

> 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
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.

> -  \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?

I would like that idea…

- Martin Winter
mwinter at opensourcerouting.org

>
> Before contributing to Quagga, you \textbf{must} also read Section~\ref{sec:commit-messages}.
>
> regards,
> --
> Paul Jakma	paul at jakma.org	@pjakma	Key ID: 64A2FF6A
> Fortune:
> Personifiers of the world, unite!  You have nothing to lose but Mr. Dignity!