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