[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: FRR package in Debian violates the GPL licence



Hi Paul

I’ve watching this thread with interest, and I must admit I’m reluctant to get too involved, but there are a couple of things I thought it might be helpful (!) to point out. 

> On 20 Mar 2019, at 13:53, Paul Jakma <paul@jakma.org> wrote:
> 
> On Wed, 20 Mar 2019, Ole Streicher wrote:
> 
>> My example
>> 
>> #include <log.h>
>> int main(void) { zlog_rotate(); return 0; }
>> 
>> is not an adaption of any GPL code. It is fully written by my
>> own.
> 
> It is written by you, and you have copyright in it (in some way, I 
> have the vague idea there can be complex legal details in that).
> 
> However, assuming this "zlog_rotate" function is non-trivial and a 
> copyrightable work, then the holder of the copyright in "zlog_rotate" 
> /also/ has copyright in your work. For your work is based upon the 
> "zlog_rotate" work - it /is/ an adaptation of it.
> 
> I know there are many programmers who can't get their head around that, 
> however I don't believe that's at all contraversial amongst lawyers.


This would only be true if the string of text “zlog_rotate” is itself copyrightable. And in all jurisdictions I’m aware of, it would fail that test. 

Incorporating the functionality of a work by reference is something that lawyers have been doing for years. We will write building contracts incorporating JCT Minor works and financial contracts incorporating IFEMAs and ISDAs. JCTs, IFEMAs and ISDAs are all standard form contracts which are copyrighted works, but unless we copy any or all of the content of those standard works, then we are not required to pay any licensing fees for only referring to them and incorporating them by name. 

There is an argument that the GPL overreaches copyright law, and says “if you incorporate a piece of GPLd work G into another work W, no matter how trivial that incorporation is, that other work must only be distributed under the GPL”. If that is true, then the distributing party may be in breach of its licence to work G, and may be at risk of having its licence to G terminated by its act of distributing work W, but the copyright owner of W will have no way of preventing the onward distribution of work W. There have been cases in the US which suggest that this sort of overreach is unacceptable (it’s essentially a way of trying to create new, more extensive copyright law by the back door), but I’m not a US lawyer, so can’t comment authoritatively. 

If the GPL doesn’t overreach copyright law, then it’s fine to distribute W under whatever licence you want. Of course, this only applies to the source. If you distribute the object code, then you will have created a combined work (which Larry Rosen has argued, I believe, is collective work as you can still reverse engineer it to extract the two components, but that’s not an argument I’d like to rely on). 

If, in order to write work W, you have to incorporate sufficient of work G (for example an interface definition) into it to make it work that some copyrightable part of G is incorporated, then this argument fails, but ONLY if the parts so copied are subject to the GPL. For example, imagine a program X uses plugins, and it has a published specification for the interface which is usable without licence (assuming either that the interface is not copyrightable, or there is an unrestricted licence) You write a piece of software to that specification, and release it under the GPL. Now it would be absurd to suggest that program X has to be released under the GPL, to comply with the licence of a piece of software which was written *after* it was written. Similarly, if I write another piece of software Y which uses your GPL plugin (thus replicating the plugin interface of program X), then there is no requirement on me to release my code under the GPL. I am copying X’s specification. 

This does, of course, suggest a way of violating the spirit of the GPL by distributing non-GPL component X and component Y in source code as an aggregation, and then also sending over a script to the recipient which combines them. Since the combination occurs prior to distribution, the argument goes, then this is fine. There are a few counterarguments to this. The first is that there is some form of secondary infringement. I have difficulty with this argument: causing someone to do something which is perfectly legal for them to do seems to be a stretch. The second is more interesting, and that is that my causing the script to run on the recipients machine, the person sending the code somehow has control of the recipient’s machine, and is therefore for the period of time that the script is running, they are dong the combination, immediately following which the result is distributed, in violation of the GPL, to the recipient. Far fetched? Well, think about what would happen if the activity took place inside a VM running on the recipient’s machine to which the sender had root access, until the point at which the combination completed, and the sender granted root access to the recipient. The law doesn’t really have the tools to deal with these situations, as I discussed a couple of years ago in the Legal Devroom at FOSDEM. https://archive.fosdem.org/2016/schedule/event/triggering_copyleft/

Best


Andrew



> 
>> Therefore, I don't need to respect the GPL to distribute it. The
>> same is true for the FRR code as far as I have seen it.
> 
> This is where you're at odds with the solicitors I have had advice from.
> 
 Unfortunately, solicitors don’t always give consistent advice...

Best



Andrew

>> Otherwise you must point to a certain code file and prove that it 
>> contains code which is a modified copy of an GPLed file. Which you not 
>> did yet.
> 
> I have given examples of files where the legal advice is that they are 
> derived works of the GPL code.
> 
> regards,
> -- 
> Paul Jakma | paul@jakma.org | @pjakma | Key ID: 0xD86BF79464A2FF6A
> Fortune:
> Armadillo:
> 	To provide weapons to a Spanish pickle.
> 


Reply to: