automake-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[FYI] {maint} plans: we are not going to remove AM_PROG_MKDIR_P in Autom


From: Stefano Lattarini
Subject: [FYI] {maint} plans: we are not going to remove AM_PROG_MKDIR_P in Automake 1.14
Date: Fri, 18 Jan 2013 11:22:58 +0100

See commit v1.13.1-109-g030ecb4 of 2013-01-16, "compat: restore
AM_PROG_MKDIR, again", for the rationale; that rationale is now
also copied...

* PLANS/obsolete-removed/am-prog-mkdir-p.txt: ... here.

Signed-off-by: Stefano Lattarini <address@hidden>
---
 PLANS/obsolete-removed/am-prog-mkdir-p.txt | 85 ++++++++++++++----------------
 1 file changed, 41 insertions(+), 44 deletions(-)

diff --git a/PLANS/obsolete-removed/am-prog-mkdir-p.txt 
b/PLANS/obsolete-removed/am-prog-mkdir-p.txt
index b096ece..d5b7695 100644
--- a/PLANS/obsolete-removed/am-prog-mkdir-p.txt
+++ b/PLANS/obsolete-removed/am-prog-mkdir-p.txt
@@ -1,8 +1,10 @@
-In Automake 1.13.x
-------------------
+The macro AM_PROG_MKDIR_P is no longer going to be removed in Automake 1.14
+(and in fact, any plan to remove it "evenatually" has been dropped as well).
 
-We had already scheduled the removal of the long-deprecated AM_PROG_MKDR_P
-macro (superseded by the autoconf-provided one AC_PROG_MKDIR_P) for
+Let's see a bit of history to understand why.
+
+I had already scheduled the removal of the long-deprecated AM_PROG_MKDR_P
+macro (superseded by the Autoconf-provided one AC_PROG_MKDIR_P) for
 Automake 1.13 -- see commit 'v1.12-20-g8a1c64f'.
 
 Alas, it turned out the latest Gettext version at the time (0.18.1.1) was
@@ -10,58 +12,53 @@ still using that macro:
 
   <http://lists.gnu.org/archive/html/automake/2012-09/msg00010.html>
 
-And since the maintenance of Gettext was stalled, we couldn't get a fix
-committed and released in time for the appearance of automake 1.13:
+And since the maintenance of Gettext was stalled, I couldn't get a fix
+committed and released in time for the appearance of Automake 1.13:
 
   <http://lists.gnu.org/archive/html/bug-gettext/2012-04/msg00018.html>
   <http://lists.gnu.org/archive/html/bug-gettext/2012-06/msg00012.html>
   <http://lists.gnu.org/archive/html/bug-gettext/2012-10/msg00001.html>
 
-So, on a strong advice by Jim Meyering, in commit 'v1.12.4-158-gdf23daf'
-we re-introduced AM_PROG_MKDIR_P in Automake.  That has been an
-unfortunate necessity (thanks to Jim for having convinced me of that in
-time!)
-
-
-For Automake 1.14
------------------
+So, on strong advice by Jim Meyering, in commit 'v1.12.4-158-gdf23daf'
+I re-introduced AM_PROG_MKDIR_P in Automake (thanks to Jim for having
+convinced me to do so in time!)
 
-Finally, AM_PROG_MKDR_P we'll be fully obsolete in in Automake 1.14 (see
-commit 'v1.12.4-174-g5a28948', merged in master by 'v1.13-5-gb373ad9'),
-while still offering a clear error message for the moment (see follow-up
-commit 'v1.13-30-gd01834b').
+But then, Gettext (as said, the greatest "offender" in the use of
+AM_PROG_MKDIR_P), in its latest release 0.18.2, finally removed all the
+uses of that macro still present in its code base.  Yay.  So I thought
+we could finally and quite safely remove AM_PROG_MKDIR_P in Automake 1.14;
+and I proceeded to do so, see commit 'v1.13-30-gd01834b' and the merge
+commit 'v1.13-5-gb373ad9'.  Well, it turned out I was wrong, again, and
+in a trickier and sublter way this time.  Let's see the details.
 
-We can finally do so because Gettext has got a maintainer in the meantime,
-and a new release has been made that no longer uses AM_PROG_MKDIR_P:
+If a package's 'configure.ac' contains a call like:
 
-  <http://lists.gnu.org/archive/html/bug-gettext/2012-12/msg00064.html>
+    AM_GNU_GETTEXT_VERSION([0.18])
 
-We still keep the obsolete '@mkdir_p@' substitution and '$(mkdir_p)'
-variable around though, since they are still used by 'Makefile.in.in'
-template from gettext:
+then the 'autopoint' script will bring the data files from the Gettext
+release *1.18* into the package's tree -- yes, even even if the developer
+has installed *and is using* Gettext 1.18.2!  Now, these data files
+comprise m4 files (that will be seen by subsequent aclocal and autoconf
+calls), and of course, the pre-0.18.2 version of some of these files
+still contains occurrences of AM_PROG_MKDIR_P -- so Automake 1.13 errors
+out, and we lose.  That already happened in practice:
 
-  $ cd ~/src/gettext
-  $ git checkout master
-  $ git describe
-  v0.18.2-4-g3188bbf
-  $ grep mkdir_p gettext-runtime/po/Makefile.in.in | grep -v '^#'
-  mkdir_p = @mkdir_p@
-       $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
-       $(mkdir_p) $(DESTDIR)$$dir; \
-       $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
-       $(mkdir_p) $(DESTDIR)$$dir; \
+    <http://lists.gnu.org/archive/html/bug-grep/2013-01/msg00003.html>
 
-(see also Automake commit v1.12.1-112-g2551021).
+Moreover, while I might see it as not unreasonable to ask a developer
+using Automake 1.14 to also update Gettext to 1.18.2, that would not
+be enough; in order for gettext to use the correct data files, that
+developer would have to update his configure.ac to read:
 
-More to the point, it's almost impossible to diagnose usages of those
-macro and substitution using the existing Automake parsing and warning
-infrastructure; it's much easier to just keep them around for a while.
+    AM_GNU_GETTEXT_VERSION([0.18.2])
 
+thus requiring *all* of his co-developers to install Gettext 1.18.2,
+even if they are still using, say, Automake 1.13.  Bad.
 
-The future
-----------
+So I decided to re-instate this macro as a simple alias for AC_PROG_MKDIR_P
+(plus a non-fatal runtime warning in the 'obsolete' category), and drop
+any plan to remove it (see how much good those plans have done us so far).
+See commit v1.13.1-109-g030ecb4.
 
-We want to finally remove '@mkdir_p@' and '$(mkdir_p)' as well some
-day.  It would be nice if we could do so with some kind of deprecation,
-but that is not worth too much work.  Anyway, no hurry an no high
-priority for this removal.
+Similarly, the obsolete '@mkdir_p@' substitution and '$(mkdir_p)' make
+variable are still supported, as simple aliases to '$(MKDIR_P)'.
-- 
1.8.1.rc3.192.g2d0029e




reply via email to

[Prev in Thread] Current Thread [Next in Thread]