a companion discussion area for blog.codinghorror.com

Pick a License, Any License


#42

Do a search for this:

software license agreement “nuclear facilities”

There is an almost endless list of software licenses that match this. It’s just no fun working at a nuclear power plant.


#43

Actually, copyright doesn’t cover “using” the code, it only covers… well, copying. If you receive a piece of code under no particular license terms, you are free to run that code, but not to copy, distribute or modify it (excepting those purposes covered by fair use).

Of course, since executing the code can cause a copy of it to be made in your computer’s memory, it’s arguable that there’s a violation, and most proprietary software includes a EULA which imposes uses restrictions, but nothing in copyright law imposes such restrictions by default.


#44

Another of my favorite licenses:

Here you go, it’s your problem, now!


#45

Jeff, thank you for campaign against illiteracy :slight_smile:


#46

@MarkM

Is there anything about non-U.S. citizen (i.e., foreign) entities using such software? Is there any interesting software that exists under such license?


#47

@Denis Bez: I was wondering if someone was going to translate that… thanks!


#48

The picture in your post is a Russian license for production of hardware equipment to use in nuclear power station and was issued by the Russian committee for atomic and radiation security, so it has nothing to do with software :slight_smile:


#49

Please please please DO NOT release code into the public domain.

No, I’m serious.

The public domain is a legal construct that exists in the U.S. and a handful of other jurisdictions; most of the world has no direct equivalent to “placing things in the public domain”. If you do that, your code will be harder to use for a lot of the world. Please use an actual licence on all of your code. The MIT licence is a fine default but the WTFPL will do fine in a pinch.

@ Jeff: it would be nice if you updated the entry to include a notice to this effect.


#50

One thing to note regarding public domain software.

Any software created by a US Government employee is considered public domain software. The only thing that would preempt a citizen from getting the source code would be some type of security related code or coupling to the softwares security scheme.

If you read deeply into Freedom of Information Act (FOIA) you can find the guidelines you need follow.

The civil servant world tries to keep this as quiet as possible because that is how they can justify their existance. Honestly speaking as a civil servant IT guy you probably don’t want our code.

You should hear management get bent out of shape when this subject comes up.

Marko “The Pollo”


#51

@Angus Glashier: Interesting that you can have opinions without actually knowing anything.

Yes, Sun is anti-capitalist.
Yes, Novell is anti-capitalist.
Yes, IBM is anti-capitalist.
Yes, Oracle is anti-capitalist.
Yes, HP is anti-capitalist.

Microsoft is about the only large company making serious cash from shrink-wrapped software.

If you find a profitable niche, Microsoft will use its monopoly power to take you out. The GPL (along with other free software licenses) provide for a business model that is not only different, but better. And it’s the only way you can compete with Microsoft. You just have to be better when using the GPL, man, that’s anti-capitalist.

Interestingly, Richard Stallman supported himself when he began his push for free software BY SELLING GPL SOFTWARE. Big talk from someone who knows nothing.


#52

Chris: I don’t have enough data to back up anything here, but if you want an imaginary scenario - here it is:

You sell “Beyond Compare” (BC). Include source code under GPL. Will people re-distribute it and put you out of business? Maybe, maybe not. Remember, re-distributing it takes time and energy, too. Your advantages are that (1) people can always get the latest and greatest BC from you. (2) Anyone implementing their own bugfixes will probably want to get the patches into the main branch and give them to you.

I have no idea if this would work. It all hinges on it basically not being worth the effort to distribute BC for less than $30. Maybe, maybe not. I don’t really think you can make any money out of selling services when you have no services to sell, and don’t have the manpower to sell them even if you had.

Ultimately the choice of license is a (business) decision where you have to consider what you want to achieve. For example, FSF released the C standard library under the LGPL because they wanted it to be used by everyone, and that the freedom of the code had to take a back seat to that concern.

Another related idea: What you can do, however, is partially open the code. (Remember, it is your code, so you can license different parts in different ways.) Here you may find it working for you. One example is a photo management software package that I use. It was quite cheap, and written by one heroic programmer. Well worth the money. But: it has about a million little faults that I know I could fix in five minutes - if I had access to the code. But I don’t, and so I have to petition this one poor guy who is already doing 18+ hour days to fix the faults I’ve found.

Now, I would be fine to contribute back the changes for free. But let’s say that the app was split into a proprietary kernel and a host of GPL plugins. I could now fix the problems (in the GPL’d plugin), yet the original author would run no risk of me putting him out of business (since I can’t distribute the kernel). This would be like a company both distributing a closed-source OS (the kernel) and a GPL’d software suite (plug-ins) on top of it.

Ultimately, you have to understand your business model, understand the license, and decide what you want to do. Just slapping the GPL on it and “selling services” is not a business plan any more than “selling stuff” is.


#53

When I first heard about the GPL I just sighed and thought “commies…”.

But then I realized that hey, if someone wants to distribute their software under the GPL, then why shouldn’t they be allowed to? It’s not like the FSF is campaigning for a law that says that all software must be GPL. If it is capitalist or not I don’t care. It is about individual freedom, and the FSF doesn’t infringe on mine.

And a nitpick on the LGPL:

