8 ms·
Why I’d like a “license type” setting for GitHub projects
- nknight 15y agoThe unnecessary editorializing is annoying. The point, which I agree with, could have been made without the self-centered snipes at licenses you happen to dislike.
- madrobby 15y agoIt's my blog, the concept of which is that I write my opinion in blog posts.
- phillmv 15y agoThis is my reply box, the concept of which is that I discuss what I like or don't like about the topic at hand.
- pothibo 15y agoPissing contest?
- scott_s 15y agoSure, but consider: what is your objective? If your objective is to express your opinion, then say things however you want, and if people react negatively, then tough. However, if your objective is to convince people of an idea, then you should consider that some opinions are beside your point, and don't need to be expressed. These really are two completely different objectives, and sometimes, if your objective is to persuade and explain, then you have to omit certain opinions of your own which will detract from your point.
- snotrockets 15y agoI'm usually in favour of modified BSD or a similar permissive license; but whenever I read someone who is bitching about the GPL because it is too restrictive (i.e. it forces them to give back as they were given,) I consider only adhering to the GPL in the future.
- stephencanon 15y agoI don't know anyone who complains about GPL forcing them to give back. I know many people who cannot touch GPL3 code because of corporate legal departments' fears (especially with regard to patent clauses) and the absence of test cases, but who frequently contribute back to BSD/Apache/MIT/etc-licensed projects.
- nknight 15y agoYou haven't been browsing HN long enough. People go off on rants about the GPL restricting their freedom and just generally being evil all the time, has nothing to do with corporate lawyers.
- DHowett 15y agoAbsence of test cases? Surely this is not a function of the license in use, correct? There can be shitty BSD-licensed swill with no test cases just as easily as there can be that as GPLv3.
- stephencanon 15y agoLegal test cases for the provisions of the license that scare the lawyers. Not software tests.
- DHowett 15y agoOh. That makes a lot more sense. Thanks :P
- gte910h 15y agoOr who code for the Xbox, Sony, Apple or Nintendo platforms, where you can't turn off the DRM on your binary, so can't use GPLed code in your project even if you release the entire project as source/art/whatever.
- snotrockets 15y ago
- bitdiddle 15y agoVery much so. I like the idea but the author's snarky remarks are really off putting.
- reidrac 15y agoBesides the blog content license is CC BY-NC-SA. That's copyleft, isn't it? Interesting choice for a person with a strong opinion against the GPL.
- binarycrusader 15y ago1) his blog content isn't software 2) the general issue with GPL isn't copyleft; it's the patent clauses (in GPLv3), and all of the various distribution requirements, plus the essential forbiddance of DRM (in GPLv3) So no, it isn't so interesting.
- reidrac 15y agoThat's a good argumentation (I don't fully agree with 1, it may ruin someone's good mood anyway). I got distracted by the way he wrote the post. Edit: typo
- drostie 15y agoAt the risk of coming off as one of the maligned "personal opinion" people, I have to object a little to (2). That may be the general issue, I could agree, but it's not my issue. Because my issue is the sheer length and complexity of the GPL; I have read it and I do not pretend to understand it, and I don't personally as a developer want to release under a license whose implications I don't really understand. The problems just start with Section 1 and accumulate from there. For me, the nastiest part is not really the copyleft or DRM so much as the no-linking aspect of GPL. I still don't know what precisely constitutes "linking". I don't know whether Python is in violation of the GPL because the standard library has a readline module, and I don't know if my own code is in violation of the GPL because it's written in Python. GPLv3 actually made this point a little clearer; in GPLv3 you would say "Python as a whole plus its readline library is probably GPL, but as long as you don't write 'import readline' you could probably release under something else instead." Now that there is a BSD version of readline called editline, I wonder if even that analysis holds. But the GPL makes even this analysis complicated, because if Python forgot to mention that the whole package was GPL, then actually their license to readline can potentially be revoked at any time by the readline copyright holders. And there are some nasty parts too, like the ongoing incompatibility between the Eclipse Public License and the GPL. You now have people explaining how to get readline and wrap Clojure in a readline interface (which is allowed) because Clojure presumably isn't allowed to connect directly to readline in its own REPL. LGPL, at least, I don't have to worry about this crap when building an application which uses yours as a tool. You can license under LGPL if you really think that GPL's legal phrasing is absolutely magnificent and you love it. I don't want to release under such an ugly license myself, and GPL forces me to violate my aesthetic principles. So, never mind, some guy whining about GPL over here. (whistles aimlessly.)
- tptacek 15y agoAnd when the drop-down disagrees with the COPYING or LICENSE file...?
- Manfred 15y agoThen you send a quick note to the owner of the repository to ask him what's up.
- DannyBee 15y agoAs a guy who sends these notes, the response rate drops very quickly if the project hasn't been touched in the past year, and this is not uncommon. So you end up with a lot of badly marked or unmarked open source, which isn't great.
- rubyruy 15y agoThe license/copying file that is actually distributed with the code still is what you have to go by. Without license information you MUST assume full copyright sadly.
- DannyBee 15y agoI agree. Sadly, we also run into plenty of cases distributing LICENSE files that don't match file headers, etc.
- rubyruy 15y agoYeah it's just unfortunate. It's effectively like attempting to distribute a broken library. People simply can't use it, and even though it may have had the workings of a good solution for many people, you're just not going to get any users/contributors. shrug
- madrobby 15y agoThe LICENSE or COPYING file in the repository wins, obviously. Also, not everyone would set the setting. But it's a start.
- Manfred 15y agoI like this idea.
- mindcrime 15y agoFor "GPL type" licenses, it would probably be better to use the term "copyleft" rather than "restrictive" since their copyleft nature is really what's particular about them. That said, I'd almost prefer a setting that lets you specify the exact license. The problem is, what do you do about dual/multi licensed projects, or projects which contain code that's under a mixture of licenses? I suppose you could argue that it refers to the "dominant" or "main" license, but - to be pedantic - you can't always describe a project as being under one single license.
- madrobby 15y agoMany people don't know what "copyleft" is, so "restrictive" makes more sense. There are more restrictions. For complex situations, you can always choose "other". As stated in my article, this isn't a replacement for a project's LICENSE file.
- d0mine 15y agoyou could use "keep it free" if "copyleft" is not descriptive enough, though just the name of a license would work best.
- pygy_ 15y agoPrepare for an uproar if an entity the size of GitHub summarizes the GPL as "restrictive". The GPL enables freedom for the end user, who's entitled to obtain and modify the source of the programs he uses. It offers some protection against repressive governments and monopolistic companies, a much broader scope than what permissive licenses enable (freedom for the developers). "Copyleft" is well defined and easy to google. Education doesn't hurt people.
- madrobby 15y agoSo what if there's an uproar? Other license writers could also want to be treated specially. This is just about a general filter, into "proprietary", "do whatever you want to", and "restrictive" open source licenses; for developers when they choose which projects on GitHub might be a good fit for their needs. If you read the GPL it puts a lot of restrictions on what you can do as a developer. So do other licenses (for example licenses that allow you to use the source in open source projects but require some form of payment when used for commercial products).
- simpleascouldbe 15y agoI think having a hard-coded drop down for actual licenses is a good idea, because then we can do the searching and filtering you suggest. I don't like grouping them into 'types'. I think that's too much of a value judgement. Any enterprise's legal department is going to approve or disapprove of specific licenses, so that's what developers like me will be looking for. Potential issues: * Modified licenses (eg: JSLint's MIT + "do no evil" clause)
- madrobby 15y agoA list of every type if license can't work, because it needs to be constantly updated and people may want to write their own, etc. That's why the general type makes much more sense for a quick glimpse if some code is probably suitable license-wise for your project.
- metamattl 15y agoYou're against the GPL, but you're okay with people writing their own new licenses?
- Sanddancer 15y agoIf one feels that the license is flawed, then why not? It's possible to not like the viral clauses for various reasons, such as incompatibility with other viral licenses, but feel there is some issue, like patents, that are not well-covered under the BSD license, for example.
- dobs 15y agoThey could just pull the licenses from the OSI's list (http://opensource.org/licenses/alphabetical http://opensource.org/licenses/alphabetical). And people writing their own licenses contributes to the license proliferation problem, so should be generally discouraged (http://en.wikipedia.org/wiki/License_proliferation http://en.wikipedia.org/wiki/License_proliferation).
- dave1010uk 15y agoList the most popular licences and have an "Other" option. Simple.
- superalloy 15y ago> Don’t you just hate it when you find some great piece of code on GitHub and then you realize that somewhere at the end of the README the frightful acronym GPL is ruining your good mood? Yes. But what I ‘hate’ even more is not finding any license info. Adding this would probably help in that area as well.
- orta 15y agoThis happened to me yesterday, and it was the only type of code of it's ilk I could find. Real shame, probably going to have to write my own version.
- metamattl 15y agoGenerally speaking, GitHub public repos are only for free software projects. A lot of people just forget to put up a license. I file a polite bug with the project, and they generally fix it within a day or so.
- superalloy 15y agoThat’s what makes it so annoying, though, the fact that we _know_ they probably meant to share it as free software. My point goes further than people forgetting to add a license, though. Some people think that just adding it as an open repo to GitHub is enough, which, depending on the country, it clearly isn’t. In my opinion, GitHub should educate people a bit more about this. A simple feature like this could just be enough.
- bmelton 15y agoHave you considered emailing the author? I know that personally, I've relicensed code to be more permissive on request. Of course, you have to ask, but sending an email might be less work than writing your own version.
- tommi 15y agoDoes it make you more vulnerable to law suits if the author says no and you decide to code/acquire something similar?
- DannyBee 15y agoI would love this, but there are at least a thousand open source licenses. Even if you limit it to licenses that have at least 1% adoption rates, you still have at least 40 (there are more, i just stopped counting). As such, this would be a confusing dropdown. A free form text field with autocomplete (and synonyms, so if you typed "general public license", it would still autocomplete GPL.
- metamattl 15y agoNot really. There's less than 100 licenses out there, and most projects use a subset of around 10 of them.
- madrobby 15y agoThe drop down has 4 entries. Please read the article again. :)
- DannyBee 15y agoEven in that case, he's trying to classify 1000+ open source licenses into 4 categories, which doesn't really work out well without a dictator. People have different views on what "permissive" is. Even if you told people what they should choose for each license, they will still choose what their ideology says is right about the license. IE plenty of people will choose "permissive" for GPL. I've spent an inordinate amount of time classifying licenses into ~4 categories for compliance at Google, so i know where this path leads :) In my case, I can end discussions by fiat and say "this is how it's going to be". When you have 1000+ different project owners who each get to make their own decision, the field will become useless because you won't be able to tell what it really means.
- madrobby 15y agoIt's actually really simple: "Permissive": anything that is generally MIT/BSD/WTF/Apache 2.0 "Restrictive": anything that is GPL or requires you to pay for or share all sources Given that the vast majority of software use only one of a handful of licenses, I think that's a non-issue (tho there may be edge cases, I agree with that). For stuff that is not categorized, people can just put in "other". (Do you have a list of those classifications btw, that would be useful.) In general, a setting like this would likely raise awareness of people sharing code that they should choose a license in the first place. Far too many useful pieces of code on GitHub don't come with a license or copyright statement at all.
- huskyr 15y agoI was actually rather surprised when switching from Google Code to Github that they didn't have a license option. Especially if you need code for a business licenses are pretty crucial. I don't like this idea however. It's too general. I would make the license an input field with autosuggest with 10 or so of the most popular licenses (like Google Code). If you have something funky you can still enter it.
- metamattl 15y agoThe FSF has a pretty decent list of licenses -- http://www.gnu.org/licenses/license-list.html#SoftwareLicenses http://www.gnu.org/licenses/license-list.html#SoftwareLicens...
- phillmv 15y agoWhy on earth would the GPL ruin your day? What's with all the fear mongering? The only practical difference is you're forced to put up your patches somewhere… which you've probably already done when you hit 'fork' on Github.
- jakobe 15y agoI can't include code under GPL in my own code without changing my own code to GPL. That's why it ruins my day.
- nileshtrivedi 15y agoOnly if you are distributing the combined work and not giving the source code along with it. Preventing that is the whole point of GPL.
- mikeash 15y agoIt is indeed the whole point of the GPL. It also makes it impossible to use GPL code in a wide variety of situations. OP was asking what the problem was with the GPL, and that's what it is.
- phillmv 15y ago1. This only kicks in if you're distributing the program. If you're building a web service, you're good to go. It's only an issue if you're using the Affero GPL. 2. You're using free code off the internet. If you don't like the license terms, don't use it. It's within the author's prerogative to set his or her own license to his or her own code. (The most you can do is send them a politely worded email on how you want to use their code without being obliged to the virality clause - I imagine a lot of people would be okay with moving down to the LGPL at least. If not… deal with it.)
- jakobe 15y ago"You are using free code". It's not free. The cost for this "free" code is that I apply the same license to my own code. Of course the original author can put whatever license on their code. But the license effectively renders the code useless to me. Not because I dislike the GPL, but because I use a different license. And it's simply very disappointing when I see that someone has already solved a problem I'm struggling with, and advertises their "free" solution, that then turns out to be not free for me.
- phaylon 15y agoGitHub already parses README files of various formats. I wonder how hard it would be to just parse a LICENSE/COPYRIGHT file if it's available. This would make sure the licenses are distributed with the code. If the license file couldn't be parsed, a "Custom License" link to the corresponding license file could be a good general fallback too.
- technoweenie 15y agoGitHub detects the presence of README files by file name. It'd be pretty easy to do that for LICENSE files too of course. Look for LICENSE, MIT-LICENSE, etc. The trick is actually identifying what type of license it is. Pop quiz: What license is this? https://github.com/sinatra/sinatra/blob/master/LICENSE https://github.com/sinatra/sinatra/blob/master/LICENSE This problem would be perfect for a tiny ruby script like Linguist: https://github.com/github/linguist https://github.com/github/linguist. Just something simple that's given some filenames and contents that can return the license type. It'd also be nice to handle non software licenses, such as creative commons. I'm not sure what the convention is for specifying that in Git repositories, however.
- insertnickname 15y agoThat's the MIT license.
- technomancy 15y agoMIT-X11 license to be precise; MIT has spawned a number of licenses.
- snotrockets 15y agotl;dr: the author dislikes the copyleft nature of the GPL, and shoehorns his dislike into what could be a useful feature request.
- jballanc 15y agoMore annoying than people that choose licenses in an uneducated fashion, are people that do not choose a license at all. Under the Bern Convention, your work is copyrighted by default. If you don't add a license, I cannot use it. Period. At the very least, it would be nice if Github could provide a warning to that effect. Github is doing a wonderful job of growing the open source movement from an infrastructure angle. I would love to see them also grow the movement from a community/education angle as well.
- tantalor 15y agoI started a project on GH with a starter python implementation: https://github.com/tantalor/detect-license https://github.com/tantalor/detect-license Looking for contributors to add more implementations (JavaScript, Ruby, etc), examples license files, and tests.
- deleted 15y ago[deleted]
- aa4hn 15y agoso many different versions of free. let's just have two licenses free and non-free.
- jwr 15y agoIf I could only spend all my karma on upvotes for this, I would. I regularly look at various projects that I can use. And the first thing I check is whether the license is MIT/BSD/Apache/EPL. If it's GPL I won't even look at it, if it's LGPL I might consider it, but it would have to bring huge benefits. If there is no license, I have to contact the author and ask him to include one. I'd love to be able to just set a filter "never show me any projects which do not have a license in my preferred set". Please note that I am not editorializing here, nor am I discussing any values. This post is about facts and about what would make my life easier.
- wolfgke 15y agoThe problem is: there are Open Source projects that are a compilation of works of different licenses that are sometimes more permissive in one term but less in another one (see for example the table on http://www.osscc.net/en/licenses.html#compatibility http://www.osscc.net/en/licenses.html#compatibility to see what kinds of problems can occur). How would you solve this problem?
- songrabbit 15y agoHow about a tool that gets authorization from your github account and let's you automatically upload LICENSE files to your project. The particular license is based on user input, similar to [1]. Does something like this exist? [1]. http://creativecommons.org/choose/ http://creativecommons.org/choose/ *edit - this way it could just be an open source project instead of waiting for github to implement it.
- alexyoung 15y agoI've been thinking about this for a while, because I write about several open source projects a week and like to mention the license in my articles. It's often hard to find the license: it might be in the readme, a license file, or in a boilerplate comment at the top of a source file. Sometimes a license file is included, but the name of the license is not, so I have to try searching for fragments of the text to figure out what license it actually is (I have quite a few memorised now). It's possible GitHub could solve this by interpreting files intended for packaging systems like package.json. For example, I occasionally find authors of Node modules actually include a 'licenses' property in their package.json but don't mention the license anywhere else.
- orblivion 15y agoFor that matter, perhaps Github could just treat the LICENSE file like magic the same way it does README. It would have the added benefit of convincing me to add a LICENSE like it did for README.
- chj 15y agoGoogle code has a license type setting long ago. Github should get one too. It definitely helps everybody, no matter you are a GPL hater or lover.