Discussion:
clearing the use of a QP solver, and example code posted to a mailing list
Stephen Sinclair
2018-05-02 14:08:45 UTC
Permalink
Hello,

I am preparing a package for Siconos: http://siconos.gforge.inria.fr/

This software contains several 3rd-party sources used for numerical
solutions etc. All of these have been cleared as having a permissive
license with the exception of the QP solver, ql0001.f. As far as I
can tell this comes originally from
http://www.klaus-schittkowski.de/ql.htm and, therefore, it has a
non-DSFG license (free for educational use), which, as an upstream
contributor, I have documented here:
https://github.com/siconos/siconos/blob/master/externals/optim_misc/copyright

Now, due to this I have made sure that Siconos compiles and runs
without this file, but it implies significantly disabling the software
as the QP solver is important to its functionality. Given that this
code (ql0001.f) is just an updated (and slightly modified by Siconos
authors) version of the code found in Scilab [1], already packaged in
Debian, I am wondering whether it really needs to be removed from the
archive for the Siconos package to be DSFG-friendly. The authors of
Siconos consider it free specifically because it is already used by
Scilab, but I cannot tell whether the version in Scilab was released
under a different license. It is also hard to tell since the upstream
author does not host the source code as far as I can tell, but only a
usage example and a license.

[1] https://github.com/ScilabOrg/scilab/blob/master/scilab/modules/optimization/src/fortran/ql0001.f

Any advice would be appreciated.

A second issue: one header file [2] used in the project contains code
that was taken from a mailing list post [3] from 2008, and does not
have a license. However, it consists merely of a function
demonstrating how to use the lu_factorize function from BOOST uBLAS to
compute a determinant. Although I have emailed the original author,
it was posted many years ago, and I have not received a reply after a
few weeks. It seems silly to worry about a license for, basically,
example code posted to a list with the clear intention of being used,
but the function is not 100% trivial. Does fair use or something play
in here? How to deal with this?

[2] https://github.com/siconos/siconos/blob/master/externals/boost_contribs/determinant.hpp
[3] https://lists.boost.org/MailArchives/ublas/2008/09/2983.php , file
attached to https://lists.boost.org/MailArchives/ublas/2008/09/2984.php

kind regards,
Steve
Paul Wise
2018-05-03 02:18:23 UTC
Permalink
Post by Stephen Sinclair
I am preparing a package for Siconos: http://siconos.gforge.inria.fr/
This software contains several 3rd-party sources used for numerical
solutions etc.
In general, Debian and other distributions do not like it when
projects embed copies of their dependencies or other 3rd-party sources
in their own source repository or tarballs. Please talk to upstream
about removing them, or only adding them to their binary packages.

https://wiki.debian.org/EmbeddedCodeCopies
Post by Stephen Sinclair
with the exception of the QP solver, ql0001.f. As far as I
can tell this comes originally from
http://www.klaus-schittkowski.de/ql.htm and, therefore, it has a
non-DSFG license (free for educational use), which, as an upstream
https://github.com/siconos/siconos/blob/master/externals/optim_misc/copyright
I agree with your assessment that this is not DFSG-free.

Since the QL author is easily contactable you might want to ask for
relicensing to something DFSG-free, like GPLv3+.
Post by Stephen Sinclair
[1] https://github.com/ScilabOrg/scilab/blob/master/scilab/modules/optimization/src/fortran/ql0001.f
I quote the license from that URL for posterity:

c !!!! NOTICE !!!! c
c 1. The routines contained in this file are due to Prof. K.Schittkowski
c of the University of Bayreuth, Germany (modification of routines
c due to Prof. MJD Powell at the University of Cambridge). They can
c be freely distributed.
c
c 2. A minor modification was performed at the University of Maryland.
c It is marked in the code by "c umd".
c
c A.L. Tits and J.L. Zhou
c University of Maryland

Personally, I do not believe this text constitutes a DFSG-free license grant.
Post by Stephen Sinclair
Now, due to this I have made sure that Siconos compiles and runs
without this file, but it implies significantly disabling the software
as the QP solver is important to its functionality. Given that this
code (ql0001.f) is just an updated (and slightly modified by Siconos
authors) version of the code found in Scilab [1], already packaged in
Debian, I am wondering whether it really needs to be removed from the
archive for the Siconos package to be DSFG-friendly. The authors of
Siconos consider it free specifically because it is already used by
Scilab, but I cannot tell whether the version in Scilab was released
under a different license. It is also hard to tell since the upstream
author does not host the source code as far as I can tell, but only a
usage example and a license.
I believe that Scilab folks didn't consider the implications of the
original licensing when including the file into Scilab, nor when
modifying it. I don't think the code can be considered DFSG-free. I
think it should be removed from both Scilab and Siconos upstream. I
don't believe the license above even allows distributing copies of the
file. It allows transferring the code to someone else (making a copy
and deleting your copy), but not giving out copies.
Post by Stephen Sinclair
A second issue: one header file [2] used in the project contains code
that was taken from a mailing list post [3] from 2008, and does not
have a license. However, it consists merely of a function
demonstrating how to use the lu_factorize function from BOOST uBLAS to
compute a determinant. Although I have emailed the original author,
it was posted many years ago, and I have not received a reply after a
few weeks. It seems silly to worry about a license for, basically,
example code posted to a list with the clear intention of being used,
but the function is not 100% trivial. Does fair use or something play
in here? How to deal with this?
Debian is distributed in locations where fair use does not exist so we
cannot rely on fair use defences to copyright infringement. I'm not
sure if the function can be considered copyrightable but I think the
best approach here would be to delete the function from the code and
then have someone reimplement it.
--
bye,
pabs

