My dream software license

For a long time I’ve had a dream software license that’s a mix of copyleft and permissive. It’s basically as follows:

  • You can freely copy, redistribute, do whatever with the code in source or binary form
  • You must include the license and the copyright notice in redistributions
  • You can redistribute binaries without the source code
  • All derivative versions must use the same license with no additional restrictions, including binary forms
  • Obligatory patent stuff

Basically, the GPL without the requirement to redistribute the source code, and the ideological stuff. This means if you use the code for a source-unreadable program, people are free to copy/crack/reverse-engineer the binaries you distribute. Any ToS put onto the code would be invalid.

The idea behind this is that it removes any sort of business model you could apply to the software that wouldn’t work for something like the GPL, without being so burdensome and annoying like most copyleft licenses are. There’s also some contexts where I don’t care too much for the source code back, or it would be a hindrance.

This effectively would create a sort of virtual public domain where people cannot pull the work back out by relicensing it, but can still do all the things a permissive license allows.

A nice thing about the license is that in theory it wouldn’t require much work for people forking. The expectations are the same as permissive license (include copyright notice, give patent rights, etc.) but what does change is the legal outcome of doing things like redistributing the software. It passively works, not actively. This is unlike the GPL where you need to change your workflow around and respond to requests for the source code and stuff.

The closest license to this would be the CC-BY-SA license, but unfortunately they allow you to one-way license the code as GPL, which defeats the entire purpose of the license in my opinion if you ask me. If they didn’t I would use it, even if it wasn’t fit for software.

If only lawyers weren’t so expensive…

Hmm…isn’t it possible to license the code under CC-BY-SA and explicitly say that the code isn’t licensed under anything else? Sorta like what Linux does with the GPLv2

Hmm…isn’t it possible to license the code under CC-BY-SA and explicitly say that the code isn’t licensed under anything else? Sorta like what Linux does with the GPLv2

This is effectively changing the license, and I’m not really comfortable doing that as a non-lawyer. I don’t think downstream from me would like that idea either. There’s no clause in the CC-BY-SA that says the author can declare restrictions on re-licensing like the GPL does.

For what it’s worth, the license you describe here would be non-free. Free software requires access to the source code per freedom 1.

1 Like

It is free software in the same way a public domain dedication is. You can use the software to make something proprietary, but the source code itself comes with all the rights.

I guess there is a bit of nuance in “Is forcing everyone else to allow people to make proprietary versions of their software free?” I think the answer is yes as long as the source code is distributed under those terms. The MPL I think is similar in this regard, and I don’t think anyone would argue it isn’t free.

1 Like

You’re right, I apologize; it’s just permissive.

Potentially a license which forbids sub-licensing with additional restrictions while being rather permissive itself could be interesting as it prevents some rather hostile forks where code couldn’t be upstreamed back (BSDs got bitten that way several times), but GPL-incompatibility sadly tends to backfire (see MPL-1/CDDL).

I think it would make more sense to force dual-licensing, hopefully this would work to get compatibility while still being able to ignore the extra restrictions.

Which reminds me of why sometimes I’d want a slightly stronger MPL/LGPL: Allowing any FLOSS software (possibly done with grabbing OSD/DFSG) to link and use it, but not proprietary ones.

I mean when you write permissive code, you also have to avoid GPL’d code unless you want to relicense. You have the same options as the GPL: use permissive code or other code of the same license. For me and the code I write this is an okay tradeoff. I mostly write Go, and Go mostly has a BSD/MIT-licensed ecosystem.

I think there are some contexts where my dream license wouldn’t make sense, but for me it mostly makes sense to use it.

1 Like