Re: no need to keep non-copylefted files that way in a copylefted project. (was Re: FRR package in Debian violates the GPL licence)

2019-03-21 Thread Paul Jakma

On Thu, 21 Mar 2019, Giacomo Tesio wrote:

What you say is: I could replace the "Harry Potter and the Sorcerer's 
Stone" with another novel under the same name "Harry Potter and the 
Sorcerer's Stone" and with the same characters (data structures, 
enums...) and places (functions, macros...) AND and a compatible plot 
that wouldn't completely change the meaning of the following Rowling's 
books WITHOUT complying with Rowling copyright.


The structure and the plot of a (non-trivial) novel is subject to 
copyright. Similarly, the architecture or structure of a computer 
programme may be subject to copyright (in England, and places that may 
pay some heed to reasoning in judgements there; e.g, Ibcos .. v Barclays 
1994). Copying these can infringe copyright - without /any/ literal 
copying, without any explicit referencing.


regards,
--
Paul Jakma | p...@jakma.org | @pjakma | Key ID: 0xD86BF79464A2FF6A
Fortune:
Boob's Law:
You always find something in the last place you look.



Re: no need to keep non-copylefted files that way in a copylefted project. (was Re: FRR package in Debian violates the GPL licence)

2019-03-21 Thread Giacomo Tesio
On 21/03/2019, Christian Kastner  wrote:
> On 2019-03-20 16:46, Giacomo Tesio wrote:
>> How this relates to compilation?
>
> It doesn't. Nobody is disputing that the compiled result is GPL.
>
> The question at hand is the licensing of the source. These are two
> separate issues.

Sure, I was talking exactly about the licensing of the derived source.


>> If the GPL header at
>> https://github.com/FRRouting/frr/blob/master/lib/command.h is required
>> by https://github.com/FRRouting/frr/blob/master/babeld/babel_interface.c
>
> It's not required. I can download and read the  babel_interface.c
> source, which itself is already a copyrightable work, just fine.
>
> The compiler requires *a* command.h to compile babel_interface.c into
> a binary result, but this command.h could theoretically be provided by
> another implementation, licensed under different terms.

Another implementation that uses all of the same texts invented by the
command.h authors and licensed under GPL.

What you say is: I could replace the "Harry Potter and the Sorcerer's
Stone" with another novel under the same name "Harry Potter and the
Sorcerer's Stone" and with the same characters (data structures,
enums...) and places (functions, macros...) AND and a compatible plot
that wouldn't completely change the meaning of the following Rowling's
books WITHOUT complying with Rowling copyright.


I think you are a bit... confused if you think so. :-)

command.h is copyrightable text in itself: it contains macro, data
structures, enums and so on that have been released under GPL.

babel_interface.c is another copyrightable text, but it uses the text
of command.h and could not even exist if command.h didn't existed in
the first place.
Thus babel_interface.c IS a derivative work of command.h: because it
came later and refers heavily to the characters and places provided by
command.h.

babel_interface.c's authors hold the copyright on their own code, but
they received the right to build a derivative work of comand.h's text
under GPL, so they have to abide to the GPL.

Indeed GPLv2 § 2 states:

> These requirements apply to the modified work as a whole.
> IF identifiable SECTIONS of that work ARE NOT DERIVED
> FROM THE PROGRAM, AND CAN BE REASONABLY
> CONSIDERED INDEPENDENT AND SEPARATE WORKS
> IN THEMSELVES, then this License, and its terms, do not
> apply to those sections when you distribute them as separate
> works.

You don't need a programmer to find the text of command.h into
babel_interface.c thus babel_interface cannot be reasonably considered
independent and separate work from command.h.

As such, it can only be distributed under GPLv2.


Q.E.D. ;-)


> Hence why Steve wrote that this amounts to "[...] asserting copyright
> on an interface."

As I said, I'm not sure that asserting copyright on an interface is
something that would hurt free software.

But in this case, this looks as FUD.

Those file are not independent section of FRR, they are derivative of
GPL code and thus distributing them code under a different license is
a violation of GPL terms that cause instant and irrevocable
termination.

Paul might need a court to get this termination enforced.
But you just need to read the license and the code to see the violation.


Giacomo



Re: no need to keep non-copylefted files that way in a copylefted project. (was Re: FRR package in Debian violates the GPL licence)

2019-03-21 Thread Christian Kastner
On 2019-03-20 16:46, Giacomo Tesio wrote:
> How this relates to compilation?

It doesn't. Nobody is disputing that the compiled result is GPL.

The question at hand is the licensing of the source. These are two
separate issues.

> If the GPL header at
> https://github.com/FRRouting/frr/blob/master/lib/command.h is required
> by https://github.com/FRRouting/frr/blob/master/babeld/babel_interface.c

It's not required. I can download and read the  babel_interface.c
source, which itself is already a copyrightable work, just fine.

The compiler requires *a* command.h to compile babel_interface.c into
a binary result, but this command.h could theoretically be provided by
another implementation, licensed under different terms.

Hence why Steve wrote that this amounts to "[...] asserting copyright
on an interface."

-- 
Christian Kastner



Re: no need to keep non-copylefted files that way in a copylefted project. (was Re: FRR package in Debian violates the GPL licence)

2019-03-20 Thread Giacomo Tesio
On 20/03/2019, Giovanni Mascellani  wrote:
> Hi,
>
> Il 20/03/19 12:25, Giacomo Tesio ha scritto:
>> The current construct is a violation of the GPL term as that code is
>> derivative of GPL code for all intents and purposes. So much that it
>> cannot even compile without the GPL code.
>
> I don't understand what does this matter. Copyright apply to thing
> independently of whether they compile or not. [...]

Harry Potter is not Pulcinella.
Hermion is not Colombina.

If you use these names you do not borrow from Commons, from cultural
archetypes and characters known to the public, but to specific Rowling
creations.

Arguing that your work is not derivative of Rowling one would sound
ridiculous to any judge.

This doesn't rule out your fandom by itself, but it IS a derivative work.

Law might permit it or not, Rowling might tolerate it or not, but it
IS evidently a derivative work. Just like if you take the Rowling book
and want to write the script of a Hollywood film about the same
history, you need her permission


How this relates to compilation?

If the GPL header at
https://github.com/FRRouting/frr/blob/master/lib/command.h is required
by https://github.com/FRRouting/frr/blob/master/babeld/babel_interface.c
it means that it depends on its text, whose copyright holder gave you
the right to use according to the GPL.

It's exactly like using Harry Potter into your own fandom porn novel.
Rowling might have something to object. ;-)

Since you can't remove, say, INTERFACE_NODE from its
babel_interface.c, and you got INTERFACE_NODE as GPL in command.h,
babel_interface.c is a derivative of command.h and thus has to be
released under GPL.


> So this example really convinces me that FRR people are doing right, and
> there is no reason for Debian to change anything there.

Well... I hope to have clarified the misunderstanding, now. ;-)


Giacomo



Re: no need to keep non-copylefted files that way in a copylefted project. (was Re: FRR package in Debian violates the GPL licence)

2019-03-20 Thread Giovanni Mascellani
Hi,

Il 20/03/19 12:25, Giacomo Tesio ha scritto:
> The current construct is a violation of the GPL term as that code is
> derivative of GPL code for all intents and purposes. So much that it
> cannot even compile without the GPL code.

