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.
I'm a programmer, now a lawyer... TO hell with your 'license' crap.
--
Peace,
Lord Omlette
ICQ# 77863057
[o]_O
NASM is a great tool, especially for all the DJGPP users out there who want to use Intel syntax ASM.
Martee
~~~~~~~~~~
Martee
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
Nelson says:
The only solution I can foresee solving this problem is for the original authors to grant us a license change to the GPL. Since this is unlikely to happen,
Sorry, maybe I'm being naive here, but why the hell not? What does the NASM have over the GPL one that makes it so attractive?
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
I'm *usually* one to write something "insightful" but I must speak out .. AskSlashdot is almost becoming something of a "when we're low on the news, we'll pull from the AskSlashdot queue." If anything, I would like only to see the stories which the poster claims important .. Why is this important to me? Just somebody resurrecting an old grudge as a space filler .. to maintain the quota? blar ..
Russ Nelson
-russ
Why read it then, are you a cumpuulsive or what?
It's called an elephant's trunk whereas it is in fact, an elephant's nose, a nose by any other name would smell as sweet
Apart from people wasting hours about arguing for/against their favourite licence, has there ever been an instance where an open source licence has disadvantaged users.
Most people are bothering about the potential for abuse. Has this ever occured? Is it ever likely to occur on a scale large enough to warrant the huge deal that people are making out of so-called licence problems.
Also, have any of these licences been tested in court?
[just wondering]
-- That which does not kill us has made its last mistake.
Indeed, I saw that one a while ago already. Check it out.
MyopicProwls
MyopicProwls
My homepage
I resent that, this is something I thought was important to the free software community.
And this wasn't meant to be an "Ask Slashdot".
With Open Watcom just released and Kendall Bennet working on NASM there just might be some code swapping between the two. And who knows where else that code might end up, maybe in the Linux kernel.
"God prevent we should ever be twenty years without a revolution." -- Thomas Jefferson
I've done a little hacking on NASM myself, and just saw this on the mailing list around the same time it came up here. I'm just wondering what would happen if we tried talking to Simon Tatham and Julian Hall and asking them for a license change. It's a shame as it's the most well-developed x86 assembler available (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). A look at the license shows that
Qu'on me donne six lignes écrites de la main du plus honnête homme, j'y trouverai de quoi le faire pendre.
It is illegal to assign unlawful penalties to a license.
Of course, don't tell the mafia, drug dons, or Bill Gates this about their contracts.
-----------------------
Nicotine free Amish .sig.
Bruce
Bruce Perens.
The BIG incompatibility that I see is this: We may well allow you to incorporate it into commercial software too, but we'll probably demand some money for it, and we'll certainly demand to be given credit. And in extreme cases (although I can't immediately think of a reason we might actually want to do this) we may refuse to let you do it at all. What this means is they intend to reap some financial rewards for the project. A lot of open source projects are co-opted into commercial projects without the original authors recieving any financial reward. It looks like they just don't want that to happen. On one hand it is not the philosophical ideal, but on the other hand, it would be nice to be paid for your work.
1d107
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!
Actually, a month or two back we did contact them and had a big debate about it. Julian did respond and didn't like the notion for some reason or another.
Others have tried to reason with them, which is why the original NASM project became unmaintained. The maintainer of the original project got fed up with arguing with them and refused to make another release.
That maintainer did succeed in convincing them to put the clause in the licence about being compatible with the GPL though.
"God prevent we should ever be twenty years without a revolution." -- Thomas Jefferson
Hey, why isn't anyone complaining how the GPL license isn't compatible with the NASM license, and demanding the FSF change it?
--
The problem here is not whether NASM-licensed code "accepts" to be linked with GPLed code. It is whether GPLed code would accept to be linked with NASMed code. It seems like the answer is no.
It's not easy to make a GPL-compatible license. I personally see that as a feature.
OG.
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?
Good point.
"God prevent we should ever be twenty years without a revolution." -- Thomas Jefferson
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?
You said: "I ran some complexity metrics on the NASM source code" So, would you mind telling us _which_ complexity metrics did you run ?! Thank you !
This licensing thingy is turning many a programmer wary.
There are lotsa people who want to contribute to the open-source community, but the licensing problem is making some of them think twice before they actually contribute any code into any project.
I hope that this NASM licensing fiasco will be solved amicably between the people who are involved, and become a shining example of the maturity of the programmers in the open-source camp.
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"
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.
The problem is with the concept of 'ownership'. Most commercial licenses never give you 'ownership', but yet they use a copyright to protect their work. If you use a copyright, theoretically you have a 'first sale' right, which allows you to resale what you have purchased to whoever you want. The EULA and click-on agreements attempt to strip all that away and more, including reverse engineer and free speech (i.e. you can't make disparaging comments about software-even if you're honest).
At least with the GPL in spite of all its zealots and religion (which I don't adhere to) places the source code in plain view, and doesn't restrict your speech/work product of the software.
So yeah, on the surface it does seem ridiculous and touchy to refer to software not under the GPL as a 'black hole'. But the whole reason why we are here talking about it anyway is because some of these EULAs and click-agreements are themselves very ridiculous - unfair, dishonest, and the work of crooks.
Take the cheese to sickbay, the doctor should see it as soon as possible - B'Elanna Torres, "Learning Curve"
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.
Still, it doesnt work. The wording of the clause in the NASM license is imperfect; "the Software may be distributed in such a way as to be compliant with the GNU General Public License" does not equate to "the Software can be distributed under the terms of the GNU General Public License". Furthermore the clause specifies that the NASM license must be included in in such a distribution which immediately renders it non-GPL compliant through a restriction above and beyond the GPL.
And, the final problem is that while the NASM license may allow and/or claim any kind of GPL compatibility, the GPL itself has to be satisfied. NASM code might be legally linkable to GPL code, but GPL code would not be legally linkable to NASM code.
You write:
Do you mean the Debian package, perhaps? The NASM project has never been unmaintained as far as I know.
mov eax, 0x0010 .exit
mov ebx, 0x5566
call myfunc
mov dword [esi + 0x0020], eax
jmp
Looks like assembler to me. What are you on about??
In the end, what's the big deal about the GPL?
Just because its the licence that some big corps (ie redhat et al) like, does that mean we have to kowtow to their judgement? OSS developers should be free to grant whatever freedoms they like to the people using their software. A few of the freedoms we wanted to grant with NASM (and yes, I don't mind admitting that profit was among the motivations!) are incompatible with the GPL.
Allowing nasm code to be distributed under the GPL would render this impossible, because then code submitted wouldn't be cleared for inclusion under the nasm licence, but only under the GPL.
This is not an 'imperfection in the wording' as you assume; it is fully intentional and designed to preserve the rights of potential users of NASM whose uses are not covered by the GPL. And that doesn't only stretch to proprietory systems. It allows binary only distributions (placing copies of NASM on magazine covers who don't want to be bothered by restrictions on carrying source code as well, etc). It allows linking NASM code with binary only but free projects (there are some out there; not that any use NASM to my knowledge, but you never know).
Yes, it is a little difficult to understand the parser. It could perhaps have been better structured. But more than 2 or 3 people have worked with it, and most seem to be able to grasp it.
Try actually reading the code, rather than applying automated tests. You'll find it really isn't that bad.
And some of the 'bad programming practices' you mention elsewhere actually make the code easier to read; the global variables are used so that thousands of pointers don't have to be passed all over the place. Most of them don't change throughout the operation of the program and merely indicate configuration options. Others change infrequently, or represent values that are effectively 'read-only environment values' for most parts of the code and are only changed in very rare circumstances.
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.
There is no really big deal about the GPL, as long as people understand what they're doing (as you seem to be).
However, there are consequences to not being compatible with the GPL, in the form that GPL code cannot be included in NASM, nor can NASM code be included in GPL software.
But as far as I can tell, from what you say you wish to provide further freedoms beyond what the GPL allows. Constructing such a license is not impossible; the easiest way would be to simply take the GPL and add several clauses specifying exactly what added permissions are granted. Of course it would still mean that GPL code cannot be used in NASM (well, it could, but if it was tightly integrated so the GPL Software couldnt be separated then NASM would be effectively under GPL anyway), but at least GPL projects could include NASM code.
Reading the license there are just a few points where there is a problem:
In clause I, the license forbids charging for the software; the GPL does allow charging, and thus NASM would be more restrictive, and not compatible. In my opinion it is a bit redundant, since anyone could come to the NASM team instead of buying it from someone overcharging for it. The "as long as this license remains with it..." is redundant too, since you may not remove the license in any case.
In clause II, the credit of authors is redundant since this is required by copyright law either way. Requirement of notification conflicts with the GPL, as far as I can tell, and again, the 'remain under this license' is redundant.
Clause III, conflicting informing requirement, redundant license clause redundant copyright notice clause and conflicting statement about differing from the original form.
Clause IV, rather redundant. You already have (as long as you hold copyright to the entire code) the ability to give any form of license to anyone under copyright law.
Clause V. Redunant; collections and/or archives are in themselves (in some cases) copyrightable entities in which the copyright holder holds copyright to the 'collection'. I dont think the GPL affects this. License clause redundant here too.
Clause VI. Great. Necessary. Good one.
The rest, pretty good until:
XI. Invalid. You cannot decide who the original authors are if you accept any code copyright anyone else. They retain copyright to any and all code they write until such a point in time that they sign over copyright to you (a possible exception would be 'fair use', but that is up to the courts and whatever is regarded fair use currently in quoting source code, not you to decide. This also leads to IV being invalid.
Basically, there are a lot of redundant parts and just very small parts requireing information to be sent to you that conflict with the GPL. The _major_ problem you have is with granting the right for binary only vendors to use the code, but this is really not tied to the GPL.
In my knowledge there are only two ways to do that; either you go the BSD way and allow anyone, or you _must_ obtain copyright to all code in question. There is no middle way that will allow you on a case by case basis to grant specific other licenses.
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
I just spent the last 20 minutes stomping on banner adds to help some poor guy afford server resources. It seems they wrote a really good NASM manual but can't afford the server resources to distribute it. I would have paid a few bucks for that manual.
"section A.141 unavailable due to generosity"
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.
I think that the BSD is the most liberal license that it is legally safe to use. And being a hobbyist won't necessarily protect you. (Of course, you could release it anonymously.)
I think we've pushed this "anyone can grow up to be president" thing too far.
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
Normally, it would be the best rule to use whatever license that fits your needs. But just don't let anyone who runs Slashdot know, because anything that isn't GPL is wrong in their book. (sorta like MTV how whatever music they don't play is wrong, and yet THEY determine what music is played)