[libvirt/f16] release 0.9.6-4 of libvirt, take 2
Laine Stump
laine at fedoraproject.org
Mon Dec 19 20:20:20 UTC 2011
commit ac5ee8c94db01d035606124423c9d17e582b25cb
Author: Laine Stump <laine at laine.org>
Date: Mon Dec 19 15:14:56 2011 -0500
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.
libvirt-0.9.6-Avoid-crash-in-shunloadtest.patch | 45 ++++++++
...qemu-replace-deprecated-fedora-13-machine.patch | 29 ++++--
...it-easier-to-autoreconf-when-building-rpm.patch | 109 ++++++++++++++++++++
libvirt.spec | 26 +++++-
4 files changed, 198 insertions(+), 11 deletions(-)
---
diff --git a/libvirt-0.9.6-Avoid-crash-in-shunloadtest.patch b/libvirt-0.9.6-Avoid-crash-in-shunloadtest.patch
new file mode 100644
index 0000000..e1a2b95
--- /dev/null
+++ b/libvirt-0.9.6-Avoid-crash-in-shunloadtest.patch
@@ -0,0 +1,45 @@
+From 7a1eb2ead5d441e3604070e8fe89cce475cc45a8 Mon Sep 17 00:00:00 2001
+From: "Daniel P. Berrange" <berrange at 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
+
diff --git a/libvirt-0.9.6-qemu-replace-deprecated-fedora-13-machine.patch b/libvirt-0.9.6-qemu-replace-deprecated-fedora-13-machine.patch
index 50cea33..4562df7 100644
--- a/libvirt-0.9.6-qemu-replace-deprecated-fedora-13-machine.patch
+++ b/libvirt-0.9.6-qemu-replace-deprecated-fedora-13-machine.patch
@@ -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 at 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
diff --git a/libvirt-0.9.6-spec-make-it-easier-to-autoreconf-when-building-rpm.patch b/libvirt-0.9.6-spec-make-it-easier-to-autoreconf-when-building-rpm.patch
new file mode 100644
index 0000000..be78831
--- /dev/null
+++ b/libvirt-0.9.6-spec-make-it-easier-to-autoreconf-when-building-rpm.patch
@@ -0,0 +1,109 @@
+From 473e5ca36260011a330e1e3bf8f4f3b6865b5638 Mon Sep 17 00:00:00 2001
+From: Eric Blake <eblake at 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
+
diff --git a/libvirt.spec b/libvirt.spec
index 8ad5578..b761536 100644
--- a/libvirt.spec
+++ b/libvirt.spec
@@ -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 at redhat.com> - 0.9.6-4
+* Mon Dec 19 2011 Laine Stump <laine at 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)
More information about the scm-commits
mailing list