I don't understand what does this matter. Copyright apply to thing
independently of whether they compile or not. If I write a lot of broken
C code in a file, but do so without copying anything from elsewhere,
that is just a new work that does not depend on anything. The intent
with which I write it or the possibility to merge it with other code to
make something working is irrelevant. And that does not depend on any
license: this is just how copyright laws work (by the simple fact that
copyright laws make no mention of what "compiling" and "linking" are
what the writer's intentions are).

> Much like if I write an original novel containing the characters and
> places of Harry Potter, it's a derivative work of Rowling's one.
> And I guess that I couldn't print and sell it without paying right to her.

If anything, that proves the opposite of what you sating, namely that
FRR is right: there are tons of fandom works based on characters, places
and concepts introduced by Rowling in her works, both with and without
modifications. They do not appear to be illegal at all, and it never
occurred to me to learn that the authors of such works are being or
could be prosecuted.

Copyright does not protect ideas or concepts, it protects expressed
works. I could rewrite the whole of Harry Potter's seven books off my
mind, without directly copying the original ones, and it would be
perfectly legal, although I admit it could be an interesting case how to
prove that I did not actually copy from the original books. For similar
reasons, people who write programs starting from reverse engineered
information need to be really sure that they can prove they are not
copying (i.e., they are doing a clean room implementation), but other
than that there is nothing preventing them to do so. ReactOS people know
something about this.

So this example really convinces me that FRR people are doing right, and
there is no reason for Debian to change anything there.

Giovanni.
-- 
Giovanni Mascellani 
Postdoc researcher - Université Libre de Bruxelles



signature.asc
Description: OpenPGP digital signature


Re: no need to keep non-copylefted files that way in a copylefted project. (was Re: FRR package in Debian violates the GPL licence)

2019-03-20 Thread David Lamparter
Here are a few snippets out of a private mail on this topic; I've
removed the original mail and paraphrased its contents since I firmly
believe in not publishing any content (incl. metadata) from private
e-mails that isn't my own :)

- Forwarded message from David Lamparter  -

Someone wrote:
> On Wed, 20 Mar 2019, David Lamparter wrote:
> > That is really the crux of the question here.  The code does contain
> > /references/ to libfrr functions and data structures.  But it doesn't
> > contain any code that was copied/moved/directly derived from GPL
> > functionality.  Is it still considered derivative?
> >
> > We (FRR) believe it isn't.  That's why we think we can still distribute
> > babeld and ldpd under their permissive licenses.

> [Someone cited section 2b of the GPL here]
>
>   "You must cause any work that you distribute or publish, that in
>   whole or in part contains or is derived from the Program or any part
>   thereof, to be licensed as a whole at no charge to all third parties
>   under the terms of this License."
>
> [Someone argues here that since babeld is distributed with FRR, the
> whole work falls under the GPL]

I understand your argument, and it has indeed come up before, and you
need to continue reading the GPL.

Section 4 reads:

  4. You may not copy, modify, sublicense, or distribute the Program
  except as expressly provided under this License. Any attempt otherwise
  to copy, modify, sublicense or distribute the Program is void, and
  will automatically terminate your rights under this License. However,
  parties who have received copies, or rights, from you under this
  License will not have their licenses terminated so long as such
  parties remain in full compliance.

Note that it says here "the Program", not "work [...] that in whole or
in part contains [...] the Program".

While section 2b that you cited requires cost-free distribution and
GPL license of any additional parts of the larger work, it does not
exclude that larger work from being licensed more permissively.  That
requirement against more permissive licensing is only established in
section 4 above, and only for "the Program" (which includes derivatives
of it per the definition of section 0, but not collective works.)

> [Someone linked to:
> https://repository.jmls.edu/cgi/viewcontent.cgi?article=1014=jitpl ]

I'm not sure that document says what you believe it says.  Refer to page
493 (inline numbering):

  On the other hand, it is axiomatic that changing the GPL program's
  source code creates a derivative work.  Distributing that derivative
  work makes it subject to the terms of the GPL.  These two scenarios
  are the only bright line rules for copyleft in the GPL.  Between the
  end-points of mere aggregation and direct source modification lays a
  broad spectrum of possible combinations that the terms of the GPL may
  or may not reach.

  [...]

  Whether the FSF could convince a court to enforce copyleft on these
  kinds of combinations remains to be seen.  The FSF's license
  enforcement group has charged many organizations with violating the
  GPL, but every case in the United States has been quietly settled
  outside of court.  There is literally no legal precedent in the United
  States concerning enforcement of the GPL at the time of this writing.
  Without legal precedent establishing which specific technical software
  combinations impose copyleft, practitioners must predict their legal
  standing by determining whether the proprietary software within a
  combination, infringes on the distribution rights of the GPL software
  licensor.  They also must consider whether the proprietary software
  constitutes a derivative work.

I should probably point out at this junction that the SFLC, which is one
of the legal opinions Paul has sought, was also contacted by the FreeBSD
project about this same issue.  For Paul, I am only aware of a
preliminary response supportive of his opinion that the SFLC has given
with a caveat of further inspection needed.  The FreeBSD project
followed through with that request for time and further consideration,
and has - to my best knowledge - received an elaborated response from
the SFLC indicating that FRR's licensing is OK.

(I need to contact the FreeBSD people or SFLC to get a copy of that,
I've only been told about this recently and can't guarantee for its
correctness.  As I'm currently attending netdevconf & IETF, there's
probably a delay of 2 weeks until I have spare cycles to hunt this down,
but of course it doesn't need to be me to do this, if anyone wants to
poke the SFLC or the FreeBSD project.)

[Some content cut]


-David
- End forwarded message -



Re: no need to keep non-copylefted files that way in a copylefted project. (was Re: FRR package in Debian violates the GPL licence)

2019-03-20 Thread Ole Streicher
Giacomo Tesio  writes:
> The current construct is a violation of the GPL term as that code is
> derivative of GPL code for all intents and purposes. So much that it
> cannot even compile without the GPL code.

For the license of source code, it is not required that it compiles.

And, taking out a portion of the code (a single algorithm or so) that
does not depend on GPL code and to re-use it elsewehere is a normal and
intended use for an open source program. It is one of the goals of
having a program open source.

And if the code is a modified copy (this is what the GPL actually
protects), you should prove that: show the code in question, show the
original (GPL) code and show how it was modified.

Best

Ole









Re: no need to keep non-copylefted files that way in a copylefted project. (was Re: FRR package in Debian violates the GPL licence)

2019-03-20 Thread Andrej Shadura
On Wed, 20 Mar 2019 at 13:10, Paul Jakma  wrote:
>
> On Wed, 20 Mar 2019, Andrej Shadura wrote:
>
> > Apparently they’re not qualified in software licenses and copyrights.
> > Sorry I have to say that.
>
> You're a software engineer, with no legal qualifications or experience
> listed in your LinkedIn. They are qualified, practicing solicitors.

I do not have a LinkedIn account.

> If all you're going to do is inject reason-free arguments to your own
> authority, then I'll stick with their authority.

Reasoned argument have already been given to you multiple times by
many people, which you have chosen to ignore.

-- 
Cheers,
  Andrej



Re: no need to keep non-copylefted files that way in a copylefted project. (was Re: FRR package in Debian violates the GPL licence)

2019-03-20 Thread Paul Jakma

On Wed, 20 Mar 2019, Andrej Shadura wrote:

You cannot terminate GPL granted to someone without a violation. There 
clearly is no violation in the case you’re describing. Your legal 
advice is invalid.


I have legal advice, two independent sets, from qualified solicitors 
that there is a violation.


You're a software engineer.

regards,
--
Paul Jakma | p...@jakma.org | @pjakma | Key ID: 0xD86BF79464A2FF6A
Fortune:
Why are you so hard to ignore?

Re: no need to keep non-copylefted files that way in a copylefted project. (was Re: FRR package in Debian violates the GPL licence)

2019-03-20 Thread Paul Jakma

On Wed, 20 Mar 2019, Giacomo Tesio wrote:

Here I suggest you all to find a friendly solution anyway for the same 
reason.


I tried for years to find friendly solutions. Many of the things others 
have suggested in this thread I already suggested/explored years and 
years ago with the people who are now FRR.


If you or anyone else wants to help find a solution, you have my email.


Also, if 3rd parties were to do this, outside of a wider agreement with
copyright holders that would resolve all this, it would likely just
aggravate the situation further.


Sorry, but I don't think so.


You can seek your advice on that, and I'll take my own.

I would not consider that a solution, and not helpful or friendly.

regards,
--
Paul Jakma | p...@jakma.org | @pjakma | Key ID: 0xD86BF79464A2FF6A
Fortune:
The truth about a man lies first and foremost in what he hides.
-- Andre Malraux



Re: no need to keep non-copylefted files that way in a copylefted project. (was Re: FRR package in Debian violates the GPL licence)

2019-03-20 Thread Paul Jakma

On Wed, 20 Mar 2019, Ole Streicher wrote:

They don't need to do that themself, but they may want to keep that 
path open for downstream. And so their license allows that.


Their licence on their portion of the work, perhaps.

However, the work *also* requires a licence from the copyright holders 
of the GPL licence they have based their work on, to be distributed or 
used, as required by copyright law (whether you like that aspect of 
copyright or not). They have deliberately rejected the GPL licence that 
was on offer to them, ignored the conditions required by the GPL, and 
distributed the code anyway.


As a result, any GPL licence available to them terminated, and no 
further offer of a GPL licence is available to them, at this time, 
unless this matter is resolved to my satisfaction.


You simply can not obtain their code (the code at issue) from them (or 
anyone) under the GPL, therefore /you/ can not distribute or use it 
under the GPL either.


And this is not about some concern for some (MIT/X11, BSD) free software 
authors - they've fought this tooth and nail for their own commercial 
reasons: to try strip copyleft from GPL software they do not have rights 
to, for their own financial benefit.


regards,
--
Paul Jakma | p...@jakma.org | @pjakma | Key ID: 0xD86BF79464A2FF6A
Fortune:
The only thing necessary for the triumph of evil is for good men to do
nothing.
- Edmund Burke



Re: no need to keep non-copylefted files that way in a copylefted project. (was Re: FRR package in Debian violates the GPL licence)

2019-03-20 Thread Giacomo Tesio
On 20/03/2019, Ole Streicher  wrote:
> Giacomo Tesio  writes:
>> While they are distributing the whole as GPL (which is correct) they
>> are actively stating that people can take a part of it that can only
>> be used as GPL and use it under a different license, while whoever do
>> so automatically terminates their own license on the whole FRR.
>
> A downstream could remove the GPL dependencies (for example by replacing
> it with a [dummy] re-implementation, or by removing any references) and
> legally redistribute the result under a non-GPL license.

As things stands now, anyone using that code would violate the GPL license.

To gain that effect, I think your only solution is to double license
your patches as GPL and whatever license you prefer.
The custom license would only apply to your contributions, not to the
whole application but to get advantage of it a downstream would have
to terminate all GPL grants on all code that your contributions
depends upon.


> The current construct allows this, and this seems to be the intention of
> the copyright owners of the questioned code.

No.

The current construct is a violation of the GPL term as that code is
derivative of GPL code for all intents and purposes. So much that it
cannot even compile without the GPL code.

> You may not like it, but
> since the code writers do not derived from GPL code when they wrote
> their source (the GPL code is only used when it is compiled/linked),
> they are free to do so.

It's not what I like that matter.

But I think your interpretation is very arguable.

If the new code depends on GPL headers, call GPL functions and use GPL
data structures that are original copyrightable code, it is a
derivative work.

Much like if I write an original novel containing the characters and
places of Harry Potter, it's a derivative work of Rowling's one.
And I guess that I couldn't print and sell it without paying right to her.


Giacomo



Re: no need to keep non-copylefted files that way in a copylefted project. (was Re: FRR package in Debian violates the GPL licence)

2019-03-20 Thread Ole Streicher
Paul Jakma  writes:
> On Wed, 20 Mar 2019, Ole Streicher wrote:
>
>> A downstream could remove the GPL dependencies (for example by
>> replacing it with a [dummy] re-implementation, or by removing any
>> references) and legally redistribute the result under a non-GPL
>> license.
>
> I advised the people, who are now FRR, that this would be one way
> forward, *many years* ago - before this mess was in full bloom. It
> would have taken time, but it would have been possible (I'd not have
> spent my time doing this for free or on a low-wage though).
>
> They rejected taking this approach.

They don't need to do that themself, but they may want to keep that path
open for downstream. And so their license allows that.

Best

Ole



Re: no need to keep non-copylefted files that way in a copylefted project. (was Re: FRR package in Debian violates the GPL licence)

2019-03-20 Thread Giacomo Tesio
On 20/03/2019, Paul Jakma  wrote:
> On Wed, 20 Mar 2019, Giacomo Tesio wrote:
>
>> It goes without saying that adding a GPL header to those files that
>> need it would be totally equivalent and more fool-proof.
>
> After X years of not doing so, denying the applicability of the GPL to
> files which are explicitly dependent on GPL code for function and
> comprehension, refusing to implement conditions required by the GPL, and
> organising a corner-of-industry attack on the career and employment of
> one of the GPL copyright holders who objected (and objected in helpful
> ways, providing constructive ways forward repeatedly): Just adding a
> header will no longer solve this.

While I understand your frustration and agree with your overall
interpretation of the issue, I think that this can only be established
in a court.

Given the dimension and power of the counter parts you cite, this is
going to be a steep road.

When something similar happened to me (see
https://medium.com/@giacomo_59737/what-i-wish-i-knew-before-contributing-to-open-source-dd63acd20696
for details), I decided to build enough evidences that they violated
my copyright to protect my codebase, but to not go to fight in court
despite the evidence (IMO) of the termination of their GPL license on
their own codebase.

That's for two reasons.
First of the counterparts was going to be Google and another would
have been SFC.
But more importantly, I didn't really want to hurt or risk to end
Harvey development, as an alternative exploration of the Plan 9
legacy. As I said, the more forks, the better: more roads explored,
more knowledge gain for the whole humanity.

Here I suggest you all to find a friendly solution anyway for the same reason.


> Also, if 3rd parties were to do this, outside of a wider agreement with
> copyright holders that would resolve all this, it would likely just
> aggravate the situation further.

Sorry, but I don't think so.

If that code is GPL (as you say, and as I agree), adding a GPL header
to it doesn't aggravate anything. It would just prevent people to
violate the GPL and terminate their own grants on the whole GPL
projects it derives by using it under a different license.


Giacomo



Re: no need to keep non-copylefted files that way in a copylefted project. (was Re: FRR package in Debian violates the GPL licence)

2019-03-20 Thread Giacomo Tesio
On 20/03/2019, Giacomo Tesio  wrote:
> But I think that the GPL says that you have to distribute any derived
> work as GPL.
> It doesn't say that you have to distribute the derived work as GPL only.

Badly expressed sorry.

I mean, if the derived work contains GPL-only code, it must be
distributed as GPL only.

What I mean that a copyright holder of a new piece of code (eg a new C
file) that is a derivative of GPL only code, might decide to
distribute the new C file under GPL and MIT.

The whole application linking the GPL only code AND the "GPL and MIT"
one would be GPL-only.

And to use the MIT license of the new C file, anyone would have to
renounce to the GPL grants on the whole application and all of it's
dependencies (as he would be violating the GPL license).


But while this is a very risky approach I woudn't suggest to anyone (I
would not renounce to tons of GPL code for few C files), it looks
legally sound (from my developer perspective, obviously! :-D).


Giacomo



Re: no need to keep non-copylefted files that way in a copylefted project. (was Re: FRR package in Debian violates the GPL licence)

2019-03-20 Thread Giacomo Tesio
On 20/03/2019, David Lamparter  wrote:
> On Wed, Mar 20, 2019 at 09:17:32AM +0100, Giacomo Tesio wrote:
>> The code distributed under a non-copyleft license depends heavily on
>> copylefted one, so much that it's not possible to run (or even
>> compile) it without the pre-existing copylefted one (that includes C
>> headers that are not described by any standard).
>
> That is really the crux of the question here.  The code does contain
> /references/ to libfrr functions and data structures.  But it doesn't
> contain any code that was copied/moved/directly derived from GPL
> functionality.  Is it still considered derivative?

