These two TODO entries were pretty simple. One of the ChangeLog
entries listed to a test case Bruno wrote that worked for testing both
of them.

[collin@debian gnulib]$ gnulib-tool.py --create-testdir --dir=testdir-all 
--single-configure
module parse-datetime2 depends on a module with an incompatible license: gettime
module parse-datetime2 depends on a module with an incompatible license: 
nstrftime
module parse-datetime2 depends on a module with an incompatible license: 
parse-datetime
module parse-datetime2 depends on a module with an incompatible license: time_rz
module parse-datetime2 depends on a module with an incompatible license: 
timespec
module parse-datetime2 depends on a module with an incompatible license: tzset
module ucs4-utf16 depends on a module with an incompatible license: 
unistr/u16-uctomb
module utf16-ucs4 depends on a module with an incompatible license: 
unistr/u16-mbtouc
module utf16-ucs4-unsafe depends on a module with an incompatible license: 
unistr/u16-mbtouc-unsafe

The first patch fixes the parse-datetime2 warnings in the same way
that gnulib-tool does (ready for the release of parse-datetime3). The
second fixes the libunistring ones. Let me know if I missed anything.

Collin
From 3d99a44c67c1a7db5bfe210f46ede1eb0700e664 Mon Sep 17 00:00:00 2001
From: Collin Funk <collin.fu...@gmail.com>
Date: Mon, 26 Feb 2024 21:22:23 -0800
Subject: [PATCH 1/2] gnulib-tool.py: Follow gnulib-tool changes, part 29.

Follow gnulib-tool change
2021-03-06  Paul Eggert  <egg...@cs.ucla.edu>
parse-datetime2: fix licensing

* pygnulib/GLModuleSystem.py (GLModule.getLicense): Handle the special
licensing case for parse-datetime2 or any other module starting with
"parse-datetime". Update comment.
---
 ChangeLog                  | 10 ++++++++++
 gnulib-tool.py.TODO        | 14 --------------
 pygnulib/GLModuleSystem.py |  4 ++--
 3 files changed, 12 insertions(+), 16 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index d399841e18..7692ac13bc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2024-02-26  Collin Funk  <collin.fu...@gmail.com>
+
+	gnulib-tool.py: Follow gnulib-tool changes, part 29.
+	Follow gnulib-tool change
+	2021-03-06  Paul Eggert  <egg...@cs.ucla.edu>
+	parse-datetime2: fix licensing
+	* pygnulib/GLModuleSystem.py (GLModule.getLicense): Handle the special
+	licensing case for parse-datetime2 or any other module starting with
+	"parse-datetime". Update comment.
+
 2024-02-26  Bruno Haible  <br...@clisp.org>
 
 	gnulib-tool.py: Add more comments.
diff --git a/gnulib-tool.py.TODO b/gnulib-tool.py.TODO
index c72746941e..7be0e243e7 100644
--- a/gnulib-tool.py.TODO
+++ b/gnulib-tool.py.TODO
@@ -605,20 +605,6 @@ Date:   Mon Apr 26 23:31:29 2021 -0700
 
 --------------------------------------------------------------------------------
 
-commit 487b9551b63ef936a6be6df38d1c9484cd97810c
-Author: Paul Eggert <egg...@cs.ucla.edu>
-Date:   Sat Mar 6 08:23:48 2021 -0800
-
-    parse-datetime2: fix licensing
-
-    Problem reported by Bruno Haible in:
-    https://lists.gnu.org/r/bug-gnulib/2021-03/msg00017.html
-    * gnulib-tool (func_get_license): Treat parse-datetime2
-    (actually, anything starting with "parse-datetime")
-    like parse-datetime, as far as licenses go.
-
---------------------------------------------------------------------------------
-
 commit 0be855ee827bf7e9043eeb626c4fd847704be2e6
 Author: Bruno Haible <br...@clisp.org>
 Date:   Tue Dec 29 02:48:31 2020 +0100
diff --git a/pygnulib/GLModuleSystem.py b/pygnulib/GLModuleSystem.py
index c6f0eb15c7..787614d38c 100644
--- a/pygnulib/GLModuleSystem.py
+++ b/pygnulib/GLModuleSystem.py
@@ -665,8 +665,8 @@ class GLModule(object):
                         raise GLError(18, str(self))
                     else:  # if not self.config['errors']
                         sys.stderr.write('gnulib-tool: warning: module %s lacks a License\n' % str(self))
-            if str(self) == 'parse-datetime':
-                # This module is under a weaker license only for the purpose of some
+            if str(self).startswith('parse-datetime'):
+                # These modules are under a weaker license only for the purpose of some
                 # users who hand-edit it and don't use gnulib-tool. For the regular
                 # gnulib users they are under a stricter license.
                 result = 'GPL'
-- 
2.39.2

From 9411cafcac1cec3dd6d7e8d6476df27070d02269 Mon Sep 17 00:00:00 2001
From: Collin Funk <collin.fu...@gmail.com>
Date: Mon, 26 Feb 2024 21:46:30 -0800
Subject: [PATCH 2/2] gnulib-tool.py: Follow gnulib-tool changes, part 30.

Follow gnulib-tool change
2021-05-30  Bruno Haible  <br...@clisp.org>
Write 'LGPLv3+ or GPLv2+' instead of 'LGPLv3+ or GPLv2'.

