Slashdot Mirror


Ask Slashdot: Choosing the Right Open Source License

NicknamesAreStupid writes: I need to choose an open source license. I am developing an open source iOS application that use a significant number of other open source projects which, in turn, use a number of different open source licenses such as MPL/GPL, MIT, and BSD. I am also using sample code from Apple's developer site, which has their own terms of use. The code dependencies are such that my code would not be of much use without theirs. If this project is used, then it would be nice to pick a license that best fits in with this mashup. I am interested in maintaining the freedom of my code but do not want to create a catch-22 or make life hard for people who need to use this project for personal use or profit. My inclination is to use MIT's, as I have done so before. I asked an IP lawyer about this matter, and she replied (pro bono), "it probably doesn't matter." Of course, that advice was worth every penny. Moving away from legal issues and looking at this from a social perspective, which license would appeal most and offend least? I thought about no license but was warned (pro bono), "If you do not, then someone else may." Any suggestions?

4 of 171 comments (clear)

  1. Re:If you're using GPL code, you have no choice by Anonymous Coward · · Score: 5, Informative

    This is baloney. You can release _your_ code under whatever license you choose, as long as the license doesn't conflict with the GPL as applied to the derivative work as a whole.

    So, for example, I can contribute code to the GPLv2-licensed Linux kernel under an MIT or BSD 3-clause license. This is quite common (I dare you to grep the kernel source tree). Now, when you distribute the Linux kernel including your MIT-licensed code, you must obey the source code disclosure requirement of the GPL. But if I'm a FreeBSD developer and want to incorporate your code in my BSD-licensed kernel, I can freely copy and reuse just the MIT-licensed portions.

    So stop spreading FUD. There's nothing "viral" about the GPL which distinguishes it from any other form of licensing. The BSD license is "viral" in that any derived works still have to obey the copyright notice requirements. Closed source licenses are "viral" in the sense that if your work uses closed-source software, your derivative work is subject to the restrictions and limitations of the closed-source license.

    The only real issue here is the GPLv3's patent license requirements. But you can, for example, mix the GPLv3 and Apache License 2.0. And if you don't actually own any patents which pertain to your contribution, then when you release your code to the public you're basically closing the door on any future patents (by publication), which makes the patent issue moot, anyhow. Although it could still be a headache for others who would otherwise want explicit assurance that there's no patent trap.

  2. GPL/BSD by phantomfive · · Score: 5, Insightful

    If you want your software to be used by as many people/corporations as possible, use BSD.
    If you don't want corporations to take advantage of your software without giving back, then use GPL.

    BSD expands usage at the cost of community; GPL increases community at the cost of usage. Both approaches are valid.

    --
    "First they came for the slanderers and i said nothing."
  3. Re:If you're using GPL code, you have no choice by Sarten-X · · Score: 5, Interesting

    Read the license from the perspective of your users. If a later GPL version adds new protections against software patents, API copyrights, or whatever else the legal system dreams up, the users can opt to follow the terms of that license. If, in a moment of collective insanity, the FSF publishes a less-free GPL, the user can opt to use the earlier version your software was originally released under.

    That clause actually ensures that the current version establishes a minimum set of rights.

    --
    You do not have a moral or legal right to do absolutely anything you want.
  4. Re:If you're using GPL code, you have no choice by unrtst · · Score: 5, Informative

    There is no "depends on how he's using it." If it doesn't have an LGPL interface header, you MUST release the code under GPL terms to use it.

    (Sorry for the Clinton-esque answer) It depends on what you mean by "use". The problem with the original question is that there's not enough information to give a useful answer.. it's just fodder to get people talking with no real goal.

    You can use GPL's software all you want, modify and recompile to your hearts content, and you don't have to release jack shit - unless you then distribute that stuff, and then only if you distribute it together (you can distribute your patches on their own with any license you choose).

    That said, it sounds likely that the choices that NicknamesAreStupid made regarding various sources to include may not be very good choices, and they may be incompatible with his goals. Since he specifically mentioned the GPL (and especially since he didn't say LGPL instead), these compatibility pages should help:
    http://www.gnu.org/licenses/li...
    http://www.gnu.org/licenses/gp...
    http://www.gnu.org/licenses/gp...

    The FSF (Free Software Foundation) comments on GPL works within the Apple App store is also quite relevant:
    http://www.fsf.org/news/2010-0...
    http://www.fsf.org/blogs/licen...
    http://apple.stackexchange.com... (see 2nd answer)

    Essentially, if you do not hold the copyright for the GPL'd work you are including in your iPhone App that you want to put on the Apple App Store, then you're SOL.... the App Store agreements are incompatible with that (GPL says, "You may not impose any further restrictions on the recipients' exercise of the rights granted herein", but the the Mac App Store Terms of Service explicitly add other restrictions, such as "you may only install the software on five approved devices"). You might be able to get permission from the works authors, but that permission would be to distribute said code under a non-GPL license (possibly 3 clause BSD?)