#143909 - HyperHacker - Sat Oct 27, 2007 8:08 am
I thought I'd ask here because you guys seem pretty knowledgeable about this stuff. ;-)
First question, if you use routine X, which is under GPL2, in your program, can you specify that routine Y if used on its own is to be under a separate license? Or that if someone removes routine X and all the code that uses it, the result is then under a different license?
Second, I'm looking for a license that basically just says if you use my code, you have to do two things:
1) Mention in your program and/or documentation that you used my code, and
2) provide a copy of the version of my code you used upon request.
The idea behind #2 is that if you use my code and modify it, you have to release that modified version, but not the entire source code of the program. (If you write routine X and use a modified version of my routine Y, you have to provide a copy of that modified routine Y, but not necessarily X.) Is there an existing license that covers these terms?
_________________
I'm a PSP hacker now, but I still <3 DS.
#143926 - tepples - Sat Oct 27, 2007 1:57 pm
HyperHacker wrote: |
I thought I'd ask here because you guys seem pretty knowledgeable about this stuff. ;-) |
I'll get the first thing out of the way: Nothing you read on gbadev.org is legal advice; it's just a starting point for your discussion with legal counsel.
Quote: |
First question, if you use routine X, which is under GPL2 |
Is that GPLv2, or is that GPLv2 "or any later version"?
Quote: |
can you specify that routine Y if used on its own is to be under a separate license? Or that if someone removes routine X and all the code that uses it, the result is then under a different license? |
This works if the license on routine Y and the rest of the program is GPL compatible, which pretty much means a GNU GPL with some exceptions (such as the GNU Lesser General Public License), a FreeBSD style permissive license or the Sleepycat license, this works.
Quote: |
Second, I'm looking for a license that basically just says if you use my code, you have to do two things:
1) Mention in your program and/or documentation that you used my code, and
2) provide a copy of the version of my code you used upon request. |
Upon whose request? Any third party's, or only the original developer's?
Quote: |
The idea behind #2 is that if you use my code and modify it, you have to release that modified version, but not the entire source code of the program. |
What you might be looking for is the LGPL. Here's LGPLv3, and in case you're linking against a GPL'd library that's GPLv2 only, here's LGPLv2.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#143952 - HyperHacker - Sat Oct 27, 2007 7:54 pm
tepples wrote: |
Quote: | First question, if you use routine X, which is under GPL2 |
Is that GPLv2, or is that GPLv2 "or any later version"? |
The one I'm dealing with now is v2, but there could be some under v3 later.
Quote: |
Upon whose request? Any third party's, or only the original developer's? |
Any third party.
Quote: |
Quote: | The idea behind #2 is that if you use my code and modify it, you have to release that modified version, but not the entire source code of the program. |
What you might be looking for is the LGPL. Here's LGPLv3, and in case you're linking against a GPL'd library that's GPLv2 only, here's LGPLv2. |
Would that mean my program would have to be a library, or does it still work if they just copy and paste into their own source file?
_________________
I'm a PSP hacker now, but I still <3 DS.
#143957 - tepples - Sat Oct 27, 2007 8:20 pm
"Library" simply means "a work under LGPLv2.1 or LGPLv3". It doesn't necessarily have to be packaged as a .a file. Another application licensed is a "library" is 7-Zip.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#144057 - Quirky - Sun Oct 28, 2007 8:49 pm
HyperHacker wrote: |
I thought I'd ask here because you guys seem pretty knowledgeable about this stuff. ;-)
First question, if you use routine X, which is under GPL2, in your program, can you specify that routine Y if used on its own is to be under a separate license? Or that if someone removes routine X and all the code that uses it, the result is then under a different license?
|
Probably the clearest way to do this would be to place routine X in its own file, with a GPL copyright notice at the start. The other routines can go in other files with appropriate copyright notices. I don't know what the full implications are with this though - I assume the program/library would be GPL2 overall.
There are some guidelines here for using different licensed code in the same project that may help: [url=http://www.softwarefreedom.org/resources/2007/gpl-non-gpl-collaboration.html]
Maintaining Permissive-Licensed Files in a GPL-Licensed Project: Guidelines for Developers[/url].
#144308 - sgeos - Wed Oct 31, 2007 12:47 pm
The problem is- is your license compatible with the GPL/LGPL. You could put a compatibility clause in that makes it compatible with the GPL/LGPL license if any of the code is used in conjunction with GPL/LGPL code.
There is nothing magical about legal writing... it's a lot like programming actually. You get what you write and exactly what you write. If you want a contract or a license to work a certain way, write it down. That having been said, a lawyer should know the laws and know how to write a solid contract, so it is a good idea to run your license past a lawyer before you go live with it. Lawyers run $100+ an hour.
-Brendan
#144315 - HyperHacker - Wed Oct 31, 2007 2:33 pm
Yeah, but I don't really have $100+ an hour to spend on tweaking the license of a homebrew project. :-/ That's why I was hoping there were existing licenses that matched what I wanted, since they're likely to be more solid than what I might write.
_________________
I'm a PSP hacker now, but I still <3 DS.
#144358 - sgeos - Thu Nov 01, 2007 2:06 am
Realisticly speaking, you are probably safe to pick something and then watch you code disappear into the depths of obscurity. You could use a normal GPL (more or less what you want), or you could release it to the public domain and ask that people send code upon request (cannot be enforced, but it probably won't need to be.) You could also write your own. Writing you license with the motivation behind will probably be good enough unless you have wild plans.
-Brendan
#144359 - HyperHacker - Thu Nov 01, 2007 2:24 am
The problem with writing my own is I know nothing about licensing, so it'd probably be full of stupid mistakes and clauses that don't really make sense. That, and I absolutely hate the GPL (viral = no), but it has to be compatible since one of the routines I'm using falls under it. :-/
_________________
I'm a PSP hacker now, but I still <3 DS.
#144381 - keldon - Thu Nov 01, 2007 9:19 am
Create a proprietary system and then have the GPL part of the code add on to that. So long as your proprietary code is not a derivative of the GPL code it's ok. That's why Audacity and LAME can work together.
#144399 - HyperHacker - Thu Nov 01, 2007 4:15 pm
Wouldn't I have to dynamically link it in to do that? Is static linking enough?
_________________
I'm a PSP hacker now, but I still <3 DS.