%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_with gtk3 # Do not build GTK+ UI
+%bcond_with vte # VTE support in 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_with brlapi # brlapi support
%bcond_without smartcard # smartcard-nss support
%bcond_without iscsi # iscsi support
%bcond_without libnfs # NFS support
%bcond_without usbredir # usb network redirection support
%bcond_without system_seabios # system seabios binary
%bcond_without snappy # snappy compression library
+%bcond_with lttng # lttng-ust trace backend support
+%bcond_with systemtap # SystemTap/dtrace trace backend support
%if %{with gtk2}
%undefine with_gtk3
Summary: QEMU CPU Emulator
Summary(pl.UTF-8): QEMU - emulator procesora
Name: qemu
-Version: 2.0.0
+Version: 2.2.0
Release: 2
License: GPL v2+
Group: Applications/Emulators
Source0: http://wiki.qemu-project.org/download/%{name}-%{version}.tar.bz2
-# Source0-md5: 2790f44fd76da5de5024b4aafeb594c2
+# Source0-md5: f7a5e2da22d057eb838a91da7aff43c8
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
Patch400: %{name}-kde_virtual_workspaces_hack.patch
URL: http://www.qemu-project.org/
%{?with_opengl:BuildRequires: OpenGL-GLX-devel}
-%{?with_sdl:BuildRequires: SDL2-devel}
+%{?with_sdl:BuildRequires: SDL2-devel >= 2.0}
BuildRequires: alsa-lib-devel
BuildRequires: bcc
%{?with_bluetooth:BuildRequires: bluez-libs-devel}
BuildRequires: libcap-ng-devel
BuildRequires: libfdt-devel
%{?with_rdma:BuildRequires: libibverbs-devel}
-%{?with_iscsi:BuildRequires: libiscsi-devel >= 1.4.0}
+%{?with_iscsi:BuildRequires: libiscsi-devel >= 1.9.0}
BuildRequires: libjpeg-devel
%{?with_libnfs:BuildRequires: libnfs-devel >= 1.9.3}
BuildRequires: libpng-devel
%{?with_rdma:BuildRequires: librdmacm-devel}
-%{?with_seccomp:BuildRequires: libseccomp-devel >= 2.1.0}
+%{?with_seccomp:BuildRequires: libseccomp-devel >= 2.1.1}
BuildRequires: libssh2-devel >= 1.2.8
BuildRequires: libusb-devel >= 1.0.13
BuildRequires: libuuid-devel
+%{?with_lttng:BuildRequires: lttng-ust-devel}
BuildRequires: lzo-devel >= 2
BuildRequires: ncurses-devel
%{?with_smartcard:BuildRequires: nss-devel >= 3.12.8}
BuildRequires: spice-protocol >= 0.12.3
BuildRequires: spice-server-devel >= 0.12.0
%endif
+%{?with_systemtap:BuildRequires: systemtap-sdt-devel}
BuildRequires: texi2html
BuildRequires: texinfo
%{?with_usbredir:BuildRequires: usbredir-devel >= 0.6}
+%{?with_lttng:BuildRequires: userspace-rcu-devel}
BuildRequires: vde2-devel
BuildRequires: which
%{?with_xen:BuildRequires: xen-devel >= 3.4}
BuildRequires: zlib-devel
%if %{with gtk2}
BuildRequires: gtk+2-devel >= 2:2.18.0
-BuildRequires: vte0-devel >= 0.24.0
+%{?with_vte:BuildRequires: vte0-devel >= 0.24.0}
%endif
%if %{with gtk3}
BuildRequires: gtk+3-devel >= 3.0.0
-BuildRequires: vte-devel >= 0.32.0
+%{?with_vte:BuildRequires: vte2.90-devel >= 0.32.0}
%endif
Requires: %{name}-img = %{version}-%{release}
Requires: %{name}-system-aarch64 = %{version}-%{release}
Requires: %{name}-system-s390x = %{version}-%{release}
Requires: %{name}-system-sh4 = %{version}-%{release}
Requires: %{name}-system-sparc = %{version}-%{release}
+Requires: %{name}-system-tricore = %{version}-%{release}
Requires: %{name}-system-unicore32 = %{version}-%{release}
Requires: %{name}-system-x86 = %{version}-%{release}
Requires: %{name}-system-xtensa = %{version}-%{release}
%endif \
%if %{with gtk2} \
Requires: gtk+2 >= 2:2.18.0 \
-Requires: vte0 >= 0.24.0 \
+%{?with_vte:Requires: vte0 >= 0.24.0} \
%endif \
%if %{with gtk3} \
Requires: gtk+3 >= 3.0.0 \
-Requires: vte >= 0.32.0 \
+%{?with_vte:Requires: vte2.90 >= 0.32.0} \
%endif
# some PPC/SPARC boot image in ELF format
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: glib2 >= 1:2.12
%{?with_libnfs:Requires: libnfs >= 1.9.3}
Requires: libssh2 >= 1.2.8
-Requires: systemd-units >= 38
Provides: group(qemu)
Provides: user(qemu)
Obsoletes: qemu-kvm-common
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
Ten pakiet zawiera emulator systemu z procesorem SPARC/SPARC64.
+%package system-tricore
+Summary: QEMU system emulator for TriCore
+Summary(pl.UTF-8): QEMU - emulator systemu z procesorem TriCore
+Group: Development/Tools
+Requires: %{name}-common = %{version}-%{release}
+%systempkg_req
+
+%description system-tricore
+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 TriCore 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 TriCore.
+
%package system-unicore32
Summary: QEMU system emulator for UniCore32
Summary(pl.UTF-8): QEMU - emulator systemu z procesorem UniCore32
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
Summary(pl.UTF-8): Moduł QEMU dla urządeń blokowych typu 'iscsi'
Group: Development/Tools
Requires: %{name}-common = %{version}-%{release}
-Requires: libiscsi >= 1.4.0
+Requires: libiscsi >= 1.9.0
%description module-block-iscsi
'iscsi' block device support for QEMU.
%build
./configure \
- --extra-cflags="%{rpmcflags} -I/usr/include/ncurses" \
- --extra-ldflags="%{rpmldflags}" \
+ --extra-cflags="%{rpmcflags} %{rpmcppflags} -fPIE -DPIE" \
+ --extra-ldflags="%{rpmldflags} -pie -Wl,-z,relro -Wl,-z,now" \
--prefix=%{_prefix} \
--libdir=%{_libdir} \
--libexecdir=%{_libexecdir} \
%{__enable_disable spice} \
%{__enable_disable smartcard smartcard-nss} \
--enable-tpm \
+ --enable-trace-backends="nop%{?with_systemtap:,dtrace}%{?with_lttng:,ust}" \
%{__enable_disable usbredir usb-redir} \
--enable-uuid \
--enable-vde \
--enable-vnc-png \
--enable-vnc-sasl \
--enable-vnc-tls \
+ %{!?with_vte:--disable-vte} \
--enable-kvm \
%{__enable_disable xen} \
--enable-modules \
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{systemdunitdir},/usr/lib/binfmt.d} \
+install -d $RPM_BUILD_ROOT/usr/lib/binfmt.d \
$RPM_BUILD_ROOT/etc/{sysconfig,udev/rules.d,modules-load.d} \
$RPM_BUILD_ROOT{%{_sysconfdir}/sasl,%{_sbindir}}
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 \
%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)
%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
%dir %{_datadir}/qemu
%{_datadir}/%{name}/keymaps
%{_datadir}/%{name}/qemu-icon.bmp
+%{_datadir}/%{name}/trace-events
# various bios images
# all should be probably moved to the right system subpackage
%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-ppc64le
%attr(755,root,root) %{_bindir}/qemu-s390x
%attr(755,root,root) %{_bindir}/qemu-sh4
%attr(755,root,root) %{_bindir}/qemu-sh4eb
%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-ppc64le
%attr(755,root,root) %{_bindir}/qemu-system-ppcemb
+%{_datadir}/%{name}/u-boot.e500
%files system-s390x
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-system-sparc
%attr(755,root,root) %{_bindir}/qemu-system-sparc64
+%files system-tricore
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/qemu-system-tricore
+
%files system-unicore32
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-system-unicore32
%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
%files module-block-curl