Horde3D

Next-Generation Graphics Engine
It is currently 27.11.2024, 03:15

All times are UTC + 1 hour




Post new topic Reply to topic  [ 98 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6, 7  Next
Author Message
 Post subject: Re: Licensing issues
PostPosted: 01.06.2009, 17:33 
Offline

Joined: 22.11.2007, 17:05
Posts: 707
Location: Boston, MA
zoombapup wrote:
As long as we can see the final wording and that wording is acceptable.

But the exceptions I've seen so far arent really that clear (out of context with the full license).

I dont think its being irrational to really take care with this kind of thing. As a commercial developer you HAVE to be exceedingly careful about it (I've seen first hand what happens when you arent).
Are you a lawyer? Because the static linking exceptions to the GPL were written with the oversight of the FSF's lawyers, and have been reviewed by many lawyers since. They do exactly what we have stated they do, i.e. allow you to link statically with the library without having to provide your code under the GPL.

Furthermore, if they didn't do exactly what we said, every piece of code that has ever been compiled on Linux, Mac or Windows using Cygwin or MinGW, would be subject to the GPL - and this is plainly not the case.
Quote:
And seriously, I *DO NOT* like the GPL take on all software having to be free. I dont think thats irrational as someone trying to make a living making software. But if the license ends up in the right form then thats fine.
Not liking the GPL is fine - many moderately respectable programmers share your phobia. However, rejecting any derivative of the GPL based on that is a tad irrational.

And while we are engaged in this fairly pointless discussion, go read the redistribution terms for the VC++ redistributables. As opposed to the GPL's explicit statement of exactly what you may and may not do, the Microsoft licenses are fuzzy to the point that you have no idea what you may and may not do - I am still not entirely convinced that those terms allow MSVC to be used for BSD development (let alone GPL), and neither is a good chunk of the internet.

_________________
Tristam MacDonald - [swiftcoding]


Top
 Profile  
Reply with quote  
 Post subject: Re: Licensing issues
PostPosted: 02.06.2009, 10:44 
Offline

Joined: 08.06.2008, 06:52
Posts: 6
swiftcoder wrote:
And while we are engaged in this fairly pointless discussion, go read the redistribution terms for the VC++ redistributables. As opposed to the GPL's explicit statement of exactly what you may and may not do, the Microsoft licenses are fuzzy to the point that you have no idea what you may and may not do - I am still not entirely convinced that those terms allow MSVC to be used for BSD development (let alone GPL), and neither is a good chunk of the internet.


Perhaps they are deliberately fuzzy so that they have loopholes to sue you when they want :).


Top
 Profile  
Reply with quote  
 Post subject: Re: Licensing issues
PostPosted: 04.06.2009, 01:24 
Offline
Engine Developer

Joined: 10.09.2006, 15:52
Posts: 1217
Hmm, after some thinking about the GPL exceptions I must say that I don't quite understand how they are supposed to work as expected. Let's take the classpath exception. It states that as soon as you link the library to an independent module, the resulting executable is no more required to be under the GPL. But if that is the case, how can you enforce that modifications to the library code are made available? The GPL says that you need to make the source code available when you distribute the binaries. But the GPL is no longer in effect for the final executable. Isn't that a paradoxon? It is already late here, probably I must miss something obvious... :?


Top
 Profile  
Reply with quote  
 Post subject: Re: Licensing issues
PostPosted: 04.06.2009, 03:38 
Offline

Joined: 22.11.2007, 17:05
Posts: 707
Location: Boston, MA
marciano wrote:
Hmm, after some thinking about the GPL exceptions I must say that I don't quite understand how they are supposed to work as expected. Let's take the classpath exception. It states that as soon as you link the library to an independent module, the resulting executable is no more required to be under the GPL. But if that is the case, how can you enforce that modifications to the library code are made available? The GPL says that you need to make the source code available when you distribute the binaries. But the GPL is no longer in effect for the final executable. Isn't that a paradoxon? It is already late here, probably I must miss something obvious... :?
The key phrase here is 'independent module'.

To release a closed-source executable under the exception, you must be able to swap the copy of the library you are using with the official version, and compile without making further changes.

If you make changes to the library (i.e. not the independent module), then those must abide by the GPL.

_________________
Tristam MacDonald - [swiftcoding]


Top
 Profile  
Reply with quote  
 Post subject: Re: Licensing issues
PostPosted: 04.06.2009, 08:28 
Offline
Engine Developer

Joined: 10.09.2006, 15:52
Posts: 1217
It depends on what linking means. Intuitively for me it is adding files to the program. But what if I just make a small modification (bugfix) to Horde, is that already considered as linking new code? Furthermore, Classpatch is not clear about the number of independent modules. Does it mean one independent module is enough to distribute the executable under different conditions? Or does it want to say "give you permission to link this library with additional modules where each of these additional module is indepdent to produce an exectutable,...". It is not really clear from the terms.

There are still two other licenses that are worth considering: the Mozilla Public License (MPL) and the Eclipse Public License (EPL). Both have a very weak copyleft as we want it.


Top
 Profile  
Reply with quote  
 Post subject: Re: Licensing issues
PostPosted: 04.06.2009, 15:57 
Offline

Joined: 22.11.2007, 17:05
Posts: 707
Location: Boston, MA
marciano wrote:
It depends on what linking means. Intuitively for me it is adding files to the program.
Linking means combining multiple execution units in a linker (i.e. ld).
Quote:
But what if I just make a small modification (bugfix) to Horde, is that already considered as linking new code?
Classpath is very clear on this issue (note the bold text):

As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.

Quote:
Furthermore, Classpatch is not clear about the number of independent modules. Does it mean one independent module is enough to distribute the executable under different conditions? Or does it want to say "give you permission to link this library with additional modules where each of these additional module is indepdent to produce an exectutable,...". It is not really clear from the terms.
Again, Classpath is very clear on this point - are we sure we are both reading the same license?

As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.

_________________
Tristam MacDonald - [swiftcoding]


Top
 Profile  
Reply with quote  
 Post subject: Re: Licensing issues
PostPosted: 04.06.2009, 18:40 
Offline
Engine Developer

Joined: 10.09.2006, 15:52
Posts: 1217
swiftcoder wrote:
Linking means combining multiple execution units in a linker (i.e. ld).

Sure but how does the copyleft work then. Let's say you have modified Horde, you did just a small bugfix. Now you link it against a single independent module (e.g. your window creation code). According to the classpath exception, your executable is not covered by the GPL any more. So the clause of the GPL that forces you to provide the source code when you release the binary is also not in place any more.

Probably the term "this library" is the key and refers to an unmodified version of Horde. In fact classpath says "If you modify this library, you may extend [...]". But I still don't see the whole logical chain that forces you to release the modified Horde code.


Top
 Profile  
Reply with quote  
 Post subject: Re: Licensing issues
PostPosted: 04.06.2009, 19:09 
Offline

Joined: 22.11.2007, 17:05
Posts: 707
Location: Boston, MA
marciano wrote:
swiftcoder wrote:
Linking means combining multiple execution units in a linker (i.e. ld).
Sure but how does the copyleft work then. Let's say you have modified Horde, you did just a small bugfix. Now you link it against a single independent module (e.g. your window creation code). According to the classpath exception, your executable is not covered by the GPL any more. So the clause of the GPL that forces you to provide the source code when you release the binary is also not in place any more.
Because the standard (un-exempted) GPL doesn't require linking to activate the copyleft. Under the GPL, any modifications to GPL'd source code immediately causes the GPL to apply to those modifications.

Note that the exemption also specifies: "provided that you also meet, for each linked independent module, the terms and conditions of the license of that module.". The original library (in this case Horde) is one of the independent modules, and thus you must satisfy the standard GPL distribution requirements for that module.

_________________
Tristam MacDonald - [swiftcoding]


Top
 Profile  
Reply with quote  
 Post subject: Re: Licensing issues
PostPosted: 04.06.2009, 20:29 
Offline
Engine Developer

Joined: 10.09.2006, 15:52
Posts: 1217
swiftcoder wrote:
Because the standard (un-exempted) GPL doesn't require linking to activate the copyleft. Under the GPL, any modifications to GPL'd source code immediately causes the GPL to apply to those modifications.

Let's take a close look at the license, GPLv2 since it is smaller than v3 and the exceptions are written against v2 anyway.

The sections relevant for distribution are 1 to 3. Note that the following is my interpretation of the conditions, I can't say for sure that I don't miss something.

Section 1 just covers unmodified ("verbatim") distribution so it is irrelevant now.

Section 2 defines rules for distributing the modified source code:
a) Mark modifications!
b) Distribute the whole work under the GPL!
c) Some rules for user interfaces, irrelevant
Section 2 does not force you to distribute modified code, it just specifies how you need to distribute code in case you want to.

