diff options
author | Bruno Haible <bruno@clisp.org> | 2022-08-03 16:49:15 +0200 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2022-08-03 16:50:03 +0200 |
commit | e2d15e5c893e42b32a840a6641d5fa8cef7b4f7c (patch) | |
tree | 1c11d2131d4dec895679058fd729ec8d6f8856e3 /pygnulib | |
parent | 65301e0739f8c86cf96403d6426551df3c3f3ac3 (diff) | |
download | gnulib-e2d15e5c893e42b32a840a6641d5fa8cef7b4f7c.tar.gz |
gnulib-tool.py: Follow gnulib-tool changes, part 23.
Follow gnulib-tool changes
2016-11-11 Bruno Haible <bruno@clisp.org>
gnulib-tool: Support for the dual "LGPLv3+ or GPLv2" license.
2016-12-02 Nikos Mavrogiannopoulos <nmav@gnutls.org>
gnulib-tool (func_import): Adhere to the license guideline ...
2016-12-02 Daiki Ueno <ueno@gnu.org>
gnulib-tool (func_import): Relax the regex ...
* gnulib-tool.py: For --lgpl, accept value 3orGPLv2.
* pygnulib/GLInfo.py (GLInfo.usage): Update.
* pygnulib/GLConfig.py (GLConfig.setLGPL): Update argument check.
* pygnulib/GLImport.py (GLImport.__init__, GLImport.gnulib_cache):
Update gl_LGPL handling.
(GLImport.prepare): Update license compatibility checks and license
header rewriting.
* pygnulib/GLTestDir.py (GLTestDir.execute): Update license
compatibility checks. Handle also the licenses GPLv3+, GPL, LGPLv3+.
Diffstat (limited to 'pygnulib')
-rw-r--r-- | pygnulib/GLConfig.py | 12 | ||||
-rw-r--r-- | pygnulib/GLImport.py | 52 | ||||
-rw-r--r-- | pygnulib/GLInfo.py | 3 | ||||
-rw-r--r-- | pygnulib/GLTestDir.py | 16 |
4 files changed, 54 insertions, 29 deletions
diff --git a/pygnulib/GLConfig.py b/pygnulib/GLConfig.py index dc0cce3490..d126b35dbe 100644 --- a/pygnulib/GLConfig.py +++ b/pygnulib/GLConfig.py @@ -784,21 +784,21 @@ class GLConfig(object): # Define lgpl methods. def getLGPL(self): '''Check for abort if modules aren't available under the LGPL. - Default value is False, which means that lgpl is disabled.''' + Default value is None, which means that lgpl is disabled.''' return self.table['lgpl'] def setLGPL(self, lgpl): '''Abort if modules aren't available under the LGPL. - Default value is False, which means that lgpl is disabled.''' - if (type(lgpl) is int and 2 <= lgpl <= 3) or type(lgpl) is bool: + Default value is None, which means that lgpl is disabled.''' + if lgpl in [None, True, '2', '3orGPLv2', '3']: self.table['lgpl'] = lgpl - else: # if lgpl is not False, 2 or 3 + else: raise TypeError('invalid LGPL version: %s' % repr(lgpl)) def resetLGPL(self): '''Disable abort if modules aren't available under the LGPL. - Default value is False, which means that lgpl is disabled.''' - self.table['lgpl'] = False + Default value is None, which means that lgpl is disabled.''' + self.table['lgpl'] = None def getIncludeGuardPrefix(self): '''Return include_guard_prefix to use inside GLEmiter class.''' diff --git a/pygnulib/GLImport.py b/pygnulib/GLImport.py index 046cf4745d..04b3fddaab 100644 --- a/pygnulib/GLImport.py +++ b/pygnulib/GLImport.py @@ -175,10 +175,10 @@ class GLImport(object): tempdict = dict(zip(keys, values)) if 'gl_LGPL' in tempdict: lgpl = cleaner(tempdict['gl_LGPL']) - if lgpl.isdecimal(): - self.cache.setLGPL(int(self.cache['lgpl'])) + if lgpl != '': + self.cache.setLGPL(lgpl) else: # if 'gl_LGPL' not in tempdict - self.cache.setLGPL(False) + self.cache.setLGPL(None) if tempdict['gl_LIB']: self.cache.setLibName(cleaner(tempdict['gl_LIB'])) if tempdict['gl_LOCAL_DIR']: @@ -533,11 +533,11 @@ class GLImport(object): if self.config.checkTestFlag(TESTS['tests']): emit += 'gl_WITH_TESTS\n' emit += 'gl_LIB([%s])\n' % libname - if lgpl != False: + if lgpl != None: if lgpl == True: emit += 'gl_LGPL\n' else: # if lgpl != True - emit += 'gl_LGPL([%d])\n' % lgpl + emit += 'gl_LGPL([%s])\n' % lgpl emit += 'gl_MAKEFILE_NAME([%s])\n' % makefile if conddeps: emit += 'gl_CONDITIONAL_DEPENDENCIES\n' @@ -849,17 +849,18 @@ AC_DEFUN([%s_FILE_LIST], [\n''' % macro_prefix compatibilities['all'] = ['GPLv2+ build tool', 'GPLed build tool', 'public domain', 'unlimited', 'unmodifiable license text'] - compatibilities[3] = ['LGPL', 'LGPLv2+', 'LGPLv3+'] - compatibilities[2] = ['LGPLv2+'] + compatibilities['3'] = ['LGPLv2+', 'LGPLv3+ or GPLv2', 'LGPLv3+', 'LGPL'] + compatibilities['3orGPLv2'] = ['LGPLv2+', 'LGPLv3+ or GPLv2'] + compatibilities['2'] = ['LGPLv2+'] if lgpl: for module in main_modules: license = module.getLicense() if license not in compatibilities['all']: - if lgpl == 3 or lgpl == True: - if license not in compatibilities[3]: + if lgpl == True: + if license not in compatibilities['3']: listing.append(tuple([str(module), license])) - elif lgpl == 2: - if license not in compatibilities[2]: + else: + if license not in compatibilities[lgpl]: listing.append(tuple([str(module), license])) if listing: raise GLError(11, listing) @@ -889,18 +890,35 @@ AC_DEFUN([%s_FILE_LIST], [\n''' % macro_prefix sed_transform_main_lib_file = sed_transform_lib_file if copyrights: if lgpl: # if lgpl is enabled - if lgpl == 3: + if lgpl == True or lgpl == '3': sed_transform_main_lib_file += ''' s/GNU General/GNU Lesser General/g s/General Public License/Lesser General Public License/g - s/Lesser Lesser General Public License/Lesser General Public''' \ - + ' License/g' - elif lgpl == 2: + s/Lesser Lesser General Public License/Lesser General Public License/g''' + elif lgpl == '3orGPLv2': + sed_transform_main_lib_file += ''' + /^ *This program is free software/i\\ + This program is free software: you can redistribute it and\\/or\\ + modify it under the terms of either:\\ +\\ + * the GNU Lesser General Public License as published by the Free\\ + Software Foundation; either version 3 of the License, or (at your\\ + option) any later version.\\ +\\ + or\\ +\\ + * 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.\\ +\\ + or both in parallel, as here. + /^ *This program is free software/,/^$/d + ''' + elif lgpl == '2': sed_transform_main_lib_file += ''' s/GNU General/GNU Lesser General/g s/General Public License/Lesser General Public License/g - s/Lesser Lesser General Public License/Lesser General Public''' \ - + '''License/g + s/Lesser Lesser General Public License/Lesser General Public License/g s/version [23]\\([ ,]\\)/version 2.1\\1/g''' else: # if lgpl is disabled sed_transform_main_lib_file += lgpl2gpl diff --git a/pygnulib/GLInfo.py b/pygnulib/GLInfo.py index 79c1ba0cf1..720e357c90 100644 --- a/pygnulib/GLInfo.py +++ b/pygnulib/GLInfo.py @@ -251,7 +251,8 @@ Options for --import, --add/remove-import: placed (default \"tests\"). --aux-dir=DIRECTORY Directory relative to --dir where auxiliary build tools are placed (default comes from configure.ac). - --lgpl[=2|=3] Abort if modules aren't available under the LGPL. + --lgpl[=2|=3orGPLv2|=3] + Abort if modules aren't available under the LGPL. Also modify license template from GPL to LGPL. The version number of the LGPL can be specified; the default is currently LGPLv3. diff --git a/pygnulib/GLTestDir.py b/pygnulib/GLTestDir.py index 83555faad7..29c3010ce0 100644 --- a/pygnulib/GLTestDir.py +++ b/pygnulib/GLTestDir.py @@ -195,13 +195,19 @@ class GLTestDir(object): if license not in ['GPLv2+ build tool', 'GPLed build tool', 'public domain', 'unlimited', 'unmodifiable license text']: incompatible = False - if requested_licence == 'GPLv2+': - if license not in ['GPLv2+', 'LGPLv2+']: + if requested_licence == 'GPLv3+' or requested_licence == 'GPL': + if license not in ['LGPLv2+', 'LGPLv3+ or GPLv2', 'LGPLv3+', 'LGPL', 'GPLv2+', 'GPLv3+', 'GPL']: incompatible = True - elif requested_licence in ['LGPL']: - if license not in ['LGPL', 'LGPLv2+']: + elif requested_licence == 'GPLv2+': + if license not in ['LGPLv2+', 'LGPLv3+ or GPLv2', 'GPLv2+']: incompatible = True - elif requested_licence in ['LGPLv2+']: + elif requested_licence == 'LGPLv3+' or requested_licence == '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']: + incompatible = True + elif requested_licence == 'LGPLv2+': if license not in ['LGPLv2+']: incompatible = True if incompatible: |