[opensuse-packaging] Building release-notes-openSUSE: automake needed?
ATM, I must BuildRequire automake to build the release-notes-openSUSE package. Do I have a wrong dependency somewhere? In the past, it was not needed. I tried to rebuild the package with the automake and autoconf from 12.3, but with no success. The package is here: home:keichwa:branches:openSUSE:13.1:Update/release-notes-openSUSE -- Karl Eichwalder SUSE LINUX Products GmbH R&D / Documentation Maxfeldstraße 5 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer, HRB 16746 (AG Nürnberg) -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Karl Eichwalder
ATM, I must BuildRequire automake to build the release-notes-openSUSE package. Do I have a wrong dependency somewhere? In the past, it was not needed.
How long in the past? $ osc meta prjconf openSUSE:12.1 | grep automake #Required: autoconf automake binutils bzip2 gcc gcc%{gcc_version} Support: autoconf automake binutils bzip2 gcc gcc%{gcc_version} $ osc meta prjconf openSUSE:12.2 | grep automake [nothing] Andreas. -- Andreas Schwab, SUSE Labs, schwab@suse.de GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 "And now for something completely different." -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Andreas Schwab
How long in the past?
$ osc meta prjconf openSUSE:12.1 | grep automake #Required: autoconf automake binutils bzip2 gcc gcc%{gcc_version} Support: autoconf automake binutils bzip2 gcc gcc%{gcc_version} $ osc meta prjconf openSUSE:12.2 | grep automake [nothing]
During all the 13.1 milestones and RCs it worked without automake. -- Karl Eichwalder SUSE LINUX Products GmbH R&D / Documentation Maxfeldstraße 5 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer, HRB 16746 (AG Nürnberg) -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Karl Eichwalder
During all the 13.1 milestones and RCs it worked without automake.
$ osc rbl openSUSE:13.1 release-notes-openSUSE standard x86_64 | grep automake [ 86s] cd . && /bin/sh /home/abuild/rpmbuild/BUILD/release-notes-opensuse-13.1.4/missing --run automake-1.12 --foreign [ 86s] /home/abuild/rpmbuild/BUILD/release-notes-opensuse-13.1.4/missing: line 51: automake-1.12: command not found [ 86s] WARNING: 'automake-1.12' is missing on your system. You should only need it if Andreas. -- Andreas Schwab, SUSE Labs, schwab@suse.de GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 "And now for something completely different." -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Quoting Karl Eichwalder
ATM, I must BuildRequire automake to build the release-notes-openSUSE package. Do I have a wrong dependency somewhere? In the past, it was not needed.
I tried to rebuild the package with the automake and autoconf from 12.3, but with no success.
Very likely an error in the updated tarball. Possibly make dist not run in a full tree? Eitherway: the 'reason' is that 'make' sees something as missing and wants to do the bootstrapping for you. I tried a simple reboot strap on my machine: tar xf release-notes-opensuse-13.1.7.tar.bz2 cd release-notes-opensuse-13.1.7 autoreconf -fiv ./configure make dist then use the new tarball to build and automake is no longer needed. NOTE: I did the bootstrapping on an older openSUSE version (12.2) so this can surely have some effect (one difference between your old and new tarball is the switch from automake 1.12 to automake 1.13 when bootstrapping. to make it fully work, you might have to start libtoolize first as well. Dominique -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Karl, On Thu, 2013-11-14 at 17:09 +0100, Dominique Leuenberger a.k.a. Dimstar wrote:
I tried to rebuild the package with the automake and autoconf from 12.3, but with no success.
Very likely an error in the updated tarball. Possibly make dist not run in a full tree?
Eitherway: the 'reason' is that 'make' sees something as missing and wants to do the bootstrapping for you.
I tried a simple reboot strap on my machine: tar xf release-notes-opensuse-13.1.7.tar.bz2 cd release-notes-opensuse-13.1.7 autoreconf -fiv ./configure make dist
Funny problem after all !
automake 1.13 has more logic to detect if the tarball is 'in order' or
if it needs to bootstrap.
One way used to identify this is comparing the date / timestampe of
configure.ac with the one of aclocal.m4.
make -d in the buildroot reveals:
Prerequisite `configure.ac' is newer than target `aclocal.m4'.
Must remake target `aclocal.m4'.
Now, the problem is:
your Makefile.am contains a dist-hook, that touches configure.ac
(updating some time it seems):
dist-hook:
sed -i "s/\(RN_DATE, \).*/\1$$(date --iso))/" configure.ac \
&& autoreconf \
&& for file in configure configure.ac; do \
cp -p $(srcdir)/$$file $(distdir)/$$file ; \
done
If you remove this block and do make dist, then all works 'just fine'
with this tarball... so this logic is clearly flawed.
Very likely you'd need to copy more than only configure and configure.ac
around (at least Makefile.in and aclocal.m4 from my tests).
I came up with this patch:
====
Index: Makefile.am
===================================================================
--- Makefile.am (revision 11681)
+++ Makefile.am (working copy)
@@ -189,7 +189,7 @@
dist-hook:
sed -i "s/\(RN_DATE, \).*/\1$$(date --iso))/" configure.ac \
&& autoreconf \
- && for file in configure configure.ac; do \
+ && for file in configure configure.ac aclocal.m4 Makefile.in; do \
cp -p $(srcdir)/$$file $(distdir)/$$file ; \
done
====
Having this in your svn tree, then doing make dist gives me a working
tarball with automake 1.13.
It was fun debugging.. hope it helps you on your journey.
Dominique
--
Dimstar / Dominique Leuenberger
On Thursday 2013-11-14 21:24, Dimstar / Dominique Leuenberger wrote:
dist-hook: sed -i "s/\(RN_DATE, \).*/\1$$(date --iso))/" configure.ac \ && autoreconf \ && for file in configure configure.ac; do \ cp -p $(srcdir)/$$file $(distdir)/$$file ; \ done [...] I came up with this patch:
Better is not to add more duct tape. my-dist: sed -i ... && autoreconf -fi && make dist -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Quoting Jan Engelhardt
On Thursday 2013-11-14 21:24, Dimstar / Dominique Leuenberger wrote:
dist-hook: sed -i "s/\(RN_DATE, \).*/\1$$(date --iso))/" configure.ac \ && autoreconf \ && for file in configure configure.ac; do \ cp -p $(srcdir)/$$file $(distdir)/$$file ; \ done [...] I came up with this patch:
Better is not to add more duct tape.
my-dist: sed -i ... && autoreconf -fi && make dist
True... I would likely remove the automatism entirely (drop the whole dist-hook) change. doing a bootstrap while doing make dist sounds like a nice way to ship a tarball that contains stuff never tested (less likely with automake 1.13) Dominique -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Dimstar / Dominique Leuenberger
Funny problem after all !
Thanks for debugging and the patch! In the past (12,3) it was enough to
copy configure and configure.ac. My dist-hook is probably not that
clever, but I prefer to see this kind of metadata in one file...
Jan Engelhardt
Better is not to add more duct tape.
my-dist: sed -i ... && autoreconf -fi && make dist
Yes, maybe. But I do not want to be force to call a special target at "make dist" time ;) I'd need a "real" pre-dist hook... -- Karl Eichwalder SUSE LINUX Products GmbH R&D / Documentation Maxfeldstraße 5 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer, HRB 16746 (AG Nürnberg) -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
participants (5)
-
Andreas Schwab
-
Dimstar / Dominique Leuenberger
-
Dominique Leuenberger a.k.a. Dimstar
-
Jan Engelhardt
-
Karl Eichwalder