Section 3 covers distribution of binaries. It states that in some way you need to distribute the source code with the binaries. The section lists different options for that. This section is what I would consider as the copyleft since it forces you to make available the code when giving out the binaries.

So I think the copyleft is bound to the binary distribution and that could be a problem when the binary distribution does not take place according to the GPL but under the terms of some other license.

swiftcoder wrote:
Note that the exemption also specifies: "provided that you also meet, for each linked independent module, the terms and conditions of the license of that module.". The original library (in this case Horde) is one of the independent modules, and thus you must satisfy the standard GPL distribution requirements for that module.

I don't think that the original or the modified lib can be considered as independent modules. They are based on themselves, so according to Classpath they are not independent.


Top
 Profile  
Reply with quote  
 Post subject: Re: Licensing issues
PostPosted: 04.06.2009, 20:58 
Offline

Joined: 22.11.2007, 17:05
Posts: 707
Location: Boston, MA
marciano wrote:
swiftcoder wrote:
Note that the exemption also specifies: "provided that you also meet, for each linked independent module, the terms and conditions of the license of that module.". The original library (in this case Horde) is one of the independent modules, and thus you must satisfy the standard GPL distribution requirements for that module.
I don't think that the original or the modified lib can be considered as independent modules. They are based on themselves, so according to Classpath they are not independent.
I think you may be reading the definition of an independent module a tad too literally - on the other hand, the intention may have been not to force copyleft, as requiring all programmers to distribute the source of libstdc++ would have been a little tricky.

