A Software License That's Libre But Not Gratis?
duncan bayne writes "My company is developing some software using Ruby. It's proprietary software — decidedly not free-as-in-beer — but I don't want to tie my customers down with the usual prohibitions on reverse engineering, modification, etc. After all, they're licensing the product from us, so I think they should be able to use it as they see fit. Does anyone know of an existing license that could be used in this case? Something that gives the customer the freedom to modify the product as they want, but prohibits them from creating derivative works, or redistributing it in any fashion?"
IANAL, but if you are not imposing a EULA, you shouldn't need any kind of license. End-user licenses restrict what can be done with the copy of the software that is owned. Licenses like the GPL restrict what can be done when redistributing the software, but impose nothing on the end-users. If you are not wanting to permit your end-users to redistribute, simple copyright is enough to protect your rights without the need for an additional license. If the software is not being redistributed and you aren't requiring a EULA, then the end-users are free to modify the software as they see fit (or do anything with it, except redistribute) under existing copyright law. So it seems copyright law as-is protects you from redistribution and permits your users the ability to modify the software, without the need of any license.
I have come here to chew memory and kick ass... and malloc() is returning a null pointer.
If it is an interesting question, more than just the poster can benefit from the answer.
um, like, hire a real lawyer. really, dude.
Like many people, you seem to assume incorrectly that copyright law, as defined historically, can be used to artificially control what people do with something they have received and use in their own privacy in the first place. You actually do not have to do anything outside of existing copyright law as it is historically understood and intended to accomplish what you desire. This is why the GNU General Public License, as a copyright license, has to explicitly offer the right to sub-license (distribute) original or derivative works.
Now some evil companies try to attach additional restrictions using common contract law to claim additional rights they do not actually have under copyright to deprive people of their existing and even constitutional rights (and what can in many situations be considered contracts of adhesion), and the results of these bastardizations are what is often called things like eula's.
which was the name of Microsoft's family of "not quite open source" licenses a few years back. Several products allowed you to examine the source code but do little else. I don't think they even allowed you to modify and recompile it in those days, but they've since replaced it (IIRC) with the "Microsoft Permissive License" which might be less restrictive.
One product I remember was Rotor, a sample implementation of the .Net Common Language Runtime (similar to Mono but not as comprehensive). Another was the WTL Win32 GUI framework, which was an alternative to MFC based on ATL (Active Template Library).
Slashdot was even more heavily anti-MS a few years ago and there used to be withering sarcasm at any mention of "Shared Source"... not so sure about today.
Slap a big "You can't distribute our code or your modifications" on it.
Seriously, though, you don't need much of license to cover "hack it, don't share it". It is the copyright/patent crazies that add the "can't decompile, modify, etc". The default state of copyright is you buy it, you can bang on it, you can set fire to it, but you just can't make copies or derivative works.
All you really need to make clear is that you consider patches, mods, etc to be derivative works and remind them that they can't share them.
That will last until somebody makes the first User Group list, but at least you tried. Make sure you get enough money up front, because your consulting money will dry up after enough users feel overcharged that one gets into the fixit business.
I don't remember the exact definitions but I seem to remember that any modified copy of the product that your customers create, even if it is never distributed, counts as a derived work.
Now if you are really going to be selling this software as a commercial product I think it's a mistake to do so without getting some legal advice. The fact that you are selling your product (instead of giving it away) may very well create implied rights of action, e.g., state or federal law may allow customers to sue you for damages if your product causes data loss or otherwise fails to live up to expectations. Therefore failing to get legal advice might open you up to liability.
Of course there are probably generic software licensces that are prewritten but the genericity usually comes from the fact that they cover your ass by restricting the customer's rights as much as possible. Still, if you look you might find something.
What you really seem to want is a licenses that give the customer the rights to use the work and create derivative works as they see fit but not to redistribute the work or any derived works. Since you should be getting legal advice anyway this would be trivial for a lawyer to arrange.
If you liked this thought maybe you would find my blog nice too:
gives the customer the freedom to modify the product as they want, but prohibits them from creating derivative works
Modifying the product is creating a derivative work.
My company is developing some software using Ruby. It's proprietary software â" decidedly not free-as-in-beer â" but I don't want to tie my customers down with the usual prohibitions on reverse engineering, modification, etc. After all, they're licensing the product from us, so I think they should be able to use it as they see fit.
Look into selling them a copy of your software, instead of a license to use a copy of your software. US copyright law does permit people who actually own a copy of software to make certain kinds of modifications (don't recall what exactly), make the needed copies to actually use it (disk -> ram, etc), and such.
You might want to check out Immunity.
http://www.immunitysec.com/
They sell CANVAS, an exploitation framework. A subscription is pretty expensive (that is, dirt cheap compared to core impact), but it comes complete with python source code, and the licence they use gives full rights to modify any of the code as you need to (sort of a requirement for exploit frameworks).
A basic search will turn up a lot of licenses, how can you be so lazy that you can't type something into Google but are able to submit a Slashdot story?
It's not laziness. We just love seeing you get your knickers in a twist.
Something that gives the customer the freedom to modify the product as they want, but prohibits them from creating derivative works, or redistributing it in any fashion?"
This question shows a total lack of understanding for what "libre" software is.
A license along those lines would not be "libre but not gratis". Being freely redistributable and allowing derived works are core parts of "libre" software.
All the common definitions of "libre" software (OSF, DFSG, etc) include statements like:
"Free Redistribution
The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale."
and:
"The license must allow modifications and derived works"
rage, rage against the dying of the light
A basic search will turn up a lot of licenses, how can you be so lazy that you can't type something into Google but are able to submit a Slashdot story?
Why read Slashdot at all? Just Google the news, like I do. Just type "What is <current-date> like?" into Google and let'er rip.
Google provides search results, not dialog.
Slashdot used to provide editing, too, but for a while now that's been more of a nuisance than a feature.
*ducks*
Because it's not about helping, it's about feeling better about himself by proving his intellectual superiority in a public forum.
Just like I did right there ;-)
> important to keep the source code super secret
The reason will most likely be listed below:
1. End users making their own changes but still complaining about error that may or may not be a result of their unauthorized modifications
2. Afraid that other competitors will 'leverage' your investment in development using legal or illegal means.
3. They don't want anyone to know that they 'leveraged' your investment in development to further their own product using legal or illegal means.
4. They didn't bother to patent anything and they're relying on being hidden to keep their trade secrets safe.
5. They license another developer's code which has the exact same limitation, and instead of negotiating with the upstream dev for source distribution rights or reimplementing the needed functionality themselves, they just choose to do nothing.
Anyways, many development environments/frameworks allow for source distribution because customers want to know why an obscure function 3 stack steps into your API routine is throwing ugly errors at you. With clear-and-open source, a developer could use a debugger and realize that they screwed something up before having to contact support with an obvious (to the original dev) problem.
Outside development libraries/frameworks and free products, a full source dump of any given product is pretty rare, at least from my experience.
Bye!