NASM Public License Not GPL-compatible?
Palisade writes "NASM (The Netwide Assembler) is an open source assembler that can generate code for many platforms/operating systems and is portable to many operating systems.
There have been debates in the past over the NASM licence to which NASM itself and all code contributed to the NASM effort is licensed under. The original authors created a license which claims to be compatible with the GPL [?] , but which requires unusual restrictions making it incompatible. For developers to continue developing on NASM would mean they would be contributing to a "black hole".
A full synopsis can be found on the NASM website at SourceForge."
Update: 09/05 04:57 PM by S :It seems the problem is resolved.
They say you can distribute with the same permissions as the GPL, as well as under their own license. Basically, all they're saying is that they plan to dual-license, and that any contributors should expect that their contribution might be sold by the authors (along with the majority of the package written by the authors).
Given the GPL permissions, RMS would be hard put to say it's not free software. And if they submit it to OSI, I'd give due consideration to approving it. That is, at first glance I don't see anything that violates the OSD.
-russ
Don't piss off The Angry Economist
I'm a programmer, now a lawyer... TO hell with your 'license' crap.
That's exactly WHY I bother to be on the OSI board: so that programmers can look for the OSI Certified Open Source certification mark, and be comfortable developing and redistributing their improvements.
-russ
Don't piss off The Angry Economist
Contributors automatically agree to dual-licensing by the authors. The GPL requires a separate agreement or copyright assignment.
-russ
Don't piss off The Angry Economist
MyopicProwls
MyopicProwls
My homepage
-----------------------
Nicotine free Amish .sig.
Bruce
Bruce Perens.
Would you let a lawyer do your programming? :-)
Licenses written by programmers who have no idea how to write valid licenses end up being harmful to other programmers who have no valid way to apply them.
You really have two choices: use one of the existing ones, or run it by an attorney.
Thanks
Bruce
Bruce Perens.
It's my understanding (not as a lawyer) that the GPL is more credible constitutionally than shrink wrap licenses is because most of the clauses in a shrink wrap relate to acceptable use rather than restrictions on duplication. For example, many Microsoft shrinkwrap licenses prevent reverse engineering; some prevent transfer to another system; demand multiple payments for the same license under certain circumstances; and indemnify the author from any fitness of function or warranty.
But the GPL is different. The GPL prevents duplication of an intellectual property licensed as such under a few very specific circumstances. Developers must offer source level changes to the recipient of any binary of which they've derived a previous work released under the GPL (meaning their changes must be released under a license which won't conflict with these clauses). Which basically says, "you can't distribute this unless you follow my rules of citation and release the source of your changes to your recipients. If you accept these rules you may copy to your heart's content."
Wanna bet you'll see something like that on your next Microsoft click through license??? I betcha NO!
Hey, why isn't anyone complaining how the GPL license isn't compatible with the NASM license, and demanding the FSF change it?
--
Are we not programmers? The endless license quarreling is making us lose touch with our souls. Let's shut up and write some code!
Honestly, I think the best license is this: "Do whatever the hell you want to do with this. I don't really care."
Washington, DC: It's like Hollywood for ugly people.
First of all, note that it says "In addition to what this Licence otherwise provides". So the rest of the Licence which I have not quoted cannot invalidate this.
1. "this Licence" could be interpreted to mean the GPL. In that case, we are 100% compliant. Since "this Licence" applying to the NASM licence would be a contradiction, this is a reasonable interpretation.
2. Even if "this Licence" does not refer to the GPL, that sentence would be deemed unenforcable (as it contradicts the earlier sentence), and the remainder of the agreement would remain in force.
3. You could take the sentence "In addition...reference" as a single statement, and the rest of the paragraph as part of "what this Licence otherwise provides".
4. The spirit of the licence is to be compatible.
ok then your [sic] infringing on my copyright! Could you as [sic] me next time before STEALING my comments for your own?
The code doesn't care. Only the copyright holder cares. In this instance, do you think the copyright holder of any GPL'ed software would care if it was linked into NASM? It imposes on additional restrictions on distribution, other than some difference in language over the acknowledgement of authorship.
Obiviously I don't think I'm making any error here.
-russ
Don't piss off The Angry Economist
Because it requires all contributors to dual-license their code. It's GPL+"you must dual-license". It saves them from having to reject code from authors who refuse to dual-license. That's worth something.
-russ
Don't piss off The Angry Economist
Oh, after I submitted, I realized: do you think there is an obvious incompatibility with the GPL? I don't think it's that obvious. Perhaps you could explain it to me?
-russ
Don't piss off The Angry Economist
So, as a result, every new potentially open source license has to be checked against these two. And since the MIT license is essentially a "no constraints" one, the GPL is the only one with which issues can appear. And incompatibility with the GPL has become a killer. It's simply a matter of leverage.
OG.
[1] Mozilla, Qt
The newest releases of DJGPP Binutils reportedly support a switch in as to get support for Intel-style assembly syntax. Ask further on the newsgroup.
<O
( \
XGNOME vs. KDE: the game!
Will I retire or break 10K?
GAS doesn't count; that was obviously intended for a compiler to use and it's extremely painful to write code for it; doubly so if you're used to writing Intel syntax rather than AT&T
Latest binutils (2.10) reportedly supports Intel syntax with a switch.
<O
( \
XGNOME vs. KDE: the game!
Will I retire or break 10K?
The GPL is granting you rights that you don't have, while those click licenses are removing rights (or trying to). That's the different. All the software is under copyright; the GPL grants you rights you don't have, given no license whatsosever, while the EULAs take away rights you do have, given no license whatsoever.
---
END OF LINE
Actually, you'll probably will see a profusion of "dual licenses", like the MPL/GPL, giving (or 'defining' depending on your point of view) the creator more rights than somebody who works exclusively in the realm of "GPL" only. (Granted there may be the occasional fork, but that can happen anywhere).
Take the cheese to sickbay, the doctor should see it as soon as possible - B'Elanna Torres, "Learning Curve"
You hit the nail on the head!
Folks, if you really need to create proprietary software, do us all a favor and simply copyright it without any license. Just a plain "Copyright Anonymous Coward, all rights reserved" along with your warranty disclaimer is all that we need, thank you. Copyright already protects your rights. There is no reason to try to grab any more from us.
Keep your EULAs and shrink-wraps and one-clicks away. If you really need extra protection over and above copyright, then present me with a real damn contract with consideration and everything, including a place for you to sign as well as me.
A Government Is a Body of People, Usually Notably Ungoverned
Hee hee. That part isn't the license though, I think. I got the impression that it was a preamble or introduction of sorts.
A Government Is a Body of People, Usually Notably Ungoverned
Doesn't the license there says in clause X that you can use GPL too? Here it goes:
X. In addition to what this Licence otherwise provides, the Software may be distributed in such a way as to be compliant with the GNU
General Public Licence, as published by the Free Software Foundation, Cambridge, MA, USA; version 2, or, at your option, any later version;
incorporated herein by reference. You must include a copy of this Licence with such distribution. Furthermore, patches sent to the
authors for the purpose of inclusion in the official release version are considered cleared for release under the full terms of this
Licence.
-- Si hoc legere scis nimium eruditionis habes.
So, you posted this story, and know a bit of the background, right?
Is, in your opinion, Nasm dual liciesed, or free to distribute under the GPL? If not, why not? (if so why the fsck did you post this, isn't it a non-story?)
- That maintainer did succeed in convincing them to put the clause in the licence about being compatible with the GPL though.
Is this not, in effect, the same as it being GPL'd?The Nasm licence now clearly states, "the Software may be distributed in such a way as to be compliant with the GNU General Public Licence". That is quite clear. I can download Nasm, and sell a comercial version based on it, so long as I stay compliant to the GPL, right?
The Nasm license also states, "We may well allow you to incorporate it into commercial software too, but we'll probably demand some money for it". IANAL, but I would say that this is now unenforcable, as they have declared that I may redistribute under the terms of the GPL, right? "Should any part of this agreement be deemed unenforcable, it is intended that the remainder of the agreement be held in force" - so if any parts of the Nasm licence that are incompatible with the GPL are deemed unenforcable, the only parts of the license that remain are those parts that are GPL compatible - no problemmo:-)
Please point out where this logic fails, but it would seem to me that I can redistribute under the GPL if I choose to, with no restrictions. Otherwise, where was the success in the maintainer having that GPL clause added?
cheers,
G
Ditto. Choose the license that fits your needs, not the license that someone else tells you to use. The GPL, especially dual-licensed with a proprietary license, is great for commercial work (free for free, nonfree for nonfree). But for simple hobbyist stuff like what I make, even the BSD license is getting a bit restrictive :-)
A Government Is a Body of People, Usually Notably Ungoverned
It should be obvious that the real culprit is the GPL, and the sentence should read: "One horrible consequence of the GPL licence is that we cannot link GPL'd code to any non-GPL'd code". And no, this is not flamebait, it's a statement of fact. This is a major drawback of the GPL, and it is bound to become more and more of a problem.
I tend to license my source under the "I don't give a fuck" license. GPL advocates might wonder why I give up all control of the software I write. However, astute readers will realize that I don't actually give a fuck.
Oh, yes, I most definitely care, and so do many others.
You fail to see the problem here. Linking any GPL code to NASM is a violation of the GPL license. Freely allowing such violation undermines the very foundation of the GPL. It is not a question of what the other license says or if it is acceptable or not, it is the fact that it *IS* a violation. It makes no difference from a legal standpoint wether the NASM license requires you to stand on your head coding Win32 apps for all eternity, or to mention the copyright.
This is the same problem KDE (soon-to-be) used to have. If you link GPL code together with something not compatible with the GPL you *have* to have permission by the authors of the GPL code. Anything else is a violation of the authors license. It doesnt matter if it's a big thing or a small thing; YOU DO NOT HAVE PERMISSION. If it's a small thing, just ask and you will likely get an exception, but until you do get that permission from the authore, let me restate that: _YOU DO NOT HAVE PERMISSION_. And that is FINAL.
I always wanted to appear on Slashdot, but I never thought I'd do it by having years of my life slagged off in a front-page story. <kyle>You bastards!</kyle>
There's been a lot of dispute as to whether the intent of the GPL clause was to dual-license or to create a strange hybrid thing. I can answer that very simply: it was to dual-license.
We created the original NASM licence (which didn't even have the GPL clause) back in 1995 when understanding of the issues wasn't widespread like it is now. Nobody seemed to care that it wasn't GPL-compatible at the time - it was free enough for people's purposes.
After a while, Debian found NASM and packaged it up, and pointed out to us that it would have to go in "non-free" unless we were willing to dual-license with the GPL. We agreed to that, and I sent an email to the Debian package maintainer granting our permission for Debian to distribute their NASM package under the GPL, until such time as we got round to making it explicit in the real licence.
When we did make it explicit, we clearly didn't do it very well. But the intention has always been to dual-license.
Therefore, I don't see that there's a serious problem here, at least as far as intentions go. We wanted any user of NASM to have accepted (at least) one of the NASM half of the licence and the GPL. If you want to link NASM code with GPL code, you accept the GPL, and then you have no problem.
McCabe's Cyclomatic Complexity can be misleading, especially for assemblers, simulators, and other software which must represent a model of hardware. The same is true for compilers, interpreters, emulators, and other such software.
In the case of an assembler, dividing opcode dispatch or address mode decoding across dozens of metric <10 functions can make the correctness and completeness of the assembler harder, not easier, to determine. (However, it is appropriate that a thorough knowledge of the architecture of the machine the assembler is for be required for such understanding and determination.) It's the nature of the beast, though it is possible to build or obtain tools that allow for a more direct representation of the target hardware (e.g. GAS uses such a method).
Complexity metrics have the flaw that they encourage (or in some shops, enforce) the diffusion of complex but highly regular logic which is better represented as a whole. It may be impossible to rate the actual comprehensibility and maintainability of a module based on the number of edges in its control flow, as McCabe's metric attempts to do. The predicates which generate those edges may model a regular structure such that drawing them together into a single module makes it easier to understand, even though its McCabe metric is high. Conversely, a control flow with a few edges generated by predicates with obscure interactions and dependencies, such as would be required by the division of certain problems into submodules, might yield low McCabe metrics and be nearly impossible to understand. Inappropriately applied, metrics like McCabe's can encourage the generation of artifacts based not on the inherent structure of the system being modeled, but on the satisfaction of blind rules.
In some application areas (business logic, for instance) metric like McCabe's work well. They can be useful even with parts of systems where they are otherwise inappropriate. But there are, indeed, cases where they are not only inappropriate, but dangerously misleading.
I'm not arguing whether or not NASM is good code. But I am arguing that use of McCabe's metric is probably inappropriate in this case.
This is just more, "my way or the highway," pabulum. A sound ideology does not require lockstep marching to the beat of a single drummer -- indeed, sound principles typically require the opposite -- a willingness to consider and weigh other approaches.
The logic here is hopeless: The fact that there exist licenses that are more limiting than the GPL does not mean that all non-GPL licenses are limiting and unfree.
Many wonderful works are available in open-source, free of the impediments you described, albeit not under GPL.
Lighten up -- open yourself to new ideas and learn. Question authority. Indeed, perhaps we should question in particular any allegation that GPL is "more free" than another license when GPL does not permit linking to software that was created under a reasonable license.
Not necessarily. IANAL, but I remember that "without permission" can mean simply "read the license more closely." Your "permission" is granted in the GNU GPL.
<O
( \
XGNOME vs. KDE: the game!
Will I retire or break 10K?
Yep, you're right, and I'm wrong. The NASM Public license is a free software license but it's not GPL compatible.
-russ
Don't piss off The Angry Economist
It's not GPL-compatible, because it requires that the GPL copyright holder remove restrictions. I was wrong.
-russ
Don't piss off The Angry Economist
Molog
So Linus, what are we doing tonight?
So Linus, what are we going to do tonight?
The same thing we do every night Tux. Try to take over the world!
- As long as the code remains under the original licence, and is not simply relicenced under the GPL. That is the intention.
Right, lets get this straight:No. Just because we have declared that you can distribute where you could under the GPL, this doens't mean that if what you want to do is outside of the scope of the GPL
-
Your code is effectively dual licenced: I can modify and distribute the code freely as if it was a GPL program. The GPL is kindof a sub-license under the NASM license, just so people cannot dump the NASM license at any point.
-
The NASM license is basicly just saying, that you are prepared to come to an arrangement to let me redistribute without the source in a commercial product (allowing people to chose to close the source is okay folks - e.g. BSD & MacOS X) - provided that I supply you with a big bag of cash.
The only effect on a programmer thinking of maintaining NASM, is that you could make money of their hard work. Well, big deal. Other people, e.g. Red Hat, will be making money out of the code the contribute. Why shouldn't you, in the situation that someone ever wanted to release a closed source assembler based on NASM.Well what the FSCK is everyone complaining about? NASM can be distributed every bit as freely as any GPL program - the only catch is that julesh may make a bit of cash out of your work. So what? Shut up whining.
cheers,
G
BTW. So you're (the guy | one of the guys) who wrote NASM? Sweeeeeeet. Nice piece of work - I play around hacking kernels. The fact that that the linux kernel has the jump to 32 bits in embedded machine code is a joke. Congrats, nice work.
And being a hobbyist won't necessarily protect you.
Protect me from what? My competitors? I'm a hobbyist, I laugh in the face of competition! Or do you mean protection from lawsuits? In that case the BSD warranty disclaimer is just as good as the GPL disclaimer (or the MIT and Artistic disclaimers). I've even seen PD with disclaimers!
If someone uses my code in their proprietary product, so what? I could of course follow the GNU crowd and regard that as immoral, but there are too many *real* evils in the world to fight against than to worry about who I can or cannot share my stuff with.
A Government Is a Body of People, Usually Notably Ungoverned