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

Re: Providing a non-free alternative to a free package

Adam Borowski <kilobyte@angband.pl> writes:
> Is slalib the contents of libraries/sla/ in the repository you linked
> to?


> If so, it appears the current upstream is not the sole copyright
> holder, and there are many other contributors dating from 2004 for
> sla, and 1989 for the project as a whole (counting only versioned
> history).  

The slalib goes back to 1989, and is written by P.T.Wallace. He wrote
two versions of the library, one in Fortran, and another in C. The
Fortran version he put under GPL, while he sells the C library. On
request request he offers an obfuscated C version for free (as in Beer),
with a purpose-limited, non-commercial license. 

The starlink project itself (where the free version of the library is
part of) dates back to 1980.

> This means, it is illegal to distribute the obfuscated version for
> anyone (including current upstream), and anyone who buys the
> unobfuscated one can pass it further under GPL.

Since the obfuscated version comes from the author, he is legal to
distribute it under any license he wants.

However, after comparing some of the obfuscated files with the Fortran
versions, I think that the C version is not superior to the Fortran
one. The main disadvantage the (Standard) Fortran version has is that
the local variables of Fortran functions are usually stored in a
statically allocated memory which makes the library not threadsafe, but
thread safety is needed for its use. This is solved upstream by using a
mutex lock around each library call, which slows down execution. For
Debian, the gfortran compiler offers a "-frecursive" flag which puts
local variables on the stack, and therefore does not have this problem. 

As long as there are no other important advantages of the non-free
version, I would not plan to package it; however I would like to create
the free Fortan version in a way that it may be replaced by its non-free
C variant.



Reply to: