* gnulib-tool (func_usage): Document options --hardlink,
--local-hardlink, --more-hardlinks.
(func_symlink): Renamed from func_ln.
(func_symlink_if_changed): Renamed from func_ln_if_changed.
(func_hardlink): New function.
(copymode, lcopymode): New variables.
(symbolic, lsymbolic): Remove variables.
(Options): Implement options --hardlink, --local-hardlink,
--more-hardlinks.
(func_should_link): Renamed from func_should_symlink. Set copyaction.
(func_add_file, func_update_file): Update invocation of
func_should_link. Invoke func_hardlink when appropriate.
(func_import): Update comments.
(func_create_testdir): Update invocation of func_should_link. Invoke
func_hardlink when appropriate.
Finally, invoke 'git update-index --refresh' to mitigate the effects of
the hard links on git.
* gnulib-tool (func_emit_tests_Makefile_am): Emit initialization of
EXTRA_PROGRAMS.
* tests/test-verify.sh: Build test-verify-try.o, not test-verify.o.
* tests/test-verify-try.c: New file.
* modules/verify-tests (Files): Add it.
(EXTRA_PROGRAMS): Add test-verify-try.
(MOSTLYCLEANFILES): Update accordingly.
Reported by Adam James Stewart <ajstewart@anl.gov>.
* gnulib-tool (func_modules_transitive_closure_separately): If
testsrelated_modules ends up with no "real" modules, aside from
modules with applicability 'all', set it to empty.
* gnulib-tool (func_get_automake_snippet_unconditional): To be able to
not distribute top/README-release by default, don't distribute files
from top/ unconditionally.
* modules/gnumakefile (Makefile.am): Distribute top/GNUmakefile.
* modules/maintainer-makefile (Makefile.am): Distribute top/maint.mk.
* gnulib-tool (func_emit_lib_Makefile_am):
Remove useless code that was a blind alley during implementation.
Problem reported by Thien-Thi Nguyen in:
http://lists.gnu.org/archive/html/bug-gnulib/2017-03/msg00029.html
(func_import): Note the "--gnu-make" option in the output comment.
This is for applications like GNU Emacs that use GNU Make
features instead of Automake.
* doc/gnulib-tool.texi (Initial import): Mention --gnu-make.
* doc/gnulib.texi (Unit test modules, Build robot for gnulib):
Do not assume Automake.
* gnulib-tool (func_determine_path_separator)
(func_modules_transitive_closure, func_update_file)
(func_emit_lib_Makefile_am, func_emit_tests_Makefile_am)
(func_import): Add support for --gnu-make.
* build-aux/gendocs.sh (version):
* doc/gendocs_template:
* doc/gendocs_template_min:
* doc/gnulib.texi:
* lib/version-etc.c (COPYRIGHT_YEAR):
Update copyright dates by hand in templates and the like.
* all files: Run 'make update-copyright'.
* gnulib-tool (--lgpl): Accept value 3orGPLv2.
(func_import): Extend determination of license_incompatibilities.
(func_create_testdir): Extend table of license compatibility. Handle
also the licenses GPLv3+, GPL, LGPLv3+.
* build-aux/gendocs.sh (version):
* doc/gendocs_template:
* doc/gendocs_template_min:
* doc/gnulib.texi:
* lib/version-etc.c (COPYRIGHT_YEAR):
Update copyright dates by hand in templates and the like.
* all files: Run 'make update-copyright'.
* gnulib-tool: Use --local-dir to construct compound
$local_gnulib_path path instead of $local_gnulib_dir. Determine
PATH_SEPARATOR early.
(local_gnulib_dir): Rename into $local_gnulib_path everywhere.
(func_gnulib_dir): Cut out PATH_SEPARATOR detection code into
func_determine_path_separator because that needs to be detected
earlier now.
(func_determine_path_separator): New function.
(func_path_foreach, func_path_foreach_inner): New functions.
(func_path_prepend, func_path_append): Likewise.
(func_lookup_local_file, func_lookup_local_file_cb): Likewise.
(func_lookup_file, func_all_modules): Use new functions to work
with local_gnulib_path.
(func_modules_in_dir, func_exists_module): New callbacks for
func_path_foreach.
(func_exists_module, func_get_tests_module): Likewise.
(func_is_local_file, func_should_symlink): New helper methods.
(func_add_file, func_update_file): Use new func_should_symlink
instead, DRY.
(func_reconstruct_cached_local_gnulib_path): New helper.
(func_reconstruct_cached_dir): New callback.
(func_import): The cached_local_gnulib_dir renamed to
cached_local_gnulib_path similarly to local_gnulib_dir.
Use new func_reconstruct_cached_local_gnulib_path.
(func_count_relative_local_gnulib_path): New sub-method.
(func_create_testdir): Use func_should_symlink, DRY.
(func_create_megatestdir): Use new functions to work with
local_gnulib_path correctly.
(func_append_local_dir): New helper.
This complements f8fe25fab6 commit.
* gnulib-tool (func_emit_pre_early_macros): New function, it wraps
emitting of initial gl_EARLY macros.
(func_import, func_create_testdir): All dumps of gl_PROG_AR_RANLIB
replaced with func_emit_pre_early_macros call.
The gl_PROG_AR_RANLIB (it is always called by gl_EARLY) sets AR
and ARFLAGS variables. Doing this unconditionally could break
later Automake's AM_PROG_AR invocation (at least it's
AC_CHECK_TOOLS call to detect correct 'ar' binary).
Original purpose of the gl_PROG_AR_RANLIB was only to handle the
Amsterdam Compiler Kit, so make the previous code to have effects
only on ACK, and rather automatically call the Automake's
AM_PROG_AR as soon as possible to decide other cases.
References:
http://lists.gnu.org/archive/html/bug-gnulib/2015-07/msg00001.html
* m4/gnulib-common.m4 (gl_PROG_AR_RANLIB): AC_BEFORE AM_PROG_AR.
Set the AR/ARFLAGS to ACK defaults OR call AM_PROG_AR. If neither
is possible, keep setting AR/ARFLAGS to reasonable defaults.
* gnulib-tool (func_import): Put the gl_USE_SYSTEM_EXTENSIONS
right before gl_PROG_AR_RANLIB into gnulib-comp.m4 (if the
'extensions' module is used.
* modules/extensions (configure.ac-early): Remove as this snippet
is added to gnulib-comp.m4 earlier anyway.
Otherwise, Emacs might do the wrong thing if run in an
he_IL.ISO-8859-8 locale, which an Emacs developer does on occasion.
Problem reported by Eli Zaretskii in:
http://lists.gnu.org/archive/html/emacs-devel/2015-09/msg00966.html
Don't bother with test files, as they aren't copied to the Emacs
source directory. If this problem affects test files in some other
GNU project, we can add coding cookies to the non-ASCII test files
later.
* gnulib-tool: Refactor the line merging sed logic,
and use that to output a single lib_SOURCES line for each module.
gnulib using projects often postprocess this output to prepend
subdir paths to each item, and having a single line simplifies this
processing allowing better decoupling from the gnulib-tool output.
This avoids a new issue with coreutils where it failed to prepend
a path on the new {get,set}-permissions.c items (which were
on continued lines in modules/acl-permissions).
* gnulib-tool (func_show_module_list): Change hexadecimal
numbers to octal in BOLD_ON and BOLD_OFF. The use of hex
encoded numbers as arguments to `printf' is not portable,
and is not claimed by POSIX. This is the case with FreeBSD.
On OS/2, x:* is an absolute path, too.
* gnulib-tool (func_gnulib_dir): Add ?:* case.
(func_relconcat): Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
Options for downloading PO files were not in sync with their
build-aux/bootstrap counterpart. This commit adopt the same behavior for
these tools.
Signed-off-by: Mathieu Anquetin <mathieu@anquetin.eu>
Current implementation only tries to rsync PO files when rsync is
installed on the host. In case of error, no files are downloaded even
if they are available. This leads to bootstrap problems for hosts
that lie behind a restrictive firewall.
This patch always tries to rsync by default, falling back to wget if
an error occurs.
Signed-off-by: Mathieu Anquetin <mathieu@anquetin.eu>
Context: http://translationproject.org/latest/gnulib redirects to
https://translationproject.org/latest/gnulib/
Rationale: if the user falls back to wget, she doesn't have rsync and
is probably in a minimal build environment, where packages such as
'ca-certificates' are missing as well, resulting in a failed (and
difficult to detect since ignored) translation initial fetch.
Consequently let's avoid https if possible, and add the missing
trailing slash. This also avoids an unnecessary 302 redirection.
* gnulib-tool: Add trailing slash to gnulib URL.
* gnulib-tool: Many "cd" built-in functions print a directory name
to stdout when CDPATH is set, e.g.,
$ bash -c 'CDPATH=/; cd tmp'
/tmp
Unset it, when possible. Prompted by a comment from Bruce Korb.
That is the same minimal version required in the DEPENDENCIES file.
Moreover, the old code generated a requirement of Automake >= 1.5,
and that is an insanely outdated version.
* gnulib-tool: Bump minimal version requirement in AUTOMAKE_OPTIONS.
* tests/havelib/rpathlx/Makefile.am: Likewise.
* tests/havelib/rpathly/Makefile.am: Likewise.
* tests/havelib/rpathlyx/Makefile.am: Likewise.
* tests/havelib/rpathlz/Makefile.am: Likewise.
* tests/havelib/rpathlzyx/Makefile.am: Likewise.
* tests/havelib/rpathx/Makefile.am: Likewise.
* tests/havelib/rpathy/Makefile.am: Likewise.
* tests/havelib/rpathz/Makefile.am: Likewise.
In fact, access to the gnulib repository through CVS has been disabled,
or more precisely, got broken and was never restored; see:
<http://lists.gnu.org/archive/html/bug-gnulib/2013-05/msg00008.html>
Note that support for CVS is not removed completely and unthinkingly
by this change: only support for CVS checkouts of gnulib itself is
removed. For example, the 'bootstrap' script still cater to .cvsingore
files and CVS directories, for the benefit of those poor gnulib clients
still stuck with CVS. Ditto for the 'gnulib-tool' script itself.
* gnulib-tool: Simplify accordingly.
* posix-modules: Likewise.
* MODULES.html.sh: Likewise.
* doc/gnulib.texi: No longer mention the decommissioned CVS gnulib
repository.
* doc/gnulib-intro.texi: Likewise.
* doc/gnulib-readme.texi: Likewise.
* doc/gnulib-tool.texi: In the examples and explanations, refer to a
sample '.gitignore' file rather than a sample '.cvsignore'.
* NEWS: Update.
* m4/extensions.m4: While at it, remove a comment mistakenly referring
to "CVS Autoconf" rather than "git Autoconf".
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Acked-by: Paul Eggert <eggert@cs.ucla.edu>
* gnulib-tool (func_emit_tests_Makefile_am): Set perhapsLT, like in
func_emit_lib_Makefile_am.
Reported and fix suggested by Dmitriy Selyutin <ghostman.sd@gmail.com>.