Looking for a licensing advice

So, I’ve got a weird situation with kak-lsp: https://github.com/ul/kak-lsp/issues/110#issuecomment-487968690 and honestly I don’t know what to do the best.

Do you folks have any expertise on the topic? Would appreciate sharing your opinions!

I don’t know about Kakoune specifically, but in my experience, if somebody chooses a licence like the Unlicence, WTFPL, or “Public Domain”, it’s often a kind of civil disobedience, as if they were saying “I don’t think copyright law should be as complex as it is, so I’ll pick a licence that I think should be enough, and any copyright lawyers can complain all they want”. As your friend from Google has discovered, copyright lawyers tend not to like those licences very much.

If you want to permissively licence your software without causing a fuss, the MIT, 3BSD, and 2BSD all say pretty much the same thing and won’t raise any eyebrows.

Apache-2.0 is similar, and also covers patents as well as copyright, but that makes it incompatible with GPLv2 code (it’s fine with GPLv3). That incompatibility causes some projects (like Rust and Firefox) to use Apache-2.0/MIT dual-licensing. Because of the Apache-2.0 licence, contributors still have to licence their patents, but anyone who needs to combine the code with GPLv2 code can do so under the MIT licence.

If you’re feeling a bit more avant garde, earlier this year the Blue Oak licence was released. One of the lawyers who worked on it makes a good case for why it should replace the MIT and BSD licenses, and unsurprisingly there was a big ol’ HN thread about it (search for “kemitchell” to find responses from the author) if you want to learn more.


I’ll keep the “rebel” (as perfectly described by Screwtapello) license as it is.

It is unfortunate for ricochet1k who genuinely wants to participate, but in the other hand I would not tolerate that the company I work for dictate what I can or cannot do on my free time. I believe he’s a good person, but he made a choice by working at Google, who constrains his freedom.


Ha-ha, I forgot about dual-licensing. I wonder what kind of chimera Unlicense/MIT dual-licensing would be :wink:


(comment duplicated onto the thread)

https://github.com/gohugoio/hugo/issues/201 – the same issues took years to fix, lots of great comments in that thread about the issues and legal wrangling. I am not certain dual-licensing is a complete win because it isn’t well understood (so lawyers might still need to be involved). In the linked one, the question was of two licenses which were intended to have the same meaning anyway.

Is the intention of the dual licensing that each individual chooses the license they support, or must they support both, and when they contribute to they have to flag which one they are contributing under? I honestly don’t know how this is intended to work?

It is almost all major IT companies have a list of licenses they support – as linked in the other thread on hugo, it boxes out A LOT of companies, not just Google, it is hundreds of major companies and hundreds of thousands of engineers.

What does the project gain by boxing out contributions?


Regarding dual licensing, my (non-lawyer) understanding would be that the code is provided under both license, at the choice of the licensee, which means if ricochet1k would contribute, he can take the code under the MIT license and contribute under the MIT license. However, at that point, his contributed code is only under the MIT license, and due to the attribution requirement of the MIT license, it cannot be transparently relicensed under the Unlicense, meaning the code is now effectively only under the MIT license.

1 Like


It suck that saying „do what you want with my code” is so difficult because of corporate lawyers :anger:

You are describing a sound “license algebra”, where “use” and “contribution” have different variance (as in “co-” and “contra-”), but I can imagine the following interpretation to be valid as well:

  1. Google allows them to contribute to projects which have MIT license for code “use” — and in general, those licenses are about “use”, not “contribution”.
  2. kak-lsp does dual-licensing providing MIT as one of alternatives — contributing to it is okay for Google employee according to 1.
  3. Contributed code then falls under the project licensing model — not specific license! — which allows everyone to continue to choose how to “use” the code.

To be fair to the lawyers, for hundreds of years copyright law has been focussed on protecting the rights of content creators. Open source and Free Software licenses use copyright law to do the exact opposite, so don’t be annoyed that it’s difficult, be amazed that it’s even possible.

Like I said, copyright law is focussed on protecting the rights of content creators. If Alice makes some cool software, her right to choose whatever licence she likes for that software is protected by copyright law. If Alice’s licence allows Bob to make a modification, copyright law also protects Bob’s right to choose whatever licence he likes for that modification. If Carol wants to use Alice’s software with Bob’s modification, copyright law requires that she respect both Alice’s and Bob’s licences at the same time; that is, she has to obey the intersection of the licences for the various parts.

If kak-lsp is Unlicence/MIT dual-licenced, and then you accept an MIT-only licenced contribution, the result is effectively only MIT licenced, because that’s the intersection of “MIT” and “Unlicence/MIT”.

Techically your Google friend could use kak-lsp under the MIT licence, and then coincidentally publish their own modification under Unlicence/MIT even though they didn’t take advantage of the Unlicence of the original software. However, I bet Google’s lawyers want nothing to do with the Unlicence in either direction, coming or going, so that’s probably not a viable option.

I could see either being valid, the problem is – it is complex, it requires lawyers, which means it doesn’t breed contribution. If I have to talk to my corporate legal team before I can contribute, I just won’t contribute. As compared to, “It is MIT, MIT is on the list, yey!”

I actually fell into this exact spot with Hugo, I had a good contribution, built on site WFH for a client. I got permission to push the changes out as long as it was on their (long) list of acceptable open source licenses. It wasn’t, so I moved on with my life. Would have taken weeks or months to put it through the legal department.

Let me explain this licence wars from esoteric point of view, but if you’re sceptical about esoteric, consider this comment as a joke. Every well established licence out there has its egregor (égrégore), which consumes energy from every mental participant. So when egregor looses its participants, it looses its energy and may cease to exist. As we can see, egregor starts to manipulate in order not to loose its energy. Patenting any idea is a nonsense, because from esoterical point of view our brain is just a receiver not a generator. By enclosureing your ideas to licence constraints, you’re limiting your receiver for the next great idea. It’s hard to explain all this esoteric concepts with a few sentences, but Ç’est La Vie.