X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=qemu.spec;h=825f64416d79cec76d5f9697e351f48679dffe6d;hb=78ff8fc083f0d8478bce1db5c14827075d5d6cad;hp=fa0685dd236896bb870cc638e894c6c3e11ae6fe;hpb=a9a35ffb101f259f37aafbda33bb1346e5b5680a;p=packages%2Fqemu.git diff --git a/qemu.spec b/qemu.spec index fa0685d..825f644 100644 --- a/qemu.spec +++ b/qemu.spec @@ -1,54 +1,155 @@ # -# TODO: -# - update patches -# # Conditional build: -%bcond_with cflags_passing # with passing rpmcflags to Makefiles -%bcond_with dosguest # add special patch when use with DOS as guest os -%bcond_with nosdlgui # do not use SDL gui (use X11 instead) +%bcond_without sdl # SDL UI and audio support +%bcond_without glx # OpenGL/GLX support +%bcond_without ceph # Ceph/RBD support +%bcond_without glusterfs # GlusterFS backend +%bcond_without rdma # RDMA-based migration support +%bcond_with gtk2 # GTK+ 2.x instead of 3.x +%bcond_without gtk3 # Do not build GTK UI +%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 +%bcond_without bluetooth # bluetooth support +%bcond_without brlapi # brlapi support +%bcond_without smartcard # smartcard-nss support +%bcond_without iscsi # iscsi support +%bcond_without seccomp # seccomp support +%bcond_without usbredir # usb network redirection support + +%if %{with gtk2} +%undefine with_gtk3 +%endif Summary: QEMU CPU Emulator Summary(pl.UTF-8): QEMU - emulator procesora Name: qemu -Version: 0.12.2 +Version: 1.7.1 Release: 1 -License: GPL +License: GPL v2+ Group: Applications/Emulators -# Source0Download: http://fabrice.bellard.free.fr/qemu/download.html -Source0: http://download.savannah.gnu.org/releases/qemu/%{name}-%{version}.tar.gz -# Source0-md5: 1d7c2d95acb6d0789de86508c608e26d -Patch0: %{name}-ncurses.patch -Patch6: %{name}-nosdlgui.patch +Source0: http://wiki.qemu-project.org/download/%{name}-%{version}.tar.bz2 +# Source0-md5: 9541063d999cf9659ed7fdce71314f31 +Source2: %{name}.binfmt +# Loads kvm kernel modules at boot +Source3: kvm-modules-load.conf +# Creates /dev/kvm +Source4: 80-kvm.rules +# KSM control scripts +Source5: ksm.service +Source6: ksm.sysconfig +Source7: ksmctl.c +Source8: ksmtuned.service +Source9: ksmtuned +Source10: ksmtuned.conf +Source11: %{name}-guest-agent.service +Source12: 99-%{name}-guest-agent.rules +Patch0: %{name}-cflags.patch +Patch1: vgabios-widescreens.patch +Patch2: %{name}-whitelist.patch +Patch3: %{name}-system-libcacard.patch +Patch4: vmdk3ro.patch +Patch5: %{name}-xattr.patch +Patch6: libjpeg-boolean.patch # Proof of concept, for reference, do not remove -Patch8: %{name}-kde_virtual_workspaces_hack.patch -#Patch12: %{name}-0.7.2-dyngen-check-stack-clobbers.patch -Patch13: %{name}-dosguest.patch -Patch14: %{name}-ppc_old_binutils.patch -Patch15: %{name}-isa-bios-ram.patch -# below one fixes problems with passing ram size to bios/bootloader -# which affects coreboot/linuxbios -Patch16: %{name}-piix-ram-size.patch -URL: http://www.nongnu.org/qemu/ -BuildRequires: SDL-devel >= 1.2.1 +Patch400: %{name}-kde_virtual_workspaces_hack.patch +URL: http://www.qemu-project.org/ +%{?with_opengl:BuildRequires: OpenGL-GLX-devel} +%{?with_sdl:BuildRequires: SDL-devel >= 1.2.1} BuildRequires: alsa-lib-devel -BuildRequires: bluez-libs-devel +BuildRequires: bcc +%{?with_bluetooth:BuildRequires: bluez-libs-devel} +%{?with_brlapi:BuildRequires: brlapi-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 +%{?with_glusterfs:BuildRequires: glusterfs-devel >= 3.4} BuildRequires: gnutls-devel +BuildRequires: libaio-devel +%{?with_smartcard:BuildRequires: libcacard-devel} +BuildRequires: libcap-devel +BuildRequires: libcap-ng-devel +BuildRequires: libfdt-devel +%{?with_rdma:BuildRequires: libibverbs-devel} +%{?with_iscsi:BuildRequires: libiscsi-devel} +BuildRequires: libjpeg-devel +BuildRequires: libpng-devel +%{?with_rdma:BuildRequires: librdmacm-devel} +%{?with_seccomp:BuildRequires: libseccomp-devel} +BuildRequires: libssh2-devel >= 1.2.8 +# for usb passthrough, when available +#BuildRequires: libusb-devel >= 1.0.13 +BuildRequires: libuuid-devel BuildRequires: ncurses-devel +%{?with_smartcard:BuildRequires: nss-devel >= 3.12.8} BuildRequires: perl-Encode BuildRequires: perl-tools-pod BuildRequires: pkgconfig +%{?with_pulseaudio:BuildRequires: pulseaudio-devel} +BuildRequires: rpmbuild(macros) >= 1.644 BuildRequires: sed >= 4.0 +%if %{with spice} +BuildRequires: spice-protocol >= 0.12.0 +BuildRequires: spice-server-devel >= 0.12.0 +%endif BuildRequires: texi2html -BuildRequires: texinfo-texi2dvi +BuildRequires: texinfo +%{?with_usbredir:BuildRequires: usbredir-devel >= 0.6} +BuildRequires: vde2-devel BuildRequires: which +%{?with_xen:BuildRequires: xen-devel >= 3.4} +BuildRequires: xfsprogs-devel BuildRequires: xorg-lib-libX11-devel -Requires: SDL >= 1.2.1 -# sparc is currently unsupported (missing cpu_get_real_ticks() impl in vl.c) -ExclusiveArch: %{ix86} %{x8664} %{?with_userspace:ppc} +BuildRequires: zlib-devel +%if %{with gtk2} +BuildRequires: gtk+2-devel >= 2:2.18.0 +BuildRequires: vte0-devel >= 0.24.0 +%endif +%if %{with gtk3} +BuildRequires: gtk+3-devel >= 3.0.0 +BuildRequires: vte-devel >= 0.32.0 +%endif +Requires: %{name}-img = %{version}-%{release} +Requires: %{name}-system-alpha = %{version}-%{release} +Requires: %{name}-system-arm = %{version}-%{release} +Requires: %{name}-system-cris = %{version}-%{release} +Requires: %{name}-system-lm32 = %{version}-%{release} +Requires: %{name}-system-m68k = %{version}-%{release} +Requires: %{name}-system-microblaze = %{version}-%{release} +Requires: %{name}-system-mips = %{version}-%{release} +Requires: %{name}-system-moxie = %{version}-%{release} +Requires: %{name}-system-or32 = %{version}-%{release} +Requires: %{name}-system-ppc = %{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} +Obsoletes: qemu-kvm BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) +%define systempkg_req \ +Requires: SDL >= 1.2.1 \ +%if %{with usbredir} \ +Requires: usbredir >= 0.6 \ +%endif \ +%if %{with gtk2} \ +Requires: gtk+2 >= 2:2.18.0 \ +Requires: vte0 >= 0.24.0 \ +%endif \ +%if %{with gtk3} \ +Requires: gtk+3 >= 3.0.0 \ +Requires: vte >= 0.32.0 \ +%endif + # some PPC/SPARC boot image in ELF format -%define _noautostrip .*%{_datadir}/qemu/openbios-.* +%define _noautostrip .*%{_datadir}/qemu/.*-.* %description QEMU is a FAST! processor emulator. By using dynamic translation it @@ -81,40 +182,499 @@ aby działał na kolejnych procesorach. QEMU ma dwa tryby pracy: używane do wirtualnego hostowania kilku wirtualnych pecetów na pojedynczym serwerze. +%package common +Summary: QEMU common files needed by all QEMU targets +Summary(pl.UTF-8): Wspólne pliki QEMU wymagane przez wszystkie środowiska QEMU +Group: Development/Tools +Requires(post,preun,postun): systemd-units >= 38 +Requires(postun): /usr/sbin/groupdel +Requires(postun): /usr/sbin/userdel +Requires(pre): /bin/id +Requires(pre): /usr/bin/getgid +Requires(pre): /usr/sbin/groupadd +Requires(pre): /usr/sbin/useradd +Requires: glib2 >= 1:2.12 +Requires: libssh2 >= 1.2.8 +Requires: systemd-units >= 38 +Provides: group(qemu) +Provides: user(qemu) +Obsoletes: qemu-kvm-common +Conflicts: qemu < 1.0-2 + +%description common +QEMU is a generic and open source processor emulator which achieves a +good emulation speed by using dynamic translation. + +This package provides the common files needed by all QEMU targets. + +%description common -l pl.UTF-8 +QEMU to ogólny, mający otwarte źródła emulator procesora, osiągający +dobrą szybkość emulacji dzięki użyciu translacji dynamicznej. + +Ten pakiet udostępnia wspólne pliki wymagane przez wszystkie +środowiska QEMU. + +%package img +Summary: QEMU command line tool for manipulating disk images +Summary(pl.UTF-8): Narzędzie QEMU do operacji na obrazach dysków +Group: Development/Tools +Obsoletes: qemu-kvm-img +Conflicts: qemu < 1.0-2 + +%description img +This package provides a command line tool for manipulating disk +images. + +%description img -l pl.UTF-8 +Ten pakiet udostępnia działające z linii poleceń narzędzia do operacji +na obrazach dysków. + +%package user +Summary: QEMU user mode emulation of qemu targets +Summary(pl.UTF-8): QEMU - emulacja trybu użytkownika środowisk qemu +Group: Development/Tools +Requires: %{name}-common = %{version}-%{release} +Requires(post,postun): systemd-units >= 38 +Requires: systemd-units >= 38 +Obsoletes: qemu-kvm-user + +%description user +QEMU is a generic and open source processor emulator which achieves a +good emulation speed by using dynamic translation. + +This package provides the user mode emulation of QEMU targets. + +%description user -l pl.UTF-8 +QEMU to ogólny, mający otwarte źródła emulator procesora, osiągający +dobrą szybkość emulacji dzięki użyciu translacji dynamicznej. + +Ten pakiet udostępnia emulację trybu użytkownika środowisk QEMU. + +%package system-alpha +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 +Obsoletes: qemu-kvm-system-alpha + +%description system-alpha +QEMU is a generic and open source processor emulator which achieves a +good emulation speed by using dynamic translation. + +This package provides the system emulator with Alpha CPU. + +%description system-alpha -l pl.UTF-8 +QEMU to ogólny, mający otwarte źródła emulator procesora, osiągający +dobrą szybkość emulacji dzięki użyciu translacji dynamicznej. + +Ten pakiet zawiera emulator systemu z procesorem Alpha. + +%package system-arm +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 +Obsoletes: qemu-kvm-system-arm + +%description system-arm +QEMU is a generic and open source processor emulator which achieves a +good emulation speed by using dynamic translation. + +This package provides the system emulator for ARM. + +%description system-arm -l pl.UTF-8 +QEMU to ogólny, mający otwarte źródła emulator procesora, osiągający +dobrą szybkość emulacji dzięki użyciu translacji dynamicznej. + +Ten pakiet zawiera emulator systemu z procesorem ARM. + +%package system-cris +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 +Obsoletes: qemu-kvm-system-cris + +%description system-cris +QEMU is a generic and open source processor emulator which achieves a +good emulation speed by using dynamic translation. + +This package provides the system emulator with CRIS CPU. + +%description system-cris -l pl.UTF-8 +QEMU to ogólny, mający otwarte źródła emulator procesora, osiągający +dobrą szybkość emulacji dzięki użyciu translacji dynamicznej. + +Ten pakiet zawiera emulator systemu z procesorem CRIS. + +%package system-lm32 +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 +Obsoletes: qemu-kvm-system-lm32 + +%description system-lm32 +QEMU is a generic and open source processor emulator which achieves a +good emulation speed by using dynamic translation. + +This package provides the system emulator with LM32 CPU. + +%description system-lm32 -l pl.UTF-8 +QEMU to ogólny, mający otwarte źródła emulator procesora, osiągający +dobrą szybkość emulacji dzięki użyciu translacji dynamicznej. + +Ten pakiet zawiera emulator systemu z procesorem LM32. + +%package system-m68k +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 +Obsoletes: qemu-kvm-system-m68k + +%description system-m68k +QEMU is a generic and open source processor emulator which achieves a +good emulation speed by using dynamic translation. + +This package provides the system emulator with m68k CPU. + +%description system-m68k -l pl.UTF-8 +QEMU to ogólny, mający otwarte źródła emulator procesora, osiągający +dobrą szybkość emulacji dzięki użyciu translacji dynamicznej. + +Ten pakiet zawiera emulator systemu z procesorem m68k. + +%package system-microblaze +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 +Obsoletes: qemu-kvm-system-microblaze + +%description system-microblaze +QEMU is a generic and open source processor emulator which achieves a +good emulation speed by using dynamic translation. + +This package provides the system emulator with MicroBlaze CPU. + +%description system-microblaze -l pl.UTF-8 +QEMU to ogólny, mający otwarte źródła emulator procesora, osiągający +dobrą szybkość emulacji dzięki użyciu translacji dynamicznej. + +Ten pakiet zawiera emulator systemu z procesorem MicroBlaze. + +%package system-mips +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 +Obsoletes: qemu-kvm-system-mips + +%description system-mips +QEMU is a generic and open source processor emulator which achieves a +good emulation speed by using dynamic translation. + +This package provides the system emulator with MIPS CPU. + +%description system-mips -l pl.UTF-8 +QEMU to ogólny, mający otwarte źródła emulator procesora, osiągający +dobrą szybkość emulacji dzięki użyciu translacji dynamicznej. + +Ten pakiet zawiera emulator systemu z procesorem MIPS. + +%package system-moxie +Summary: QEMU system emulator for Moxie +Summary(pl.UTF-8): QEMU - emulator systemu z procesorem Moxie +Group: Development/Tools +Requires: %{name}-common = %{version}-%{release} +%systempkg_req + +%description system-moxie +QEMU is a generic and open source processor emulator which achieves a +good emulation speed by using dynamic translation. + +This package provides the system emulator with Moxie CPU. + +%description system-moxie -l pl.UTF-8 +QEMU to ogólny, mający otwarte źródła emulator procesora, osiągający +dobrą szybkość emulacji dzięki użyciu translacji dynamicznej. + +Ten pakiet zawiera emulator systemu z procesorem Moxie. + +%package system-or32 +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 +Obsoletes: qemu-kvm-system-or32 + +%description system-or32 +QEMU is a generic and open source processor emulator which achieves a +good emulation speed by using dynamic translation. + +This package provides the system emulator with OpenRISC CPU. + +%description system-or32 -l pl.UTF-8 +QEMU to ogólny, mający otwarte źródła emulator procesora, osiągający +dobrą szybkość emulacji dzięki użyciu translacji dynamicznej. + +Ten pakiet zawiera emulator systemu z procesorem OpenRISC. + +%package system-ppc +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 +Obsoletes: qemu-kvm-system-ppc + +%description system-ppc +QEMU is a generic and open source processor emulator which achieves a +good emulation speed by using dynamic translation. + +This package provides the system emulator with PowerPC CPU. + +%description system-ppc -l pl.UTF-8 +QEMU to ogólny, mający otwarte źródła emulator procesora, osiągający +dobrą szybkość emulacji dzięki użyciu translacji dynamicznej. + +Ten pakiet zawiera emulator systemu z procesorem PowerPC. + +%package system-s390x +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 +Obsoletes: qemu-kvm-system-s390x + +%description system-s390x +QEMU is a generic and open source processor emulator which achieves a +good emulation speed by using dynamic translation. + +This package provides the system emulator with S390 CPU. + +%description system-s390x -l pl.UTF-8 +QEMU to ogólny, mający otwarte źródła emulator procesora, osiągający +dobrą szybkość emulacji dzięki użyciu translacji dynamicznej. + +Ten pakiet zawiera emulator systemu z procesorem S390. + +%package system-sh4 +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 +Obsoletes: qemu-kvm-system-sh4 + +%description system-sh4 +QEMU is a generic and open source processor emulator which achieves a +good emulation speed by using dynamic translation. + +This package provides the system emulator with SH4 CPU. + +%description system-sh4 -l pl.UTF-8 +QEMU to ogólny, mający otwarte źródła emulator procesora, osiągający +dobrą szybkość emulacji dzięki użyciu translacji dynamicznej. + +Ten pakiet zawiera emulator systemu z procesorem SH4. + +%package system-sparc +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 +Obsoletes: qemu-kvm-system-sparc + +%description system-sparc +QEMU is a generic and open source processor emulator which achieves a +good emulation speed by using dynamic translation. + +This package provides the system emulator with SPARC/SPARC64 CPU. + +%description system-sparc -l pl.UTF-8 +QEMU to ogólny, mający otwarte źródła emulator procesora, osiągający +dobrą szybkość emulacji dzięki użyciu translacji dynamicznej. + +Ten pakiet zawiera emulator systemu z procesorem SPARC/SPARC64. + +%package system-unicore32 +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 +Obsoletes: qemu-kvm-system-unicore32 + +%description system-unicore32 +QEMU is a generic and open source processor emulator which achieves a +good emulation speed by using dynamic translation. + +This package provides the system emulator with UniCore32 CPU. + +%description system-unicore32 -l pl.UTF-8 +QEMU to ogólny, mający otwarte źródła emulator procesora, osiągający +dobrą szybkość emulacji dzięki użyciu translacji dynamicznej. + +Ten pakiet zawiera emulator systemu z procesorem UniCore32. + +%package system-x86 +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 +Obsoletes: qemu-kvm-system-x86 + +%description system-x86 +QEMU is a generic and open source processor emulator which achieves a +good emulation speed by using dynamic translation. + +%description system-x86 -l pl.UTF-8 +QEMU to ogólny, mający otwarte źródła emulator procesora, osiągający +dobrą szybkość emulacji dzięki użyciu translacji dynamicznej. + +%package system-xtensa +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 +Obsoletes: qemu-kvm-system-xtensa + +%description system-xtensa +QEMU is a generic and open source processor emulator which achieves a +good emulation speed by using dynamic translation. + +This package provides the system emulator with Xtensa CPU. + +%description system-xtensa -l pl.UTF-8 +QEMU to ogólny, mający otwarte źródła emulator procesora, osiągający +dobrą szybkość emulacji dzięki użyciu translacji dynamicznej. + +Ten pakiet zawiera emulator systemu z procesorem Xtensa. + +%package guest-agent +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 +Obsoletes: qemu-kvm-guest-agent + +%description guest-agent +QEMU is a generic and open source processor emulator which achieves a +good emulation speed by using dynamic translation. + +This package provides an agent to run inside guests, which +communicates with the host over a virtio-serial channel named +"org.qemu.guest_agent.0". + +This package does not need to be installed on the host OS. + +%description guest-agent -l pl.UTF-8 +QEMU to ogólny, mający otwarte źródła emulator procesora, osiągający +dobrą szybkość emulacji dzięki użyciu translacji dynamicznej. + +Ten pakiet udostępnia agenta przeznaczonego do uruchomienia w +systemach-gościach, komunikującego się kanałem virtio-serial o nazwie +"org.qemu.guest_agent.0". + +Ten pakiet nie musi być zainstalowany w systemie hosta. + %prep -%setup -q +%setup -q %patch0 -p1 -%{?with_nosdlgui:%patch6 -p1} -#patch8 -p1 +%patch1 -p1 +%patch2 -p0 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 -%{__sed} -i -e 's/sdl_static=yes/sdl_static=no/' configure -%{__sed} -i 's/.*MAKE) -C kqemu$//' Makefile +%{__mv} libcacard libcacard-use-system-lib -# cannot use optflags on x86 - they cause "no register to spill" errors -%if %{with cflags_passing} -%{__sed} -i -e 's/-Wall -O2 -g/-Wall %{rpmcflags}/' Makefile Makefile.target -%else -%{__sed} -i 's/-Wall -O2 -g/-Wall -O2/' Makefile Makefile.target -%endif +# workaround for conflict with alsa/error.h +ln -s ../error.h qapi/error.h %build -# --extra-cflags don't work (overridden by CFLAGS in Makefile*) -# they can be passed if the cflags_passing bcond is used ./configure \ + --extra-cflags="%{rpmcflags} -I/usr/include/ncurses" \ + --extra-ldflags="%{rpmldflags}" \ --prefix=%{_prefix} \ + --sysconfdir=%{_sysconfdir} \ --cc="%{__cc}" \ --host-cc="%{__cc}" \ - --make="%{__make}" \ - --enable-mixemu \ - --audio-drv-list="alsa" \ - --interp-prefix=%{_libdir}/%{name} -%{__make} + --disable-strip \ + --enable-attr \ + %{__enable_disable bluetooth bluez} \ + %{__enable_disable brlapi} \ + --enable-cap-ng \ + --enable-curl \ + --enable-curses \ + --enable-docs \ + --enable-fdt \ + %{__enable_disable glusterfs} \ + %{__enable_disable iscsi libiscsi} \ + %{__enable_disable glx} \ + %{__enable_disable ceph rbd} \ + %{__enable_disable rdma} \ + %{__enable_disable sdl} \ + %{__enable_disable seccomp} \ + %{__enable_disable spice} \ + %{__enable_disable smartcard smartcard-nss} \ + --enable-tpm \ + %{__enable_disable usbredir usb-redir} \ + --enable-uuid \ + --enable-vde \ + --enable-virtfs \ + --enable-vnc-jpeg \ + --enable-vnc-png \ + --enable-vnc-sasl \ + --enable-vnc-tls \ + --enable-kvm \ + %{__enable_disable xen} \ + --audio-drv-list="alsa%{?with_iss:,oss}%{?with_sdl:,sdl}%{?with_esd:,esd}%{?with_pulseaudio:,pa}" \ + --interp-prefix=%{_libdir}/qemu/lib-%%M \ +%if %{without gtk2} && %{without gtk3} + --disable-gtk +%else + --with-gtkabi="%{?with_gtk2:2.0}%{!?with_gtk2:3.0}" +%endif + +# note: CONFIG_QEMU_HELPERDIR is used when compiling, libexecdir when installing; +# --libexecdir in configure is nop +%{__make} \ + V=1 \ + CONFIG_QEMU_HELPERDIR="%{_libdir}" + +# rebuild patched vesa tables with additional widescreen modes. +%{__make} -C roms/vgabios stdvga-bios + +%{__cc} %{SOURCE7} %{rpmcflags} -o ksmctl %install rm -rf $RPM_BUILD_ROOT +install -d $RPM_BUILD_ROOT{%{systemdunitdir},/usr/lib/binfmt.d} \ + $RPM_BUILD_ROOT/etc/{sysconfig,udev/rules.d,modules-load.d} \ + $RPM_BUILD_ROOT{%{_sysconfdir}/sasl,%{_sbindir}} %{__make} install \ - DESTDIR=$RPM_BUILD_ROOT + DESTDIR=$RPM_BUILD_ROOT \ + libexecdir=%{_libdir} install -d $RPM_BUILD_ROOT%{_sysconfdir} cat <<'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/qemu-ifup @@ -122,18 +682,260 @@ cat <<'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/qemu-ifup EOF -# already packaged -rm -rf $RPM_BUILD_ROOT%{_docdir}/qemu/qemu-{doc,tech}.html +install -p qemu.sasl $RPM_BUILD_ROOT%{_sysconfdir}/sasl/qemu.conf + +%ifarch %{ix86} %{x8664} +install -p scripts/kvm/kvm_stat $RPM_BUILD_ROOT%{_bindir} +install -p %{SOURCE3} $RPM_BUILD_ROOT/etc/modules-load.d/kvm.conf +install -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d +%endif + +install -p %{SOURCE5} $RPM_BUILD_ROOT%{systemdunitdir}/ksm.service +install -p %{SOURCE6} $RPM_BUILD_ROOT/etc/sysconfig/ksm +install -p ksmctl $RPM_BUILD_ROOT%{_sbindir} + +install -p %{SOURCE8} $RPM_BUILD_ROOT%{systemdunitdir}/ksmtuned.service +install -p %{SOURCE9} $RPM_BUILD_ROOT%{_sbindir}/ksmtuned +install -p %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/ksmtuned.conf + +# For the qemu-guest-agent subpackage install the systemd +# service and udev rules. +install -p %{SOURCE11} $RPM_BUILD_ROOT%{systemdunitdir} +install -p %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d + +for i in dummy \ +%ifnarch %{ix86} %{x8664} + qemu-i386 \ +%endif +%ifnarch arm + qemu-arm \ +%endif +%ifnarch ppc ppc64 + qemu-ppc \ +%endif +%ifnarch sparc sparc64 + qemu-sparc \ +%endif +%ifnarch sh4 + qemu-sh4 \ +%endif +; do + test $i = dummy && continue + grep /$i:\$ %{SOURCE2} > $RPM_BUILD_ROOT/usr/lib/binfmt.d/$i.conf +done < %{SOURCE2} + +# packaged as %doc +%{__rm} $RPM_BUILD_ROOT%{_docdir}/qemu/qemu-{doc,tech}.html +%{__rm} $RPM_BUILD_ROOT%{_docdir}/qemu/qmp-commands.txt + +# install patched vesa tables with additional widescreen modes. +cp -p roms/vgabios/VGABIOS-lgpl-latest.stdvga.bin $RPM_BUILD_ROOT%{_datadir}/%{name}/vgabios-stdvga.bin + +%if %{with gtk2} || %{with gtk3} +%{__mv} $RPM_BUILD_ROOT%{_localedir}/{de_DE,de} +%{__mv} $RPM_BUILD_ROOT%{_localedir}/{fr_FR,fr} +%find_lang %{name} +%else +: > qemu.lang +%endif %clean rm -rf $RPM_BUILD_ROOT +%pre common +%groupadd -g 160 kvm +%groupadd -g 276 qemu +%useradd -u 276 -g qemu -G kvm -c "QEMU User" qemu + +%post common +%systemd_post ksm.service +%systemd_post ksmtuned.service + +%preun common +%systemd_preun ksm.service +%systemd_preun ksmtuned.service + +%postun common +if [ "$1" = "0" ]; then + %userremove qemu + %groupremove qemu + %groupremove kvm +fi +%systemd_reload + +%triggerpostun common -- qemu-common < 1.6.1-4 +%systemd_trigger ksm.service +%systemd_trigger ksmtuned.service + +%post user +%systemd_service_restart systemd-binfmt.service + +%postun user +%systemd_service_restart systemd-binfmt.service + +%post guest-agent +%systemd_reload + +%preun guest-agent +%systemd_preun qemu-guest-agent.service + +%postun guest-agent +%systemd_reload + %files %defattr(644,root,root,755) -%doc README qemu-doc.html qemu-tech.html + +%files common -f %{name}.lang +%defattr(644,root,root,755) +%doc README qemu-doc.html qemu-tech.html qmp-commands.txt %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/qemu-ifup -%attr(755,root,root) %{_bindir}/* -%{_datadir}/qemu +%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/qemu/target-*.conf +%config(noreplace) %verify(not md5 mtime size) /etc/ksmtuned.conf +%config(noreplace) %verify(not md5 mtime size) /etc/sasl/qemu.conf +%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/ksm +%{systemdunitdir}/ksm.service +%{systemdunitdir}/ksmtuned.service +%dir %{_sysconfdir}/qemu +%attr(755,root,root) %{_bindir}/virtfs-proxy-helper +%attr(755,root,root) %{_bindir}/qemu-nbd +%attr(755,root,root) %{_libdir}/qemu-bridge-helper +%attr(755,root,root) %{_sbindir}/ksmctl +%attr(755,root,root) %{_sbindir}/ksmtuned %{_mandir}/man1/qemu.1* -%{_mandir}/man1/qemu-img.1* +%{_mandir}/man1/virtfs-proxy-helper.1* %{_mandir}/man8/qemu-nbd.8* + +%dir %{_datadir}/qemu +%{_datadir}/%{name}/keymaps +%{_datadir}/%{name}/qemu-icon.bmp +# various bios images +%{_datadir}/%{name}/*.aml +%{_datadir}/%{name}/*.bin +%{_datadir}/%{name}/*.rom +%{_datadir}/%{name}/*.dtb +%{_datadir}/%{name}/qemu_logo_no_text.svg +%{_datadir}/%{name}/openbios-ppc +%{_datadir}/%{name}/openbios-sparc* +%{_datadir}/%{name}/palcode-clipper +%{_datadir}/%{name}/s390-ccw.img + +%files img +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/qemu-img +%{_mandir}/man1/qemu-img.1* + +%files user +%defattr(644,root,root,755) +/usr/lib/binfmt.d/qemu-*.conf +%attr(755,root,root) %{_bindir}/qemu-alpha +%attr(755,root,root) %{_bindir}/qemu-arm +%attr(755,root,root) %{_bindir}/qemu-armeb +%attr(755,root,root) %{_bindir}/qemu-cris +%attr(755,root,root) %{_bindir}/qemu-i386 +%attr(755,root,root) %{_bindir}/qemu-io +%attr(755,root,root) %{_bindir}/qemu-m68k +%attr(755,root,root) %{_bindir}/qemu-microblaze +%attr(755,root,root) %{_bindir}/qemu-microblazeel +%attr(755,root,root) %{_bindir}/qemu-mips +%attr(755,root,root) %{_bindir}/qemu-mipsel +%attr(755,root,root) %{_bindir}/qemu-mips64 +%attr(755,root,root) %{_bindir}/qemu-mips64el +%attr(755,root,root) %{_bindir}/qemu-mipsn32 +%attr(755,root,root) %{_bindir}/qemu-mipsn32el +%attr(755,root,root) %{_bindir}/qemu-or32 +%attr(755,root,root) %{_bindir}/qemu-ppc +%attr(755,root,root) %{_bindir}/qemu-ppc64 +%attr(755,root,root) %{_bindir}/qemu-ppc64abi32 +%attr(755,root,root) %{_bindir}/qemu-s390x +%attr(755,root,root) %{_bindir}/qemu-sh4 +%attr(755,root,root) %{_bindir}/qemu-sh4eb +%attr(755,root,root) %{_bindir}/qemu-sparc +%attr(755,root,root) %{_bindir}/qemu-sparc32plus +%attr(755,root,root) %{_bindir}/qemu-sparc64 +%attr(755,root,root) %{_bindir}/qemu-unicore32 +%attr(755,root,root) %{_bindir}/qemu-x86_64 + +%files system-alpha +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/qemu-system-alpha + +%files system-arm +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/qemu-system-arm + +%files system-cris +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/qemu-system-cris + +%files system-lm32 +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/qemu-system-lm32 + +%files system-m68k +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/qemu-system-m68k + +%files system-microblaze +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/qemu-system-microblaze +%attr(755,root,root) %{_bindir}/qemu-system-microblazeel + +%files system-mips +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/qemu-system-mips +%attr(755,root,root) %{_bindir}/qemu-system-mipsel +%attr(755,root,root) %{_bindir}/qemu-system-mips64 +%attr(755,root,root) %{_bindir}/qemu-system-mips64el + +%files system-moxie +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/qemu-system-moxie + +%files system-or32 +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/qemu-system-or32 + +%files system-ppc +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/qemu-system-ppc +%attr(755,root,root) %{_bindir}/qemu-system-ppc64 +%attr(755,root,root) %{_bindir}/qemu-system-ppcemb + +%files system-s390x +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/qemu-system-s390x + +%files system-sh4 +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/qemu-system-sh4 +%attr(755,root,root) %{_bindir}/qemu-system-sh4eb + +%files system-sparc +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/qemu-system-sparc +%attr(755,root,root) %{_bindir}/qemu-system-sparc64 + +%files system-unicore32 +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/qemu-system-unicore32 + +%files system-x86 +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/qemu-system-i386 +%attr(755,root,root) %{_bindir}/qemu-system-x86_64 +%ifarch %{ix86} %{x8664} +%config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/kvm.conf +%config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/80-kvm.rules +%attr(755,root,root) %{_bindir}/kvm_stat +%endif + +%files system-xtensa +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/qemu-system-xtensa +%attr(755,root,root) %{_bindir}/qemu-system-xtensaeb + +%files guest-agent +%defattr(644,root,root,755) +%config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/99-qemu-guest-agent.rules +%{systemdunitdir}/qemu-guest-agent.service +%attr(755,root,root) %{_bindir}/qemu-ga