Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
GNU is Not Unix

NASM Public License Not GPL-compatible? 108

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.
This discussion has been archived. No new comments can be posted.

NASM Public Licence Not GPL-compatible?

Comments Filter:
  • I'm a programmer, now a lawyer... TO hell with your 'license' crap.
    --
    Peace,
    Lord Omlette
    ICQ# 77863057
  • NASM is a great tool, especially for all the DJGPP users out there who want to use Intel syntax ASM.

    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
  • by Anonymous Coward
    AFAIK, IMHO RMS & OSI should RTFOSDM!

    Thank you.
  • 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 [opensource.org] board: so that programmers can look for the OSI Certified Open Source certification mark, and be comfortable developing and redistributing their improvements.
    -russ
  • 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 ..
  • This sort of thing has been bothering me a great deal lately.

    I've seen endless amounts of complaining on slashdot about the 'click here to agree' licenses that come with most commercial software. Some say they aren't binding and shouldn't be taken seriously. Why, then, should anybody take a license included with an open-source package seriously? We don't even get to click on those :)

    Most anything I've ever released (not much, mind you) has been under my own personal license that goes something like this: "Do not abuse this software under penalty of death. For more information, contact the author."

    Is my license really any less credible than the GPL or any other license slapped on any piece of software?

  • Contributors automatically agree to dual-licensing by the authors. The GPL requires a separate agreement or copyright assignment.
    -russ
  • by Anonymous Coward
    I have reviewed the NASM license and found that it meets all of the requirements for the FSF's dual-license qualifications. Basically it is a restricted license and a GPL license. Choose whichever one you want. Anyone who says anything different is a moron.

    Russ Nelson
    -russ

  • Why read it then, are you a cumpuulsive or what?
  • 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]

  • But why would the authors want to keep the NASM licence? The GPL seems to meet the spirit of what they're trying to achieve with the NASM licence, without (obviously) this incompatibility...
  • Indeed, I saw that one a while ago already. Check it out.
  • I think the most interesting part of the NASM lisence is the suggestion that the output code must be under some special lisence. This seems to me really bizarre. I mean, can Adobe tell me that my images must be distributed in a certain way? Can Microsoft tell me that all my text falls under certain restrictions (I shouldn't give them any ideas). How can the creators of a program restrict the use of its OUTPUT?

    MyopicProwls

  • 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.
  • 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 [mailto] 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
  • Yes this has happened. Accusys, a taiwanese company distributed binary only copies for redhat/suse disks patched with a driver for their raid controller they make. When asked for the source code they produced source not under the gpl and tainted with code from intel and wind river systems. The intel/wind river stuff was i2o code which should not have been used in the first place. Why reinvent the wheel when they can use 2.3's stuff?
  • 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.
  • by Datafage ( 75835 ) on Monday September 04, 2000 @06:55PM (#805479) Homepage
    The whole attitude of much of the open source movement gets to me. The use of the term "black hole" to refer to code not under the GPL is troubling. Other licenses have valid uses, and it should be up to the author which to use. If a person is only willing to code under the GPL, then he is as nonsensical as a person who refuses to drive anything except a Ford Explorer. You're using their compiler; they have the right to say what you can use it for just as much as the GPL says what you can do with code released under it.

    -----------------------

  • I'm not sure if the authors actually intend for it to be a dual licence. I think they are instead indicating that their licence is compatible.

    I have talked with Julian, and this seems to be what he's saying. I'll mention this Slashdot thread to him and see if he'll speak up about it.
  • by Bruce Perens ( 3872 ) <bruce@perens.com> on Monday September 04, 2000 @06:56PM (#805481) Homepage Journal
    I think it's meant to be dual-licensing, either NASM or GPL. But he doesn't really say that unambiguously. A few sentences worded differently would fix it. I'd suggest starting the license with "You may choose one of two licenses to apply to this software: the NASM license, below, or the GNU General Public License in the file GPL in this directory."

    Bruce

  • I've seen endless amounts of complaining on slashdot about the 'click here to agree' licenses that come with most commercial software. Some say they aren't binding and shouldn't be taken seriously. Why, then, should anybody take a license included with an open-source package seriously?
    The GPL [gnu.org] tells you how you can redistribute a work, and draws its force from copyright law.

    Shrinkwrap licenses [best.com] attempt to tell you what you can do with a work, and draw their force from... er... nowhere in particular [cr.yp.to].

  • So this means we can completely drop the NASM license and say it's available under the GPL.

    I remember asking Julian about that but he said no.
  • 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.
  • by Bruce Perens ( 3872 ) <bruce@perens.com> on Monday September 04, 2000 @07:00PM (#805485) Homepage Journal
    Is my license really any less credible than the GPL or any other license slapped on any piece of software?

    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

  • IANAL, IMHO YTMF. ROTFLMFAO.
    [slashdot.org]
    Thank you.
  • It matters to me as a developer to know what my rights are.

    And it has been tested, an example is Bruce Perens vs. BeOS back when they included Electric Fence in their proprietary kernel.

    It really does matter what the licence says, if it didn't then we wouldn't use them.
  • Most anything I've ever released (not much, mind you) has been under my own personal license that goes something like this: "Do not abuse this software under penalty of death. For more information, contact the author."

    Is my license really any less credible than the GPL or any other license slapped on any piece of software?
    Yes, Your license is really that less credible. You don't think that just because your (crazy) users agreed to a shrink wrap license with a death penalty clause that you wouldn't wind up in jail soon after having enacted the penalty, do you? Naaaa, I didn't think so either.

    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.
  • I'll paste a comment I sent to the license-discuss@opensource.org mailing list since it sums up what I was about to type anyways.

    "It's a misconception that only open source/free software advocates should
    critize licenses. Anyone has the right to give their opinion on any license
    and let the author/company know about it. The fact that users of proprietary
    software don't do this makes me suspicious that they are not actually
    reading the licenses they've agreed to. Certainly if a majority of Windows
    (tm) users had a problem with a portion of the EULA (such as the recently
    (well not so recent) removed right to a refund) Microsoft would take action
    and change it. Instead, these users continue to agree to anything Microsoft
    puts in the license and use the software.

    Such apathy disgusts me. I do not long for the day that open source/free
    software advocates no longer open their mouths."
  • I am of the understanding that Id Software won't let you use Radiant to create works for any engine, comerically, unless you have a license to do so. This is defined in the license agreement of the program, I also believe. (I'd check, but I don't have it installed)
  • I'm not sure if the original authors were intending to make it dual licensed though. I'll try to ask him or mention this /. thread to him.

    I agree with you that the legalise in the licence is strange, I don't think it was written by a lawyer.

    Would this affect it's legality?
  • by nomadic ( 141991 ) <nomadicworld.gmail@com> on Monday September 04, 2000 @07:19PM (#805495) Homepage
    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.
  • by SecretAsianMan ( 45389 ) on Monday September 04, 2000 @07:27PM (#805497) Homepage

    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."

  • 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.


    XII. Should any part of this agreement be deemed unenforcable, it is intended that the remainder of the agreement be held in force.

    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.
  • I think the most interesting part of your post is that it has a Score of 2 when it is completely false.

    VI. Object files or programs generated by the Software as output do not fall under this licence at all, and may be placed under any licence the author wishes. The authors explicitly lay no claim to, and assert no rights over, any programs written by other people and assembled into object form by the Software.
  • That's next week's article.
  • 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
  • Instead, these users continue to agree to anything Microsoft puts in the license and use the software. Such apathy disgusts me. I do not long for the day that open source/free software advocates no longer open their mouths.

    Whatever. I don't read them, and I don't follow them. I'll use the software in the way it's intended for my own personal use. There is nothing at all that can be put in an EULA that can take that away from me, as it is my constitutional right. It disgusts me that people will so easily give up their constitutional rights just because an EULA tells them to.
  • 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
  • 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
  • There are several items in the licence which I consider to be incompatible with the GPL.

    Is stating elsewhere in the licence that "this licence is compatible with the GPL" enough though?

    Does that render everything incompatible unenforceble? That really puts the burden of finding the incompatibilities on the interpreter of the licence. IMHO it should define which sections no longer apply if the source is linked with GPL'd software. But, there is actually a section which deems that the NASM licence still applies to these portions:

    "II. The Software, or parts thereof, may be incorporated into other freely redistributable software (by which we mean software that may be obtained free of charge) without requiring permission from the authors, as long as due credit is given to the authors of the Software in the resulting work, as long as the authors are informed of this action if possible, and as long as those parts of the Software that are used remain under this licence."

    All very confusing.
  • Try refunding Windows (tm) and you'll quickly learn what your rights are.
  • With the current tendancy[1] of moving major projects to the GPL and the release of a large amount of previously closed code to under that license, there are only two major licenses remaining: the GPL, and the MIT one (aka Apache, BSD next generation). Or, as was named an interesting thread on Technocrat [technocrat.net], the GPL becomes the industry standard license [technocrat.net]. It is probably going to stay that way since these two beasts are compatible.

    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

  • Hey, I care. If I write code and license it a certain way I don't want it to end up under a license that I never agreed to.

    Think about that, I may not even be allowed to use my own code without agreeing to someone elses license because they linked it in!

    So it does matter if someone includes pieces of NASM in another software program with another license and the same for other parts included into NASM.
  • The newest releases of DJGPP [delorie.com] Binutils reportedly support a switch in as to get support for Intel-style assembly syntax. Ask further on the newsgroup [os.msdos.djgpp].
    <O
    ( \
    XGNOME vs. KDE: the game! [8m.com]
  • 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 [delorie.com] with a switch.


    <O
    ( \
    XGNOME vs. KDE: the game! [8m.com]
  • 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 !
  • by Arandir ( 19206 ) on Monday September 04, 2000 @08:46PM (#805513) Homepage Journal
    The reason that no one complaining the reverse is that it is the NASM license which claims compatibility. The GPL never claimed compatibility with NASM.

    Go take a look at the NASM license. It isn't that bad, and counts as OSS/FS. However, it has this bizarre clause in it that says NASM is GPL compatible. This is Palisade's point, I believe, that a lot of people are using NASM licensed code believing it to be compatible with their own GPL code when in fact it is not.
  • 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.
    ---


  • 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).
  • 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.
  • Hee hee. That part isn't the license though, I think. I got the impression that it was a preamble or introduction of sorts.
  • 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.
  • Hang on, hang on.

    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

  • by Arandir ( 19206 ) on Monday September 04, 2000 @09:09PM (#805521) Homepage Journal
    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 :-)
  • Are you talking about refunding the bundled Windows OS? If so, why would I ever think that I have a right to do that? If I buy a box of Frosted Flakes, with a free matchbox car inside, I can't return the matchbox car for a refund. When I eat at McDonalds, and get a cheeseburger without onions, I don't expect to pay any less. That's just common sense.
    I don't intend to buy a copy of Windows if I don't want it. So I will never have a need for a refund. It's really quite simple. If I don't want windows on a machine, I get the best deal I can get, regardless of whether it has windows on it. The best deal usually turns out to be a machine which doesn't have windows on it.
  • One of the first sentences in that posting is "One horrible consequence of the NASM licence is that we cannot link to GPL'd code.

    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.

  • by Anonymous Coward
    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.
  • 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.
  • I agree with you that the legalise in the licence is strange, I don't think it was written by a lawyer.

    Would this affect it's legality?
    Would not being written by a lawyer affect it's legality? No. Would it being written poorly affect it's legality? Yes.

    #include <disclaimer.h>
  • Are you talking about refunding the bundled Windows OS? If so, why would I ever think that I have a right to do that?
    For the simple reason that Microsoft guarranteed that right in the so-called "End User License Agreement" which they packaged with the OS distribution media. In order to give this purported agreement a semblance of legality, Microsoft wrote that if the purchaser does not accept the "agreement" he can return the OS to the vendor for a full refund.
    I don't intend to buy a copy of Windows if I don't want it. So I will never have a need for a refund.
    I agree. Companies that pre-install windows don't have the best prices. Besides, why deal with someone like that when you can avoid it?
  • by Anonymous Coward
    Just a minor correction, GPL actually doesn't prevent anything that is not already forbidden by copyright law. Quite the opposite, GPL relaxes limitations of plain copyright under certain circumstances.
  • A good attitude, but I do wish that OSI would be a bit more careful and that you would make it _very_ _very_ clear that a Certified Open Source license does not solve any license conflicts.

    The confusion and annoyance caused by the differing licenses is not (as some appear to believe) because the license for an application is not open and free, anyone is free to license however they want; it is because the code can not be mixed with other code, and even worse, the risk that some 'not-a-lawyer-a-programmer' guy will take code under, for example, the GPL and merge it into a non-GPL application, which is a serious violation of the license and the original authors purpose.

    The worries expressed by the NASM programmer in question is exactly the kind of worries that OSI does not seem to address strongly enough. These problems should be pointed out to companies and individuals very early in the process; for example Mozilla would have been able to avoid a very painful license change, and Qt would have been able to avoid years of problems had they understood the implications of not being GPL compatible in the open source community.

    This is not to say that you have to be GPL compatible to release perfectly acceptable open source code, but the consequences are that you will never be able to use GPL code, and no GPL project will be able to use your code. This is sometimes tragic and unnecessary, since a dual licensing scheme with the GPL will satisfy even most corporate interests (protecting the code against their competitors using it against them); sadly, they rarely bother to read the GPL carefully enough and analyze the concepts to figure this out.
  • by Anonymous Coward
    That's because the GPL is FAR from "free". If people would stick with BSD style licenses, we wouldn't have these articles on /. every month complaining about incompatibilities and dual license schemes and other lawyerly crap.

    The BSD style licenses have a purpose: to make their software and source freely available. The GPL has a fucking political agenda and it still amazes me how much it has infested the software world.
  • 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.
  • by Simon Tatham ( 66941 ) on Monday September 04, 2000 @11:31PM (#805532) Homepage

    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.
  • The NASM license stating compatibility with the GPL may be enough to allow GPL code to be linked to NASM, from NASM's point of view. It isnt enough to allow NASM code to be linked to GPL code from the GPL point of view tho. So it's a no-go.

    Nothing in the license is rendered (legally) unenforcable until a court of law renders it thus. Therefore, from a GPL point of view all of it remains until explicitly stricken by a court.

    The only way to avoid the issues is to dual license NASM under the GPL or a GPL compatible license (MIT, BSD, etc) (no extra 'must include NASM license too', no extra language no nothing).

    Of course, relicensing under GPL would also require a special licensing for any NASM code included into executables; see the gcc special license for crt.o for example.
  • You write:
    I'm just wondering what would happen if we tried talking to Simon Tatham and Julian Hall and asking them for a license change.
    I'd agree to it. Unhesitatingly. On all the parts of the NASM code that were written by me. And I'll be happy to send formal notice of that to anyone who wants it.
  • You write:

    Others have tried to reason with them, which is why the original NASM project became unmaintained.

    Do you mean the Debian package, perhaps? The NASM project has never been unmaintained as far as I know.

  • Thanks for that!

    As one of the originaly authors, we went through a stage shortly before we made our first public release of the nasm code where we wanted to make sure nasm was available to the widest range of people possible.

    While the GPL is a fine licence, it suffers many shortcomings in our opinion. One of those is that it is riddled with free software political agenda. While we wanted nasm to be free, we also wanted it to be available for people who had non-free uses for it. Launching it simply under the GPL would have caused a mess; in cases where nasm's use is not allowed under the GPL (there have been several such instances), we would have to acquire the permission of everyone who ever contributed code in order to relicence outside of the scope of the GPL.

    The NASM licence is designed to avoid this problem. It allows a small, executive group to take control of the rights of code submitted for inclusion in NASM, and to relicence them as they see fit.

    In hindsight, there are other ways we could have gone that would have caused many problems.

    But despite the contents of the e-mail that I received recently from Stallman, I am sure that the NASM licence does not break the GPL, and its inclusion within the licence means that other than where the rights of those who submit code for inclusion is restricted further, all other rights are extended beyond what they are in the GPL.

    I'll post a few points elsewhere, where individual points have been made.

  • Indeed. GPL'd code cannot be incorporated into the NASM code without the permission of all of the authors of the GPL'd code. This is IMHO a weakness with the GPL, allowing rights over the code to be distributed among too many people. Truly free software should not make such restrictions. The NASM licence allows the NASM code to be used in situations where using GPL'd code would be impossible, because it allows a few people to make executive decisions concerning the copyright of the code.
  • erm:

    mov eax, 0x0010
    mov ebx, 0x5566
    call myfunc
    mov dword [esi + 0x0020], eax
    jmp .exit

    Looks like assembler to me. What are you on about??

  • Personally I think this is utter rubbish. So what if the GPL is more restrictive than the NASM licence? The NASM licence may not allow you to relicence under the GPL, but neither would the GPL allow you to relicence under any other!

    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).

  • 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?
    As long as the code remains under the original licence, and is not simply relicenced under the GPL. That is the intention.
    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?
    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 (the intended meaning of 'incorporate into commercial software' above) this is in some way invalidated. Yes, if what you want to do is within the scope of the GPL we can't charge for it. We haven't charged SuSE, RedHat or any of the other companies charging for copies on their CDs.
  • To be honest, I don't put much faith in such metrics. They are based on rules of thumb and programming doctrine and cannot really get anywhere sensible.

    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.

  • The NASM licence doesn't claim to be wholly compatible with the GPL.
    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.
    Essentially, this allows distribution of NASM in GPL code distributions, and just keeps the companies maintaining those distributions happy.

    The NASM licence is no more restrictive than the GPL is. In fact it allows certain freedoms that the GPL doesn't.

  • 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.

    -Ed
  • A couple of points
    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
    In what way does the latter interpretation cause a contradiction? I see none. Also, under the most rigorous English grammar, it is the only possible 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
    Which earlier sentence does this contradict?
  • I AM NOT A LAWYER, THIS IS NOT LEGAL ADVICE, THIS IS THE OPINION OF SOMEBODY WHO DOES NOT KNOW THE LAW, USE AT YOUR OWN RISK, DON'T YOU DARE SUE ME!

    Might I suggest a new license with revised clauses be issued that makes it explicit that it can be GPLed? You can do that without a revision clause and without the permission of everybody who ever submitted a patch because of another flaw in the license.

    Specifically, Clause IV has a bad definititon in it -- it states:

    IV. The Software, or parts thereof, may be incorporated into other software which is not freely redistributable (i.e. software for which a fee is charged), as long as permission is granted from the authors of the Software.
    Now, since people can charge a fee for redistributing GPLed software, the definition of "not freely redistributable software" in Clause IV include both the GPL and any license that can dual-license to the GPL. So Clause IV allows the authors as defined in clause XI to issue any license that allows software to be charged for.

    So, my suggestion is that you release the software under the current license with the following replacement clauses, to make things more explicit and better defined:

    II. The Software, or parts thereof, may be incorporated into other freely redistributable software (by which we mean software released under a license that has recieved the OSI Certified mark) without requiring permission from the authors, as long as due credit is given to the authors of the Software in the resulting work, as long as the authors are informed of this action if possible, and as long as those parts of the Software that are used remain under this licence.


    IV. The Software, or parts thereof, may be incorporated into other software under licenses that have not recieved the OSI Certified mark from the Open Source Foundation, as long as permission is granted from the authors of the Software. The authors reserve the right to grant this permission only for a fee, which may at our option take the form of royalty payments. The authors also reserve the right to refuse to grant permission if they deem it necessary. For further information about who exactly the authors are, see clause XI below.

    X. In addition to what this Licence otherwise provides, the Software may be distributed under 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.

    XIII. Sending patches to the authors for the purpose of inclusion in the official release version includes implicit permission to distribute those patches under the license of the authors' choice, the authors being the persons defined in clause XI of this License.

    Steven E. Ehrbar
  • >This is not to say that you have to be GPL compatible to release perfectly acceptable open source code, but the consequences are that you will never be able to use GPL code, and no GPL project will be able to use your code.

    By this def. then, BSD licenced code it NOT open source because BSD code can not accept GPL code without destroying the BSD licence.
  • 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.
  • Yep. The GPL has done some good things for us in the short run, but in the long run it will cause problems that no one ever wants to deal with. I'll happily contribute to GPL code, but I would never license anything *I* write under GPL. That's what the BSD (3 clause) license is for.

    The simple fact is: There's no place for politics in licenses.

    Matt
  • IV. The Software, or parts thereof, may be incorporated into other software which is not freely redistributable (i.e. software for which a fee is charged), as long as permission is granted from the authors of the Software.
    Now, since people can charge a fee for redistributing GPLed software, the definition of "not freely redistributable software" in Clause IV include both the GPL and any license that can dual-license to the GPL. So Clause IV allows the authors as defined in clause XI to issue any license that allows software to be charged for.

    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! [8m.com]
  • This is an excellent idea. We haven't had sufficient resources to create a matrix of license compatibility. Would you volunteer to do such a thing? If you don't have that much time, then at least you can support us by linking to us [opensource.org], and show companies that you think OSI certification is important. Now that we have 501(c)3 approval, we're going the rounds, looking for donations. We'll only get them if we're appreciated (and that is how it should be). So when you see an open source product, ask if it's OSI Certified Open Source.
    -russ
  • Yep, you're right, and I'm wrong. The NASM Public license is a free software license but it's not GPL compatible.
    -russ
  • It's not GPL-compatible, because it requires that the GPL copyright holder remove restrictions. I was wrong.
    -russ
  • Actually, no need to do the work again :). The FSF has such a list (with some comments). Just go to http://www.fsf.org/philosophy/license-list.html [fsf.org] for the information. It lists both compatible and incompatible licenses and non-free (FSF style) licenses. The number of licenses and the ways they are and arent compatible is rather amazing...
  • I believe that would keep your code open source and allowed non-free uses if they are dynamically linked. Would this have been an acceptable solution or is there something that I am missing?
    Molog

    So Linus, what are we doing tonight?

  • Okay, correct me if I go wrong anywhere here:
    • As long as the code remains under the original licence, and is not simply relicenced under the GPL. That is the intention.

      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

    Right, lets get this straight:
    • 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.

  • Agreed! I have, in the past, considered releasing works under the No problem, bugroff [geocities.com] license.
    Essentially, it's everything we're looking for :)

  • 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.

"my terminal is a lethal teaspoon." -- Patricia O Tuama

Working...