Can you remove the reference to libfrr without breaking the build?

If you couldn't have written the new code if libfrr did not existed in
the first place, that code is a derivative of libfrr.

Just like if I write a couple of new chapter for, say, "Harry Potter
and the Half-Blood Prince" it's a derivative work of it unless no
place, character or mechanics of it is present into my new chapter.

> We (FRR) believe it isn't.  That's why we think we can still distribute
> babeld and ldpd under their permissive licenses.

And I think you are wrong for the reason mentioned above.

Obviously only a court might really state if you are right or not.
And IMHO, Paul could go down this path to get the termination of your
license recognised.

But frankly, I'd really prefer to see this matter settled friendly.

I think that having several collaborative forks of a code base that
experiment different paths is healthy for Free Software and should be
always encouraged.

So I hope FRR won't lose their ability to modify and distribute their own fork.

OTOH, Paul's complaints are well founded.
The GPL is reciprocal and requires derivative works to be licensed in
the same way.
Not doing so is a violation of it, and should either be fixed (as soon
as possible) or sanctioned, in the interest of the whole Free Software
community.

> While this is, legally, an open question (no court has ruled on it to my
> knowledge), there are at least several observations that support our
> viewpoint:
>
> [...lot interesting stuff whose analysis would take us too offtopic...]
>
>   To me, it clearly seems that the authors of the license were working
>   with the assumption that the source code, using headers from a library
>   and containing function names from it, wouldn't be derivative of the
>   library.  It explicitly says that the /combined work/ is derivative.

Yes, it say so.
But this doesn't EXCLUDE that something that is written after and
heavily depends on the library whose header are original copyrightable
work is derivative work too.

And I'd argue that it doesn't explicitly say so, because it's obvious,
while the combined work being derivative despite the parts combined
being INDEPENDENT different works might not be that obvious.

>   This also makes sense from another perspective:  the LGPL does require
>   the library itself to remain under the terms of the LGPL.  This is
>   worded like this:
>
>  ""The "Library", below, refers to any such software library or work
>  which has been distributed under these terms. A "work based on the
>  Library" means either the Library or any derivative work under
>  copyright law: that is to say, a work containing the Library or a
>  portion of it, either verbatim or with modifications and/or
>  translated straightforwardly into another language.  (Hereinafter,
>  translation is included without limitation in the term
>  "modification".)""
>
>   So if an application using a library were a derived work of the
>   library - the LGPL wouldn't even make sense to exist.  Its terms would
>   apply to the application... and if the application falls under the
>   LGPL, that makes the license pointless.  The LGPL text really
>   implies/assumes that a library can be used without being derivative of
>   it.

No.

LGPL say: your application IS a derivative or this library, but this
license let you modify and distribute such application under any
license, AS LONG AS you distribute any modification to this library
under LGPL.

Its purpose is to restrict the reach of the copyleft to the library
only, exactly because, by default, it would apply to the depending on
the library too.

