[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-community
Subject:    Re: Does KDE have a policy for shipping libraries licensed under the Apache license?
From:       Nicolás_Alvarez <nicolas.alvarez () gmail ! com>
Date:       2022-12-20 4:46:08
Message-ID: 5FDA10CF-EC77-48AD-9A8A-4DF36E2DBCBA () gmail ! com
[Download RAW message or body]

Oops, I somehow misunderstood the question as being about iOS but it's actually \
Android. Do you work on both? Your name may be what confused me.

My reply should still be applicable anyway, other than the specific examples and \
references to Apple :)

> El 20 dic. 2022, a la(s) 01:41, Nicolás Alvarez <nicolas.alvarez@gmail.com> \
> escribió: 
> (This is "as I understand it", not legal advice, I am not a lawyer, etc etc)
> 
> The system library clause is, for example, what lets KDE Connect (under the GPL) \
> link to the iOS system frameworks (under a proprietary license). 
> System libraries have nothing to do with the Apache situation. GPLv2 and Apachev2 \
> are incompatible due to the details of the patent termination terms, while GPLv3 \
> and Apachev2 are compatible, with no need to invoke the system library clause. See \
> https://www.apache.org/licenses/GPL-compatibility.html 
> A project under the GPLv3 can incorporate files under the Apache2 license, and the \
> combined work, like the compiled binary, will be considered to be under the GPLv3. \
> You have to be very careful during development to not copy code from the GPLv3 \
> files to the Apache2 files (the copyright holder would need to explicitly consent \
> to relicensing that code to Apache2) or viceversa (copying Apache2 code into GPLv3 \
> files would need to preserve the original copyright/license/warranty notices). 
> A project under the GPLv3 can also link to a library under Apachev2, and then \
> things are even easier since you don't have to worry about pieces of code getting \
> copied between files (the library source code is not in your project and you won't \
> be modifying it). 
> I found more info here (especially about the complications in the non-library \
> case): https://softwarefreedom.org/resources/2007/gpl-non-gpl-collaboration.html
> 
> Note that the GPLv3 has the famous "anti-tivoization" clause (not present in GPLv2) \
> which requires, in some cases, distributing signing keys that let you run the \
> modified software, and this seems like it would clash with the App Store. However, \
> it is my understanding that this does *not* apply to App Stores. It only applies \
> when the software is shipped with a hardware device and distributed along with the \
> sale of the device. (The messy wording in the GPLv3 is to avoid "but we're not \
> really *selling* it" loopholes). Apple can't put GPLv3 code in iOS itself, but \
> third party apps should be fine. 
> Also, while you may want to say somewhere "KDE Connect for iOS is licensed under \
> the GPLv3", the individual source code files (at least those not directly \
> interacting with this library) can keep saying GPLv2/v3/eV. That would let us copy \
> code into other KDE projects without having to ask people for relicensing just to \
> add v2 again. 
> -- 
> Nicolas
> I'm not a FOSS lawyer, I just play as one on the Internet sometimes
> 
> > El 20 dic. 2022, a la(s) 00:47, Simon Redman <simon@ergotech.com> escribió:
> >  Hi Andrius,
> > 
> > Thanks for your input.
> > 
> > That is the textbook answer, but doesn't actually fit this case. GPLv3 is only \
> > compatible with Apache because it has an exclusion for system libraries, but KDE \
> > Connect is an Android app so there is no concept of system libraries. 
> > It doesn't get to the core of the issue: What is KDE's position?
> > 
> > To take another angle:
> > If I assume the whole package falls under the "entire work", and if I package \
> > Apache v2 and my own GPL v2 code together, and distribute it, I'd have broken the \
> > GPLv2 license of my own code because I cannot relicence the Apache parts of the \
> > "whole work", but I'm not going to sue myself so there is no legal issue. 
> > The simple example gets complicated when it's a global organization, and not just \
> > my code but the code of other contributors as well. But that's why I'm asking if \
> > there's a defined policy. 
> > Thanks,
> > Simon
> > 
> > 
> > On December 19, 2022 5:54:38 PM EST, "Andrius Å tikonas" <stikonas@kde.org> \
> > wrote:
> > > 
> > > Hi,
> > > 
> > > Quick check seems to indicate that KDE Connect license is:
> > > 
> > > GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
> > > Apache v2 licensed code is not compatible with GPL-2.0-only but
> > > is compatible with GPLv3. So by combining KDE Conenct with
> > > that library you lose right to redistribute the whole thing
> > > as GPL2 but you still have the right to redistribute combined code under
> > > 
> > > GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
> > > I.e. you are essentially dropping GPLv2 support and only keeping GPLv3.
> > > So you must first check that you have no GPLv2 only dependencies.
> > > 
> > > Kind regards,
> > > Andrius
> > > 
> > > 2022 m. gruodžio 19 d., pirmadienis 23:34:11 CET Simon Redman rašė:
> > > > KDE Connect has had this PR languishing for a couple of years, with a
> > > > question I am not able to answer.
> > > > https://invent.kde.org/network/kdeconnect-android/-/merge_requests/192
> > > > 
> > > > The author has added a (very useful) library, which happens to be
> > > > licensed under the Apache v2 license.
> > > > 
> > > > KDE Connect code is GPL-licensed. GPL section 2 says that the entire
> > > > work must be distributed as GPL.
> > > > https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html
> > > > 
> > > > In my eyes, the only meaningful part of the work is the source code, at
> > > > which level the concept of distributing a library does not apply. The
> > > > .apk that we give to users is just a convenience to them, they could
> > > > just as well build it themselves. The .apk contains both the KDE Connect
> > > > GPL code and the Apache-licensed libraries, but by itself has no
> > > > specific license (and doesn't claim to).
> > > > 
> > > > But my view don't matter, what matters is what happens in court, in the
> > > > event anyone ever accuses KDE of violating license terms. As I am not
> > > > qualified to expose KDE to any additional risk, is there a policy (or
> > > > accepted precedent) for distributing Apache-licensed libraries?
> > > > 
> > > > Thanks,
> > > > Simon
> > > > 


[Attachment #3 (text/html)]

<html><head><meta http-equiv="content-type" content="text/html; \
charset=utf-8"></head><body dir="auto"><div dir="ltr"><meta \
http-equiv="content-type" content="text/html; charset=utf-8">Oops, I somehow \
misunderstood the question as being about iOS but it's actually Android. Do you work \
on both? Your name may be what confused me.<div><br></div><div>My reply should still \
be applicable anyway, other than the specific examples and references to Apple \
:)<div><br></div><div><div dir="ltr"><blockquote type="cite">El 20 dic. 2022, a la(s) \
01:41, Nicolás Alvarez &lt;nicolas.alvarez@gmail.com&gt; \
escribió:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><meta \
http-equiv="content-type" content="text/html; charset=utf-8"><div dir="ltr"><meta \
http-equiv="content-type" content="text/html; charset=utf-8"><div dir="ltr"><span \
style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">(This is "as I understand \
it", not legal advice, I am not a lawyer, etc etc)</span><div><span \
style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br></span></div><div><span \
style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">The system library clause is, \
for example, what lets KDE Connect (under the GPL) link to the iOS system frameworks \
(under a proprietary license).</span><br style="caret-color: rgb(0, 0, 0); color: \
rgb(0, 0, 0);"><br><div>System libraries have nothing to do with the Apache \
situation. GPLv2 and Apachev2 are incompatible due to the details of the patent \
termination terms, while GPLv3 and Apachev2 are compatible, with no need to invoke \
the system library clause. See&nbsp;<a \
href="https://www.apache.org/licenses/GPL-compatibility.html">https://www.apache.org/licenses/GPL-compatibility.html</a><div><div><br></div><div><div>A \
project under the GPLv3 can incorporate files under the Apache2 license, and the \
combined work, like the compiled binary, will be considered to be under the GPLv3. \
You have to be very careful during development to not copy code from the GPLv3 files \
to the Apache2 files (the copyright holder would need to explicitly consent to \
relicensing that code to Apache2) or viceversa (copying Apache2 code into GPLv3 files \
would need to preserve the original copyright/license/warranty \
notices).</div><div><br></div><div>A project under the GPLv3 can also link to a \
library under Apachev2, and then things are even easier since you don't have to worry \
about pieces of code getting copied between files (the library source code is not in \
your project and you won't be modifying it).</div><div><br></div><div>I found more \
info here (especially about the complications in the non-library case):</div><div><a \
href="https://softwarefreedom.org/resources/2007/gpl-non-gpl-collaboration.html">https \
://softwarefreedom.org/resources/2007/gpl-non-gpl-collaboration.html</a></div><div><br></div><div>Note \
that the GPLv3 has the famous "anti-tivoization" clause (not present in GPLv2) which \
requires, in some cases, distributing signing keys that let you run the modified \
software, and this seems like it would clash with the App Store. However, it is my \
understanding that this does *not* apply to App Stores. It only applies when the \
software is shipped with a hardware device and distributed along with the sale of the \
device. (The messy wording in the GPLv3 is to avoid "but we're not really *selling* \
it" loopholes). Apple can't put GPLv3 code in iOS itself, but third party apps should \
be fine.</div><div><br></div><div>Also, while you may want to say somewhere "KDE \
Connect for iOS is licensed under the GPLv3", the individual source code files (at \
least those not directly interacting with this library) can keep saying GPLv2/v3/eV. \
That would let us copy code into other KDE projects without having to ask people for \
relicensing just to add v2 \
again.</div><div><br></div><div>--&nbsp;</div><div>Nicolas</div><div>I'm not a FOSS \
lawyer, I just play as one on the Internet sometimes</div><div><br><div \
dir="ltr"><blockquote type="cite">El 20 dic. 2022, a la(s) 00:47, Simon Redman \
&lt;simon@ergotech.com&gt; escribió:<br><br></blockquote></div><blockquote \
type="cite"><div dir="ltr">

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

Hi Andrius,<br><br>Thanks for your input.<br><br>That is the textbook answer, but \
doesn't actually fit this case. GPLv3 is only compatible with Apache because it has \
an exclusion for system libraries, but KDE Connect is an Android app so there is no \
concept of system libraries.<br><br>It doesn't get to the core of the issue: What is \
KDE's position?<br><br>To take another angle:<br>If I assume the whole package falls \
under the "entire work", and if I package Apache v2 and my own GPL v2 code together, \
and distribute it, I'd have broken the GPLv2 license of my own code because I cannot \
relicence the Apache parts of the "whole work", but I'm not going to sue myself so \
there is no legal issue.<br><br>The simple example gets complicated when it's a \
global organization, and not just my code but the code of other contributors as well. \
But that's why I'm asking if there's a defined \
policy.<br><br>Thanks,<br>Simon<br><br><br><div class="gmail_quote">On December 19, \
2022 5:54:38 PM EST, "Andrius Å tikonas" &lt;stikonas@kde.org&gt; wrote:<blockquote \
class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, \
204, 204); padding-left: 1ex;"> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Hi,</p> <br><p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Quick check seems \
to indicate that KDE Connect license is:</p> <br><p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;"><span \
style="background-color:#ffffff;"><span style="color:#ff5454;"><strong><span \
style="font-family:monospace;">GPL-2.0-only</span></strong></span><span \
style="color:#000000;">&nbsp;OR GPL-3.0-only OR \
LicenseRef-KDE-Accepted-GPL</span></span><br></p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Apache v2 licensed \
code is not compatible with GPL-2.0-only but</p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">is compatible with \
GPLv3. So by combining KDE Conenct with</p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">that library you \
lose right to redistribute the whole thing</p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">as GPL2 but you \
still have the right to redistribute combined code under</p> <br><p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;"><span \
style="color:#000000;"><span style="background-color:#ffffff;">GPL-3.0-only OR \
LicenseRef-KDE-Accepted-GPL</span></span><br></p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">I.e. you are \
essentially dropping GPLv2 support and only keeping GPLv3.</p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">So you must first \
check that you have no GPLv2 only dependencies.</p> <br><p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Kind regards,</p> \
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Andrius</p> \
<br><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">2022 m. \
gruodžio 19 d., pirmadienis 23:34:11 CET Simon Redman rašė:</p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt; KDE Connect \
has had this PR languishing for a couple of years, with a </p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt; question I am \
not able to answer.</p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt; \
https://invent.kde.org/network/kdeconnect-android/-/merge_requests/192</p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt; </p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt; The author \
has added a (very useful) library, which happens to be </p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt; licensed \
under the Apache v2 license.</p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt; </p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt; KDE Connect \
code is GPL-licensed. GPL section 2 says that the entire </p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt; work must be \
distributed as GPL. </p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt; \
https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html</p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt; </p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt; In my eyes, \
the only meaningful part of the work is the source code, at </p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt; which level \
the concept of distributing a library does not apply. The </p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt; .apk that we \
give to users is just a convenience to them, they could </p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt; just as well \
build it themselves. The .apk contains both the KDE Connect </p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt; GPL code and \
the Apache-licensed libraries, but by itself has no </p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt; specific \
license (and doesn't claim to).</p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt; </p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt; But my view \
don't matter, what matters is what happens in court, in the </p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt; event anyone \
ever accuses KDE of violating license terms. As I am not </p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt; qualified to \
expose KDE to any additional risk, is there a policy (or </p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt; accepted \
precedent) for distributing Apache-licensed libraries?</p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt; </p> <p \
style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt; Thanks,</p> \
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt; Simon</p> \
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">&gt; </p> \
<br><br></blockquote></div> \
</div></blockquote></div></div></div></div></div></div></div></div></blockquote></div></div></div></body></html>




[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic