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?

12 of 171 comments (clear)

  1. Indeed it probably doesn't matter by wvmarle · · Score: 4, Informative

    No license: default copyright. No-one is allowed to redistribute without your express permission.

    The dependencies I assume will be distributed within your package; and I assume their licenses in turn allow this, as this are open source licenses.

    If so, you would be able to choose any license you like for your code - or indeed simply nothing special at all - and choose based on your preferences/philosophy on the level of freedoms given for use of your work.

  2. WTFPL by Sigvatr · · Score: 3, Informative

    Real men use the WTFPL, https://en.wikipedia.org/wiki/...

  3. This is not allowed by the GPL. by Anonymous Coward · · Score: 0, Informative

    It's not allowed to distribute GPL software on Apple's App store, because Apple will not comply with the GPL. Read http://www.fsf.org/news/2010-05-app-store-compliance for more details.

  4. Re:No GPL by cheater512 · · Score: 3, Informative

    You are allowed to use it. You choose not to.

  5. Probably GPL, but depends on Apple by mx+b · · Score: 4, Informative

    You beat me to it :-)

    To the original poster:

    The GPL is "viral" in that if you use even a smattering of GPLed code, you are required to release ALL of your code as GPL as well.

    It concerns me that you state you use example Apple code. What license is it? ("has its own terms" is completely unhelpful).

    In general, you're restricted to using a license that is the most restrictive. The liberal licenses like BSD and MIT can morph into anything pretty much. GPL is one of the most restrictive on redistribution (RMS would say it preserves user freedoms by restricting developer distribution, and I would tend to agree with it; just throwing that in there because I don't mean restrictive in a negative sense here, only that it was designed to prevent people from running off with the code without contributing back to the community, so you can't just re-release GPLed code under MIT like you suggested). Apple's license may be open source or not; furthermore, there are known open source licenses that are NOT compatible with the GPL, so its entirely possible that the Apple code may not be distributed together with the GPL code. For reference, see http://www.gnu.org/licenses/li....

    It's possible your pro-bono advice is correct and this doesn't matter too much if you release it publicly and open source (it seems unlikely open source projects would sue other open source projects), but in case you ever plan on making money on this project (and even if you don't), to avoid any possible legal trouble you should choose the most restrictive license compatible with all licenses at play. Likely this means the GPL, but the wildcard is Apple. If you post the terms to it, we could probably help sort it out (with the usual IANAL caveat). Otherwise, you may need to rethink which libraries are included with your code and possibly even roll your own depending how niche it is.

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

  7. Re:FSF was very non-specific, and probably wrong by Anonymous Coward · · Score: 3, Informative

    Uh, yes they did. Read the follow-up piece linked from the post (https://www.fsf.org/blogs/licensing/more-about-the-app-store-gpl-enforcement), and it is specific that the issue is that Apple's Terms of Service add restrictions beyond the GPL. That is prohibited by the GPL; otherwise people could completely circumvent the GPL by adding their own license on top of it to take away all of the rights granted to you by the GPL.

  8. Re:If you're using GPL code, you have no choice by Yaztromo · · Score: 4, Informative

    However, the summary also mentions iOS, and I was under the impression that GPL apps on the Apple AppStore are a no go?

    FWIW, the situation is a bit more nuanced than that.

    If the GPL licensed code is entirely your own work, you can relicense it any way you want, including to Apple for distribution on the App Store.

    Where you can get into trouble with the App Store is if you take someone else GPL'd code and release it on the App Store. This could be by including third-party GPL routines, or by publishing code that was developed by multiple parties, without their permission, where copyright has not been reassigned. This was the case for the VLC player: as the article you linked alludes, Apple took that old VLC player app out of their app store due to a copyright complaint from one of the VLC developers. That was back in 2011 -- the VideoLAN Oragniaztaion has since released their own VLC for iOS, while still retaining the GPL license (albeit in part by dual-licensing it as MPL/GPL).

    Yaz (IANAL)

  9. Re:If you're using GPL code, you have no choice by penguinoid · · Score: 4, Informative

    public domain is a myth

    [citation needed]

    Mickey Mouse Protection Act

    --
    Don't waste your vote! Vote for whoever you want, unless you live in a swing state it won't matter anyways
  10. Depends of what you mean by "Use" by williamyf · · Score: 3, Informative

    If by "Use" you mean: Copy/paste sections of GPLed code, then yea, you are forced to use the GPL (this also applies to Read-Memorized-Retyped).

    If by use you mean: I link to some GPLed libraries. Or: I invoke some GPLed executable to do some work. Or: I send some IPC message to some GPLed process then you can use pretty much any licence you may well please.

    For code I develop for commercial use (either if I want to turn it into a product, or if I am developing for a Third party) I prefer BSD/MIT/Apache.

    For code I develop as a hobby, or as a service to the community, I preffer the GPL (v2).

    Also, bear in mind two things:
    * If you use a substantial amount of GPL code, the community frowns upon using a non GPL license.
    * But, apples AppStore has had troubles with GPLed applications in the past.

    Choose Wisely.

    --
    *** Suerte a todos y Feliz dia!
  11. 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?)

  12. Re:If you're using GPL code, you have no choice by WilCompute · · Score: 3, Informative

    The problem with this argument is if someone forks my project, and publishes it under a newer license, I can no longer accept changes back into my codebase. If I did, I would be forced to use the new license, making the GPL doubly viral, cannibalizing its own license to spread its viewpoint. This is the reason Linus made the Linux kernel GPL2 only.

    --
    NDxTreme Content on the Edge.