>> That's why I said they could (at most, but I guess Bradley can correct
>> me) double license the modifications, say as GPL and BSD or MIT.
>
> This doesn't really work.  A dual license is an "or" construct, meaning
> a consumer of the code can choose one of the licenses (and even drop the
> other license completely.)  If the code cannot be under the MIT license,
> it cannot be under a dual GPL/MIT license either.

Again, maybe a lawyer might correct me on this.

But I think that the GPL says that you have to distribute any derived
work as GPL.
It doesn't say that you have to distribute the derived work as GPL only.

Violating the GPL terms would terminate the license itself, 

Re: no need to keep non-copylefted files that way in a copylefted project. (was Re: FRR package in Debian violates the GPL licence)

2019-03-20 Thread Paul Jakma

On Wed, 20 Mar 2019, Ole Streicher wrote:

A downstream could remove the GPL dependencies (for example by 
replacing it with a [dummy] re-implementation, or by removing any 
references) and legally redistribute the result under a non-GPL 
license.


I advised the people, who are now FRR, that this would be one way 
forward, *many years* ago - before this mess was in full bloom. It would 
have taken time, but it would have been possible (I'd not have spent my 
time doing this for free or on a low-wage though).


They rejected taking this approach.

Whether it is possible for FRR to /now/ try to re-implement the GPL 
portions and get out of their legal mess, I would want to take advice 
on. Even if they did so, it would not excuse them from the years of 
infringement they have already carried out, which remains ongoing.


regards,
--
Paul Jakma | p...@jakma.org | @pjakma | Key ID: 0xD86BF79464A2FF6A
Fortune:
Exercise caution in your daily affairs.



Re: no need to keep non-copylefted files that way in a copylefted project. (was Re: FRR package in Debian violates the GPL licence)

2019-03-20 Thread Paul Jakma

On Wed, 20 Mar 2019, Giacomo Tesio wrote:

It goes without saying that adding a GPL header to those files that 
need it would be totally equivalent and more fool-proof.


If that had been done at the outset...

After X years of not doing so, denying the applicability of the GPL to 
files which are explicitly dependent on GPL code for function and 
comprehension, refusing to implement conditions required by the GPL, and 
organising a corner-of-industry attack on the career and employment of 
one of the GPL copyright holders who objected (and objected in helpful 
ways, providing constructive ways forward repeatedly): Just adding a 
header will no longer solve this.


Also, if 3rd parties were to do this, outside of a wider agreement with 
copyright holders that would resolve all this, it would likely just 
aggravate the situation further.


regards,
--
Paul Jakma | p...@jakma.org | @pjakma | Key ID: 0xD86BF79464A2FF6A
Fortune:
Mencken and Nathan's Second Law of The Average American:
All the postmasters in small towns read all the postcards.



Re: no need to keep non-copylefted files that way in a copylefted project. (was Re: FRR package in Debian violates the GPL licence)

2019-03-20 Thread Ole Streicher
Giacomo Tesio  writes:
> While they are distributing the whole as GPL (which is correct) they
> are actively stating that people can take a part of it that can only
> be used as GPL and use it under a different license, while whoever do
> so automatically terminates their own license on the whole FRR.

A downstream could remove the GPL dependencies (for example by replacing
it with a [dummy] re-implementation, or by removing any references) and
legally redistribute the result under a non-GPL license.

The current construct allows this, and this seems to be the intention of
the copyright owners of the questioned code. You may not like it, but
since the code writers do not derived from GPL code when they wroteg
their source (the GPL code is only used when it is compiled/linked),
they are free to do so.

Best

Ole



Re: no need to keep non-copylefted files that way in a copylefted project. (was Re: FRR package in Debian violates the GPL licence)

2019-03-20 Thread David Lamparter
On Wed, Mar 20, 2019 at 09:17:32AM +0100, Giacomo Tesio wrote:
> The code distributed under a non-copyleft license depends heavily on
> copylefted one, so much that it's not possible to run (or even
> compile) it without the pre-existing copylefted one (that includes C
> headers that are not described by any standard).

That is really the crux of the question here.  The code does contain
/references/ to libfrr functions and data structures.  But it doesn't
contain any code that was copied/moved/directly derived from GPL
functionality.  Is it still considered derivative?

We (FRR) believe it isn't.  That's why we think we can still distribute
babeld and ldpd under their permissive licenses.

While this is, legally, an open question (no court has ruled on it to my
knowledge), there are at least several observations that support our
viewpoint:

