Thread overview
Copyright for reworked Phobos code in Mir
Dec 26, 2018
9il
Dec 26, 2018
bachmeier
December 26, 2018
Hi folks,

I am slightly confused by copyright mess in some of Mir modules. As you may know, some of them contain reworked Phobos functions. Plus I am not sure that I understand the meaning of Copyright in the context that both Phobos and Mir are Boost licensed.

For example, currently, I am creating mir.numeric that will contain findRoot, findLocalMin rework of Phobos and other stuff. And findLocalMin in Phobos is my work.

std.numeric contains:
Copyright: Copyright Andrei Alexandrescu 2008 - 2009.

What copyright should contain mir.numeric?

Another example is that sometimes I write a new implementation but use Phobos unittests.

There was an inverse precedent - Mersenne Twister. Mir version was backported to Phobos.

Best,
Ilya
December 26, 2018
On 12/26/18 10:40 AM, 9il wrote:
> Hi folks,
> 
> I am slightly confused by copyright mess in some of Mir modules. As you may know, some of them contain reworked Phobos functions. Plus I am not sure that I understand the meaning of Copyright in the context that both Phobos and Mir are Boost licensed.

Disclaimer: I am not a lawyer.

> 
> For example, currently, I am creating mir.numeric that will contain findRoot, findLocalMin rework of Phobos and other stuff. And findLocalMin in Phobos is my work.
> 
> std.numeric contains:
> Copyright: Copyright Andrei Alexandrescu 2008 - 2009.

Copyrights headers in Phobos are a bit unmaintained. If someone writes any code, technically, they could assert copyright on their contribution. So really, the list should just be everyone who ever committed *new code* to the module (including yourself). Just moving stuff around, or fixing a simple bug probably isn't going to be copyrightable I think (reminder: I am not a lawyer).

But copyright notices aren't the final say in whether something is copyrighted by someone. It's really the evidence of who committed what that makes the difference.

> 
> What copyright should contain mir.numeric?

What I would do is copy that copyright notice into your code. Then at least you are conforming to the license. Under the terms of the boost license, there isn't much to assert claim to, and I would expect anyone who contributed to a module in a significant way who wants to get recognized there would easily get added to the module.

> 
> Another example is that sometimes I write a new implementation but use Phobos unittests.

Code is copyrightable, even if it's unittests. So technically that portion should be boost licensed if you copied from Phobos (if it's not already). Under the terms of the boost license, you really only need to specify the license/copyright for the source code, there is no limitations on binary release.

In that case, I would transfer whatever copyright notice is on the file the contains the unittests.

> 
> There was an inverse precedent - Mersenne Twister. Mir version was backported to Phobos.

The author (I'm assuming you) should get credit under the copyright header, if you are not, and it's important to you, just submit a PR.

I've contributed loads of different things all over the place in Phobos and druntime, I almost never add my name to the copyright line, because I'm not too concerned about it.

-Steve
December 26, 2018
On Wednesday, 26 December 2018 at 15:40:13 UTC, 9il wrote:

> std.numeric contains:
> Copyright: Copyright Andrei Alexandrescu 2008 - 2009.
>
> What copyright should contain mir.numeric?

Disclaimer: I'm also not a lawyer.

At least in the US, what matters is not the copyright but the license. You automatically hold the copyright on any code you write, with or without a copyright notice. It's the license that tells others what they can do with your copyrighted code. If there's no license, you have no right to do anything with it. If it's Boost licensed, you can do anything consistent with the Boost license.