https://wiki.debian.org/PaulWise
Stephen Sinclair
2018-05-03 02:52:29 UTC
Permalink
Thank you for your advise Paul.

I agree with your assessment and so will not reply point-by-point, but
it confirms for me that it seems the best approach is to request a
permissive licence from the author of ql0001.f, and failing that, work
towards removing the hard dependency on it from Siconos.

Working on this software has opened my eyes to how much old Fortran
code is out there that, mostly unintentionally, has no proper
licensing. As the years go by these authors will only get harder to
contact. It is a crisis.

kind regards,
Steve
Post by Paul Wise
Post by Stephen Sinclair
I am preparing a package for Siconos: http://siconos.gforge.inria.fr/
This software contains several 3rd-party sources used for numerical
solutions etc.
In general, Debian and other distributions do not like it when
projects embed copies of their dependencies or other 3rd-party sources
in their own source repository or tarballs. Please talk to upstream
about removing them, or only adding them to their binary packages.
https://wiki.debian.org/EmbeddedCodeCopies
Post by Stephen Sinclair
with the exception of the QP solver, ql0001.f. As far as I
can tell this comes originally from
http://www.klaus-schittkowski.de/ql.htm and, therefore, it has a
non-DSFG license (free for educational use), which, as an upstream
https://github.com/siconos/siconos/blob/master/externals/optim_misc/copyright
I agree with your assessment that this is not DFSG-free.
Since the QL author is easily contactable you might want to ask for
relicensing to something DFSG-free, like GPLv3+.
Post by Stephen Sinclair
[1] https://github.com/ScilabOrg/scilab/blob/master/scilab/modules/optimization/src/fortran/ql0001.f
c !!!! NOTICE !!!! c
c 1. The routines contained in this file are due to Prof. K.Schittkowski
c of the University of Bayreuth, Germany (modification of routines
c due to Prof. MJD Powell at the University of Cambridge). They can
c be freely distributed.
c
c 2. A minor modification was performed at the University of Maryland.
c It is marked in the code by "c umd".
c
c A.L. Tits and J.L. Zhou
c University of Maryland
Personally, I do not believe this text constitutes a DFSG-free license grant.
Post by Stephen Sinclair
Now, due to this I have made sure that Siconos compiles and runs
without this file, but it implies significantly disabling the software
as the QP solver is important to its functionality. Given that this
code (ql0001.f) is just an updated (and slightly modified by Siconos
authors) version of the code found in Scilab [1], already packaged in
Debian, I am wondering whether it really needs to be removed from the
archive for the Siconos package to be DSFG-friendly. The authors of
Siconos consider it free specifically because it is already used by
Scilab, but I cannot tell whether the version in Scilab was released
under a different license. It is also hard to tell since the upstream
author does not host the source code as far as I can tell, but only a
usage example and a license.
I believe that Scilab folks didn't consider the implications of the
original licensing when including the file into Scilab, nor when
modifying it. I don't think the code can be considered DFSG-free. I
think it should be removed from both Scilab and Siconos upstream. I
don't believe the license above even allows distributing copies of the
file. It allows transferring the code to someone else (making a copy
and deleting your copy), but not giving out copies.
Post by Stephen Sinclair
A second issue: one header file [2] used in the project contains code
that was taken from a mailing list post [3] from 2008, and does not
have a license. However, it consists merely of a function
demonstrating how to use the lu_factorize function from BOOST uBLAS to
compute a determinant. Although I have emailed the original author,
it was posted many years ago, and I have not received a reply after a
few weeks. It seems silly to worry about a license for, basically,
example code posted to a list with the clear intention of being used,
but the function is not 100% trivial. Does fair use or something play
in here? How to deal with this?
Debian is distributed in locations where fair use does not exist so we
cannot rely on fair use defences to copyright infringement. I'm not
sure if the function can be considered copyrightable but I think the
best approach here would be to delete the function from the code and
then have someone reimplement it.
--
bye,
pabs
https://wiki.debian.org/PaulWise
Loading...