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?
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.
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.
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.
Real men use the WTFPL, https://en.wikipedia.org/wiki/...
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.
http://bipcot.org/
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.
Note that this applies to the BSD license as well, which is a large part of why the anti-GPL crew are all for it.
The FSF post didn't say either what terms of the license they thought Apple was violating, nor why they think distributing via the app store is any different than distributing via the post office.
If I mail GPL software via the postal service, I have to comply with the GPL, which mainly means I have to include an offer to provide source code upon request. The postal service doesn't have to do ANYTHING regarding the license, they are a third party facilitating my distribution. It could be argued that Apple is no different- the person distributing via the app store needs to comply, Apple doesn't have to do anything to be in compliance.
By the wording of the license, it would be possible to argue either way, so a court would look at the INTENT of the license, it's PURPOSE. The gpl helpfully states it's purpose and intent right at the top - to maintain the four freedoms. As long as the freedoms are being maintained (by having source available, etc.), the court would probably rule that it's perfectly okay to distribute via the mail, ftp, email, http, or the app store.
Fragile
Yes?
Not Fragile
BT...No?
Chris Squire is dead
Helping developers answer this question is the primary goal of https://choosealicense.com/ which itself is Open Source under the MIT license: https://github.com/github/choo...
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."
Unlicense, and done. http://unlicense.org/
The Antiviral License
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!
Of course, that advice was worth every penny.
And you expecting the advice here to be worth how much?
This. Preferably the FreeBSD License, since it's the same license that's used by the FreeBSD parts of iOS
GPL is not a free license. BSD is a good one.
No business in their right mind would allow any such bull shit in any legal document that they were obligated to.
Version 4 may grant the FSF free license to:
* commercially redistribute and relicense the code as they see fit
* grant unlimited patent waivers for all code using it
* remove warranty disclaimers
* require the developers to pay each user a huge sum of money
* or whatever the hell the Fucking Stupid Fucks (or whatever FSF stands for) feel like
Its like getting a job description that has a phrase like "additional duties as required"
... clean those toilets Mr. engineer.
It's called Gutenbug
So scrap that line, much as the Linux developers have, leaving linux stuck on GPL2, which has the effect of protecting the use of heavily modified versions, to run services rather than as products involving the distribution of a binary, by the likes of google without a requirement to release that code back, that said i'm not sure that the AGPL counts as a later version of GPL anyway so it's probably a moot point.
Then you'd want the GPL.
I have plenty of BSD-licensed software on this machine. And all of it ways something like the following:
(C) Copyright, Regents of California.
(C) Copyright Microsoft Coroporation, All Rights Reserved.
As an end user, I don't get any freedoms when using BSD-licensed software.
Unfortunately (for you), the Apple store does not allow GPL code.
Open Source licenses sometimes happen to be lengthy legal texts, which take a lawyer to get through and even then not sure. Not good.
From the brief ones, BSD & MIT are the ones which are both short and tried over time. And best of all, they don't limit YOU about future code usage.
The BSD suffers from fragmentation [x-clause for x in 2..4], therefor MIT wins.
Sometimes, it might be beneficial to call it MIT/GPL, to make it clear to GPL folks that you really mean to be GPL-friendly.
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 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)
Now in the poster's case, you'd need to be very careful around the GPL. Check here to make sure all the licenses on all that other stuff is GPL compatible. If not, you can't use GPL. But even if you can, there's no guarantee those other licenses are all compatible with each other. This is why, again, developers should do their users a favor and stick to well-known GPL compatible licenses.
If you will browse through the actual laws you will see there is a law that requires you to have a license to drive a car, fly a plane, practice medicine, etc. But there is no law requiring you to have a license to use software, watch a movie, or listen to music.
The whole ocncept of LICENSE is nothing but a made up buzzword, after courts rulled that people actually own the software they buy and can make copies of it if they want to.
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 some company wants a subject matter expert I have my contact information and hourly rate available. Beyond that I honestly don't care.
I prefer the two or three clause BSD license.
I'm not going to rewrite why as I've already written about why here: http://www.rhyous.com/2010/04/...
FWIW, I use the zlib/libpng license which is very brief, crystal clear, and as noted below is recognized by OSI and FSF.
* The zlib/libpng license is a recognized open source license by
* the Open Source Initiative: http://opensource.org/licenses/Zlib
* The zlib/libpng license is a recognized "free" software license by
* the Free Software Foundation: https://directory.fsf.org/wiki/License:Zlib
... now if only opensource.org supported https...
The GPL requires that the program include an offer to provide the source code, either on a physical medium or on a server. It does NOT require that it be distributed via the same server or service that binary is on. v3 makes that very clear, saying:
"the Corresponding Source may be on a different server (operated by you or a third party)"
Putting the binary on the App store and the source on Github is exactly what that covers - provided that in or "next to" the binary copy you make it clear where the source can be found.
Therefore, if you are distributing a binary via the app store, and distributing the source via FTP or Github, you're fine. v3 also says that you CAN distribute the source the same way that you distribute the binary, or you can distribute it using a different method. Also under either version of the GPL you can offer it on physical media.
So no, the GPL doesn't require that if the binary is delivered by mail (or app store) that the source be delivered the same way. In fact, it explicitly says the opposite.
The issue that FSF pointed out in another, more specific post, is that while Apple may not be required to do anything at all in order to conform with the GPL, they are in fact doing something. They are stating that all software distributed via the app store has certain restrictions. A more precisely fitting analogy, therefore, is post office policies about what can and cannot be shipped.
The FSF position is that the policy is an additional condition imposed by Apple which means that APPLE can't legally distribute GPL code under those conditions. That, however, takes us right back around to the question we started with. _I_ may distribute the software, as long as _I_ don't impose additional conditions. If I'm the one doing the distribution, it's legal. Apple is imposing additional conditions, but it's fine for Apple to have conditions on it's app store if they aren't the ones distributing the software. Just like the USPS has policies and conditions, which don't affect the fact that I can distribute GPL software by using USPS to do it.
Whether the person who put the app on the app store is distributing via the app store or if Apple is the one doing the distribution is murky. Viewing that phrase in isolation, a court could rule either way. However, the court will read the whole document, not just one phrase. The top of the GPL license says:
"Our General Public Licenses are designed to make sure ... that you receive source code or can get it if you want it"
Okay, so the purpose is to make sure you can get source code if you want it. That's the goal of the license agreement. Given the murky question of who is the distributor, a court should look at the purpose of the document. The purpose is to make sure people who want source code can get it. If it's freely available on Github and the app contains a link to that Github, the purpose is being fulfilled and the court should allow it.
It keeps your options open. You can license YOUR code under more than one license, and people will ask if you can let them license it. If they won't because of the "Viral GPL", then they're too dumb or corrupt to be trusted with obeying your wishes with your code anyway.
If you already know what you want and it isn't solved by the GPL better than it is solved by one of the others, then go for that one.
But a good default option would be GPL, since it keeps YOUR options open.
I 90% agree with this. I don't see the point of the BSD license, really.
However, BSD does have "brand recognition", so there is that small point in its favor.