So I thought about it for a long time, back when I started writing software, and I didn't really like the "shareware"-type licenses, which were largely about passing around compiled binaries for free, and kinda tended to contribute to the spread of viruses and the like.
I certainly didn't like "Buy Me!" type licenses, where you weren't allowed to do pretty much anything with the software, and absolutely nothing without buying it.
This was before I'd heard of the GPL and LGPL and all the other free-software-type licenses, so I made my own. Prepare yourself, here's the wordy beast:
Damn, did you read it all? I know it's a hairy legal bastard of a license, same as the rest, but thanks for taking the time to read it all.
I call it "The Two-Word License", which, funnily enough, gives it a name one and a half to two times longer than the license itself, depending on if you call a hyphen a word seperator, which I do.
The only thing that worried me with respect to my code is that people might go and alter it to do naughty things, and then send it around, and people would come after me because I wrote the original, sane version of the software. So I wrote my license as a sort of "passing the buck" to the evil bastard that sent them the evil (modified) version of my code.
I don't disclaim warranty and liability like pretty much everyone out there, because I do actually care about my software's functionality, and I will make efforts to fix bugs if they happen. If my software causes you problems, I'll apologize profusely, and do my best to make it right.
You can't really expect to sue me for grandiose amounts of cash, though, as:
- I have none
- my software costs nothing more, and generally far less, than the "I Agree" EULAs, and you get what you pay for
So later in my hacking life, I sat down and considered the GPL and LGPL and its variants, and I came to this decision:
I like my license. A lot.
I never really considered the full impact of my license when I wrote it, but here's some of the unexpected benefits of it:
- You can use my software whenever, whereever, and however you like.
- You can modify it, so long as you don't send people modified versions.
- You can send people patches for it, but they'll probably wind up asking "what's this patch do?", a very wise question in my opinion.
- You can learn from it.
- You can use parts of the code, my routines, etc, in your projects (although unfortunately, without attribution. Sometimes it sucks to be magnanimous).
- You can use the whole thing in your project, but you have to use original source, or not include it at all, and instead tell them where to get it.
In short, you can do pretty much whatever the fuck you like with it, so long as you don't change it or add to it and then give it away.
Bit of a tangent...
When Thomas Jefferson set the steamroller of the United States Patent and Trademark Office (USPTO) into motion in (very) early 1790, he wasn't trying to set up stupid shit like intellectual property and software patents, he was trying to protect the buyers, and people's names. There's a quote on my quotes page from the man himself about how ideas cannot be owned.
The only thing you can own is your reputation, and not allowing people to manufacture and sell knock-off, sub-standard "Official Eli Whitney Cotton Gin"s, saves the good Mr. Whitney's reputation. Eventually, however, the people that actually care about your product have started buying it in such quantity that you've become a rich man (or woman), and you have shops all over with skilled craftsmen and artisans, and a distribution network, and people know where to go to get the good stuff, and anyone buying bootleg goods knows good and well that if it breaks (either itself, or whatever they were using it on), it's their own damned fault, because it was three cents on the dollar what it should have cost.
What it did was protect the inventor's reputation, and to a lesser extent, the buyer. Anyone caught selling a knock-off "Official Eli Whitney Cotton Gin" could be arrested, imprisoned, shot, god knows what, and let's face it, that's just not good business.
It's simpler, and safer, in the end, to just take your name, and slap it on your knock-off, and sell it as a cheaper alternative, trying to undercut the good Eli Whitney. However, if your product sucks, then your buyers are going to talk, and your reputation (and your product) goes down the tubes, and you lose business.
The alternative to that, is that you leave names out of it, and just sell bootleg items, unbranded, and caveat emptor, the buyer gets what he pays for. Maybe it'll work for what they need, maybe not. Either way, it's their own fault for being cheapasses.
When people bought bootleg tapes of concerts and whatnot, they knew good and well what they were paying for. Some of those bootlegs are now worth a lot of money. Crappy bootlegs aren't among those, usually. The audio cassette and the CD burner, and the VHS tape player didn't hurt the big guys, because people who actually like the content tend to buy official merchandise to support their favorite musician, actor, etc. Not because it's the law. Not because the RIAA or the MPAA threatens to sue.
KISS figured out that people liked bootlegs and guess what they did? They recorded their own concerts. And what happened? Those recordings sold.
Nowadays, if you try to take a car design that Ford has created, and build your own car in the same exact design, with the same exact specifications, leave brand names off it, and sell it, proclaiming it to be "an independently manufactured vehicle, conforming to the same design as the Ford® Taurus™, but manufactured by Juan Valdez of Albuquerque New Mexico", you wind up getting sued for some upside down and backwards patent violation.
You didn't use their trademark except in comparison to your product. That's done all the time in car ads ("$3,000 cheaper than the Ford® Taurus™!", for example), so you can't be blamed for that. You didn't steal anything from them, as their design is out there for the world to see (and reproduce with perfection if you've got the skill). You didn't commit fraud by trying to pass your bootleg product off as the genuine article. Who did you harm? What laws did you break?
The answer is that conceptually you harmed Ford Motor Company. There's no way in hell you'd be able to actually hurt their profit margin selling one car at a time, as fast as you alone can make them, in your garage. If you can undercut them, more fucking power to you, I say. If you can do that, Ford is ripping off everyone and deserves to go down. Materials and fabrication are costly, and if you in your garage can beat Ford Motor Company's prices and productivity enough to beat them at their own damned game, holy shit, man, that's damned impressive.
Wow, I had no idea I'd ramble on that tangent for so long. I sincerely apologize, and will one day write a more complete rant on the corruption of the USPTO. Back to my license.
back on track
Using my name on software you wrote (my "brand") is fraud, so I don't have to cover that in my license. Nobody does, really. Fraud is fraud.
Altering my software and sending it out might be a problem, since it's based on something I wrote, and therefore isn't really fraud to say "by Pegasus Epsilon" if I wrote the original. Therefore I cover that in my license.
I don't care how or where or for what purpose you use my software.
I don't care if you use my software. I wrote it for myself. If you like it and use it, that's great. If you don't, whatever, I just don't care.
I don't care what you do to or with my software, so long as you don't change it and send it around.
These are all designed into my license as I intended from the beginning. However, there are a few unexpected implications.
The main unexpected implication of my license is that You can't "fork" my software. You have to write your own. I like this, as I like to keep my code. It's mine. You don't have to like it, you can write your own and GPL it for all I care. I like mine, I'll keep it for myself. If I stop maintaining my software, you CAN write patches for it and send those around. Those patches are YOURS, you wrote them, you can do what you like with them, you can license them how you like, and it's up to the end user to merge them with my software, and the liability for merging incompatible licenses (GPL and Microsoft, for a nice incompatible example) is on them, but the original code (my last official version) must remain as it is.
You can also donate patches to me. If I like them, I'll add them to my official version, and give you a credit in the changelog. You control what you do with your patches, and I'll control what I do with my software. That way, you donate a patch that you'd like to see merged, with the condition that you be given credit for the changes, and if I like it enough to do that, I will. If I don't like it that much, or you want more than credit for your input, you're still welcome to distribute your patch, and even charge money for it, as it belongs to you, and you can do whatever you like with what you own.
Be warned, blossoming monopolist, that if you charge for your patch, I'll probably end up rolling my own version of it, adding the functionality that your patch provides, to my official version, just to be a dick. I'll likely do this even if you try and restrict the functionality of your patch from emulation or duplication by the license, as I'll never click "I Agree" on a license like that. Fair warning. Share or be assimilated.
See? We each have our rights, and generally they work just fine together. I'd call it "Creative Commons", but I'd probably get sued. Let's go with the less trademarkable, and more accurate, "Creative Cooperation".
Now for the fun, unexpected implication. Insert evil grin here. In order to use my software, you must distribute it. I never considered that when I came up with this license, but god damn that's neat. You're perfectly allowed to just paste a URL to it whenever someone asks you specifically for it, as that's a form of distribution, but you can't just use it in a closed environment and never share. The license doesn't say "if you give it to someone, give them the original", it says "Distribute unmodified." In other words, if you intend to use it, you have to do what the license says, and it says to give it to people. And if I vanish, and you keep using it, you've got to have an original version to give to someone when they ask. As long as my software is used, it will be free for everyone to use. Even if you just use it to learn from it, you have to be prepared to link someone to it when they ask. For example, "how do you display the source like that on your webpage?" "I use this script I wrote, based on what I learned from..." Cue the evil laughter.
Now honestly, I'll probably never hold anyone accountable for FAILING to distribute my software when they use it, but I will hold them accountable for:
- Claiming to be the author of my software (usually by changing it to say "by Juan Valdez". I wrote it, I hold intrinsic copyright on my work, and I choose to keep it, not donate it to the FSF.)
- Claiming that their solution to the questioned problem is NOT my work, when it is (Usually by claiming that the solution is proprietary and they can't have it, for example.).
The first one is a copyright thing. I wrote it, don't go claiming it's yours, write your own. The second is just wrong. Share share share, you stingy fuckers.
Now. Some might say that my license is incompatible with the GPL. I disagree, I don't care if you link my stuff with GPL stuff, or use them together somehow. I just don't want you to go ripping my stuff off, being stingy with it, or using it to do evil. The GPL guys might care, they're kinda nazi viral guys, just ask Microsoft (that's a joke, son), but seriously, they do like to have everything under their umbrella, if they can.
Well, they can't have my software. I wrote it. It's mine. And I intend to keep it. But they can play with it, learn from it, and use it. So long as they distribute it -- unmodified.