Slashdot Mirror


GPL Gets Its Day in Court in Israel

MadFarmAnimalz writes "In what appears to be the first court test for the GPL in the Middle East, Alexander Maryanovsky, the author of the GPL licensed Jin Chess Client is taking IchessU to court for violations of the GPL license."

40 of 232 comments (clear)

  1. Right.... bit of clarification by LiquidCoooled · · Score: 5, Informative

    There is an open source chess client called JIN licensed under the GPL.
    This is an executable and front end chess client.

    This has been extended by iChessU to support a closed source DLL which adds new functionality (notably video streaming between players).

    The source code to the Expanded client is available and providing you have the closed source binary DLL, you can run the newly compiled program.

    Isn't this like me releasing a GPL program which is linked to the nvidia or ATI blobs?

    Hell, isn't it similar if I write a GPL application which uses the Windows API?

    I personally feel as though this is an overreaction, the ichessu site does not hide the fact its based on JIN and offers sources, or am I wrong and this is infact a genuine GPL violation?

    --
    liqbase :: faster than paper
    1. Re:Right.... bit of clarification by TERdON · · Score: 4, Insightful

      GNU about the GPL: "This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License."

      And in the license itself: "For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable."

      IMHO, that means Windows API = ok, Java API = ok, .NET API = ok, own API or library = not okay.

      And that makes sense. Otherwise I could just build all of my app in my "MainApp API" and GPL my "StartMainApp()" function call... :)

      --
      I have a really elegant proof for Fermat's last theorem. If this sig was only a bit longer...
    2. Re:Right.... bit of clarification by bloodredsun · · Score: 4, Insightful

      Nope.

      Only part of the client source code is downloadable, not the whole; this is a violation of the GPL. Also, the iChessU has an EULA which violates the GPL by placing new restrictions on how the code may be used.

      The bad faith negotations accusation may be an overreaction but it's hard not to think this when iChessU initially wanted to license JIN but backed out when it appeared too expensive for them and then proceeded to use it anyway.

      This is not an overreaction but a devloper fighting to prevent a third party assuming legal control of that developers work.

    3. Re:Right.... bit of clarification by bestinshow · · Score: 3, Informative

      The method of adding functionality to a GPL application shouldn't be the issue. Clearly the client application distributed to end users is comprised of GPL software (JIN) and proprietary extensions, and they communicate with each other.

      Clearly the fact that they asked to license the software and were refused (or offered a reasonable offer which they turned down) shows they were aware that it was GPL and wanted to license it under different terms. The fact they they went ahead and tried to bypass the license but still use the code shows extreme bad faith.

      This may be an issue with the GPL wording though, which leaves this loophole that can be exploited by proprietary developers. Turn the GPL software you want into a server, release the source to the modifications made here, then keep all your own proprietary stuff in the client that communicates with the GPL server, then ship both together to run on the user's system. Clearly the GPL needs some effort made to outlaw 'serverising' GPL code in the same way that dynamically linking or statically linking code is outlawed. Clearly the fact that someone picks the GPL over the LGPL is because they don't want someone using their code with non-Open Source code additions.

      Of course you need to allow the situation where the server functionality is explicitly added to the code base by the developer(s), e.g., something like Apache should not be restricted from serving to IE, for example (I know Apache isn't GPL, but you know what I mean). I think that this can be allowed safely, clearly the software is a server by definition, whereas a chess client is not a server by definition, and also the client and 'server' are distributed together, require each other, and run at the same time.

    4. Re:Right.... bit of clarification by bWareiWare.co.uk · · Score: 4, Informative

      The nVidia blobs and kernel stub are not GPL. The GPL Linux kernel contains no code for accessing the NVIDIA blobs.

      The process of installing the nVidia Kernel stub combines GPL and non-GPL code and compiles it on your machine. The resulting binary is NOT re-distributable under any licence. This is why Linux distributions do not come with the nVidia and ATI drivers built in, but you must install them separately.

      This workaround works because the GPL only comes into effect when you copy a program not when you use it, as long as you are not copying (i.e. redistributing) the results you are not bound by its terms.

      iChessU could use the same trick. Download the standard JIN source, download the iChessU patch and binary and compile them yourself - noone is copying the result, so the GPL is not violated. Though the resulting program contains GPL and non-GPL code and so can never be copied under any licence.

    5. Re:Right.... bit of clarification by TheRaven64 · · Score: 2, Interesting
      The question is slightly different when it comes to plug-ins, however.

      What happens if you release a GPL'd program with a plug-in API? That's fine.

      Now you release a closed-source plug-in. That's not fine, since the plug-in is a derived work of the GPL'd plug-in system; it won't work without it.

      Now, what happens if you license the plug-in API as a separate module under the LGPL (for example). The closed-source plug-in only depends on the plug-in module, which is LGPL'd. It inherits the GPL when used with a GPL'd application, but you could argue that the plug-in does not require a GPL'd program.

      Now, when you use the plug-in, you link it with a GPL'd application. This would be a GPL violation, except for the fact that the GPL only comes into effect when distributing (it is not a EULA).

      --
      I am TheRaven on Soylent News
    6. Re:Right.... bit of clarification by jrumney · · Score: 5, Informative

      You're misunderstanding the terms of the GPL as they relate to various linking technologies. There are many armchair lawyers on slashdot who like to claim that the GPL only applies to static linking, or that using TCP sockets gets around it etc. But the GPL does not contain any mention of linking technologies or what is and isn't covered, it just talks about "derived works", which is up to the courts to define. In a case where the defendant approached the plaintif about licensing their work commercially then suddenly changed their mind and wrote some dynamic linking or socket based code specifically to "get around" the GPL, I would expect the court to side with the plaintif, since the defendant has shown that they understood from the start that what they wanted to do was not allowed under the GPL, and their intention is plainly to try to circumvent copyright law through technicalities, which the judge is unlikely to approve of.

    7. Re:Right.... bit of clarification by SashaM · · Score: 4, Informative

      I personally feel as though this is an overreaction, the ichessu site does not hide the fact its based on JIN and offers sources, or am I wrong and this is infact a genuine GPL violation?

      Actually, there are several violations:

      1. IChessU's released source code does not compile, so it can't possibly be considered the "complete corresponding source code", regardless of the status of the audio/video library (which to the best of my understanding of the GPL is also covered by it).
      2. IChessU do not release their application under the GPL, but instead under a horrendous EULA. Read it, really.
      3. Although they do mention Jin, they don't mention my copyright. Instead it's "Copyright (C) [2006] [unknown]", as if they don't know whose copyright Jin is.
      Alexander (aka Sasha) Maryanovsky.
    8. Re:Right.... bit of clarification by arose · · Score: 2, Insightful
      Consider point 1. They are required to provide the corresponding source code of the "derived work", but what constitutes a "derived work" and what constitutes "mere aggregation" in GPL terms is a philosophically open question.
      It may be a philosophical question in some ways, but the fact that a binary compiled from GPL code is such a derived work should be pretty clear, so let's look at the "corresponding source code" side:
      For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable.
      As I read that it means that it should compile and if the original author can't compile the code then it sounds suspect to me.
      Software to support video communications over the internet doesn't sound to me like it's inherently Jin-derived, regardless of whether it happens to sit next to Jin in a pretty window or whether its class files are aggregated alongside some modified Jin class files.
      And to me it sounds that the seperate programs didn't cut it in terms of integration and they were forced to do it in one. The GPL couln't stop them from making a chess program and a video communication program that work really good together, yet they clearly didn't take this route.
      --
      Analogies don't equal equalities, they are merely somewhat analogous.
  2. No it's not by brunes69 · · Score: 5, Informative

    Isn't this like me releasing a GPL program which is linked to the nvidia or ATI blobs?It isn't, because ATI and NVidia do not link to the kernel. The portions of the NVidia and ATi driver that *do* link directly to the kernel (also known as the "kernel stub"), are indeed GPL. What happns, is the closed source X driver communicates to and from the stub indirectly, not via linking.

    It's actually just a different DRM/DRI implementation, which nearly all X drivers use nowadays.

    Note in this case DRM does not mean "Digital Rights management", it means "Direct Rendering Manager"

    1. Re:No it's not by TheRaven64 · · Score: 2, Informative

      A windows driver takes commands saying things like 'draw a line between points a and b in 3D space.' A Linux driver also takes commands saying the same sort of thing, but with a different call syntax (GDI Vs X11, Direct3D Vs OpenGL, etc). The code actually responsible for drawing the line (or copying a texture to the graphics RAM, or whatever) is the same on both platforms, but there is some glue code required which translates between the platform's public APIs and the hardware's functions.

      --
      I am TheRaven on Soylent News
  3. In a way, this is very lucky timing for GPLv3 by H4x0r+Jim+Duggan · · Score: 2, Interesting

    It's great that we will get the benefit of this ruling during the year when GPLv3 is being written. This sort of thing provides great suggestions for what should be clearer or worded differently.

    1. Re:In a way, this is very lucky timing for GPLv3 by Watson+Ladd · · Score: 4, Insightful

      Why are laws written in english anyway? English is ambiguous, and that's a bad thing. Why not some formal law language with clear semantics and syntax?

      --
      Inventions have long since reached their limit, and I see no hope for further development.-- Frontinus, 1st cent. AD
    2. Re:In a way, this is very lucky timing for GPLv3 by russ1337 · · Score: 4, Funny

      We ocasionally need management to understand it.... (it should be written in colours and cartoon pictures of small animals..)

    3. Re:In a way, this is very lucky timing for GPLv3 by RoboRay · · Score: 3, Informative

      By law, at least in theory, laws are required to be understandable by the general public. Otherwise, ignorance of the law would be a valid defense. If the laws were written in some "law language" that only lawyers and judges understood, they could just tell you that the law said whatever they wanted it to say. How would you know they were lying to you and abusing the system?

      Of course, at least in the US, the law may as well be written in different language because even the law-makers don't generally understand what they're voting on.

    4. Re:In a way, this is very lucky timing for GPLv3 by paskie · · Score: 2, Informative

      Clear semantics and syntax reduces flexibility. This way it can be better applied to very diverse scale of real-world situations, based on the judge's judgement of the "spirit" of the law. Of course the cynical self must add "applied in a way sought by the party with a better lawyer", but I believe that in reality it's usually not really nearly that bad.

      --
      It's not the fall that kills you. It's the sudden stop at the end. -Douglas Adams
    5. Re:In a way, this is very lucky timing for GPLv3 by Haeleth · · Score: 3, Funny

      I vote C/C++.

      Oh, great, as if our current laws weren't bad enough, now we get to have them written in an unsaf
      Segmentation fault (core dumped)

    6. Re:In a way, this is very lucky timing for GPLv3 by kripkenstein · · Score: 4, Interesting

      Why are laws written in english anyway? English is ambiguous, and that's a bad thing. Why not some formal law language with clear semantics and syntax?

      There are very good reasons why this is impossible. Actually, what you are proposing is a very natural notion, that sadly turns out to be wrong. I say 'natural', because during the first third or so of the 20th century, philosophy (of language, in particular), was seeking exactly what you are driving at - a 'pure' language, free from ambiguity. This would have had benefits for legal matters, as well as philosophical ones, and even metamathematical implications. But this was shown to be a futile attempt (Wittgenstein being the major figure showing this). I'll briefly summarize why this is so.

      First, when you refer to human-related things - as laws are, they mention e.g. 'assault', 'homicide', and so forth - there is no way to 'clean up' the language. It cannot be made unambiguous, because the underlying concepts are ambiguous. Try to define (as the famous example goes) 'game'. For any suggested definition, there are counterexamples (e.g. not all games are about winning or losing, not all games have scores, not all games are fun, etc. etc.). This is a simple consequence of the fact that life is complex - we use the word 'game' in many contexts, in many ways. Unlike in math, where we start with definitions, in the law we start with pre-existing human concepts and try to work with them. We therefore cannot arrive at unambiguous statements.

      Second, and this is a more subtle issue, language is meaningless without a context of use. By this I mean, that if you see some scribbles on a page, they are worthless without someone to read them. A sentence + a reader are what is necessary for 'meaning' to exist. Thus, even if we write what we believe to be unambiguous text, we can never remove the element of the reader: for us, the statement is unambiguous, but for another person, with a slightly different mindset, it may not be so. You may claim that your interpretation is 'correct', but that will not avail you when a matter is put before the public, i.e. open to interpretation by many people, as the law must be.

      Sorry to go on at length, but this is a fascinating topic for me.

  4. generous offer by backwardMechanic · · Score: 3, Insightful

    Is it just me, or does $4k sound very cheap for full rights to the source code?

  5. Re:GPL==RIAA by tehcyder · · Score: 3, Funny
    This proves the GPL is no different than the RIAA.
    MOD ME DOWN!!!!!!!!!!!!
    No, this proves the RIAA is no different than the GNAA.
    MOD ME UP!!!!!!!!!!!!!
    --
    To have a right to do a thing is not at all the same as to be right in doing it
  6. GPL doesn't need to be tested. by Kidbro · · Score: 3, Informative

    Here we go again... GPL doesn't need to be tested in court. GPL doesn't restrict you from doing anything. The only thing GPL does is to allow you to do some things with copyrighted work - such as, under certain circumstances, distribute said work even if you are not the copyright holder.
    What's being "tested", if anything, is copyright laws. And I believe that we all can agree on the fact that they are already, if nothing else, fairly tested in court.

    1. Re:GPL doesn't need to be tested. by Decameron81 · · Score: 3, Informative
      "GPL doesn't restrict you from doing anything."


      Actually it does. Or can you merge GPL code and non-GPL code in a single codebase? This is a restriction of how you can use the code you obtained through the GPL license.
      --
      diegoT
    2. Re:GPL doesn't need to be tested. by FooBarWidget · · Score: 4, Insightful
      Actually it does. Or can you merge GPL code and non-GPL code in a single codebase? This is a restriction of how you can use the code you obtained through the GPL license.

      That is not a restriction that GPL adds: you never were allowed to do that in the first place. Suppose the code is not under any license, then standard copyright law applies. And copyright law does not let you copy that code to your code AT ALL.
  7. Doesn't matter by brunes69 · · Score: 4, Interesting

    Pipes, temp files, sockets, none of these are covered by the GPL. The GPL covers explicitly *linking only*. If a GPL'ed piece of software could not communicate with a closed source piece of software over a socket or pipe, the Apache web server would not exist.

    To be specific - I am pretty sure the drivers use either a UNIX socket or a named pipe.

    1. Re:Doesn't matter by brunes69 · · Score: 2

      Yeah, but if a GPL web browser connected to it to view a web page, that would be causing Apache to be voilaitng withe GPL since it is communicating with a GPL app over a socket!

    2. Re:Doesn't matter by mrchaotica · · Score: 2, Insightful
      To be specific - I am pretty sure the drivers use either a UNIX socket or a named pipe.

      That's a pretty extraordinary claim, given that the graphics card drivers should be some of the highest-performance ones in the system. I would have thought that they, more than anything else, would require direct linking. Anyway, do you have a citation that supports your statement?

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

    3. Re:Doesn't matter by SashaM · · Score: 2, Informative

      Pipes, temp files, sockets, none of these are covered by the GPL. The GPL covers explicitly *linking only*. If a GPL'ed piece of software could not communicate with a closed source piece of software over a socket or pipe, the Apache web server would not exist.

      Umm, could you clarify what you mean? Apache is Apache-licensed, not GPL, is it?

      I also don't see where the GPL refers specifically to linking. According to my reading of the GPL FAQ entry on mere aggregation, if the two pieces communicate data which is internal and specific to the GPLd piece, the other piece is also covered by the GPL. This means, for example, that you can't wrap a GPLed program in a network API (RMI and such) and extend it while keeping your extensions proprietary.

      Alexander (aka Sasha) Maryanovsky - the author of Jin.

    4. Re:Doesn't matter by Anonymous+Brave+Guy · · Score: 2, Interesting

      According to my reading of the GPL FAQ entry on mere aggregation, if the two pieces communicate data which is internal and specific to the GPLd piece, the other piece is also covered by the GPL.

      Perhaps that was just an unfortunate choice of words, or a small language barrier if you're not a native English speaker. However, unless your law works very differently to most, you can't force anyone else to licence their code in any specific way, including under the GPL. To say "the other piece is also covered by the GPL" would therefore be wrong.

      Of course, it may be a copyright infringement for them to use your (GPL'd) code in their product if their code is not released with a compatible licence, but that has very different implications. If they're infringing your copyright, a court might be able to issue an injunction banning the use of your code and/or award you compensation, for example. However, the code behind "the other piece" hasn't magically become licensed under the GPL, and no-one has any magical rights to see/reuse the source code.

      (IANAL, don't get legal advice from Slashdot, etc. etc.)

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  8. Re:Great. by Jessta · · Score: 2, Insightful

    Yes, it does. If the developer wanted the source code to be able to be used in commerical non-free applications then he would have released it under the BSD licence.

    --
    ...and that is all I have to say about that.
    http://jessta.id.au
  9. Further information by kripkenstein · · Score: 4, Informative

    I happen to know Hebrew. Some more information from the Hebrew documents is the matter of money; the Jin programmer is requesting 20,000 NIS (about $4500) as 'damages' (for the violations made so far). This is perhaps an initial offer for settlement. Note how the $4500 is just higher than the $4000 he initially wanted from them (which seemed more than fair to me, personally).

    In the lawsuit, it is mentioned that in Israeli law (which I cannot confirm or deny, I have no idea) the minimal fine possible for this type of offense is 10,000 NIS (about $2250).

    I can translate other parts of the Hebrew documents if anyone is interested.

    1. Re:Further information by SashaM · · Score: 3, Informative

      Umm, actually, that is false. We are asking for a total of 110,000NIS (about $25,000).

    2. Re:Further information by SashaM · · Score: 3, Informative

      Am I right in understanding that you want 11,000 NIS (about $2250) for each screenshot of your software that appears on their site?

      10,000 NIS per screenshot, not 11,000. I realize it sounds funny asking damages for screenshots, but the Israeli law only allows between 10k and 20k of damages per violation. We are also suing via a legal "fast track" (otherwise it'd take years to get a decision) where we must ask for minimum damages. So, without the screenshot damages, I could be looking at spending the same amount of money on the lawsuit as the potential damages. Plus, after a couple of weeks of futile attempts to explain to Mr. Rabinovich that he is wrong, and him basically telling me to fuck off, you could imagine I'm a bit pissed and want to nail him for everything he has.

      Alexander (aka Sasha) Maryanovsky.

  10. Better Jin link (I'm the author) by SashaM · · Score: 4, Informative

    Although the content is currently the same, the real URL of my Jin website is http://www.jinchess.com (could an editor please fix it - I think it can handle the residual slashdotting). I'll now get back to reading everyone's comments and reply where I can :-)

  11. It all depends on the manner of linkage by Morgaine · · Score: 2, Informative
    I believe that the FSF have stated on various occasions that while they would *like* GPL virality to extend to all methods of linking, "unfortunately" they can't enforce that for dynamic linkages, notwithstanding what it says in the license.

    The reason for this "problem" or "benefit" (depending on your philosophy) is very simple. Dynamic linking is done against an interface, and interfaces cannot be copyrighted because they are the key mechanism for interoperability. There are decades of case law enshrining that principle. (Don't forget that we benefit hugely from interoperability too.)

    The GPL is a copyright license (not a EULA), and it cannot claim copyright on the interface to which separate applications are coded. As a result, the GPL has no copyright mechanism for "bridging the gap" between a dynamic library file and an entirely separate application which uses its interfaces. (Otherwise SCO too would have a case that all Linux apps are derived works of Unix, just because they use the same interfaces --- fortunately it's not so.)

    And it gets worse (or better). The fact that such an application can be made to work against *ANY* other dynamic library that satisfies the same interfaces reinforces the exclusions for interoperability. Add to that the fact that no COPYrighted material ever actually gets copied, and you see why GPL enforcement is limited to two clear cases:
    • code derived by ancestry -- the new source code physically contains elements of GPL'd source code within it, with or without modification -- so that the laws covering derived works can be applied (in this case the GPL license transfers to the new code by inheritance); or
    • code inclusion by static linking -- the new source code does not contain any GPL'd source code within it, but the distributed binaries physically contain GPL'd code brought in by the static linkage -- so that the copyright laws which cover copying can be applied (in this case the GPL license transfers by the GPL'd code being physically bound to the new code and distributed along with it).
    Both of the above cases are quite clearcut to apply, and hence supposedly safe.

    The other major case (dynamic linking, in which no copyrighted source code has been used and no copyrighted binaries are included) is shrouded deep within the darkest clouds of uncertainty, since there is no legal mechanism by which the copyright can transfer to mere client code which is coded to a non-copyrightable interface.
    --
    "The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
  12. Not pipes or sockets ... merely source by Gopal.V · · Score: 2, Interesting

    I've been watching the kororaa project for a while, ever since we did one tandem session with XGL and OS X on two machines, watching XGL rule - especially in the video across cube faces demo. But a few weeks later, the developer announced that he's stopping Kororaa because of GPL issues with properietary drivers. And here's a reply by the FSF.

    Now, the point to note here is that GPL is redistribution license. The way the nVidia folks handle it is to give the user some code, a binary blob and effectively tell them to build it themselves. The code they distribute does not link to the Linux kernel *yet*, while the binary blob is the closed source bit. Now, what the user does is to link them all up and there you go - which is not the distributor's fault. And this works because they are not redistributing any code that is copyrighted by a Linux kernel author (for example laf0rge).

    The whole model makes the user violate GPL in principle, while the distributor (i.e nVidia) is in the gray area of legality. This is of course, my understanding from following up all this (and then had an argument with a paralegal @ work about GPL).

    But I could be wrong you know ...

    1. Re:Not pipes or sockets ... merely source by Hellkitten · · Score: 2, Interesting

      The whole model makes the user violate GPL in principle

      Actually, since the end user doesn't distribute anything there is no violation there. So the end user is still in the white. Depending on the interpretation of the GPL Nvidia may be in a gray/black area.

      --
      - We are the slashdot. Resistance is futile. Prepare to be moderated -
  13. Case rules can handle much of law by Morgaine · · Score: 2, Informative

    >> Why not some formal law language with clear semantics and syntax?

    Several people have written objections to youe suggestion here, but computer-based solutions are easy to find if you use a reductionist approach and don't try to do *everything* mechanically.

    The simplest and most powerful approach by far is to apply formal semantics by case, not by generic mathemetics: For each area of legal engagement, a large number of highly specific case rules are defined and given a priority to define the order in which they are applied, with each one capable of matching only one very narrow situation. Separately from this you define a set of legal outcomes (independent of the case rules!!!), and causal links are only then drawn from the case rules to the case outcomes.

    This can be made as deterministic a system as you like, merely by narrowing the scope of each case rule. Needless to say, if no case rule matches then the case pops out of the bottom to be handled by a human.

    This addresses the ambiguity problem by each case rule being extremely specific, and allows lawyers to enter the loop for unmatched cases given by hard or undefined problems. It addresses comprehensibility by the public by allowing a worm's eye of the problem, one case rule at a time, and by allowing your own computer to "scan the law", which is otherwise impossible unless you practice law yourself.

    Of course, anyone who has worked in AI or expert systems will recognize that the above is just a logic system, only expressed in a way that doesn't blow the mind. Well, that's good. :P

    There's always a way, if you want to find one. The trouble is, such a mechanism would require endorsement from the legal profession ... and that of course would not be in their interests.

    --
    "The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
  14. I don't think that's right... by TrekkieGod · · Score: 2, Informative

    That's not right...intentions have nothing to do with it.

    You can license your code any way you want. If you want to license part of it as gpl, write a dll that is meant to work with your program only, but license it in a proprietary form, than release that stuff together with only the source code for the part that talks to the dll, you're fine. RMS would probably show up on your door holding a bat, but his lawyer won't be with him.

    The license limitations don't limit what your gpl code can do, they limit what people can do with gpl code. So, if someone grabs the source code to a dll, and dynamically links to that with their non-gpl-compatible-licensed program, they are in violation of the gpl license for the dll, which doesn't allow that. However, if you're writing gpl code, you can link it to whatever you want, as long as the other license allows that. If the other license says you can't link it to gpl programs, you're screwed, but API's usually allow you to link to them, because they'd be useless if they didn't.

    --

    Warning: Opinions known to be heavily biased.

  15. nVidia clarification by ajs318 · · Score: 2, Insightful

    First point, the GPL does not forbid anything. It is a licence -- it only gives you permission to do something you would not ordinarily be allowed to do.

    The Law of the Land gives you only very limited permission to copy a program (see "fair use" or "fair dealing"), and would ordinarily take a dim view of you distributing copies. The GPL gives you permission above and beyond your fair dealing rights (which are determined by the courts) to do certain acts dependent on certain conditions. One of the permissions granted by the GPL is to make and distribute copies, gratis or for money, as long as you ensure that everyone who receives a copy of a program from you receives the same permissions as you (hence the requirement at least to mention the GPL), and can exercise them meaningfully {hence the requirement to make source code available).

    The nVidia drivers are supplied as a closed-source binary blob, which is distributed under a restrictive licence; and a GPL wrapper which implements an interface between the kernel and the blob. The addresses of things in the Linux kernel are subject to change from one version to the next; but you can find out what is where from files that are generated during the compilation of the kernel. The addresses of things in the nVidia binary blob are also subject to change from one version to the next; but only nVidia know what is where. So nVidia provide the source code for a wrapper that interfaces between the kernel {where addresses of functions can be determined from system files} and the binary driver {where addresses of functions are hard-coded into the wrapper}. nVidia can legally do this because they own the copyright on both bits: the Law of the Land does not prevent a copyright holder from making derivative works. The GPL grants you permission to enjoy, study, share and adapt the wrapper. In order for it actually to be any use, however, you need the binary blob (which, being pure x86 machine code and talking only to graphics hardware, does not depend on a particular OS). The combination of binary blob and GPL wrapper constitute a derived work. You are right that the GPL does not grant you permission to make such a derived work. However, that's irrelevant. The Law of the Land grants you permission to make this derived work, because that is a necessary step in making use of something you legally own -- and therefore constitutes fair dealing.

    Once you have combined code covered by two different licences, you are bound by both licences. The GPL demands that you at least offer to distribute source code if you distribute anything, whereas the nVidia licence does not grant you access to the source code and would not let you distrubute it even if you had it. So, unless you live in some jurisdiction where the Law of the Land grants you access to the source code, the only way to satisfy both the GPL and nVidia licences is not to distribute the code produced by combining the GPL wrapper with the closed-source blob.

    For what it's worth, I think nVidia are scumsuckers and I hope their binary blobs are reverse-engineered. But the law seems to be on their side.

    --
    Je fume. Tu fumes. Nous fûmes!
  16. How I would fight the GPL by Sloppy · · Score: 2, Insightful

    If I wanted to write a program that integrated with GPLed software but did not want release my code under GPL, here is what I would do.

    My strategy, instead of looking for loopholes in GPL's terms or figure out what is permitted, would be to completely avoid getting bound by the license. If I do not accept their license, then no lawyer is going to be able to make arguments about whether I complied or not. Don't fight on their terms. Don't let any of the text in their license be admissible or relevant.

    The key to doing this, is to forget that the code you want to integrate with, is GPLed. Forget you have any extra rights that you might exploit. Assume that the code you're depending on has the tightest, most restrictive and hostile license that exists. Handle integration with a GPLed chess program, the exact same way that you would handle integration with Microsoft Excel. Ask for no favors other than whatever is allowed by copyright law.

    To do that, the two major hurdles are:

    • My code should not be a derivative work.
    • My code's distribution package should not also contain the GPLed code. Don't distribute their code at all.

    If you can accomplish those two things, you avoid the license, and therefore it doesn't matter what kind of license it is, and it doesn't matter whether or not the terms of that license would permit whatever you're doing.

    I'm not 100% sure what the legal definition of derivative work is, but I do know that you find out by asking your own lawyer instead of FSF's lawyer. As soon as someone at FSF starts talking about what they permit, you know they're talking about their license instead of copyright law. And you need to concentrate on copyright law.

    One thing you can infer from the market overall, is that calling someone else's program does not make yours a derivative work. Even if you call the other work in a way that your program 100% totally depends on it and has zero worth without the other work, that doesn't make your program a derivative work. How do we know/infer this? From the proprietary software market. In spite of various projects like WINE, it's pretty safe to say that no Windows applications have any use outside of MS Windows. They simply don't run. If WordPerfect for Windows were a derivative work of MS Windows, don't you think Microsoft would have sued WordPerfect in order to squash the competition? Of course they would have. So don't worry about calling APIs.

    And it doesn't matter how public the API is. Especially in the DOS days, there were all sorts of programs that did very intimate things to MSDOS's internal structures (e.g. disk managers, many many TSRs, etc) and nowdays on MS Windows you see some of this with the AV products. But surely McAfee's AV program is not a derived work of MS Windows. So don't worry about calling or the intimacy of calling. To avoid being a derivative work, just make sure you don't use any of the other guy's code.

    Packaging. This is the tricky one. It's hard to sell a program that doesn't work on its own. The amusing thing here, is that with Linux, there are all sorts of packaging systems provided by the distributions, such as apt-get or emerge, that will solve this for you. If I wanted to write a proprietary program for Gentoo that depended on some GPLed stuff, it would be really easy to to just ship an ebuild that tells portage about the dependency, and it would get installed automatically when the user wanted to install my program. Then I wouldn't have to ship any of their stuff.

    MS Windows (and MacOS AFAIK) doesn't have any sort of automatic generic get-and-install-all-the-dependencies program. (That makes it actually harder to defeat the GPL on Windows than on Linux.) Of course, you can probably just ship your Windows app with an installer than downloads and installs the dependencies, but support and maintenance would be tricky. And it would be

    --
    As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.