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.