* pygnulib/GLImport.py (GLImport.prepare): Change.
* pygnulib/GLTestDir.py (GLTestDir.execute): Likewise.
---
 ChangeLog             |  9 +++++++++
 gnulib-tool.py.TODO   | 11 -----------
 pygnulib/GLImport.py  |  4 ++--
 pygnulib/GLTestDir.py | 10 +++++-----
 4 files changed, 16 insertions(+), 18 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 7692ac13bc..fdf08ad934 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2024-02-26  Collin Funk  <collin.fu...@gmail.com>
+
+	gnulib-tool.py: Follow gnulib-tool changes, part 30.
+	Follow gnulib-tool change
+	2021-05-30  Bruno Haible  <br...@clisp.org>
+	Write 'LGPLv3+ or GPLv2+' instead of 'LGPLv3+ or GPLv2'.
+	* pygnulib/GLImport.py (GLImport.prepare): Change.
+	* pygnulib/GLTestDir.py (GLTestDir.execute): Likewise.
+
 2024-02-26  Collin Funk  <collin.fu...@gmail.com>
 
 	gnulib-tool.py: Follow gnulib-tool changes, part 29.
diff --git a/gnulib-tool.py.TODO b/gnulib-tool.py.TODO
index 7be0e243e7..5f4a134edf 100644
--- a/gnulib-tool.py.TODO
+++ b/gnulib-tool.py.TODO
@@ -581,17 +581,6 @@ Date:   Thu Jun 10 21:26:53 2021 +0200
 
 --------------------------------------------------------------------------------
 
-commit 6d1cba373a8387aa2131e9dc3e94954c5669ca52
-Author: Bruno Haible <br...@clisp.org>
-Date:   Sun May 30 14:37:06 2021 +0200
-
-    Write 'LGPLv3+ or GPLv2+' instead of 'LGPLv3+ or GPLv2'.
-
-    * modules/* (License): Change.
-    * gnulib-tool (func_import, func_create_testdir): Likewise.
-
---------------------------------------------------------------------------------
-
 commit 4b071c115309079528db7b60e8d2ffb22b129088
 Author: Paul Eggert <egg...@cs.ucla.edu>
 Date:   Mon Apr 26 23:31:29 2021 -0700
diff --git a/pygnulib/GLImport.py b/pygnulib/GLImport.py
index c69a33deb7..7f332ec760 100644
--- a/pygnulib/GLImport.py
+++ b/pygnulib/GLImport.py
@@ -858,8 +858,8 @@ AC_DEFUN([%s_FILE_LIST], [\n''' % macro_prefix
         compatibilities['all'] = ['GPLv2+ build tool', 'GPLed build tool',
                                   'public domain', 'unlimited',
                                   'unmodifiable license text']
-        compatibilities['3']        = ['LGPLv2+', 'LGPLv3+ or GPLv2', 'LGPLv3+', 'LGPL']
-        compatibilities['3orGPLv2'] = ['LGPLv2+', 'LGPLv3+ or GPLv2']
+        compatibilities['3']        = ['LGPLv2+', 'LGPLv3+ or GPLv2+', 'LGPLv3+', 'LGPL']
+        compatibilities['3orGPLv2'] = ['LGPLv2+', 'LGPLv3+ or GPLv2+']
         compatibilities['2']        = ['LGPLv2+']
         if lgpl:
             for module in main_modules:
diff --git a/pygnulib/GLTestDir.py b/pygnulib/GLTestDir.py
index 3bb99c59cc..bc0b153304 100644
--- a/pygnulib/GLTestDir.py
+++ b/pygnulib/GLTestDir.py
@@ -204,16 +204,16 @@ class GLTestDir(object):
                                        'public domain', 'unlimited', 'unmodifiable license text']:
                         incompatible = False
                         if requested_licence == 'GPLv3+' or requested_licence == 'GPL':
-                            if license not in ['LGPLv2+', 'LGPLv3+ or GPLv2', 'LGPLv3+', 'LGPL', 'GPLv2+', 'GPLv3+', 'GPL']:
+                            if license not in ['LGPLv2+', 'LGPLv3+ or GPLv2+', 'LGPLv3+', 'LGPL', 'GPLv2+', 'GPLv3+', 'GPL']:
                                 incompatible = True
                         elif requested_licence == 'GPLv2+':
-                            if license not in ['LGPLv2+', 'LGPLv3+ or GPLv2', 'GPLv2+']:
+                            if license not in ['LGPLv2+', 'LGPLv3+ or GPLv2+', 'GPLv2+']:
                                 incompatible = True
                         elif requested_licence == 'LGPLv3+' or requested_licence == 'LGPL':
-                            if license not in ['LGPLv2+', 'LGPLv3+ or GPLv2', 'LGPLv3+', 'LGPL']:
+                            if license not in ['LGPLv2+', 'LGPLv3+ or GPLv2+', 'LGPLv3+', 'LGPL']:
                                 incompatible = True
-                        elif requested_licence == 'LGPLv3+ or GPLv2':
-                            if license not in ['LGPLv2+', 'LGPLv3+ or GPLv2']:
+                        elif requested_licence == 'LGPLv3+ or GPLv2+':
+                            if license not in ['LGPLv2+', 'LGPLv3+ or GPLv2+']:
                                 incompatible = True
                         elif requested_licence == 'LGPLv2+':
                             if license not in ['LGPLv2+']:
-- 
2.39.2

Reply via email to