Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Open Source Programming

Ask Slashdot: Choosing the Right Open Source License 171

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

Ask Slashdot: Choosing the Right Open Source License

Comments Filter:
  • by msobkow ( 48369 ) on Monday June 29, 2015 @07:46PM (#50015509) Homepage Journal

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

    • I agreed. If you are using any GPL code, derivative works should be GPL. If you combine BSD, MIT with GPL, it will turn everything to GPL. GPL is not bad, it will remain open source forever (ok, until it became public domain after a lot of years) and it will be great for things to snowball. GPL is only bad where there intentions to close the source code or to combine it with other licenses that allows that.
    • I would assume based on the OP/summary, it's dual licensed MPL/GPL source code, otherwise you are correct...

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

      eg. http://www.zdnet.com/article/n... [zdnet.com]

      • by msobkow ( 48369 )

        My assumption on reading the OP was that they didn't realize MPL and GPL are different animals.

      • by Yaztromo ( 655250 ) on Monday June 29, 2015 @08:51PM (#50015843) Homepage Journal

        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 [videolan.org], while still retaining the GPL license (albeit in part by dual-licensing it as MPL/GPL).

        Yaz (IANAL)

    • You say this like it's some grand revelation. What would be the point otherwise? "Here, you can download this binary. It's GPL, but you can't have the code." makes no sense.
    • by mx+b ( 2078162 ) on Monday June 29, 2015 @08:00PM (#50015583)

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

      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.

      • by mark-t ( 151149 )

        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.

        Incorrect... Copyright says that you can't legally make a derivative work at all without permission from the copyright holder. The GPL gives people such permission when they agree to abide by its terms. If they don't agree, they don't have permission to do it in the first place, which is the default status for any copyrighted work, anyways.

        What's viral about that?

        • What's viral about that?

          It's viral in that there's an awful lot of freeloaders out there who are convinced that somehow they have the right to use the code completely for free and are angry that the the owner of the code insists on "share and share alike". Oddly they don't apply the same logic to commercial software.

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

        Not true. Go back and re-read the GPL. You are required to release your code under a license that places no more restrictions on it than the GPL. You must also license the combined work under the GPL. It is, however, completely fine to take a few files of GPL'd code, combine them with some BSDL'd code files (as long as those files are not a derived work of the GPL'd code) and ship the resulting program under the GPL. If someone else takes only the BSDL'd files for use in another project then they are n

    • by Anonymous Coward on Monday June 29, 2015 @08:19PM (#50015671)

      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.

      • Great post. Moderators, take note.

        I would add one thought: the GPL is indeed viral, but in the sense of HIV, rather than, say, influenza. You need to get "intimate" with GPL code to be "infected" by it. The level of intimacy that causes infection varies with context, but it happens through consent, not by accident.

        • And, more importantly ... if you think the GPL is "viral" and will "contaminate" your code ... piss off and don't use the GPL code. You don't have a "right" to the code.

          This isn't a real problem in that the GPL sneaks in and alters other code licenses when nobody is looking.

          This is a problem in that people want to use the GPL code in a way which is incompatible with the GPL, and then they become whiny idiots about how unfair the GPL is to them.

          You are perfectly free to not use GPL code. Just because you w

          • This isn't a real problem in that the GPL sneaks in and alters other code licenses when nobody is looking.

            This is a problem in that people want to use the GPL code in a way which is incompatible with the GPL, and then they become whiny idiots about how unfair the GPL is to them.

            Correct. Like I said, the "infection" happens through consent, not by accident.

          • by pem ( 1013437 )

            The problem is people think the GPL code is some free code they can steal and do anything they want with it.

            Ummm, no.

            At least not more than anything else.

            Yes, there are people not following the terms of the license. Just like there are people not following the terms of other licenses.

            But conflating those people with the people who are following the terms of the license -- people who say "Sorry, I can't use GCC, so I have to go play in the LLVM sandbox over here, and btw, if you want me to be able t

            • Well, speaking of strawmen...

              Yes, there are people not following the terms of the license. Just like there are people not following the terms of other licenses.

              But conflating those people with the people who are following the terms of the license -- people who say "Sorry, I can't use GCC, so I have to go play in the LLVM sandbox over here, and btw, if you want me to be able to contribute to projects in the future, the GPL is a non-starter" -- thinking or representing that those saying they cannot use your code are the same people as those illegally using your code -- that is just wrong.

              First of all, gstoddart didn't conflate people who "whine" about the restrictions of the GPL (whether they violate the license or not) with those who respect it and avoid GPL code on principle and in good faith. He only spoke of the former, who indeed want to "steal" GPL code whether or not they actually do.

              Second, compiling your code with GCC does not infect your source-code, or the compiled binary, with the GPL. Unless you static-link to a GPL library, but that's avoided easil

              • by pem ( 1013437 )

                Well, speaking of strawmen... [gstoddardt] only spoke [of people] who indeed want to "steal" GPL code whether or not they actually do.

                Yeah, he brought that up himself, in a conversation that wasn't about that at all, so... strawman.

                Second, compiling your code with GCC does not infect your source-code, or the compiled binary, with the GPL.

                Yeah, and you brought this up in a conversation where... I wasn't claiming that, or the grandparent, or that great-grandparent. So yeah, another strawman. You guys ke

                • by pem ( 1013437 )
                  And just for the record, and to be clear, we were talking about reusing code, not just using code to compile stuff. In that context, "use GCC" means "take GCC code and make it work with my proprietary micro and release it to the world in a way that keeps the PHBs the company I licensed the micro from happy", not "compile x86 code with GCC."

                  But you knew that, right? Please tell me you knew that all the people who wrote LLVM didn't do so because they were worried that just compiling stuff with GCC would i

                    • by pem ( 1013437 )
                      Very droll. But to set the record straight on another point, this thread started with:

                      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.

                      it was actually the great Saint RMS himself who started all the FUD about GPL infection, when he forced the guy who wrote common Lisp to change his license to the GPL, merely because common Lisp could dynamically link to readline.

                      common Lisp didn't need readl

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

        Right, what he should have said was "GPL-compatible" license.

        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.

        There is a degree of difference there though. Yes the BSD license is equally "viral" but the implications and restrictions imposed are significantly less of an imposition than those of the GPL. The same applies to closed source software which is why closed source and BSD software can be sold in the Apple App Store but GPL software cannot.

        The only real issue here is the GPLv3's patent license requirements.

        Well that depends on if he wants to distribute this iOS program in the App Store [fsf.org].

      • by Z00L00K ( 682162 )

        It depends on if you want to push for everything being open source or if you just want to spread your pieces as open source. In the latter case the Apache license is probably one of the better with few snags for those that want to incorporate your pieces into something bigger.

    • by Kjella ( 173770 )

      Oh, how /. has fallen when this is modded up. It must be GPL-compatible, it must not be GPL. The FSF keeps a list of compatible licenses [gnu.org] though the general theme is "like GPL or freer", like it doesn't have to be a copyleft license. If he doesn't want to introduce any new license headaches he could just use the modified BSD license which is pretty much as minimal as it gets. Whether it resolves his license problems are another matter, the GPL demands the whole project must be compatible and I'd guess that A

      • by msobkow ( 48369 )

        GPL-compatible means you are allowed to use software under those licenses *from* GPL'd code, not that the GPL copyleft requirement doesn't apply.

        • by Kjella ( 173770 )

          Sure, as long as you use some GPL code the requirements apply to the work as a whole. But if you write part A using the GPL license, I can write part B using the BSD license. The GPL license is okay with A+B and if someone wants to use part B in a non-GPL project or replace part A with differently licensed code they can. The point was he doesn't have to use the GPL unless he wants to. He can use a far more permissive "I don't care, use it wherever you want" license for his bits.

          • by msobkow ( 48369 )

            If GPL part "A" calls BSD part "B", then yes, that is true. But if BSD part "B" calls GPL part "A", it is in violation of the GPL license.

            • by msobkow ( 48369 )

              The same is true of any "GPL compatible" license, not just BSD.

            • by Kjella ( 173770 )

              No.

            • I'm not following. There's two parts that get linked together, A and B. The combination must be released under the GPL, and any part of the combination may be used under the GPL. Anything containing A must be released under the GPL. The BSD-licensed B may be used elsewhere under the BSD license. You only need to conform to the GPL if you don't have another license for the code you're using.

      • It must be GPL-compatible, it must not be GPL.

        Why not? Based on the listed licenses GPL should still be fine.

    • by tlhIngan ( 30335 )

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

      But only if the GPL code can mix.

      The FSF has agreed that GPLv2 and GPLv3 are fundamentally incompatible - GPLv3 imposes additional restrictions that conflict with GPLv2. So you have to be extremely careful when mixing GPL code together.

      Basically, v2-only code (GPLv2) cannot touch v3 (GPLv3) code, and vice-versa. If you have v2 code, then make sure it is licensed as v2-or-higher (GPLv2+). The resulting GPLv2+ and GPLv

    • Only if the GPL code is part of your own work. OP is talking about bundling software, and then it's no problem to mix licenses: there's a lot of GPL software in my Linux Mint installation, but not all software that's bundled with it and essential for the whole to work is GPL software.

  • by wvmarle ( 1070040 ) on Monday June 29, 2015 @07:49PM (#50015515)

    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.

    • by T.E.D. ( 34228 )

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

      No license is worse than that. It means nobody knows what the terms of your use of this software are. For all anybody knows, you actually agreed to something outlandish like the deed to your house in exchange for the right to make a backup copy. You can't prove otherwise, because you can't present a copy of this "no license".

      If a company ends up with such software and an audit happens, there will be major problems. So I don't ever ever use someone else's software if it didn't come with some kind of licens

      • What is the legal value of such an included license, really? You don't have the issuer's signature on it. You could argue it's "signed" if you download from the maker's web site, but not if you're downloading from a third party source, where the package could have been altered.

      • No. You're simply distributing without a license. This means that you can be sued for monetary damages and be told to stop doing what you're doing (and if you don't comply things get worse). You can only agree to license terms by agreeing to license terms.

  • No GPL (Score:2, Interesting)

    by Sigvatr ( 1207234 )
    Please do not license it under an L/GPL license. There's a lot of software I would like to use, but am not legally allowed to because it uses a GPL license. It sucks.
    • Re:No GPL (Score:4, Informative)

      by cheater512 ( 783349 ) <nick@nickstallman.net> on Monday June 29, 2015 @07:58PM (#50015577) Homepage

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

      • Well, same thing with licensed software. You choose to disobey whatever scheme they're using.
      • You are allowed to use it. You choose not to.

        I do not intend to re-write the same code twice. My personal time is finite.

        If my employer says I am not allowed to use it, that is not a choice.

        and the argument "It's helpful for the community if people's useful modifications to your program are made public" ... well if I am forced to use another solution then this potentially helpful code will not be written for your project in the first place, so there is 0% chance of it being made public because it will not exist.

        Remember: Sometimes allowing more people

        • Remember: Sometimes allowing more people to play has benefits, even if they do take their bat and ball and go home at the end.

          And this is what we see with Apple's OSX, sure they haven't released all the source code for the operating system but since many of its parts are built on permissive open source licenses rather than restrictive ones those parts can be used in the closed source operating system but also released as source for other people to use.

          For example Safari is not open source but we sure get a lot of contributions to WebKit which is used in lots of places.

    • Re:No GPL (Score:5, Insightful)

      by caseih ( 160668 ) on Monday June 29, 2015 @08:13PM (#50015653)

      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!

      • by pem ( 1013437 )

        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.

        I think he said what he meant to say, e.g. if you're an author, please consider using a different license than the GPL, because some people (e.g. him; yes, people are somewhat narcissistic that way, go figure) won't be able to utilize it otherwise.

        And you won't get any sympathy either.

        He's not looking for sympathy. He's looking for code. Believe it or not, a lo

        • by caseih ( 160668 )

          No one owes him anything. It may not matter to the GPL'd code's author whether this guy wants to use it in his own code or not. There are lots of reasons for writing code.

          It's absolutely not a stupid line. The guy who GPL'd the code wrote it so he can do what he wants with it. That is his right. Surely this other developer can write his own code too? Of course GPL'd people don't use that line with end users. After all they are free to use the software however they see fit. That's what the GPL says.

          As

          • by pem ( 1013437 )

            No one owes him anything.

            Who said otherwise? Why do you feel compelled to set up a strawman?

            It may not matter to the GPL'd code's author whether this guy wants to use it in his own code or not.

            That's absolutely true. But it may matter, so it's a great thing for the guy to say "if you do this, I can't use your code." Unless you don't believe in freedom of speech.

            There are lots of reasons for writing code.

            Sure, and I don't want to discourage anybody from writing code, and if you feel you need to us

    • Let me analyse this:

      Please do not license it under an L/GPL license. There's a lot of software I would like to use, but am not legally allowed to because it uses a GPL license. It sucks.

      This has one of two meanings:

      The first (kind) meaning is that the OP is merely astonishingly ignorant and believes that using GPL software like Linux, GCC, LibreOffice and so on somehow "traps" him under the GPL. I'm honestly not sure what he believes, but it's probably something along the lines of everything that touches th

      • by pem ( 1013437 )

        The second meaning is that by "use" he means that he wants you to write source code for entirely free for him and not only that, he doesn't even want to contribute by sharing with others as you shared with him.

        Completely unimaginative, naive, binary thinking. Is it just possible that someone might like to contribute back -- might even have significant contributions that they can and will make to whatever package they use -- but that for some reason outside their control, they cannot divulge everything th

        • Completely unimaginative, naive, binary thinking. Is it just possible that someone might like to contribute back -- might even have significant contributions that they can and will make to whatever package they use -- but that for some reason outside their control, they cannot divulge everything they are working on?

          Yeah, rationality and reading comprehension are such binary things. He was talking about "using" not contributing back. I can only go on saying what he means not what someone liek you believes w

          • by pem ( 1013437 )

            Yeah, rationality and reading comprehension are such binary things.

            Apparently they are.

            He was talking about "using" not contributing back.

            If you would just apply the tiniest bit of thought to this, you would realize that if he is not allowed to use something (because of other conditions placed on him), there is no reason for him to learn it well enough to contribute back to it. It's a horse-and-cart, or chicken-and-egg thing.

            It's called freeloading because not only does he want something for nothing.

  • WTFPL (Score:3, Informative)

    by Sigvatr ( 1207234 ) on Monday June 29, 2015 @07:53PM (#50015539)
    Real men use the WTFPL, https://en.wikipedia.org/wiki/... [wikipedia.org]
  • GPL/BSD (Score:5, Insightful)

    by phantomfive ( 622387 ) on Monday June 29, 2015 @09:06PM (#50015939) Journal
    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.
    • by T.E.D. ( 34228 )

      If you want your software to be used by as many people/corporations as possible, use BSD.

      That seems to be the general public consensus.

      Personally, if I'm in that situation I use CC0 [fsf.org] instead. Its effectively Public Domain, with a completely permissive fallback license for areas where Public Domain isn't possible (eg: arguably the USA). The BSD is a lot of legalese in an attempt to accomplish the same thing. Even after all that effort, some versions of it actually fail and render the code GPL incompatible. Seeing the BSD is a huge drag, because I have to scan the entire text of the damn license

    • Increasing the community sounds all well and good, but I would prefer a quality community over a quantity community. Some of those GPL folks are real wing nuts.

  • Unlicense (Score:5, Interesting)

    by darkain ( 749283 ) on Monday June 29, 2015 @09:11PM (#50015951) Homepage

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

  • by williamyf ( 227051 ) on Monday June 29, 2015 @09:34PM (#50016063)

    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.

    • by msobkow ( 48369 )

      Linking GPL code is considered the same as copying in the source code. The library has to be released under the LGPL to be used by non-GPL source.

      But you are correct about invoking canned binaries of GPL products or sending IPC messages to a GPL product, provided you're not using the GPL messaging libraries provided with the product, but rolling your own which happen to be compatible at the messaging layer. But I'm pretty sure your messaging code would have to be written in a different language as well

  • Whatever you do, please please please use a well-known license. I'm am completely sick of having to read and grok screens full of leagalese and then go to The FSF list of licenses [gnu.org] to see if there's something important I missed. I'm sure every license has some nuance that makes it better for some purpose or other, but I don't care.

    While I understand the attraction of BSD (and its zillion variants), I've found that I can cover all use-cases for my own work with one of three licenses (in order of stringency)

  • I don't sell the code I sell the support.

    I release everything I work on under BSD and if a company has questions about it I have contact information and an hourly rate available for support. If a company takes it and runs with it (Tivo) then it's not like it was something I was going to get around doing anyway.

    If they don't want to pay for support and their product is good enough, a competitor will.

    I don't lose out on anything. My code gets used (what I wanted and why I released it) and in 5-10 years if som

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

Working...