bug-coreutils
[Top][All Lists]
Advanced

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

Re: make dstcheck fails when gnulib source directory is ./gnulib


From: Jim Meyering
Subject: Re: make dstcheck fails when gnulib source directory is ./gnulib
Date: Wed, 20 Feb 2008 10:48:57 +0100

Thanks for taking the time to report these things!

"James Youngman" <address@hidden> wrote:
> Up to this point I have been doing VPATH builds of coreutils with this layout:
>
> foo/coreutils - the coreutils sources, from git.
> foo/coreutils/gnulib - the gnulib sources, from git.  This is where
> ootstrap puts it.
> foo/compile - build directory; symlink to a directory on a faster filesystem
>
> This worked for builds but not distcheck.  Unfortunately distcheck
> assumes the build directory is $(top_srcdir) I think.    I also notice
> that "make distcheck" fails with GNULIB_SRCDIR in its default
> position:

Right, as I explained yesterday ;-)

> [...]
> ./gnulib/ChangeLog:38198:Copyright (C) 1997-2008 Free Software Foundation, 
> Inc.
> ./gnulib/ChangeLog:38199:Copying and distribution of this file, with
> or without modification,
> ./gnulib/ChangeLog:38200:are permitted provided the copyright notice
> and this notice are preserved.
> Makefile.maint: found unexpected prefix in a ChangeLog
> make[2]: *** [sc_changelog] Error 1

I've just fixed this by indenting the offending lines in gnulib's
ChangeLog file.

> If I fix that by moving the gnulib directory and re-running bootstrap
> and config.status --recheck, next I fall over the fact that
> Makefile.maint assumes I have an archive of previous releases:
>
> release_archive_dir ?= ../release

Yes, that is ugly, and very old.
I confess I've never taken the time to fix it,
simply creating the required sibling directory.

Here's an untested patch ("make distcheck" in progress -- it's not fast)
that also removes xdelta support, which is intertwined: the rules to
compute xdeltas relied on the previous tarball being available
in $(release_archive_dir).

diff --git a/Makefile.maint b/Makefile.maint
index ec4b79d..db52ac1 100644
--- a/Makefile.maint
+++ b/Makefile.maint
@@ -56,7 +56,6 @@ endif
 my_distdir = $(PACKAGE)-$(VERSION)

 # Old releases are stored here.
-# Used for diffs and xdeltas.
 release_archive_dir ?= ../release

 # Prevent programs like 'sort' from considering distinct strings to be equal.
@@ -477,16 +476,14 @@ makefile_path_separator_check:
 # Check that `make alpha' will not fail at the end of the process.
 writable-files:
        if test -d $(release_archive_dir); then :; else                 \
-         mkdir $(release_archive_dir);                                 \
+         for file in $(distdir).tar.gz                                 \
+                     $(release_archive_dir)/$(distdir).tar.gz; do      \
+           test -e $$file || continue;                                 \
+           test -w $$file                                              \
+             || { echo ERROR: $$file is not writable; fail=1; };       \
+         done;                                                         \
+         test "$$fail" && exit 1 || :
        fi
-       for file in $(distdir).tar.gz $(xd-delta)                       \
-                   $(release_archive_dir)/$(distdir).tar.gz            \
-                   $(release_archive_dir)/$(xd-delta); do              \
-         test -e $$file || continue;                                   \
-         test -w $$file                                                \
-           || { echo ERROR: $$file is not writable; fail=1; };         \
-       done;                                                           \
-       test "$$fail" && exit 1 || :

 v_etc_file = lib/version-etc.c
 sample-test = tests/sample-test
@@ -565,7 +562,7 @@ write_loser = printf '\#!%s\necho $$0: bad path 1>&2; exit 
1\n' '$(SHELL)'
 # Note that "false" itself is a symlink to true, so it too will malfunction.
 TMPDIR ?= /tmp
 t=$(TMPDIR)/$(PACKAGE)/test
-my-distcheck: $(local-check) $(release_archive_dir)/$(prev-tgz) check
+my-distcheck: $(local-check) check
        -rm -rf $(t)
        mkdir -p $(t)
        GZIP=$(GZIP_ENV) $(AMTAR) -C $(t) -zxf $(distdir).tar.gz
@@ -618,11 +615,7 @@ rel-check:

 prev-tgz = $(PACKAGE)-$(PREV_VERSION).tar.gz

-# FIXME: stop distributing xdelta files in 2008, unless someone speaks up.
-# So far, not one person has said they'd miss this.
-xd-delta = $(PACKAGE)-$(PREV_VERSION)-$(VERSION).xdelta
-
-rel-files = $(xd-delta) $(DIST_ARCHIVES)
+rel-files = $(DIST_ARCHIVES)

 gnulib-version = $$(cd $(gnulib_dir) && git describe)

@@ -658,9 +651,6 @@ emit_upload_commands:
        @echo =====================================
        @echo =====================================

-$(xd-delta): $(release_archive_dir)/$(prev-tgz) $(distdir).tar.gz
-       xdelta delta -9 $^ $@ || :
-
 .PHONY: alpha beta major
 alpha beta major: $(local-check) writable-files
        test $@ = major                                         \
@@ -669,10 +659,11 @@ alpha beta major: $(local-check) writable-files
          || :
        $(MAKE) vc-dist
        $(MAKE) news-date-check changelog-check
-       $(MAKE) $(xd-delta)
        $(MAKE) -s announcement RELEASE_TYPE=$@ > /tmp/announce-$(my_distdir)
-       ln $(rel-files) $(release_archive_dir)
-       chmod a-w $(rel-files)
+       if test -d $(release_archive_dir); then                 \
+         ln $(rel-files) $(release_archive_dir);               \
+         chmod a-w $(rel-files);                               \
+       fi
        $(MAKE) -s emit_upload_commands RELEASE_TYPE=$@
        echo $(VERSION) > $(prev_version_file)
        $(VC) commit -m \




reply via email to

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