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

 



Forgot your password?
typodupeerror
×
The Courts Government News

Abusing the GPL? 771

Anonymous with good reason, a reader would like to bring this important question to your collective attention: "Our (technically savvy) lawyer has advised my company that 'incidental resources' do not a work derive. For example: If I have a student's version of a development environment whose license does not allow me to distribute code compiled with it for commercial use, I am legally allowed to use the environment to create my ANSI C++ code, which, when I compile it with GCC, I am free to use to whatever commercial end I like. This seems fairly intuitive. (After all, you could have written the same thing in a text editor, and the debugging, etc, that you need the IDE for doesn't actually 'show up' in the final code). Here's the kicker: My company wants to translate this to an abuse of the GPL and has been advised 'full speed ahead!'"

"How, you may ask?

Integrate the highly useful GPL code we're eyeing into our only slightly more complex (but much more lucrative) project, thereby saving us at least 30% of the coding involved. The company then go all the way to production with it, but instead of finally compiling the actual project for distribution, they instead compile a bunch of incomprehensible gobbledygook that just happens to compile to the same bytecode. You know the game: globally replace every function name, variable name, and so on from our code with nonsensical names (or random characters), remove all of the comments, and any other form of obfuscation they can introduce. They will then GPL the obfuscated gobbledygook, which isn't much more useful to anyone than reverse-engineered bytecode would be (it is a complex project). 'Voila!' All the benefits of a huge GPL project and countless thousands of volunteer hours and unreadable, incomprehensible source tree.

For the record: I
do not think this is right yet, I have not been able to find any precedent for why the GPL should protect against this kind of abuse.

I'm not trying to snitch on my company -- or lose my job, which is why I am posting anonymously -- but hopefully some lawyers out there could point out some iron-clad
legal reason preventing this sort of thing. I've read the GPL through at least a dozen times since yesterday, and so far it looks like our lawyer is right. I have not found any relevant linkage either, as I have mentioned. Links to extended legal analyses of the GPL from a technical standpoint (if any exist) would be the most helpful. All help is appreciated."

This discussion has been archived. No new comments can be posted.

Abusing the GPL?