If you aren't entirely happy with the GPL+exceptions, I am equally happy with the Mozilla Public License. However, whichever we pick, we still need to write an exception for extension modules.

_________________
Tristam MacDonald - [swiftcoding]


Top
 Profile  
Reply with quote  
 Post subject: Re: Licensing issues
PostPosted: 04.06.2009, 22:27 
Offline
Engine Developer

Joined: 10.09.2006, 15:52
Posts: 1217
I would prefer the Eclipse Public License (EPL) which looks quite good to me. I think a special exception for extensions is not required since extensions just use subclassing. From the EPL FAQ:

Quote:
If you have made a copy of existing Eclipse code and made a few minor revisions to it, that is a derivative work. If you"ve written your own Eclipse plug-in with 100% your own code to implement functionality not currently in Eclipse, then it is not a derivative work.
Quote:
For clarity, merely interfacing or interoperating with Eclipse plug-in APIs (without modification) does not make an Eclipse plug-in a derivative work.


Top
 Profile  
Reply with quote  
 Post subject: Re: Licensing issues
PostPosted: 04.06.2009, 23:48 
Offline

Joined: 22.11.2007, 17:05
Posts: 707
Location: Boston, MA
marciano wrote:
I would prefer the Eclipse Public License (EPL) which looks quite good to me. I think a special exception for extensions is not required since extensions just use subclassing. From the EPL FAQ:
Quote:
If you have made a copy of existing Eclipse code and made a few minor revisions to it, that is a derivative work. If you"ve written your own Eclipse plug-in with 100% your own code to implement functionality not currently in Eclipse, then it is not a derivative work.
Quote:
For clarity, merely interfacing or interoperating with Eclipse plug-in APIs (without modification) does not make an Eclipse plug-in a derivative work.
That seems entirely acceptable - my vote is with yours for the EPL then.

_________________
Tristam MacDonald - [swiftcoding]


Top
 Profile  
Reply with quote  
 Post subject: Re: Licensing issues
PostPosted: 07.06.2009, 11:38 
Offline

Joined: 16.05.2009, 12:43
Posts: 207
I guess for clarity's sake, we should define what is meant by interfacing/interoperating with horde (as opposed to the plugin api for eclipse).

The problem with the eclipse license is that they have an app (which I'm assuming they are referring to when they state about minor mods and compiling being a derivative work) and the app plugin api (which I'm assuming they mean when they say writing a plugin is not a derivative work).


Top
 Profile  
Reply with quote  
 Post subject: Re: Licensing issues
PostPosted: 07.06.2009, 13:01 
Offline
Engine Developer

Joined: 10.09.2006, 15:52
Posts: 1217
The term "derivative work" is very common in open source licenses and everyone seems to agree that subclassing is not creating a derivative work.
But we could write a small licensing FAQ that is included in the documentation. Of course that FAQ doesn't change the licensing terms but it would show clearly what we understand as derivative work.


Top
 Profile  
Reply with quote  
 Post subject: Re: Licensing issues
PostPosted: 19.06.2009, 18:47 
Offline

Joined: 22.11.2007, 17:05
Posts: 707
Location: Boston, MA
Some of you may have seen it already, but Ogre recently added a static linking exception to their LGPL: http://www.ogre3d.org/2009/03/06/lgpl-exclusions-added-static-linking-now-simpler

_________________
Tristam MacDonald - [swiftcoding]


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 98 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6, 7  Next

All times are UTC + 1 hour


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group