Subject: Re: GNU Libtool-2.4.3 released [stable]

From: Pavel Raiskup <[email-masked]>
Date: Thu, 30 Oct 2014 14:06:05 +0100

Thanks for the release, Gary and all!

On Monday 27 of October 2014 21:44:02 Gary V. Vaughan wrote:
>  - Fix a long-standing bug when using libtoolize without automake; we
>    no longer remove install-sh with --force, since it's not a file
>    libtoolize will reinstall without --install.

It is not completely the same situation like with automake, but
gnulib-origin files are causing similar problems [1].

Taking into account the package relies on some gnulib files in question
itself (not via libtool), the package should still be easily autoreconfed
from distributed tarballs with (relatively) safe command
'autoreconf -vfi'.

However now (a) libtoolize removes gnulib files and (b) build machine (or
the user) may have no idea what gnulib is when working with 'make dist'ed
tarball.  If there is no reason for current libtoolize to install those
files, the patch attached could help.  That is not a solution for
"upgrade" cleanup but can there be other safe solution?

Also, I'm not sure what to do with 'argz.m4'.  That file can be updated by
package maintainer via gnulib-tool, however libtool (via autoreconf -vfi
e.g.) can overwrite it with older version of this file.  That however does
not break the build, at least not now.

[1] https://bugs.gentoo.org/show_bug.cgi?id=527200

Pavel
>From 124712553f84f9052b14b0ef9ddac1314f9c1aa0 Mon Sep 17 00:00:00 2001
From: Pavel Raiskup <[email-masked]>
Date: Thu, 30 Oct 2014 13:44:59 +0100
Subject: [PATCH] libtoolize: do not remove gnulib files with --force

That caused build failure after relatively safe 'autoreconf -fi'
run in a project depending on those files because libtoolize
removed those files unconditionally but was not able to re-install
them back.  Keeping those in place seems to be more safe.

References:
https://bugs.gentoo.org/show_bug.cgi?id=527200
https://lists.fedoraproject.org/pipermail/devel/2014-October/203798.html

* libtoolize.in (func_require_seen_libtool): Do not remove
snippet/* files which are from Gnulib.
---
 libtoolize.in | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libtoolize.in b/libtoolize.in
index d819470..b9c438f 100644
--- a/libtoolize.in
+++ b/libtoolize.in
@@ -1896,8 +1896,8 @@ func_require_seen_libtool ()
   # ensure a clean upgrade.
   # Do not remove config.guess, config.sub or install-sh, we don't
   # install them without --install, and the project may not be using
-  # Automake.
-  all_pkgaux_files="compile depcomp missing ltmain.sh snippet/_Noreturn.h snippet/arg-nonnull.h snippet/c++defs.h snippet/warn-on-use.h"
+  # Automake.  Also in similar fashion do not remove Gnulib files.
+  all_pkgaux_files="compile depcomp missing ltmain.sh"
   all_pkgmacro_files="argz.m4 libtool.m4 ltdl.m4 ltoptions.m4 ltsugar.m4 ltversion.in ltversion.m4 lt~obsolete.m4"
   all_pkgltdl_files="COPYING.LIB Makefile Makefile.in Makefile.inc Makefile.am README acinclude.m4 aclocal.m4 argz_.h argz.c config.h.in config-h.in configure configure.ac configure.in libltdl/lt__alloc.h libltdl/lt__dirent.h libltdl/lt__glibc.h libltdl/lt__private.h libltdl/lt__strl.h libltdl/lt_dlloader.h libltdl/lt_error.h libltdl/lt_system.h libltdl/slist.h loaders/dld_link.c loaders/dlopen.c loaders/dyld.c loaders/load_add_on.c loaders/loadlibrary.c loaders/preopen.c loaders/shl_load.c lt__alloc.c lt__dirent.c lt__strl.c lt_dlloader.c lt_error.c ltdl.c ltdl.h ltdl.mk slist.c"
 
-- 
1.9.3