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

 



Forgot your password?
typodupeerror
×
GNU is Not Unix

GPLv2 and GPLv3 Coexisting In the Same Project? 116

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

GPLv2 and GPLv3 Coexisting In the Same Project?

Comments Filter:
  • by MikeFM ( 12491 ) on Saturday June 16, 2007 @03:46PM (#19534621) Homepage Journal
    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.
    • by Anonymous Coward
      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 bo
      • by DrJimbo ( 594231 )

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

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

          • by DrJimbo ( 594231 )
            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.

            • by ComaVN ( 325750 )
              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.
              • by DrJimbo ( 594231 )
                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
                • by ComaVN ( 325750 )

                  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

                • 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
                  • by DrJimbo ( 594231 ) on Sunday June 17, 2007 @01:41PM (#19542127)

                    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.

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

                    • by Alsee ( 515537 )
                      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
                    • 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
                    • by Alsee ( 515537 )
                      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
                • Re: (Score:3, Interesting)

                  by samkass ( 174571 )
                  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
                  • Re: (Score:3, Informative)

                    by DrJimbo ( 594231 )
                    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 [acmqueue.com]:

                    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 corpor

                  • by Alsee ( 515537 )
                    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 equiv
                • 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 ti

              • by Znork ( 31774 )
                "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 cop
    • True, but... (Score:4, Interesting)

      by ushering05401 ( 1086795 ) on Saturday June 16, 2007 @05:52PM (#19535609) Journal
      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.

      • Re: (Score:3, Interesting)

        by MikeFM ( 12491 )
        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
      • 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
    • 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

    • Re: (Score:1, Informative)

      by Anonymous Coward
      How about an opinion from a "lawyer"?

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

      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.
  • GPL 2 or later (Score:1, Informative)

    by Anonymous Coward
    "version 2, or at your option, any later version"
    • Re: (Score:1, Informative)

      by Anonymous Coward
      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.
      • by cyclop ( 780354 )

        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?

        • Re:GPL 2 or later (Score:4, Informative)

          by codemachine ( 245871 ) on Saturday June 16, 2007 @05:27PM (#19535435)
          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.
        • by Kyojin ( 672334 )

          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

        • by kabloom ( 755503 )
          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
          • 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 th
  • by shaitand ( 626655 ) on Saturday June 16, 2007 @03:49PM (#19534649) Journal
    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.

    • by XaXXon ( 202882 )
      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 kn
      • 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.

        • by tepples ( 727027 ) <tepplesNO@SPAMgmail.com> on Saturday June 16, 2007 @07:45PM (#19536311) Homepage Journal

          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 [fsf.org] 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.
          • 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."
            • by tepples ( 727027 )

              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.
      • by tepples ( 727027 )

        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 [google.com]), I'd speculate yes.

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

        The license of Linux [kernel.org] 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.

  • Just use GPLv2 (Score:5, Informative)

    by 3247 ( 161794 ) on Saturday June 16, 2007 @03:51PM (#19534669) Homepage
    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.
    • by SEWilco ( 27983 )
      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.
    • Re:Just use GPLv2 (Score:5, Informative)

      by Tim C ( 15259 ) on Saturday June 16, 2007 @06:45PM (#19535947)
      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.
      • 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.

    • 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.
  • GPLv2 or later (Score:3, Informative)

    by Aim Here ( 765712 ) on Saturday June 16, 2007 @03:52PM (#19534671)
    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.

  • by Penguinisto ( 415985 ) on Saturday June 16, 2007 @03:57PM (#19534709) Journal
    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/ [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

    • I like either GPL version, but if you're not too hung-up on using GPL, http://www.opensource.org/ [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.

      • Well, the original poster could just choose one from the FSF's list of GPL Compatible Licenses [fsf.org].
        • by PhilHibbs ( 4537 )
          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.
  • 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
    • by HeroreV ( 869368 )
      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.
  • 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....
  • Ask the FSF (Score:1, Informative)

    by Anonymous Coward
    The GPLv3 Wiki FAQ is here:

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

    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.
  • by dangitman ( 862676 ) on Saturday June 16, 2007 @04:39PM (#19535055)

    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.

  • Simply ignore it. (Score:4, Insightful)

    by IGnatius T Foobar ( 4328 ) on Saturday June 16, 2007 @05:51PM (#19535599) Homepage Journal
    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.
    • by ancientt ( 569920 ) <ancientt@yahoo.com> on Saturday June 16, 2007 @06:36PM (#19535881) Homepage Journal

      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.

      • 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.
        • why not just do a GPLv2 or later why you still have contact?
          • 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.
            • ahhh.... But is there any way you can dictate a GPLv2 or latest? Any precedent for that?
              • by Alsee ( 515537 )
                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".

                -
    • by Kjella ( 173770 )
      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
  • 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?
  • by PAjamian ( 679137 ) on Saturday June 16, 2007 @09:35PM (#19537013)

    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 [gnu.org] 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.

    • Re: (Score:3, Interesting)

      by cyclop ( 780354 )

      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'

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

      • Re: (Score:3, 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
  • my way (Score:2, Interesting)

    by pjr.cc ( 760528 )
    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 beginn

It is easier to write an incorrect program than understand a correct one.

Working...