gnulib-tool.py


Log

Author Commit Date CI Message
Simon Josefsson 32a72f45 2023-01-01T01:14:21 maint: run 'make update-copyright'
Bruno Haible 62fa8fc7 2022-08-10T00:51:59 gnulib-tool.py: Finish implementing option --conditional-dependencies. * gnulib-tool.py (main) Accept options --conditional-dependencies, --no-conditional-dependencies. * pygnulib/GLModuleSystem.py (GLModuleTable.addConditional): Use str(module), not module, as key. Fix logic bug. (GLModuleTable.getCondition): Simplify. (GLModuleTable.transitive_closure): Show a warning when there are duplicate dependencies. Fix logic bug. (GLModuleTable.transitive_closure_separately): Simplify. (GLModuleTable.add_dummy): Ignore tests modules. Cope with multiple lib_SOURCES augmentation lines. Cope with comments at the end of a lib_SOURCES augmentation line. Add the dummy module at the end of the modules list. * pygnulib/GLTestDir.py (GLTestDir.execute): Remove the code that forces the dummy module to the end of the list. * pygnulib/GLEmiter.py (GLEmiter.autoconfSnippets): Add code to terminate the shell functions. Add code for the dependencies from the unconditional to the conditional modules. Don't emit AM_CONDITIONAL for unconditional modules.
Bruno Haible a7bcb910 2022-08-08T00:46:13 gnulib-tool.py: Finish implementing option --extract-test-module. * gnulib-tool.py (main): Accept option --extract-tests-module.
Bruno Haible 6d29a151 2022-08-08T00:43:25 gnulib-tool.py: Fix handling of nonexistent module names in --extract-*. * gnulib-tool.py (main): To test whether a module exists, just call GLModuleSystem.find and test its return value.
Bruno Haible 276c20ee 2022-08-08T00:02:59 gnulib-tool.py: Fix --extract-dependencies result. * pygnulib/GLModuleSystem.py (GLModule.getDependencies): Return a snippet, not a list. Implement dependency of ${module}-tests on ${module}. (GLModule.getDependenciesWithoutConditions, GLModule.getDependenciesWithConditions): New methods. (GLModuleTable.transitive_closure): Call getDependenciesWithConditions. * pygnulib/GLEmiter.py (GLEmiter.autoconfSnippets): Call getDependenciesWithoutConditions. * gnulib-tool.py (main) [--extract-dependencies]: Update.
Bruno Haible 81b8c4d5 2022-08-07T22:53:32 gnulib-tool.py: Fix section extraction from module descriptions. The code with self.content.split(section)[-1] was broken because it recognizes an indented section label. Similar code with ('\n' + self.content).split('\n' + section)[-1] would still be broken because it recognizes an indented section label in the first line of the file. The code with section_label_regex was broken because sometimes it returns the second-to-last section with the given label, not the last one. Also, whitespace after the colon was not ignored. * pygnulib/GLModuleSystem.py (GLModule.__init__): Dissect the module description's contents immediately, once only, in a reliable way. (GLModule.getDescription, GLModule.getComment): Simplify. (GLModule.getStatus): Simplify. Return a string. (GLModule.getStatuses): New function. Return a list. (GLModule.getNotice, GLModule.getApplicability, GLModule.getFiles, GLModule.getDependencies, GLModules.getAutoconfSnippet_Early, GLModules.getAutoconfSnippet, GLModule.getAutomakeSnippet_Conditional, GLModule.getInclude, GLModule.getLink, GLModule.getLicense_Raw): Simplify. (GLModule.getLicense): Remove whitespace after calling getLicense_Raw. (GLModule.getMaintainer): Simplify. (GLModuleTable.transitive_closure): Call getStatuses() instead of getStatus(). * pygnulib/GLEmiter.py: Likewise. * gnulib-tool.py (main): For --extract-description, --extract-comment, --extract-status, --extract-notice, --extract-autoconf-snippet, --extract-automake-snippet, --extract-include-directive, --extract-link-directive, --extract-maintainer, don't add an extra newline after the snippet.
Bruno Haible 72ac0235 2022-08-07T17:02:21 gnulib-tool.py: Implement option --find. * pygnulib/GLModuleSystem.py (GLModuleSystem.file_is_module): New method. (GLModuleSystem.list): Filter the listing in memory; don't use a 'sed' subprocess. * gnulib-tool.py (main): Handle mode 'find'.
Bruno Haible 9812027a 2022-08-06T23:01:36 gnulib-tool.py: Finish implementing options --vc-files, --no-vc-files. * gnulib-tool.py (main): Accept options --vc-files, --no-vc-files. * pygnulib/GLImport.py (GLImport.__init__): Correct parsing of gl_VC_FILES directive. (GLImport.gnulib_cache): Don't treat the value False like None. (GLImport.execute): Skip the .gitignore file manipulations if vc_files is False.
Bruno Haible 860df12d 2022-08-06T21:54:04 gnulib-tool.py: Finish implementing option --witness-c-macro. * gnulib-tool.py (main): Accept option --witness-c-macro. * pygnulib/GLConfig.py (GLConfig.__init__): Remove wrong type check of witness_c_macro argument.
Bruno Haible 6ef9c333 2022-08-06T03:18:32 gnulib-tool.py: Don't initialize local variables too early. * gnulib-tool.py (main): Initialize each local variable in one place. I prefer to have pylint tell me about uninitialized variables than to get the value None at runtime.
Bruno Haible b5850cf2 2022-08-06T03:06:51 gnulib-tool.py: Finish implementing option --po-domain. * gnulib-tool.py (main): Accept option --po-domain. * pygnulib/GLEmiter.py (GLEmiter.po_POTFILES_in): Fix variable reference. * pygnulib/GLImport.py (GLImport.execute): Don't delete Makefile.in.in from the gnulib directory. Don't require a shell when invoking wget. After invoking wget, restore the current directory.
Bruno Haible bfc5329c 2022-08-06T02:10:32 gnulib-tool.py: Finish implementing option --macro-prefix. * gnulib-tool.py (main): Accept option --macro-prefix.
Bruno Haible 0108a901 2022-08-06T01:47:34 gnulib-tool.py: Refactor --makefile-name option. * gnulib-tool.py (main): Handle option --makefile-name like all other string-valued options.
Bruno Haible 13af1a0d 2022-08-06T00:14:02 gnulib-tool.py: Implement option --no-libtool. * gnulib-tool.py (main): Accept option --no-libtool.
Bruno Haible ad534101 2022-08-05T23:15:39 gnulib-tool.py: Refactor --makefile-name option. * gnulib-tool.py (main): Rename variable 'makefile' to 'makefile_name'. * pygnulib/GLConfig.py: Rename attribute 'makefile' to 'makefile_name'. * pygnulib/GLMakefileTable.py: Update. * pygnulib/GLEmiter.py: Likewise. * pygnulib/GLImport.py: Likewise. * pygnulib/GLFileSystem.py (GLFileAssistant): Remove unused assignment.
Bruno Haible 45b39787 2022-08-05T17:13:20 gnulib-tool.py: Fix 'Unused import' warnings. * gnulib-tool.py: Remove unused imports. * pygnulib/*.py: Likewise.
Bruno Haible 1f0e03e5 2022-08-05T14:17:35 gnulib-tool.py: Make option --version work. * pygnulib/constants.py (__copyright__): Bump copyright year. * pygnulib/GLInfo.py (GLInfo.authors): Add a comma after the second-to-last author. (GLInfo.copyright): Show only the last modification year. (GLInfo.date): Check whether git and GNU date are available. Use 'git log ChangeLog', not 'git log'. Run 'git log' in the gnulib directory, not in the current directory. Search for 'Date:' only at the beginning of a line. As a fallback, look at the first ChangeLog entry. (GLInfo.version): Check whether git is available. Run git-version-gen in the gnulib directory, not in the current directory. Replace '-dirty' with '-modified'. As a fallback, return the empty string. * gnulib-tool.py (main) [--version]: Add a space before the version.
Bruno Haible 276725c4 2022-08-05T04:05:04 gnulib-tool.py: Simplify. * pygnulib/constants.py (compiler): Remove function. * gnulib-tool.py: Use re.compile directly instead. * pygnulib/*.py: Likewise.
Bruno Haible 362f779b 2022-08-04T21:53:51 gnulib-tool.py: Coding style: Revisit line breaks. * gnulib-tool.py: Avoid line breaks at arbitrary points inside expressions. Use line breaks to clarify [... for ...] iterations. * pygnulib/*.py: Likewise.
Bruno Haible af4eb877 2022-08-04T18:35:49 gnulib-tool.py: Implement options --cache-modules, --no-cache-modules. * gnulib-tool.py (main): Accept options --cache-modules, --no-cache-modules. * pygnulib/GLConfig.py: Remove modcache property and constructor argument. * pygnulib/GLInfo.py (GLInfo.usage): Don't document these no-op options.
Bruno Haible 2a33db96 2022-08-04T18:26:08 gnulib-tool.py: Use mainstream/GNU coding style. * gnulib-tool.py: Break lines before the % operator, not after. * pygnulib/*.py: Likewise. Avoid line breaks when the resulting lines are not too long.
Bruno Haible f04b5c3a 2022-08-03T22:42:25 gnulib-tool.py: Implement option --single-configure. * gnulib-tool.py (main): Accept option --single-configure. Pass its value to the GLConfig constructor. * pygnulib/GLTestDir.py (GLTestDir.execute): Remove debugging output.
Bruno Haible de028fc3 2022-08-03T22:29:52 gnulib-tool.py: Implement options --without-c++-tests etc. * gnulib-tool.py (main): Accept options --without-c++-tests, --without-longrunning-tests, --without-privileged-tests, --without-unportable-tests. Improve error message for --copy-file with invalid number of arguments. Check for invalid options given in --import, --add-import, --remove-import, --update modes. Pass both sets of test categories to the GLConfig constructor. * pygnulib/GLConfig.py (GLConfig.__init__): Accept incl_test_categories and excl_test_categories instead of testflags. (checkInclTestCategory): Renamed from checkTestFlag. (enableInclTestCategory): Renamed from enableTestFlag. (disableInclTestCategory): Renamed from disableTestFlag. (getInclTestCategories): Renamed from getTestFlags. (setInclTestCategories): Renamed from setTestFlags. (resetInclTestCategories): Renamed from resetTestFlags. (setInclTestCategory, checkExclTestCategory, enableExclTestCategory, disableExclTestCategory, getExclTestCategories, setExclTestCategories, resetExclTestCategories): New methods. * pygnulib/GLModuleSystem.py (GLModuleTable.__init__): Accept two booleans as second and third constructor arguments. (transitive_closure): Correct the determination of whether to include each module, depending on the with-* and without-* options. (transitive_closure_separately): Update. * pygnulib/GLMakefileTable.py: Update. * pygnulib/GLImport.py (__init__, actioncmd, gnulib_cache, execute): Update. * pygnulib/GLTestDir.py (GLTestDir.__init__, GLTestDir.execute, GLMegaTestDir.__init__): Update.
Bruno Haible 1e57719d 2022-08-03T18:00:13 gnulib-tool.py: Implement option --without-tests. * gnulib-tool.py (main): Accept option --without-tests.
Bruno Haible f531502a 2022-08-03T17:55:24 gnulib-tool.py: Fix broken 'for' loop. * gnulib-tool.py (main): Canonicalize inctests before creating the GLConfig. Rewrite a broken 'for' loop. * pygnulib/GLConfig.py (GLConfig.setTestFlags): Remove unused statement.
Bruno Haible e2d15e5c 2022-08-03T16:49:15 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+.
Bruno Haible 65301e07 2022-08-03T15:51:35 gnulib-tool.py: Fix unjustified "incompatible license" warnings. * pygnulib/GLTestDir.py (GLTestDir.execute): Don't emit a warning when the dependency module has a license such as "public domain" or "unlimited".
Bruno Haible dbc9a4b3 2022-08-03T11:27:21 gnulib-tool.py: Avoid errors when writing to a VFAT file system. * pygnulib/constants.py (copyfile, copyfile2): New functions. * gnulib-tool.py: Use them instead of shutil. * pygnulib/*.py: Likewise.
Bruno Haible 6b79ce37 2022-07-31T23:02:58 gnulib-tool.py: Improve some error messages. * gnulib-tool.py (main): Write "*** Stop." instead of "*** Exit.". (__main__): Print an error message for GLError 5, 13, 14, 15, 16, 17, 18. * pygnulib/GLError.py (GLError.__repr__): Compute one error message, not 19.
Bruno Haible e3d8f648 2022-07-31T21:08:55 gnulib-tool.py: Implement options --symlink and --local-symlink. * gnulib-tool.py (main): Handle options --symlink and --local-symlink. * pygnulib/constants.py (link_if_changed): Ignore FileNotFoundError from os.remove call.
Bruno Haible 9d5acb8d 2022-07-31T20:02:40 gnulib-tool.py: Make --copy-file work. * gnulib-tool.py (main) [copy-file]: Fix reference to uninitialized variable. Fix error handling of os.makedirs. Pass the destdir to the GLFileAssistant.
Bruno Haible 7d155923 2022-07-31T18:56:05 gnulib-tool.py: Allow module arguments to occur at any position. * gnulib-tool.py (main): Collect the non-option arguments in a single list, regardless of their position. Use parse_known_args instead of parse_args, and give an error message about unknown options ourselves. * gnulib-tool: Fix typo in error message.
Bruno Haible 1639b859 2022-07-31T18:54:22 gnulib-tool.py: Make --test behaviour more similar to gnulib-tool. * gnulib-tool.py (main) [test]: Remove space from the testdir name.
Bruno Haible ed9b3555 2022-07-31T18:51:17 gnulib-tool.py: Make option processing more similar to gnulib-tool. * gnulib-tool.py (main): Allow --add-import and --remove-import with 0 modules.
Bruno Haible 45802545 2022-07-31T18:48:25 gnulib-tool.py: Improve compliance with GNU standards. * gnulib-tool.py (main): Handle --help and --version before testing for conflicting modes.
Bruno Haible 07637f97 2022-07-31T18:44:56 gnulib-tool.py: Emit error message when conflicting modes are specified. * gnulib-tool.py (main): Fix test of conflicting modes. (Some options produce a value of [], and as a condition, [] evaluates to False.)
Bruno Haible db741870 2022-07-31T18:42:31 gnulib-tool.py: Remove most short options. * gnulib-tool.py (main): Reorder the list of options. Remove most short options, for consistency with gnulib-tool.
Bruno Haible 6bdf668e 2022-07-31T18:39:19 gnulib-tool.py: Follow gnulib-tool changes, part 19. Follow gnulib-tool changes 2015-12-09 Pavel Raiskup <praiskup@redhat.com> gnulib-tool: allow multiple --local-dir usage 2019-02-14 Bruno Haible <bruno@clisp.org> gnulib-tool: Improve handling of multiple --local-dir options. * gnulib-tool (func_reconstruct_cached_dir): When the argument is absolute, return it unmodified. (func_compute_relative_local_gnulib_path): Renamed from func_count_relative_local_gnulib_path. Add comment. * gnulib-tool.py: Accept multiple --local-dir options and collect the values into localpath. * pygnulib/GLConfig.py: Take a localpath argument instead of a localdir argument. (getLocalDir, setLocalDir, resetLocalDir): Remove methods. (getLocalPath, setLocalPath, resetLocalPath): New methods. * pygnulib/GLFileSystem.py (CopyAction): New class. (GLFileSystem.lookup): Consider all dirs in localpath. (GLFileSystem.shouldLink): New method. (GLFileAssistant): Use shouldLink. * pygnulib/GLModuleSystem.py (GLModuleSystem.exists): Iterate over all dirs in localpath. (GLModuleSystem.list): Likewise. * pygnulib/GLEmiter.py: Update. * pygnulib/GLImport.py (GLImport.__init__): Put the argument of gl_LOCAL_DIR into localpath, not localdir. (GLImport.actioncmd): Consider all dirs in localpath. (GLImport.relative_to_destdir, GLImport.relative_to_currdir): New methods. (GLImport.gnulib_cache): Combine all dirs in localpath. Use self.relative_to_destdir. * pygnulib/GLTestDir.py (GLTestDir.execute): Use shouldLink.
Bruno Haible dd7b332f 2022-07-30T13:51:36 gnulib-tool.py: Clean up imports. * gnulib-tool.py: Remove unused constants. * pygnulib/*.py: Likewise.
Bruno Haible 0a624ee7 2022-07-30T13:29:26 gnulib-tool.py: Assume Python 3. * gnulib-tool.py: Don't allow 'bytes' as an alternative to 'str'. * pygnulib/*.py: Likewise.
Bruno Haible d2abfb90 2022-07-30T11:45:36 gnulib-tool.py: Assume Python 3. * gnulib-tool.py: Don't set PYTHON3, string. Use str instead of string. * pygnulib/*.py: Likewise.
Bruno Haible f00ef30e 2022-07-29T16:35:28 gnulib-tool.py: Use mainstream coding style. * gnulib-tool.py: Clarify the coding style. Fix some pycodestyle warnings. * pygnulib/constants.py: Likewise. * pygnulib/GLEmiter.py: Likewise. * pygnulib/GLImport.py: Likewise. * pygnulib/GLMakefileTable.py: Likewise.
Bruno Haible e501167f 2022-07-29T11:09:00 gnulib-tool.py: Fix error in Ubuntu 22.04. * gnulib-tool.py: Search for python3 in $PATH.
Bernhard Voelker 87e6634b 2022-01-04T00:16:50 license: fix GPLv3 texts to use a comma instead of semicolon. See: https://www.gnu.org/licenses/gpl-3.0.html#howto Run: $ git grep -l 'Foundation; either version 3' \ | xargs sed -i '/Foundation; either version 3/ s/n; e/n, e/' * All files using GPLv3: Adjust via the above command.
Paul Eggert eec12c00 2022-01-01T09:43:19 maint: run 'make update-copyright'
Paul Eggert 4b948321 2021-01-01T07:28:52 maint: run 'make update-copyright'
Paul Eggert 2cdc1baf 2020-01-01T00:00:18 maint: Run 'make update-copyright'
Paul Eggert e6633650 2019-01-01T00:25:11 maint: Run 'make update-copyright'
Tim Rühsen 7729b926 2018-06-13T12:15:37 gnulib-tool.py: import mktemp * gnulib-tool.py: Import mktemp from tempfile Signed-off-by: Dmitry Selyutin <ghostmansd@gmail.com>
Paul Eggert 281b825e 2018-01-01T00:57:25 maint: Run 'make update-copyright'
Paul Eggert ca35d468 2017-09-13T00:48:18 all: prefer https: URLs
Bruno Haible f0e4c4b6 2017-09-09T00:32:50 gnulib-tool.py: follow gnulib-tool changes, part 3 Follow gnulib-tool change 2012-08-26 Bruno Haible <bruno@clisp.org> gnulib-tool: Remove no-op option --no-changelog. * pygnulib/constants.py: Remove FILES dictionary. * pygnulib/*: Update.
Bruno Haible 6095a05f 2017-09-09T00:38:56 gnulib-tool.py: Bump copyright years up to 2017.
Bruno Haible 5cb51bde 2017-09-08T23:45:39 gnulib-tool.py: Accept option --dir instead of --destdir.
Dmitry Selyutin 21c52a82 2017-09-08T18:34:58 [pygnulib] autopep8 (fixing indentation, style, etc.)
Dmitry Selyutin 4be624be 2017-09-05T23:33:50 gnulib-tool.py: fix exception handling
Dmitry Selyutin 3df66605 2017-09-05T10:04:18 gnulib-tool.py: fix errors on building wget2; use UTF-8 in subprocess
Dmitry Selyutin 02a1f93e 2017-08-20T11:17:58 [pygnulib] initial merge (including some small bug fixes)