[libguestfs] Rebuild appliance properly using febootstrap 3.1 and alternate yum repo.
Richard W.M. Jones
rjones at fedoraproject.org
Mon Dec 6 17:49:25 UTC 2010
commit 8b855484c6e987c7a499c0914ac06b8fe27372e4
Author: Richard W.M. Jones <rjones at redhat.com>
Date: Mon Dec 6 17:48:09 2010 +0000
Rebuild appliance properly using febootstrap 3.1 and alternate yum repo.
0001-regressions-Disable-test-for-576879.patch | 66 ++++++++++++++++++++++
0002-Add-with-febootstrap-yum-config.patch | 72 ++++++++++++++++++++++++
libguestfs.spec | 32 +++++++++-
3 files changed, 166 insertions(+), 4 deletions(-)
---
diff --git a/0001-regressions-Disable-test-for-576879.patch b/0001-regressions-Disable-test-for-576879.patch
new file mode 100644
index 0000000..0d3dcfc
--- /dev/null
+++ b/0001-regressions-Disable-test-for-576879.patch
@@ -0,0 +1,66 @@
+From 7eaecf8303c229268f1f55dcb5e37ff9f0bf420d Mon Sep 17 00:00:00 2001
+From: Richard W.M. Jones <rjones at redhat.com>
+Date: Mon, 6 Dec 2010 16:46:00 +0000
+Subject: [PATCH 1/2] regressions: Disable test for 576879.
+
+This test has worked only intermittently for a while. Disable
+it. The upstream bug has been reopened.
+---
+ regressions/Makefile.am | 2 +-
+ regressions/rhbz576879.sh | 14 +++++++++-----
+ 2 files changed, 10 insertions(+), 6 deletions(-)
+
+diff --git a/regressions/Makefile.am b/regressions/Makefile.am
+index 10c5c48..15f6d7b 100644
+--- a/regressions/Makefile.am
++++ b/regressions/Makefile.am
+@@ -29,7 +29,6 @@ TESTS = \
+ rhbz503169c10.sh \
+ rhbz503169c13.sh \
+ rhbz557655.sh \
+- rhbz576879.sh \
+ rhbz578407.sh \
+ rhbz580246.sh \
+ test-add-domain.sh \
+@@ -56,6 +55,7 @@ SKIPPED_TESTS = \
+ test-bootbootboot.sh
+
+ FAILING_TESTS = \
++ rhbz576879.sh \
+ test-qemudie-launchfail.sh
+
+ random_val := $(shell awk 'BEGIN{srand(); print 1+int(255*rand())}' < /dev/null)
+diff --git a/regressions/rhbz576879.sh b/regressions/rhbz576879.sh
+index 0f44cbb..c9d7445 100755
+--- a/regressions/rhbz576879.sh
++++ b/regressions/rhbz576879.sh
+@@ -24,17 +24,21 @@ set -e
+
+ rm -f test1.img
+
++# Somewhere after 1.7, the first test started to hang.
++#
++# Somewhere between ~ 1.5.23 and ~ 1.5.24 the second test started
++# to hang.
++#
++# We don't understand why. I have disabled this test and reopened
++# the upstream bug.
++# -- RWMJ 2010-12-06
++
+ ../fish/guestfish -N disk <<EOF
+ -upload $srcdir/rhbz576879.sh /test.sh
+ # Shouldn't lose synchronization, so next command should work:
+ ping-daemon
+ EOF
+
+-# Somewhere between ~ 1.5.23 and ~ 1.5.24 the test below started to
+-# hang although we don't understand why. I have disabled this test.
+-# -- RWMJ 2010-10-27
+-exit 0
+-
+ # Second patch tests the problem found in comment 5 where both ends
+ # send cancel messages simultaneously.
+
+--
+1.7.3.2
+
diff --git a/0002-Add-with-febootstrap-yum-config.patch b/0002-Add-with-febootstrap-yum-config.patch
new file mode 100644
index 0000000..29e5b54
--- /dev/null
+++ b/0002-Add-with-febootstrap-yum-config.patch
@@ -0,0 +1,72 @@
+From 23b321b960d1e224fd293662d4c31e5ccfbc8ae9 Mon Sep 17 00:00:00 2001
+From: Richard W.M. Jones <rjones at redhat.com>
+Date: Mon, 6 Dec 2010 17:44:06 +0000
+Subject: [PATCH 2/2] Add --with-febootstrap-yum-config.
+
+This allows the febootstrap --yum-config option to be passed through,
+allowing a separate yum configuration to be used.
+
+The hope is that this will enable building in Koji.
+---
+ appliance/make.sh.in | 9 +++++----
+ configure.ac | 22 +++++++++-------------
+ 2 files changed, 14 insertions(+), 17 deletions(-)
+
+diff --git a/appliance/make.sh.in b/appliance/make.sh.in
+index bab0529..55b6530 100755
+--- a/appliance/make.sh.in
++++ b/appliance/make.sh.in
+@@ -24,12 +24,13 @@ set -e
+ excludes="--exclude '^perl' --exclude '^python' --exclude '^fedora-logos' --exclude '^redhat-logos' --exclude '^dracut' --exclude '^upstart' --exclude '^plymouth' --exclude '^systemd' --exclude '^linux-firmware' --exclude '^kbd-misc'"
+
+ # Run febootstrap on the package list.
+-if [ -z "@PACKAGE_DIRECTORY@" ]; then
+- @FEBOOTSTRAP@ -v -o supermin.d $excludes --names $(< packagelist )
+-else
+- @FEBOOTSTRAP@ -v -o supermin.d $excludes @PACKAGE_DIRECTORY@/*
++if [ "x at FEBOOTSTRAP_YUM_CONFIG@" != "xno" ]; then
++ extra="--yum-config '@FEBOOTSTRAP_YUM_CONFIG@'"
+ fi
+
++echo @FEBOOTSTRAP@ -v -o supermin.d --names $(< packagelist ) $excludes $extra
++ at FEBOOTSTRAP@ -v -o supermin.d --names $(< packagelist ) $excludes $extra
++
+ # Remove some things that we don't want in the appliance. This is
+ # copied from the old febootstrap-minimize. However minimization is
+ # not so important now that we are caching the appliance.
+diff --git a/configure.ac b/configure.ac
+index 682fa11..a20de9b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -200,19 +200,15 @@ if test "x$enable_appliance" = "xyes"; then
+ $FEBOOTSTRAP --version >/dev/null 2>&1 ||
+ AC_MSG_ERROR([febootstrap >= 3.0 must be installed, your version is too old])
+
+- dnl Build from local package files, used when building with no network
+- dnl access, ie. under Koji.
+- AC_MSG_CHECKING([if we should build the appliance from local packages])
+- AC_ARG_WITH([local-package-directory],
+- [AS_HELP_STRING([--with-local-package-directory],
+- [build from local packages in dir @<:@default=no@:>@])],
+- [local_package_directory=$withval],
+- [local_package_directory=no])
+- AC_MSG_RESULT([$local_package_directory])
+- PACKAGE_DIRECTORY=
+- test "x$local_package_directory" != "xno" &&
+- PACKAGE_DIRECTORY="$local_package_directory"
+- AC_SUBST([PACKAGE_DIRECTORY])
++ dnl Pass a febootstrap --yum-config option.
++ AC_MSG_CHECKING([febootstrap --yum-config option])
++ AC_ARG_WITH([febootstrap-yum-config],
++ [AS_HELP_STRING([--with-febootstrap-yum-config=FILE],
++ [pass febootstrap --yum-config option @<:@default=no@:>@])],
++ [FEBOOTSTRAP_YUM_CONFIG="$withval"],
++ [FEBOOTSTRAP_YUM_CONFIG=no])
++ AC_MSG_RESULT([$FEBOOTSTRAP_YUM_CONFIG])
++ AC_SUBST([FEBOOTSTRAP_YUM_CONFIG])
+
+ dnl Which distro?
+ dnl
+--
+1.7.3.2
+
diff --git a/libguestfs.spec b/libguestfs.spec
index c4ddb4d..bdb2f33 100644
--- a/libguestfs.spec
+++ b/libguestfs.spec
@@ -30,7 +30,7 @@ Summary: Access and modify virtual machine disk images
Name: libguestfs
Epoch: 1
Version: 1.7.19
-Release: 1%{?dist}
+Release: 2%{?dist}
License: LGPLv2+
Group: Development/Libraries
URL: http://libguestfs.org/
@@ -40,16 +40,23 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
# Disable FUSE tests, not supported in Koji at the moment.
Patch0: libguestfs-1.7.13-no-fuse-test.patch
+# Disable test for RHBZ#576879 which wasn't working (or bug reappeared).
+Patch1: 0001-regressions-Disable-test-for-576879.patch
+# Add --with-febootstrap-yum-config option.
+Patch2: 0002-Add-with-febootstrap-yum-config.patch
+BuildRequires: autoconf, automake, libtool, gettext-devel
+
# Basic build requirements:
BuildRequires: /usr/bin/pod2man
BuildRequires: /usr/bin/pod2text
-BuildRequires: febootstrap >= 3.0
+BuildRequires: febootstrap >= 3.1
BuildRequires: hivex-devel >= 1.2.2
BuildRequires: augeas-devel >= 0.5.0
BuildRequires: readline-devel
BuildRequires: genisoimage
BuildRequires: libxml2-devel
BuildRequires: qemu-kvm >= 0.10-7
+BuildRequires: createrepo
BuildRequires: glibc-static
BuildRequires: libselinux-devel
BuildRequires: fuse-devel
@@ -121,7 +128,7 @@ BuildRequires: qemu-img
# Runtime requires:
Requires: qemu-kvm >= 0.12
-Requires: febootstrap >= 3.0
+Requires: febootstrap >= 3.1
# For libguestfs-test-tool.
Requires: genisoimage
@@ -421,6 +428,10 @@ php-%{name} contains PHP bindings for %{name}.
%setup -q
%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+autoreconf -i
+rm appliance/make.sh
mkdir -p daemon/m4
@@ -431,7 +442,17 @@ mkdir -p daemon/m4
%else
mkdir repo
find /var/cache/yum -type f -name '*.rpm' -print0 | xargs -0 cp -t repo
-%define extra --with-local-package-directory=$(pwd)/repo
+createrepo repo
+cp /etc/yum.conf yum.conf
+cat >> yum.conf <<EOF
+[local]
+name=local
+baseurl=file://$(pwd)/repo
+failovermethod=priority
+enabled=1
+gpgcheck=0
+EOF
+%define extra --with-febootstrap-yum-config=$(pwd)/yum.conf
%endif
./configure \
@@ -717,6 +738,9 @@ rm -rf $RPM_BUILD_ROOT
%changelog
+* Mon Dec 6 2010 Richard Jones <rjones at redhat.com> - 1:1.7.19-2
+- Rebuild appliance properly using febootstrap 3.1 and alternate yum repo.
+
* Sun Dec 5 2010 Richard Jones <rjones at redhat.com> - 1:1.7.19-1
- New upstream development version 1.7.19.
- Appliance building in this version has been substantially rewritten
More information about the scm-commits
mailing list