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

Re: Bug#1094030: RFS: freebasic/1.10.1+ds-1 [ITP] -- Compiler for the FreeBASIC language



Ahmad,


You have sure picked a difficult project to package from a copyright perspective.  My hat is off to you.


On Wednesday, February 5, 2025 3:48:42 PM MST Ahmad Khalifa wrote:

> you run out of time:

> > Files: inc/sqlite*.bi

> >

> >  bootstrap/inc/sqlite*.bi

> >

> > Copyright: The FreeBASIC Development Team

> > License: GPL-2+ and public-domain

> >

> >  The author disclaims copyright to this source code.  In place of

> >  a legal notice, here is a blessing:

> >  .

> > 

> >     May you do good and not evil.

> >     May you find forgiveness for yourself and forgive others.

> >     May you share freely, never taking more than you give.

>

> There are several of these where the original is public-domain. Debian

> Copyright standard says that public-domain needs a License paragraph,

> but for some reason it looks wrong to me. Reading your 3rd comment, now

> I'm not sure I should leave public-domain in there.


Because different parts of the world have different laws relating to the public domain, it is important that you maintain the public domain information as accurate as possible in debian/copyright.  As you have more than one public domain license in this package, I would do it like this:


Files: inc/sqlite*.bi

       bootstrap/inc/sqlite*.bi

Copyright: The FreeBASIC Development Team

License: GPL-2+ and public-domain~sqlite


License: GPL-2+

 This program is free software; you can redistribute it and/or modify

 it under the terms of the GNU General Public License as published by

 the Free Software Foundation; either version 2 of the License, or

 (at your option) any later version.

 .

 This program is distributed in the hope that it will be useful,

 but WITHOUT ANY WARRANTY; without even the implied warranty of

 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

 GNU General Public License for more details.

 .

 You should have received a copy of the GNU General Public License

 along with this package. If not, see <https://www.gnu.org/licenses/>.

Comment:

 On Debian systems, the complete text of the GNU General

 Public License version 2 can be found in “/usr/share/common-licenses/GPL-2”.


License: public-domain~sqlite

 The author disclaims copyright to this source code.  In place of

 a legal notice, here is a blessing:

 .

    May you do good and not evil.

    May you find forgiveness for yourself and forgive others.

    May you share freely, never taking more than you give.

 

> > Files: inc/gmp.bi

> >

> >  bootstrap/inc/gmp.bi

> >

> > Copyright: The FreeBASIC Development Team

> >

> >            1991-2014 Free Software Foundation, Inc.

> >

> > License: GPL-2+, and GPL-2+ or LGPL-3+

>

> And this is one of the occurrences where the original was A OR B, so now

> it says "A AND (A OR B)", which again looks silly.


I recently did something like this:


https://salsa.debian.org/debian/maildrop/-/blob/master/debian/copyright?ref_type=heads#L68


