[libvirt] [PATCHv3 1/2] spec: make it easier to autoreconf when building rpm
Eric Blake
eblake at redhat.com
Thu Dec 8 18:13:14 UTC 2011
On 12/08/2011 08:12 AM, Daniel P. Berrange wrote:
> On Thu, Dec 08, 2011 at 01:27:37PM +0000, Daniel P. Berrange wrote:
>> On Thu, Dec 08, 2011 at 01:04:27PM +0000, Daniel P. Berrange wrote:
>>> On Tue, Dec 06, 2011 at 04:47:27PM -0700, Eric Blake wrote:
>>>> 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 (BuildRequires): Add autotools.
>>>> (%build): Conditionally use them before configure.
>>> +%{?enable_autotools:%define enable_autotools 0}
>> I've just tried this and it doesn't actually work. You need
Ah, you're right. It says:
if enable_autotools was defined, redefine it to 0
if enable_autotools was not defined, do nothing
>>
>> %define enable_autotools %{?enable_autotools:0}
That's not quite right, either. It says:
if enable_autotools was defined, redefine it to 0
if enable_autotools was undefined, define it to an empty string
I did more testing, and one correct answer is:
%{!?enable_autotools:%define enable_autotools 0}
read as:
if enable_autotools is not defined, define it to 0
if enable_autotools is defined, leave it alone (whether 0 or 1)
Another correct answer is:
%define enable_autotools 0%{?enable_autotools}
read as:
if enable_autotools is defined, redefine it to the concatenation of 0
and its previous value
if enable_autotools is undefined, define it to 0
>
> There also needs to be a
>
> BuildRequires: gettext-devel
>
> since autoreconf runs autopoint which isn't in the build root
Glad we deferred this to post-0.9.8, then. Pushed with those fixes, as
well as copying to the mingw spec file:
diff --git i/libvirt.spec.in w/libvirt.spec.in
index 0584b0c..0a3b00d 100644
--- i/libvirt.spec.in
+++ w/libvirt.spec.in
@@ -11,7 +11,7 @@
# 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}
+%{!?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
@@ -357,6 +357,7 @@ Requires(postun): systemd-units
%if 0%{?enable_autotools}
BuildRequires: autoconf
BuildRequires: automake
+BuildRequires: gettext-devel
BuildRequires: libtool
%endif
BuildRequires: python-devel
diff --git i/mingw32-libvirt.spec.in w/mingw32-libvirt.spec.in
index 89d1d7f..06ff601 100644
--- i/mingw32-libvirt.spec.in
+++ w/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}
+
# The mingw build is client only. Set up defaults for hypervisor drivers
# that talk via a native remote protocol, and for which prereq mingw
# libraries exist.
@@ -44,6 +49,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
%if %{with_phyp}
BuildRequires: mingw32-libssh2
@@ -81,6 +92,9 @@ MinGW Windows libvirt virtualization library.
%define _without_xenapi --without-xenapi
%endif
+%if 0%{?enable_autotools}
+autoreconf -if
+%endif
# XXX enable SASL in future
%{_mingw32_configure} \
--without-xen \
--
Eric Blake eblake at redhat.com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 620 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20111208/0d5d6b27/attachment-0001.sig>
More information about the libvir-list
mailing list