Register Guidelines E-Books Today's Posts Search

Go Back   MobileRead Forums > E-Book General > News

Notices

Reply
 
Thread Tools Search this Thread
Old 10-27-2008, 08:46 PM   #1
AZed
Connoisseur
AZed has a complete set of Star Wars action figures.AZed has a complete set of Star Wars action figures.AZed has a complete set of Star Wars action figures.AZed has a complete set of Star Wars action figures.
 
Posts: 57
Karma: 307
Join Date: Oct 2008
Device: PalmOS PDA
GPL2 vs GPL3 licensing issues

(For those confused about where this is coming from, I'm splitting this conversation off from this thread to prevent a major thread drift.)

Quote:
Originally Posted by tompe View Post
Well, I really think that if somebody use my code and put it in an E-book reader then they should have to provide the tools for installing modified code. When I read GPL3 I thought it was much better then GPL2 since it covered the cases that GPL2 was intended to cover but did not do formally.

Now it seems improbable that somebody would want to put MobiPerl code inside a device so I will think about this. I saw licensing formulated as "GPL2 or later" and that might be an alternative for me...
The incompatible licensing shift between GPL2 vs GPL3 is actually a hideous problem, and much as it benefits me if you went to GPL2+ in terms of my being able to use your code, I have to warn you that it's a massive headache to maintain, because you can only dual-license the code that *you* wrote. If you pull code from another project using GPL2 only, then that code remains GPL2-only, and it contaminates your entire code, making the entire thing GPL2-only. Pulling code from another project using GPL3 only contaminates your code the same way, making the entire thing GPL3-only, and you still can't use GPL3 and GPL2 code together without invalidating your ability to redistribute the result.

Worse, dual licensing also doesn't actually provide you with any of the GPL3 protections, because someone creating a derivative work that wants to bypass them can just claim GPL2 usage. A "This Version Or Later" license is almost always a worst-of-both-worlds situation. All that dual-licensing gets you is that other people can use your code in pure GPL2 and GPL3 projects -- but you can't use their code in return without committing one way or another, though you can merge other GPL2-or-later code without trouble.

If you truly believe that you don't want someone to be able to use your software in single-purpose hardware not modifiable by the end-user, then you really need to stay with GPL3, but you also need to think about immediately attaching a Section 7(c) statement to the end of your copyright section, because otherwise you are vulnerable to project name hijacking by the first person to invoke 7(c) on a modified copy of your code. Be warned, however, that invoking 7(c) yourself unfortunately causes headaches for anyone trying to include your software in a wider distrubution. If you ever want MobiPerl packaged with a Linux distrubtion, for instance, GPL3+7(c) will not make your code particularly attractive to packagers, who either have to completely rename your package or commit to never patching it, even in the case of security bugs (see the Iceweasel/Firefox split for a real-world example of this kind of clause being enforced), or ignore the clause and pray you never decide to enforce when they do patch.

So your only sane options are really to license GPL2, and put up with the chance of your code being used in E-book reader hardware and be incompatible with GPL3, or license bare GPL3 and be incompatible with GPL2 and anyone who uses GPL3 with a Section 7 that you aren't willing to comply with to use their code (like forcing you to rename your project, print advertisements in your output, or provide legal indemnification), or license GPL3 with your own Section 7c (which at least protects your project name, though all of the other subsections cannot be avoided this way), and make life difficult for distributors.

The GPL3 is unfortunately nearly Microsoftian in style -- a few brilliant innovations with Cthulu's tentacles creeping throughout making sane usage difficult.
AZed is offline   Reply With Quote
Old 02-11-2009, 06:00 PM   #2
latchkeyed
Member
latchkeyed began at the beginning.
 
Posts: 20
Karma: 10
Join Date: Jun 2008
Device: Cybook Gen3
Confused

I'm a little confused by your interpretation of GPLv3, in particular:

Quote:
If you truly believe that you don't want someone to be able to use your software in single-purpose hardware not modifiable by the end-user, then you really need to stay with GPL3, but you also need to think about immediately attaching a Section 7(c) statement to the end of your copyright section, because otherwise you are vulnerable to project name hijacking by the first person to invoke 7(c) on a modified copy of your code.
and

Quote:
or license bare GPL3 and be incompatible with GPL2 and anyone who uses GPL3 with a Section 7 that you aren't willing to comply with to use their code (like forcing you to rename your project, print advertisements in your output, or provide legal indemnification)
Could you explain the mechanism that lets someone else use section 7(c) on a modified copy of your code to hijack the name?
latchkeyed is offline   Reply With Quote
Advert
Old 02-11-2009, 06:22 PM   #3
tompe
Grand Sorcerer
tompe ought to be getting tired of karma fortunes by now.tompe ought to be getting tired of karma fortunes by now.tompe ought to be getting tired of karma fortunes by now.tompe ought to be getting tired of karma fortunes by now.tompe ought to be getting tired of karma fortunes by now.tompe ought to be getting tired of karma fortunes by now.tompe ought to be getting tired of karma fortunes by now.tompe ought to be getting tired of karma fortunes by now.tompe ought to be getting tired of karma fortunes by now.tompe ought to be getting tired of karma fortunes by now.tompe ought to be getting tired of karma fortunes by now.
 
Posts: 7,452
Karma: 7185064
Join Date: Oct 2007
Location: Linköpng, Sweden
Device: Kindle Voyage, Nexus 5, Kindle PW
I changed to GPL2 or later for MobiPerl. And if that is a problem I can change to a more "Perly" license.

As I understood it you cannot really have a Perl library GPL3 only and put it on CPAN since people using it will not look at the license and it will conflict with all the other libraries.
tompe is offline   Reply With Quote
Old 02-12-2009, 02:13 AM   #4
AZed
Connoisseur
AZed has a complete set of Star Wars action figures.AZed has a complete set of Star Wars action figures.AZed has a complete set of Star Wars action figures.AZed has a complete set of Star Wars action figures.
 
Posts: 57
Karma: 307
Join Date: Oct 2008
Device: PalmOS PDA
Quote:
Originally Posted by latchkeyed View Post
Could you explain the mechanism that lets someone else use section 7(c) on a modified copy of your code to hijack the name?
If you don't invoke the clause that prevents someone else from using your name, someone else can release a version of your code with many improvements, but also using exactly the same name.

So far so good, but if that person then also invokes the clause preventing derivative works from using the name he released with (i.e. the original name of your project), then you will be in violation if you use any of his changes in your own code unless you use a different name. I.e. at that point you are forced to rename your project to use the improvements to your own code.
AZed is offline   Reply With Quote
Old 02-12-2009, 04:22 PM   #5
latchkeyed
Member
latchkeyed began at the beginning.
 
Posts: 20
Karma: 10
Join Date: Jun 2008
Device: Cybook Gen3
name rename name

Quote:
Originally Posted by AZed View Post
If you don't invoke the clause that prevents someone else from using your name, someone else can release a version of your code with many improvements, but also using exactly the same name.

So far so good, but if that person then also invokes the clause preventing derivative works from using the name he released with (i.e. the original name of your project), then you will be in violation if you use any of his changes in your own code unless you use a different name. I.e. at that point you are forced to rename your project to use the improvements to your own code.
I don't know, I think you may be giving those section provisions a bit too much force. The section 7 portion you mention says

Quote:
Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version
Given that you are the original source of both the codebase and the name, I can't believe that someone would find requiring you to change project names a "reasonable way" to prevent misrepresentation of the original material.

I guess it all goes back to the idea that other people can make changes to the code license later on. Whether they're adding an exception or choosing to move to a later version of the GPL (assuming your code has the "or later" option), you could be faced with changing your license to accept other people's work. You never need to take their contributions though, and even without 7(c) you probably have trademark claims against their use of the name if they have truly forked the project.

Just my community-member non-lawyer two cents.
latchkeyed is offline   Reply With Quote
Advert
Old 02-12-2009, 06:02 PM   #6
AZed
Connoisseur
AZed has a complete set of Star Wars action figures.AZed has a complete set of Star Wars action figures.AZed has a complete set of Star Wars action figures.AZed has a complete set of Star Wars action figures.
 
Posts: 57
Karma: 307
Join Date: Oct 2008
Device: PalmOS PDA
Quote:
Originally Posted by latchkeyed View Post
Given that you are the original source of both the codebase and the name, I can't believe that someone would find requiring you to change project names a "reasonable way" to prevent misrepresentation of the original material.
But you're not.

There are three codebases in question here. Code A is the original code, under bare GPL3. Code B is a derivative work of Code A, under GPL3+requiring modified versions being marked as different, and it may have the same name as Code A. Code C is a derivative work of Code B, and *must* be marked as different from Code B, because the author of Code C does not have any rights to the the code contributed by the author of Code B just because he happens to be the author of Code A, and although the clause can be added in a derivative work, it cannot be removed.

With respect to Code C, Code B is the "original material". Not Code A. Not unless all the additions in Code B are rewritten or removed.


Quote:
I guess it all goes back to the idea that other people can make changes to the code license later on. Whether they're adding an exception or choosing to move to a later version of the GPL (assuming your code has the "or later" option), you could be faced with changing your license to accept other people's work. You never need to take their contributions though, and even without 7(c) you probably have trademark claims against their use of the name if they have truly forked the project.
You don't have to use their code, no, but if you don't want to be able to use someone else's improvements to your code, just go with BSD/Artistic and give up on copyleft and you'll make everyone's life simpler. And yes, doing "GPL version X or Later" has much the same issue. It means that other people can use your work in all sorts of things, but you generally can't use their improvements. It's not a bad choice for "fire and forget" code that you don't plan to maintain, as it guarantees *some* kind of future copylefting, but is bad for people that actually care about the terms of their license.

Trademark is a completely separate issue. You don't get trademark rights by default, and few Free Software authors go to the trouble and expense of applying for a software trademark for their work. If you did, and then released a project under GPL3 without applying 7c, you might very well end up losing the trademark entirely on the grounds that you didn't defend it.
AZed is offline   Reply With Quote
Old 02-13-2009, 04:40 PM   #7
latchkeyed
Member
latchkeyed began at the beginning.
 
Posts: 20
Karma: 10
Join Date: Jun 2008
Device: Cybook Gen3
Likely?

I guess I'm not worried because I don't see those sorts of disputes happening. The more common situation I see is projects that start with too little license flexibility, having chosen something like the artistic license, and then end up going through difficult relicensing processes to track down inactive committers etc when the community decides that they want to pull in code under GPL or some other license. So the fact that the "or later" option exists, or that the section 7 provisions allow me to pull in code from Apache 2.0, make me feel like I'll have less trouble down the road if other people join the project.

Quote:
But you're not.

There are three codebases in question here. Code A is the original code, under bare GPL3. Code B is a derivative work of Code A, under GPL3+requiring modified versions being marked as different, and it may have the same name as Code A. Code C is a derivative work of Code B, and *must* be marked as different from Code B, because the author of Code C does not have any rights to the the code contributed by the author of Code B just because he happens to be the author of Code A, and although the clause can be added in a derivative work, it cannot be removed.
What I meant by "original code base" might be clearer if I use an example. Here's a scenario: I put out MySQL under v3 and someone comes along, patches it, and releases the new version under v3 with a 7(c) exception.

Now, even if I take your patches and reincorporate them into the main MySQL, I don't think you'll be able to use section 7 to make me change the project name. If you look at the text in section 7, before it lists the types of things you can write exceptions about, it says:

Quote:
Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:
Then going on to say:

Quote:
c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version
So the only thing that you can write exceptions about is the material you add to the covered work. Since you just wrote a patch to MySQL, I don't think you've got much of a case to claim that a name change for the majority of the code base is required to prevent misrepresentation of the origin of your patch, nor is changing the name for the main MySQL a reasonable way to mark it as different from your copy+patch. You might be able to try using 7(c), I just don't see many who would go through the trouble to, or it actually getting enforced if they did.

It is a non-lawyer, pragmatist's argument, I know. But that's an accurate description of me.
latchkeyed is offline   Reply With Quote
Reply


Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
iTunes Licensing Agreement and Weapons of Mass Destruction Madam Broshkina Lounge 49 08-25-2010 07:02 PM
Authors' Licensing and Collecting Society (UK) Richard Herley Writers' Corner 0 08-25-2010 12:59 PM
Android Developers: Licensing Service For Android Applications kjk Android Devices 0 07-28-2010 03:23 PM
Sony Connect Licensing scarter Sony Reader 5 12-11-2008 12:05 PM
eReader server licensing albertc Other formats 1 11-24-2005 11:25 AM


All times are GMT -4. The time now is 03:12 PM.


MobileRead.com is a privately owned, operated and funded community.