[Ovirt-devel] work around "*** ERROR: No build ID note found in..." on rawhide
Jim Meyering
jim at meyering.net
Mon Sep 8 12:32:03 UTC 2008
On Friday, I got this:
*** ERROR: No build ID note found in /ov/node/rpm-build/BUILDROOT/ovirt-node-0.92-1.fc10.x86_64/usr/sbin/ovirt-identify-node
Dan Berrange suggested that it might be because the .spec file
mistakenly used ./configure rather than %configure.
Actually, the spec file used neither.
The fix was to autoconfiscate the package, and that's what I've done.
It fixes the above problem, but ovirt as a whole still needs some
more help on rawhide, since a top-level "make -f ovirt.mk build"
still fails with this:
Retrieving file:///me/ovirt-cache/yum/ovirt/repodata/repomd.xml ...OK
Retrieving http://fr2.rpmfind.net/linux/fedora/development/x86_64/os/repodata/repomd.xml ...OK
Error creating Live CD : Unable to download from repo : Cannot retrieve repository metadata (repomd.xml) for repository: f10-updates. Please verify its path and try again
error: Bad exit status from /var/tmp/rpm-tmp.2S2HRK (%build)
RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.2S2HRK (%build)
make[1]: *** [rpms] Error 1
make[1]: Leaving directory `/ov/node-image'
make: *** [publish] Error 1
Anyhow, first things first.
I have 4 change sets, three tiny ones and the autoconfication one.
Autoconfiscation fixes the problem mentioned in the title.
However note that you'll need the following small tweak to
release/ovirt.mk in order to actually use it.
diff --git a/ovirt.mk b/ovirt.mk
index e9bff32..9717d14 100644
--- a/ovirt.mk
+++ b/ovirt.mk
@@ -56,6 +56,8 @@ publish:
if ! test -d $$dir ; then \
$(MAKE) $$dir || exit 1 ; \
fi ; \
+ ( cd $$dir; test ! -f Makefile.in && ./autogen.sh ); \
+ ( cd $$dir; test ! -f Makefile && ./configure ); \
$(MAKE) -C $$dir $@ || exit 1 ; \
done
rm -f rpms
And you'll also need this global Makefile change:
find . -name Makefile|xargs grep -l mkdir.-p.rpm-build|xargs perl -pi -e \
's,(mkdir -p rpm-build),$1/BUILDROOT,'
to accomplish this:
- mkdir -p rpm-build
+ mkdir -p rpm-build/BUILDROOT
Yes, those constitute two more change sets I owe...
Here's the big one:
------------------------------------------------------------------
>From c94b484fcefdb0d1ed8b35da837c35e44fd6b55e Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering at redhat.com>
Date: Fri, 5 Sep 2008 17:41:32 +0200
Subject: [PATCH] autoconfiscate
Now, you can build with "./autogen.sh && ./configure && make".
* ovirt-identify-node/Makefile.am: New file.
* ovirt-identify-node/Makefile: Remove, now that it's generated.
* configure.ac: New file.
* autogen.sh: New file, based on the one from libvirt.
* ovirt-identify-node/.gitignore: list ignorable files
* .gitignore: list ignorable files
* Makefile.am: merge with old Makefile, include release.mk, new rule: tar
* Makefile: Remove file.
* Makefile.am (tar): add chmod before rm -rf
---
.gitignore | 14 ++++++-
ovirt-identify-node/Makefile => Makefile.am | 45 +++++++++++++--------
autogen.sh | 57 +++++++++++++++++++++++++++
configure.ac | 13 ++++++
ovirt-identify-node/.gitignore | 11 +++++
Makefile => ovirt-identify-node/Makefile.am | 32 ++++++---------
ovirt-node.spec | 6 ++-
7 files changed, 139 insertions(+), 39 deletions(-)
rename ovirt-identify-node/Makefile => Makefile.am (56%)
create mode 100755 autogen.sh
create mode 100644 configure.ac
create mode 100644 ovirt-identify-node/.gitignore
rename Makefile => ovirt-identify-node/Makefile.am (66%)
diff --git a/.gitignore b/.gitignore
index 5895b46..9f17923 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,13 @@
-rpm-build
+Makefile
+Makefile.in
+aclocal.m4
+autom4te.cache
+config.h
+config.h.in
+config.log
+config.status
+configure
+depcomp
+install-sh
+missing
+stamp-h1
diff --git a/ovirt-identify-node/Makefile b/Makefile.am
similarity index 56%
rename from ovirt-identify-node/Makefile
rename to Makefile.am
index d5e4093..506dbd2 100644
--- a/ovirt-identify-node/Makefile
+++ b/Makefile.am
@@ -1,5 +1,4 @@
# Copyright (C) 2008 Red Hat, Inc.
-# Written by Darryl L. Pierce <dpierce at redhat.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,23 +15,33 @@
# MA 02110-1301, USA. A copy of the GNU General Public License is
# also available at http://www.gnu.org/copyleft/gpl.html.
-CC=gcc
-CFLAGS=-Wall -c -g $(shell pkg-config --cflags dbus-1)
-LFLAGS=-lhal -lvirt
-OBJECTS=comm.o gather.o hal_support.o main.o protocol.o
-TARGET=ovirt-identify-node
-SOURCES=\
- ovirt-identify-node.c
+SUBDIRS = ovirt-identify-node
-all: $(TARGET)
+EXTRA_DIST = \
+ .gitignore \
+ ovirt-node.spec \
+ release.mk \
+ version \
+ scripts/collectd \
+ scripts/collectd.conf.in \
+ scripts/dhclient-exit-hooks \
+ scripts/kvm-ifup \
+ scripts/ovirt \
+ scripts/ovirt-awake \
+ scripts/ovirt-early \
+ scripts/ovirt-functions \
+ scripts/ovirt-post \
+ logrotate/ovirt-logrotate \
+ logrotate/ovirt-logrotate.conf
-.c.o:
- $(CC) $(CFLAGS) $< -o $@
+include release.mk
-clean:
- rm -rf $(OBJECTS) $(TARGET)
-
-$(TARGET): $(OBJECTS)
- $(CC) -o $@ $(OBJECTS) $(LFLAGS)
-
-.PHONY: all clean
+pkg_name = ovirt-node
+.PHONY: tar
+tar: dist
+ tar xf $(distdir).tar.gz
+ mkdir -p rpm-build/BUILDROOT
+ tar zcvf rpm-build/$(NV).tar.gz $(NV)
+ cp version rpm-build
+ chmod -R u+rwx $(NV)
+ rm -rf $(NV)
diff --git a/autogen.sh b/autogen.sh
new file mode 100755
index 0000000..77fe883
--- /dev/null
+++ b/autogen.sh
@@ -0,0 +1,57 @@
+#!/bin/sh
+# Run this to generate configure and Makefile
+
+srcdir=`dirname $0`
+test -z "$srcdir" && srcdir=.
+
+THEDIR=`pwd`
+(
+ cd $srcdir
+ die=0
+
+ (autoconf --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "You must have autoconf installed."
+ echo "Download the appropriate package for your distribution,"
+ echo "or see http://www.gnu.org/software/autoconf"
+ die=1
+ }
+
+ (libtool --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "You must have libtool installed."
+ echo "Download the appropriate package for your distribution,"
+ echo "or see http://www.gnu.org/software/libtool"
+ die=1
+ }
+
+ (automake --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ die=1
+ echo "You must have automake installed."
+ echo "Download the appropriate package for your distribution,"
+ echo "or see http://www.gnu.org/software/automake"
+ }
+
+ test $die = 1 && exit 1
+
+ test -f ovirt-identify-node.h || {
+ echo "You must run this script in the top-level directory"
+ exit 1
+ }
+
+ if test -z "$*"; then
+ echo "I am going to run ./configure with no arguments - if you wish "
+ echo "to pass any to it, please specify them on the $0 command line."
+ fi
+
+ aclocal
+ autoheader
+ automake --add-missing
+ autoconf
+)
+
+if test "x$OBJ_DIR" != x; then
+ mkdir -p "$OBJ_DIR"
+ cd "$OBJ_DIR"
+fi
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..c780142
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,13 @@
+# FIXME: version
+AC_INIT([ovirt-node], [0.1], [ovirt-devel at redhat.com])
+AM_INIT_AUTOMAKE([-Wall -Werror foreign])
+AC_PROG_CC
+AC_CONFIG_HEADERS([config.h])
+
+# for ovirt-identify-node
+PKG_CHECK_MODULES([DBUS], [dbus-1])
+PKG_CHECK_MODULES([HAL], [hal])
+PKG_CHECK_MODULES([VIRT], [libvirt])
+
+AC_CONFIG_FILES([Makefile ovirt-identify-node/Makefile])
+AC_OUTPUT
diff --git a/ovirt-identify-node/.gitignore b/ovirt-identify-node/.gitignore
new file mode 100644
index 0000000..e684419
--- /dev/null
+++ b/ovirt-identify-node/.gitignore
@@ -0,0 +1,11 @@
+*.o
+.deps
+Makefile
+Makefile.in
+aclocal.m4
+autom4te.cache
+depcomp
+install-sh
+missing
+ovirt-identify-node
+stamp-h1
diff --git a/Makefile b/ovirt-identify-node/Makefile.am
similarity index 66%
rename from Makefile
rename to ovirt-identify-node/Makefile.am
index 0f182dd..980901c 100644
--- a/Makefile
+++ b/ovirt-identify-node/Makefile.am
@@ -1,5 +1,4 @@
# Copyright (C) 2008 Red Hat, Inc.
-# Written by Darryl L. Pierce <dpierce at redhat.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,24 +15,19 @@
# MA 02110-1301, USA. A copy of the GNU General Public License is
# also available at http://www.gnu.org/copyleft/gpl.html.
-pkg_name = ovirt-node
+bin_PROGRAMS = ovirt-identify-node
-all: rpms
-include release.mk
+EXTRA_DIST = AUTHOR
-clean:
- +$(MAKE) -C ovirt-identify-node clean
- rm -rf $(NV)
+ovirt_identify_node_SOURCES = \
+ ovirt-identify-node.h \
+ comm.c \
+ gather.c \
+ hal_support.c \
+ main.c \
+ protocol.c
-distclean: clean
- rm -rf rpm-build
-
-tar: clean
- mkdir -p $(NV)
- cp -a logrotate ovirt-identify-node scripts $(NV)
- mkdir -p rpm-build
- tar zcvf rpm-build/$(NV).tar.gz $(NV)
- cp version rpm-build/
- rm -rf $(NV)
-
-.PHONY: all distclean clean tar
+ovirt_identify_node_LDADD = \
+ $(LDADD) $(DBUS_LIBS) $(HAL_LIBS) $(VIRT_LIBS)
+ovirt_identify_node_CPPFLAGS = \
+ $(AM_CPPFLAGS) $(DBUS_CFLAGS) $(HAL_CFLAGS) $(VIRT_CFLAGS)
diff --git a/ovirt-node.spec b/ovirt-node.spec
index 059fad5..5c092b4 100644
--- a/ovirt-node.spec
+++ b/ovirt-node.spec
@@ -28,7 +28,8 @@ oVirt Node to interact with the oVirt server.
%setup -q
%build
-make -C ovirt-identify-node
+%configure
+make
%install
%{__rm} -rf %{buildroot}
@@ -146,6 +147,9 @@ fi
%doc ovirt-identify-node/COPYING
%changelog
+* Mon Sep 8 2008 Jim Meyering <meyering at redhat.com> - 0.92 0.4
+- Update ovirt-identify-node's build rule.
+
* Fri Aug 22 2008 Chris Lalancette <clalance at redhat.com> - 0.92 0.4
- Re-arrange the directory layout, in preparation for ovirt-listen-awake
--
1.6.0.1.196.g01914
More information about the ovirt-devel
mailing list