Licenses are disjoint. Hence the GPL v2 or later means that people can use or distribute the code under either license. However, since the GPL v3 is far more strict about dependency licensing, I am willing to bet that a lot of projects cannot effectively move even if they are GPL v2 or later.
In this case, however, the GPLv3 only grants a subset of the rights granted in the GPLv2. No new rights are granted. So it doesn't seem to be a big change.
Ask yourself why the GFDL has an invariant sections clause. Research the answer and you will find out that it has its roots in the desire to force advocacy of the GNU project by forcibly attaching the GNU manifesto to technical documentation. Free Software == Free Speech, Mr Stallman? Or only *your* free speech?
When the then-main architect of HURD spoke out publically against this sort of forced advocacy, Mr Stallman asked him to resign from the project, saying that all GNU participants must publically support GNU policies. Is this the sort of Free Speech we are to associate with Free Software?
The GPLv2 I think has been a good license in general. I object to the GPL v3 for a number of reasons:
1) Sacrifice of essential freedoms in the license due to a conflict mentality (the antitivoization provisions, for example, which are after all entirely ineffective since you can use a hypervisor to essentially reduce the functionality of the device with non-certified code without actually interfering with the execution of the binary as required by that license).
Note that in this case, you could tie the upgrade of the certified program to other components. If you modify the code, you can install it, and it can run. It just won't have anything to talk to since those software components will be missing and so won't do anything interesting. Since those software components are only communicating with the GPL3 app through essentially sockets and pipes....
It is *far* better to rely on the market in this regard. Sadly, RMS wants to coerce eveyone to agree with him (essentially firing the Hurd architect over his public objection to the use of the GFDL to force advocacy of the GNU project). RMS supports "Freedom" in a "War on Terror" sort of way. Maybe there is a place for him in the Bush Administration?
2) Incredible complexity which renders the license incompatible with BSD-licensed *dependencies.*
The basic issue has to do with whether or not the BSD code can be "relicensed" (in RMS and Eben Moglen's words) as GPL code without making any changes. While it is clear that copyright-worthy changes can be under any license, the question is whether the original code licensed under the BSD license can be. IMHO (IANAL) this talk of "relicensing" seems like legal mumbo-jumbo devoid of any accepted meaning.
The problem is that the GPL 3 is only compatible with licenses which allow this "relicensing" *independant of* other copyrights being enforced. This is clear in the Rationale documents, and in the opinions of both RMS and Mr Moglen. In other words, it requires that I can extend the requirements of the GPL3 to any and all parts of the code and any dependencies not specifically excluded from the Corresponding Source requirements without enforcing any of my own copyrights in the process.
I think that the BSDL always follows copyrighted elements released under that license and cannot be removed because this would require removing the permission grant from the code. Hence the additional permissions cannot meaningfully be removed without adding substantive code to the file. Because the GPL 3 requires that this is possible by merely conveying the software, it seems to me that this is a big problem. The authors of many of our dependencies agree and out of respect for them, I won't support moving the license.
You just can't have your DRM'd hardware interfere with the execution of the GPL3 binary.
Allowing the GPL3 code to run in a sandbox where it doesn;t have access to unencrypted streams of data would not violate the GPL3 in the slightest. RMS is factually wrong about the GPL3 having any mitigating factor on DRM. Hypervisors, or even DRM built into the sound card or video card, effectively can prevent the GPL3 app from getting around it.
However, the GPL v3 requires that certain dependencies are under the a license which allows for "relicensing" under the terms of the GPL v3 (see section 7). It is in the dependency area that you would run into trouble.
LedgerSMB is GPL v2 or later. At the moment there is no plan to change this to V3 or later.
Now, this means that if you fork LedgerSMB, you can decide to use the GPL v3 for your license if you can meet the terms of that license (which by my reading would require removing any dependency on BSD-licensed code since the additional permissions cannot be meaningfully removed in accordance with section 7 of the GPL v3). This probably means a major port from PostgreSQL, or at least the stored procedures, etc.
What is strange is that VBE sees the correct values. So it seems to be some sort of rendering issue in the conversion to *text* and some of the calculations seem to use the wrong value.
OOo does not have a best-of-breed anything. It is getting better but you have to be *better* than MS Office to win converts. Otherwise organizational momentum will kill you.
For spreadsheet manipulation, *nothing* beats Gnumeric. It is far and away the best spreadsheet I have ever worked with for doing complex manipulation of real spreadsheets.
For simple letters, I usually use Abiword, primarily because it interfaces well with my *real* document creation system (Vim/LaTeX). It isn't perfect but it doesn light-weight work well enough. For heavier-duty stuff there is always LyX for those who don't do enough of it to worry about learning how to use Vim and LaTeX properly together.
For presentations, you can use Beamer if you are familiar with LaTeX. Otherwise, you can break down and use OOo for that. This isn't ideal but then neither are presentations;-)
You can opt to follow one license or you can opt to follow the other. However there may be real questions as to whether one can safely remove the permissions grants. IANAL, but it seems at very least unethical and possibly legally dangerous too.
We have known that other related species had feathers. Since it was thus likely that the common ancestor had feathers, this would likely relate to Velociraptor as well. Now, if there was only a way to tell from the fossile record what color they were;-)
However, this is still a really cool find and adds more evidence that this entire group of dinosaur species had feathers.
howso? The FSF in the past has said that the fact that a program optionally uses GNU Readline makes no difference.
My guess is that they don't go after large established BSD projects because of the bad press it would generate and the fact that the issue is moot unless Readline ends up used in a proprietary application. This is is the case without regard to the question of whether linking implies derivation.
In short it would accomplish nothing, probably go nowhere, and achieve a lot fo bad press.
I would agree that there is no compatibility issues of merely using BSD code in a GPL application.
However....
The permission to remove additional permissions applies to the code covered by GPLv3, not any code in the package that is under other licenses. GPLv3 allows GPL authors to add permissions above and beyond what GPLv3 provides, but allows redistributors to remove those additional permissions. None of this means that anyone can remove permissions granted by other licenses to code that is placed under those licenses by the copyright holders, nor does it mean that terms required by other licenses can be removed. This was in response to the argument that the GPL3 requires the ability to change the license on compatible code.
How exactly do you read the requirements to a) make the corresponding source available under the same license (including any dynamically linked subprograms that the software is designed to require) and b) the ability to remove permissions for *any portion of* the covered work (in this case including the corresponding source)? Whouldn't the latter cover dependencies under other licenses?
Furthermore, both Moglen and Stallman talk about the requirement to be able to "relicense" code under the GPL in order for it to be compatible. It seems that the intent is to say that "if you can't change the license to be the GPL then it is not compatible." Which is fine (their right) but not something I want any part of.
Ok, suppose I take a nice BSD-licensed program. I find three bugs and fix them.
One bug was caused by an = instead of an ==.
The other two were caused by typos in variable names in null pointer checks.
I correct the typos. My changes are strictly functional and offer no expressive elements, therefore the whole work is still under the author's original license.
Now, suppose I refactor a bunch of code. Most likely I have now added expressive elements so I now have a copyright to enforce.
It is aguably the case with static linking (though again, the combination could be argued to be a mere collected work).
However, the argument that dynamic linking creates derivative works has a) never been tested in court an b) creates some serious issues for copyright law as it relates to interoperability.
There have been some interesting law school theses which are of interesting reading in this area.
The concern about GPL3 compatibility comes from the following sentence (section 7, paragraph 2):
When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. The last paragraph of the same section states:
Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. In other words, the GPL v3 requires a *relicensing* or *sublicensing* right. I do not believe that the BSD offers such a right. This is very different from the GPL v2.
Sure, it applies to the code once modified. But it may not apply to those modifications. Given the history of allowing companies like Microsoft to use BSD-licensed code in this way, it would seem difficult to suggest that this is not the intent.
So I have a file with a license that says "You can distribute and modifiy provided you do: A, B and C". That's pretty clear to me. Then you're going to add another piece of text saying that "No, no, you can't. Here's what I want you to do in order to modify and distribute: You need D, E, F, G and H". If you start with a BSD file, there are two cases to consider: the case where you did not add copyrightable material (the work is essentially unchanged) and the case where you did (you now have a derivative work).
Case 1 (you have no copyright claim to anything in the work): There is nothing that prohibits you from adding GPL license terms to the BSD terms, but if someone violates the GPL terms, they are not infringing your copyright, so you have no (copy) rights that you can enforce against them. Does this constitute slander of title? IANAL so I don't know.
Case 2 (you have added some copyrightable elements to the original work): Now if you add GPL terms to the BSD license terms you have some rights that you can enforce. Anyone who violates the GPL terms would be liable to you for copyright infringement. Agreed here.
First, thank you for your kind words of support.
So what about "The Torture manual's", or "how to blow-up your local nuclear reactor" instructional dvd's? What about videos of people being murdered? Such things would be great resources for police, investigators, and security personnel. Note that there might be an argument about vidios of people being murdered from a privacy perspective. But the key thing to note is that the murder is the malum in se crime. The fact that there is a murder means that there is a crime, and I doubt that, except for terrorists, that anyone would go around bragging of the crime.
In short, forcing such speech underground in these areas is not really a matter of essential liberty but rather the fact that it reduces public safety. Most of us here should know what security through obscurity is worth:-)
Right, but if you specifically dual license, people have the option of taking a BSD version or a GPL version. As original author, you can re-release the original under whatever you want. Is the intent to provide a sublicense right? Or is the intent to clarify that the GPL is an OK licensing option for derivative works? When in doubt, it is probably a good idea to ask permission. Once again, IANAL.
I did not say that you gain copyright on the original code. If the original author releases as BSD or GPL and I release GPL only mods, the original author cannot pull my new mods into their BSD release. I would have to dual license my mods. Then I am not sure what dual-licensing has to do with your point. My reading of the BSD License is that it does not add restrictions to how you enforce your own copyrights.
It shouldn't be a mystery. Legalese is sometimes said to be a different language and a lot of people are intimidated by contracts enough to believe that they can't understand anything related to law.
Note that IANAL. Although I am a software engineer, my formal training is mostly in history, with a little historical linguistics. These two fields are very closely tied to our current legal system for more reasons than most Lawyers are aware. (Our legal system is a hybrid of Roman and Anglo-Saxon systems, and the legalese elements seem to come primarily from the former. Interestingly Roman legalese is structured very similar to modern American legalese, and it is clearly derived from the liturgical traditions of the old Italic, and hence Indo-EUropean peoples. In essence the same poetic tradition which eventually gave rise to the Vedas also gave rise to modern Legalese.)
I am not saying "don't seek legal help" but rather "ask your lawyer to help you understand *why* certain lines are the way they are."
Oh, and getting a Latin dictionary certainly helps.
IANAL. I would say, based on my research that there is a huge gray area here.
In general, fixing a bug by changing an = into == or correcting a typo in a variable name would not seem to me to be a copyright-worthy change. In essence you only have a non-literal copy of the work with no new expressive content. Again, formatting changes would not seem to qualify.
On the other hand, adding a 10-line function (an function header comments) which implements a particular algorythm would seem to be copyright worthy as far as I can tell. The copyright doesn't extend to the algorythm, just the implementation of it.
You bring up a valid point, but what seems to be the main problem is that the Linux 'fork' of the code has completely removed the original copyright. This is absolutly not acceptable until 'enough' of the code has changed to warrant a new copyright owner.
Well, you can have a new copyright owner of a derivative work.
In LedgerSMB we have generally provided the copyright notices of the pre-fork code *until* all copyrighted structural elements are removed. Now, we also include our own copyright notices along with enough information for people to get back to the original if they need to for some reason.
And we are not even changing the license(!). (We did add our copyright notices at the point we intended to modify the code because this was in line with what we believed the wishes of the copyright owner were. However all changes all the way back to the original can be tracked in svn.)
The files themselves were dual licensed so it 'should likely' be ok to just use one of the two licenses - but as you say it isn't necessary and should be handled with caution.
In conclusion: the primary matter is copyright not licensing. Theo has made this cloudy since he is such a BSD license supporter, and Moglen is a GPL guy so their flame-worthiness has me in awe. It is easier for the geek media to stir up stories and discussion around the licenses though - where as the copyright issue would likely have to be determined in a German/EU court as the original write up by Theo on undeadly talked about:
I agree that Theo acted badly here. It does seem to be a pattern with him. And one problem is that this makes it *more* difficult to actually discuss these matters with Mr. Moglen. I suspect that sooner or later, these question will come to trial as more becomes at stake. Personally I don't want to be near the issue when it happens.:-(
Almost. IANAL, etc.
Licenses are disjoint. Hence the GPL v2 or later means that people can use or distribute the code under either license. However, since the GPL v3 is far more strict about dependency licensing, I am willing to bet that a lot of projects cannot effectively move even if they are GPL v2 or later.
In this case, however, the GPLv3 only grants a subset of the rights granted in the GPLv2. No new rights are granted. So it doesn't seem to be a big change.
Unfortunately it is also a part of a pattern.
Ask yourself why the GFDL has an invariant sections clause. Research the answer and you will find out that it has its roots in the desire to force advocacy of the GNU project by forcibly attaching the GNU manifesto to technical documentation. Free Software == Free Speech, Mr Stallman? Or only *your* free speech?
When the then-main architect of HURD spoke out publically against this sort of forced advocacy, Mr Stallman asked him to resign from the project, saying that all GNU participants must publically support GNU policies. Is this the sort of Free Speech we are to associate with Free Software?
The GPLv2 I think has been a good license in general. I object to the GPL v3 for a number of reasons:
1) Sacrifice of essential freedoms in the license due to a conflict mentality (the antitivoization provisions, for example, which are after all entirely ineffective since you can use a hypervisor to essentially reduce the functionality of the device with non-certified code without actually interfering with the execution of the binary as required by that license).
Note that in this case, you could tie the upgrade of the certified program to other components. If you modify the code, you can install it, and it can run. It just won't have anything to talk to since those software components will be missing and so won't do anything interesting. Since those software components are only communicating with the GPL3 app through essentially sockets and pipes....
It is *far* better to rely on the market in this regard. Sadly, RMS wants to coerce eveyone to agree with him (essentially firing the Hurd architect over his public objection to the use of the GFDL to force advocacy of the GNU project). RMS supports "Freedom" in a "War on Terror" sort of way. Maybe there is a place for him in the Bush Administration?
2) Incredible complexity which renders the license incompatible with BSD-licensed *dependencies.*
The problem is far more subtle than most realize.
The basic issue has to do with whether or not the BSD code can be "relicensed" (in RMS and Eben Moglen's words) as GPL code without making any changes. While it is clear that copyright-worthy changes can be under any license, the question is whether the original code licensed under the BSD license can be. IMHO (IANAL) this talk of "relicensing" seems like legal mumbo-jumbo devoid of any accepted meaning.
The problem is that the GPL 3 is only compatible with licenses which allow this "relicensing" *independant of* other copyrights being enforced. This is clear in the Rationale documents, and in the opinions of both RMS and Mr Moglen. In other words, it requires that I can extend the requirements of the GPL3 to any and all parts of the code and any dependencies not specifically excluded from the Corresponding Source requirements without enforcing any of my own copyrights in the process.
I think that the BSDL always follows copyrighted elements released under that license and cannot be removed because this would require removing the permission grant from the code. Hence the additional permissions cannot meaningfully be removed without adding substantive code to the file. Because the GPL 3 requires that this is possible by merely conveying the software, it seems to me that this is a big problem. The authors of many of our dependencies agree and out of respect for them, I won't support moving the license.
You just can't have your DRM'd hardware interfere with the execution of the GPL3 binary.
Allowing the GPL3 code to run in a sandbox where it doesn;t have access to unencrypted streams of data would not violate the GPL3 in the slightest. RMS is factually wrong about the GPL3 having any mitigating factor on DRM. Hypervisors, or even DRM built into the sound card or video card, effectively can prevent the GPL3 app from getting around it.
All of *our* code is GPL v2 or later.
However, the GPL v3 requires that certain dependencies are under the a license which allows for "relicensing" under the terms of the GPL v3 (see section 7). It is in the dependency area that you would run into trouble.
LedgerSMB is GPL v2 or later. At the moment there is no plan to change this to V3 or later.
Now, this means that if you fork LedgerSMB, you can decide to use the GPL v3 for your license if you can meet the terms of that license (which by my reading would require removing any dependency on BSD-licensed code since the additional permissions cannot be meaningfully removed in accordance with section 7 of the GPL v3). This probably means a major port from PostgreSQL, or at least the stored procedures, etc.
What is strange is that VBE sees the correct values. So it seems to be some sort of rendering issue in the conversion to *text* and some of the calculations seem to use the wrong value.
IMO, the question is what the licensor (not RMS) intended. But otherwise good post.
OOo does not have a best-of-breed anything. It is getting better but you have to be *better* than MS Office to win converts. Otherwise organizational momentum will kill you.
;-)
For spreadsheet manipulation, *nothing* beats Gnumeric. It is far and away the best spreadsheet I have ever worked with for doing complex manipulation of real spreadsheets.
For simple letters, I usually use Abiword, primarily because it interfaces well with my *real* document creation system (Vim/LaTeX). It isn't perfect but it doesn light-weight work well enough. For heavier-duty stuff there is always LyX for those who don't do enough of it to worry about learning how to use Vim and LaTeX properly together.
For presentations, you can use Beamer if you are familiar with LaTeX. Otherwise, you can break down and use OOo for that. This isn't ideal but then neither are presentations
Licenses are cumulative and disjoint.
You can opt to follow one license or you can opt to follow the other. However there may be real questions as to whether one can safely remove the permissions grants. IANAL, but it seems at very least unethical and possibly legally dangerous too.
We have known that other related species had feathers. Since it was thus likely that the common ancestor had feathers, this would likely relate to Velociraptor as well. Now, if there was only a way to tell from the fossile record what color they were ;-)
However, this is still a really cool find and adds more evidence that this entire group of dinosaur species had feathers.
howso? The FSF in the past has said that the fact that a program optionally uses GNU Readline makes no difference.
My guess is that they don't go after large established BSD projects because of the bad press it would generate and the fact that the issue is moot unless Readline ends up used in a proprietary application. This is is the case without regard to the question of whether linking implies derivation.
In short it would accomplish nothing, probably go nowhere, and achieve a lot fo bad press.
IANAL.
And I am not aware of any legal threats in that area.
However.... The permission to remove additional permissions applies to the code covered by GPLv3, not any code in the package that is under other licenses. GPLv3 allows GPL authors to add permissions above and beyond what GPLv3 provides, but allows redistributors to remove those additional permissions. None of this means that anyone can remove permissions granted by other licenses to code that is placed under those licenses by the copyright holders, nor does it mean that terms required by other licenses can be removed. This was in response to the argument that the GPL3 requires the ability to change the license on compatible code.
How exactly do you read the requirements to a) make the corresponding source available under the same license (including any dynamically linked subprograms that the software is designed to require) and b) the ability to remove permissions for *any portion of* the covered work (in this case including the corresponding source)? Whouldn't the latter cover dependencies under other licenses?
Furthermore, both Moglen and Stallman talk about the requirement to be able to "relicense" code under the GPL in order for it to be compatible. It seems that the intent is to say that "if you can't change the license to be the GPL then it is not compatible." Which is fine (their right) but not something I want any part of.
Ok, suppose I take a nice BSD-licensed program. I find three bugs and fix them.
One bug was caused by an = instead of an ==.
The other two were caused by typos in variable names in null pointer checks.
I correct the typos. My changes are strictly functional and offer no expressive elements, therefore the whole work is still under the author's original license.
Now, suppose I refactor a bunch of code. Most likely I have now added expressive elements so I now have a copyright to enforce.
IANAL, TINLA, etc.
I am not so sure. IANAL though.
It is aguably the case with static linking (though again, the combination could be argued to be a mere collected work).
However, the argument that dynamic linking creates derivative works has a) never been tested in court an b) creates some serious issues for copyright law as it relates to interoperability.
There have been some interesting law school theses which are of interesting reading in this area.
IANAL....
Sure, it applies to the code once modified. But it may not apply to those modifications. Given the history of allowing companies like Microsoft to use BSD-licensed code in this way, it would seem difficult to suggest that this is not the intent.
Case 1 (you have no copyright claim to anything in the work): There is nothing that prohibits you from adding GPL license terms to the BSD terms, but if someone violates the GPL terms, they are not infringing your copyright, so you have no (copy) rights that you can enforce against them. Does this constitute slander of title? IANAL so I don't know. Case 2 (you have added some copyrightable elements to the original work): Now if you add GPL terms to the BSD license terms you have some rights that you can enforce. Anyone who violates the GPL terms would be liable to you for copyright infringement. Agreed here.
In short, forcing such speech underground in these areas is not really a matter of essential liberty but rather the fact that it reduces public safety. Most of us here should know what security through obscurity is worth
It shouldn't be a mystery. Legalese is sometimes said to be a different language and a lot of people are intimidated by contracts enough to believe that they can't understand anything related to law.
Note that IANAL. Although I am a software engineer, my formal training is mostly in history, with a little historical linguistics. These two fields are very closely tied to our current legal system for more reasons than most Lawyers are aware. (Our legal system is a hybrid of Roman and Anglo-Saxon systems, and the legalese elements seem to come primarily from the former. Interestingly Roman legalese is structured very similar to modern American legalese, and it is clearly derived from the liturgical traditions of the old Italic, and hence Indo-EUropean peoples. In essence the same poetic tradition which eventually gave rise to the Vedas also gave rise to modern Legalese.)
I am not saying "don't seek legal help" but rather "ask your lawyer to help you understand *why* certain lines are the way they are."
Oh, and getting a Latin dictionary certainly helps.
IANAL. I would say, based on my research that there is a huge gray area here.
In general, fixing a bug by changing an = into == or correcting a typo in a variable name would not seem to me to be a copyright-worthy change. In essence you only have a non-literal copy of the work with no new expressive content. Again, formatting changes would not seem to qualify.
On the other hand, adding a 10-line function (an function header comments) which implements a particular algorythm would seem to be copyright worthy as far as I can tell. The copyright doesn't extend to the algorythm, just the implementation of it.
You bring up a valid point, but what seems to be the main problem is that the Linux 'fork' of the code has completely removed the original copyright. This is absolutly not acceptable until 'enough' of the code has changed to warrant a new copyright owner.
Well, you can have a new copyright owner of a derivative work.In LedgerSMB we have generally provided the copyright notices of the pre-fork code *until* all copyrighted structural elements are removed. Now, we also include our own copyright notices along with enough information for people to get back to the original if they need to for some reason.
And we are not even changing the license(!). (We did add our copyright notices at the point we intended to modify the code because this was in line with what we believed the wishes of the copyright owner were. However all changes all the way back to the original can be tracked in svn.)
The files themselves were dual licensed so it 'should likely' be ok to just use one of the two licenses - but as you say it isn't necessary and should be handled with caution.
In conclusion: the primary matter is copyright not licensing. Theo has made this cloudy since he is such a BSD license supporter, and Moglen is a GPL guy so their flame-worthiness has me in awe. It is easier for the geek media to stir up stories and discussion around the licenses though - where as the copyright issue would likely have to be determined in a German/EU court as the original write up by Theo on undeadly talked about:
I agree that Theo acted badly here. It does seem to be a pattern with him. And one problem is that this makes it *more* difficult to actually discuss these matters with Mr. Moglen. I suspect that sooner or later, these question will come to trial as more becomes at stake. Personally I don't want to be near the issue when it happens.