> > Files: inc/X11/*

> >

> >  bootstrap/inc/X11/*

> >

> > Copyright: The FreeBASIC Development Team

> >

> >            1987-1998 The Open Group

>

> [...]

>

> >            2008-2010 Red Hat, Inc.

> >

> > License: GPL-2+ and HPND-sell-variant and MIT and MIT-HP and X11

>

> Here is an example where I got tired and called it in. No way anyone

> wants to separate X11 headers for individual use, so I lumped them all

> up under one impossible set of licenses. I also avoided several

> variations of HPND where the variation is the copyright holder name only

> and used the generic "copyright holder" language from SPDX.org.


Files: inc/X11/*

       bootstrap/inc/X11/*

Copyright: The FreeBASIC Development Team

           1987-1998 The Open Group

           1987-1997 Digital Equipment Corporation

           1987 Apollo Computer Inc.

           1989-1995 GROUPE BULL

           1989-2002 Hewlett-Packard Company

           1990-2011 Oracle and/or its affiliates

           1993-1994 NCR Corporation

           1995 Kaleb S. KEITHLEY

           1995 Jon Tombs

           1995 Network Computing Devices

           1995 XFree86 Inc.

           1997 Silicon Graphics Computer Systems, Inc

           1999 Thomas E. Dickey <dickey@clark.net>

           2000-2003 Keith Packard

           2000 Compaq Computer Corporation

           2000 SuSE, Inc.

           2003-2008 Jamey Sharp, Josh Triplett

           2004 The Unichrome Project

           2006 Intel Corporation

           2007-2008 Peter Hutterer

           2008-2010 Red Hat, Inc.

License: GPL-2+ and HPND-sell-variant and MIT and MIT-HP and X11


This section says that “all of the files in these directories are licensed under GPL-2+ and HPND-sell-variant and MIT and MIT-HP and X11 and if you want to use any of these files you need to comply with all of these licenses.  Each one of these files is copyright by one or more of the copyright entries.  If, for some reason, you want to relicense all of these files under a different license, you need need permission to from all of these copyright holders.  However, if you only want to relicense one of these files, you will need to check the file header to see who ownes the copyright to ask their permission.”


This would be fine if that accurately described the licensing of the files in that directory, but it doesn’t.  Rather, each of the files is licensed under only a subset of those licenses.


To handle this correctly, you need to group the files by the licenses they use.  Which is insanely time consuming.  It took me three days (on and off) to do this debian/copyright:


https://salsa.debian.org/debian/courier/-/blob/master/debian/copyright?ref_type=heads


lrc might help automate the process a bit (I see below you use it, but I include it here in case some other reader of the conversation is curious).


https://tracker.debian.org/pkg/licenserecon


> > Files: inc/win/ddk/mmddk.bi

> >

> >  bootstrap/inc/win/ddk/mmddk.bi

> >

> > Copyright: 2015 The FreeBASIC Development Team

> >

> >            Microsoft Corp.

> >

> > License: GPL-2+

>

> This is an old Microsoft driver header file. I'm keeping it for future

> support of cross-compiling. Would be nice to compile a Win driver in

> freebasic on Linux. Looks a bit wrong saying GPL and Microsoft in the

> same stanza.


I’m pretty sure that some future version of Windows is just going to be a custom theme running on top of Linux.  ;)


(I’m not even joking.)


> > Files: inc/sndfile.bi

> >

> >  bootstrap/inc/sndfile.bi

> >

> > Copyright: The FreeBASIC Development Team

> >

> >            1999-2011 Erik de Castro Lopo <erikd@mega-nerd.com>

> >

> > License: GPL-2+ and LGPL-2.1+

>

> This is where I genuinely have no idea if GPL and LGPL are compatible.

> Probably should leave these separate


I present to you the GPL compatibility matrix:


https://www.gnu.org/licenses/gpl-faq.html#AllCompatibility


In this case, if you combine LGPL-2.1+ code with GPL-2+ code you get a combination of GPL-2+.


I would handle it like this.


Files: inc/sndfile.bi

       bootstrap/inc/sndfile.bi

Copyright: The FreeBASIC Development Team

           1999-2011 Erik de Castro Lopo <erikd@mega-nerd.com>

License: GPL-2+

Comment:

 The original work in the C language was licensed under the LGPL-2.1+.

 Modification by the FreeBASIC Development Team are under the GPL-2+.

 The combined work is thus GPL-2+.

 .

 <https://www.gnu.org/licenses/gpl-faq.html#AllCompatibility>


> > Files: inc/libintl.bi

> >

> >  bootstrap/inc/libintl.bi

> >

> > Copyright: 2011-2012 Thomas.Freiherr@gmx.net

> >

> >            1995-2005 Free Software Foundation, Inc.

> >

> > License: LGPL-2+ and LGPL-2.1+

>

> This is easier, but still LGPL-2 and LGPL-2.1 didn't even have the same

> name back then ("Library" vs. "Lesser").


Wow!  Somehow I didn’t even know about the name change.


According to GNU, it qualifies as the successor, meaning that LGPL-2+ can be relicensed under the LGPL-2.1+.


"This GNU Lesser General Public License counts as the successor of the GNU Library General Public License.”


https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html


> Tons more variations of GPL-2+ AND (Zlib, SGI, ZPL, Expat, Curl, etc...)

> where I definitely have no clue if they're compatible, but I don't want

> to spam you too much.

> lrc does a good job of showing the variations as the inc/ dir all comes

> up as false-positives (but even lrc doesn't recognise all licenses)


My experience is that upstream is often not very careful about GPL compatibility.  See, for example:


https://github.com/feather-wallet/feather/issues/218


In this regard, I find the following website a nice place to start:


https://www.gnu.org/licenses/license-list.html


For example, it depends on which version of the ZPL is being used if it is compatible with the GPL.



--

Soren Stoutner

soren@debian.org

Attachment: signature.asc
Description: This is a digitally signed message part.


Reply to: