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?

17 of 171 comments (clear)

  1. If you're using GPL code, you have no choice by msobkow · · Score: 3, Interesting

    If you're using GPL code, you have no choice but to release your code under the GPL as well.

    --
    I do not fail; I succeed at finding out what does not work.
    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. 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)

    3. 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
    4. 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.
    5. Re:If you're using GPL code, you have no choice by ultranova · · Score: 3, Insightful

      Project Gutenburg would be a counter-proof.

      Well, no. The issue is whether code - or any other copyrighted work - will ever enter public domain. Mickey Mouse Protection Act says it won't, and Project Gutenbert doesn't contradict that.

      Not that it matters: copyright law has almost no legitimacy whatsoever, so it simply gets ignored despite draconian punishments. The whole concept of property law seems to simply be incompatible with the digital realm, consequently various message boards and other sites depending on user-generated content basically operate as communist utopias: everyone contributes whatever they can, the results are free for everyone to use at their leisure, and even personal glory isn't an issue, at least in anonymous messageboards. That's right: aside from its current immaturity, Anonymous is pretty much a model Marxist collective.

      Funny, isn't it? Capitalism won the Cold War, but its natural development is now leading to Communism because that maximizes production in the Information Age. It wasn't a good model for industrial production, but as that keeps getting automated and focus shifts on coordination and cultural production, it turns out hierarchies simply get in the way. So nominally communist countries were arranged like giant corporations, while the new organizational model everyone's learning growing up now is "contribute according to your abilities, enjoy other people's contributions freely".

      I wonder if this is why neoliberalism has been so fashionable lately: it's the struggle of a fading system to maintain it's dominance rather than be relegated to handling just a small subsection of total economy?

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

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

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

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

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

  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:No GPL by caseih · · Score: 4, Insightful

    You've been misinformed. I don't blame you, but you've apparently never read the GPL. It explicitly says:

    You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.

    Thus you are free to download and use it for any purpose, provided you do not redistribute it or derive software from it. Pretty clear.

    Perhaps you meant to say there's a lot of GPL software you'd like to incorporate into your own software but you can't because of the license. You would be correct. And you won't get any sympathy either. As they say, write your own code!

  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. 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."
  9. Unlicense by darkain · · Score: 4, Interesting

    Unlicense, and done. http://unlicense.org/

  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!