If they aren't nailed down and addressed, then it will continue to be the preferred OS of Mom's basement. This sentense has me completely confused. Are you saying that businesses aren't adopting Linux? My experience says otherwise.
Are you saying we should make sure that something other than Linux (maybe Windows) becomes the preffered OS of Mom's basement?
Ok, I may be violating the roles here by bringing facts to the table, but:
How exactly did MS swallow "the BSD"? Last time I checked, BSD projects and communities were as strong as ever.
How dd they swallow BSD? Simple: 1.First they drank the BSD licensed code, like Kerberos from MIT and the BSD TCP-IP stack. 2. As it descended down their oesophagus, they added proprietary extensions to it, and bundled it with their inferior monopoly Windows OS. 3. The corporate types were then fed with choice quotes and reviews, and Active (Craptive) Directory got deployed. 4. The market leading authentication mechanism is now incompatible with the original BSD Kerberos; thus it has been effectively swallowed. Clear? A couple points here: 1) Active Directory has had a few bugs in interop with non-AD Kerberos implementations. These have generally been fixed when discovered, however an tended to address corner cases in error handling rather than actual interop program logic. (There was an amusing bug that caused the Windows user to get a message saying that a password of several thousand characters was required when the MIT Kerberos realm issued an error that the password was too weak.)
2) Active Directory is a *heck* of a lot better for management of users, and for interop than was NTLM. It is still anything but perfect (it is basically an LDAP server which also supports Kerberos in a sort of tacked-on manner which means you often get the worst of both worlds). I have written a number of papers on doing this sort of interop (in both directions!).
3) Active Directory, because it is proprietary, is largely unable to take advantage of improvements made by MIT. Now, some of the improvements which AD made (use of svr records for example) appeared fairly quickly in the MIT version. So longer-run, I don't think the code is likely to be compatible. Hence Microsoft pays the "stupid tax" for not contributing back. To be fair, porting the code to work with an AD back-end probably more or less requires a full fork anyway, so it isn't really a loss to either side.
4) The *only* think that AD has in terms of usefullness is the multimaster replication of the AD user db. In every other way, open source implementations are better. When I have to work with AD, I generally get frustrated by how inflexible the Kerberos side is (no separation of service principles, for example).
Networking did exist (Xerox Networking, TCP/IP, etc). Note that the Xerox system was adopted by Novell and became IPX/SPX.
The major accomplishement Microsoft had was in breaking the vertical integration of the software/hardware industry and thus creating an environment where the computer could become affordable. Phoenix and Compaq were the other companies involved in this dynamic. Microsoft *has* accomplished a great drop in computer pricing (one which nearly put IBM out of buisness!) and this has lead to the experience of the internet we know today.
My own understanding is that open source does what Microsoft does well, only better. We can commoditize non-specialty hardware and software, and help break the monopolies that have formed due to proprietary licensing. We are actually the successor to Microsoft.
If this were the only issue, I would agree with you. I don't think that Theo acted rightly here. Furthermore there could be far more civilized ways to handle this. The problem for me though is that I have been coming to the same conclusions as Theo regarding copyright law and am worried about certain interpretation so the BSDL, particularly as relates to the GPL3.
Theo's mistake is simply not to recognize that the mistake was not necessarily an ill-meaning one. One should *always* try to sort things out assuming that people are not malicious first. Then if that fails, go forward with more hostile actions.
None of this invalidates his major point about the BSDL and copyright, however.
My above points do not address the GPLv2, which I have used for most of my software releases. They are objections to Stallman's approach to the issue. My main point is that although the GPL2 is not a bad license, Stallman has acted to curtail essential liberty in important ways (such as forced advocacy via the GNU Manifesto as an invariant section to the EMACS manual).
If you disagree with that point, please address my points.
You can still make the GPL'd fork pay the stupid tax. In fact you can do more than that since you can see their code.
Here is the formula:
Appoint one person in the community to review the changes, write up a report about them, etc. Discuss/debate the best way to make similar changes in the community, but don;t have the people who write the new code look at the GPL code.
This way, you will do 2 things: 1) You will probably make somewhat similar modifications, but these will be different in expressive ways. 2) You will be making it *harder* for the GPL fork to use your changes. 3) You can force them to either cleanly fork or start giving back.
I think you are confusing BSD-Licensed code with public domain code. In public domain code, nobody has a copyright so there are no terms or conditions to abide by in the license.
In the BSDL, you have to reproduce the license on the code, include the copyright notice, the disclaimer of warranty, and optionally a couple of other clauses (non-endorsement and/or advertising).
You can still use the code. You can still release the code.
The argument is when one may add additional restrictions to the code that is released. In general:
1) Must one have a valid copyright to enforce on the code? If Theo is right (and I think he is) then BSDL-code is incompatible with the GPL3 at least as other components in the Corresponding Source are concerned (because you can only put the files in the Corresponding Source if they can be *relicensed* under the GPL3 *without* asserting additional copyrights).
2) What consitutes a valid copyright? In the US one must have substantial original, expressive elements in the work. Reformatting, correcting typos, etc. doesn't count. Adding a large block of code definitely does. In between, it may be a gray area.
Let me flesh out my reasons for agreeing with Theo on point 1. IANAL.
1) A sublicense is a new license agreement between the one licensee and a downstream licensee. If you sublicense my code under the GPL, the parties to the agreement are you and the downstream users. You might or might not have statutory relief (IANAL), but you would probably have tort relief. To issue a sublicense, one must either be a copyright owner or have permission from the copyright owner to create such a contract.
2) Prior to the 1976 Copyright Act, sublicenses were not seen as implied in copyright licenses of any sort. The copyright was seen to be indivisible, and so was any agreement short of a total transfer of copyrights(cf Harris). After the 1976 Copyright Act, non-exclusive licenses were still clearly indivisible (i.e. not sublicensable or transferrable by default), but there is some debate about exclusive licenses (see Gardner v. Nike where the 9th Circuit ruled that exclusive licenses were indivisable and not transferrable without the consent of the original copyright owner). Hence if a license does not have a sublicensing right attached to it, no sublicensing is possible at all from a nonexclusive license, like the BSDL.
3) Many of the BSD-like licenses are clearly addressed to all downstream recipients of the code (of course this only applies to projects that release the code). This means that you cannot remove rights simply by saying so, which makes it problematic from a GPL3 perspective (reread secton 7 again carefully). Note that this is only problematic for dependencies covered in the corresponding source definition. Copying in BSDL code would still be OK as long as the file as a whole was still a distinct work from the copied code.
So I don't think that most BSD License variants (exceptions include the MIT License) allow this sort of relicensing.
In short, with a BSD License, you are not forced to release your code, but if you do, you must pass along the same rights to the original code as were in the original BSD code. Derivative works can be under other licenses, however.
Once again, IANAL. If this matters to you, I suggest you seek competent and unbiased legal advice from a copyright attourney without an agenda relating to Free Software.
BTW, I am an avid Linux user, and I think that the Linux kernel developers who made the error made an honest mistake. Let us treat it as such.
Unfortunately, the more I do my own research, the more worried I am about Theo's main complaint-- that the SFLC may be giving out advice that seems questionable to me.
While IANAL, I say so based on my own understanding that it is nearly impossible to sue lawyers for malpractice and so we *all* need to develop a basic understanding of the law in areas which are relevant. Here are specific points I would make:
1) While the BSDL and related licenses clearly do not have the intent to force sharing of code, they clearly *do* have the intent to provide the downstream recipients of the original elements of that code with the rights listed in the license. So Theo is right that you cannot simply wrap the BSDL in the GPL.
This is particularly relevant to the GPL3 because it introduces potential license incompatibilities between BSDL-code and GPL3 code (see section 7 on removing additional permissions *without* asserting copyright).
2) Copyright law seems even in the US holds that nonexclusive licenses are clearly indivisible and do not automatically grant sublicense rights (a sublicense being a new license issued by a licensee). Some BSD-like licenses (like the MIT License) explicitly allow sublicensing the code and in this case, wrapping it in the GPL would be allowed. Otherwise, it seems difficult to make this case. Whether exclusive licenses are divisible is not yet a settle matter of law as far as I can tell (you have the Gardner v. Nike case which suggests that they exclusive licenses are indivisible, but that is the only case I can find).
BTW, Mr Moglen dismisses the above issue without providing any substantive argument against it.
3) Some BSD-like licenses seem to be addressed to all downstream users and do not include the right to sublicense. The ICU licnese, for example, and the X.Org licenses start out "Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files..." and does not specifically state a sublicensing right.
Thus I am not sure that the advice that these can be automatically sublicensed under the GPL is advice that is sound.
For these reasons, I have been suggesting that open source project leaders should seek unbiased legal advice from people outside the community.
Since you aren't forced to use the GPL license, you can consider yourself right and not use the GPL. But don't tell anyone else they cannot. Where have I said "You cannot use the GPL?" Or even "You cannot use the GPL3?"
I have voiced concerns with the GPL3. I have voiced concerns about Stallman's approach. I have not yet told people what they should avoid because I figure people can make up their own minds.
Although I have issues with the GPL3, I thought the GPL2 struck a good balance between protecting business interests and ensuring freedom.
However, the coersive elements I am referring to have to do with: 1) Stallman's rhetoric 2) Stallman's hypocrisy (if software freedom is akin to Free Speech, why is it permissible for the FSF to deisgn technical documentation with forced advocacy provisions? After all forced advocacy is the reason for the invariant sections clause in the FDL.)
In David Warner's case, he was building medical clinics in rural Mexico, and helping to teach people how to improve their ability to survive common ailments. Seems straight-forward enough.
The problem is: sometimes, you don't have access to the medical facilities. Maybe there is a flood and you are on the other side of the river. In this case, if you have a choice between your traditional medicines and doing nothing, what is the correct response? Telling people to abandon their traditional medicines can *cost lives* especially of young children (who are most at risk for serious illness from contaminated drinking water).
Engineering is *not* a democratic effort. But you don't want to make people reliant on an infrastructure which may not be available when they need it most. This means helping to provide the resource but still helping them to plan for a lack of availability.
Getting back to Stallman and the GPL3. I don't trust the FSF at this point. I think that the cause has become so important to them that they are willing to sacrifice essential liberties in order to win their little "war on terror^Wclosed-source." The origins of the invariant sections clause of the FDL ought to provide some cause for concern in this area. Furthermore the GPL3 seems confused and contradictory in places and I would use the BSDL long before I would upgrade to that license. This is another case of thinking about what they think everyone needs but failing to see the big picture because the cause is too important.
Now see? You're still confused about who gets the freedom in GPL. You talk about a license that is more free, but the GPL is about giving the freedom to the person who obtains your software under the GPL. And the BSD-style licenses give *more* freedom to those who obtain code under the BSDL.
I'm not saying that the ASL is a bad license, in fact, I love it! Being a commercial developer, we use a lot of Apache software in our products. Being a small developer, we tend to contribute back to the project, not because we're altruistic, but because it's practical for us so we don't have to maintain all that code ourselves. That is actually the dynamic which ensures that BSDL-type code will remain Free.
Now, having said my objections, nearly all the code I have released is under the GPL. Any further projects I undertake will probably be BSDL, however.
Now, I have a number of objections with the GPL3 (IANAL), including the fact that it is incompatible with the Apache License, the BSDL (or at least many variants, etc). The basic reason is this: Section 7 requires that you allow the code to be relicensed under the GPL. However, non-exclusive licenses generally do not carry with them an implied sublicensing right, hence licenses such as X.org's do *not* allow one to sublicense the code under the GPL3. For this reason, many or most BSDL variants appear to be incompatible with the license. This is not hte case with the GPL2, however.
Actually they can rewrite code they don't have permission to relicense.
So sure, they could.
It would take a lot of time and effort that would be better spent on coding but they could.
Heck, if there was a immediate and existential threat to the project that required changing the license, they could just change the license and move on, arguing that if it comes to court, they did what they needed to do in order to protect the interests of all copyright holders.
Again, just because they *could* doesn't mean that they *should.*
Because the *BSD projects have been largely hampered by two problems: the first is a lack of charismatic leadership able to bring people on board, and the second is that most of them were (unfortunately) released before the market was ready. Additionally, FreeBSD has tended to focus on quality control to the extent of preventing code contributions from would-be contributors (this is not a bad thing in itself but it does hurt the size of the developer community). While I used to think that the GPL is why Linux won out, I now look at projects like Apache and PostgreSQL and suggest that a license with more Freedom actually does not doom a product. In fact, it can force competitors to rethink their role as competition.
What has made Linux successful are really a few choices Linus made early on: 1) This was a hobby. Get lots of contributions and spread the fun. This won't be big and professional, so..... (Linux grew up fast) 2) Remaining neutral between commercial interests.
How, there would be differences. Maybe AIX would now have a lot of Linux code in it if it were BSDL. With the rapid pace fo development, maybe this would help IBM make the change sooner. Same with other UNIXes.
1) I think that licenses like the Aferro GPL abridge essential liberties of software use. I would not call them Free. 2) The GFDL has an invarient sections clause entirely to force advocacy of the GNU project. The idea was to force people to include the GNU Mnaifesto in EMACS manual.
"Freedom" means the same to Stallman as it does to Bush, I'm afraid. It is just an abstract concept that is used for the purpose of rallying people to sacrifice it in the name of preserving it.
It is worse than no compromise: It is outright hypocrisy.
Compromise is not in RMS's vocabulary? Are you on crack? What do you think the LGPL, the "system libraries" clause of the GPL, and the "cover texts"/"invariant sections" of the GFDL are all about? RMS is willing to compromise tactically in order to win strategically. System libraries: So they didn't have to wait for HURD to work before releasing EMACS/GCC/etc. It is simply a way out of the chicken/egg issue of starting a new project.
Invariant sections: So they could *force* the distribution of the GNU Manifesto in the EMACS (according to RMS's email to debian-legal). Wikipedia had the link ot the debian-legal post last I checked.
I suspect that cover text provisions have similar issues.
Freedom to RMS means something very different than it does to the rest of us. Among other things, it seems to mean the freedom to force advocacy of a cause to others. I do not agree with this.
Stallman doesn't care about any of that, per se: he's concerned with the philosophy and ethics of software licensing, not one particular piece of code. Currently, his goal is to push GPLv3. Given Torvalds repeated lack of any interest whatsoever in the license, they are not part of the same team. They're not necessarily enemies, of course, but since Torvalds has been openly criticizing the new version of the GPL for many months now, it's in Stallman's interests to respond.
The two men don't see eye to eye, and since they're both appealing to a different goal, they're unlikely to be able to convince each other to change their positions. With all due respect, I think that Stallman is into what makes him feel good rather than real ethics. He doesn't ever really try to define what is "good" beyond the warm fuzzies he gets from sharing code (mentioned in the GNU Manifesto). He talks about freedom but it is a coercive freedom which is no more meaningful than when Bush talks about American Freedom being at stake in the "War on Terror." In short freedom is meaningless if one does not have the freedom to choose otherwise.
Personally I believe that the GPLv3 is too far reaching, and the license itself seems to be confused and in conflict with itself. (Read sections 2, 7, and 10 together and carefully. Note how the additional permissions can somehow be removed in section 7 but that sublicensing is prohibited and that the permissions come from the author. WTF? Would you sign a contract that gives a third party the ability to tamper with it before it is accepted by the other party?)
Worse still, when I have tried to get answers about how this is supposed to work, the conversations suddenly drop when this question is brought up.:-(
Some time ago, I had a discussion with David Werner (author of "Where There Is No Doctor"). He confessed to making a few of the same mistakes early on. He learned from his mistake and now tries to leverage local knowledge as much as possible.
Basically, human arrogance is a very destructive trait. It is easy to believe that one knows what is best for everyone, when in reality, such ideas usually are wrong.
There really isn't much of a point to spending a lot of time to lock people out of using BSDL code. The code is free and if you are competing with free you have already lost. The key for a BSDL project is to understand that and to make the most of it. You can drive *way* up the asshat's costs while improving your own value. Eventually you can force them to go their own way or give back. It isn't rocket science.
I could see using the GPL2. If I built a large project, I would probably choose the BSDL though because I am now more comfortable with that license. However, it would take a serious and existential threat to the project for me to go to the GPL3.
My big problem with the GPLv3 is that there are clauses which seem to either conflict or reach too far for my comfort. For example, compare sections 2, 7, and 10.
Section 2 says one is *not* allowed to sublicense the code.
Section 10 says you get all permissions from the original author.
Section 7 conflicts with both of these by giving someone an ability to change licensing terms without adding any copyrighted components of their own. In short either this is a third party manipulating a contract between offer and acceptance (!) or else it is sublicensing in violation of section 2.
Why mightn't the courts look at the entire chunk of hypervisor-TiVo "firmware" as a single "larger program"? IANAL, but....
I would think that in this case, the same issue would apply with communicating with a different program through pipes and sockets (since this is essentially what one is doing). I have a hard time seeing the FSF reverse their earlier logic on such communications (even though I think that dynamic linking is usually safe) to do this.
Furthermore, even if you see the hypervisor as a possible issue, the fact is that it is just an emulator for a processor and set of hardware. I have a hard time imagining that this would be any less mere aggregation than would the inclusion of proprietary software on SLES.
Furthermore, why are we even discussing this question? It is not as if Linux is about to switch licenses or anything. Furthermore Linus has actually said he doesn't support the anti-Tivoization efforts, so....
I wrote a post in my journal about my hesitation to upgrade LedgerSMB's license to the GPL3, which has some *really* nasty provisions in it that go *way* beyond a software copyright license. These are *not* apparent in a first reading of the license.
The GPL3 says you can't interfere with the object code. It doesn't say you have to provide every piece to get the *same functionality.*
So, if you require that the firmware be upgraded as a unit, who says you have to give a different vm that *actually* talks to the [insert hardware component here]. The object code can run all it wants, but there is nothing to talk to.
Are you trolling or simply just inexperienced? If I have >200 floating point measurements I have to keep for each part that is described by the row, how could I possibly normalize further? Are you claiming that because I have a 5.51111 in two different rows that I would be required to move that to a single row in another table to be 3NF? That is absolutely not true.
I said that nothing mathematically precluded the possibility, but that I think it would be very difficult to imagine a situation where even a 100-column table would not have transitive functional dependencies within the table.
If you are telling me that there are definitely *none* of these, then I will take your word for it. BUt if it were my application, I would look for transitive dependencies.
Secondly my example, was only an example of the math to illustrate the concept of transitive dependencies. I will now give a clearer math example.
Basically, in algebra, suppose Y is a function of X. This means that for every X there is *exactly* one value of Y. Correct? It also means that Y is functionally dependant on X (i.e. Y -> X)
Now, suppose that at the same time, Z is a function of Y. This means that for every Y there is exactly one value of Z, correct? (Z -> Y)
This also means that for every X, there is exactly one function of Z because functional dependencies are transitive. Hence in this case, 2NF would allow: (Z -> Y -> X implies Z -> X)
create table coordinates (
x float not null,
y float not null,
z float not null,
primary key (x) );
However, to reach 3NF, we should do:
create table x_y (
x float not null,
y float not null,
primary key (x) );
create table y_z (
y float not null,
z float not null,
primary key (y) );
Hope this helps a little more.
Again, there is no matheamtical limit to the number of direct functional dependencies one can have, but in general, you are going to have to start justifying dependencies when you start to have a lot of columns.
Are you saying we should make sure that something other than Linux (maybe Windows) becomes the preffered OS of Mom's basement?
How dd they swallow BSD? Simple:
1.First they drank the BSD licensed code, like Kerberos from MIT and the BSD TCP-IP stack.
2. As it descended down their oesophagus, they added proprietary extensions to it, and bundled it with their inferior monopoly Windows OS.
3. The corporate types were then fed with choice quotes and reviews, and Active (Craptive) Directory got deployed.
4. The market leading authentication mechanism is now incompatible with the original BSD Kerberos; thus it has been effectively swallowed.
Clear? A couple points here:
1) Active Directory has had a few bugs in interop with non-AD Kerberos implementations. These have generally been fixed when discovered, however an tended to address corner cases in error handling rather than actual interop program logic. (There was an amusing bug that caused the Windows user to get a message saying that a password of several thousand characters was required when the MIT Kerberos realm issued an error that the password was too weak.)
2) Active Directory is a *heck* of a lot better for management of users, and for interop than was NTLM. It is still anything but perfect (it is basically an LDAP server which also supports Kerberos in a sort of tacked-on manner which means you often get the worst of both worlds). I have written a number of papers on doing this sort of interop (in both directions!).
3) Active Directory, because it is proprietary, is largely unable to take advantage of improvements made by MIT. Now, some of the improvements which AD made (use of svr records for example) appeared fairly quickly in the MIT version. So longer-run, I don't think the code is likely to be compatible. Hence Microsoft pays the "stupid tax" for not contributing back. To be fair, porting the code to work with an AD back-end probably more or less requires a full fork anyway, so it isn't really a loss to either side.
4) The *only* think that AD has in terms of usefullness is the multimaster replication of the AD user db. In every other way, open source implementations are better. When I have to work with AD, I generally get frustrated by how inflexible the Kerberos side is (no separation of service principles, for example).
Networking did exist (Xerox Networking, TCP/IP, etc). Note that the Xerox system was adopted by Novell and became IPX/SPX.
The major accomplishement Microsoft had was in breaking the vertical integration of the software/hardware industry and thus creating an environment where the computer could become affordable. Phoenix and Compaq were the other companies involved in this dynamic. Microsoft *has* accomplished a great drop in computer pricing (one which nearly put IBM out of buisness!) and this has lead to the experience of the internet we know today.
My own understanding is that open source does what Microsoft does well, only better. We can commoditize non-specialty hardware and software, and help break the monopolies that have formed due to proprietary licensing. We are actually the successor to Microsoft.
If this were the only issue, I would agree with you. I don't think that Theo acted rightly here. Furthermore there could be far more civilized ways to handle this. The problem for me though is that I have been coming to the same conclusions as Theo regarding copyright law and am worried about certain interpretation so the BSDL, particularly as relates to the GPL3.
Theo's mistake is simply not to recognize that the mistake was not necessarily an ill-meaning one. One should *always* try to sort things out assuming that people are not malicious first. Then if that fails, go forward with more hostile actions.
None of this invalidates his major point about the BSDL and copyright, however.
My above points do not address the GPLv2, which I have used for most of my software releases. They are objections to Stallman's approach to the issue. My main point is that although the GPL2 is not a bad license, Stallman has acted to curtail essential liberty in important ways (such as forced advocacy via the GNU Manifesto as an invariant section to the EMACS manual).
If you disagree with that point, please address my points.
You can still make the GPL'd fork pay the stupid tax. In fact you can do more than that since you can see their code.
Here is the formula:
Appoint one person in the community to review the changes, write up a report about them, etc. Discuss/debate the best way to make similar changes in the community, but don;t have the people who write the new code look at the GPL code.
This way, you will do 2 things:
1) You will probably make somewhat similar modifications, but these will be different in expressive ways.
2) You will be making it *harder* for the GPL fork to use your changes.
3) You can force them to either cleanly fork or start giving back.
I think you are confusing BSD-Licensed code with public domain code. In public domain code, nobody has a copyright so there are no terms or conditions to abide by in the license.
In the BSDL, you have to reproduce the license on the code, include the copyright notice, the disclaimer of warranty, and optionally a couple of other clauses (non-endorsement and/or advertising).
You can still use the code. You can still release the code.
The argument is when one may add additional restrictions to the code that is released. In general:
1) Must one have a valid copyright to enforce on the code? If Theo is right (and I think he is) then BSDL-code is incompatible with the GPL3 at least as other components in the Corresponding Source are concerned (because you can only put the files in the Corresponding Source if they can be *relicensed* under the GPL3 *without* asserting additional copyrights).
2) What consitutes a valid copyright? In the US one must have substantial original, expressive elements in the work. Reformatting, correcting typos, etc. doesn't count. Adding a large block of code definitely does. In between, it may be a gray area.
Let me flesh out my reasons for agreeing with Theo on point 1. IANAL.
1) A sublicense is a new license agreement between the one licensee and a downstream licensee. If you sublicense my code under the GPL, the parties to the agreement are you and the downstream users. You might or might not have statutory relief (IANAL), but you would probably have tort relief. To issue a sublicense, one must either be a copyright owner or have permission from the copyright owner to create such a contract.
2) Prior to the 1976 Copyright Act, sublicenses were not seen as implied in copyright licenses of any sort. The copyright was seen to be indivisible, and so was any agreement short of a total transfer of copyrights(cf Harris). After the 1976 Copyright Act, non-exclusive licenses were still clearly indivisible (i.e. not sublicensable or transferrable by default), but there is some debate about exclusive licenses (see Gardner v. Nike where the 9th Circuit ruled that exclusive licenses were indivisable and not transferrable without the consent of the original copyright owner). Hence if a license does not have a sublicensing right attached to it, no sublicensing is possible at all from a nonexclusive license, like the BSDL.
3) Many of the BSD-like licenses are clearly addressed to all downstream recipients of the code (of course this only applies to projects that release the code). This means that you cannot remove rights simply by saying so, which makes it problematic from a GPL3 perspective (reread secton 7 again carefully). Note that this is only problematic for dependencies covered in the corresponding source definition. Copying in BSDL code would still be OK as long as the file as a whole was still a distinct work from the copied code.
So I don't think that most BSD License variants (exceptions include the MIT License) allow this sort of relicensing.
In short, with a BSD License, you are not forced to release your code, but if you do, you must pass along the same rights to the original code as were in the original BSD code. Derivative works can be under other licenses, however.
Once again, IANAL. If this matters to you, I suggest you seek competent and unbiased legal advice from a copyright attourney without an agenda relating to Free Software.
BTW, I am an avid Linux user, and I think that the Linux kernel developers who made the error made an honest mistake. Let us treat it as such.
Unfortunately, the more I do my own research, the more worried I am about Theo's main complaint-- that the SFLC may be giving out advice that seems questionable to me.
While IANAL, I say so based on my own understanding that it is nearly impossible to sue lawyers for malpractice and so we *all* need to develop a basic understanding of the law in areas which are relevant. Here are specific points I would make:
1) While the BSDL and related licenses clearly do not have the intent to force sharing of code, they clearly *do* have the intent to provide the downstream recipients of the original elements of that code with the rights listed in the license. So Theo is right that you cannot simply wrap the BSDL in the GPL.
This is particularly relevant to the GPL3 because it introduces potential license incompatibilities between BSDL-code and GPL3 code (see section 7 on removing additional permissions *without* asserting copyright).
2) Copyright law seems even in the US holds that nonexclusive licenses are clearly indivisible and do not automatically grant sublicense rights (a sublicense being a new license issued by a licensee). Some BSD-like licenses (like the MIT License) explicitly allow sublicensing the code and in this case, wrapping it in the GPL would be allowed. Otherwise, it seems difficult to make this case. Whether exclusive licenses are divisible is not yet a settle matter of law as far as I can tell (you have the Gardner v. Nike case which suggests that they exclusive licenses are indivisible, but that is the only case I can find).
BTW, Mr Moglen dismisses the above issue without providing any substantive argument against it.
3) Some BSD-like licenses seem to be addressed to all downstream users and do not include the right to sublicense. The ICU licnese, for example, and the X.Org licenses start out "Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files..." and does not specifically state a sublicensing right.
Thus I am not sure that the advice that these can be automatically sublicensed under the GPL is advice that is sound.
For these reasons, I have been suggesting that open source project leaders should seek unbiased legal advice from people outside the community.
Since you aren't forced to use the GPL license, you can consider yourself right and not use the GPL. But don't tell anyone else they cannot. Where have I said "You cannot use the GPL?" Or even "You cannot use the GPL3?"
I have voiced concerns with the GPL3. I have voiced concerns about Stallman's approach. I have not yet told people what they should avoid because I figure people can make up their own minds.
Although I have issues with the GPL3, I thought the GPL2 struck a good balance between protecting business interests and ensuring freedom.
However, the coersive elements I am referring to have to do with:
1) Stallman's rhetoric
2) Stallman's hypocrisy (if software freedom is akin to Free Speech, why is it permissible for the FSF to deisgn technical documentation with forced advocacy provisions? After all forced advocacy is the reason for the invariant sections clause in the FDL.)
You, sir, are deeply mistaken.
In David Warner's case, he was building medical clinics in rural Mexico, and helping to teach people how to improve their ability to survive common ailments. Seems straight-forward enough.
The problem is: sometimes, you don't have access to the medical facilities. Maybe there is a flood and you are on the other side of the river. In this case, if you have a choice between your traditional medicines and doing nothing, what is the correct response? Telling people to abandon their traditional medicines can *cost lives* especially of young children (who are most at risk for serious illness from contaminated drinking water).
Engineering is *not* a democratic effort. But you don't want to make people reliant on an infrastructure which may not be available when they need it most. This means helping to provide the resource but still helping them to plan for a lack of availability.
Getting back to Stallman and the GPL3. I don't trust the FSF at this point. I think that the cause has become so important to them that they are willing to sacrifice essential liberties in order to win their little "war on terror^Wclosed-source." The origins of the invariant sections clause of the FDL ought to provide some cause for concern in this area. Furthermore the GPL3 seems confused and contradictory in places and I would use the BSDL long before I would upgrade to that license. This is another case of thinking about what they think everyone needs but failing to see the big picture because the cause is too important.
Now, having said my objections, nearly all the code I have released is under the GPL. Any further projects I undertake will probably be BSDL, however.
Now, I have a number of objections with the GPL3 (IANAL), including the fact that it is incompatible with the Apache License, the BSDL (or at least many variants, etc). The basic reason is this: Section 7 requires that you allow the code to be relicensed under the GPL. However, non-exclusive licenses generally do not carry with them an implied sublicensing right, hence licenses such as X.org's do *not* allow one to sublicense the code under the GPL3. For this reason, many or most BSDL variants appear to be incompatible with the license. This is not hte case with the GPL2, however.
Actually they can rewrite code they don't have permission to relicense.
So sure, they could.
It would take a lot of time and effort that would be better spent on coding but they could.
Heck, if there was a immediate and existential threat to the project that required changing the license, they could just change the license and move on, arguing that if it comes to court, they did what they needed to do in order to protect the interests of all copyright holders.
Again, just because they *could* doesn't mean that they *should.*
still be successful.
Why?
Because the *BSD projects have been largely hampered by two problems: the first is a lack of charismatic leadership able to bring people on board, and the second is that most of them were (unfortunately) released before the market was ready. Additionally, FreeBSD has tended to focus on quality control to the extent of preventing code contributions from would-be contributors (this is not a bad thing in itself but it does hurt the size of the developer community). While I used to think that the GPL is why Linux won out, I now look at projects like Apache and PostgreSQL and suggest that a license with more Freedom actually does not doom a product. In fact, it can force competitors to rethink their role as competition.
What has made Linux successful are really a few choices Linus made early on:
1) This was a hobby. Get lots of contributions and spread the fun. This won't be big and professional, so..... (Linux grew up fast)
2) Remaining neutral between commercial interests.
How, there would be differences. Maybe AIX would now have a lot of Linux code in it if it were BSDL. With the rapid pace fo development, maybe this would help IBM make the change sooner. Same with other UNIXes.
You must advocate the GNU project by including the GNU Manifesto in every copy of the EMACS documentation.
;-)
Do some research on the reason behind invariant sections in the GFDL
I used to think so. Now I am less sure.
1) I think that licenses like the Aferro GPL abridge essential liberties of software use. I would not call them Free.
2) The GFDL has an invarient sections clause entirely to force advocacy of the GNU project. The idea was to force people to include the GNU Mnaifesto in EMACS manual.
"Freedom" means the same to Stallman as it does to Bush, I'm afraid. It is just an abstract concept that is used for the purpose of rallying people to sacrifice it in the name of preserving it.
Invariant sections: So they could *force* the distribution of the GNU Manifesto in the EMACS (according to RMS's email to debian-legal). Wikipedia had the link ot the debian-legal post last I checked.
I suspect that cover text provisions have similar issues.
Freedom to RMS means something very different than it does to the rest of us. Among other things, it seems to mean the freedom to force advocacy of a cause to others. I do not agree with this.
The two men don't see eye to eye, and since they're both appealing to a different goal, they're unlikely to be able to convince each other to change their positions. With all due respect, I think that Stallman is into what makes him feel good rather than real ethics. He doesn't ever really try to define what is "good" beyond the warm fuzzies he gets from sharing code (mentioned in the GNU Manifesto). He talks about freedom but it is a coercive freedom which is no more meaningful than when Bush talks about American Freedom being at stake in the "War on Terror." In short freedom is meaningless if one does not have the freedom to choose otherwise.
Personally I believe that the GPLv3 is too far reaching, and the license itself seems to be confused and in conflict with itself. (Read sections 2, 7, and 10 together and carefully. Note how the additional permissions can somehow be removed in section 7 but that sublicensing is prohibited and that the permissions come from the author. WTF? Would you sign a contract that gives a third party the ability to tamper with it before it is accepted by the other party?)
Worse still, when I have tried to get answers about how this is supposed to work, the conversations suddenly drop when this question is brought up.
Some time ago, I had a discussion with David Werner (author of "Where There Is No Doctor"). He confessed to making a few of the same mistakes early on. He learned from his mistake and now tries to leverage local knowledge as much as possible.
Basically, human arrogance is a very destructive trait. It is easy to believe that one knows what is best for everyone, when in reality, such ideas usually are wrong.
There really isn't much of a point to spending a lot of time to lock people out of using BSDL code. The code is free and if you are competing with free you have already lost. The key for a BSDL project is to understand that and to make the most of it. You can drive *way* up the asshat's costs while improving your own value. Eventually you can force them to go their own way or give back. It isn't rocket science.
I could see using the GPL2. If I built a large project, I would probably choose the BSDL though because I am now more comfortable with that license. However, it would take a serious and existential threat to the project for me to go to the GPL3.
My big problem with the GPLv3 is that there are clauses which seem to either conflict or reach too far for my comfort. For example, compare sections 2, 7, and 10.
Section 2 says one is *not* allowed to sublicense the code.
Section 10 says you get all permissions from the original author.
Section 7 conflicts with both of these by giving someone an ability to change licensing terms without adding any copyrighted components of their own. In short either this is a third party manipulating a contract between offer and acceptance (!) or else it is sublicensing in violation of section 2.
I would think that in this case, the same issue would apply with communicating with a different program through pipes and sockets (since this is essentially what one is doing). I have a hard time seeing the FSF reverse their earlier logic on such communications (even though I think that dynamic linking is usually safe) to do this.
Furthermore, even if you see the hypervisor as a possible issue, the fact is that it is just an emulator for a processor and set of hardware. I have a hard time imagining that this would be any less mere aggregation than would the inclusion of proprietary software on SLES.
Right.
Furthermore, why are we even discussing this question? It is not as if Linux is about to switch licenses or anything. Furthermore Linus has actually said he doesn't support the anti-Tivoization efforts, so....
I wrote a post in my journal about my hesitation to upgrade LedgerSMB's license to the GPL3, which has some *really* nasty provisions in it that go *way* beyond a software copyright license. These are *not* apparent in a first reading of the license.
The GPL3 says you can't interfere with the object code. It doesn't say you have to provide every piece to get the *same functionality.*
So, if you require that the firmware be upgraded as a unit, who says you have to give a different vm that *actually* talks to the [insert hardware component here]. The object code can run all it wants, but there is nothing to talk to.
Are you trolling or simply just inexperienced? If I have >200 floating point measurements I have to keep for each part that is described by the row, how could I possibly normalize further? Are you claiming that because I have a 5.51111 in two different rows that I would be required to move that to a single row in another table to be 3NF? That is absolutely not true.
I said that nothing mathematically precluded the possibility, but that I think it would be very difficult to imagine a situation where even a 100-column table would not have transitive functional dependencies within the table.If you are telling me that there are definitely *none* of these, then I will take your word for it. BUt if it were my application, I would look for transitive dependencies.
Secondly my example, was only an example of the math to illustrate the concept of transitive dependencies. I will now give a clearer math example.
Basically, in algebra, suppose Y is a function of X. This means that for every X there is *exactly* one value of Y. Correct? It also means that Y is functionally dependant on X (i.e. Y -> X)
Now, suppose that at the same time, Z is a function of Y. This means that for every Y there is exactly one value of Z, correct?
(Z -> Y)
This also means that for every X, there is exactly one function of Z because functional dependencies are transitive. Hence in this case, 2NF would allow:
(Z -> Y -> X implies Z -> X) However, to reach 3NF, we should do: Hope this helps a little more.
Again, there is no matheamtical limit to the number of direct functional dependencies one can have, but in general, you are going to have to start justifying dependencies when you start to have a lot of columns.