It's not legally possible to dedicate your project to the public domain in many jurisdictions. That's why CC0 exists: http://creativecommons.org/about/cc0
Note that there's some argument about the CC0's appropriateness for code; apparently the OSI's lawyers said it wasn't good, but now say it's okay, and the FSF's lawyers say it's not cool.
I'd give you some links but I'm on my phone, and IANAL.
The reason OSI didn't approve it is because CC0 does not grant you a patent license. So you if you use CC0 "licensed" code in your own projects, you are free to do anything with such code from a copyright perspective -- but the author of the CC0'ed code has explicitly not given you a patent license for that work.
As detailed on D.J. Bernstein's page at http://cr.yp.to/publicdomain.html, a lot of the fear, uncertainty, and doubt about public domain software can be traced back to Lawrence Rosen's influential 2002 Linux Journal article "Why the Public Domain Isn't a License".
(For those who may not know, Rosen is the former general counsel and secretary of OSI.)
However, that article was incorrect on a number of issues, as Bernstein points out. And indeed, Rosen has last year at long last recanted his previous views on public domain software:
> I have already voted +1 to approve the CC0 public domain dedication
> and fallback license as OSD compliant. I admit that I have argued for
> years against the "public domain" as an open source license, but in
> retrospect, considering the minimal risk to developers and users
> relying on such software and the evident popularity of that "license",
> I changed my mind. One can't stand in the way of a fire hose of free
> public domain software, even if it doesn't come with a better FOSS
> license that I trust more.
> I do not regard the LICENSE.txt in your Github project as a serious abrogation of ethics. It inspires more of a shallow sigh ...
Note: Not having a LICENSE.txt does not make Github projects public domain. They are simply unlicensed. There are many projects which are unlicensed on Github. File an issue for each one you find!
The general population of devs seem to have this misunderstanding. Since many just Do Their Jobs and don't release personal projects (and thus feel they have no immediate need to understand copyright and licensing), it's understandable.
I'm now curious how many of these intersect with the crowd that thinks when I've released my own code under the GPL, that I must never make use of that code (that I own the rights to) in some proprietary project.
> Not having a LICENSE.txt does not make Github projects
> public domain.
+1. From the U.S. Copyright Office FAQ:
> Do I have to register with your office to be protected?
>
> No. In general, registration is voluntary. Copyright
> exists from the moment the work is created. You will
> have to register, however, if you wish to bring a
> lawsuit for infringement of a U.S. work... [1]
(Many other countries have similar rules.)
This is why open source projects often require a "contributor agreement" when submitting patches.
This is why open source projects often require a "contributor agreement" when submitting patches.
Often "contributor agreements" are only desired by (large) projects so that the large project owns the copyright on your contributions. This will allow them to change the licence at a later date (if they want). Without copyright assignment to them, they have a much harder time changing licence.
There are some cases where relicencing is good (OpenStreetMap had to change it's licence, and had to delete old contributions), and sometimes when it's bad.
(Note: GitHub ToS says if you put copyright code on it, then you are by default allowing others to fork & download it, so the default licence is looser than the legal default)
> ...by setting your pages to be viewed publicly, you agree to allow
> others to view your Content. By setting your repositories to be
> viewed publicly, you agree to allow others to view and fork your
> repositories.
Sure but I see many repositories (and gists) with interesting things, with comments and other indicators saying thanks for the code, but with no license. This means people are taking things anyway, which the authors seem okay with. This is not okay, safe, stable, or sustainable.
Public domain as a concept does not exist in all jurisdictions, so placing something into the public domain doesn't actually do what you intend it to do.
What is it that you think I intend to do? I am fully aware that public domain doesn't exist in all jurisdictions; by the looks of it, it may not exist for long in my own legal jurisdiction! Whether it is legally recognized or not is irrelevant to me.
I meant 'you' in a slightly broader sense; people who want to put things in the public domain intend their use to be free for anyone to use for any purpose.
You hint at this with suggesting that you're doing MIT but without the last bit of covering your ass. But depending on where in the world you are, you're being significantly _more_ restricted than the MIT, all because of (your words) some 'internet bravado.'
Yes, licenses suck. I'm -1 on most forms of property, and "intellectual property" most of all. But ignoring reality harms more than it helps. Just MIT/BSD and be done with it, or, if you want to be silly, WTFPL.
Let's not equivocate on the term "restricted". My software is more restricted by your government if it doesn't recognize the public domain, but that is entirely different from (for example) saying that the GPL is more restricted than the MIT license.
I understand this distinction won't matter to someone in such a country who wants to use my code while remaining legally compliant. My own feeling is that in such a country, I would carry on writing software and stop worrying about legal compliance.
Yeah egoism/illegalism is fun and all, but until you can get a significant mass to participate, you're actively harming those who may be sympathetic, yet don't want to violate their own country's laws. This harms the organizing you'd need to do in order to bring about meaningful change.
I am all about direct action, but you have to pick your battles. This one seems to me to be all downside with very, very little upside. Especially, as my sibling states, when you just say 'public domain' without mentioning your politics.
Consider also that the majority of repositories on GitHub contain no license declaration at all, which should be a clear enough indicator of where these trends are going:
Further, as explained in another comment, when even the most prominent and harshest former critics of public domain software (cf. Larry Rosen) have recently changed their mind and, if not exactly pushing the public domain as yet, at least see no problem with it, how much more could you want?
Secondly, a mass of people _creating_ public domain software isn't the issue: the mass would be of people _breaking the laws of the jurisdiction in which they live by using public domain software as public domain even though it's not recognized_.
Personally, I currently BSD/MIT all of my code, but am considering AGPLing it all from now on. I don't think that the negligible difference between BSD/MIT and public domain is worth _any_ headache at all; they're effectively the same from my viewpoint.
I'm not under any illusion that I am going to make any "meaningful change", and I'm not "organizing" anything. I'm a dude writing obscure software on the internet. Acts of principle, by definition, are ends in themselves, not pragmatic attempts to achieve some other goal. I lost this battle before I was even born.
If you write a blog post titled "Why your next project should be public domain" and submit it to one of the largest programming message board son the internet, you are attempting to organize some kind of political change, unintentional or not.
I don't care what you do. Writing obscure software is great! Have fun! Even put it in the public domain, you obviously know exactly what you're doing, and I think your principles are fine.
I don't think that advocating that others should follow along with what your doing is the most responsible of choices, especially if you don't care about achieving some sort of goal.
You can't imagine any other motivation for me submitting this beyond trying to organize political change? What about the personal satisfaction that comes from discussing a substantive issue with other intelligent people? These sorts of meta-discussions never go anywhere.
I think we have different definitions of 'political.' I would consider discussing a substantive issue with other intelligent people to be a political act.
Anyway, as I said elsewhere, rock on. I've already made my point.
So what did you intend to do? If you're trying to make it as easy as possible for other people to use your code? CC0 (or, from a practical point of view of your audience being likely to know what the license means, 2-term BSD-style, Apache or MIT) does that better than your public domain declaration. If you're trying to make a political point, it would be more effective to make an explicit statement to that effect - if people just see a public domain declaration they're unlikely to even consider the idea that you meant to convey something political by this.
No, my intention is not to make it as easy as possible for someone to legally use my code. I definitely consider it a matter of principle, and I think it's a shame when programmers choose a permissive license instead, purely out of expedience. I do not agree that the merits of a principled act depends on how effectively it is conveyed to others.
The author compares PD with MIT/BSD type licences, but does not explain why he/she wants to give everyone the relatively full set of rights that these alternatives represent.
My code, outside the day job, is GPL. Why should I let others commercialize it without giving anything back? But I want to allow noncommercial use for everyone, and commercial use for those who will contribute their changes.
I'm not saying everyone should have these preferences - in fact I admire the generosity of anyone who donates valuable IP to the public domain. It's just that the title is "Why your next project should be public domain", yet the author does not explain the motive for this type of licence over others.
My code, outside the day job, is GPL. Why should I let others commercialize it without giving anything back? But I want to allow noncommercial use for everyone, and commercial use for those who will contribute their changes.
The restrictions for GPL code is nothing to do with whether it's used commerical or noncommerically, the same restrictions apply.
Someone can use your GPLed code commerically without paying you or asking your permission, and someone can use your GPL code noncommerically as well. In both cases they have to abide by the GPL conditions.
Correct, I was just using "commercial" as a shorthand for "closed source". It is only commercial users that would use it with concealed changes if it were PD or BSD-type licence. This would enable privatizing public value.
The point is that my motive is giving value to the public, in a way that prevents it "leaking" into private profits without compensation. The effect of the article-author's licensing is giving some of the value to the public and some to private profit-oriented exploiters, while the motive for preferring the latter over the former is not stated.
Slapping a copyleft license on your project doesn't mean that people magically won't use it where that use would be "infringing". It only means that you can sue, if you should learn of it.
See this recent talk by Rob Landley, of BusyBox fame, on how casual and widespread GPL infringement is in large corporations, and why he no longer advocates the use of the GPL:
Landley's the guy who started the infamous BusyBox GPL lawsuits that then spiraled totally out of his control, so he has more skin in the game than most.
You don't actually need to sue people to make GPL have an effect. Some companies might casually infringe copyright, but they are less likely to do so once informed about it by the public. At that point, it becomes willingly infringement. Willingly infringement on a commercial scale is one of those key legal terms that turn fines into millions, and in some countries, can even become a criminal offence rather than civil (criminal offences are handled by the state rather than by the complaint).
This is true in theory, but in my experience, every big company asks for all the licenses of the software they use, and if it's GPL, that's a non-starter. Maybe I've only worked for the good ones.
Obviously there will be some that violate the license, as there is with any license. But the point is that you do have _some_ sort of legal recourse if they do, and also, you make your intent clear as an author: this is supposed to be Free forever.
If your anti-argument is "people will just ignore the license," then using a permissive license isn't an argument either. After all, people will just ignore it.
It may be a cultural difference. As I recall, Landley's examples are from the East (Sony, for example). Intellectual property as a sacred institution is somewhat less established there than in the West.
The point is that users who would give credit will do so anyway (without needing a gun held to their heads), and those who won't, won't. A license only changes things by giving the recourse to sue in the latter case. If you aren't going to sue anyway (as Landley isn't, anymore), then there's not much point to using a relatively restrictive license.
I recommend watching the Landley talk. He used to be among the most rabid copyleft advocates, before the BusyBox fiasco and GPLv3.
Please don't use "GPL = noncommerical" shortcut. It furthers the damaging meme that opensource and GPL is not for businesses and is only for hobbyists and is a 'toy licence'.
> The author compares PD with MIT/BSD type licences, but does not explain why he/she wants to give everyone the relatively full set of rights that these alternatives represent.
For me, I don't believe I (or anyone) have any rights over information. Therefore, I use a license that assumes the smallest amount of rights possible (subject to legal interpretations).
I am specifically addressing people who already intend on using a permissive license. I understand that doesn't include everyone, but I'm intentionally restricting the scope of the subject.
D. J. Bernstein (qmail, djbdns, the man responsible for making encryption legal in the United States) places everything into the public domain and has written more about it: http://cr.yp.to/publicdomain.html
For many years Bernstein explicitly refused to place any sort of license conditions on most of his software on the grounds that he didn't want modified versions floating around and copyright law allowed most of the things he wanted to allow people to do with his programs. (It's unclear whether or not he was right on the latter point. You can dig up Bernstein's flamewars with Theo de Raadt and Rick Moen on the topic and decide for yourself.)
I don't think he gave a reason why he switched to public domain a few years back, but it was clear by that point that he wasn't doing any more work on qmail or djbdns and the non-licensing was holding back further development and adoption by others.
If I was making a stand alone program, then it would probably be GPL or AGPL (for anything that could provide a service over the web).
However I would probably avoid it if I could see the potential for it to be made into a library and many stand alone programs can benefit from that (Look at Clang vs GCC). Ideally you make the core meat of your program as a library from the beginning but and just provide a thin frontend but thats not always how projects go. For example if you make a GUI app but now have a save file format that you could allow others to interoperate with.
For a library I look at either MIT style, or CC0. MIT does seem like a silly requirement. Yeh some outsourcing company somewhere can legally dump your code into their project and charge for it, (and with CC0 not tell anyone it was your code but) that doesn't really hurt you. If it's a closed project no one will be looking at the code anyway. And you can always point to the code and prove it's yours (well someone could claim you stole their code and re-licensed it but that can happen with any license).
I tend to avoid the LGPL, the restrictions seem like a massive pita to me. You now have to deal with dynamic libraries rather than static due to stupid legal issues with what should be a technical decision.
I also don't like that GPL'd stuff can take from MIT/CC0 and the reverse isn't true (without converting their codebase). Seems kind of unfair in the opensource environment.
I almost don't mind releasing my code public domain (and in fact I often do that) but lately I was thinking about if there is a license I could use which forbids the usage of my code for weapons, and now with all the NSA stuff perhaps even spying or more general "harming humanity" or something?
If you do choose to license your code under such a license, it would not be considered open source (according to the OSI) or free software (according to the FSF). Here's the relevant part of the Open Source Definition:
> The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.
You can insert a morality clause into your code. However, a broad one ("do no evil" essentially) will make your code unusable unless you define, in exact detail and in legalese, your own moral code. You could prohibit individual activities, but then you run the risk of having your code used for undesirable activities that you previously could not have foreseen.
If the code is never put into a public project I don't see how this would have any effect. I'm not required to abide by every license on everything I slap together on my laptop, it's when I distribute it or allow others (outside my organization) to use it that matters.
It depends on what kind of license it is: if it's an end-user license, then yes, you do (in theory) have to abide by it.
You're right that if it's just a copyright on the source code, then it's probably a restriction on redistribution, which means you couldn't _use_ that code for evil and then share it with others. But using it for evil for yourself: totally fine.
For an end-user license, sure. But even so the license restrictions only apply to the _recipients_. So if I'm the NSA and use GPL code, and only distribute it to NSA colleagues, I only have to provide my NSA colleagues with the license and code. (IANAL, but seems pretty clear to me on this)
I don't see how this is at all supposed to be convincing. Furthermore: "In my lifetime, I expect the copyright cancer to complete its metastasis. I expect that old-fashioned physical property rights will decline by the same magnitude. When I reach my deathbed and find myself ready to will that old-fashioned property to my unlikely-to-exist children, I'll be sure that document has a nice big public domain dedication at the bottom."
If he thinks so little of software copyright because it's "old-fashioned" and cancer-ridden, shouldn't he think the same of physical property law? Is this the kind of person that would steal your wallet too?
If he thinks so little of software copyright because it's "old-fashioned" and cancer-ridden, shouldn't he think the same of physical property law?
There are perfectly valid reasons do disagree with physical private property, but repudiating copyright does not entail repudiating private property.
Physical goods have a significant difference, which makes property, if not indispensable, at least reasonably sensible: scarcity. Each tangible good is scarce, and its use by multiple people is conflictive. Property as an institution reduces conflict by determining who can use each good at any time. Copyrighted goods have no need for such mechanism - you can just create more.
This piece isn't meant to be an indictment of intellectual property in general (I'll save that for another time). I'm arguing that even those who believe in copyright should agree that it should be optional. The fact that it is now encompassing all creative work, regardless of the creator's desires, is what I regard as cancerous.
I agree copyright SHOULD be optional, it should NOT be automatic. However, it currently is. Which then means if I use your public domain code in a project, I am probably infringing your copyright because there is no such thing as public domain in my country.
So, I cannot use your code. Many open source projects are developed by volunteers around the world, they will also not be able to legally use your code. If this is your intent, that is fine, it is your choice. Usually that is not what people intend when they try to put their code in the public domain.
Are MIT or BSD licenses any better in this regard? I mean, I'm sure the american boilerplate written by american lawyers would hold up in an american court - but if I'm not under the American legal system, how do I know I don't need different boilerplate?
For all I know the MIT license might be (say) invalid in France, because it's written in the wrong language, or invalid in Russia because the the first paragraph isn't written in ALL CAPS, or invalid in Taiwan because it doesn't expressly waive moral rights to the integrity of the work.
Understood, but not being able to "legally" use my code is not the same thing as not being able to use my code. Public domain is an important enough principle that I don't think we should be ceding so readily, just so we can appease the dysfunctional copyright regimes around the world.
If a project contains code which infringes someone's copyright, then no professional is going to touch that code. Companies with any kind of legal department will not use it, linux distributions will not ship it, etc..
The text you quote literally contains the phrase "old-fashioned physical property rights".
It seems to preempt the question you are asking. I get the sense that the "old-fashioned property" in the last sentence is referring to physical stuff as much as to software.
Here is quick way to release your project in the public domain.
Add this to your README and to your source files:
This is free software released into the public domain (CC0 license).
See the COPYING file or <http://creativecommons.org/publicdomain/zero/1.0/>
for more details.
Zach, awesome stuff, hadn't noticed that Nightweb was in the public domain. We've added a link to your project just now in the Unlicense.org featured project list: