[GRASS5] Re: license issues

Markus Neteler neteler at geog.uni-hannover.de
Tue Dec 14 10:10:42 EST 1999


Dear developers!

An important point for the next release should be clarification
about license conflicts within GRASS source code. I suggest we
make a list of modules with such license issues (and keep it
secret within the group until a solution is found). I already
started using "find" and found:
 find . -type f -name "*\.[ch]" -exec grep -il "Copyright" {} \;

* r.in.tiff:
   I have removed the tools/ subdirectory as it is not required
   for the module. So this module should be clean now.
  ./src/raster/r.tiff/cmd/r.out.tiff.c

/* r.in.tiff - Converts from a Tagged Image File Format image to a Grass Raster.
 *
 * tif2ras.c - Converts from a Tagged Image File Format image to a Sun Raster.
 * Portions Copyright (c) 1990 by Sun Microsystems, Inc.
 *
 * Author: Patrick J. Naughton
 * naughton at wind.sun.com
 *
 * Permission to use, copy, modify, and distribute this software and its
 * documentation for any purpose and without fee is hereby granted,
 * provided that the above copyright notice appear in all copies and that
 * both that copyright notice and this permission notice appear in
 * supporting documentation.
 *
 *   This program takes a MicroSoft/Aldus "Tagged Image File Format" image or
 * "TIFF" file as input and writes a GRASS cell file.
 */

-> Is it o.k.?



> > > BTW, had you noticed the problematic inclusion of the `Numerical
> > > Recipes' code in the now-GPL'd GRASS v5.0b4?  Grep for `Cambridge
> > > University Press' and take a look at the conditions.
> grass5.0beta 58: find . -exec grep 'Cambridge University Press' /dev/null {} \;


> /man/man1/i.fft:Cambridge University Press, 1988.
> /man/man1/i.ifft:Cambridge University Press, 1988.
> /src/imagery/i.cca/cmd/jacobi.c:   (Cambridge University Press, 1988).  =
> Copyright (C) 1986, 1988 by
> /src/imagery/i.cca/cmd/jacobi.c:   (Cambridge University Press, 1988).  =
> Copyright (C) 1986, 1988 by
> /src/imagery/i.fft/cmd/fft.c:   (Cambridge University Press, 1988).  Cop=
> yright (C) 1986, 1988 by
> /src/imagery/i.pca/cmd/eigen.c:   (Cambridge University Press, 1988).  C=
> opyright (C) 1986, 1988 by
> /src/imagery/i.zc/cmd/fft.c:   (Cambridge University Press, 1988).  Copy=
> right (C) 1986, 1988 by
> /src.contrib/CERL/imagery/i.shape/fft.c:   (Cambridge University Press, =
> 1988).  Copyright (C) 1986, 1988 by
> /src.contrib/CERL/sites/s.surf.krig/NR.c:published by Cambridge Universi=
> ty Press, and are used by permission."
> /src.contrib/CERL/sites/s.surf.krig/NR.c contains more explaination
> and different functions.=20
 
> It reads like:
> 
> /* Based on "Numerical Recipies in C; The Art of Scientific Computing"
>    (Cambridge University Press, 1988).  Copyright (C) 1986, 1988 by
>    Numerical Recipes Software.  Permission is granted for unlimited
>    use within GRASS only.  */
At least for me this is a clear statement. Since late 80th GRASS is
distributed in open source manner. Therefore the CERL must have had
a contract with Press et al. to use the code as stated above. In my
opinion this is still valid. So I don't see a big problem here. As
there is a restriction to GRASS, nobody may take out the code to use
in another software. Or is *here* the conflict with GPL? In that case:
how do other GPL-programmers avoid such conflict? I cannot imagine
that no "Numerical Recipies in C" programs are used in any GPL
software.

./src.contrib/CERL/sites/s.surf.krig/NR.c
/*-

****************  PLEASE READ  *****************

In-Reply-To: William Skelly's message of Thu, 14 Jan 93 13:20:41 EST
Subject: Numerical Recipes Copywrite.

Thanks for your note.  I am attaching a copy of our info sheet
regarding uses of the NR routines. In a case like yours, where the use
is for a noncommercial research purpose, and where the number of
routines used is small (in your case, only two, from what you say) we
usually waive the stated fee.  However, it is a matter of concern to
us that your distribution preserve our copyright (by including the
copyright notice in each routine) and also make clear to your users
that they have permission to use the included routines *only* with
your software, *not* to transplant it to other programs (unless, of
course, they are licensed for all NR -- which currently costs only $50
per screen for educational use).

     Sincerely, Bill Press

Numerical Recipes Software P.O. Box 243 Cambridge, MA 02238
FAX: 617-863-1739

Necessary Permissions for Including Numerical Recipes

We have several levels of permissions.  The simplest is if you are
simply using individual Recipes bound into independently executable
software that you develop, and not separable from that software by
a user.  In such cases the user must not be able to use the
Recipes as a program library, indeed will normally not be aware that
they are being used in the program.  There is no fee for this level
of permission.  We require only that you obtain from us in advance
permission for commercial use, and that the executable software contain
the embedded copyright notice "Copyright (C) 1986 Numerical Recipes
Software" (for FORTRAN) or "Copyright (C) 1987, 1988 Numerical Recipes
Software" (for C).  This notice need not, and should not, be displayed
to the user.

The next level of permission is if you want to make available
to your users a subset of Recipes in object, or individually callable,
form, but not including source code.  For fewer than 20 Recipes used
in this manner, we charge a flat fee of \$40 per Recipe for each
use (unlimited number of copies).  The copyright notice is required,
as above, and we also request that the printed manual contain words
to the effect "the procedures [your procedure identifiers] are based
on routines in Numerical Recipes: The Art of Scientific Computing,
published by Cambridge University Press, and are used by permission."
We are reluctant to license the use of more than 20 Recipes in this
manner, but will occasionally do so on an individually negotiated basis.

Finally, there is the case where our source code, or substantially
identical code, is to be made available to users.  In the case, we
charge a flat fee of \$100 per Recipe if the source code is to be
distributed in machine-readable form, or \$50 per Recipe if the
distribution is not machine readable (i.e., hardcopy listing only).
The above copyright notice and permission acknowledgment provisions
apply.  In general, we will not license the use of more than 20
Recipes in this manner for a fixed fee.  Proposals to translate
substantially all of the Numerical Recipes into other computer
languages, or embed them in language-like software, are negotiated on
an individual basis.

A special case is that we allow, without fee, reproduction of up to
five Recipes in any textbook, in printed form only, provided that
advance permission is obtained, and that the appropriate copyright
notice and permission acknowledgment is included.

At any permission level, if you use the Numerical Recipes in software
of your own, you are bound by the Disclaimer of Warranty that we
distribute with all forms of our software, including its specific
disclaimer of merchantability or fitness for any purpose.  Also note
that no business of other legal relationship is created between us and
your customers by your use of our software.

*/


---------------------------------------------------------------------
* concerning LZW /RLE:
./src/include/gisdefs.h
  -> ./libes/gis/lzw.c

./src/libes/g3d/G3d_intern.h
  -> extern int g3d_do_lzw_compression; /* G3D_USE_LZW or G3D_NO_LZW */
  -> extern int g3d_do_rle_compression; /* G3D_USE_RLE or G3D_NO_RLE */

./src/libes/g3d/fpcompress.c
./src/libes/g3d/g3ddefaults.c
./src/libes/g3d/g3dopen.c
./src/libes/g3d/headerinfo.c
  -> G3d_setCompressionMode,...
  -> G_lzw_write(), ...

./src/libes/gis/G.h
./src/libes/gis/closecell.c
./src/libes/gis/get_row.c
./src/libes/gis/lzw.c
  /* this code for the lzw compression algorithm has been adapted from a
 demonstration code for PCs provided by Mark R. Nelson. for a discussion
 of the lzw algorithm see:

      T. A.Welch, A Technique for High Performance Data Compression, 
      IEEE Computer, 17(6), June 1984, pp. 8-19.

 this implementation follows the algorithm in the paper closely.
 [...] */

./src/libes/gis/put_row.c
  -> G__write_data_compressed

./src/libes/gis/G_dump.c
  -> debug routine only

If an algorithm is repatented as the LZW, does this affect former use
of code based on old publications? It sounds a bit strange if you could
change history by current acting. I feel that the old code may be
used but all code written *after* 1995 based on LZW is affected. Maybe
I am wrong (just geographer, no lawyer).


./src/raster/r.in.gif/cmd/expander.h
./src/raster/r.in.gif/cmd/expander.c
./src/raster/r.in.gif/cmd/cnvhuf.h
/*----------------------------------------------------------------------*/
/* Copyright (c) 1988-1989                                              */
/* by CompuServe Inc., Tucson, AZ.  All Rights Reserved                 */
/* CNVHUF.H can be copied and distributed freely for any                */
/* non-commercial purposes. CNVHUF.H can only be incorporated           */
/* into commercial software with the permission of CompuServe Inc.      */
/*----------------------------------------------------------------------*/
./src/raster/r.in.gif/cmd/dehuftab.h
/*----------------------------------------------------------------------*/
/* Copyright (c) 1988-1989                                              */
/* by CompuServe Inc., Tucson, AZ.  All Rights Reserved                 */
/* DEHUFTAB.H can be copied and distributed freely for any              */
/* non-commercial purposes. DEHUFTAB.H can only be incorporated         */
/* into commercial software with the permission of CompuServe Inc.      */
/*----------------------------------------------------------------------*/
./src/raster/r.in.gif/cmd/readgif.h
  /*----------------------------------------------------------------------*/
  /* Copyright (c) 1987                                                   */
  /* by CompuServe Inc., Columbus, Ohio.  All Rights Reserved             */
  /* EXPANDER.C can be copied and distributed freely for any              */
  /* non-commercial purposes. EXPANDER.C can only be incorporated         */
  /* into commercial software with the permission of CompuServe Inc.      */
  /*----------------------------------------------------------------------*/
-> Expand_Data(get_byte_routine, put_byte_routine)
                  short (*get_byte_routine)();
                  short (*put_byte_routine)();
   /*
    * Function:
    *      Decompress a LZW compressed data stream.*/

This looks good, I think.


./src.garden/grass.hdf/hdf4/HDF4.1r3/hdf/jpeg/rdgif.c
./src.garden/grass.hdf/hdf4/HDF4.1r3/hdf/jpeg/wrgif.c
/*
 * rdgif.c
 *
 * Copyright (C) 1991-1997, Thomas G. Lane.
 * This file is part of the Independent JPEG Group's software.
 * For conditions of distribution and use, see the accompanying README file.
 *
 * This file contains routines to read input images in GIF format.
 *
 *****************************************************************************
 * NOTE: to avoid entanglements with Unisys' patent on LZW compression,
 *
 * the ability to read GIF files has been removed from the IJG distribution.
 *
 * Sorry about that. 
 *
 *****************************************************************************
 *
 * We are required to state that
 *    "The Graphics Interchange Format(c) is the Copyright property of
 *    CompuServe Incorporated. GIF(sm) is a Service Mark property of
 *    CompuServe Incorporated."
 */

Oups. This looks quite clear.
Alternative: Rewrite r.in.gif to use /usr/X11R6/lib/libgif.so.3.0 ?
This could prevent us from problems. Autor: Eric S. Raymond
esr at snark.thyrsus.com. He does not support this lib any more. But
it is distributed with SuSe and other Linux packages.


Or change to libungif? Or PNG? Or Imlib?
http://prtr-13.ucsc.edu/~badger/software/libungif/
http://www.arrakeen.demon.co.uk/giflib/
http://www.w3.org/Graphics/PNG/
http://cvs.labs.redhat.com/lxr/source/imlib
---------------------------------------------------------------

LZW-Related article: 
            The GIF Controversy: A Software Developer's Perspective
            http://www.cloanto.com/users/mcb/19950127giflzw.html

But what shall we tell the users if we have to remove r.in.gif?

Related texts from UNISYS:
http://www.unisys.com/unisys/lzw/

Cite from this text:
"...Other forms of LZW are, for
               example, TIFF-LZW, PDF and Postscript-2."
Oops again. What about ps.map?

Here some more text:
http://corp2.unisys.com/LeadStory//lzwfaq.html
Cite again:
"... In all cases, a written license agreement or
 statement signed by an authorized Unisys representative is required from
Unisys for all use, sale or distribution of any software (including so-called
"freeware") and/or hardware providing LZW conversion capability (for example,
 downloaded software used for creating/displaying GIF images). In certain
cases, no license fees may be required, but this needs to be evidenced by a
written agreement or written statement signed by an authorized Unisys
representative...."

Aha. Could we get such an agreement? 
Then: Is there a difference between *reading* only and *reading/writing*
GIFs with LZW-compression?

-------------------------------------------------------------------
BUT: 
 - What about "xv" - there is LZW included.
 - what about GIMP: GIF and TIFF support

How do the manage this problem?

-------------------------------------------------------------
Further copyright statements:

Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore)
./src/include/Caption.h
./src/include/CaptionP.h
./src/include/Clip.h
./src/include/ClipP.h
./src/include/Matrix.h
./src/include/MatrixP.h
./src/xgrass/libes/Xgi/Caption.c
./src/xgrass/libes/Xgi/Clip.c
./src/xgrass/libes/Xgi/Matrix.c
./src/xgrass/libes/Xgi/version.c
"... * Permission to use, copy, modify and distribute this material for
 * any purpose and without fee is hereby granted,..."
Seems to be o.k.

Copyright (c) 1990 MIPS Computer Systems, Inc.  
./src/include/mips/unistd.h
/*
 * |-----------------------------------------------------------|
 * | Copyright (c) 1990 MIPS Computer Systems, Inc.            |
 * | All Rights Reserved                                       |
 * |-----------------------------------------------------------|
 * |          Restricted Rights Legend                         |
 * | Use, duplication, or disclosure by the Government is      |
 * | subject to restrictions as set forth in                   |
 * | subparagraph (c)(1)(ii) of the Rights in Technical        |
 * | Data and Computer Software Clause of DFARS 52.227-7013.   |
 * |         MIPS Computer Systems, Inc.                       |
 * |         928 Arques Avenue                                 |
 * |         Sunnyvale, CA 94086                               |
 * |-----------------------------------------------------------|
 */

/*      Copyright (c) 1984 AT&T */
/*        All Rights Reserved   */

/*      THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T     */
/*      The copyright notice above does not evidence any        */
/*      actual or intended publication of such source code.     */

-> comment: ?????


Copyright (C) 1991-93 The Board of Trustees  of the University of  Illinois
./src/libes/geom/basic/copyright.h
./src/libes/geom/lia/copyright.h
./src/libes/geom/sos/copyright.h
    Copyright (C) 1991-93 The Board of Trustees  of the University of Illinois\n\
             and the original author(s)        All rights reserved\n\
             The code is provided AS IS and WITHOUT ANY WARRANTIES\n\";


./src/include/color.h
/* 
 * color.h - color definitions
 * 
 * Author:      Christopher A. Kent
 *              Western Research Laboratory
 *              Digital Equipment Corporation
 * Date:        Sun Dec 13 1987
 * Copyright (c) 1987 Christopher A. Kent
 */
-> Problem?

./src/xgrass/libes/Xgi/color.c
/* 
 * color.c - color helper routines
 * 
 * Author:      Christopher A. Kent
 *              Western Research Laboratory
 *              Digital Equipment Corporation
 * Date:        Sun Dec 13 1987
 * Copyright (c) 1987 Christopher A. Kent
 */
/* 
 * See David F. Rogers, "Procedural Elements for Computer Graphics",
 * McGraw-Hill, for the theory behind these routines.
 */
-> Problem?


./src.contrib/GMSL/NVIZ2.2/src/togl.c
/*
 * Togl - a Tk OpenGL widget
 * Version:  1.0
 * Copyright (C) 1996  Brian Paul (brianp at ssec.wisc.edu) and
 * Ben Bederson (bederson at cs.unm.edu)  See the LICENSE file for details.
 */
..The authors hereby grant permission to use, copy, modify, distribute,
and license this software and its documentation for any purpose, provided
that existing copyright notices are retained in all copies and that this
notice is included verbatim in any distributions....
-> should be o.k.


It seems we may have some conflicts. Comments are welcome. 

So far for today,

 Markus Neteler


---------------------------------------- 
If you want to unsubscribe from GRASS Development
Team internal mailing list write to:
minordomo at geog.uni-hannover.de with
subject 'unsubscribe grass5'
length: 17553
max: 0



More information about the grass-dev mailing list