#1 What happens if a patch replaces entire program ? Who owns the program ?
There is no such thing as a patch that replaces an entire program. If that is the case, it is a completely new program and not associated with the previous one.
#2 What happens if a patch replaces one byte in the entire source tree ? Who owns the program ?
There is no limit to the size of a contribution. If you replace one byte you are a contributor.
#3 what if you add a patch. now someone's patch removes all your additions... Do you still retain part-ownership ?:)
If your code is not within the main project, you are no longer a contributor. For example, if someone writes a GPL program, you contribute 5 lines to it. If he wants to release it commercially and you don't give him the right to do so, he must remove your code to do so.
There is no "line-limit" on software. If you contribute code, you are a "contributor" to the software. For example, contributing 19 lines to a 15 line program means you own over 1/2 of the code.
The GPL specifically says: "You cannot put any other restrictions on the code". So a GPL patch cannot be redistributed within a program under another license!
You CAN however, distribute a patch under the GPL seperately from a program under another license. Then the end-user must patch the software before they use it. But that user cannot turn around and redistribute the consolidated(patched) code as a single package.
The GPL was very carefully designed to force code to stay GPL. That means GPL code cannot be included in non-GPL code and then redistributed.
Now, to reply to your question, for a non-GPL patch to work within the GPL, it must be compatible with the GPL. It cannot put other restrictions on the patch beyond those within the GPL.
If a product is released under the GPL, patches returned to the original tree(unless mentioned otherwise by the author of the patch) are returned under the GPL itself.
This makes the patch supplier a co-author of the program as well, no matter the size of the patch. If you accept patches for your GPL/LGPL program, you must get permission from everyone who provided patches in order to release the program under another license.
It may be that in court they would rule a particular patch too small and inconsequential to consider the person a co-author, but do you really want to risk that and possibly end up in court in the first place?
If you manage a GPL project that accepts patches, be sure to keep track and provide credit to all contributors. If you wish to change the license, make sure you speak to everyone who modified the code first.
Providing a program under the GPL with the intent of leeching off of the friendly help of other open source developers, with a future intent of screwing them over by making the program proprietary, is very selfish in the first place.
You are absolutely right, there are hundreds, even thousands of projects out there that receive very little support from developers. These are also used by very few people as well.
But would you try to change the license of a program hardly used by anyone to a program that is commercial and proprietary, hoping to make a profit? Probably not. I would say the ones that are worthy taking proprietary are also those that would have tons of support from the internet community.
In fact, sometimes a proprietary situation is enough to get people to actually unite and develop a free alternative.
There is no such thing as a patch that replaces an entire program. If that is the case, it is a completely new program and not associated with the previous one.
#2 What happens if a patch replaces one byte in the entire source tree ? Who owns the program ?
There is no limit to the size of a contribution. If you replace one byte you are a contributor.
#3 what if you add a patch. now someone's patch removes all your additions ... Do you still retain part-ownership ? :)
If your code is not within the main project, you are no longer a contributor. For example, if someone writes a GPL program, you contribute 5 lines to it. If he wants to release it commercially and you don't give him the right to do so, he must remove your code to do so.
--Twivel
--Twivel
You CAN however, distribute a patch under the GPL seperately from a program under another license. Then the end-user must patch the software before they use it. But that user cannot turn around and redistribute the consolidated(patched) code as a single package.
The GPL was very carefully designed to force code to stay GPL. That means GPL code cannot be included in non-GPL code and then redistributed.
Now, to reply to your question, for a non-GPL patch to work within the GPL, it must be compatible with the GPL. It cannot put other restrictions on the patch beyond those within the GPL.
-- Twivel
This makes the patch supplier a co-author of the program as well, no matter the size of the patch. If you accept patches for your GPL/LGPL program, you must get permission from everyone who provided patches in order to release the program under another license.
It may be that in court they would rule a particular patch too small and inconsequential to consider the person a co-author, but do you really want to risk that and possibly end up in court in the first place?
If you manage a GPL project that accepts patches, be sure to keep track and provide credit to all contributors. If you wish to change the license, make sure you speak to everyone who modified the code first.
Providing a program under the GPL with the intent of leeching off of the friendly help of other open source developers, with a future intent of screwing them over by making the program proprietary, is very selfish in the first place.
-- Twivel
But would you try to change the license of a program hardly used by anyone to a program that is commercial and proprietary, hoping to make a profit? Probably not. I would say the ones that are worthy taking proprietary are also those that would have tons of support from the internet community.
In fact, sometimes a proprietary situation is enough to get people to actually unite and develop a free alternative.
--Twivel