GPL with a cleverly-constructed pressure valve release. Your free software can be binary linked to proprietary programs under certain very specific circumstances."

The C standard library for Linux is LGPL, and is used pretty much everywhere by everyone. A short summary is that the LGPL says that if you change the library itself (“a work that is derived from the library”), then those changes are under the LGPL, but if you just link with the library (“a work that uses the library”) then you can license it anyway you want. (Yes, there is a gray area here - but that’s for the courts to clarify.)


#54

And don’t forget boost license, it is fairly known in c++ community.


#56

No license means no use? I guess that means that if you release software with no license then it is useless software!


#57

“… permission is always granted with the single caveat that my name and URL remain in the comments.”

“I still prefer the WTFPL.”

WTF?


#58

I love the WTFPL :slight_smile:

Now, a serious question for those who are extolling using the gpl style license and making money by selling support. How would this work for a small shop that makes handy utilities and tools like “Beyond Compare” that are well worth the money?

Please, this is not meant as a troll but as a serious question.


#59

I deal with a lot of student coders, in a chatroom environment, that are trying to teach themselves. Mostly kids.

There is a tendency among them to want to become ‘CopyPasta’ coders, copying and pasting all kinds of stuff they find into one big Frankenstein’s Monster application full of bugs they don’t understand and can’t begin to fix because they don’t understand the original code.

To avoid that, any code examples I give them comes with an ‘LOL’ (Learning Only License):

You may use this code freely for any purpose, as is, or modify it in any way you choose, redistribute the original code, and/or redistribute any modified version, providing you do the following:

  1. Read through the code completely and all of its comments.
  2. Attempt to understand how it works.
  3. Learn something from it.
  4. Do not hold the original author or the author of any modifications responsible for any bugs in your application that are the result of you not understanding the code.
  5. Do not hold the original author or author of any modifications responsible for bugs in your application that are the results of the author’s mistakes. (Nobody is perfect. We all make mistakes. Nobody knows everything.)
  6. If a bug is found in the original code or any modifications, you will attempt to contact the responsible author and report it, and explain what is wrong with it and why it is a bug, so that the responsible author may learn from your experiences.
  7. Keep the author(s)'s contact info within the original or modified code so you can remember where it came from and who to report any bugs to.
  8. Do not redistribute the original or modified code unless you understand it fully and can answer any questions the person(s) you give it to may have about it.
  9. Do not redistribute a modified version of the code without clearly marking the modifications you have made and adding your contact info in case you have introduced a bug into it and the recipient needs to contact you to report it.
  10. Do not get an bad attitude with anybody reporting bugs in your original or modified code.
  11. Attempt to fix any bugs that you are responsible for, seeking help to do so, if necessary.
  12. Include a copy of this license with any source you distribute that contains the original or modified code. A copy of this license does not have to be included with any binaries if they are not distributed with the source code of that binary.
  13. If you make a million dollars from your application that contains the original or modified code, you will attempt to contact the author(s) and thank them for their help.

#60

I’ve linked to this article from the Compatibility page of the CCD CopyWrite website: http://ccd.apotheon.org/compat.php

I intend to provide a somewhat more useful (in terms of the CCD CopyWrite license) description of the differences between these licenses than is present here. While it will not be directly based on your comparison, it is inspired by it, and as such I wanted to give you credit where it’s due. Hopefully you won’t have any objections, but if you do I’d like to know about it.

If you wish to contact me directly on the subject, feel free to use my contact page on the CCD CopyWrite website. I will respond promptly.


#65

License to kill


#66

It’s also a safe license to use early on, before you’ve evaluated
other licenses – it is by far the strongest license, legally (it’s
been evaluated by massive numbers of lawyers), and it doesn’t give
too many rights. If you want to use a more permissive license later,
you can.

The latter part of this excerpt of Peter’s claim is incorrect. You cannot change the GPL to a more permissive license later without the permission of EVERY copyright holder, (unless you wrote the entire thing yourself, which is uncommmon, then you only need your own permission…) so if you want to change the license to BSD, good luck finding all of the old contributors. (or you’re going to have to get rid of all of their patches) The BSD, by contrast is GPL compatable, so if one made the unfortunate decision of GPL’ing it later, while the original code would still be BSD licensed, all of the code base (including the BSD licensed code) could be treated under the terms of the GPL.

That is why I hold the opposite view, that you should release your code under the most permissive copyright possible if you are unsure of a license. If you are genuinely unsure about licensing terms, then honestly, I would suggest a generic copyright because then no-one can contaminate your copyright, while still allowing it to be useful in the short term.

There was another (partially) incorrect claim by another poster named Peter who claimed the most minimal BSD license was at least 3 clauses. There is an 2-clause bsd license (which is officially used by the FreeBSD project and the BSD licensed portions of KDE).

On a more subjective note, and unrelated to the above comments, I would further argue that the LGPL is a rather restrictive license. If you want a truly liberal copyleft license, then stick with the MPL. Furthermore, each of the open source BSDs have their own C library, none of which are derived from the GNU C library, so I think it would be mistaken to assume that people are deriving from the GNU C library as a rule. (Although I would not doubt it’s popularity)

source: http://en.wikipedia.org/wiki/BSD_license