[packages/qemu-kvm: 1/2] - unified build options and bconds with qemu
qboosh
qboosh at pld-linux.org
Tue Nov 6 19:49:26 CET 2012
commit b8be5aa41fd2320dced3f6d1085bf9e1ab8a4325
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Tue Nov 6 19:48:56 2012 +0100
- unified build options and bconds with qemu
qemu-cflags.patch | 24 ++++++++
qemu-kvm.spec | 156 ++++++++++++++++++++++++++++++++--------------------
qemu-usbredir.patch | 15 +++++
3 files changed, 136 insertions(+), 59 deletions(-)
---
diff --git a/qemu-kvm.spec b/qemu-kvm.spec
index 4925fb5..f63bf27 100644
--- a/qemu-kvm.spec
+++ b/qemu-kvm.spec
@@ -1,6 +1,13 @@
#
# Conditional build:
-%bcond_without spice # SPICE support
+%bcond_without sdl # SDL UI and audio support
+%bcond_without opengl # OpenGL support
+%bcond_without ceph # Ceph/RBD support
+%bcond_without spice # SPICE support
+%bcond_with esd # EsounD audio support
+%bcond_without oss # OSS audio support
+%bcond_without pulseaudio # PulseAudio audio support
+%bcond_without xen # Xen backend driver support
#
Summary: QEMU CPU Emulator
Summary(pl.UTF-8): QEMU - emulator procesora
@@ -29,34 +36,50 @@ Source11: qemu-guest-agent.service
Source12: 99-qemu-guest-agent.rules
Patch0: %{name}-whitelist.patch
Patch1: %{name}-fixes.patch
+Patch2: qemu-cflags.patch
+Patch3: qemu-usbredir.patch
URL: http://www.linux-kvm.org/
-BuildRequires: SDL-devel >= 1.2.1
+%{?with_opengl:BuildRequires: OpenGL-GLX-devel}
+%{?with_sdl:BuildRequires: SDL-devel >= 1.2.1}
BuildRequires: alsa-lib-devel
BuildRequires: bluez-libs-devel
BuildRequires: brlapi-devel
-BuildRequires: ceph-devel
-BuildRequires: check-devel
+%{?with_ceph:BuildRequires: ceph-devel}
+BuildRequires: curl-devel
+BuildRequires: cyrus-sasl-devel >= 2
+%{?with_esd:BuildRequires: esound-devel}
+BuildRequires: glib2-devel >= 1:2.12
BuildRequires: gnutls-devel
BuildRequires: libaio-devel
-BuildRequires: libevent-devel
+BuildRequires: libcap-devel
+BuildRequires: libcap-ng-devel
BuildRequires: libfdt-devel
BuildRequires: libiscsi-devel
+BuildRequires: libjpeg-devel
+BuildRequires: libpng-devel
+BuildRequires: libseccomp-devel
+BuildRequires: libuuid-devel
BuildRequires: ncurses-devel
-BuildRequires: pciutils-devel
+BuildRequires: nss-devel >= 3.12.8
BuildRequires: perl-Encode
BuildRequires: perl-tools-pod
BuildRequires: pkgconfig
-BuildRequires: pulseaudio-devel
+%{?with_pulseaudio:BuildRequires: pulseaudio-devel}
BuildRequires: rpmbuild(macros) >= 1.644
BuildRequires: sed >= 4.0
%if %{with spice}
-BuildRequires: spice-protocol
-BuildRequires: spice-server-devel
+BuildRequires: spice-protocol >= 0.8.0
+BuildRequires: spice-server-devel >= 0.8.2
%endif
BuildRequires: texi2html
-BuildRequires: usbredir-devel
+BuildRequires: texinfo
+BuildRequires: usbredir-devel >= 0.3.4
+BuildRequires: vde2-devel
BuildRequires: which
+%{?with_xen:BuildRequires: xen-devel >= 3.4}
+BuildRequires: xfsprogs-devel
BuildRequires: xorg-lib-libX11-devel
+BuildRequires: zlib-devel
Requires: %{name}-img = %{version}-%{release}
Requires: %{name}-system-alpha = %{version}-%{release}
Requires: %{name}-system-arm = %{version}-%{release}
@@ -66,9 +89,11 @@ Requires: %{name}-system-m68k = %{version}-%{release}
Requires: %{name}-system-microblaze = %{version}-%{release}
Requires: %{name}-system-mips = %{version}-%{release}
Requires: %{name}-system-ppc = %{version}-%{release}
+Requires: %{name}-system-or32 = %{version}-%{release}
Requires: %{name}-system-s390x = %{version}-%{release}
Requires: %{name}-system-sh4 = %{version}-%{release}
Requires: %{name}-system-sparc = %{version}-%{release}
+Requires: %{name}-system-unicore32 = %{version}-%{release}
Requires: %{name}-system-x86 = %{version}-%{release}
Requires: %{name}-system-xtensa = %{version}-%{release}
Requires: %{name}-user = %{version}-%{release}
@@ -76,6 +101,9 @@ Provides: qemu = %{version}-%{release}
Obsoletes: qemu
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+%define systempkg_req \
+Requires: SDL >= 1.2.1
+
# some PPC/SPARC boot image in ELF format
%define _noautostrip .*%{_datadir}/qemu/.*
@@ -121,7 +149,7 @@ Requires(pre): /usr/bin/getgid
Requires(pre): /usr/sbin/groupadd
Requires(pre): /usr/sbin/useradd
Requires(post,preun,postun): systemd-units >= 38
-Requires: SDL >= 1.2.1
+Requires: glib2 >= 1:2.12
Provides: group(kvm)
Provides: qemu-common
Requires: systemd-units >= 38
@@ -179,6 +207,7 @@ Summary: QEMU system emulator for Alpha
Summary(pl.UTF-8): QEMU - emulator systemu z procesorem Alpha
Group: Development/Tools
Requires: %{name}-common = %{version}-%{release}
+%systempkg_req
%description system-alpha
QEMU is a generic and open source processor emulator which achieves a
@@ -197,6 +226,7 @@ Summary: QEMU system emulator for ARM
Summary(pl.UTF-8): QEMU - emulator systemu z procesorem ARM
Group: Development/Tools
Requires: %{name}-common = %{version}-%{release}
+%systempkg_req
%description system-arm
QEMU is a generic and open source processor emulator which achieves a
@@ -215,6 +245,7 @@ Summary: QEMU system emulator for CRIS
Summary(pl.UTF-8): QEMU - emulator systemu z procesorem CRIS
Group: Development/Tools
Requires: %{name}-common = %{version}-%{release}
+%systempkg_req
%description system-cris
QEMU is a generic and open source processor emulator which achieves a
@@ -233,6 +264,7 @@ Summary: QEMU system emulator for LM32
Summary(pl.UTF-8): QEMU - emulator systemu z procesorem LM32
Group: Development/Tools
Requires: %{name}-common = %{version}-%{release}
+%systempkg_req
%description system-lm32
QEMU is a generic and open source processor emulator which achieves a
@@ -251,6 +283,7 @@ Summary: QEMU system emulator for m68k
Summary(pl.UTF-8): QEMU - emulator systemu z procesorem m68k
Group: Development/Tools
Requires: %{name}-common = %{version}-%{release}
+%systempkg_req
%description system-m68k
QEMU is a generic and open source processor emulator which achieves a
@@ -269,6 +302,7 @@ Summary: QEMU system emulator for MicroBlaze
Summary(pl.UTF-8): QEMU - emulator systemu z procesorem MicroBlaze
Group: Development/Tools
Requires: %{name}-common = %{version}-%{release}
+%systempkg_req
%description system-microblaze
QEMU is a generic and open source processor emulator which achieves a
@@ -287,6 +321,7 @@ Summary: QEMU system emulator for MIPS
Summary(pl.UTF-8): QEMU - emulator systemu z procesorem MIPS
Group: Development/Tools
Requires: %{name}-common = %{version}-%{release}
+%systempkg_req
%description system-mips
QEMU is a generic and open source processor emulator which achieves a
@@ -305,6 +340,7 @@ Summary: QEMU system emulator for OpenRISC
Summary(pl.UTF-8): QEMU - emulator systemu z procesorem OpenRISC
Group: Development/Tools
Requires: %{name}-common = %{version}-%{release}
+%systempkg_req
%description system-or32
QEMU is a generic and open source processor emulator which achieves a
@@ -323,6 +359,7 @@ Summary: QEMU system emulator for PowerPC
Summary(pl.UTF-8): QEMU - emulator systemu z procesorem PowerPC
Group: Development/Tools
Requires: %{name}-common = %{version}-%{release}
+%systempkg_req
%description system-ppc
QEMU is a generic and open source processor emulator which achieves a
@@ -341,6 +378,7 @@ Summary: QEMU system emulator for S390
Summary(pl.UTF-8): QEMU - emulator systemu z procesorem S390
Group: Development/Tools
Requires: %{name}-common = %{version}-%{release}
+%systempkg_req
%description system-s390x
QEMU is a generic and open source processor emulator which achieves a
@@ -359,6 +397,7 @@ Summary: QEMU system emulator for SH4
Summary(pl.UTF-8): QEMU - emulator systemu z procesorem SH4
Group: Development/Tools
Requires: %{name}-common = %{version}-%{release}
+%systempkg_req
%description system-sh4
QEMU is a generic and open source processor emulator which achieves a
@@ -377,6 +416,7 @@ Summary: QEMU system emulator for SPARC
Summary(pl.UTF-8): QEMU - emulator systemu z procesorem SPARC
Group: Development/Tools
Requires: %{name}-common = %{version}-%{release}
+%systempkg_req
%description system-sparc
QEMU is a generic and open source processor emulator which achieves a
@@ -395,6 +435,7 @@ Summary: QEMU system emulator for UniCore32
Summary(pl.UTF-8): QEMU - emulator systemu z procesorem UniCore32
Group: Development/Tools
Requires: %{name}-common = %{version}-%{release}
+%systempkg_req
%description system-unicore32
QEMU is a generic and open source processor emulator which achieves a
@@ -413,6 +454,7 @@ Summary: QEMU system emulator for x86
Summary(pl.UTF-8): QEMU - emulator systemu z procesorem x86
Group: Development/Tools
Requires: %{name}-common = %{version}-%{release}
+%systempkg_req
Obsoletes: kvm
%description system-x86
@@ -436,6 +478,7 @@ Summary: QEMU system emulator for Xtensa
Summary(pl.UTF-8): QEMU - emulator systemu z procesorem Xtensa
Group: Development/Tools
Requires: %{name}-common = %{version}-%{release}
+%systempkg_req
%description system-xtensa
QEMU is a generic and open source processor emulator which achieves a
@@ -454,6 +497,7 @@ Summary: QEMU guest agent
Summary(pl.UTF-8): Agent gościa QEMU
Group: Daemons
Requires(post,preun,postun): systemd-units >= 38
+Requires: glib2 >= 1:2.12
Requires: systemd-units >= 38
%description guest-agent
@@ -480,6 +524,8 @@ Ten pakiet nie musi być zainstalowany w systemie hosta.
%setup -q
%patch0 -p1
%patch1 -p1
+%patch2 -p1
+%patch3 -p1
cp -a %{SOURCE1} pc-bios/bios.bin
@@ -487,6 +533,38 @@ cp -a %{SOURCE1} pc-bios/bios.bin
ln -s ../error.h qapi/error.h
%build
+common_opts="\
+ --disable-strip \
+ --enable-attr \
+ --enable-bluez \
+ --enable-brlapi \
+ --enable-cap-ng \
+ --enable-curl \
+ --enable-curses \
+ --enable-docs \
+ --enable-fdt \
+ --enable-libiscsi \
+ --enable-mixemu \
+ %{__enable_disable opengl} \
+ %{__enable_disable ceph rbd} \
+ %{__enable_disable sdl} \
+ --enable-seccomp \
+ %{__enable_disable spice} \
+ --enable-smartcard \
+ --enable-smartcard-nss \
+ --enable-usb-redir \
+ --enable-uuid \
+ --enable-vde \
+ --enable-virtfs \
+ --enable-vnc-jpeg \
+ --enable-vnc-png \
+ --enable-vnc-sasl \
+ --enable-vnc-tls \
+ %{__enable_disable xen} \
+ --audio-drv-list=alsa%{?with_oss:,oss}%{?with_sdl:,sdl}%{?with_esd:,esd}%{?with_pulseaudio:,pa} \
+ --audio-card-list=ac97,es1370,sb16,cs4231a,adlib,gus,hda \
+ --interp-prefix=%{_libdir}/qemu/lib-%%M"
+
%ifarch %{ix86} %{x8664}
./configure \
--target-list="x86_64-softmmu" \
@@ -496,37 +574,18 @@ ln -s ../error.h qapi/error.h
--sysconfdir=%{_sysconfdir} \
--cc="%{__cc}" \
--host-cc="%{__cc}" \
- --enable-vnc \
- --enable-vnc-tls \
- --enable-vnc-sasl \
- --enable-vnc-jpeg \
- --enable-vnc-png \
- --enable-curses \
- --enable-bluez \
+ $common_opts \
--enable-kvm \
- --enable-system \
- --enable-user \
- --enable-mixemu \
- --enable-uuid \
- --enable-attr \
- --enable-vhost-net \
- --enable-smartcard \
- --enable-guest-agent \
- --enable-docs \
- --audio-drv-list="alsa,pa,sdl,oss" \
- --audio-card-list="ac97,es1370,sb16,cs4231a,adlib,gus,hda" \
- --interp-prefix=%{_prefix}/qemu-%%M \
- %{__enable_disable spice} \
- --disable-strip
+ --enable-system
# note: CONFIG_QEMU_HELPERDIR is used when compiling, libexecdir when installing;
# --libexecdir in configure is nop
%{__make} \
- V=99 \
+ V=1 \
CONFIG_QEMU_HELPERDIR="%{_libdir}"
cp -a x86_64-softmmu/qemu-system-x86_64 qemu-kvm
%{__make} clean \
- V=99
+ V=1
%endif
./configure \
@@ -537,35 +596,14 @@ cp -a x86_64-softmmu/qemu-system-x86_64 qemu-kvm
--sysconfdir=%{_sysconfdir} \
--cc="%{__cc}" \
--host-cc="%{__cc}" \
- --enable-vnc \
- --enable-vnc-tls \
- --enable-vnc-sasl \
- --enable-vnc-jpeg \
- --enable-vnc-png \
- --enable-curses \
- --enable-bluez \
+ $common_opts \
--disable-kvm \
- --enable-system \
- --enable-user \
- --enable-mixemu \
- --enable-uuid \
- --enable-attr \
- --enable-vhost-net \
- --enable-smartcard \
- --enable-guest-agent \
- --enable-docs \
- --audio-drv-list="alsa,pa,sdl,oss" \
- --audio-card-list="ac97,es1370,sb16,cs4231a,adlib,gus,hda" \
- --interp-prefix=%{_prefix}/qemu-%%M \
-%ifarch %{ix86} %{x8664}
- %{__enable_disable spice} \
-%endif
- --disable-strip
+ --enable-system
# note: CONFIG_QEMU_HELPERDIR is used when compiling, libexecdir when installing;
# --libexecdir in configure is nop
%{__make} \
- V=99 \
+ V=1 \
CONFIG_QEMU_HELPERDIR="%{_libdir}"
%{__cc} %{SOURCE7} %{rpmcflags} -o ksmctl
@@ -577,7 +615,7 @@ install -d $RPM_BUILD_ROOT{%{systemdunitdir},/usr/lib/binfmt.d} \
$RPM_BUILD_ROOT{%{_sysconfdir}/sasl,%{_sbindir}}
%{__make} install \
- V=99 \
+ V=1 \
DESTDIR=$RPM_BUILD_ROOT \
libexecdir=%{_libdir}
diff --git a/qemu-cflags.patch b/qemu-cflags.patch
new file mode 100644
index 0000000..15774d8
--- /dev/null
+++ b/qemu-cflags.patch
@@ -0,0 +1,24 @@
+--- qemu-1.2.0/configure.orig 2012-09-05 16:03:06.000000000 +0200
++++ qemu-1.2.0/configure 2012-09-23 18:41:12.717279277 +0200
+@@ -281,10 +281,6 @@
+ QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS"
+ QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS"
+ QEMU_INCLUDES="-I. -I\$(SRC_PATH) -I\$(SRC_PATH)/fpu"
+-if test "$debug_info" = "yes"; then
+- CFLAGS="-g $CFLAGS"
+- LDFLAGS="-g $LDFLAGS"
+-fi
+
+ # make source path absolute
+ source_path=`cd "$source_path"; pwd`
+@@ -2995,10 +2991,6 @@
+ # End of CC checks
+ # After here, no more $cc or $ld runs
+
+-if test "$debug" = "no" ; then
+- CFLAGS="-O2 -D_FORTIFY_SOURCE=2 $CFLAGS"
+-fi
+-
+ # Disable zero malloc errors for official releases unless explicitly told to
+ # enable/disable
+ if test -z "$zero_malloc" ; then
diff --git a/qemu-usbredir.patch b/qemu-usbredir.patch
new file mode 100644
index 0000000..ce791a4
--- /dev/null
+++ b/qemu-usbredir.patch
@@ -0,0 +1,15 @@
+--- qemu-1.2.0/configure.orig 2012-10-22 19:32:36.328942334 +0200
++++ qemu-1.2.0/configure 2012-10-27 13:42:38.111694222 +0200
+@@ -2752,6 +2752,12 @@
+ usb_redir_libs=$($pkg_config --libs libusbredirparser 2>/dev/null)
+ QEMU_CFLAGS="$QEMU_CFLAGS $usb_redir_cflags"
+ LIBS="$LIBS $usb_redir_libs"
++ elif $pkg_config libusbredirparser-0.5 >/dev/null 2>&1 ; then
++ usb_redir="yes"
++ usb_redir_cflags=$($pkg_config --cflags libusbredirparser-0.5 2>/dev/null)
++ usb_redir_libs=$($pkg_config --libs libusbredirparser-0.5 2>/dev/null)
++ QEMU_CFLAGS="$QEMU_CFLAGS $usb_redir_cflags"
++ LIBS="$LIBS $usb_redir_libs"
+ else
+ if test "$usb_redir" = "yes"; then
+ feature_not_found "usb-redir"
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/qemu-kvm.git/commitdiff/816f0d797725d442fd2d3a163e8c1f81803be42c
More information about the pld-cvs-commit
mailing list