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

cfortran and free software



(please cc: me because I am not on this mailing list)

Hi Debian legal experts --

I am trying to package a set of numerical libraries I have developed
for my research as free software, under the LGPL.  These libraries
allow a simple C interface to high-powered matrix-based numerical
code, and also support some things like fast training and evaluation
of neural networks, and hidden Markov models.  I have also developed
an RScheme interface for these libraries and will soon have a Guile
interface as well (I like numerical programming in Scheme, call me
crazy).

I would eventually like to become a Debian developer and package these
libraries (and a couple related packages) for Debian.  The libraries
are written primarily in C, but use Fortran libraries for most of
their inner loops.  The libraries I use most are BLAS and LAPACK
(available at netlib.org, and as the Debian lapack packages).  I am
using BLAS and LAPACK because it seems that much of the best numerical
libraries are written in Fortran, and for machines like the SGI O2 I
use at work, the hardware vendors of engineering workstations provide
versions of BLAS which are highly optimized for the hardware.

For making a portable interface between these FORTRAN libraries and my
C code, I have been using the cfortran package
(http://www-zeus.desy.de/~burow/cfortran/) which seems to be the most
general solution available.  The package is mainly a c header file,
cfortran.h which allows you to create prototypes for Fortran functions
which will work for most any Fortran compiler and operating system.

Unfortunately, cfortran.doc includes the following text:

 > THIS PACKAGE, I.E. CFORTRAN.H, THIS DOCUMENT, AND THE CFORTRAN.H EXAMPLE
 > PROGRAMS ARE PROPERTY OF THE AUTHOR WHO RESERVES ALL RIGHTS. THIS PACKAGE AND
 > THE CODE IT PRODUCES MAY BE FREELY DISTRIBUTED WITHOUT FEES, SUBJECT TO THE
 > FOLLOWING RESTRICTIONS:
 > - YOU MUST ACCOMPANY ANY COPIES OR DISTRIBUTION WITH THIS (UNALTERED) NOTICE.
 > - YOU MAY NOT RECEIVE MONEY FOR THE DISTRIBUTION OR FOR ITS MEDIA 
 >   (E.G. TAPE, DISK, COMPUTER, PAPER.)
 > - YOU MAY NOT PREVENT OTHERS FROM COPYING IT FREELY.
 > - YOU MAY NOT DISTRIBUTE MODIFIED VERSIONS WITHOUT CLEARLY DOCUMENTING YOUR
 >   CHANGES AND NOTIFYING THE AUTHOR.
 > - YOU MAY NOT MISREPRESENTED THE ORIGIN OF THIS SOFTWARE, EITHER BY EXPLICIT
 >   CLAIM OR BY OMISSION.
 > 
 > THE INTENT OF THE ABOVE TERMS IS TO ENSURE THAT THE CFORTRAN.H PACKAGE NOT BE
 > USED FOR PROFIT MAKING ACTIVITIES UNLESS SOME ROYALTY ARRANGEMENT IS ENTERED
 > INTO WITH ITS AUTHOR.
 >               
 > THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
 > EXPRESSED OR IMPLIED. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
 > SOFTWARE IS WITH YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST
 > OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. THE AUTHOR IS NOT RESPONSIBLE
 > FOR ANY SUPPORT OR SERVICE OF THE CFORTRAN.H PACKAGE.
 > 
 >                                               Burkhard Burow 
 >                                               burow@desy.de

I assume that this precludes cfortran.h from being included in any
Debian distribution.  I don't know whether it precludes binaries
generated with code including this header from being distributed by
Debian (I'm assume that debian-policy would make this difficult).

In the document "Adding Fortran 77 Support to Automake"
(http://www.slac.stanford.edu/~langston/am-f77_toc.html) at this
location (http://www.slac.stanford.edu/~langston/am-f77_2.html#SEC20)
there is a footnote which states:

> (3)
> For example, the cfortran package addresses all of these
> inter-language issues, and runs under nearly all Fortran 77, C and C++
> compilers on nearly all platforms. However, cfortran is not yet Free
> Software, but it will be in the next major release.

This node is dated 10 October 1998, and cfortran has not been
re-released since then.  Maybe some day my problem will disappear :).

Could you please suggest some way that I might be able to get around
this?  Help from anyone with a background in using Fortran code with
free software is especially welcome.

Here is one thought I have.  First, I assume that my own code can be
licensed with the LGPL, but with an extra clause stating that it may
be used with cfortran.h.  Then, I could make a set of headers for
Fortran functions specifically for use with G77, not using cfortran.h.
A distribution of code based on this could be usable by Debian, but
might not work on systems which do not use G77.  I could then put
cfortran.h on my web page so that people could download it and set up
my distribution to use it if it is seen during the ./configure
process.

Would this work?  Any better ideas?

Thanks!
 -Chris

-- 
Christopher Lee
http://www.cs.cmu.edu/~chrislee
chrislee@ri.cmu.edu


Reply to: