Project

General

Profile

Support #1555

Software licence

Added by John Abbott over 3 years ago. Updated about 2 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Various
Target version:
Start date:
21 Dec 2020
Due date:
% Done:

100%

Estimated time:
12.51 h
Spent time:

Description

Gereon Kremer asks whether we are willing to release some or all of the source for CoCoA/CoCoALib under a different licence (in ptic, BSD or MIT)
His intended use is within the CVC4 software suite.

Discuss; decide.


Related issues

Related to CoCoALib - Design #855: Copyright and authorship?Closed2016-03-25

Related to CoCoA-5 - Bug #1356: CoCoA-5 header files: should use a common prefix for CPP variables which enforce read-onceClosed2019-10-29

Related to CoCoALib - Support #1481: Release CoCoALib 0.99800Closed2020-08-28

History

#1 Updated by John Abbott over 3 years ago

  • Related to Design #855: Copyright and authorship? added

#2 Updated by John Abbott over 3 years ago

Here are what we need to do:
  • ensure that all copyright lines are correct (Anna and me)
  • remove the GPL blurb from each file
  • insert MIT/BSD licence blurb in each file -- which is more appropriate?
  • create a new type of release with the revised licence.

Do we give the release just to Gereon? Or should we make it available to all and sundry?
Note that Gereon would be free to further release the code we give him (assuming MIT/BSD permits that).

#3 Updated by John Abbott over 3 years ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 10
Here is a suggestion:
  • find out how many different copyright messages we need (headers, source, tests, examples, documentation, other (makefiles))
  • in each file write a "placeholder" (e.g. COPYRIGHT_FOR_HEADER, COPYRIGHT_FOR_SOURCE, _etc.)
  • before making a release go through all files and replace the placeholders by the relevant boiler-plate text.

I'm not entirely sure how one can replace a placeholder ID by a text containing several lines (which must be seen as a comment in the resulting file).

This does imply that we would need to specify under which licence to make the release (default GPL-3+)

#4 Updated by John Abbott about 3 years ago

  • Assignee set to John Abbott
We seem to have used the standard GPL v3.0 for all source code (headers and source):
  • in include/CoCoA/
  • in src/AlgebraicCore/
  • in src/test/
  • in src/CoCoA-5/ but these files claim to be part of the source of CoCoALib -- is that right?
Apparently no copyleft message in the following:
  • Makefile -- all of them!
  • CoCoAHelp.xml
The examples are supposed to be "public domain" (maybe CC0?)
  • examples/ex-*.C
CoCoALib documentation has GPL Doc copyright notice:
  • doc/txt/*.txt

#5 Updated by John Abbott about 3 years ago

As mentioned in #855#note-15 the FSF gives advice at the following URL:

http://www.gnu.org/licenses/license-recommendations.html

Their suggestion for a non_GPL licence is Apache Version 2.0. I'll ask Gereon if that would be OK for him.

Gereon also said that he did not need a licence change for the documentation (but we should anyway clarify the licence for the documentation in those files which currently say nothing).

#6 Updated by John Abbott about 3 years ago

I currently suggest the following:
  • add copyright notices to all files (incl. Makefile and other supporting files)
  • in source code add a restrictive copyright notice which is then replaced by GPL (or whatever we choose) when making a release.

Here is an initial (unsafe) shell script which replaces a single line containing a "keyword" string, by the contents of a file.

#! /bin/bash

FILE=$1
STRING=$2
INSERT_FILE=$3

line=`cat -n "$FILE" | fgrep "$STRING" | head -1 | cut -f 1`
echo "line = $line" 

nextline=`expr $line + 1`
prevline=`expr $line - 1`

head -n $prevline "$FILE" 
cat "$INSERT_FILE" 
tail -n +$nextline "$FILE" 

Not yet sure how to make this script safer (e.g. explicit paths for head and tail; checking for non-zero rtn codes)

#7 Updated by John Abbott about 3 years ago

Currently our copyright notice in source code files says the following (following guidance from FSF about using GPL):

//   CoCoALib is free software: you can redistribute it and/or modify
//   it under the terms of the GNU General Public License as published by
//   the Free Software Foundation, either version 3 of the License, or
//   (at your option) any later version.

//   CoCoALib is distributed in the hope that it will be useful,
//   but WITHOUT ANY WARRANTY; without even the implied warranty of
//   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//   GNU General Public License for more details.

//   You should have received a copy of the GNU General Public License
//   along with CoCoALib.  If not, see <http://www.gnu.org/licenses/>.

I presume the equivalent for Apache-2.0 should says more or less the same mutatis mutandis, especially the part about "without any warranty".

#8 Updated by John Abbott over 2 years ago

We need to consider also the copyright notices in the sources for CoCoA-5.
Should the copyright notice for CoCoA-5 files be identical to that of CoCoALib files?

#9 Updated by John Abbott over 2 years ago

  • Related to Bug #1356: CoCoA-5 header files: should use a common prefix for CPP variables which enforce read-once added

#10 Updated by John Abbott over 2 years ago

We need to decide what the restrictive message should say.
Ideally it should be just 1 or 2 lines long, and placed very uniformly in all files so that the naive script above does not do anything stupid.

This is a private copy for your private use; you may not give it to others.
A public open-source version can be obtained from http://cocoa.dima.unige.it/

#11 Updated by John Abbott about 2 years ago

  • Target version changed from CoCoALib-0.99800 to CoCoALib-0.99850

This should not be hard, but will probably take quite a lot of time... which is very scarce at the moment.
Postponing.

#12 Updated by John Abbott about 2 years ago

  • Status changed from In Progress to Resolved
  • Target version changed from CoCoALib-0.99850 to CoCoALib-0.99800
  • % Done changed from 10 to 60

I think I have done this mostly now.... quite a gruelling, mind-numbing task. And, yes, it did take a tediously long time.
Hope to make some tests soon.

#13 Updated by John Abbott about 2 years ago

  • % Done changed from 60 to 80

Gereon has confirmed that the trial version seems to be fine for his purposes:
in ptic, he needed a revised copyright just for the source code of CoCoALib
(and does not care about the licence for documentation, or CoCoA-5 source code).

As mentioned before, a big change is that make a source release is no longer
an almost trivial operation of a making a copy of the source tree from CVS,
but instead requires potentially editing practically every source file in
include/CoCoA/ and in src/AlgebraicCore/. This is done by a development
of the script outlined in comment 6 above.

#14 Updated by Anna Maria Bigatti about 2 years ago

  • Status changed from Resolved to Closed
  • % Done changed from 80 to 100
  • Estimated time set to 12.51 h

#15 Updated by Anna Maria Bigatti 30 days ago

#16 Updated by Anna Maria Bigatti 30 days ago

#17 Updated by Anna Maria Bigatti 30 days ago

Also available in: Atom PDF