Gnulib has a number of modules
  - whose only source files are *.m4 files,
  - with no dependencies.

By the meaning of the module's 'License' field, explained in
<https://www.gnu.org/software/gnulib/manual/html_node/Copyright.html>,
such modules can be effortlessly relicensed under any license.

If the license of such a module is

      GPLed build tool
or    GPLv2+ build tool
or    unlimited
or    public domain
or    LGPLv2+

it can be used with any --lgpl or --gpl option (passed to gnulib-tool).
It does not really matter which of these we use here. Usually we will
want to state

  - 'GPLed build tool' for modules relating to build infrastructure, e.g.
    Makefile.am customizations,

  - 'LGPLv2+' for modules that provides some (tiny bits of) code through
    "config.h",

  - 'unlimited' when the focus of the module is on the *.m4 macros.

But if a module has 'License: GPL', use of --lgpl or --gpl=2 will reject
this module.

And if a module has 'License: LGPL', use of --lgpl=2 or --gpl=2 will reject
the module.

The modules and their current 'License' field are:

  link-follow               GPL
  rmdir-errno               GPL
  test-xfail                GPL
  unlink-busy               GPL
  uptime                    GPL
  winsz-termios             GPL
  bison                     GPLed build tool
  gnu-make                  GPLed build tool
  gnumakefile               GPLed build tool
  perl                      GPLed build tool
  acos                      LGPL
  asin                      LGPL
  atan                      LGPL
  atan2                     LGPL
  config-h                  LGPL
  cos                       LGPL
  cosh                      LGPL
  erf                       LGPL
  erfc                      LGPL
  exp                       LGPL
  fabs                      LGPL
  host-os                   LGPL
  j0                        LGPL
  j1                        LGPL
  jn                        LGPL
  lgamma                    LGPL
  longlong                  LGPL
  nextafter                 LGPL
  no-c++                    LGPL
  openmp                    LGPL
  pow                       LGPL
  sin                       LGPL
  sinh                      LGPL
  sqrt                      LGPL
  tan                       LGPL
  tanh                      LGPL
  va-args                   LGPL
  y0                        LGPL
  y1                        LGPL
  yn                        LGPL
  absolute-header           LGPLv2+
  alignasof                 LGPLv2+
  ansi-c++-opt              LGPLv2+
  builtin-expect            LGPLv2+
  d-ino                     LGPLv2+
  d-type                    LGPLv2+
  double-slash-root         LGPLv2+
  extensions                LGPLv2+
  extensions-aix            LGPLv2+
  fpieee                    LGPLv2+
  gen-header                LGPLv2+
  largefile                 LGPLv2+
  nullptr                   LGPLv2+
  printf-safe               LGPLv2+
  printf-with-n-directive   LGPLv2+
  sh-filename               LGPLv2+
  socketlib                 LGPLv2+
  sparcv8+                  LGPLv2+
  vararrays                 LGPLv2+
  year2038                  LGPLv2+
  year2038-recommended      LGPLv2+
  autobuild                 unlimited
  extern-inline             unlimited
  func                      unlimited
  gperf                     unlimited
  host-cpu-c-abi            unlimited
  inline                    unlimited
  lib-ignore                unlimited
  lib-msvc-compat           unlimited
  lib-symbol-versions       unlimited
  lib-symbol-visibility     unlimited
  multiarch                 unlimited
  nocrash                   unlimited
  socklen                   unlimited
  ssize_t                   unlimited
  std-gnu11                 unlimited
  std-gnu23                 unlimited
  valgrind-tests            unlimited
  warnings                  unlimited

Out of these:
  * It's reasonable to relicense most of those with 'License: GPL' to 
'unlimited',
    so that they can be used in packages under LGPL or GPLv2+.
  * 'bison' and 'perl', IMO, are better labelled as 'unlimited', like 'gperf'.
  * Among those with 'License: LGPL':
      - For those that represent <math.h> libc functions (from 'acos' to 'yn')
        I would not like to label them as 'LGPLv2+' because it could become
        problematic the day we need to add a substitute implementation (as a .c
        file).
      - For libc functions that Gnulib likely never has a chance to substitute,
        it makes sense to relabel them as 'LGPLv2+'.
      - Other such modules can be relabelled as 'unlimited'.

The attached patches do this.


2024-08-30  Bruno Haible  <br...@clisp.org>

        Trivial relicensing of macro-only modules, part 3.
        * modules/config-h (License): Change to unlimited.
        * modules/host-os (License): Likewise.
        * modules/no-c++ (License): Likewise.
        * modules/openmp (License): Likewise.
        * modules/longlong (License): Change to LGPLv2+.
        * modules/va-args (License): Likewise.

        Trivial relicensing of macro-only modules, part 2.
        * modules/bison (License): Change to unlimited.
        * modules/perl (License): Likewise.

        Trivial relicensing of macro-only modules, part 1.
        * modules/link-follow (License): Change to unlimited.
        * modules/rmdir-errno (License): Likewise.
        * modules/unlink-busy (License): Likewise.
        * modules/uptime (License): Likewise.
        * modules/winsz-termios (License): Likewise.

>From 27e71f210d4582fe6d22d7df83acedc090697516 Mon Sep 17 00:00:00 2001
From: Bruno Haible <br...@clisp.org>
Date: Fri, 30 Aug 2024 17:59:13 +0200
Subject: [PATCH 1/3] Trivial relicensing of macro-only modules, part 1.

* modules/link-follow (License): Change to unlimited.
* modules/rmdir-errno (License): Likewise.
* modules/unlink-busy (License): Likewise.
* modules/uptime (License): Likewise.
* modules/winsz-termios (License): Likewise.
---
 ChangeLog             | 9 +++++++++
 modules/link-follow   | 2 +-
 modules/rmdir-errno   | 2 +-
 modules/unlink-busy   | 2 +-
 modules/uptime        | 2 +-
 modules/winsz-termios | 2 +-
 6 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index da6060458b..35d9f3f776 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2024-08-30  Bruno Haible  <br...@clisp.org>
+
+	Trivial relicensing of macro-only modules, part 1.
+	* modules/link-follow (License): Change to unlimited.
+	* modules/rmdir-errno (License): Likewise.
+	* modules/unlink-busy (License): Likewise.
+	* modules/uptime (License): Likewise.
+	* modules/winsz-termios (License): Likewise.
+
 2024-08-30  Bruno Haible  <br...@clisp.org>
 
 	doc: Correct statement about license of m4/*.m4 files.
diff --git a/modules/link-follow b/modules/link-follow
index c7fd48a5ef..478a32c61e 100644
--- a/modules/link-follow
+++ b/modules/link-follow
@@ -14,7 +14,7 @@ Makefile.am:
 Include:
 
 License:
-GPL
+unlimited
 
 Maintainer:
 Jim Meyering
diff --git a/modules/rmdir-errno b/modules/rmdir-errno
index ef02a95d38..d59442b9be 100644
--- a/modules/rmdir-errno
+++ b/modules/rmdir-errno
@@ -20,7 +20,7 @@ Makefile.am:
 Include:
 
 License:
-GPL
+unlimited
 
 Maintainer:
 Jim Meyering
diff --git a/modules/unlink-busy b/modules/unlink-busy
index 96d7b31495..21407afa48 100644
--- a/modules/unlink-busy
+++ b/modules/unlink-busy
@@ -14,7 +14,7 @@ Makefile.am:
 Include:
 
 License:
-GPL
+unlimited
 
 Maintainer:
 Jim Meyering
diff --git a/modules/uptime b/modules/uptime
index 8f184512bc..28969a99d8 100644
--- a/modules/uptime
+++ b/modules/uptime
@@ -21,7 +21,7 @@ Makefile.am:
 Include:
 
 License:
-GPL
+unlimited
 
 Maintainer:
 Jim Meyering
diff --git a/modules/winsz-termios b/modules/winsz-termios
index 6e7e38bfeb..da4ebec54e 100644
--- a/modules/winsz-termios
+++ b/modules/winsz-termios
@@ -15,7 +15,7 @@ Makefile.am:
 Include:
 
 License:
-GPL
+unlimited
 
 Maintainer:
 Jim Meyering
-- 
2.34.1

>From 40901e0f6a53bc925234bc786a2c00c91a4bb0ba Mon Sep 17 00:00:00 2001
From: Bruno Haible <br...@clisp.org>
Date: Fri, 30 Aug 2024 18:02:52 +0200
Subject: [PATCH 2/3] Trivial relicensing of macro-only modules, part 2.

* modules/bison (License): Change to unlimited.
* modules/perl (License): Likewise.
---
 ChangeLog     | 4 ++++
 modules/bison | 2 +-
 modules/perl  | 2 +-
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 35d9f3f776..76f2d5b105 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2024-08-30  Bruno Haible  <br...@clisp.org>
 
+	Trivial relicensing of macro-only modules, part 2.
+	* modules/bison (License): Change to unlimited.
+	* modules/perl (License): Likewise.
+
 	Trivial relicensing of macro-only modules, part 1.
 	* modules/link-follow (License): Change to unlimited.
 	* modules/rmdir-errno (License): Likewise.
diff --git a/modules/bison b/modules/bison
index 126c5ec0c5..99cb66b137 100644
--- a/modules/bison
+++ b/modules/bison
@@ -15,7 +15,7 @@ Makefile.am:
 Include:
 
 License:
-GPLed build tool
+unlimited
 
 Maintainer:
 all
diff --git a/modules/perl b/modules/perl
index 6a27919845..7fcde8660a 100644
--- a/modules/perl
+++ b/modules/perl
@@ -14,7 +14,7 @@ Makefile.am:
 Include:
 
 License:
-GPLed build tool
+unlimited
 
 Maintainer:
 Jim Meyering
-- 
2.34.1

>From 57a093df2a8603e984e73337aa8e074c8f5a0f72 Mon Sep 17 00:00:00 2001
From: Bruno Haible <br...@clisp.org>
Date: Fri, 30 Aug 2024 18:08:10 +0200
Subject: [PATCH 3/3] Trivial relicensing of macro-only modules, part 3.

* modules/config-h (License): Change to unlimited.
* modules/host-os (License): Likewise.
* modules/no-c++ (License): Likewise.
* modules/openmp (License): Likewise.
* modules/longlong (License): Change to LGPLv2+.
* modules/va-args (License): Likewise.
---
 ChangeLog        | 8 ++++++++
 modules/config-h | 2 +-
 modules/host-os  | 2 +-
 modules/longlong | 2 +-
 modules/no-c++   | 2 +-
 modules/openmp   | 2 +-
 modules/va-args  | 2 +-
 7 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 76f2d5b105..d1b9ea73d8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2024-08-30  Bruno Haible  <br...@clisp.org>
 
+	Trivial relicensing of macro-only modules, part 3.
+	* modules/config-h (License): Change to unlimited.
+	* modules/host-os (License): Likewise.
+	* modules/no-c++ (License): Likewise.
+	* modules/openmp (License): Likewise.
+	* modules/longlong (License): Change to LGPLv2+.
+	* modules/va-args (License): Likewise.
+
 	Trivial relicensing of macro-only modules, part 2.
 	* modules/bison (License): Change to unlimited.
 	* modules/perl (License): Likewise.
diff --git a/modules/config-h b/modules/config-h
index 0d21277525..c2d9b6f17d 100644
--- a/modules/config-h
+++ b/modules/config-h
@@ -18,7 +18,7 @@ Makefile.am:
 Include:
 
 License:
-LGPL
+unlimited
 
 Maintainer:
 Paul Eggert, Jim Meyering
diff --git a/modules/host-os b/modules/host-os
index fe4b25408c..3efdc374eb 100644
--- a/modules/host-os
+++ b/modules/host-os
@@ -14,7 +14,7 @@ Makefile.am:
 Include:
 
 License:
-LGPL
+unlimited
 
 Maintainer:
 Paul Eggert, Jim Meyering
diff --git a/modules/longlong b/modules/longlong
index 714e2f20be..1c00deba34 100644
--- a/modules/longlong
+++ b/modules/longlong
@@ -15,7 +15,7 @@ AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
 AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Ben Pfaff
diff --git a/modules/no-c++ b/modules/no-c++
index b6e9ee0e48..9e5fc5b830 100644
--- a/modules/no-c++
+++ b/modules/no-c++
@@ -14,7 +14,7 @@ Makefile.am:
 Include:
 
 License:
-LGPL
+unlimited
 
 Maintainer:
 all
diff --git a/modules/openmp b/modules/openmp
index 7c627ed649..bd1280d907 100644
--- a/modules/openmp
+++ b/modules/openmp
@@ -19,7 +19,7 @@ Link:
 $(OPENMP_CFLAGS)
 
 License:
-LGPL
+unlimited
 
 Maintainer:
 all
diff --git a/modules/va-args b/modules/va-args
index 79fb16328e..0eb7dda50d 100644
--- a/modules/va-args
+++ b/modules/va-args
@@ -14,7 +14,7 @@ Makefile.am:
 Include:
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Eric Blake
-- 
2.34.1

Reply via email to