Slashdot Mirror


GPLv2 and GPLv3 Coexisting In the Same Project?

cyclop writes "I am coding a data analysis application in my laboratory that I would like to release as free (as in freedom) software. Moreover I am going to begin a small OSS game that will be based, in part, on GPLv2 libraries. Problem is: in both cases, I'd like to be able to exchange code both with GPLv2 and (future) GPLv3 projects. I have no particular passions about either license — only thing is I don't want BSD-style 'do anything you want' licensing but a copyleft license. I know that GPLv2 and GPLv3 are not compatible. What can I do? Double licensing? Is there a compatible-with-both license? Adding exceptions? What do you think is the best way to address the GPLv2-to-GPLv3 transition without ending up on one or the other side of the barricade?"

116 comments

  1. If it's your code do both. by MikeFM · · Score: 5, Informative

    If it's your code you can use whichever licenses you want including making your code available under more than one license. If you're using someone else's code though then you have to stick to their license.

    --
    At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    1. Re:If it's your code do both. by Anonymous Coward · · Score: 0

      I can't see how, even if all is your code, you could distinguish multiple licenses inside the same program.
      GPLv2 says that in order for a program to legaly have some GPLv2 code, the entire program must be under GPLv2. GPLv3 says the exact same thing, so both can't coexist legaly inside the same program, even if you wrote it all.

    2. Re:If it's your code do both. by Anonymous Coward · · Score: 0

      No written opinion was offered with either decision, though all other court filings are available.
      Wow, that page with the court filings is awful. You can choose to view the documents either as "Image (Java)", that is, a tiff file being read through a Java applet, I assume or "Image (Tiff)" which if you try to save, my browser wants to name them "fortecgi.exe". Also, there's one image per page, so if you want to actually read these documents you're either stuck waiting for a Java applet to load for each page (over 100), saving and renaming each page or, if you have a plug-in installed that lets you view TIFFs in your browser (i.e. quicktime) then you're stuck waiting for that to load for each page.

      Is it so hard to make a PDF out of all those TIFFs so that you can easily download a whole document? Or at least converting the images to JPGs so that they can be easily viewed in the browser?
    3. Re:If it's your code do both. by dosius · · Score: 1

      Except that the GPL2 allows for an "upgrade of license" exemption, which is almost always applied, and means that anything licensed under those terms can be converted to GPL3 at any time by anyone for their particular copy.

      That's prolly the best way, license it "GPL 2 or later".

      -uso.

      --
      What you hear in the ear, preach from the rooftop Matthew 10.27b
    4. Re:If it's your code do both. by Anonymous Coward · · Score: 1, Informative

      How about an opinion from a "lawyer"?

      Dude (article poster), go ask Eben Moglen, or better yet, get some *free* advice from his company/association/whatever: The Software freedom law center.

      Slashdot is good for general ideas (like links above), just don't base a project/life decision on comments made by you know who-where-how/old posters.

      Good luck.

    5. Re:If it's your code do both. by EsbenMoseHansen · · Score: 2, Informative

      I can't see how, even if all is your code, you could distinguish multiple licenses inside the same program.
      GPLv2 says that in order for a program to legaly have some GPLv2 code, the entire program must be under GPLv2. GPLv3 says the exact same thing, so both can't coexist legaly inside the same program, even if you wrote it all.

      It can be both in the sense you can say: Here is two licenses: GPLv2 and GPLv3. I offer my code on either license. You just pick one. Thus, the mutual incompability never comes into play.

      However, you are right that the code is not covered by both licenses as once. Thus, for code to be dual licensed, all the code it derives from must be available dual-licensed, too. In other words, choosing the dual license makes less code available to you for inclusion than picking either one. On the other hand, it is easier for other people to use your dual licensed code, as they can use it if they can accept just one of the licenses.

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
  2. GPL 2 or later by Anonymous Coward · · Score: 1, Informative

    "version 2, or at your option, any later version"

    1. Re:GPL 2 or later by Anonymous Coward · · Score: 1, Informative

      Exactly what I was going to say: is the submitter certain the library in question is GPL 2 only and not the standard clause you quote. Some software may be GPL only (Linux, for example) but it's actually fairly rare. If the code is "GPL 2 or later" then there is no issue.

    2. Re:GPL 2 or later by cyclop · · Score: 1

      I thought of the standard clause but it always puzzled me. Who chooses what licence is actually in use? What does "any later version" mean? What if someone breaks only one of the multiple versions of the license? Let's say, if someone TiVO-izes my "GPLv2 or any later" code, that's perfectly fine for me (that thinks GPLv2 is mostly fine), but that could be NOT fine at all for some contributor. What happens in this case?

      --
      -- Patent no.123456: A way to personalize /. comments with a sig attached to the end.
    3. Re:GPL 2 or later by codemachine · · Score: 3, Informative

      I believe the person receiving the code gets to choose which version applies. So if they wish to TiVo-ize it, they will opt to accept the terms of the GPLv2 license instead of the GPLv3 license.

    4. Re:GPL 2 or later by Kyojin · · Score: 1

      I thought of the standard clause but it always puzzled me. Who chooses what licence is actually in use? What does "any later version" mean? What if someone breaks only one of the multiple versions of the license? Let's say, if someone TiVO-izes my "GPLv2 or any later" code, that's perfectly fine for me (that thinks GPLv2 is mostly fine), but that could be NOT fine at all for some contributor. What happens in this case?

      In that case the contributor would have to re-release the code plus his changes entirely under the GPLv3 (Assuming the original release included the "or any subsequent version" clause.) Or, the contributor could choose not to release his contributions. You do not choose which license is in use until you release the code yourself. The original releaser may limit the options you have for doing this, e.g. GPLv2 or any subsequent version, GPLv2 only, etc.

      The GPL gives you the freedom to do whatever you want to or with the code, under the condition that if you release a modified version that your changes are also released. You can make all the changes you want for yourself, but if you want to release those changes they must be in accordance with the license you received the code under.
    5. Re:GPL 2 or later by kabloom · · Score: 1

      Your contributors have to also license their code under "GPLv2 or any later version" in order for you to honestly say that your code is under "GPLv2 or any later version".

      "GPLv2 or any later version"means that the author intends to allow the licensee to take advantage of any additional freedoms added in future versions of the GPL. Since the licensee may choose whatever version of the license is most favorable to the freedoms he wants to use, it is not possible to force additional restrictions on the license in this manner. (However, if a new version of the GPL introduced a new freedom and a new restriction, then the licensee probably couldn't take advantage of the new freedom without also being bound by the new restriction.)

    6. Re:GPL 2 or later by sumdumass · · Score: 1

      I'm glad you brought this up. The GPL specifically doles out what dirivited code and all that stuff it. If anyone contributes to your code, they have to use the license your code is under, this mean GPLv2 or later, it is that. Gplv2 only, it can only be included as that. Now if it is your code, you can change th license and release it separate, but if you contributed to the linux kernel, you will be likely disappointed to find out your code is GPLv2 only without regard to how you intended to license it.

      I think this will cause come issues once the V3 comes out.

  3. Probably not as big an issue as you think by shaitand · · Score: 4, Informative

    Remember that almost all GPL'd software permits using the terms of future versions of the GPL. Unless they have chosen to omitt this part of the license you can use GPLv3 without issue. If that won't work, then you should license GPLv2 WITH the option of using the future terms. That way you are compliant with both GPLv2 and GPLv3 and let people work out the library licensing on their own.

    1. Re:Probably not as big an issue as you think by XaXXon · · Score: 1

      It would be more properly stated that all code that EXPLICITLY says "GPLv2 or later" permits use with future versions of the GPL. However, whether most code says this or not, I wouldn't speculate.

      Also, most of the code that looks like that, when new versions are released, will begin to say "GPLv3 or later". If you're still relying on GPLv2, you'll be stuck at the license-fork point and won't be able to use new features in that code.

      I don't release any of my code with the "or later" bit, because I don't know if I'll agree with what comes later.

      Oh, and Linux doesn't have the "or later" bit in it, either.

    2. Re:Probably not as big an issue as you think by Anonymous Coward · · Score: 0
      Just to clarify, mixing GPLv2 only code with your own code does not automatically make the resulting program compliant with both GPLv2 and GPLv3.
       

      If that won't work, then you should license GPLv2 WITH the option of using the future terms.
      You seem to suggest I can grab GPLv2 code, mix it with my own code, and releasing the final product as GPLv2 or later (which you can't unless you have permission)
    3. Re:Probably not as big an issue as you think by Chandon+Seldon · · Score: 1

      I don't release any of my code with the "or later" bit, because I don't know if I'll agree with what comes later.

      That plan is great until you start accepting code from other people. There will be new GPL revisions periodically, and you don't want your project to be stuck in the position that Linux is in. At very least, I'd suggest requiring that contributors allow you to relicense their code to future versions of the GPL at your discretion.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    4. Re:Probably not as big an issue as you think by tepples · · Score: 1

      It would be more properly stated that all code that EXPLICITLY says "GPLv2 or later" permits use with future versions of the GPL. However, whether most code says this or not, I wouldn't speculate. Given that most developers seem to copy the boilerplate at the end of GPLv2 that uses the "any later version" wording (Google gives a million hits), I'd speculate yes.

      Oh, and Linux doesn't have the "or later" bit in it, either. The license of Linux is GPLv2 (only). It also has an explicit statement, for the avoidance of doubt, that a program's use of syscalls provided by Linux does not make the program a derivative work of Linux. Therefore, a GPLv3 GNOME operating environment can run just fine atop a GPLv2 Linux.
    5. Re:Probably not as big an issue as you think by shaitand · · Score: 1

      'You seem to suggest I can grab GPLv2 code, mix it with my own code, and releasing the final product as GPLv2 or later'

      Where do I suggest that? The question was being asked of GPLv2 libraries and I specifically said this would allow you to let others deal with the libraries.

      That said, I really don't see why not. GPLv2 technically doesn't require you to redistribute under GPLv2, it requires you to allow those you distribute to all the same freedoms they would have under GPLv2. IANAL but as far as I can tell, you couldn't redistribute 'GPLv2 or later' under 'GPLv2 only' but there is nothing to stop you from dropping restrictions.

      This is a very good thing of course. I imagine there are quite a few GPL projects who are using GPLv2 code with the assumption that it is okay for their GPLv2 project.

    6. Re:Probably not as big an issue as you think by sumdumass · · Score: 1

      And code that is derived form a GPL covered work has to be licensed under that license. If the license was GPLv2 or later, it has to be GPLv2 or later. (the GPLv3 isn't out yet). If it is GPLv2 only, it has to be licensed as GPLv2 only. You cannot change the license period. Moveing from GPLv2 only to GPLv3 or later version is doing just that, changing the license.

      I have a feeling this is going to cause problems once the GPLv3 is out and third parties get confused about improperly marked derived code.

    7. Re:Probably not as big an issue as you think by shaitand · · Score: 1

      Upon rereading section 6 you are correct. It does say that the license is automatically granted under the same terms AND conditions before it goes on to say that you can't impose additional restrictions on the rights granted under those terms.

      'I have a feeling this is going to cause problems once the GPLv3 is out and third parties get confused about improperly marked derived code.'

      I doubt it will cause that much trouble. I think it is reasonably safe to assume that a GPLv2 or later project consists of GPLv2 or later code only in practice. Here is why:

      1. There is very little GPLv2 only code in the first place.
      2. You are acting in good faith with the license you have received.
      3. Nobody in the community is about to sue someone over this petty nonsense.
      4. If you are contacted by someone in the community, it will probably just be to give you permission to continue using the code.
      5. A year after GPLv3 is released nobody will be using GPLv2 anyway.

    8. Re:Probably not as big an issue as you think by sumdumass · · Score: 1

      I was thinking along the lines of GPLv2 only projects containing code with suggested GPLv2 or later licenses that were derived form the parent licensed code.

      Lets say I make a media player. It is released under GPLv2 only. You make a front end for it and a few codecs that work with my media player only and release them under the GPLv2 or later. Technically, it is v2 only because your work is a derived work from mine. When you give up and someone else takes your code and switched it to GPLv3 in an attempt to impose restrictions on my code, we have a problem. Now I am either going to be forced to go GPLv3 in order to have a front end and codec or I am going to get pissed and cause a license dispute.

      I understand that if it is your code, you can change the license as you see fit. however, you cannot make a derived code and then license it BSD or anything other then GPL under the version it was presented to you to work from. So there is a situation here. And even though you are the copyright holder, you are bound to obligations presented when you took the opportunity to work from my works.

      So, the no one is going to sue thing might be a third party doing so or a snubbed programmer who thinks the license is going to be used to subvert their program. As for the extending the license, they don't really have that option if it is derived code. As I said before, you cannot build from a GPLed product and then license it as something else, It has to be GPL whatever version with the same terms. All it takes is one troll company to submit something and run with it. All it could take is some developer who is getting pinched or has a problem with the GPLv3 to cause an issue.

  4. Just use GPLv2 by 3247 · · Score: 4, Informative
    The licenses are compatible if you just use the wording suggested by the FSF:

    This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
    I've highlighted the relevant words.
    --
    Claus
    1. Re:Just use GPLv2 by Anonymous Coward · · Score: 0

      The problem with that approach is that the moment you include GPLv2 code in your project the entire thing has to become GPLv3. From TFA:

      When we say that GPLv2 and GPLv3 are incompatible, it means there is no legal way to combine code under GPLv2 with code under GPLv3 in a single program. This is because both GPLv2 and GPLv3 are copyleft licenses: each of them says, "If you include code under this license in a larger program, the larger program must be under this license too." There is no way to make them compatible. We could add a GPLv2-compatibility clause to GPLv3, but it wouldn't do the job, because GPLv2 would need a similar clause.
    2. Re:Just use GPLv2 by SEWilco · · Score: 1

      His project could be GPLv2 and let others adopt GPLv3. But he can't accept donated GPLv3 code unless he keeps two copies, one for under each license, and keeps v3 code out of the v2 version.

    3. Re:Just use GPLv2 by shaitand · · Score: 1

      I don't know about GPLv3 but technically GPLv2 only requires that you provide the same flexibility and rights to those you distribute to. I could certainly be wrong it has been awhile since I read it so double check. But assuming my memory serves you could always take GPL'd code and redistribute it under a less restrictive license.

      If that is true of GPLv3, you might be able to go backwards since GPLv3 doesn't grant additional rights and only imposes additional restrictions.

    4. Re:Just use GPLv2 by Tim+C · · Score: 4, Informative

      That doesn't make them compatible. That clause allows the recipient to *change* the licence from v2 to v3 (or later). It does not allow you to mix v2-licensed code and v3-licensed code in the same binary; it means that as soon as you add in some v3-licensed code, the entire thing becomes v3-licensed.

    5. Re:Just use GPLv2 by Anonymous Coward · · Score: 0

      Off topic, but what I don't understand is why the FSF doesn't just include a compatibility clause in GPLv3 anyway so that this problem is avoided when GPLv4 comes around. You can't retroactivly add a clause in GPLv2, but putting one in GPLv3 and in GPLv4 when it comes around would make sense.

    6. Re:Just use GPLv2 by HeroreV · · Score: 1

      If you mean allowing adding GPLv3 code to a GPLv2 project, that would allow anyone to write just a few lines of GPLv2 code and then bring in a bunch of GPLv3 stuff, and have it all under the GPLv2.

      If you mean adding GPLv3 code to a GPLv4 project, that's already allowed; it's just optional. Anybody can choose to release their code as GPLv3 or later just as much code has already been released as GPLv2 or later.

      If you're asking why they're making the or later part optional instead of mandatory, that's probably because many developers don't like the or later part.

    7. Re:Just use GPLv2 by dirtyhippie · · Score: 1

      Are you intentionally being dense here, or have I smoked too much crack today?

      The original poster said "I have no particular passions about either license". So you change the license in the formerly gplv2 code, then compile it and ship your gplv3 binary with it. Problem solved.

    8. Re:Just use GPLv2 by celticmonkey · · Score: 1

      Won't this pose a great big temptation to fork Linux if Solaris goes GPL 3 and Linus wants keep his kernel GPL 2? As I understand the GPL, anyone can take Linux and fork it to a newer GPL license. It's not inconceivable that Debian or some other distro might do it in order to get the right to use Solaris code.

    9. Re:Just use GPLv2 by superm401 · · Score: 1

      That's not right. Derivative works have to be under the same license (or possibly a later version, if the copyright holder allowed this)

  5. GPLv2 or later by Aim+Here · · Score: 3, Informative

    Just pick GPLv2, with the usual 'version 2 or later' language in it, for your own code.

    That allows you to mix any variation of your code, GPLv2-or-later code and/or GPLv3 code in a GPLv3 project.

    It also allows you to use your code with those relatively few projects that are 'GPLv2 only'(such as the Linux kernel) and/or GPLv2-or-later code in a GPLv2-only project.

    That's about as compatible as you'll get with those three flavours of GPL. No license you pick will allow you to mix 'GPLv2 only' code with GPLv3 code.

  6. How many binaries involved? by Penguinisto · · Score: 3, Insightful
    If there's more than one, you can license each binary under whatever license you want, with the libs under LGPL if it floats your boat.

    OR... you can use Trolltech's licensing scheme (OSS projects get to use it free, commercial ones have to pay up licensing fees).

    I like either GPL version, but if you're not too hung-up on using GPL, http://www.opensource.org/ has a whole array of open-source offically-sanctioned licensing - one of those may fit your needs better. (cue RMS fans w/ mod points stampeding in protest, but seriously; if it does the job, use it).

    The beauty of this is, it's all up to you how you want to handle it.

    /P

    --
    Quo usque tandem abutere, Nimbus, patientia nostra?
    1. Re:How many binaries involved? by Anonymous Coward · · Score: 0

      Of course, QT is one of those "few things" that are GPLv2 only. You cannot distribute a GPLv3 only KDE program. If you believe in the GPLv3 and want to use it, KDE is not an option.

      As for the GPLv2 or later... one interesting question that nobody has brought up is that once the GPLv3 exists, "GPLv2 or later" will not be compatible with "GPLv2 only". "v2 or later" allows additional restrictions to be added by third parties whereas "v2 only" does not. IANAL etc, but it's always seemed like a glaring hole to me.

    2. Re:How many binaries involved? by Chandon+Seldon · · Score: 1

      I like either GPL version, but if you're not too hung-up on using GPL, http://www.opensource.org/ has a whole array of open-source offically-sanctioned licensing - one of those may fit your needs better. (cue RMS fans w/ mod points stampeding in protest, but seriously; if it does the job, use it).

      So... you're suggesting that he solve his GPL version compatibility problem by choosing some other license that's potentially incompatible with all versions of the GPL? Somehow I don't think that's going to help.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    3. Re:How many binaries involved? by VGPowerlord · · Score: 1

      Well, the original poster could just choose one from the FSF's list of GPL Compatible Licenses.

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    4. Re:How many binaries involved? by Sam+Douglas · · Score: 1

      Of course, QT is one of those "few things" that are GPLv2 only. You cannot distribute a GPLv3 only KDE program. If you believe in the GPLv3 and want to use it, KDE is not an option. Cut the FUD, the license hasn't been released yet. There is nothing stopping Trolltech from licensing Qt under the GPLv3 when it is released
    5. Re:How many binaries involved? by Anonymous Coward · · Score: 0

      There most definitely is. A staggeringly huge number of projects are currently v2 (most of which are "or later".) If Trolltech went v3 on new releases, all Qt stuff would need to be v3. If they stay with v2, Qt programs cannot be v3. It's only if Trolltech decides to go with "v2 or v3" or "v2 or later" that the choice will be up to the developers. For free KDE programs, the choice is up to Trolltech.

    6. Re:How many binaries involved? by PhilHibbs · · Score: 1

      And choosing a "GPL-compatible" license solves the compatibility problem between GPLv2 and GPLv3, whilst still providing the protections of GPLv3 to some of the code base? Your answer is basically Patient: Doctor it hurts when I do this, Doctor: Then don't do that.

  7. Use the FSF's suggestion by johnmrowe · · Score: 1, Redundant

    What's wrong with the form of words recommended by the FSF?

        This program is free software; you can redistribute it and/or
        modify it under the terms of the GNU General Public License
        as published by the Free Software Foundation; either version 2
        of the License, or (at your option) any later version.

    John

    1. Re:Use the FSF's suggestion by HeroreV · · Score: 1

      What's wrong is that many don't use it. That means all the GPLv2 only code is completely walled off from all the GPLv3 code.

  8. The neverending v2 vs v3 FUD... by Anonymous Coward · · Score: 0

    YOU DON'T HAVE TO USE GPLv3. You can keep using GPLv2 if you want.

    Slashdot should be the first place to clarify this matter instead of joining the chorus of misinformation for the sake of ad revenue.

  9. There is no barricade by noidentity · · Score: 0, Offtopic

    Seriously, RTFM first.

  10. Re:What's the point ? by kimvette · · Score: 1, Informative

    I'll take the bait. . .

    Most cameras are mass storage devices. If you can't get them to work with Linux, I do not think the problem is Linux or the computer or the camera.

    Or did you mean a webcam? That isn't a problem either. See http://www.theinquirer.net/default.aspx?article=39 291

    --
    The Christian Right is Neither (Christian nor right). See: Matthew 23, Matthew 25, Ezekiel 16:48-50
  11. If you do run into v2 only code..... by budword · · Score: 1

    You could contact the copyright owner and ask them if you can include that code in your GPLv3 project. If it's a single copyright holder you have a pretty good chance. If it's the kernel, with 100's or 1000's of contributors, well, your mileage may vary. Best of luck....

  12. Fork the libraries by Tjp($)pjT · · Score: 0

    GPLv2 allows you to do what you want with the code as long as you allow access to the source. Those items under LGPLv2 and GPLv2 you care to use, just fork them and maintain separate branches of development. For your own developed code, put it under whatever license you want. You want to allow folks to feed back changes to you, fine, add the license terms to the project in whole (maybe editorial copyright is implied here) that allows you and your group et. al. to restrict changes folded back into the main line. The downside is you'll be responsible for future maintenance of the forked code, and you risk someone forking your code. But you can reduce the risk of redistribution by restriction of the work you do, causing the folks who want the source to pull it from you based on your license terms. For a good example of dealing with multiple licenses for the same code take a look at MySQL...

    After your research is all done, ask yourself if there is a need to worry at all about GPLv2 versus GPLv3 and use GPLv2 for now. Software that is set free should really be set free. Personally BSD licenses are simpler and have not been restrictive of innovation to BSD or similarly licensed code bases. So look to what your goal is and then apply Occam's Razor ... And of course, free advice is worth what you pay for it.

    --
    - Tjp

    I am in wallow with my inner money grubbing capitalistic pig. ... Oink!

    1. Re:Fork the libraries by Anonymous Coward · · Score: 1, Insightful

      GPLv2 allows you to do what you want with the code as long as you allow access to the source. Those items under LGPLv2 and GPLv2 you care to use, just fork them and maintain separate branches of development. For your own developed code, put it under whatever license you want. You want to allow folks to feed back changes to you, fine, add the license terms to the project in whole (maybe editorial copyright is implied here) that allows you and your group et. al. to restrict changes folded back into the main line. The downside is you'll be responsible for future maintenance of the forked code, and you risk someone forking your code. But you can reduce the risk of redistribution by restriction of the work you do, causing the folks who want the source to pull it from you based on your license terms. For a good example of dealing with multiple licenses for the same code take a look at MySQL...

      *bzzt* If you link against GPLv2 code, then you are required to distribute the whole under the GPLv2. And if you link against GPLv3 code, then you are required to distribute the whole under the GPLv3. Simply keeping the source open and available isn't sufficient. You can fork the libraries all you like, but you still can't combine your fork with code written under another license and then legally distribute the end product.

      MySQL is a special situation, because they own the copyright on all the code, giving them the legal right to relicense it under whatever terms they feel like. If you want to incorporate third-party code into your project, you don't have that luxury.

      The original question is a little vague, but it sounds like (s)he wants to link against third-party GPLv2 code today, and later incorporate other third-party GPLv3 into the project. If you do that, you can't distribute the end result under any circumstances, since there's no way to simultaneously satisfy the requirements of both the GPLv2 and GPLv3. (Unless, of course, the GPLv2 code includes the "or ... any future version" clause, in which case you can legally distribute the whole codebase under the GPLv3.)

    2. Re:Fork the libraries by Kjella · · Score: 1

      Your post makes no sense. If you want to link to a GPLv2 library and distribute it, you must license the work as a whole including your work under the GPLv2 license (or compatible). The GPLv2 explicitly says that you can not impose any additional restrictions, which is what you're talking about. MySQL owns the copyright to all their code and can relicense it as they please, which makes the comparison irrelevant. And your suggestion to fork the library would not change the license or the terms, so it's plain illogical and while I never understood where you were going with it, you're wrong.

      Personally BSD licenses are simpler (...) And of course, free advice is worth what you pay for it.

      Yes, please stay with BSD. Please do not make any posts on what the GPL does or any comparisons with BSD though, since you obviously have absolutely no idea what you're talking about. For your own sake, I wouldn't admit to not understanding a license that only requires basic English comprehension and not a degree in legalese and is maybe 1/10th and complex as any EULA but do as you will. Because in this case, I would say the advice is worth less than that.

      --
      Live today, because you never know what tomorrow brings
    3. Re:Fork the libraries by Tjp($)pjT · · Score: 1
      I realize it is in general bad form to reply to yourself, but this is to address the misconceptions posted regarding the parent.

      The GNU Project has two principal licenses to use for libraries. One is the GNU Library GPL; the other is the ordinary GNU GPL. The choice of license makes a big difference: using the Library GPL permits use of the library in proprietary programs; using the ordinary GPL for a library makes it available only for free programs.


      So for the libraries under LGPL link them to code you don't distribute source for if that is your desire. It is OKAY by the license terms. For the code under GPLv2 that you don't want under GPLv3 in your development tree. Fork that code.

      GPLv2 allows you to do what you want with the code as long as you allow access to the source.
      That is the first line of my post. Hence the allow access to the source. Allow access to the source. Allow access to the source. I am well within LGPL to develop a proprietary piece of code that is not open source and link to an LGPL library. Legit. Even warned against on the GNU site. READ BOTH LGPL AND GPL licenses before opening up with the blasters. Lastly I recommended GPLv2. So please. Read the post before flaming. And read the license terms of the TWO licenses being discussed. And don't assume an author contradicts himself. Lastly. I love that the pro-GPL crowd modded the parent down.
      --
      - Tjp

      I am in wallow with my inner money grubbing capitalistic pig. ... Oink!

  13. Ask the FSF by Anonymous Coward · · Score: 1, Informative

    The GPLv3 Wiki FAQ is here:

        http://gplv3.fsf.org/wiki/index.php/FAQ_Update

    You can check the questions already on it to find if yours is answered, and if not, add your question to it. I added a couple of questions and within a couple of days, someone had merged them into one and answered it.

  14. Closed Source by dangitman · · Score: 4, Funny

    What do you think is the best way to address the GPLv2-to-GPLv3 transition without ending up on one or the other side of the barricade?"

    Just become a closed source developer. That way you won't be on either side of the GPL fence. And you could (nay should) add annoying DRM to your software.

    --
    ... and then they built the supercollider.
    1. Re:Closed Source by Richard_J_N · · Score: 0, Redundant

      How did the parent get marked as Troll? Clearly, it's Funny!

  15. Re:What's the point ? by prencher · · Score: 0, Offtopic

    Also, I like birds?

    What the hell?

  16. Can you do both at the same time?? by Anonymous Coward · · Score: 1, Informative

    There's one slight comment to this. If you link with GPL libraries it is considered by many that your code has to be licensed under that license. If you are using libraries which are GPL V2 only and libraries which become GPL V3 only, there might be some incompatibility since you can't be both at the same time (dual licensing lets the licensee choose, but not actually have both at the same time). In this case your code can be distributed with the "any version later than 2" and will be compatible with both sets of libraries individually, however, distribution of object code which needs both libraries to work might be a problem. I'm not sure if someone has a good answer to what the limitatinos would be? Most people sensibly use the FSF recommended wording and so you can use "either version 2 of the License, or (at your option) any later version.". In this case, you should wait until the GPL v3 is out and then start using GPL v3 for all of the libraries. Your own code should be able to be "version 2 or later" without a problem.

    1. Re:Can you do both at the same time?? by DrJimbo · · Score: 1

      If you link with GPL libraries it is considered by many that your code has to be licensed under that license.
      This is misleading at best. Many GPL'ed libraries, including GNU's own glibc, are licensed with the LGPL (lesser/library GPL). This license lets anyone link to the code. What you say is true only if a library is licensed under the GPL (and not the LGPL).

      --
      We don't see the world as it is, we see it as we are.
      -- Anais Nin
    2. Re:Can you do both at the same time?? by Chandon+Seldon · · Score: 1

      This is misleading at best. (...) What you say is true only if a library is licensed under the GPL (and not the LGPL).

      Right. That's why he said "GPL" and not "LGPL". There are a number of libraries that are licensed explicitly under the GPL with the express purpose of requiring that code linked with them be released under the GPL. In the specific case of "GPLv2 only" libraries, this could cause something of a mess with GPLv3 - hopefully the authors can be persuaded to change their license to "GPLv2 or later" or "GPLv2 or v3".

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    3. Re:Can you do both at the same time?? by DrJimbo · · Score: 1

      Please give an example of a library licensed under the GPLv2 (not the LGPLv2) with the "any later version" clause removed. There is probably a very small intersection between the people who would use the GPL (not the LGPL) for a library and the people who distrust the FSF so much that they would remove the "any later version" clause.

      --
      We don't see the world as it is, we see it as we are.
      -- Anais Nin
    4. Re:Can you do both at the same time?? by ComaVN · · Score: 1

      Personally, I find the "any later version" clause the weirdest thing about the whole GPL. It's not about distrusting the FSF, it's about common sense. I don't sign blank checks, I don't sign contracts that can be changed at will by the other party, why should a software license be different?

      I agree with GPL v2. I'm not sure yet about v3. Who can predict what v4, 5 or 6 might look like? With that clause, I'd have no choice but to agree with it.

      --
      Be wary of any facts that confirm your opinion.
    5. Re:Can you do both at the same time?? by DrJimbo · · Score: 1

      The big news in free software land is the patent peace deal between Microsoft and Novell and the SUSE vouchers Microsoft is planning to sell. The vouchers have no expiration date so if just one voucher is redeemed after SUSE releases any GPLv3'ed software then all recipients of that GPLv3'ed software are safe from any Microsoft patent attacks. It is expected that a lot of the packages that make up the GNU+Linux operating system will be switching over to the GPLv3 once it is finalized.

      Unfortunately the heart of the GNU+Linux operating system, the Linux kernel does not have the "any later version" clause so the kernel code will not enjoy the patent protection that the GNU code will have. Linus has said that it will be almost impossible to upgrade the kernel license because so many people are involved.

      Licenses are like code, they need to be upgraded over the course of time. The major difference is that licenses are upgraded over a longer time scale than code. Removing the "any later version" clause for the kernel was extremely short-sighted IMO. It was like burning code into ROM and providing no way for patches to be applied. This works fine for a while but sooner or later either due to a bug or due to changing external circumstances, you really, really want to change the code, but you cannot and you are screwed.

      It's the same thing with a license. The GPLv2 is showing its age. There is the loophole TiVo found that lets them legally use GPLv2 code while denying end users one of the four basic freedoms. The patent landscape has changed significantly and Microsoft has been threatening to attack FOSS with its huge patent portfolio. I realize that Linus thinks the TiVo is a good thing, but he would really like to have better patent protection than what the GPLv2 provides. Finally, unlike the GPLv2, the GPLv3 will be compatible with the Apache license.

      The "any later version" clause was put in to make it easier for large projects to do license upgrades when it is hard or impossible to get in touch with all of the diverse authors. It is somewhat ironic that the project that would have benefited the most from this feature, the Linux kernel, was licensed with that clause removed.

      --
      We don't see the world as it is, we see it as we are.
      -- Anais Nin
    6. Re:Can you do both at the same time?? by Znork · · Score: 1

      "I don't sign blank checks"

      It's a bit easier to write another check than to write another software project.

      Mainly the weirdness is due to the changed way the GPL is used these days tho. Originally the FSF was the sole copyright holder to many of the GPL licensed projects (and they require copyright assignment on included code); for them to release code and giving second-hand recepients the option to update the license without the cooperation of middle-men makes perfect sense.

      For other projects requiring copyright assignment there is no real weirdness (altho, of course, requiring copyright assignment may make casual contributors reluctant to contribute, depending on how much they trust you). The weirdness surfaces when you mix multi-sourced GPL code and the only option for license changes becomes the 'or-later' clause. In that case, I'd say that the FSF is pretty much the only organization I'd trust with the blank check.

    7. Re:Can you do both at the same time?? by ComaVN · · Score: 1

      The "any later version" clause was put in to make it easier for large projects to do license upgrades when it is hard or impossible to get in touch with all of the diverse authors. It is somewhat ironic that the project that would have benefited the most from this feature, the Linux kernel, was licensed with that clause removed.


      How does that clause help at all with this? You'd still have to change the license of the kernel from "v2 or any later version" to "v3 or any later version", requiring the consent of all authors, to prevent TiVo from just using the kernel under v2.
      --
      Be wary of any facts that confirm your opinion.
    8. Re:Can you do both at the same time?? by Hal_Porter · · Score: 1

      Licenses are like code, they need to be upgraded over the course of time. The major difference is that licenses are upgraded over a longer time scale than code. Removing the "any later version" clause for the kernel was extremely short-sighted IMO. It was like burning code into ROM and providing no way for patches to be applied. This works fine for a while but sooner or later either due to a bug or due to changing external circumstances, you really, really want to change the code, but you cannot and you are screwed.

      It's the same thing with a license. The GPLv2 is showing its age. There is the loophole TiVo found that lets them legally use GPLv2 code while denying end users one of the four basic freedoms. The patent landscape has changed significantly and Microsoft has been threatening to attack FOSS with its huge patent portfolio. I realize that Linus thinks the TiVo is a good thing, but he would really like to have better patent protection than what the GPLv2 provides. Finally, unlike the GPLv2, the GPLv3 will be compatible with the Apache license.


      See, there's a problem here. Fixing a bug or a security hole in code is something which is an objective improvment. So I can turn on auto updates on a box without many qualms. But a license is something else. One man's loophole of flaw is another man's feature. E.g. if I were IBM on Linux Torvalds the anti-Tivoisation features in GPL3 may not be an achievement - I may not want my users to be granted those freedoms because I don't have the power to grant them. The patents in question for example may be third party ones I can't freely license even if I wanted to. And Linus wants to keep his keys private so he can differentiate between code provided by a trusted party and an untrusted one.

      Come to think of it, fixing bugs in code is not really uncontroversial either. If you had an experience of commercial development, you'd know that fixing bugs is mostly seen as an improvement by end users. But every now and again, the fix breaks some weird misuse of the product that end users depend on. Or introduces a bug that kills them even as it fixes a bug which they don't care about. And in fact, most experienced admins don't turn on auto updates. They download the updates to a test machine, check if they cause problems and only then deploy them across the network.

      It seems that you're arguing for the essentially elitist and undemocratic idea that a small group of experts should be responsible for deciding what improvements to make, and anyone that disagrees is either dumb or worse dishonest. And that while people will complain about the patent licensing parts of GPL3 for purely selfish reasons they will eventually accept them.

      But the last part in particularly is completely wrong. Lots of big companies would work with GPL2 but can't accept GPL3. The loopholes as you see them were actually features from their point of view. And it's absurd for deveopers to leave in the "version X or later" clause when GPL4 or GPL5 may allow end users of the software to make demands on them which they may not legally be able to meet. In general if it were possible for a group of experts to decide objectively on progress and convince end users to give them the power to push them out, then the Soviet Union would not have collapsed.

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
    9. Re:Can you do both at the same time?? by Anonymous Coward · · Score: 0

      If you link with GPL libraries it is considered by many that your code has to be licensed under that license.
      Very likely, but they're wrong.

      If you link with GPL libraries, then the linked binary has to be licensed under the GPL, which means that if you distribute it you have to provide full source code to the binary (both your code and all the libraries you linked to, with certain exceptions such as libraries that are distributed as standard with the compiler or operating system), and all source code so provided must be effectively licensed under the GPL.

      However, that does not mean that your code itself has to be licensed under the GPL. You can dual-license it if you want, but you can also use a single GPL-compatible license, in which case you needn't mention the GPL at all when distributing only your source code.

      The difference is quite subtle, but it is different.
    10. Re:Can you do both at the same time?? by Anonymous Coward · · Score: 0

      I agree with GPL v2. I'm not sure yet about v3. Who can predict what v4, 5 or 6 might look like? With that clause, I'd have no choice but to agree with it. I understand you're talking about ideals but the argument is not really practical. Unless you're writing the next sendmail, your code will be under layers of digital dust by the time v4 comes around.
    11. Re:Can you do both at the same time?? by samkass · · Score: 2, Interesting

      I highly doubt that logic will hold up in court. In fact, the "or later" clause of the GPL itself has never been tested in court. In addition, I would be surprised if a huge number of free software projects don't fork over the GPLv2/v3 debacle, meaning you'll have two potentially incompatible versions of every library you use.

      Incidentally, TiVo's use is NOT a "loophole". Back when GPLv2 was written, Stallman only seemed to care about how software was used. Now GPLv3 is trying to restrict people's use of HARDWARE as well. You can take TiVo's code, go build your own hardware, and use TiVo's code on it. But you can't use your own code on TiVo's hardware. I'm afraid I'm in the camp that thinks GPL has no business telling people what they can and can't do on their hardware.

      --
      E pluribus unum
    12. Re:Can you do both at the same time?? by DrJimbo · · Score: 2, Informative
      samkass said:

      Now GPLv3 is trying to restrict people's use of HARDWARE as well.
      The TiVO hardware is compatible with the GPLv3 according to Jim Barton, the CTO of TiVO who said in an ACM article:

      Each TiVo DVR includes a secure microprocessor to which are delegated all public-key-based operations. This secure microprocessor contains a unique public/private key pair for each DVR, so that there are no global secrets for DVR authentication.
      Even existing TiVos could be made GPLv3 compliant if the TiVo corporation made the private keys for each TiVo available to the owner. It is all about the freedom. It's not a hardware issue at all.

      samkass also said:

      But you can't use your own code on TiVo's hardware. I'm afraid I'm in the camp that thinks GPL has no business telling people what they can and can't do on their hardware.
      The GPL is all about giving people control over their own hardware, not anyone else's. Nothing in the GPL gives me the right to crack into TiVo's servers and run my own code on them. The TiVo boxes are owned by the people who bought them from the TiVo corporation. It is the TiVo corporation that is in the business of telling people what they can and cannot run on their own hardware. They are always free to do this with proprietary or BSD (or even GPLv2) code. People who don't want their code used in this way are free to upgrade to the GPLv3 which would prevent TiVo from distributing their code without also passing on the four freedoms.

      --
      We don't see the world as it is, we see it as we are.
      -- Anais Nin
    13. Re:Can you do both at the same time?? by DrJimbo · · Score: 3, Insightful

      The patents in question for example may be third party ones I can't freely license even if I wanted to.
      Third party patents are not affected by the GPL. It is not magical.

      And Linus wants to keep his keys private so he can differentiate between code provided by a trusted party and an untrusted one.
      Torvalds would be able to keep his private signing keys private even with the GPLv3. This FUD was debunked over a year ago. As long as he isn't trying to use his private key to control what GPLv3 software other people can run on their own hardware, he's fine.

      It seems that you're arguing for the essentially elitist and undemocratic idea that a small group of experts should be responsible for deciding what improvements to make, and anyone that disagrees is either dumb or worse dishonest.
      Are you sure you are in the right thread? It seems you are implying that the extremely open process of crafting and refining the lastest version of the GPL was somehow elitist. It was, in fact, one of the most open processes in the history of mankind. The FSF went on a world tour telling anybody and everybody who would listen about their ideas for the new license. The had an interactive version of the license online where anybody could post comments linked directly to any word or phrase in the license and everybody could see all the posted comments. They also encouraged people to email comments. All comments were read and considered by a bunch of committees that were composed of basically everyone who was at all interested in participating.

      My calling people who disagree with the GPLv3 "dumb or dishonest" seems to be a figment of your imagination. I've always insisted that people are free to use whatever license they want for their own code. I haven't called them dumb or dishonest for making that choice.

      Lots of big companies would work with GPL2 but can't accept GPL3.
      SUN and IBM seem happy with the GPLv3. TiVo is not happy because they won't be able to use GPLv3 code without passing on the four freedoms and Microsoft seems horrified by the GPLv3. The GPLv3 does a better job at enforcing freedom. People or corporations who are against freedom will be against the GPLv3. That's fine. But even if a lot of corporations (besides TiVo and Microsoft) were against the GPLv3 I don't think it would be wise to amend it just to cater to them. Most of our world now seems to cater to the large corporations: the mass media is corporate controlled; and even the Congress and the president (both parties) seem to be controlled by the corporations. Would it be such a sin to have one tiny little corner of the world that does not kowtow to the corporations? Free software should not be neutered in order to cater to the whims of people who don't want software to be free.

      And it's absurd for deveopers to leave in the "version X or later" clause when GPL4 or GPL5 may allow end users of the software to make demands on them which they may not legally be able to meet.
      No license or contract can force someone to break the law. If you distrust the FSF so much then you shouldn't use the "any later version" clause in your licenses. That's fine. That's your choice. If you are part of a massive project involving many developers then license upgrades will be difficult, perhaps even impossible. I chose to trust the FSF so I kept the "any later version" clause when I licensed my software. That is my choice. I gave up some control in exchange for an easier upgrade path especially for other people who might want to use some of my code in a new project.

      --
      We don't see the world as it is, we see it as we are.
      -- Anais Nin
    14. Re:Can you do both at the same time?? by Hal_Porter · · Score: 1

      Are you sure you are in the right thread? It seems you are implying that the extremely open process of crafting and refining the lastest version of the GPL was somehow elitist. It was, in fact, one of the most open processes in the history of mankind. The FSF went on a world tour telling anybody and everybody who would listen about their ideas for the new license. The had an interactive version of the license online where anybody could post comments linked directly to any word or phrase in the license and everybody could see all the posted comments. They also encouraged people to email comments. All comments were read and considered by a bunch of committees that were composed of basically everyone who was at all interested in participating.

      And then Stallman did exactly what he wanted to do. At the end of the say, all the consultation in the world can't disguise that GPL3 is exactly what he wants it to be, nothing more an nothing less.

      The GPLv3 does a better job at enforcing freedom.

      Wow, enforcing freedom. That's a chilling phrase.

      No license or contract can force someone to break the law.

      But it can grant rights to users of my software I can't meet. So I end up either in breach of the GPL or in breach of the exclusive patent license. And the worst thing is that I never negotiated the GPL change. The FSF changed it out from under me - users of my software can opt for version 3 and them demand rights I can't give them.

      If you distrust the FSF so much then you shouldn't use the "any later version" clause in your licenses.

      Or I could invent my own license somewhere between BSD and GPL and give up them completely. Luckily all my projects don't have any third party code - I own the original copyright, so I can license them however I want. But if they did and I did have exclusive patent licenses, I'd be screwed.

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
    15. Re:Can you do both at the same time?? by sumdumass · · Score: 1

      The big news in free software land is the patent peace deal between Microsoft and Novell and the SUSE vouchers Microsoft is planning to sell. The vouchers have no expiration date so if just one voucher is redeemed after SUSE releases any GPLv3'ed software then all recipients of that GPLv3'ed software are safe from any Microsoft patent attacks. It is expected that a lot of the packages that make up the GNU+Linux operating system will be switching over to the GPLv3 once it is finalized.
      I have hear this time and time again but I fail to see the logic behind it. Could you explain this?

      Licenses are like code, they need to be upgraded over the course of time. The major difference is that licenses are upgraded over a longer time scale than code. Removing the "any later version" clause for the kernel was extremely short-sighted IMO. It was like burning code into ROM and providing no way for patches to be applied. This works fine for a while but sooner or later either due to a bug or due to changing external circumstances, you really, really want to change the code, but you cannot and you are screwed.
      Licenses are not like code. When you fix code, you don't add things and make it incompatible with itself. The GPL is supposed to be changed within the spirit of itself. This doesn't seem to be the case and will likely be subject to some court cases.

      The "any later version" clause was put in to make it easier for large projects to do license upgrades when it is hard or impossible to get in touch with all of the diverse authors. It is somewhat ironic that the project that would have benefited the most from this feature, the Linux kernel, was licensed with that clause removed.
      Lol.. No, the software would have forked like the majority of project that GO GPLv3 will do. And they will do this for a number of reasons but the primary one will be MS. MS will craft a patent proctection scheme and place it in windows in essence making everyone a mini-novell. And they will end up selling a license for their software for 10 times the normal license fee so if you don't want the protection you will be paying out the ass. The GPLv3 will kick in the anti novell clauses and forbid anyone who uses MS software from participating in the freedoms the GPLv2 is attempting to protect.

      It is a self destruct button. PLain and simple. And there is no lock, no key and no one watching when it will be pressed.
    16. Re:Can you do both at the same time?? by sumdumass · · Score: 1

      Torvalds would be able to keep his private signing keys private even with the GPLv3. This FUD was debunked over a year ago. As long as he isn't trying to use his private key to control what GPLv3 software other people can run on their own hardware, he's fine.
      Lol.. This wasn't FUD and it wasn't ever debunked. The language dealing with it was dropped from the license during one of the draft revisions. You need to slow down a little and change that to "this has been rewritten and isn't a concern any more".
    17. Re:Can you do both at the same time?? by Alsee · · Score: 1

      TiVo is, as far as I can tell, a direct violation of the GPLv2.

      The GPL v2 says that if you distribute an executable, you must supply the source code for that executable. You cannot distribute an executable for some office application and supply source adequate for compiling some DIFFERENT executable (source sufficient to compile a Tic-Tac-Toe program for example). You cannot distribute an executable for some Cray application and supply source for a DIFFERENT executable (source sufficient to compile an equivalent application executable for a Commodore64).

      If TiVo distributes an executable, they must supply all source used/needed to produce that executable. No ifs ands or buts.

      As far as I can see TiVo is already violating the GPLv2. They are deliberately withholding some of the source information they used to compile that executable. The source they supply is deliberately incomplete and inadequate to recreate that executable. It's just that none of the violated programmers has (yet) undertaken the rather daunting task of suing TiVo for it. It's quite likely that many of the violated programmers simply do not realize that TiVo is in violation in this manner.

      So I say no loophole exists. And if TiVo were somehow not in violation, then yet it absolutely would be a loophole. The original intent and operation most absolutely was to prohibit someone from distributing an executable while supplying incomplete source for that executable.

      -

      --
      - - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
    18. Re:Can you do both at the same time?? by Alsee · · Score: 1

      But it can grant rights to users of my software I can't meet.

      No it can't.

      You either violated someone else's copyright when you distributed their code, or you didn't. End of story. If you distribute some "GPLv2 or later" code, and 20 years later someone else then decides to rely on the terms of GPLv99 for their copyright authorization to redistribute, that has absolutely no affect on you.

      if they did and I did have exclusive patent licenses, I'd be screwed.

      It depends on what you mean by "screwed".

      For starters it has absolutely no affect on any GPL software you distributed before you signed that contract. The only issue is that that contract might prohibit you from complying-with/relying-upon the GPL for future distribution permissions in some cases. If you sign an exclusive contract with Pepsi, and that contract prohibits you from doing X Y or Z, then it would be more than a little silly for you complain when it prevents you from entering some particular arrangement with Coke involving X Y or Z. If you sign a contract with Acme corp, and that contract says that you can never agree to return a borrowed book, it would be kinda silly for you to then blame libraries when you are unable to agree to return books as a condition for getting permission to borrow them.

      The intent and operation of the GPL is that you have copyright permission to redistribute other people's work if-and-only-if you also pass along on the same terms the relevant rights and permissions you possess relating to the covered code. If you do pass on those rights and permissions, then you so have permission to redistribute the other person's work. If you will not or cannot pass on those rights and permissions, then you have no permission to redistribute the other person's work. Simple.

      -

      --
      - - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
    19. Re:Can you do both at the same time?? by Hal_Porter · · Score: 1

      The case I worry about is where I contribute code to a GPL2 or later project. Then later on some users opts to license it under GPL3 or GPL4. This gives him extra rights, for example to patent licenses and so on. But the patents he gets a right to license are ones my company has an exclusive license to following some patent lawsuit. I.e. we won't get sued for infringing them, but we can't license them to third parties.

      Or where I own a company that bases a project on non GPL code. Some developer comes along and cut'n'pastes GPL code into it, enough to be non fair use. Under the GPL I'm supposed to release the source code to the whole lot, but I don't have access to the non GPL code. But I never wanted the GPL code in the first place - I just employed some idle zealot who plagiarised it rather than writing it himself.

      In general there are two parts of the GPL that I think I are poisonous to businesses and designed to be so. The first is the idea that if you use GPL code in a project, all the non GPL code statically linked to it becomes GPLd. The second is that future versions of the GPL may attempt to transfer rights from the copyright owner to users of the software which the copyright owner doesn't own.

      I actually think if Stallman had actually worked in a real job rather than staying in pseudo academia for his whole life he'd understand this stuff a bit better. As it is he's basically the world's oldest student still hectoring people about things that he's managed to remain totally ignorant of. It's sad really.

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
    20. Re:Can you do both at the same time?? by Alsee · · Score: 1

      I own a company that bases a project on non GPL code. Some developer comes along and cut'n'pastes GPL code into it

      The fact that it was GPL code can't hurt you. You can always decline the GPL and deal with it is simple unlicensed code. Which of course is infringement, and whether it came from Microsoft or a GPL project or anyone else is irrelevant.

      It GPL or not, it comes down to four possibilities:
      (1) don't copy the code (too late in your example)
      (2) copy the code and deal the Microsoft/GPL/whatever license terms
      (3) copy the code and reject and ignore the Microsoft/GPL/whatever license and try to reach an agreement buying the the needed rights from Microsoft / the GPL programmer / whoever
      (4) fail to reach an agreement with the copyright holder and possibly face a court injunction prohibiting you from further distributing the taken code and possible $$$ damages for any infringement that has already occurred.

      Trying to hang any fault or blame on the GPL there is a complete red herring. The presence of the GPL offer only increases your options. Someone's work was taken without authorization, and the GPL merely offers an extra escape hatch to avoid the possible court injunction (against future distribution of the taken code) and possible court damages (for past distribution of the taken code). The situation is exactly the same or worse if the GPL was not involved.

      GPL code can no more trap you than a Microsoft or anyone else's code can. Copying unlicensed code from anyone may land you in court for infringement if the copyright holder wants to make a fight over it. Heck, most GPL programmers will let you off scott-free if you stop distributing their code and promise not to do it again, and most would probably jump at any decent cash offer to buy the rights if you want to keep using it.

      Under the GPL I'm supposed to release the source code to the whole lot

      Only if you want to. If you can't reach a deal with the copyright holder, and the infringement is (as you describe) minor and incidental, then dealing with it as simple infringement of unlicensed code may be the best avenue. However if you have been selling millions of units of your product and that product is consists of MASSIVELY misappropriated code, then you could be facing massive copyright law smackdown for that criminal activity, then you might just be better off GPLing the rest of your code to make your massive violation go away.

      if you use GPL code in a project, all the non GPL code statically linked to it becomes GPLd.

      If I write a 30 page story, and you "statically link" it in the middle of a 300 page novel, that is copyright infringement.

      Don't copy it, or accept the terms permitting its use, or contact the author and negotiate for different terms, or (painfully) deal with it as generic unlicensed infringement.

      I think it more than generous for someone to say you can take and use *my work* on the terms that you (1) not *sue me* for further developing and distributing your derivative of *my own dang program*, and (2) if you give me an executable version of *my own dang program* then I want the full source available with it. Those two points almost precisely sum up the entire GPL, minus the legalese.

      I agree that those terms are rather unappetizing for certain commercial applications you might want to make *out of my work*. But if I'm giving my work to you as a freebie like that, those terms are extremely generous. If you do want to commercially use my work, and those terms are no good for you, then come to me and make me a cash offer. If you want to make money using my work, and the GPL terms don't work for you, then I want to get paid for my work like any other professional programmer for that code.

      -

      --
      - - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
  17. Re:What's the point ? by FudRucker · · Score: 0, Offtopic

    try gphoto2 if you can not mount them as a mass storage device...

    http://www.gphoto.org/

    if your talking about a digital camera? (not a webcam?)

    i can understand the troll status of your comment as digital cameras are off topic, but digital cameras are not an issue for Linux as they all work fine in Linux, almost all of them are just FAT32 storage devices as far as Linux is concerned, unless you compiled your own kernel and did not add support for FAT32 or missed something else like USB support, but i am just giving you the shadow of a doubt just incase you are not being a troll and really need help with your digital camera...

    --
    Politics is Treachery, Religion is Brainwashing
  18. proprietary != commercial by Anonymous Coward · · Score: 0

    "OSS projects get to use it free, commercial ones have to pay up licensing fees"
    bollocks. you should say:
    "GPLed projects get to use it free, PROPRIETARY ones have to pay up licensing fees"
    although you are not the first to misunderstand, I hope (in vain) you are the last

  19. What misinformation? by Mostly+a+lurker · · Score: 2, Insightful

    It is a fact that you will not be able to mix code distributed under GPLv2 without the "or later version" option and code licensed under GPLv3 in the same program. How much of a problem this turns out to be in practice is as yet unknown. However, it is not misinformation to point out that a real issue may exist.

    1. Re:What misinformation? by Kjella · · Score: 1

      I think the divide will become much greater once the GPLv3 is released. Many projects that are currently GPLv2 or higher, will try to be converted to GPLv3 only by idealists and zealots through adding GPLv3-only code, which effectively makes the software as a whole GPLv3. Then a countermovement that want the projects to continue to be GPLv2 licensed will say "screw this, we might have gone willingly but you're not going to force us to go GPLv3" and remove the "and later" from future releases, closing off that possibility.

      Either way you're going to have to take sides because "GPLv2 and higher" doesn't ensure that the duality will be preserved. Some are going to want to take it in a GPLv2-only direction, some in a GPLv3-only direction. If you really want the code to stay neutral between the two, you'll have to oppose both sides.

      --
      Live today, because you never know what tomorrow brings
    2. Re:What misinformation? by Sam+Douglas · · Score: 1

      Projects are under no obligation to accept the "zealot's" GPLv3 code.

  20. Simply ignore it. by IGnatius+T+Foobar · · Score: 3, Insightful

    Seriously, who's going to sue who over this? Ignore the differences between v2 and v3 and mix it up at will. In the extremely unlikely event that someone complains, call it a "bundle" and let the licenses exist on their own.

    Pedantry has no place in this kind of thing.

    --
    Tired of FB/Google censorship? Visit UNCENSORED!
    1. Re:Simply ignore it. by Kjella · · Score: 1

      In the extremely unlikely event that someone complains, call it a "bundle" and let the licenses exist on their own.

      Cool, I'll just ship my proprietary code with GPL code, and if someone complains I'll call it a "bundle" and let the licenses exist on their own, GPL license for the GPL code and "(c) All rights reserved" for mine. Oh wait, that's not how the GPL works? Unless there's the "and later" clause, GPLv3 has absolutely nothing to do with GPLv2 and vice versa. It's completely different licenses as far as the law is concerned, and both require the whole work to be licensed under their license.

      Legally, anyone with rights to either the GPLv2 or GPLv3 code can thus send a cease and desist, and you'd be forced to stop distributing it until you could either ship a GPLv2 or GPLv3 (which may include GPLv2 and later) version, which could take forever if you've tangled it into a mess. If they're really nasty and want money, it's also pretty much a slam-dunk liability. I wouldn't be quite so non-chalant when there's money involved...

      --
      Live today, because you never know what tomorrow brings
  21. True, but... by ushering05401 · · Score: 3, Interesting

    the issue does not seem as simple to most the developers that I know. Anyone coming from the world of proprietary code is used to a very simple system of cooperation: pay for rights.

    Numerous developers see the GPL licensing issues as a lot more complex than they actually are... but that does not change the fact that there are issues to consider.

    Easy example: I wanted to use some custom GUI components to enhance the look of an app, but have no experience in that realm, and no time or inclination to get experienced. It took me a week of sampling packages from proprietary vendors to choose one. Then another week to decide whether to pay the low price for the right to redistribute, or the high price to actually have the code & rights to modify. Easy. What do I want? how important is access to the code? Pay. Done.

    Doing the same thing with GPL code would have required me to review licenses already involved in my project, and my future plans for the project (would I have to excise large portions of code if my business model needs to change to be successful... or if someone wants to purchase my already successful company and change the business model?).

    Anyhow, the GPL is very good at what it does, protecting code. But your simple statement that sums up the issues actually becomes complex in practice.

    Regards.

    1. Re:True, but... by MikeFM · · Score: 2, Interesting

      Most experienced developers should have a goof knowledge of the big three open source licenses at least - GPL, LGPL, and BSD. The vast majority of open source code will be under one of those. Just knowing how those relate to each other and apply to your code should cover most of your needs.

      As to not being able to use open source licensed code for your business or having it impact your business model I think that it mostly a FUD issue. It's my experience that the license doesn't make much difference to your business model as those who purchase code are either out-of-the-box types that are paying you to put it in a pretty box, make it easy to install, and easy to use or they are IT department types that want good support and to have their ass covered. Availability of source may be a nice feature to either of the above groups but doesn't much impact sales in any negative way. Maybe it'd be an issue if you plan to change from open source to closed source later because that leads to anger in your customer base.

      It may impact the resale value of your business but that isn't to likely since software that is open source and even free is considered an asset worth having by many companies. The only time it's likely to have a negative impact is if your software isn't very good or your company never develops a working business model at all.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    2. Re:True, but... by Anonymous Coward · · Score: 0

      All Problems you have with the GPL you'd have with proprietary licenses, too, because proprietary licenses are licenses, too. Indeed I think that GPL is better, because while you need to consider in both cases whether you like the GUI toolkit and the license it comes under, you don't need to think about whether you need the code or not and how much you're willing to pay.

      Also, you can still pay the GPL developers for them to allow you to restrict them and your users in their freedoms if you don't want to give back the code. The question is, will they accept that? But that isn't that much different from how proprietary vendors tend to sit on their code like a dragon on its hoard, not wanting anyone else to use it.

    3. Re:True, but... by magisterx · · Score: 1

      The one thing you do not mention is that with GPLed code with a sengle author (or equivalently a single point of contact which can speak for all authors) you still have the option of contacting them and negotiating a separate license. Releasing code under the GPL does not cause the original author to lose their copyright and their ability to release the code under multiple licenses to multiple people.

      Naturally, this fails or at least becomes more complicated if you are drawing from a piece with multiple authors, but it is an option a large percentage of the time.

    4. Re:True, but... by ushering05401 · · Score: 1

      There are a number of proprietary vendors who do not 'hoard' their code. VistaDB is an excellent example. Microsoft was interested in the product, but a proprietary coder with an incredible background in DB development was more interested. If you are willing to compensate him for his time, talent investment, and personal involvement in the community (which is what most major companies would compensate him for providing) all you have to do is pay the code fee.

      I did pay the code fee in addition to the standard fee and now have access to all the guts without any distribution royalties to be paid back up the line.

      It should be noted that this product interested MS to such an extent that they hired the original developer and put him in charge of a development department. This proprietary model allows both code access, and a means of keeping quality products out of the hands of the giants who do squash products/sit on code/play by f'd up rules.

      Regards.

  22. Plan B by Anonymous Coward · · Score: 0

    Distribute the source, don't link against anything. Now you can pick any license, even a non-free one.

  23. Re:Simply ignore it. - Back to the bat cave by ancientt · · Score: 3, Interesting

    Holy cow, I flipped out for a minute when I saw this. My dander went up and I felt the urge to fight for freedom everywhere and punish the blasphemer. Ignore the license? What the heck? How evil! How horrid! Breaking the license is a capital offense!

    In my zeal to fight for the common good I had to consider for a moment who might be hurt and then my dander wilted. I have never personally known anyone who would be offended if their GPL2 code was used in a project by someone trying to use a slightly different license. Not one. I can't rule out the possibility but in the absolute worse case scenario you get a nasty letter that says "stop misusing my code" and you pull it and ask someone else to fill in the blank.

    Back to the bat cave Robin, there is no evil here.

    --
    B) Eliminate all the stupid users. This is frowned upon by society.
  24. Re:Simply ignore it. - Back to the bat cave by Chris_Jefferson · · Score: 1

    I can tell you two people who would be very annoyed if their GPL v2 code got used in a GPL v3 project. One is me, not that important, the other is Linus Torvalds, much more important.

    I'm sticking with GPL v2 only on my projects, although I've been careful to keep in contact with people who have submitted code, so we can change to GPL v3 if we decide we like the final version.

    --
    Combination - fun iPhone puzzling
  25. Earth to Stallman: WHAT ABOUT LIBRARIES? by argent · · Score: 1

    From the referenced page: "Fortunately, license incompatibility only matters when you want to link, merge or combine code from two different programs into a single program."

    SO what about libraries that have been released under the GPL rather than the LGPL? Libraries are not "programs" but they are always, no exception, "linked, merged, or combined". What happens then?

  26. GPLv3: licensing by proxy by tepples · · Score: 3, Informative

    At very least, I'd suggest requiring that contributors allow you to relicense their code to future versions of the GPL at your discretion. In fact, the GPLv3 last call draft includes a provision that endorses such a licensing model:

    If the Program specifies that a proxy can decide whether future versions of the GNU General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Program.
    1. Re:GPLv3: licensing by proxy by complete+loony · · Score: 1

      Yeah GPL2 or later is a common disclaimer, but if you want to allow both just say so. "This software and any derivatives may be licensed under either GPL2 or GPL3 at your discretion."

      --
      09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
    2. Re:GPLv3: licensing by proxy by tepples · · Score: 1

      Yeah GPL2 or later is a common disclaimer, but if you want to allow both just say so. "This software and any derivatives may be licensed under either GPL2 or GPL3 at your discretion." Which creates big practical problems once GPLv4 comes out.
  27. RTFL by tepples · · Score: 2, Informative

    You could do GPLv2 and add a clause to make it compatible with GPLv3. I'm not sure what that clause would say, but I think you can do that. The wording suggested by the FSF for such a clause has been at the bottom of GPLv2 for years:

    This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
  28. Re:There are other licenses... by HeroreV · · Score: 1

    The Mozilla Public License (MPL) and the Common Development and Distribution License (CDDL) are not compatible with the GPL.

  29. Re:GPL: Intellectual Theft by Anonymous Coward · · Score: 2, Informative

    You only have to release the source code to the kernel changes if you plan to distribute the modifications. The GPL's restrictions only apply to distributors. Private use of the software, including changes to the source code, is completely unrestricted. The GPL only applies if you intend to release those modifications to the world. Likewise, the GPL does not say that gcc can only compile code released under the GPL. The license only means that gcc itself is under the GPL, meaning that ordinary use of the program is unrestricted. The GPL doesn't apply to code compiled under gcc and then distributed, only to distribution of gcc itself. Anything you compile with gcc, assuming that all of the source it compiled is entirely your own and not from other sources, can be licensed under the license of your choice.

  30. At your option... by eklitzke · · Score: 1
    The parent poster is exactly right. Very often you see software with the following words in the license:

    This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
    This clause is not part of the license -- it's just wording that the FSF recommends you use when describing the licensing of your software. You can also explicitly say just version 2, only version 3, or any other degree of specificity. So just say that you're releasing it under version 2 or any later release (or under version 2 or version 3 but no later releases).
    --
    #include ".signature"
  31. Re:What's the point ? by kimvette · · Score: 1

    How was that flamebait? Please explain. I was addressing a (most likely troll) person trying to spread Linux FUD that the solution is perfectly simple. Most cameras just work. If that's flamebait, then I don't know what the hell to tell you.

    --
    The Christian Right is Neither (Christian nor right). See: Matthew 23, Matthew 25, Ezekiel 16:48-50
  32. Be careful and keep your options open. by PAjamian · · Score: 3, Informative

    Here's the problems you will face. If you license under GPL version 2 or later then you can't incorporate code that is licensed under version 3 (but not version 2) into your project (others here seem to imply that you can) until you move up to version 3 yourself. Basically you need to think of it this way, in order to use other people's code in your project your license has to be a subset of their license. In order for others to use your code their license has to be a subset of yours. Here is what I would recommend:

    • License your project as a whole (and all included files) under GPL version 2 or later for now.
    • Continue to License under GPL 2 or later until you need to incorporate code that is licensed under GPL version 3.
    • When you need to include code licensed under GPL 3 or later (try to avoid any code licensed under GPL 3 only) then you can relicense your project as a whole under GPL version 3 or later, but keep most of the individual files licensed under GPL 2 or later. Only those files that include the code that was licensed under GPL 3 or later need to have their license headers changed.
    • If you need to include code licensed under GPL 2 only, then contact the authors and ask for permission to relicense that specific code under GPL 2 or later, most (but not all) will happily give you permission to do that. Barring that you will have to find another source of the code or write it yourself.
    • You can, of course link to libraries licensed under the LGPL, and include code licensed under BSD (as long as you comply with the attribution clause). As of GPL 3 you can also include code licensed under the Apache license, plus there are several licenses (such as the perl license) that are actually dual licenses of GPL plus some other license and code from those can be used freely under the GPL (watch out for what versions they specify). Have a look at the Free Software Foundation License Compatibility Page for more details on lots of licenses and their compatibility to the GPL.
    • Watch out for version numbers. If a program specifies that it is licensed under the GPL (without any version number) then it can be used under any version of the GPL. If a program specifies that it is licensed under GPL Version 2 (or some other specific version number) then you can only use the code under that specific version of the GPL. Most programs will specify version 2 or later (and many will soon change to version 3 or later) which means that you can use the code under that version or (at your option) any later version.

    As for allowing others to use your code, you have some options with that as well:

    • You can dual license, or multi-license specific files in your project so that they are compatible with other licenses you want them to be usable with, just don't forget to remove the other licenses from any files that you include someone else's GPL code in.
    • You can give explicit permission to others to license under other licenses of your choice when they write you and ask, just make sure that you specify which parts of the code they can only use under the GPL (and which versions) due to it not being your code.

    I think this about as comprehensive of a guide as I can give you. I'm not a lawyer or a representative of the Free Software Foundation and my statements above are just opinion and not to be taken as legal advice. I just know what I know and am passing that knowledge on.

    --
    Windows is a bonfire, Linux is the sun. Linux only looks smaller if you lack perspective.
    1. Re:Be careful and keep your options open. by cyclop · · Score: 2, Interesting

      Thanks for advice. Just a thing is obscure:

      You can dual license, or multi-license specific files in your project so that they are compatible with other licenses you want them to be usable with, just don't forget to remove the other licenses from any files that you include someone else's GPL code in.

      For what reason should I remove the other licenses from files where I include other GPL code? If it's N-licensed, and one of these licenses is GPL, technically I'm merging GPL code with GPL code, so where's the problem (assuming it's the same GPL version, of course)?

      --
      -- Patent no.123456: A way to personalize /. comments with a sig attached to the end.
    2. Re:Be careful and keep your options open. by PAjamian · · Score: 1

      For what reason should I remove the other licenses from files where I include other GPL code? If it's N-licensed, and one of these licenses is GPL, technically I'm merging GPL code with GPL code, so where's the problem (assuming it's the same GPL version, of course)?

      Because when you are listing licenses at the top of a file you are in essence saying that all the code in that file can be used under any of those licenses and you cannot (without permission) re-license someone else's GPL code under a different license, which would be the effect of what you would be doing by including their code in a file with licenses other than GPL.

      --
      Windows is a bonfire, Linux is the sun. Linux only looks smaller if you lack perspective.
    3. Re:Be careful and keep your options open. by Jamie+Lokier · · Score: 2, Informative

      I'll explain with an example.

      Let's say your file says the equivalent of "You may use this file under the terms of the GPL (v2 or later), LGPL or MPL, at your option". (Mozilla source is triple-licensed like this, I believe).

      Then you want to add code from somebody else's project to your file. Their file says "You may use this file under the terms of the GPL v2".

      When you add their code to your file, if you don't change the licensing at the start of your file, and you publish the new version, you are telling everyone that they are allowed to use the combination under any of the licenses which you listed.

      But you don't have permission to do that.

      The code you used from someone else may only be used under the terms of GPL v2 (in this example). And the GPL v2 does not allow the code to be re-licensed under any of those other license. (If it was BSD instead, you could do that).

      Therefore, you must change the license of your file to say GPL v2 only, or not incorporate their code. (Or you can just not publish the combination - you are free to combine them and use the combination without distributing the result to anyone.)

  33. Re:Simply ignore it. - Back to the bat cave by wellingj · · Score: 1

    why not just do a GPLv2 or later why you still have contact?

  34. GPL2 & GPL3 at the SAME TIME?! by Anonymous Coward · · Score: 0

    NOWAI!

  35. Re:Simply ignore it. - Back to the bat cave by Chris_Jefferson · · Score: 1

    Because the way the GPL v3 is forming at the moment, I and a few other writers don't agree with it. There is a slim possibility some day someone might want to 'tivo' some of our code, and we want to allow that.

    --
    Combination - fun iPhone puzzling
  36. my way by pjr.cc · · Score: 2, Interesting

    And i dont know if its the "right" way, but i was confused enought with gplv2 without throwing gplv3 into the mix. So i did is remove all external code (unless it was things like libc) and stopped depending on libraries (as such). Where i couldnt get away with this i simple deleted anything i'd used from my project that was in my code tree and made the install notes say things like "download version 2.1.15 of open=excelent=app, and place it here".

    As i said, i have no idea if thats fair or just but im beginning to get the feeling that i need a lawyer for coding oss ;)

  37. Insert Big Fart Noise Here by Anonymous Coward · · Score: 0

    This license crap is getting old if you can't read sometihing and figure it out just write your own license

  38. GPL wording by Anonymous Coward · · Score: 0

    I don't like how GPL considers dynamic-linking to a GPLed .so or .dll file as "modification" in their license.

    Modifying source of a GPLd gpllib.so to create a new gpllib.so is definitely modification and should be fed back. But it is absurd to claim that linking to a GPLd .so is actually modifying the GPLd library. Why does GPL use such weasel-like lawyerese language that is intended to confuse and deceive the reader of the license.

    Linking is not modification! Fix the damn wording.

  39. Re:Simply ignore it. - Back to the bat cave by wellingj · · Score: 1

    ahhh.... But is there any way you can dictate a GPLv2 or latest? Any precedent for that?

  40. Hire a lawyer by Anonymous Coward · · Score: 0

    You will need to hire a lawyer with expertise in OSS licensing.

  41. Re:Simply ignore it. - Back to the bat cave by Alsee · · Score: 1

    is there any way you can dictate a GPLv2 or latest?

    You can always add permissions for your own code. You can say "You have permission to redistribute this under the GPLv2 and you have permission to redistribute this on Tuesdays".

    -

    --
    - - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.