Choosing a license for a software specification
We are writing a specification for a programming language and we'd like to pick a license for the specs (not the compiler). There are two major goals we want to achieve:
* The specs should stay free forever
* It should be impossible for anyone to close off the sources to the specification
This almost yells GPL, but since we are targeting a platform where there is a huge potential for languages to interop, we don't want such an invasive license. If another compiler team wants to do anything related to something they have to read our specs for, they are technically doing derivative work, which forces GPL on them, which we'd like to avoid. While it's desirable to enforce same license when forking the specs itself, this case is wildly different and we wouldn't like to enforce that.
What would be the recommendations for our situation?
26 Replies
Maybe LGPL or MPL?
Will take a look at these 2
honestly I'd go CC0
that's a super definite no
why
CC0 puts no restrictions on the licensed material that I've mentioned as goals
correct
We want to keep those restrictions
Hence that's a super definite no
still the best thing to use for specifications, imho.
what you want is adoption, and people to be able to use your lang freely.
People can freely read the specs
no.
They don't need to clone and close off the sources of the specs
I mean.. they couldn't anyway, since they don't control your repo?
not with any GPL family license, they cannot
These specs are for compiler implementers
yes
(So us currently)
and if I were to want to make my own implementation, the spec being GPL would effectively prevent me from doing that
And I don't want anyone copying the specs without any consequences
Hence wanting restriction on the license
and if I were to want to make my own implementation, the spec being GPL would effectively prevent me from doing thatThat's not true Your compiler would have to be GPL simply We don't want GPL, we want to be way less restrictive about derivative work
ok, so, given your original goals, CC0 still is a pretty good choice
The idea of Apache v2 came up as well, that's not a horrible choice. Non-copyleft, requires state changes documentation.
Looked at LGPL, sadly suffers the same from derivative work.
MPL also looks like a solid choice
It should be impossible for anyone to close off the sources to the specificationso.. just leave your repo up indefinitely. again, others don't control your own repo. and with a permissive license that allows redistribution, people can make their own backup copies of it, incase yours is taken down.
The specs should stay free foreverpublish your version as CC0, encourage people to redistribute it. if you have enough adoption, it'll be impossible to shut that down again. --- YES, people would be able to make their own derivative specs, and have them be proprietary. but these would NOT be the same as your specs, anyway, so why do you care?
so.. just leave your repo up indefinitely. again, others don't control your own repo.If you don't want to understand what I mean, sure 😛 (but just to be clear, I'd prefer people not creating closed-source derivatives of the specs)
YES, people would be able to make their own derivative specs, and have them be proprietary. but these would NOT be the same as your specs, anyway, so why do you care?Because if others want to base their work off of ours, we want certain things in return. Pretty simple. The price you pay for taking our work is accepting the conditions of our license And I have no intentions to lift this restriction
so you do want GPL then
We might, with some modifications to the license
We do want to protect our work
But again, GPL is a bit too restrictive
Preferably all copies should be publicly available, modifications should at least document changes. Ideally, all other specs that copied this one and then modified it should be public and other kinds of derivative work should be less restricted (to allow for the scenario in the OP), but that's really hard to properly specify in a license I think
What about MPL then?
My law jargon knowledge is horrific, but to me it seems like it's same license that contains one-to-one copy of MPL code or one that is copied then modified
@LPeter1997 GFDL maybe?
https://www.gnu.org/licenses/fdl-1.3.html
It's the GPL, but for technical writing
Sadly that suffers from the same limitations as GPL in general. After a lot of discussion and headaches, so far it looks like we'll go with Apache v2 😦