Page 1 of 1

nullplan's little licensing guide

Posted: Sun Oct 01, 2023 11:37 pm
by nullplan
Hi all,

just a thing that's been rolling around in my head for a while now. Sometimes people ask what license they should give their project. My approach is to ask myself: Assuming someone comes along, copies the code, changes it, and tries to pass it off as their own, what does make you feel?
  1. "Burn the heretic!" Well, then maybe Open Source isn't for you.
  2. "I want them to send the patches." GPL, LGPL
  3. "At least an acknowledgment would be nice." BSD license in its million varieties
  4. "I don't care at all." Public domain, CC-0, WTFPL
Let's be honest, most of our projects will never be successful enough for the license to matter. On the other hand, nobody can predict when a project blows up. OpenSSL started because some dude wanted to study long integer arithmetic. Linux started because some dude wrote a terminal emulator for his 386, and he even thought himself that it would never become anything big. So you never know.

Another thing: You only get copyright on your original expression. If you write a memcpy() function like this:

Code: Select all

memcpy:
  movq %rdi, %rax
  movq %rdx, %rcx
  rep movsb
  retq
There is only a very thin copyright attaching to this, if any at all. The function name is not original, nor is the ABI or the CPU architecture this runs on. The only creative choice was to only use the byte-based loop. Someone else can come along and invent the same function independently, and there is nothing you can do about it. Copyright only cares about actual copying (patent law would also protect you if someone else were to make the same invention independently, but software is not patentable).

I don't even know where I am going with this.

Re: nullplan's little licensing guide

Posted: Mon Oct 02, 2023 12:07 pm
by kzinti
Loved your post. Highly recommended. Would read again.

Re: nullplan's little licensing guide

Posted: Wed Oct 04, 2023 4:15 am
by Solar
Nitpick: GPL doesn't mean "send the patches", it just means "make their patches available".

Also note that you can change the license your software is under, but only up to the point where you accepted patches under that license. Since you then are no longer the sole copyright owner -- unless you had each contributor waive their copyright to you, which is not legally possible under all jurisdictions -- you then can no longer change the licence without consent of all copyright owners involved.

Bottom line, software licenses are a mess. ;-)

Re: nullplan's little licensing guide

Posted: Wed Oct 04, 2023 9:15 am
by nullplan
Solar wrote:Nitpick: GPL doesn't mean "send the patches", it just means "make their patches available".
Oh yeah, right. Passing on GPL-licensed software means you must make the source code available to the recipient (under no terms more restrictive than the GPL). In my day job, I work for a company that does not sell software to the general public (nor to anyone who would pass on that software to the general public). Technically, we only need to release the code to the customers, not generally.
Solar wrote:Also note that you can change the license your software is under, but only up to the point where you accepted patches under that license. Since you then are no longer the sole copyright owner -- unless you had each contributor waive their copyright to you, which is not legally possible under all jurisdictions -- you then can no longer change the licence without consent of all copyright owners involved.
Yeah, that gets into the messy domain of co-authorship. You know, at work we are currently debugging an issue where we sometimes reach the limits of memory bandwidth, and the circumstances are very hard to reproduce, and the whole thing is still a lot less messy than law. But most people, I think, will just pragmatically do what they wish until someone complains. Where there's no plaintiff, there's no judge, after all.