- as Florian brought up in his mail dated 19.3. 18:55, there is actually
  a commercial variant of Zebra, sold as "ZebOS" by IPInfusion.  As
  weird as it may sound, a lot of the library facilities (especially the
  CLI) are still mostly compatible.  babeld could likely be made to work
  with ZebOS with only a small effort.  Isn't that a clear indication of
  it not being derivative?

- the ongoing Oracle vs. Google lawsuit is looking at whether APIs can
  even be copyrighted to begin with.  If they couldn't, this would end
  the entire discussion right there, but unfortunately courts said the
  API itself can be copyrighted.  They're now discussing fair use on
  that (and Google has re-requested the USSC to look at it.)  That said,
  the OvG case is about Google copying the API itself, not making use of
  it.

- the LGPL also makes some statements about this, specifically:

 "When a program is linked with a library, whether statically or
 using a shared library, the combination of the two is legally
 speaking a combined work, a derivative of the original library. The
 ordinary General Public License therefore permits such linking only
 if the entire combination fits its criteria of freedom. The Lesser
 General Public License permits more lax criteria for linking other
 code with the library."

  (this is from LGPL v2.1, which is easier to read since LGPL v3.0
  cross-references GPL v3.0 for a lot of its "meat")

  To me, it clearly seems that the authors of the license were working
  with the assumption that the source code, using headers from a library
  and containing function names from it, wouldn't be derivative of the
  library.  It explicitly says that the /combined work/ is derivative.

  This also makes sense from another perspective:  the LGPL does require
  the library itself to remain under the terms of the LGPL.  This is
  worded like this:

 ""The "Library", below, refers to any such software library or work
 which has been distributed under these terms. A "work based on the
 Library" means either the Library or any derivative work under
 copyright law: that is to say, a work containing the Library or a
 portion of it, either verbatim or with modifications and/or
 translated straightforwardly into another language.  (Hereinafter,
 translation is included without limitation in the term
 "modification".)""

  So if an application using a library were a derived work of the
  library - the LGPL wouldn't even make sense to exist.  Its terms would
  apply to the application... and if the application falls under the
  LGPL, that makes the license pointless.  The LGPL text really
  implies/assumes that a library can be used without being derivative of
  it.

[...]
> That's why I said they could (at most, but I guess Bradley can correct
> me) double license the modifications, say as GPL and BSD or MIT.

This doesn't really work.  A dual license is an "or" construct, meaning
a consumer of the code can choose one of the licenses (and even drop the
other license completely.)  If the code cannot be under the MIT license,
it cannot be under a dual GPL/MIT license either.

Cheers,


-David



Re: no need to keep non-copylefted files that way in a copylefted project. (was Re: FRR package in Debian violates the GPL licence)

2019-03-20 Thread Giacomo Tesio
On 20/03/2019, David Lamparter  wrote:
> By relicensing their code to GPL, Quagga had essentially shunted itself
> down to the position of any random proprietary relicensor.

I guess you mean that Quagga renounced to further contribution from
these people.

But the point is that Quagga is clearly abiding to the GPL, while FRR
compliance is... arguable.

While they are distributing the whole as GPL (which is correct) they
are actively stating that people can take a part of it that can only
be used as GPL and use it under a different license, while whoever do
so automatically terminates their own license on the whole FRR.


I think it's an interesting corner case.

I guess that if FRR writes a LICENSE.notice that say: "whatever the
files license header says, every single file of this code must be
treated as GPL", they would strengthen their own position without
violating the letter of their contributor request.

It goes without saying that adding a GPL header to those files that
need it would be totally equivalent and more fool-proof.


Giacomo



Re: no need to keep non-copylefted files that way in a copylefted project. (was Re: FRR package in Debian violates the GPL licence)

2019-03-20 Thread Giacomo Tesio
On 20/03/2019, Bradley M. Kuhn  wrote:
> This is an example of a common trend I see: social pressure to keep
> non-copylefted code under non-copyleft licenses, sometimes even escalating
> to aggression (as the OpenBSD project did with Linux over wireless drivers),
> while permitting and even encouraging licensors to incorporate the code
> under proprietary licenses, which are much more restricted of copyleft.

Very well put. Thanks.

But there is an important difference here that make things even worse.

The code distributed under a non-copyleft license depends heavily on
copylefted one, so much that it's not possible to run (or even
compile) it without the pre-existing copylefted one (that includes C
headers that are not described by any standard).

So in a way OpenBSD's social pressure might be interpreted as an
attempt to keep a reciprocity of contribution (you got our code this
way, give back your change that same way) in a context where OpenBSD's
favourite license do not grant such reciprocity.
This is somewhat ironic, but it's not what is happening here.

On 20/03/2019, Florian Weimer  wrote:
> The behavior becomes much more reasonable if you assume that a
> proprietary variant of the code exists somewhere, and the authors hope
> to merge back contributions into it, under the original non-copyleft
> license.

That's why I said they could (at most, but I guess Bradley can correct
me) double license the modifications, say as GPL and BSD or MIT.

Downstream, developers of a compatible proprietary variants might then
chose to terminate their own GPL license on both FRR and Quagga and
adapt those specific patches to that tool.
The cons of this is that they are not going to ever be able to
distribute or modify these projects without violating the authors'
copyright.

