Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×

Kororaa Accused of Violating GPL 843

AlanS2002 writes "The Kororaa Project, a pre-configured binary install method for Gentoo Linux which bundles nVidia's and ATI binary drivers in its Kororaa Xgl Live CD , has put its Live CD on hold after being accused of violating the GPL. The issue appears to be the distribution of the Linux Kernel and nVidia's/ATI binary drivers together. When the binary drivers are built the GPL'ed code is included in the binary result, which is a violation."
This discussion has been archived. No new comments can be posted.

Kororaa Accused of Violating GPL

Comments Filter:
  • To avoid the GPL. I thought it was supposed to make things simpler, not have all of these caveats and 'gotchas'. I understand the next version of the GPL is supposed to eliminate these, but then there's the problem with dealing with multiple versions of the GPL.

    I wonder if we're going to start getting stories on "Random Joe Programmer Violates the MS EULA".
    • by Poppler ( 822173 ) on Sunday May 14, 2006 @05:26PM (#15330910) Journal
      I thought [the GPL] was supposed to make things simpler, not have all of these caveats and 'gotchas'.

      You are confused. The GPL is designed to keep software big-F Free. The "caveats and 'gotchas'" are very much the point.
      • This hurts Linux adoption big time. If hardware vendors and developers are not even sure they're allowed to support Linux (provided opening the source is often not a possibility) then that itself is a big wall in front of GNU/Linux adoption and support.
        • by Tet ( 2721 ) <slashdot AT astradyne DOT co DOT uk> on Sunday May 14, 2006 @06:36PM (#15331230) Homepage Journal
          This hurts Linux adoption big time.

          Thus speaks the voice of one who sees widespread adoption of Linux as a goal. Others see the creation of a free operating system as the goal instead. The two aren't mutually exclusive, but nor do they go hand in hand. I would rather see Linux remain a niche OS than sacrifice my principles to chase market share. Of course, I'd like to see Linux gain widespread adoption as well. But if it came to a choice between the two, I'll stick with what I believe to be right.

          • This actualy effects both the goalsmofr having a free operating system as well as having wide spread adoption. It isn't as easy as someone placing a non GPLed piece of software into the mix either.

            First and probably foremost, It would apear that the confusion surounding the GPL and the constant misinterpretations could take your free software and close it real fast. Linus already touched on this a few years back [kerneltrap.org] It was my impresions that the whole Nvidia-ATI issue was settled then. Evedently, it has come ba
    • by khasim ( 1285 ) <brandioch.conner@gmail.com> on Sunday May 14, 2006 @05:45PM (#15331000)
      Before you go on about how evil the GPL is, why not wait until there is some clarification on the issue.

      So far, an un-identified person sent an email to someone distributing a Live CD making certain claims.

      As far as I can see, no one has said whether that person has any code of his/her own in that Linux distribution. Nor has anyone who would be able to say one way or the other been quoted.

      Personally, I'd wait until Linus or ATI said that this was wrong before going off on how evil the GPL is.
    • All the more reason... To avoid the GPL. I thought it was supposed to make things simpler, not have all of these caveats and 'gotchas'. I understand the next version of the GPL is supposed to eliminate these, but then there's the problem with dealing with multiple versions of the GPL.

      It's sadly true... The GPL is far too restrictive. I do not believe the FSF will ever 'force' any of the major GPU makers to open source the software.

      ... but they could always switch to the FreeBSD kernel, they already ha

    • At this point, the Linux kernel is GPLd forever.

      So if you don't like it, just don't use it. If you want FreeBSD or Windows, you know where to find it.
    • by computerjunkie ( 128344 ) on Sunday May 14, 2006 @06:19PM (#15331164)
      Have you ever read a standard EULA? The GPL is simple by comparison.
  • Yep. (Score:4, Insightful)

    by Anonymous Coward on Sunday May 14, 2006 @05:23PM (#15330888)
    This is one example of why the GPL is a terrible license. People are trying to add useful things to the Linux kernel so more people use it and your license is restricting it. Use a BSD style license if you want to distribute your code open source.
    • Saying they're trying to add "useful things" to the kernel is a bit of a judgement call. You might think that adding proprietary drivers is useful, but a lot of people would disagree.

      The GPL is designed to prohibit this for a reason, and it's not because the FSF people enjoy making people's lives difficult, it's to keep Linux and the kernel from becoming dependent on proprietary binary lumps. If you want to taint your kernel by adding proprietary modules, more power to you, but you can't redistribute the result. Every user has to add the tainted bits in themselves.

      If every distro could just use the nvidia binary drivers, maybe the people working on the free "nv" driver just wouldn't bother. And then one day nvidia decides (because they suddenly become evil / get bought by Microsoft / whatever) to pull the rug out and cease development of the drivers. A few well-placed cancelled projects could set an operating system years behind the competition.

      The GPL attempts to ensure that a basic Linux system is at least functional without proprietary add-ons, so that it can't become the hostage of someone who controls a lump of code that everyone has gotten used to depending on.
      • by Alef ( 605149 ) on Sunday May 14, 2006 @07:23PM (#15331377)
        If you want to taint your kernel by adding proprietary modules, more power to you, but you can't redistribute the result. Every user has to add the tainted bits in themselves.

        What if I distribute the kernel with instructions on how to add add proprietary module? Would that be OK?
        What if I then distrubute the kernel with a helper script that downloads the modules when the user runs it?
        What if these modules would reside on the same CD as the kernel, and the script simply copies them from a specific directory instead of copying them from a server?
        What if I also include a helper script that automatically installs the modules when the user runs it?
        And what if this script is a boot script?

        But, oh wait, that sounds an awful lot like what kororaa does already...? Where did I cross the line?

        • Alef said:

          What if I distribute the kernel with instructions on how to add add proprietary module? Would that be OK?

          Fine. No problem.

          What if I then distribute the kernel with a helper script that downloads the modules when the user runs it?

          Also fine. This is what the distro's I've used do.

          What if these modules would reside on the same CD as the kernel, and the script simply copies them from a specific directory instead of copying them from a server?

          My understanding is that this would be

  • tainted kernel (Score:2, Insightful)

    by rehabdoll ( 221029 )
    Tainting the kernel makes it non-compatible with the gpl. This is not normally a problem on your home-system, but if you redistribute the tainted kernel you violate the gpl. Whats the big deal? just remove the evil binary-only drivers and all is well.

    or perhaps im wrong, what do I know, anyway?
    • Re:tainted kernel (Score:5, Informative)

      by tomstdenis ( 446163 ) <tomstdenis@ g m a i l .com> on Sunday May 14, 2006 @05:28PM (#15330917) Homepage
      It only taints the kernel if you load the module. The kernel itself [the bzImage] is entirely based on GPL code.

      So don't autoload the drivers and the kernel will not load with a tainted status. /me shakes head...

      Tom
      • Re:tainted kernel (Score:3, Insightful)

        by Anonymous Coward
        "It only taints the kernel if you load the module. The kernel itself [the bzImage] is entirely based on GPL code.

        So don't autoload the drivers and the kernel will not load with a tainted status. /me shakes head...

        Tom"

        Thats bullshit as I look at it.

        That driver requires GPL'd code to be compiled. It requires GPL'd code to run. It's obviously kernel-derived and thusly it violates the GPL.

        The tainting is there to inform end users that their kernel is tainted with non-gpl'd code it's not there to decide weither
        • Re:tainted kernel (Score:3, Informative)

          by dhasenan ( 758719 )
          Great. I'll just inform these people [openoffice.org] that they should stop offering GPL'd stuff based on a system with a non-GPL license [slashdot.org].

          Now. The question of whether they can be distributed together, not just run together, is addressed in section 3 of the GPL. Briefly, it states that you must make the source available to any GPL binaries you distribute. Since the GPL binaries in question are the kernel and just about everything besides the nVidia/ATi drivers, you need to have the source for those available. Since those dri
      • Re:tainted kernel (Score:5, Informative)

        by swillden ( 191260 ) * <shawn-ds@willden.org> on Sunday May 14, 2006 @06:49PM (#15331289) Journal

        So don't autoload the drivers and the kernel will not load with a tainted status.

        That doesn't make any difference.

        Copyright law prohibits the creation of derived works without permission, and the GPL does not grant that permission unless you distribute source. So the question boils down to "Are the binary-only modules derivative works under the law?".

        The answer is: yes and no. The modules come from ATI and NVidia in two parts: a binary-only part that contains all of the interesting code, and some "glue code" that is distributed in source. Both parts have liberal redistribution permissions, which makes the GPL happy, so the big issue is source.

        The argument is that the core, binary-only components of their drivers are not derived works of Linux, since they contain no Linux code (not even any headers) and I think they even claim that the same binaries are used on other platforms and wasn't developed specifically for Linux, at least in the beginning. The glue code that they distribute that wraps the binary-only component is clearly a derived work of Linux, but they distribute the source to that.

        When a user compiles the glue code and links it with the binary-only component to produce a kernel module, the result is a derived work of the GPL'd Linux kernel. Note that I didn't say "and loads it into a running kernel". That's not really relevant. Technically, it's somewhat unclear whether the GPL gives users the right to create otherwise unauthorized derived works, but the general interpretation (including by the FSF) is that people can do whatever they like, and it's only when they start distributing that the question of whether or not the GPL has granted them permission becomes important.

        When someone takes that same compiled glue plus binary module and distributes them, they're distributing a derived work of Linux, without complying with the terms of the GPL, and therefore without permission to distribute under copyright law.

        I think it's quite clear that Kororaa cannot do this without infringing Linux copyrights. The only way they can justify it is if they can argue that the binary kernel modules (glue + core binaries) are not, under the law, derived works of Linux. That seems like a tough one, but IANAL, so maybe it's possible.

    • Re:tainted kernel (Score:3, Insightful)

      by Kortec ( 449574 )
      The problem with this is that the "evil" closed sourced drivers, in this case, are hands-down better. The folks at nVidia actually seem to care about the Linux community, and therefore bother to keep up with our development and produce drivers that perform top-notch for us. It's more than a little odd that the thanks they recieve for their efforts, other than my video card dollars, is GPL violetions, but that's the case.
    • Re:tainted kernel (Score:5, Insightful)

      by idonthack ( 883680 ) on Sunday May 14, 2006 @06:32PM (#15331215)
      just remove the evil binary-only drivers and all is well.
      Except XGL is Kororaa's main feature (in fact, the only reason for the LiveCD), and that won't run without those drivers. If they take the drivers out they might as well just not do it.
      • Re:tainted kernel (Score:3, Insightful)

        by lspd ( 566786 )
        Except XGL is Kororaa's main feature (in fact, the only reason for the LiveCD), and that won't run without those drivers.

        And this is the sleeping evil of ATI and Nvidia's binary drivers. Most recent 3D games for Linux were developed using these binary drivers. XGL also seems to be written largely for the binary-only drivers (you might get some of the old Radeon's or some of the newer Intel chips to work with DRI, but that doesn't seem to be the emphasis.) The fact that developers are writing software
  • rules are rules... (Score:2, Insightful)

    by stikves ( 127823 )
    GPL shooting the "good guys" this time. Nevertheless if the open source community will not obey the rules no one will.

    Fortunately there are many ways for them to exit this situation, and I hope everything will be cleared soon.
  • Whaaa? (Score:4, Insightful)

    by BobPaul ( 710574 ) * on Sunday May 14, 2006 @05:25PM (#15330902) Journal
    I always thought it was ok as long as they provided everything necessary to build the CD on your own, IE all of the GPL code that was used and which non-GPL packages (the nVidia and ATI drivers) were used.

    If anything I would have expected this to be a violation of nVidia and ATI's copyright, distributing their drivers rather than sending people to their respective websites to download.
    • Re:Whaaa? (Score:2, Redundant)

      by mrsbrisby ( 60242 )
      I always thought it was ok as long as they provided everything necessary to build the CD on your own, IE all of the GPL code that was used and which non-GPL packages (the nVidia and ATI drivers) were used.

      Nope. You have to provide every piece of source code necessary to build it. The maintainers of KORORAA don't have the source code to NVidia and ATI drivers. Hence the violation.

      If anything I would have expected this to be a violation of nVidia and ATI's copyright, distributing their drivers rather than sen
      • Re:Whaaa? (Score:3, Informative)

        by BobPaul ( 710574 ) *
        Nope. You have to provide every piece of source code necessary to build it. The maintainers of KORORAA don't have the source code to NVidia and ATI drivers. Hence the violation.

        No, that's blatently wrong. OpenWRT includes the closed source BroadComm network driver, and RedHat Enterprise includes lots of Redhat only software that isn't GPL.

        Now, if you created your own custom kernel in order to make the binary drivers work, but then didn't include the source code for that, I would agree with you. But they did
        • Re:Whaaa? (Score:5, Insightful)

          by mrsbrisby ( 60242 ) on Sunday May 14, 2006 @06:21PM (#15331171) Homepage
          No, that's blatently wrong. OpenWRT includes the closed source BroadComm network driver

          If OpenWRT is distributing a Linux kernel with closed-source software linked into it, then yes, they are violating the GPL.

          and RedHat Enterprise includes lots of Redhat only software that isn't GPL.

          As far as I know, RHEL doesn't allow their trademark to be redistributed. That's a very different thing.

          Now, if you created your own custom kernel in order to make the binary drivers work, but then didn't include the source code for that, I would agree with you. But they didn't modify the kernel at all. They just compiled kernel modules.

          But the kernel modules are based on the Linux kernel. They use hidden magical interfaces. They don't necessarily make the modules GPL (says Linus), but that doesn't mean the resulting linked modules can be redistributed.

          If the drivers themselves were "Derived works" then that would prohibit distribution. However, that would also prevent people from using them at all and require ATI and nVidia open sourced the drivers. This is not the case, though. The drivers contain a GPL kernel interface and a binary only driver. The kernel interface that the ATI and nVidia drivers use is the derived work, and is opensource. You can get it in the respective packages from ATI and nVidia's websites.

          You're confused. The GPL isn't a usage-license, it's a redistribution license. You're free to download ATI or NVidia's copyrighted work (as they say- that's their distribution) and compile and link them into your kernel. You cannot redistribute your binary modules, or your built kernel with them, because you cannot satisfy the requirement of the GPL that says you need to be able to provide source code for those things.
      • No other options. (Score:5, Insightful)

        by Kadin2048 ( 468275 ) <{ten.yxox} {ta} {nidak.todhsals}> on Sunday May 14, 2006 @06:18PM (#15331158) Homepage Journal
        all those suckers that bought NVidia or ATI video hardware

        Just out of curiosity, who are the non-suckers? The people who bought video hardware from ... who, exactly?

        3Dlabs doesn't make GPUs anymore, 3dfx got bought by NVidia, and XGI is gone. That leaves ATI, NVidia, Matrox, and Intel making GPUs. Does Matrox or Intel release source code to their drivers? (Is Matrox even still in the consumer graphics card business?) Who else is there? ATI and NVidia basically have the market for aftermarket cards cornered, to the best of my knowledge, and in both cases their drivers are closed-source. There really aren't any other options for most people.

        Personally I'd say go with NVidia, because they seem markedly less evil and their binary drivers seem to suck less, but that doesn't mean I'm happy about it.
        • Re:No other options. (Score:3, Interesting)

          by mrsbrisby ( 60242 )
          Just out of curiosity, who are the non-suckers? The people who bought video hardware from ... who, exactly?

          I use Matrox boards. The Xorg driver works fine with them, and I'm very happy. I bought about 10 of these dual-head G400 boards for 7$USD a piece and I've been using them a lot lately.

          Personally I'd say go with NVidia, because they seem markedly less evil and their binary drivers seem to suck less, but that doesn't mean I'm happy about it.

          Then don't. Tell them you don't want their permission to give th
        • ATI and NVidia basically have the market for aftermarket cards cornered, to the best of my knowledge, and in both cases their drivers are closed-source.

          I use Radeon 9800 Pro with DRI, driver is not perfect, but it works.
          There is no closed source software in my kernel and I use OpenGL a lot.
        • Intel (Score:4, Informative)

          by Wesley Felter ( 138342 ) <wesley@felter.org> on Sunday May 14, 2006 @06:58PM (#15331309) Homepage
          Intel publishes open source drivers for their latest integrated video chipsets.

          While people may report that some Matrox or ATI cards work fine with open source drivers, those are all old, discontinued cards. If you want to buy new hardware, Intel is basically your only choice for open source drivers.
        • by Morgaine ( 4316 ) on Sunday May 14, 2006 @07:12PM (#15331347)
          >> Does Matrox or Intel release source code to their drivers? (Is Matrox even still in the consumer graphics card business?)

          Yes, Matrox is still in the business, but they're not really competing directly against nVidia and ATI in the games market -- for example, they provide no hardware vertex or pixel shaders in their consumer cards. And yes, Matrox does release driver source code.

          I recently bought a Matrox Millennium G550 PCIe [matrox.com], and not only does it list Linux on the retail box alongside the other operating systems, but their product page proclaims it as "the world's first PCI Express graphics card with open-source display drivers for Linux and other Unix-like operating systems". And they're quite inexpensive too, which is nice.

          The drivers are in recent kernels already too, although I'm getting "drmOpenDevice: Open failed" problems at the moment so DRI is being disabled and thus 3D isn't accelerated on that box just now. I hope it's just a local misconfiguration.

          Not really sure what the status is beyond that, but in theory the G550 should have good support in Linux without needing any binary modules.
        • Go Matrox! (Score:3, Informative)

          by Tracy Reed ( 3563 )
          Matrox is definitely still in the graphics card business. I have a Matrox dual-head card in my home machine and in my work machine. They open source their drivers. X works perfectly with no proprietary drivers needed.
  • What? (Score:5, Insightful)

    by tomstdenis ( 446163 ) <tomstdenis@ g m a i l .com> on Sunday May 14, 2006 @05:26PM (#15330904) Homepage
    The drivers aren't GPL though and they don't include GPL code. They merely are compatible with GPL code. This is like saying my source files are GPLed because GCC can parse them. Or this webpage is MPLed because Mozilla can read it, etc...

    Just because the kernel can load your module doesn't mean your modules is GPLed. The way I understand the GPL is anything you derive from GPL code must be open source and what not. The drivers are proprietary and just happen to be compatible with GPL code.

    • Well, the GPL is pretty clear that it requires that GPL applications can't link to non-GPL libraries, even if they're loaded at runtime (dynamicly linked). I assume kernel modules fall into the same category. So far that scope of the GPL has stood pretty much unchallenged in court, and there's been enough silly claims that I think it would have been tried if there was an issue. In theory you could ship separate .obj files too, where some are GPL and others not but merely "compatible". I don't think that's g
      • I thought that only went inwards.

        E.g. if glibc was GPL it means you couldn't write closed source binary only software. Therefore the glibc package is LGPL which allows this.

        Now, going the otherway ... the driver doesn't incorporate ANY GPLed code. It's merely compatible with it.

        So you give out a OSS package [and the source] and then include the drivers. The package won't be GPL even though components of it are.

        I don't see the problem there.

        Tom
      • by Morgaine ( 4316 ) on Sunday May 14, 2006 @06:15PM (#15331150)
        The nVidia "shim" is licensed under the GPL and is copyright nVidia --- this means that it's perfectly legal to compile the shim against the GPL kernel. At the same time, nVidia is free to do whatever they want with the shim, and its license is immaterial to them at that point because they hold its copyright. The GPL has no say over what else the copyright owner can do with kernel-linked code, the only thing that's mandatory is that it's GPL'd, and it is. For example, it's very common for copyright holders to dual-license their own GPL'd code for commercial and highly proprietary use.

        Well, what nVidia chose to do in this case is to link the shim with their binary driver, and they're perfectly entitled to do that, by their copyright. Furthermore, since the shim and the binary driver are separate components from the kernel, they can certainly be shipped on the same CD as GPL components, as long as the binary code is not linked to the kernel. And it's not.

        So you see, by virtue of being the copyright holders of the shim and GPL'ing it, nVidia easily comply with the requirements of the GPL but aren't constrained in what else they do with it.

        If the binary module were linked against the kernel then you'd be right, but it's not. At no point in time did the binary module even get a sniff of the kernel, and it's shipped without knowing anything about it, nor viceversa.

        Yes, the dependency is contrived, but that's how the GPL forced them to rearrange their code dependency graph in order to stay on the good side of the GPL's guidelines.
    • don't they #include kernel headers that are under GPL? in other words, include GPL code. At least to build the open source part of the driver which is linked with the closed source part.
    • Re:What? (Score:3, Insightful)

      by mrsbrisby ( 60242 )
      The drivers aren't GPL though and they don't include GPL code.

      Even though I doubt that they don't include GPL code, they are certainly based on GPL code.

      Linux is under the GPL, and not the LGPL.

      This is like saying my source files are GPLed because GCC can parse them.

      Except GCC has an explicit note in its license that says that C source files that GCC (and perhaps only GCC- say using GCCisms) can compile are not automatically under the GPL.

      This doesn't negate other reasons why these C files might be redistri
      • Re:What? (Score:3, Interesting)

        "Just because the kernel can load your module doesn't mean your modules is GPLed."

        Yes, that's exactly what it means

        If your argument were correct, then it would be a violation of GPL for any distribution to make these drivers available. Yes, the major distributions do make them available for download, and no one, not even the FSF, says they are violation the GPL.

        • Re:What? (Score:3, Insightful)

          by mrsbrisby ( 60242 )
          If your argument were correct, then it would be a violation of GPL for any distribution to make these drivers available. Yes, the major distributions do make them available for download, and no one, not even the FSF, says they are violation the GPL.

          No. You're confused.

          If the kernel can load the module, it's because the kernels' source code, and the GNU toolchain were available to build it.

          Hence the reason NVidia and ATI don't distribute kernel modules, but instead a build-system that may-or-may-not be legal
      • Re:What? (Score:3, Interesting)

        by Tim C ( 15259 )
        GCC has an explicit note in its license that says that C source files that GCC (and perhaps only GCC- say using GCCisms) can compile are not automatically under the GPL.

        Ignoring the question of GCC-specific code, think about it for a second. If all source that GCC can compile were automatically to fall under the GPL, then all standards-compliant C code would automatically be GPLed. In other words, the mere existence of GCC would force all code written in C to be GPLed.

        The note isn't there to grant people an
  • by Morgaine ( 4316 ) on Sunday May 14, 2006 @05:26PM (#15330906)
    Aggregation of components is not the same think as linking, the FSF is totally clear about that. So both the GPL code and the binary code can be present together on the same medium, not linked.

    It's only when the CD is booted and the drivers loaded that a runtime image containing the binary modules linked with the kernel is created, and not before.

    Distributing an aggregation is perfectly legit, according to the guidelines for GPL v2. (Dunno about v3).
    • Perhaps, but the binary module is compiled by linking against the kernel headers, and it includes shim code which may (or may not) be derived from the kernel. This would mean that the compiled binary module (which he is distributing) could therefore be derived from the kernel, and thus would need to be distributed under the terms of the GPL.

      Why do you think that nvidia doesn't precompile their shim code too, when they distribute their kernel module. Of course, If copyright affected Kororaa, then it should a
      • by ebooher ( 187230 ) on Sunday May 14, 2006 @06:04PM (#15331083) Homepage Journal
        Perhaps, but the binary module is compiled by linking against the kernel headers, and it includes shim code which may (or may not) be derived from the kernel. This would mean that the compiled binary module (which he is distributing) could therefore be derived from the kernel, and thus would need to be distributed under the terms of the GPL.

        According to information that the originator of Kororaa received from NVidia while investigating this matter, this is not true.

        The NVIDIA kernel module consists of two pieces: a binary-only portion and a kernel interface layer (aka the "shim"). The binary-only portion is not Linux-specific (the same code is used on Windows, Solaris, etc), and does not include any Linux kernel header files when it is built. The shim is provided in source code form with the driver package, and this is the piece that is compiled for your version and configuration of the Linux kernel. The shim is the only piece that references Linux kernel data structures or macros, and only does so to the extent that is needed to provide the functionality of a modern graphics driver. After the shim is compiled, it is linked with the binary-only portion, to produce the final NVIDIA kernel module.

        NVidia states that the binary is the same binary they use in all Systems. Be they Linux, BSD, Windows, or Bob's Unknown Mini-OS. The "shim" is the glue code they write that is OS specific that makes calls into the binary.

      • by foonf ( 447461 ) on Sunday May 14, 2006 @06:05PM (#15331094) Homepage
        Perhaps, but the binary module is compiled by linking against the kernel headers, and it includes shim code which may (or may not) be derived from the kernel.

        That is not "linking" in the sense that is covered by the GPL. The kernel headers contain declarations for kernel functions, structures, and macros. They don't actually produce any object code that is linked in the binary. The binary driver is produced from two object files, one distributed binary-only by NVIDIA and one compiled from NVIDIA's shim source, which is explicitly allowed to be linked with the binary, and not under the GPL. So no mixture of proprietary and GPL code occurs until runtime, when you actually use the driver, and while that is technically a GPL violation since the kernel runs in a single address space (hence the "tainted kernel" messages) neither NVIDIA nor any distributor is liable for it.

        Why do you think that nvidia doesn't precompile their shim code too, when they distribute their kernel module.

        They do, actually, or at least they used to (for the default kernels of specific distributions). Its just that the Linux kernel doesn't have a stable binary ABI for drivers, so it is necessary to recompile it for every single different kernel version. If it was up to them they likely wouldn't distribute any code at all, just a binary module, but because of the way Linux is that isn't practical. Other distributions, including even Debian, have also distributed linked binaries of the NVIDIA kernel drivers without trouble.
  • by Anonymous Coward on Sunday May 14, 2006 @05:26PM (#15330907)
    Is there any basis in the copyright law for the claim that bundling binary drivers in the same binary
    as a GPL kernel is copyright violation, while having them as separate downloads is OK ?

    This seems like a very naive interpretation of the "derived work". Are there any laws or precedents
    that support it ?
  • It all depends (Score:5, Insightful)

    by robla ( 4860 ) * on Sunday May 14, 2006 @05:27PM (#15330912) Homepage Journal
    ...on who sent the email as to whether or not this is truly a significant event. While the person emailing may have a point (IANAL, so I dunno, the devil is in the messy details), it's a little melodramatic to make a big fuss out of this unless the person making the complaint is a copyright holder in the kernel and is issuing a cease and desist.
    • Well, who can really police and enforce the GPL other than the myriad of users out there?
        • Microsoft, with its bevy of trained IP lawyers and professional license-violation-hunters can't catch 99% of the license violaters out there; I'm not sure why you think the FSF's mostly volunteer group can do a better job. That's why the vigilance of the userbase at large is needed.
      • How can the myriad of users police and enforce the GPL when most of them do not understand it. Like in this case, I don't see any infraction and I suspect the claim of a GPL violation was made by someone who believes binary drivers are morally wrong and this was the only way they could think of to force their view on those who might do it.

        Not really a bad try since the GPL exists to force others views on what is and is not right but since the GPL does allow this whomever made the claim is wrong.
      • ...to enforce their "copy right". The users can alert the copyright holders of potential violations, but unless the copyright holders take action, nothing happens.

        Only copyright holders have standing [wikipedia.org] to bring suit.
  • Distro.

    I'm not sure why the Solaris distros haven't been shut down for similar reasons.

    http://www.gnusolaris.org/gswiki [gnusolaris.org]
    Nexenta and their apt repository of software some of which must conflict with the Solaris kernel.

    I was very tempted to start experimenting with an OpenSolaris, but there appears to be some license incompatibilities.
  • Oh no!!! (Score:4, Insightful)

    by Duncan3 ( 10537 ) on Sunday May 14, 2006 @05:33PM (#15330934) Homepage
    Someone made Linux easy to install...

    KILL KILL KILL!!! STOP THEM!!!

    Seriously, they put linkable drivers on a CD... That's 100% OK.

    Stop trying to stop Linux you Microsoft plant, nice try tho.
  • I spit (Score:4, Insightful)

    by fishbowl ( 7759 ) on Sunday May 14, 2006 @05:34PM (#15330938)
    There really isn't any fun, having to take a distro that leaves you with an 80x25 console, or a 640x480 X desktop (and I feel lucky sometimes to have EITHER of these work correctly), and from there, find and download drivers for NV or ATI, and build and boot a kernel that works with what was otherwise a working live system.

    This is really not a reasonable thing to expect from a user, not even from a user like me who has been running linux since 0.99pl1.

  • ...NOT GPL here. AFAIK, Nvidia doesn't allow ANYONE, except maybe some commercial distros, distribute their drivers with GPL software, more or less.

    There are certainly legal gotchas with such distribution as Kororaa, but my pick is that GPL is "lesser evil" here.
  • by Anonymous Coward on Sunday May 14, 2006 @05:39PM (#15330964)
    i am an idiot so here i go again.

    1) as of the new xorg there is no need for video drivers to be in the kernel.
    2) indeed the kernel people have been urging ati and nv to move their drivers out to userland.
    3) their drivers need a lot of rework to get to userland, plus they will run approx. 1% slower.
    4) neither ati nor nvidia want to lose 1% performance, let alone all the time and testing to move the code.
    5) if one moves before the other, the average gaymer, i mean laymer, oops, gamer magazine draws charts that make 1% seem like the entire frickin' page width.

    bye now.
  • What a prick (Score:5, Insightful)

    by linvir ( 970218 ) on Sunday May 14, 2006 @05:42PM (#15330978)
    Sounds like the sort of guy who sends a letter to have the local skatepark closed down when he notices that its disabled access is lacking.

    The most infuriating thing is how he goes for the puppy angle with this bullshit:

    this distribution goes against the open source spirit of linux
    The 'open source spirit of Linux' is that Open Source is supposed to enable people to stop worrying about this licensing crap. If nVidia and ATI aren't complaining, there shouldn't be an issue on our side.

    And for the most part there isn't. Which is why it's even more sad that he's actually caving to this:

    As such, the Live CD has been put on hold, until I can sort this out. If I cannot sort this out I will be forced to cease work on the Xgl Live CD.
    My overall opinion is that this Koraraa guy ought to grow a pair and wait to see what the non-basement-dwelling grownups have to say about his distro's licensing.
  • by Anonymous Coward on Sunday May 14, 2006 @05:44PM (#15330988)
    Repeat after me:
    There is no GPL code in the binary driver!

    Nobody claims there is and that's not the issue here.
    One really has to ask how this article submission could have been acceptec, especially as the way the nvidia driver works is clearly spelled out on the kororaa hompage:

            The NVIDIA kernel module consists of two pieces: a binary-only
            portion and a kernel interface layer (aka the "shim"). The
            binary-only portion is not Linux-specific (the same code is used
            on Windows, Solaris, etc), and does not include any Linux kernel
            header files when it is built. The shim is provided in source code
            form with the driver package, and this is the piece that is compiled
            for your version and configuration of the Linux kernel. The shim
            is the only piece that references Linux kernel data structures or
            macros, and only does so to the extent that is needed to provide
            the functionality of a modern graphics driver. After the shim is
            compiled, it is linked with the binary-only portion, to produce
            the final NVIDIA kernel module.
  • by rdoger6424 ( 879843 ) <rdoger6424+slash ... m ['mai' in gap]> on Sunday May 14, 2006 @08:42PM (#15331629) Journal
    Only the very old programmers violate the GPL.

    AC'd because the mods will tear me to shreds.
  • by btempleton ( 149110 ) on Sunday May 14, 2006 @10:58PM (#15332197) Homepage
    I must say I have always been bothered by the suggestion that writing code to a particular API (such as that of a kernel) could be considered a derivative work under copyright. If I write to the Windows API, have I careated a derivative work of Windows, to be owned by Microsoft?

    If you do static linking of some GPL code with your code, then it's not just a derivative work, you are actually including somebody else's code and must get their permission. But static linking is of course less and less common. Modules that call libraries are only bound to the libraries at runtime today. Code is written to APIs but bound at runtime.

    This is thus a "loophole" in the GPL, turning it into the LGPL in some interpretations, and to fight that, we see this interpretation that just writing code to an API, making use of the API definition found in header files, makes you a derivative work. I don't think this is a good interpretation for a free software movement to be pushing, even if it means some loopholes.
  • by larzluv ( 518884 ) <larzluv.hotmail@com> on Monday May 15, 2006 @01:17AM (#15332639)
    The following GPL FAQ items I believe are relevant:

    TECHNICALLY, seems the GPL prohibits what Kororaa is doing with their Live CD. HOWEVER, seems Linus would side with them. HOWEVER HOWEVER, this would have to be legally debated, in other words, "defended". There's no explicit legal protection, and to get a judgment call would require money, lawyers, and being tangled in a lawsuit.

    All of which would be silly and embarrassing both inside, and outside, of The Community.

    I, personally, am very much in favor of "completely free (as in speech)" software. Mr. Stallman may be a "stickler", but I find him heroically inflexible. The world needs MORE Mr. Stallmans who actually and honestly stand tall, stand proud for what they believe in. And I'm not kissing ass here: I share his vision, but am far weaker in my convictions.

    The pragmatist in me thinks that the Linux kernel's license should be changed to the LGPL. (http://www.gnu.org/copyleft/lesser.html [gnu.org]) I know full well, however, that this would be a huge step backward for Freedom. (Anybody saying otherwise is either [1.a] simply not intelligent enough to understand, or [1.b] hasn't bothered to consider the implications, [2] has ulterior motives, and/or [3] has a personal vendetta against RMS due to personality conflict. "Consider the messenger...")

    But PRACTICALLY, it would enable real headway on the driver/support front. I think ATI and nVidia (and every other closed-source **DRIVER** maker) is quite daft. But they have their "reasons", even if we neither know, nor understand them.

    It's laudable to DREAM of a world where all software is Free, both as in Speech AND as in Beer. Bur for now, and for the foreseeable future, we all live and work in the Real World. Unless we're friendly and play nice with the other children, most proprietary companies, especially hardware creators, may very well choose to take their balls and go home. (To those who cry, "GOOD RIDDANCE!", I ask for you to tell us all of the open-source-hardware, with accompanying open-source drivers, to replace their wares with!) Free and Open (Source) Software makes its virtues self-evident. We need not be antagonistic.

    The truth of the matter is that the hardware we want open-sourced drivers for the most is made by companies comfortably at the top of their game. They sell PLENTY of hardware to not need to worry/care about The Community one iota. They ha

  • A modest proposal... (Score:3, Interesting)

    by Anonymous Coward on Monday May 15, 2006 @04:35AM (#15333028)
    Where do you draw the line between code and data? Other posters have already pointed out that the nvidia binary "driver" is loaded by a GPL'd stub. Under that model, the driver itself is just data. Once you make that conceptual leap, it begs the question: how do you define "source code" for data?

    I'll make a brief aside here to remind you that any interpreted "program" is both code and data. To the interpreter, it's just data. The interpreter loads some text (just data), builds the parse tree (still data), and instantiates the various code objects it represents (STILL data). However, once you actually jump to an address and start executing that data, it becomes a program.

    So now I'll repeat my previous rhetorical question: how do you define "source code" for data? Here's my modest proposal:
    /* bscg -- binary source code generator
      * bscg is Copyright (C) 2006 by PUBLIC DOMAIN.
      * bscg is provided AS-IS and with NO WARRANTY.
      * There are no restrictions on use, modification, copying or distribution
      * of this program; you are permitted to change its license, provided that
      * you do not attempt to remove the ORIGINAL version from the public domain.
      */
    #include <stdio.h>
    #include <string.h>
    unsigned char buf[1024];
    int
    main (int argc, char **argv)
    {
      int i, got, count = 0;
      FILE *f = (argc < 2 || !strncmp (argv[1], "-", 2)) ?
        fdopen (0, "rb") : fopen (argv[1], "rb");
      if (f == NULL)
        {
          perror ("Unable to open file");
          return 1;
        }
      printf ("/* TODO: insert your copyright statement (e.g. GPLv2) */\n");
      printf ("#include <stdio.h>\n");
      printf ("static const char data[] = {");
      while (!feof (f) && (got = fread (buf, 1, sizeof (buf), f)) > 0)
        for (i = 0; i < got; ++i)
          {
            if (count++ % 8 == 0)
              putchar ('\n');
            printf (" '\\x%02x',", 0xff & buf[i]);
          }
      printf ("\n};\n");
      printf ("int\nmain (int argc, char** argv)\n{\n");
      printf (" fwrite (data, 1, sizeof(data), stdout);\n");
      printf (" return 0;\n");
      printf ("}\n\n");
      fclose (f);
      return 0;
    }
    Just compile this program and feed it the binary you need to "decompile". It will output a C program that you can ship as the "source code" for the binary. If you plan to ship your binary with GPL'd code, be sure to license the newly generated source code under the GPL or a compatable license. Oh yeah, and a word of warning: the source code will probably be significantly larger than the binary, even if you gzip it.

Memory fault - where am I?

Working...