release 0.9.6-4 of libvirt, take 2

- eliminate crash of shunloadtest encountered during build
- "fedora-13" machine type patch was missing a hunk.
- specfile needed to BuildRequires: autoconf tools because
  the new virtime APIs require re-running autoconf.
remotes/origin/f16
Laine Stump 2011-12-19 15:14:56 -05:00
parent 1dd1aab12e
commit ac5ee8c94d
4 changed files with 198 additions and 11 deletions

View File

@ -0,0 +1,45 @@
From 7a1eb2ead5d441e3604070e8fe89cce475cc45a8 Mon Sep 17 00:00:00 2001
From: "Daniel P. Berrange" <berrange@redhat.com>
Date: Thu, 1 Dec 2011 11:33:50 -0500
Subject: [PATCH] Avoid crash in shunloadtest
For unknown reasons, the shunloadtest will crash on Fedora 16
inside dlopen()
(gdb) bt
#0 0x00000000000050e6 in ?? ()
#1 0x00007ff61a77b9d5 in floor () from /lib64/libm.so.6
#2 0x00007ff61e522963 in _dl_relocate_object () from /lib64/ld-linux-x86-64.so.2
#3 0x00007ff61e5297e6 in dl_open_worker () from /lib64/ld-linux-x86-64.so.2
#4 0x00007ff61e525006 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2
#5 0x00007ff61e52917a in _dl_open () from /lib64/ld-linux-x86-64.so.2
#6 0x00007ff61e0f6f26 in dlopen_doit () from /lib64/libdl.so.2
#7 0x00007ff61e525006 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2
#8 0x00007ff61e0f752f in _dlerror_run () from /lib64/libdl.so.2
#9 0x00007ff61e0f6fc1 in dlopen@@GLIBC_2.2.5 () from /lib64/libdl.so.2
#10 0x0000000000400a15 in main (argc=<optimized out>, argv=<optimized out>) at shunloadtest.c:105
Changing from RTLD_NOW to RTLD_LAZY avoids this problem,
but quite possibly does not fix the root cause.
* shunloadtest.c: s/NOW/LAZY/
---
tests/shunloadtest.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/tests/shunloadtest.c b/tests/shunloadtest.c
index 2cdb8b8..ab6e56f 100644
--- a/tests/shunloadtest.c
+++ b/tests/shunloadtest.c
@@ -102,7 +102,7 @@ int main(int argc ATTRIBUTE_UNUSED, char **argv)
fprintf(stderr, " .%*s 1 ", 39, "");
signal(SIGSEGV, sigHandler);
- if (!(lib = dlopen("./.libs/libshunload.so", RTLD_NOW))) {
+ if (!(lib = dlopen("./.libs/libshunload.so", RTLD_LAZY))) {
fprintf(stderr, "Cannot load ./.libs/libshunload.so %s\n", dlerror());
return 1;
}
--
1.7.7.4

View File

@ -1,7 +1,8 @@
From 3007fc36e4b437bf5ffe9dee4883e68e49740c92 Mon Sep 17 00:00:00 2001
From eaf056bf995558ecf6620ce031287f3aa81b66de Mon Sep 17 00:00:00 2001
From: Laine Stump <laine@laine.org>
Date: Tue, 6 Dec 2011 12:47:28 -0500
Subject: [PATCH] qemu: replace deprecated fedora-13 machine type with pc-0.14
Subject: [PATCH 1/2] qemu: replace deprecated fedora-13 machine type with
pc-0.14
This addresses https://bugzilla.redhat.com/show_bug.cgi?id=754772 .
It should only be applied to Fedora builds of libvirt, F15 and
@ -60,11 +61,11 @@ and since that machine type is treated specially by the rest of this
patch, it was failing. That has been changed in a separate patch,
which must be applied with this patch, and which *is* also upstream).
---
src/conf/domain_conf.c | 52 +++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 49 insertions(+), 3 deletions(-)
src/conf/domain_conf.c | 62 +++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 59 insertions(+), 3 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 318f523..4f4163e 100644
index 318f523..7906bb8 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -7500,7 +7500,25 @@ virDomainDefPtr virDomainDefParseString(virCapsPtr caps,
@ -94,14 +95,15 @@ index 318f523..4f4163e 100644
}
virDomainDefPtr virDomainDefParseFile(virCapsPtr caps,
@@ -10648,8 +10666,20 @@ virDomainDefFormatInternal(virDomainDefPtr def,
@@ -10648,8 +10666,30 @@ virDomainDefFormatInternal(virDomainDefPtr def,
virBufferAddLit(buf, " <type");
if (def->os.arch)
virBufferAsprintf(buf, " arch='%s'", def->os.arch);
- if (def->os.machine)
- virBufferAsprintf(buf, " machine='%s'", def->os.machine);
+ if (def->os.machine) {
+ /* Fedora-specific HACK - replace "fedora-13" with "pc-0.14".
+ /* Fedora-specific HACK - replace "fedora-13" with "pc-0.14"
+ * (in the original DomainDef as well as in the xml output).
+ * This will catch XML being written to save/migration images
+ * of domains that were running when libvirtd was restarted at
+ * the time of upgrade.
@ -110,6 +112,15 @@ index 318f523..4f4163e 100644
+ virBufferAddLit(buf, " machine='pc-0.14'");
+ VIR_WARN("substituting machine type 'fedora-13' with 'pc-0.14' "
+ "in domain %s", def->name);
+ /* It's not exactly nice to modify the source object,
+ * but sometimes virDomainFormat is called > 100 times for the
+ * same object, which would result in far too many warning logs.
+ */
+ VIR_FREE(def->os.machine);
+ if (!(def->os.machine = strdup("pc-0.14"))) {
+ virReportOOMError();
+ goto cleanup;
+ }
+ } else {
+ virBufferAsprintf(buf, " machine='%s'", def->os.machine);
+ }
@ -117,7 +128,7 @@ index 318f523..4f4163e 100644
/*
* HACK: For xen driver we previously used bogus 'linux' as the
* os type for paravirt, whereas capabilities declare it to
@@ -11100,6 +11130,22 @@ static virDomainObjPtr virDomainLoadConfig(virCapsPtr caps,
@@ -11100,6 +11140,22 @@ static virDomainObjPtr virDomainLoadConfig(virCapsPtr caps,
VIR_DOMAIN_XML_INACTIVE)))
goto error;
@ -141,5 +152,5 @@ index 318f523..4f4163e 100644
goto error;
--
1.7.7.3
1.7.7.4

View File

@ -0,0 +1,109 @@
From 473e5ca36260011a330e1e3bf8f4f3b6865b5638 Mon Sep 17 00:00:00 2001
From: Eric Blake <eblake@redhat.com>
Date: Mon, 5 Dec 2011 10:22:10 -0700
Subject: [PATCH 2/2] spec: make it easier to autoreconf when building rpm
Over time, Fedora and RHEL RPMs have often backported upstream
patches that touched configure.ac and/or Makefile.am; this
necessitates rerunning the autotools for the patch to be effective.
Making this a one-liner spec tweak will make it easier for future
backports to pull patches without having to find all the places
to touch to properly use the autotools. Meanwhile, there have been
historical instances where an update in the autotools caused FTBFS
situations, so this is not on by default.
* libvirt.spec.in (enable_autotools): New variable, default off.
(BuildRequires): Conditionally add autotools.
(%build): Conditionally use them before configure.
* mingw32-libvirt.spec.in: Likewise.
Conflicts:
mingw32-libvirt.spec.in - caused by change in context
---
libvirt.spec.in | 14 ++++++++++++++
mingw32-libvirt.spec.in | 15 +++++++++++++++
2 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/libvirt.spec.in b/libvirt.spec.in
index cfc3a43..8579ba8 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -8,6 +8,11 @@
sed -ne 's/^\.fc\?\([0-9]\+\).*/%%define fedora \1/p')}
%endif
+# Default to skipping autoreconf. Distros can change just this one line
+# (or provide a command-line override) if they backport any patches that
+# touch configure.ac or Makefile.am.
+%{!?enable_autotools:%define enable_autotools 0}
+
# A client only build will create a libvirt.so only containing
# the generic RPC driver, and test driver and no libvirtd
# Default to a full server + client build
@@ -330,6 +335,12 @@ Requires: libcgroup
Requires: dmidecode
# All build-time requirements
+%if 0%{?enable_autotools}
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: gettext-devel
+BuildRequires: libtool
+%endif
BuildRequires: python-devel
%if %{with_xen}
@@ -700,6 +711,9 @@ of recent versions of Linux (and other OSes).
%define with_packager_version --with-packager-version="%{release}"
+%if 0%{?enable_autotools}
+autoreconf -if
+%endif
%configure %{?_without_xen} \
%{?_without_qemu} \
%{?_without_openvz} \
diff --git a/mingw32-libvirt.spec.in b/mingw32-libvirt.spec.in
index f651d11..e071c38 100644
--- a/mingw32-libvirt.spec.in
+++ b/mingw32-libvirt.spec.in
@@ -5,6 +5,11 @@
%define __find_provides %{_mingw32_findprovides}
%define __debug_install_post %{_mingw32_debug_install_post}
+# Default to skipping autoreconf. Distros can change just this one line
+# (or provide a command-line override) if they backport any patches that
+# touch configure.ac or Makefile.am.
+%{!?enable_autotools:%define enable_autotools 0}
+
Name: mingw32-libvirt
Version: @VERSION@
Release: 3%{?dist}%{?extra_release}
@@ -28,6 +33,12 @@ BuildRequires: mingw32-portablexdr
BuildRequires: pkgconfig
# Need native version for msgfmt
BuildRequires: gettext
+%if 0%{?enable_autotools}
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: gettext-devel
+BuildRequires: libtool
+%endif
BuildArch: noarch
@@ -42,6 +53,10 @@ MinGW Windows libvirt virtualization library.
%build
+%if 0%{?enable_autotools}
+autoreconf -if
+%endif
+
# XXX enable SASL in future
%{_mingw32_configure} \
--without-sasl \
--
1.7.7.4

View File

@ -8,6 +8,14 @@
sed -ne 's/^\.fc\?\([0-9]\+\).*/%%define fedora \1/p')}
%endif
# Default to skipping autoreconf. Distros can change just this one line
# (or provide a command-line override) if they backport any patches that
# touch configure.ac or Makefile.am.
# (Fedora 16 has to turn this on because changes have been made to
# configure.ac and Makefile.am for the addition of the virtime internal
# api)
%{!?enable_autotools:%define enable_autotools 1}
# A client only build will create a libvirt.so only containing
# the generic RPC driver, and test driver and no libvirtd
# Default to a full server + client build
@ -254,6 +262,8 @@ Patch12:%{name}-%{version}-spec-fix-logic-bug-in-deciding-to-turn-on-cgconfig.pa
Patch13:%{name}-%{version}-network-don-t-add-iptables-rules-for-externally-mana.patch
Patch14:%{name}-%{version}-test-replace-deprecated-fedora-13-machine.patch
Patch15:%{name}-%{version}-qemu-replace-deprecated-fedora-13-machine.patch
Patch16:%{name}-%{version}-spec-make-it-easier-to-autoreconf-when-building-rpm.patch
Patch17:%{name}-%{version}-Avoid-crash-in-shunloadtest.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
URL: http://libvirt.org/
@ -347,6 +357,12 @@ Requires: libcgroup
Requires: dmidecode
# All build-time requirements
%if 0%{?enable_autotools}
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: gettext-devel
BuildRequires: libtool
%endif
BuildRequires: python-devel
%if %{with_xen}
@ -583,6 +599,8 @@ of recent versions of Linux (and other OSes).
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
%build
%if ! %{with_xen}
@ -736,6 +754,9 @@ of recent versions of Linux (and other OSes).
%define with_packager_version --with-packager-version="%{release}"
%if 0%{?enable_autotools}
autoreconf -if
%endif
%configure %{?_without_xen} \
%{?_without_qemu} \
%{?_without_openvz} \
@ -1188,7 +1209,7 @@ fi
%endif
%changelog
* Sun Dec 18 2011 Laine Stump <laine@redhat.com> - 0.9.6-4
* Mon Dec 19 2011 Laine Stump <laine@redhat.com> - 0.9.6-4
- replace "fedora-13" machine type with "pc-0.14" to prepare
systems for removal of "fedora-13" from qemu - Bug 754772
- don't add iptables rules for externally managed networks
@ -1199,7 +1220,8 @@ fi
- Bug 738725 fix logic bug in deciding to turn on cgconfig
- Bug 754909 add dmidecode as a prerequisite
- new async-safe time API + make logging async signal sage wrt.
time stamp generation - Bug 757382
time stamp generation - Bug 757382 (this required
enabling autoconf during the build)
* Tue Oct 11 2011 Dan Horák <dan[at]danny.cz> - 0.9.6-3
- xenlight available only on Xen arches (#745020)