Comments Filter:
  • Obviously an IANAL comment but to me it just sounds dead wrong.

    What you should do is put it as "What would Microsoft do". If you too microsoft's code and decompiled it and then changed a few names and recompiled it would they sue?

    Would you company risk taking on Microsoft? If they would then tell them to go ahead and violate the GPL. If they wouldn't ask them why they feel they can get away with taking on someone smaller.

    If you find another job please let us know who it is is doing this.
    • by Anonymous Coward
      Although logicaly it doesn't sound like a violation of the GPL because you still can see the source code. I question the motivation. How would this benifit your company? The source will still compile right? It still can be obtained free. right? This just seems silly. The problem people have making money off of GPL'ed software lies not in the open source code but in the fact that people can get for free what you are trying to sell.

      I mean when was the last time you looked at the source of a project that you just wanted to use, not develope.
    • Sounds to me like they are taking someone elses book, changing the names of all the characters and places (leaving the other words exactly as they were written), then including it as a part of a larger book, maybe writing the beginning and ending...with the original book in the middle...
    • Look, there IS another option.

      Without knowing the details of what GPLe'd application is involved, it's hard to give good advise, but you may be able to talk to the authors of the code to re-issue the code under an additional license. Maybe the authors would be willing to release the code under the BSD, LGPL, apache, or other license in exchange for a few bucks...

      Of course if this is really old GPL with hundreds of authors this becomes difficult. You would need approval from all the contributers.

  • by Fulcrum of Evil ( 560260 ) on Wednesday March 06, 2002 @09:32AM (#3117722)

    If you take some code and switch out all the variable names and change the spacing around, it's still the same code. If your lawyer is advising you differently, I'd be very suspicious of his motiviations.

    • If you take some code and switch out all the variable names and change the spacing around, it's still the same code.

      Afraid not - the GPL gives you the right to change the code as long as you release the changes; the fact that it's changed to code that won't make any sense without a truckload of aspirin and coffee doesn't matter. It's not very sporting of them to do this, but I have a feeling it'll even out in the end - they'll lose the comprehesible copy of this, they'll want to come out with a new version and be faced with the awful task of trying to remember what the hell they did.
      • He's not talking about changing the original source. He's talking about compiling the source to bytecode, then decompiling it to their obfuscated language, then releasing the source post-decompiler. They still have the source they sent to the bytecode compiler -- and under the GPL they're obligated to release it (as the "preferred form" for changing the program).
      • That's actually not going to be very difficult. Their clean version is in some source repository somewhere, they make changes on the original code and only run an obfuscator on the source before the compile, it could be built in to their make process.


        I guess the chances of this AC blowing the whistle are slim, and if he/she doesn't do it, it's likely that this place will get away with this bullcrap. There are times to stand up for your principles, and while I don't fault him/her for not wanting to lose a job, I hope that if I'm ever in that situation I'll be strong enough to do the right thing.

    • I agree. The way I see it, the two things GPL requires you to do above all else are:

      1. maintain the GNU licensing that was there when you got it.

      2. if you (re)distribute changes, you must at least distribute those changes as source code.

      I understand that their actions make the source "unfriendly" but if it compiles, then I can fire up (g)cc and recreate the same binary that you have. Maybe even compile on a different platform. I don't see how this violates the spirit of the GPL, since there are no provisions in it for the quality or readibility of code. It's primarily designed to protect the openness of the code, not to protect the usability of it.

      • by Chris Burke ( 6130 ) on Wednesday March 06, 2002 @10:11AM (#3117968) Homepage
        I don't see how this violates the spirit of the GPL, since there are no provisions in it for the quality or readibility of code.

        The "spirit" of the GPL is about being able to make modifications to the code. That is one of the rights that the GPL is trying to preserve. It isn't just about being able to get a free copy of the code you can compile (and if you're lucky for different platforms).

        As at least a dozen other posts under this article have already said, there is language in the GPL providing for quality -- or at least editability. The source must be in the "preferred form" for editing. Because releasing a .asm file that is just the disassembly of your binary isn't very useful for preserving the right to modify the program. Neither is deliberately and cleverly obfuscated source.

        The authors of the GPL understood that "openess" depended on at least the level of usability that was present when the code was written. Hopefully we've cleared this up (and this guy's company lawyer has been sacked).
        • by earlytime ( 15364 ) on Wednesday March 06, 2002 @10:52AM (#3118295) Homepage
          from the GPL:

          "The source code for a work means the preferred form of the work for
          making modifications to it. 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."

          I interpret this to mean something equivalent to ASCII, depending on platform. Or the form of source that is usually sent to the compiler, or the form of source that the (original) developer is accustomed to working on. In other words, C source code, not XORed EBCDIC, nor a JPEG of the ASCII source, nor a stereogram, nor a t-shirt with a poetic interpretation of the algorithm used(ala DeCSS).

          IANAL, so it's really up to a judge to decude what exactly this means. But i think that obfuscated source is just as good as well-documented cleanly formatted code for satisfying the GPL. Obviously the clean source is preferred, but not required.
      • by renehollan ( 138013 ) <rhollan@@@clearwire...net> on Wednesday March 06, 2002 @11:07AM (#3118393) Homepage Journal
        if you (re)distribute changes, you must at least distribute those changes as source code.

        The GPL does address the issue of what constitutes "source code" at some length. From section 3:

        The source code for a work means the preferred form of the work for making modifications to it.

        I'd hardly think that obfuscated source would qualify as "the preferred form of the work for making modifications to it."

  • by horse ( 70241 )
    Speaking only for myself, here. I would resign immediately, and report the abuse to the FSF.

    Life is too short to work for lowlife scum.
    • And then what? (Score:3, Informative)

      by IPFreely ( 47576 )
      So he reports it to FSF. Then what?

      The primary question of the article was "Is this legal or actionable with respect to the GPL?"
      Even if the FSF knew about it, what could they do? There has to be a clear violation of the wording of the GPL, not just some gut reaction.

      So the question stands: What can be done about this type of situation given what we know?

      If there is something that can be done, then talk about reporting them.

      FWIW: The BSD advertising clause would require at least one comment remain in the code, the original authors name. That would at least give someone a hint as to where the code came from when trying to interpret the "garbage" source.

    • Until they actually release this code, there's nothing the FSF (or anyone else) can do. Talking about copyright violations isn't a crime, and there's a good chance management will come to their senses. As long as these people don't do anything immoral, I don't see anything wrong with working for them.

      Threatening mass resignations from engineering, btw, is one tactic I'm currently seeing used to prevent a GPL violation at another company. Buyer's market though engineering talent may be right now, I expect it'll be effective -- turnover is just too expensive. Quitting right away (as soon as idea is raised) -- simply put, why?
  • Spirit of the law (Score:3, Interesting)

    by Chardish ( 529780 ) <chardish.gmail@com> on Wednesday March 06, 2002 @09:34AM (#3117733) Homepage
    Countless times in the courts have cases been overruled/thrown out because they violate the "spirit of the law" - which is a general non-loophole clause that applies to just about everything.

    So these people violate the "spirit of the GPL." Throw that at them in your court case. Cite other cases (esp. intellectual property cases) in which a decision was made based on the "spirit of the law."

    -Evan
    • by _DMan_ ( 105238 )
      Except that the GPL is not a law, it is a license.

      If there is any "spirit of the GPL", it should be explicitly stated as part of the license.
  • by phr2 ( 545169 ) on Wednesday March 06, 2002 @09:35AM (#3117740)
    The GPL explicitly defines source code as the preferred form of a program for modifying it.

    To find out whether the gobbletygook you distribute is source code or not is simple: if you normally add features to the program by editing the gobbletygook, it's source. If you instead edit the stuff that you compiled to gobbletygook and then recompile it, then the stuff you distributed isn't source and it's a clear-cut GPL violation.

    • by fizbin ( 2046 ) <martin@s[ ]plow.org ['now' in gap]> on Wednesday March 06, 2002 @09:47AM (#3117826) Homepage

      Why did it take so many posts for someone to point this out? Do people not read the GPL?



      What a day to be without moderator points...



      For those too lazy to read the whole thing, read section three, point #3 [gnu.org] very carefully. Just because something compiles does NOT mean that it is source according to the GPL. That you would not do development on the obfuscated gobbledegook clearly shows that the obfuscated version is NOT the preferred form for modification. I would be highly suspicious that your lawyer is insufficiently anal when reading contracts if they missed this.



      As for precedent, can anyone find a discussion of GPL'ed yacc/bison grammars? This would fit exactly the case above - the original source that must be distributed is the .y file, not the result of compiling the .y to a .c file. Unfortunately, I don't think that anyone has ever been tempted to rip off a GPL'ed grammar.

      • by asobala ( 563713 ) on Wednesday March 06, 2002 @10:04AM (#3117934) Homepage
        I would be highly suspicious that your lawyer is insufficiently anal when reading contracts if they missed this. Am Not A Lawyer? :-P
      • by Sir Robin ( 9082 ) <slashdot_1207@@@theclapp...org> on Wednesday March 06, 2002 @10:32AM (#3118120) Homepage Journal
        Section 3 also mentions: The source code for a work means the preferred form of the work for making modifications to it. 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. [Emphasis mine.]

        So, not only do that have to release the unobfuscated code, but they have to release the scripts that obfuscated it. What fun! :)
      • by mpe ( 36238 ) on Wednesday March 06, 2002 @11:07AM (#3118397)
        Just because something compiles does NOT mean that it is source according to the GPL. That you would not do development on the obfuscated gobbledegook clearly shows that the obfuscated version is NOT the preferred form for modification.

        Also how is the obfuscated version going to be produced. Either feeding the source through some for of obfuscating preprocessor or decompiling the object code would simply be creating a derived work anyway.
        Effectivly you'd be trying to argue that you wern't infringing copyright because you scramble and/or encrypt before you distribute. You'd need a very good lawyer to convince any judge with this kind of argument.
      • by SPYvSPY ( 166790 ) on Wednesday March 06, 2002 @12:18PM (#3118838) Homepage
        First of all, IAAL. Second, the GPL's definitional distinction between source and object/executable form relies on two key terms that cannot be objectively measured: "preferred" and "normally". I defy you to provide me with objective metrics for measuring what is "normally distributed...with the major components...of the operating system on which the executable runs." Equally imnpossible is a definitive response to the question "what is the preferred form of the work for making modifications to it?"

        In order to impart meaning to the GPL distinction between source vs. object/executable, one must go on a fact-finding parade to measure industry practice, and other wishy-washy standards. In the context of a dispute over a GPL'd bit of code, you can be damn sure that the GPL will collapse under the weight of this fact-finding process, and that the party with more patience and money will win that battle.

        There are some things that lawyers understand better than geeks, believe it or not. We are (generally) excellent at spotting weakness in prospective arguments. In the case of the GPL, there are drafting holes big enough to drive a Trident submarine through. I've said it before, and I'll say it again: the GPL won't hold water in a dispute. The reason no one has given you any precedent (as per your request) is that the GPL has not been truly tested in court. Since the GPL eschews the lessons that lawyers have learned about drafting in the past (largely in order to score points with geeks by being colloquial in manner and sounding un-lawerly), it cripples itself with imprecision and ambiguities. The weakness in its core definition of source vs. object/executable is merely one of many fatal flaws in the document. To be perfectly frank, the GPL is a POS contract and I would arguably be liable for malpractice if I advised a client to use it for reason other than their unbending adherence to open source dogma.

        In conclusion, you are likely to see many companies "abusing" the GPL. Rather than use the loaded term "abusing", I would prefer to characterize this behavior as "exploiting" the unsophisticated and niave drafting of the GPL's language.

        Since I said "IAAL", I must also say that the above does not represent a formal legal opinion, that I do not represent you (the reader) as your lawyer, and that you should not treat this message as my legal advice to you. Laugh all you want -- I'm just sticking to my ethical directives, kids.
        • Equally imnpossible is a definitive response to the question "what is the preferred form of the work for making modifications to it?"

          I think that this is a distinction that is much easier to make than the previous one you mentioned. All you have to do is to go to the computers where the people are actually writing the code and see what form of the program they are modifying. If they're working on the code in a format different from what is distributed, it's an easy case that the form that's being distributed isn't the preferred form for making modifications. That's especially true if you can find:

          • Expert witnesses who will testify that the code as shipped is essentially impossible to work on. From the description in this case it would be fairly easy to find these.
          • A company whistleblower who's willing to testify that the company deliberately obfuscated the code to make it more difficult to work on. Again, it sounds as though one should be available in this case.

          You're correct that this is not an open and shut thing, but it's not an intractable one, either. Most people have fairly sensitive BS detectors, and they're going to be able to tell that code that's been deliberately messed with to make modification more difficult is not in the preferred format for making modifications. All you have to do is show that a deliberate attempt has been made to obfuscate with the code and you're set.

        • Short parade (Score:3, Interesting)

          one must go on a fact-finding parade to measure industry practice
          Since YAAL, please explain why the answer to the question "Is the file you distributed what your engineers modify when they fix bugs or introduce features to the program" is not conclusive for the purposes of determining "preferred form" here?
          • by SPYvSPY ( 166790 ) on Wednesday March 06, 2002 @03:41PM (#3120335) Homepage
            Yes, that would be one test for "preferred form", but there are others and the other side of any dispute will present them. The point is that the standard that you propose does not necessarily follow from the language of the GPL. In other words, your standard is more suitable than the GPL language. Of course, at trial, the credibility of your engineers and/or anyone testifying about their procedures will be at issue.
        • Of course, as a lawyer, you should also realize it is ten times more expensive to defend than to sue. The costs of responding to discovery, alone, can easily hit six figures. And, (personal opinion) the obviousness of the obfuscation would probably be enough to prevent dismissal. So, the real question is not "could the Company in question win a suit," because we all know that in the lottery we call Trial by Jury anyone could win on any given day. The real question is "could the Company lose." A loss in court might result in the inability to sell their product for some period of time, or damages to the extent of their sales. If the company is small enough, this could mean the end of it. Is it worth the gamble?
        • by WNight ( 23683 ) on Wednesday March 06, 2002 @04:13PM (#3120588) Homepage
          You may be a lawyer, but no other lawyers seem to agree with you.

          I went across the hall at work yesterday and asked two lawyers who I often see over lunch about this. They said that while "preferred" and such terms are often fairly vague and cases hinge on those, in this case, where you can simply show the inability of the company to use the obfuscated code, and the obfuscating programs used, that it's dead simple.

          Too bad modern judges can't hand down rulings that really cut to the heart of the problem...

          Ruling that the company must delete all other source code and forever maintain the project using only this source code and other code in this form would quickly show if this was the preferred method. :) When the company goes out of business it'll show they were lying.

          (With creative and honest judges we could get by with a lot less of your type.)
          • You may be a lawyer, but no other lawyers seem to agree with you.

            You may have somehow missed out on this, but lawyers are paid to disagree with other lawyers. No matter what your lawyer says, I guaran-goddamn-tee it that every other lawyer on earth will disagree with him if I pay them to do so.

            The question you should be asking your lawyer is not "What do you think this contract means?" but instead "Do you think you could win this case?"

            On second thought -- don't ask your lawyer if he thinks he could win the case. The other thing lawyers make money from is claiming to be able to win cases for you. Ask some other lawyer if he thinks your lawyer could win the case after making it clear that you can't afford his services.

      • As for precedent, can anyone find a discussion of GPL'ed yacc/bison grammars? This would fit exactly the case above - the original source that must be distributed is the .y file, not the result of compiling the .y to a .c file. Unfortunately, I don't think that anyone has ever been tempted to rip off a GPL'ed grammar.


        Yacc has a BSD license, not GPL, and so this was never an issue at all for yacc. You can do whatever you want with BSD licensed code.

        Bison makes a specific exception to the GPL for the code that it includes in your parser. You can compile your .y file with bison and still use it in a closed source product. This didn't used to be the case, but it is now. Before that happened, everyone who needed to do that just used yacc (or should have!)

      • by fm6 ( 162816 ) on Wednesday March 06, 2002 @03:22PM (#3120211) Homepage Journal
        Why did it take so many posts for someone to point this out?
        Silly question. As with any online discussion of a controversial matter, there are certain accepted protocols. Before you begin the serious part of the conversation, you must first rant about the evils of the Legal Profession, Big Corporations, Current Concepts of Intellectual Property, Where It all Went Wrong, etc. If at all possible, you must make yet another attempt to resolve the Capitalism-versus-Socialism issue. Only then can you actually address the question at hand.
        Do people not read the GPL?
        What kind of pinko PC new-age bullshit is this? This is America, buddy. I'm entitled to my opinion, which means I'm entitled to have my opinion accepted. I don't have to waste time going around "verifying facts" and "considering the reliability of my sources". You start going around making up all kinds of rules like that, before you know, I have to get a license to open my mouth!
        I would be highly suspicious that your lawyer is insufficiently anal when reading contracts if they missed this.
        Well, maybe he's incompetant. Maybe he just wants to score points. Maybe he's got some weird legal theory that makes sense to him. Maybe there's some obscure rule or precedent that makes the clause in question moot. Maybe...

        Eh. It doesn't really matter. What does matter is that he's got a legal theory as to how the GPL can be sidestepped. It might not hold up in court. But that doesn't matter until it gets to court. There's no Bad Law Fairy who's gonna come out of the sky and put things right. Somebody is going to have to mount a legal challenge to this abuse. That somebody has to have legal standing in the case and deep pockets. Now, don't all raise your hands at once!

        What a day to be without moderator points...
        OK, I just ran out of irony. Look, the mod system worked -- maybe not as fast as you liked, but it did. Don't feel bad because you didn't get to put on your Arnold mask and mod all the lamers down. It's just a damned filtering tool, not a way to Rebalance Universal Morality.
    • by kubrick ( 27291 ) on Wednesday March 06, 2002 @09:59AM (#3117895)
      The GPL explicitly defines source code as the preferred form of a program for modifying it.

      To find out whether the gobbletygook you distribute is source code or not is simple: if you normally add features to the program by editing the gobbletygook, it's source.


      Maybe if that gobbledegook were legalese?

      Herewith, the party of the first part, being the variable heretofore known as 'x', and the party of the second part, being the value henceforth known as '1', do legally contract a valid and binding agreement to...


      Etc.

      At least then it would be the preferred form for someone -- the lawyers :)

      (NB: Zealots, I'm only kidding. I do think this is an ethically dubious act, and possibly an illegal one too. I guess it depends on whether this company thinks that their lawyer(s) are better than some of the ones that could get brought to bear against them...)
    • by BlueUnderwear ( 73957 ) on Wednesday March 06, 2002 @11:49AM (#3118654)
      And if somebody does succeed in reverse-engineering it back to readable source: then your company has exactly no legal protection against this, as the reverse engineerer just created a derivative work which is explicitly allowed under the GPL ( under condition that the resulting source, now cleartext again, is published...)
      • And if said somebody has access to the pre-gobbledygook code, or knowledge of it, can that person legally "reverse engineer" the gobbledygook back to the more legible version legally, so long as there is no employment agreement, NDA, etc. in the way? Or for that matter, if the new project is derived from original code that is GPL, can they make an employee sign a contract that prohibits them from undo-ing the gobbledygook step?
    • by Chester K ( 145560 ) on Wednesday March 06, 2002 @02:06PM (#3119703) Homepage
      The GPL explicitly defines source code as the preferred form of a program for modifying it.

      Excellent. So, to the original question: All your company needs to do is develop a text editor that works with obfuscated binary "source files", and add a step to the make routine that turns those obfuscated binary source files into obfuscated, yet compilable C, and there you go. Source files that you actually use to do modifications with, and are difficult or impossible to read (since nobody says you have to GPL your proprietary text editor that works with the obfuscated binary source files, or the program thats part of the build routine that turns them into C, because its not a derivative work of the GPL'd code in question, no more than Windows Notepad needs to be GPL'd because I looked at some Linux source in it).
  • "viral license" (Score:2, Insightful)

    by nakhla ( 68363 )
    It's issues like this that cause Microsoft to call the GPL a "viral license" that infects all of a company's code.

    Personally, I feel that the GPL should be enforced when the work is actually DERIVED FROM a GPL'd work. The example of the IDE is a prime example. Look at KDevelop. If I write a console-based program which doesn't use the Qt or KDE libraries, I am allowed to release the program under whatever license I choose. No argument.

    If we squabble about license issues and what constitutes a "dervied work" then it only gives MS a better case against the GPL. While I'd personally rather see packages like Qt released under the LGPL, the GPL is certainly the most valuable license in the furtherance of Linux.
    • Re:"viral license" (Score:5, Insightful)

      by Glorat ( 414139 ) on Wednesday March 06, 2002 @10:00AM (#3117911)
      It's issues like this that cause Microsoft to call the GPL a "viral license" that infects all of a company's code.
      ...
      While I'd personally rather see packages like Qt released under the LGPL...
      Your opinion is perfectly valid but I'll just post the counter-argument for people to compare. If Qt released as LGPL, they would not make any money as anyone could use their library for free. An alternative is to make it closed source and sell their binary library to make money. That's fine but they wouldn't get much exposure.

      GPL provides a middle ground for Qt. They say along the lines of, "You can use Qt for free so long as your produce is free (as in GPL) but if you want to make a commercial product, you will have to buy a license". IMHO, I think this is a good business model

      Microsoft considers the GPL viral because if you use any GPL code for free, your produce must be GPL too. Fine, but look one step further. If they didn't make it GPL, you would be buying a license off a piece of closed source of software which wouldn't be any different to what MS does. At least with a business model like Trolltech's, you have a choice. For this reason I like Qt under GPL so that Trolltech could make money they wouldn't otherwise be able to under LGPL

    • Re:"viral license" (Score:5, Interesting)

      by Bruce Perens ( 3872 ) <bruce@perens.com> on Wednesday March 06, 2002 @10:03AM (#3117925) Homepage Journal
      Most of Microsoft's licenses give you less rights than the GPL. You aren't allowed to derive from most Microsoft products at all.

      You're a bit confused about when the GPL applies, but the original posting was confused on this point, too. If you process code with a GPL program, for example if you compile it with GCC, it does not apply the GPL to the processed code. Only in the case of linking or another means of creating a derived work, as in your example with Qt or KDE libraries, does the GPL apply.

      Microsoft's talk about the GPL is just propoganda. They have no legal case against it. Any legal case they could construct would first have to invalidate Microsoft's own, more restrictive, licenses.

      Bruce

  • Preferred form (Score:4, Informative)

    by Anonymous Coward on Wednesday March 06, 2002 @09:36AM (#3117745)
    Gnu GPL clause 3: "The source code for a work means the preferred form of the work for making modifications to it."

    Deliberately obfuscated high-level language code (which is no longer preferred, or even useful, for modifications) does not appear to meet this requirement.
  • Is it just me? (Score:2, Insightful)

    by fruey ( 563914 )
    Or does this article just fail to make it clear what is going on...

    Are you saying that using the GCC compiler means that you will then have an executable which you have to GPL the source code for?

    Are you saying you are going to integrate GPL source code into a project?

    I don't quite understand. Someone else enlighten me?
  • RTFGPL (Score:3, Redundant)

    by Bazman ( 4849 ) on Wednesday March 06, 2002 @09:37AM (#3117751) Journal
    "The source code for a work means the preferred form of the work for making modifications to it."

    Shouldn't be too hard to prove that an obfuscated code isn't the preferred form for making modifications. [Unless its perl of course :) ]

    Baz
  • Possible problem (Score:5, Insightful)

    by IainHere ( 536270 ) on Wednesday March 06, 2002 @09:37AM (#3117752)
    I think some people here have misunderstood the original post - it looks like the company's intention is to release their code under the GPL, so as not to violate the licence terms, but to obfuscate that code, to render it useless for further modification. Surely though, we can compile the obfuscated code, and get to the final product, which still makes it free beer? We could also sell the product.
    • Not really... (Score:3, Informative)

      by eth1 ( 94901 )
      What you describe would simply mean, since the 'source' according to the GPL is the preferred modifiable version, that they could be forced into releasing their non-obfuscated source, too.


      of course, IANAL

  • It's clear. (Score:3, Redundant)

    by Eric Sharkey ( 1717 ) <sharkey@lisaneric.org> on Wednesday March 06, 2002 @09:37AM (#3117755)
    The GPL states:

    The source code for a work means the preferred form of the work for making modifications to it.


    If this isn't the form your company prefers for doing their own internal modifications, then this isn't the source code!
  • Legal Loopholes (Score:3, Insightful)

    by Kombat ( 93720 ) <kevin@swanweddingphotography.com> on Wednesday March 06, 2002 @09:38AM (#3117763)
    You did say they still plan on releasing the resulting, obfuscated code under the GPL, right? So, under the terms of the GPL, there is no violation. The GPL says you can change the code all you want (including obfuscation), as long as you release the resulting work under the same license.

    Nowhere does it say that that code has to be non-obfuscated. Nor do I think it should. Do we really want to try and formalize that gray area between "obfuscation" and just plain "sloppy code?"

    Not all of the code released under the GPL is what we would consider "good code." By that, I mean people release all sorts of toy projects and junk code under the GPL, for learning purposes. They use bad variable names and inefficient algorithms, but when do we start to consider code "obfuscated?" And more importantly, do we want to leave it to a lawyer to make that decision for us?

    I say if you're really concerned about it, then leave the company. Otherwise, just write it off as mean-spirited. There's no law against being mean. :(

    • True enough, and with the proper amount of obfuscation you can get your product to market before anyone takes the time to translate your gobbledygook code back into something THEY can modify and market :)

      It's underhanded, but then again, it's business.

      As long as they're not actually screwing anyone over in the end, it doesn't sound as bad as some might make it out to be.
  • by jsmyth ( 517568 ) <jersmyth@gmNETBSDail.com minus bsd> on Wednesday March 06, 2002 @09:38AM (#3117765) Homepage
    Previous article: On the (Im)Possibility of obfuscating programs [slashdot.org].

    Pretty boring stuff, but the overall point is that once the end product is GPL'd, it won't take long for someone in the bazaar to figure out a meaning for "asdfgh", and do a s/asdfgh/meaningfulName/g through the whole thing. Or even figure a way to diff it with the original source.

    As long as it's GPL'd, the source will be available, and it'll be figured. You're wasting a lot of your time (and the rest of the community's) for very little reason.

    No matter how complex your obfuscation, it's likely much less complex than, say, CSS or DES was.

  • by Rashkae ( 59673 ) on Wednesday March 06, 2002 @09:39AM (#3117766) Homepage

    As far as I can tell, AINL, as long as you do in fact release the source code (and all linked pieces... must be careful about this), you are in compliance with the GPL, even if the souce code has been obsufacated as much as possible. Just remember though, *everyone* will get to see this source code. They will either know that 1. You are ripping them off by 'working around' the GPL. Or 2. Think your company is staffed with the most incompetent imbecil programmers anyhwere. So my question for you is... Why would *any* company want to release something that makes them look bad??? What exactly is the advantage they think they will get from this?

  • This doesn't seem too hard, although the part is limited. To quote from the GPL

    "The source code for a work means the preferred form of the work for making modifications to it."

    In this case - obfuscated code is not the preferred form of the work for making modifications to it - your company isn't going to be making the modifications to the obfuscated version - they're going to use an internal version and make modifications to that instead. In which case they would be in violation of the GPL. A bit of an arse to litigate I would guess.
  • While the code MAY be obfuscated, you're still releasing it under the GPL.

    And while it's true that it's "Almost" as useless as reverse-engineered bytecode, it's not necessarily. Someone with the patience and, say, economic motivation, could still retrieve your full codebase, and be perfectly within their rights to do anything with it, including compete directly against the company.

    If you really want to stop this, that's a tack you could take -- try to convince management that there IS a security risk in releasing even the obfuscated code.

    I don't see companies like Microsoft or Cisco releasing even obfuscated source to code they consider valuable.

    Xentax
    • Blockquoth the poster:

      If you really want to stop this, that's a tack you could take -- try to convince management that there IS a security risk in releasing even the obfuscated code.
      I don't see companies like Microsoft or Cisco releasing even obfuscated source to code they consider valuable.

      But then, as I understand it, they could not use the GPL'd stuff they want to use, since use of GPL stuff mandates making the source code available.
      • Precisely. TANSTAAFL.

        The "real" problem, of course, is his company's attempt to obey the letter of the GPL but spitting in the face of its spirit. That sounds a bit dogmatic, I know.

        It would be nice if he took a stand on the real issue, but I suspect then he'll have to choose between the ideal and his job. That's what I call a "sticky situation".

        Xentax
  • Do it man. (Score:2, Funny)

    by sinserve ( 455889 )
    Do the fucking thing your boss says, as long as you
    are not in power, follow orders.

    But as soon as you follow the wrong orders, and
    break the law, you are instantly in power.

    Do your job, get paid, and fucking report them if
    they ever fire you.

    It is a win-win situation for you.

    --
  • IMHO you're allowed to port a GPL project to another programming language, eg. C to Pascal. But what if you port it to Assembler? Are you still complying GPL because you distribute the software with .ASM-files created with GCC or some other compiler? Or just dump your executables through de-assembler and claim that those are the source code.
  • After looking through the GPL [fsf.org], I can't find any requirement to leave author comments and other information in the source, nor anything that forbids obfuscation.

    My guess is that Section 2a is the only thing that may help here:

    2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
    a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
    This may allow someone to at least track down what the code was before obfuscation, but I see no requirement to name the source of the original code.

    Worse, Section 3 -- which allows distribution in binary -- only requires the source to be "machine readable". Again, nothing against obfuscation. Section 1 only says you have to keep the copyright notices and references to such as well as the disclaimers in your code.

    I'd like to see what the FSF has to say on this.

    woof.

    Source without comments is like a joke without the punchline.

  • For me this is a huge inditement of Microsofts shared source and commercial licenses for code. Why? Well, if you rip of GPL'led code the authors while annoyed if they knew, are not going to be saddened by the loss of income. The bulk of them make money on the packaging, sponsorship, their day jobs or consulting related to the product.

    Now 'shared source', and companies that provide Perl/PHP/JSP code with a commercial license *would* loose income! They don't have any more magic reverse engineering tools than the open source community.

    What you're company is doing is morally very wrong but I don't think it'll kill the GPL as a license but it could have an impact on other ideas such as 'Shared Source'.
  • This is little different from those students in my CS classes who would copy code from each other and use a global search and replace to change the variable names...

    When it comes down to it, this is a really sticky question. There are certain algorithms which can only be done efficiently in one way. If I code a linked list in C++, and the optimizing compiler boils it down into the same object code as Microsoft's linked list class, do I owe Microsoft royalties? The source code is different, but it is very possible that the object code would be identical. If object code can be copyrighted, then this would place many open source projects in jeopardy, as they frequently borrow algorithms from the proprietary UNIXes.

    I think a better approach for your company would be to have an analyst read through and analyze the GPL code, and then create something new based on the knowledge gained. Copy the algorithms, but not the code. This "black box" approach would take only marginally longer, and there would be no possibility that all of your code could be forced into open source status. Since the design is already proven with this approach, the only thing you would have left to do is the coding and testing (which should be about 8% of the total project cost.)

    Is your software Complete? If it doesn't come with the source code, it's Incomplete Software .

  • Ok so this isn't the spirit of the GPL. I am fine with it though because despite their best efforts to obfuscate it can be modified back to readable very easily. If their code is worthwhile having for the general community it will get cleaned up and OSS will have a little bit more than they had before. Let 'em try.

    What could they possibly be working on that capable programmers couldn't write themselves? I don't think that this companies attempted theft is really that well thought through.

  • Verbatim from the GPL:
    "The source code for a work means the preferred form of the work for making modifications to it. "

    This gooble-de-gook is by no means the 'preferred form' for making modification, thus it is not source code under the GPL.

    Get another job, this company is going down.

    -josh
  • From the GPL:
    The source code for a work means the preferred form of the work for making modifications to it.

    While this obsfucated form of the source is indeed machine-readable, you're going to have a hard time passing it off as the preferred form for making modifications. Seems fairly open and shut to me.
  • They will then GPL the obfuscated gobbledygook,
    Doesn't the GPL forbid this? (re-reads GPL) Um... it appears not, it doesn't even require that the original copyright notices be included! (or at least, I could not find the requirement)
  • by Jamie Lokier ( 104820 ) on Wednesday March 06, 2002 @09:53AM (#3117857) Homepage

    (BTW, I am not a legal advisor. This is my understanding of the GPL).

    If you are including other people's GPL'd source code in a program which you distribute, then you must abide by the terms of that license. Section 3 of the GPL is precise enough to disallow scrambling the source code:

    1. You must provide the source code of the whole GPL program to your customers, as defined in clauses 3a, 3b and 3c.
    2. The provided source must correspond exactly with the binary that you give your customers. So it must include your modifications, for exactly that version.
    3. The provided source must be in the "preferred form of the work for making modifications to it". That means the source code must be what you actually load into your editor to develop the software. In other words, you must distribute the useful source code.

    There is nothing to stop you changing all the variable names, or the style of someone else's code. However, if you distribute a GPL'd binary then the source you distribute with it must be the source that you prefer to use for modifying the program yourself. You may be called upon to prove this in a dispute.

    For reference, section 3:

    3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

    a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

    b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

    c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

    The source code for a work means the preferred form of the work for making modifications to it. 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.

    If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.

  • To obfuscate source, one must have source to start with. It follows that result of obfuscation is simply the next version of that source in your particular development tree.

    By obsfuscating all you've done is create v+0.0.1 of whatever you started with in, but in your own fork. That means this alteration is covered by the GPL.

    Standard not-a-lawyer stuff applies.

    Cheers,
    Ian

  • So you've either got an obfuscated sourcetree to maintain & bug fix, or you've got two sourcetrees, the internal one and the external one. In either case it's slowing development down, and the change of errors creeping in is increasing. All in all, not a good idea.
  • by Bruce Perens ( 3872 ) <bruce@perens.com> on Wednesday March 06, 2002 @09:55AM (#3117879) Homepage Journal
    Obligatory disclaimer: This is not legal advice, get another lawyer than the one you've already heard from to give you that.

    The GPL states:

    The source code of a work means the preferred form of the work for making modifications to it.
    That term was written to prevent exactly the sort of obfuscation the attorney is proposing. Obfuscated code is demonstrably not the preferred version for creating modifications. So, what is being proposed is a GPL violation, and your company's attorney missed that part of the license. The talk about incidental resources isn't germane, it actually seems to be intended to confuse, because what is being proposed clearly is a derivative work, and the company attorney is acknowledging that when he suggests that the obfuscated code be GPL-ed.

    But there are simpler remedies than legal ones. If the free software developer community hears about a product using obfuscated code to circumvent the GPL, they will retaliate by creating a non-obfuscated version and using it to compete with your company's product. They are experienced at reverse-engineering, they have excellent tools for code reformatting and analysis, and there are a many programmers who will be angry enough to work on this.

    If your employer wants to unashamedly take advantage, they are simply buying a lawsuit. The free software community does have the resources to bring one - it would probably be brought by law professor Eben Moglen of Columbia University. He wants more legal tests of the GPL, and would love to make an example of your employer. Don't go there.

    Bruce

  • Your company's tactics are clearly intended to violate the spirit of the GPL: to make the code unusuable. Usually when there's a violation of the spirit there's also a violation of the letter.

    Incorporating code is NOT incidental use, by the way. Frankly, I don't see how the license of any tool can enforce a license on code (or text) that was created with it as a tool (e.g., a license on emacs couldn't force you to copyleft a novel you wrote on it), because the created code/text doesn't incorporate copyrighted intellectual property of the creator of the tool. But in your scenario, you ARE incorporating someone else's IP in your project, creating a derivative work, and so are guilty of violating the copyright on that IP - unless you follow the license.

    Compare it to a translation: you are reproducing the meaning of the GPLed code with different words, which after all is what translation is. A translation of a copyrighted work must be licensed by the holder of the work's copyright.

    If you (note that I said you, not your company: the moral responsibility here is the programmers', not the suits') do not want to follow the spirit of the GPL, I'd suggest looking for similar code that isn't GPLed but has a license that does not "contaminate" derivative works. If you can't find any, then you should take the 30% hit and write your own code. If it's such a lucrative project, and if the distribution of clear source code would represent a threat to your profit stream from the product, I would think you would be willing to accept such an expense to protect your own intellectual property - because if you violate the GPL and get caught, you could lose it all in court.

    I am not an attorney, and the above does not constitute legal advice. You might want to ask an attorney of your own for advice, as you may find yourself caught in a situation in which you will be making yourself liable for the actions of your company.

  • by Noryungi ( 70322 ) on Wednesday March 06, 2002 @10:14AM (#3117993) Homepage Journal

    IANAL, etc... etc... yadda, yadda, yadda.

    The company then go all the way to production with it, but instead of finally compiling the actual project for distribution, they instead compile a bunch of incomprehensible gobbledygook that just happens to compile to the same bytecode.

    You know the game: globally replace every function name, variable name, and so on from our code with nonsensical names (or random characters), remove all of the comments, and any other form of obfuscation they can introduce.

    They will then GPL the obfuscated gobbledygook, which isn't much more useful to anyone than reverse-engineered bytecode would be (it is a complex project). 'Voila!' All the benefits of a huge GPL project and countless thousands of volunteer hours and unreadable, incomprehensible source tree.


    Here is my take:
    • Doing this would be a sure-fire way to royally anger every sane-minded person out there. No legal action possible, of course, but a lot of ill-will, screams, flames and gnashing of teeth, especially if said GPL'd code includes volunteer work (which you seem to imply). Boycott of the company's product seems a logical conclusion.
    • What can be done in one way, can be done in the other way. If the project is interesting, and if volunteers are angry enough, they may well go through the code with a fine comb, clean it, insert understandable variable names, comment and generally un-obfuscate. Not an easy task, but one which is possible if motivation is high. See previous comment.

    Other things to take into account:
    • Never understimate the power of UNIX text-processing tools. Perl, awk, Python and sed are your friends in this kind of GPL obfuscation. Again: if the motivation is here, and the project justifies it, the code will get cleaned-up. Even if the obfuscation reaches magnificent levels of deviousness and evil, the "Open Source" community will provide an alternative.
    • If the code is un-obfuscated (or an alternative is provided), I am sure a lot of companies and institutions who care about GPL would gladly host the project. Add a storm of negative comments and, bingo! code fork and instant (open/GPLed) competition... Your business is cooked and your revenue stream is dead,a nd I mean dead, since people will make a point of boycotting your products. Think SSH/OpenSSH. And (here is the nice part) there is nothing your company can do about it anyway... It's GPL code, remember?

    Conclusion?
    Bad idea. VERY bad idea. Release code under GPL, play nice, and nobody gets hurt... (wink! wink!) ;)

    IMHO, any company who tries that kind of stunt is going to end up on the trash-pit of dot-coms faster than you can say "GNU General Public License".
  • A two part problem (Score:5, Informative)

    by Christian Hicks ( 564547 ) on Wednesday March 06, 2002 @10:38AM (#3118172)
    This sort of issue breaks down into two sub-problems:

    1. Is it in violation of the GPL? This question is not a simple one, but such actions may very well be violation of the GPL. If this matter reached court, the question would center on whether the process applied to the GPL'd code constituted part of the process to create the derivative work, as derivitive work is defined in the GPL. For example, an expert might argue that code obfuscation can be part of the compilation process. It is oversimplified to say that laws are reinterpreted on the fly to capture the intent of the law. What is true is that these sorts of questions - for example, what constitutes compilation - are likely to be viewed in a manner which assists the obvious intent of the applicable contract/law.

    2. If it is a violation, can it be proved? Probably. Our company works for lawyers on code plagiarism cases all the time. There are many algorithms you can apply to show statistically significant relationships between a body of code and its obfuscated counterpart. The same should be possible with bytecode. Once a reasonable basis for suspicion is established, plaintiffs could get discovery of the company's code repositories and depose employees under oath.

    Christian Hicks
    Elysium Digital, L.L.C.
    http://www.elys.com [elys.com]

  • Bad Engineering (Score:3, Interesting)

    by hol ( 89786 ) on Wednesday March 06, 2002 @11:22AM (#3118495) Homepage Journal
    In all honesty, I don't think this tactic will prove to be useful for your company in the end. Here is why:

    • Obfuscation of source code is useless in the end. All one needs to do is run it though a source-code formatter, and there are lots.
    • The energy expended in developing the source code obfuscator (presumably this needs to be done in-house to be entirely effective) will need debugging not only of the obfuscator itself, but also the code it generates.
    • You can achieve the same effect simply by compiling the offending GPL code as a dll and using what you need, no legal problems, and less headache. Just publish the wrappers for it under the GPL, and you're effectively done. This is the design of the GPL anyways. Just don't make the dll export the functions you're overriding, and re-implement them in your own code. The result: less work, better code.

    I can think of a few other, better ways, to use GPL code in commercial projects without pressing everyone's ethics button so hard. Better engineering, better PR, less work. Is that so hard? Sounds to me like the lawyer wants to have a few years steady work, and your CEO is too preoccupied with being evil.
  • Blow the whistle. (Score:3, Insightful)

    by Bonker ( 243350 ) on Wednesday March 06, 2002 @11:32AM (#3118552)
    Go to a public library. Logon to the internet terminal found in most public libraries. Create a Hotmail or Yahoo Mail account. Use that account to E-Mail the FSF with your company's name, the project's name, and as many details about the project as you can without personally identifying yourself.

    Then, later, you can sleep like a baby, knowing you did the right thing.
  • by Adam J. Richter ( 17693 ) on Wednesday March 06, 2002 @12:23PM (#3118880)

    I'm not a lawyer, so don't use this as legal advice. Instead, you (the author of this slashdot article) may want to show it to your company's lawyer and suggest that he track this down.

    According to this link [ladas.com], there is a case called "Whelan" that established that duplicating the detailed structure of a program was copying of expression rather than ideas, and therefore copyright infringement.

    Also, I remember reading a very good article about ten years ago by law professor Pamela Samuelson, I think in Communications of the ACM or some other ACM publication, that talked about this decision and mentioned "detailed structure and flow", which would make the case for infringement even stronger.

    Finally, I recall reading somewhere, perhaps in that same article, that there is some common law rule that the standard of similarity by which copyright infringement should be determined is supposed to correspond to how much access the alleged infringer had to the original work. In other words, if the alleged infringer had easy access to the original work (e.g., had carefully read the original GPL'ed source), then the standard for proving infringement is supposed to be easier.

    Again, I'm just a layman. Don't use this as real legal advice.

  • by jreames ( 564587 ) on Wednesday March 06, 2002 @12:34PM (#3118992)
    I'm not an expert with legalese, but:

    First arent all the copyright notices inside comments ?

    Removing comments with the copyright notices would immediately violate T&C section 1. (while indicating acceptance of the whole document as per section 5), but then you aren't allowed to remove the comments. The obfusciation is seemingly permitted so long as the copyright comments still remain along with additional comments documenting the changes as required by section 2.

    The obfusciation is seemingly a process of derivation, that is you start with GPL product and do some M-x replace-string's... This derivation process means that the "proprietary intellectual property" is still GPL'ed...

    The GPL does NOT apply to sections not derived from GPL code, but only when they are published apart from the GPL portion. when the whole package is published it is still GPL'ed by inclusion of the GPL code (does anyone remember the Nvidia driver issues?)

    Also according to section 5 the fact that you edited the GPL code at all indicates acceptance of GPL terms and conditions. Failure to accept prohibits you from making modifications (such as the string search and replace described)

    The whole process seems expressly in violation of section 4, but i am no expert...

    What I fail to see is how anyone can avoid GPL except by producing clean-room-code. I seem to recall Nvidia having this problem with their drivers a while back.

    As an aside, isnt "chicken noodle soup" less than 30% chicken by volume? (but it is still considered a chicken product.) Your company's project might be 30% GPL code that was heavily edited (IMHO the only real weakness in the GPL is no "real" definition of "derived", however the common meanings of derive include "to trace the deveolpment of", which has been done...)

    A couple of questions: Is it possible to write a perl/awk/sed script (or otherwise algorithmically describe the obfusciation? (since global replaces are used i would dare way yes...) If this is true then an argument can certainly be made that the work was "translated" from "ANSI c++" to "ANSI c++" (hasnt anyone done english-to-english translation between say a lawyer and an engineer? or perhaps heard of such things?). This translated copy would seemingly be covered by section 0 and all other sections (as incorporated into the defitition of modification)

    just a few cents worth
    -j.
  • by Bobzibub ( 20561 ) on Wednesday March 06, 2002 @01:19PM (#3119348)
    What benefit does a company accrue to taking someone's work, obfuscating(sp) it and then re-releasing it under GPL as one's own? Unless they are not actually intending to release as GPL..
    Well, assuming what you say is correct, the benefits are few... The chances of getting caught are moderate, but if you or one of your staff is laid off/fired/quits then the word will get out and make its way to the original authors.

    Nobody needs to "squeal" either. Say I write a lot of code for GPL's project X and this company comes out with product X' which is almost the same, but better. Their code is extremely obscure as well...
    I might out of curiosity, run one of those web-based code checking tools. These are designed to find cheating students and do not require similar variable names, etc.

    If caught the costs would be painfully high. I think most software companies would rather face a ravenous pack of lawyers than face the savage hordes of a jilted Open Source community. Every day operations would become difficult due to clogged email/phone lines, not to mention that your good corporate name would be mud.

    The B/C analysis is vastly in favour of crediting the original authors. I think your managers and your lawyers are playing dice with your company's future. If I was a share holder (let alone an OS geek or an employee like yourself) I'd be quite pissed.

    Good luck!
    -b
  • by Webmoth ( 75878 ) on Wednesday March 06, 2002 @02:06PM (#3119704) Homepage
    IANAL so this is only from my observation:

    Several posters have pointed out that obfuscation is a violation of GPL, or at least the spirit of the GPL.

    Unfortunately, until your company actually releases a product based on obfuscated GPL code (commits a violation), you can't take legal action in the courts; you can only get a GPL-friendly lawyer to send nasty cease-and-desist letters.
    In other words, you can't stop it until it's too late. And if you do sue, the copyright holder (the creator of the GPL code which was borrowed) will probably have to be named as a plaintiff, as the violation was commited against HIS copyright, or possibly the FSF as a plaintiff's representative yadda yadda yadda. YOU probably will not be able to file suit as a plaintiff directly, unless somehow you can do it as a representative of the party claiming loss.
    If you do nothing else, inform the writer(s) of the original code of your company's intentions.

  • Obfuscating C Code (Score:3, Informative)

    by ninewands ( 105734 ) on Wednesday March 06, 2002 @06:48PM (#3121639)
    Personally, I think this would be a rather easy case to prove if anyone chose to pursue it.

    A context diff of the "obfuscated" code against the code it's derived from would rather quickly show that the only changes from one to the other was symbols and the lack of comments. Unless, that is, they resorted to some rather serious Obfuscation like operator and function overloading, or trick use of preprocessor errors, in which case, a diff of the preprocessor output from the two code trees would also damn the offender pretty quickly.

    I AM a (recovering) Lawyer (I am non-practicing) and I would advise your company that they are playing with fire by trying this. You didn't reveal which GPL Code your company finds so useful, but there are MUCH smarter ways to play this game, especially if the authors of the code you like so much HAVE assigned their copyright to the FSF. (See, FSF v. NeXT Computer, (over gcc) for instance).

    I question the degree of "tech-savvy"-ness of your company's counsel if he's advising them to go "full speed ahead" on such a transparent, bad faith abuse of the GPL (can't call it a violation ... technically, at least).

  • by werdna ( 39029 ) on Wednesday March 06, 2002 @10:00PM (#3122525) Journal
    Any lawyer who opines upon such a scenario in the abstract is likely committing malpractice. The Devil is in the details. However, it seems apparent to me that the risk of getting such a blatant end-around probably wildly exceeds any perceived benefits derived therefrom.

    I can think of a zillion reasons why the proposition described above would not work, but there simply isn't enough information to answer the question in slam-dunk fashion. Suffice it to say, however, that I am seriously doubtful that such a trivial pretense as a byte-code or object-code copy produced by other means could avoid a claim for copyright infringement.

    Even so, to the extent that an "on the edge" defense is being prepared, the defendant had better be right. With such willfullness, a prevailing plaintiff is likely to obtain substantial statutory damages, perhaps as much as $150,000, an award of attorney fees, and an injunction against release of the product. If they made profits from the product in excess of that amount attributable to the taking, a prevailing plaintiff could elect for the greater amount.

    In short, a commercial entity that tries to do so may well be poorly advised. But once again, I don't know enough particulars to make a determination one way or the other.

    The question they have to ask themselves, "do I feel lucky?"

"The four building blocks of the universe are fire, water, gravel and vinyl." -- Dave Barry

Working...