[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