www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Phobos License question

reply =?UTF-8?B?UmVuw6k=?= Heldmaier <rene.heldmaier gmail.com> writes:
Hi,
I'm currently implementing a data type which is quite similar to 
complex numbers.
Because of the similarity, I could copy paste (with minor 
modifications) the toString methods and the helper functions from 
std.complex. The much bigger rest of it is my own work.
I would like to publish this under Boost License 1.0.

Do i have to list the authors of std.complex as authors of the 
module?
Or should i list the authors in the commentary above the copied 
functions?

What happens to copyright?
Can I publish it under "Copyright 2019, My Name" or do i have to 
use the copyright from std.complex?

I'm not a lawyer and i don't like to deal with this kind of stuff.
I just want that people are able to use it without implications
Nov 16 2019
parent reply Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= <ola.fosheim.grostad gmail.com> writes:
On Saturday, 16 November 2019 at 09:21:41 UTC, René Heldmaier 
wrote:
 Do i have to list the authors of std.complex as authors of the 
 module?
 Or should i list the authors in the commentary above the copied 
 functions?
I believe the correct answer would depend on your jurisdiction (the country you live in), so there is no correct answer in an international news group. The license says that you have to retain all copyright notices. So you have to retain them as they are written in the source code and in the license text. That is the conservative interpretation. However you can have your own license at the top and append all the other licenses below it. So you can use a different license for the code you added.
 What happens to copyright?
 Can I publish it under "Copyright 2019, My Name" or do i have 
 to use the copyright from std.complex?
It is a derived work so the copyright is shared. However, you hold copyright even if you don't state it (in most jurisdictions). There are international agreements that ensure this and many countries have joined (but not all). The statement "Copyright 2019, My Name" is incomplete though. It would be better to state "Copyright 2019, My Name and others (see individual files)". What you state would depend on what is substantial. The license states that you can publish executables without mentioning the original authors, however, check the practice in the jurisdiction you live in. I believe some jurisdictions do not allow you to sign away authorship rights and what that implies might vary. There might be other requirements in your country than what is stated in the license.
 I just want that people are able to use it without implications
Well, the implications are in the laws of the country you live in… primarily. What is considered fair might vary. What is considered substantial might vary. What is considered a derived work might vary. Just follow the license to the letter… Copy in the code you build on and modify it in place. You ought to be able to add your own code above or below it, just mark the boundaries with comments. You can also modify the code of course, then just add your name to the list of authors. As a matter of courtesy I would have added a notice on the top of the file that says that function x, y, z was lifted from such and such library with a "see comments for details" notice.
Nov 16 2019
next sibling parent =?UTF-8?B?UmVuw6k=?= Heldmaier <rene.heldmaier gmail.com> writes:
On Saturday, 16 November 2019 at 10:02:58 UTC, Ola Fosheim 
Grøstad wrote:
 On Saturday, 16 November 2019 at 09:21:41 UTC, René Heldmaier 
 wrote:
Thanks a lot for the lengthy reply ;). I live in Germany by the way...
 statement "Copyright 2019, My Name" is incomplete though. It 
 would be better to state "Copyright 2019, My Name and others 
 (see individual files)".
I'll do that. Should i do it the same way for authors on module level? e.g Authors: René Heldmaier and others (see individual files)
 Just follow the license to the letter… Copy in the code you 
 build on and modify it in place. You ought to be able to add 
 your own code above or below it, just mark the boundaries with 
 comments. You can also modify the code of course, then just add 
 your name to the list of authors.
My plan is now to put this comment above each copied function: /* The following function is derived from phobos std.complex https://github.com/dlang/phobos/blob/master/std/complex.d Authors: Lars Tandle Kyllingstad, Don Clugston Copyright: Copyright (c) 2010, Lars T. Kyllingstad. License: $(HTTP boost.org/LICENSE_1_0.txt, Boost License 1.0) Modified by: René Heldmaier */ You think that's ok?
Nov 16 2019
prev sibling parent =?UTF-8?B?UmVuw6k=?= Heldmaier <rene.heldmaier gmail.com> writes:
On Saturday, 16 November 2019 at 10:02:58 UTC, Ola Fosheim 
Grøstad wrote:

 As a matter of courtesy I would have added a notice on the top 
 of the file that says that function x, y, z was lifted from 
 such and such library with a "see comments for details" notice.
I will add this comment at the top the file also: /* The functions auto dual(R)(const R re), auto dual(R, D)(const R re, const D du), string toString() const, void toString(Writer, Char)(scope Writer w, scope const ref FormatSpec!Char formatSpec) const and the corresponding unittests are derived from phobos std.complex (github.com/dlang/phobos/blob/master/std/complex.d). See comments for more details */ Anyone who thinks i go to jail for this, please tell me now ;)
Nov 16 2019