Hi Werner, On Sat, Oct 11 2014 at 09:13:16 AM, Werner LEMBERG <w...@gnu.org> wrote: > Folks, > > > I think I've now done everything to make a new release – essentially, > it was a matter of continued comparation between the last tarball and > the current git repository. There are surprisingly few changes > (expect Bernd's clean-up of copyright issues), so I don't expect large > surprises. > > After Bernd's commits to fix the IPC issue, I can do `make dist' and > distribute it. Before doing this, however, I want to wait a few days > so that you can test and check whether everything's fine. Please do so! >
'make dist' does not work on my PC. I bump into the following error when it tries to do 'make distclean' in src/libs/gnulib: for d in src/libs/gnulib; do \ (cd tmp/$d; \ if test -f Makefile; then \ make distclean; \ else \ make -f /home/bertrand/test/$d/Makefile distcleanclean; \ fi; \ rm -rf autom4te.cache); \ done make[1]: Entering directory '/home/bertrand/test/tmp/src/libs/gnulib' Making distclean in m4 make[2]: Entering directory '/home/bertrand/test/tmp/src/libs/gnulib/m4' test -z "" || rm -f test . = "." || test -z "" || rm -f rm -f Makefile make[2]: Leaving directory '/home/bertrand/test/tmp/src/libs/gnulib/m4' Making distclean in lib make[2]: Entering directory '/home/bertrand/test/tmp/src/libs/gnulib/lib' Makefile:557: .deps/localcharset.Po: No such file or directory Makefile:558: .deps/wctype-h.Po: No such file or directory Makefile:559: .deps/wcwidth.Po: No such file or directory Makefile:560: uniwidth/.deps/width.Po: No such file or directory make[2]: *** No rule to make target 'uniwidth/.deps/width.Po'. Stop. That's because when we loop into DESTDIRS to copy with mkinstalldirs all the directories into the `tmp' directory (the directory used to prepare the tarball) the .deps directories in gnulib/lib and gnulib/lib/uniwidth are not copied, causing `make distclean' to fail. The tarball is generated but as gnulib was not properly cleaned, the Makefile are still present in src/libs/gnulib and src/libs/gnulib/lib, causing the build from the the tarball to fail. For some reasons that I don't understand, when I try `make dist' serveral times in a row (possibily between some `make'), sometimes the autotools and then `configure' are invoked again when `make distclean' is called into tmp/src/libs/gnulib, causing the .deps to be recreated. Maybe it's always the case on your environment as I saw in the last official tarball that src/libs/gnulib/Makefile.in was generated from Automake 1.12.5 while the same Makefile.in in the git repo was generated from Automake 1.12.1. Here is a patch that calls `config.status' before `make distclean' in tmp/src/libs/gnulib to force the creation of .deps directories, which fixes the problem. Also, it fixes the bogus line in the else condition (distcleanclean): for d in $(GNULIBDIRS); do \ (cd tmp/$$d; \ if test -f Makefile; then \ $(MAKE) distclean; \ else \ $(MAKE) -f $(top_builddir)/$$d/Makefile distcleanclean; \ fi; \ [...] However I dont' understand the purpose of calling $(top_builddir)/$$d/Makefile, we were trying to clean gnulib in the `tmp' directory that will be eventually the tarball directory, calling `make distclean' in $(top_builddir)/src/libs/gnulib will possibly clean gnulib in the source tree, not in the `tmp' directory. Regards,
diff --git a/Makefile.in b/Makefile.in index b1e51b6..139d7cb 100644 --- a/Makefile.in +++ b/Makefile.in @@ -914,10 +914,13 @@ dist: done for d in $(GNULIBDIRS); do \ (cd tmp/$$d; \ + if test -f config.status; then \ + ./config.status; \ + fi; \ if test -f Makefile; then \ $(MAKE) distclean; \ else \ - $(MAKE) -f $(top_builddir)/$$d/Makefile distcleanclean; \ + $(MAKE) -f $(top_builddir)/$$d/Makefile distclean; \ fi; \ rm -rf autom4te.cache); \ done
-- Bertrand Garrigues