And tbh, I don't know if such voluntary termination of a copyleft
license can be done privately or should be publicly declared somehow.


Giacomo



Re: no need to keep non-copylefted files that way in a copylefted project. (was Re: FRR package in Debian violates the GPL licence)

2019-03-20 Thread David Lamparter
On Tue, Mar 19, 2019 at 05:28:05PM -0700, Bradley M. Kuhn wrote:
> David Lamparter wrote:
> > The respective original authors have expressed and reaffirmed their wishes
> > for the code to remain under a permissive license. . ..  we have decided to
> > try and honour the original author's requests.
> 
> That's an odd request, since it contradicts the terms of the license
> they offered the code under originally.

I've probably been a bit unclear here.  The request wasn't about the
code; they understand perfectly well that people can take their code and
pretty much do most things with it.

This was about them continuing to invest time into the code.  It was
them who ported the code to make use of the Quagga/FRR infrastructure,
and they intended to continue maintaining, updating, and enhancing the
code inside Quagga/FRR.

[...]
> so it seems to me that the authors are being a bit unfair to your
> copyleft project by making demands of you that they aren't
> (presumably) making of proprietary combiners of the code (i.e., if
> they didn't want the proprietary combiners to relicense under
> licenses other than theirs, they'd have used copyleft in the first
> place themselves).

They're happy if someone proprietary takes up their code, but they won't
give /them/ any support.  They would've been happy to work with us very
closely, but they do insist that their ongoing work is kept under the
license they have chosen (and which they have their reasons for.)

By relicensing their code to GPL, Quagga had essentially shunted itself
down to the position of any random proprietary relicensor.

> This is an example of a common trend I see: social pressure to keep
> non-copylefted code under non-copyleft licenses, sometimes even escalating to
> aggression (as the OpenBSD project did with Linux over wireless drivers),
> while permitting and even encouraging licensors to incorporate the code
> under proprietary licenses, which are much more restricted of copyleft.

FWIW, in this case the OpenBSD people (where ldpd was taken from) were
more relaxed.  But since we're having the discussion anyway for babeld
we might as well keep ldpd under its permissive license too.

> > P.S.: please Cc: me as I'm not subscribed to debian-legal.
>
> Done.

Thanks, you're the first person on this thread to do so :)

-David



Re: no need to keep non-copylefted files that way in a copylefted project. (was Re: FRR package in Debian violates the GPL licence)

2019-03-20 Thread Florian Weimer
* Bradley M. Kuhn:

> David Lamparter wrote:
>> The respective original authors have expressed and reaffirmed their wishes
>> for the code to remain under a permissive license. . ..  we have decided to
>> try and honour the original author's requests.
>
> That's an odd request, since it contradicts the terms of the license
> they offered the code under originally.  In fact, it's quite typical for
> projects to take non-copylefted code and bring it into a copylefted project
> and make copylefted changes thereafter.

It is not always clear whether the changes are subject to the
surrounding project's license or the original (non-copyleft) license.

> Specifically, the original author's request, expressed through their
> choice of a non-copyleft license, was that downstream should have
> permission to relicense under nearly any sort of downstream
> licenses, including proprietary ones, so it seems to me that the
> authors are being a bit unfair to your copyleft project by making
> demands of you that they aren't (presumably) making of proprietary
> combiners of the code (i.e., if they didn't want the proprietary
> combiners to relicense under licenses other than theirs, they'd have
> used copyleft in the first place themselves).

The behavior becomes much more reasonable if you assume that a
proprietary variant of the code exists somewhere, and the authors hope
to merge back contributions into it, under the original non-copyleft
license.



no need to keep non-copylefted files that way in a copylefted project. (was Re: FRR package in Debian violates the GPL licence)

2019-03-19 Thread Bradley M. Kuhn
David Lamparter wrote:
> The respective original authors have expressed and reaffirmed their wishes
> for the code to remain under a permissive license. . ..  we have decided to
> try and honour the original author's requests.

That's an odd request, since it contradicts the terms of the license
they offered the code under originally.  In fact, it's quite typical for
projects to take non-copylefted code and bring it into a copylefted project
and make copylefted changes thereafter.  This has been in GCC, Linux, and
many of the most famous copyleft projects in history.  This is permitted and
encouraged by non-copyleft FOSS licenses.

Specifically, the original author's request, expressed through their choice
of a non-copyleft license, was that downstream should have permission to
relicense under nearly any sort of downstream licenses, including proprietary
ones, so it seems to me that the authors are being a bit unfair to your
copyleft project by making demands of you that they aren't (presumably)
making of proprietary combiners of the code (i.e., if they didn't want the
proprietary combiners to relicense under  licenses other than theirs, they'd
have used copyleft in the first place themselves).

This is an example of a common trend I see: social pressure to keep
non-copylefted code under non-copyleft licenses, sometimes even escalating to
aggression (as the OpenBSD project did with Linux over wireless drivers),
while permitting and even encouraging licensors to incorporate the code
under proprietary licenses, which are much more restricted of copyleft.

> P.S.: please Cc: me as I'm not subscribed to debian-legal.

Done.
--
Bradley M. Kuhn

Pls. support the charity where I work, Software Freedom Conservancy:
https://sfconservancy.org/supporter/