[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: clearing the use of a QP solver, and example code posted to a mailing list



On Wed, May 2, 2018 at 10:08 PM, Stephen Sinclair wrote:

> 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

> 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

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+.

> [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.

> 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.

> 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


Reply to: