bug-coreutils
[Top][All Lists]
Advanced

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

Re: new coreutils snapshot available


From: Jim Meyering
Subject: Re: new coreutils snapshot available
Date: Thu, 20 Mar 2008 18:49:35 +0100

"Dmitry V. Levin" <address@hidden> wrote:
> On Wed, Mar 19, 2008 at 11:41:14PM +0100, Jim Meyering wrote:
>> "Dmitry V. Levin" <address@hidden> wrote:
>> > On Fri, Mar 07, 2008 at 03:27:19PM +0100, Jim Meyering wrote:
>> >> There have been over 50 change-sets since the last one, so...
>> >
>> > Something odd happened with generated man/Makefile.in file,
>> > it is no longer going to build and install manpages because all
>> > corresponding code is absent in the new version:
>> >
>> > -all-am: Makefile $(MANS)
>> > +all-am: Makefile
>> >
>> > -install-data-am: install-man
>> > +install-data-am:
>>
>> Hi Dmitry,
>>
>> Thanks for pointing that out.
>> It may be due to the fact that I generated Makefile.in
>> using automake built from the very latest version in the
>> upstream automake.git repository.
>
> In my case, automake version is 1.10.1 (latest stable release)
> also results to wrong man/Makefile.in file.
>
>> I've Cc'd bug-automake, in case that's the problem.
>> I worked around it yesterday in coreutils with this change:
>>
>>   http://git.sv.gnu.org/gitweb/?p=coreutils.git;a=commitdiff;h=4b544e447eb7
>
> Thanks, this workaround helps to build manpages.
> Installing them using "make install" is still the issue.

Ahh, now I see.

This coreutils change removed the final literal from the definition
of dist_man_MANS in man/Makefile.am, which seems like it should be fine:

  http://git.sv.gnu.org/gitweb/?p=coreutils.git;a=commitdiff;h=167b8025aca487

diff --git a/man/Makefile.am b/man/Makefile.am
index a4351d6..9076afc 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -15,7 +15,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.

-dist_man_MANS = groups.1 $(MAN)
+dist_man_MANS = $(MAN)
------------------------------------------------

Unfortunately, that removal tickled a "feature" of automake that
omits install-rules when the associated variable is perceived as empty.
And from automake's perspective, $(MAN) *is* empty,
though it does end up being set via configure.

I've worked around it with these changes:

2008-03-20  Jim Meyering  <address@hidden>

        Add a check to detect this problem, in case it reappears.
        * maint.mk (my-distcheck): Run "make install", and then ensure
        that ls.1 is installed.

        Kludge to make automake generate install-man rules
        * man/Makefile.am (dist_man_MANS): Add a literal, rm.1.
        Without this, "make install" would not install man pages.
        However, with this kludge, the rm.1 man page is installed
        even when you configure with --enable-no-install-program=rm.

        Revert recent man/Makefile.am change.
        Revert 4b544e447eb78fd1f031a026a499f6aed177808a.
        * man/Makefile.am: That change was only a band-aid.  It solved
        the stated problem, but not a deeper one: that "make install"
        would no longer man pages.  Reported by Dmitry V. Levin.
        The latter problem arose in
        167b8025aca487de001da2448c1aebc2747bc1d3 with the removal of
        the sole literal from the definition of dist_man_MANS.  When
        automake perceives dist_man_MANS as empty, it no longer emits
        the install-man* rules.

>From 8058da00651579c6f36f9e45707346c47fba861b Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Thu, 20 Mar 2008 17:49:30 +0100
Subject: [PATCH] Revert recent man/Makefile.am change.

Revert 4b544e447eb78fd1f031a026a499f6aed177808a.
* man/Makefile.am: That change was only a band-aid.  It solved
the stated problem, but not a deeper one: that "make install"
would no longer man pages.  Reported by Dmitry V. Levin.
The latter problem arose in
167b8025aca487de001da2448c1aebc2747bc1d3 with the removal of
the sole literal from the definition of dist_man_MANS.  When
automake perceives dist_man_MANS as empty, it no longer emits
the install-man* rules.

Signed-off-by: Jim Meyering <address@hidden>
---
 man/Makefile.am |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/man/Makefile.am b/man/Makefile.am
index c4da8f7..9076afc 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -16,7 +16,6 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.

 dist_man_MANS = $(MAN)
-BUILT_SOURCES = $(MAN)

 man_aux = $(dist_man_MANS:.1=.x)

--
1.5.5.rc0.17.gb6ce2


>From 4682f132f2d06cb7c93b94f1cf35795116291f74 Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Thu, 20 Mar 2008 18:01:35 +0100
Subject: [PATCH] Kludge to make automake generate install-man rules

* man/Makefile.am (dist_man_MANS): Add a literal, rm.1.
Without this, "make install" would not install man pages.
However, with this kludge, the rm.1 man page is installed
even when you configure with --enable-no-install-program=rm.

Signed-off-by: Jim Meyering <address@hidden>
---
 man/Makefile.am |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/man/Makefile.am b/man/Makefile.am
index 9076afc..37bfd9a 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -15,7 +15,9 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.

-dist_man_MANS = $(MAN)
+# We must include at least one literal name here, so that
+# automake-1.10.1 emits the required install-man* rules.
+dist_man_MANS = rm.1 $(MAN)

 man_aux = $(dist_man_MANS:.1=.x)

--
1.5.5.rc0.17.gb6ce2


>From ba4b9d9d6e065e32013a9f38a201cdc156d2a5a0 Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Thu, 20 Mar 2008 18:43:03 +0100
Subject: [PATCH] Add a check to detect this problem, in case it reappears.

* maint.mk (my-distcheck): Run "make install", and then ensure
that ls.1 is installed.

Signed-off-by: Jim Meyering <address@hidden>
---
 maint.mk |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/maint.mk b/maint.mk
index 9f49b6e..0371ee9 100644
--- a/maint.mk
+++ b/maint.mk
@@ -592,10 +592,12 @@ my-distcheck: $(local-check) check
        mkdir -p $(t)
        GZIP=$(GZIP_ENV) $(AMTAR) -C $(t) -zxf $(distdir).tar.gz
        cd $(t)/$(distdir)                              \
-         && ./configure --disable-nls                  \
+         && ./configure --disable-nls --prefix=$(t)/i  \
          && $(MAKE) CFLAGS='$(warn_cflags)'            \
              AM_MAKEFLAGS='$(null_AM_MAKEFLAGS)'       \
          && $(MAKE) dvi                                \
+         && $(MAKE) install                            \
+         && test -f $(mandir)/man1/ls.1                \
          && mkdir $(bin)                               \
          && ($(write_loser)) > $(bin)/loser            \
          && chmod a+x $(bin)/loser                     \
--
1.5.5.rc0.17.gb6ce2




reply via email to

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