%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 vte # VTE support in GTK+ UI
%bcond_without spice # SPICE support
%bcond_without user_static # build linux-user static packages
%bcond_with lttng # lttng-ust trace backend support
%bcond_with systemtap # SystemTap/dtrace trace backend support
-
-%if %{with gtk2}
-%undefine with_gtk3
-%endif
+%bcond_with virgl # build virgl support
+%bcond_without xkbcommon # xkbcommon support
%ifarch x32
%undefine with_xen
Summary: QEMU CPU Emulator
Summary(pl.UTF-8): QEMU - emulator procesora
Name: qemu
-Version: 2.11.1
+Version: 3.1.0
Release: 1
License: GPL v2
Group: Applications/Emulators
Source0: http://wiki.qemu-project.org/download/%{name}-%{version}.tar.xz
-# Source0-md5: 0ee48c0f0cae47cc5d05408e03cd199e
+# Source0-md5: fb687ce0b02d3bf4327e36d3b99427a8
# Loads kvm kernel modules at boot
Source3: kvm-modules-load.conf
# Creates /dev/kvm
Source10: ksmtuned.conf
Source12: 99-%{name}-guest-agent.rules
Patch0: %{name}-cflags.patch
-Patch1: vgabios-widescreens.patch
-Patch2: %{name}-whitelist.patch
-Patch3: %{name}-user-execve.patch
-Patch4: %{name}-xattr.patch
-Patch5: libjpeg-boolean.patch
-Patch6: x32.patch
-Patch7: %{name}-glibc2_27.patch
+Patch1: %{name}-whitelist.patch
+Patch2: %{name}-user-execve.patch
+Patch3: %{name}-xattr.patch
+Patch4: libjpeg-boolean.patch
+Patch5: x32.patch
URL: http://www.qemu-project.org/
%{?with_gl:BuildRequires: OpenGL-GLX-devel}
%{?with_gl:BuildRequires: OpenGL-devel}
%{?with_esd:BuildRequires: esound-devel}
BuildRequires: glib2-devel >= 1:2.22
%{?with_glusterfs:BuildRequires: glusterfs-devel >= 3.4}
-BuildRequires: gnutls-devel > 2.10.0
+BuildRequires: gnutls-devel >= 3.1.18
BuildRequires: libaio-devel
%{?with_smartcard:BuildRequires: libcacard-devel}
BuildRequires: libcap-devel
BuildRequires: libfdt-devel >= 1.4.2
%{?with_rdma:BuildRequires: libibverbs-devel}
%{?with_iscsi:BuildRequires: libiscsi-devel >= 1.9.0}
+%{?with_rdma:BuildRequires: libibumad-devel}
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.1}
+%{?with_seccomp:BuildRequires: libseccomp-devel >= 2.2.0}
BuildRequires: libssh2-devel >= 1.2.8
BuildRequires: libusb-devel >= 1.0.13
BuildRequires: libuuid-devel
%{?with_lttng:BuildRequires: userspace-rcu-devel}
BuildRequires: vde2-devel
BuildRequires: which
+%{?with_virgl:BuildRequires: virglrenderer-devel}
%{?with_xen:BuildRequires: xen-devel >= 3.4}
BuildRequires: xfsprogs-devel
+%{?with_xkbcommon:BuildRequires: xorg-lib-libxkbcommon-devel}
BuildRequires: xorg-lib-libX11-devel
BuildRequires: zlib-devel
-%if %{with gtk2}
-BuildRequires: gtk+2-devel >= 2:2.18.0
-%{?with_vte:BuildRequires: vte0-devel >= 0.24.0}
-%endif
%if %{with gtk3}
-BuildRequires: gtk+3-devel >= 3.0.0
+BuildRequires: gtk+3-devel >= 3.14.0
%{?with_vte:BuildRequires: vte2.90-devel >= 0.32.0}
%endif
%if %{with user_static}
BuildRequires: glib2-static
BuildRequires: glibc-static
BuildRequires: pcre-static
-BuildRequires: xen-static
BuildRequires: zlib-static
%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-hppa = %{version}-%{release}
Requires: %{name}-system-lm32 = %{version}-%{release}
Requires: %{name}-system-m68k = %{version}-%{release}
Requires: %{name}-system-microblaze = %{version}-%{release}
Requires: %{name}-system-nios2 = %{version}-%{release}
Requires: %{name}-system-or1k = %{version}-%{release}
Requires: %{name}-system-ppc = %{version}-%{release}
+Requires: %{name}-system-riscv32 = %{version}-%{release}
+Requires: %{name}-system-riscv64 = %{version}-%{release}
Requires: %{name}-system-s390x = %{version}-%{release}
Requires: %{name}-system-sh4 = %{version}-%{release}
Requires: %{name}-system-sparc = %{version}-%{release}
%endif \
Requires: libfdt >= 1.4.2 \
%if %{with seccomp} \
-Requires: libseccomp >= 2.1.0 \
+Requires: libseccomp >= 2.2.0 \
%endif \
Requires: libusb >= 1.0.13 \
Requires: pixman >= 0.21.8 \
%if %{with usbredir} \
Requires: usbredir >= 0.6 \
%endif \
-%if %{with gtk2} \
-Requires: gtk+2 >= 2:2.18.0 \
-%{?with_vte:Requires: vte0 >= 0.24.0} \
-%endif \
%if %{with gtk3} \
-Requires: gtk+3 >= 3.0.0 \
+Requires: gtk+3 >= 3.14.0 \
%{?with_vte:Requires: vte2.90 >= 0.32.0} \
%endif
Ten pakiet zawiera emulator systemu z procesorem CRIS.
+%package system-hppa
+Summary: QEMU system emulator for HP/PA
+Summary(pl.UTF-8): QEMU - emulator systemu z procesorem HP/PA
+Group: Development/Tools
+Requires: %{name}-common = %{version}-%{release}
+%systempkg_req
+
+%description system-hppa
+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 HP/PA CPU.
+
+%description system-hppa -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 HP/PA.
+
%package system-lm32
Summary: QEMU system emulator for LM32
Summary(pl.UTF-8): QEMU - emulator systemu z procesorem LM32
Ten pakiet zawiera emulator systemu z procesorem PowerPC.
+%package system-riscv32
+Summary: QEMU system emulator for RISC-V (32 bit)
+Summary(pl.UTF-8): QEMU - emulator systemu z procesorem RISC-V (32 bit)
+Group: Development/Tools
+Requires: %{name}-common = %{version}-%{release}
+%systempkg_req
+
+%description system-riscv32
+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 RISC-V (32 bit) CPU.
+
+%description system-riscv32 -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 RISC-V (32 bit).
+
+%package system-riscv64
+Summary: QEMU system emulator for RISC-V (64 bit)
+Summary(pl.UTF-8): QEMU - emulator systemu z procesorem RISC-V (64 bit)
+Group: Development/Tools
+Requires: %{name}-common = %{version}-%{release}
+%systempkg_req
+
+%description system-riscv64
+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 RISC-V (64 bit) CPU.
+
+%description system-riscv64 -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 RISC-V (64 bit).
+
%package system-s390x
Summary: QEMU system emulator for S390
Summary(pl.UTF-8): QEMU - emulator systemu z procesorem S390
%description module-block-curl -l pl.UTF-8
Moduł QEMU dla urządeń blokowych typu 'curl'.
-%package module-block-dmg
-Summary: QEMU module for 'dmg' block devices
-Summary(pl.UTF-8): Moduł QEMU dla urządeń blokowych typu 'dmg'
-Group: Development/Tools
-Requires: %{name}-common = %{version}-%{release}
-Requires: bzip2-libs
-
-%description module-block-dmg
-'dmg' block device support for QEMU.
-
-%description module-block-dmg -l pl.UTF-8
-Moduł QEMU dla urządeń blokowych typu 'dmg'.
-
%package module-block-gluster
Summary: QEMU module for 'gluster' block devices
Summary(pl.UTF-8): Moduł QEMU dla urządeń blokowych typu 'gluster'
%description module-block-iscsi -l pl.UTF-8
Moduł QEMU dla urządeń blokowych typu 'iscsi'.
-%package module-block-nfs
-Summary: QEMU module for 'nfs' block devices
-Summary(pl.UTF-8): Moduł QEMU dla urządeń blokowych typu 'nfs'
-Group: Development/Tools
-Requires: %{name}-common = %{version}-%{release}
-Requires: libnfs >= 1.9.3
-
-%description module-block-nfs
-'nfs' block device support for QEMU.
-
-%description module-block-nfs -l pl.UTF-8
-Moduł QEMU dla urządeń blokowych typu 'nfs'.
-
%package module-block-rbd
Summary: QEMU module for 'rbd' block devices
Summary(pl.UTF-8): Moduł QEMU dla urządeń blokowych typu 'rbd'
%patch3 -p1
%patch4 -p1
%patch5 -p1
-%patch6 -p1
-%patch7 -p1
# workaround for conflict with alsa/error.h
ln -s ../error.h qapi/error.h
--enable-vnc-jpeg \
--enable-vnc-png \
--enable-vnc-sasl \
- %{__enable_disable vte} \
+ %{!?with_vte:--disable-vte} \
+ %{__enable_disable virgl virglrenderer} \
%{__enable_disable xen} \
--enable-modules \
--disable-netmap \
--enable-lzo \
%{__enable_disable snappy} \
--audio-drv-list="alsa%{?with_iss:,oss}%{?with_sdl:,sdl}%{?with_esd:,esd}%{?with_pulseaudio:,pa}" \
-%if %{without gtk2} && %{without gtk3}
+%if %{without gtk3}
--disable-gtk
-%else
- --with-gtkabi="%{?with_gtk2:2.0}%{!?with_gtk2:3.0}"
%endif
%if %{with user_static}
%endif
-# 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/etc/{qemu,sysconfig,udev/rules.d,modules-load.d} \
+install -d \
+ $RPM_BUILD_ROOT/etc/{qemu,sysconfig,udev/rules.d,modules-load.d} \
$RPM_BUILD_ROOT{%{_sysconfdir}/sasl,%{_sbindir}}
%if %{with user_static}
install -p %{SOURCE9} $RPM_BUILD_ROOT%{_sbindir}/ksmtuned
install -p %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/ksmtuned.conf
-install -p %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d
-
# packaged as %doc
%{__rm} $RPM_BUILD_ROOT%{_docdir}/qemu/qemu-doc.html
-# 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 system_seabios}
ln -sf /usr/share/seabios/bios.bin $RPM_BUILD_ROOT%{_datadir}/%{name}/bios-256k.bin
# bios.bin provided by qemu is stripped to 128k, with no Xen support, keep it
done
%endif
-%if %{with gtk2} || %{with gtk3}
+%if %{with gtk3}
%{__mv} $RPM_BUILD_ROOT%{_localedir}/{de_DE,de}
%{__mv} $RPM_BUILD_ROOT%{_localedir}/{fr_FR,fr}
%find_lang %{name}
%dir /etc/qemu
%attr(640,root,qemu) %config(noreplace) %verify(not md5 mtime size) /etc/qemu/bridge.conf
%attr(755,root,root) %{_bindir}/virtfs-proxy-helper
-%attr(755,root,root) %{_bindir}/qemu-keymap
+%{?with_xkbcommon:%attr(755,root,root) %{_bindir}/qemu-keymap}
%attr(755,root,root) %{_bindir}/qemu-nbd
%attr(755,root,root) %{_bindir}/qemu-pr-helper
%attr(755,root,root) %{_bindir}/qemu-tilegx
%{_datadir}/%{name}/slof.bin
%{_datadir}/%{name}/spapr-rtas.bin
%{_datadir}/%{name}/vgabios.bin
+%{_datadir}/%{name}/vgabios-bochs-display.bin
%{_datadir}/%{name}/vgabios-cirrus.bin
%{_datadir}/%{name}/vgabios-qxl.bin
+%{_datadir}/%{name}/vgabios-ramfb.bin
%{_datadir}/%{name}/vgabios-stdvga.bin
%{_datadir}/%{name}/vgabios-virtio.bin
%{_datadir}/%{name}/vgabios-vmware.bin
%dir %{_libdir}/%{name}
+# modules without too many external dependencies
+%attr(755,root,root) %{_libdir}/%{name}/block-dmg-bz2.so
+%{?with_libnfs:%attr(755,root,root) %{_libdir}/%{name}/block-nfs.so}
+
+%attr(755,root,root) %{_libdir}/%{name}/audio-alsa.so
+%{?with_pulseaudio:%attr(755,root,root) %{_libdir}/%{name}/audio-pa.so}
+%{?with_sdl:%attr(755,root,root) %{_libdir}/%{name}/audio-sdl.so}
+%attr(755,root,root) %{_libdir}/%{name}/ui-curses.so
+%if %{with gtk3}
+%attr(755,root,root) %{_libdir}/%{name}/ui-gtk.so
+%endif
+%{?with_sdl:%attr(755,root,root) %{_libdir}/%{name}/ui-sdl.so}
+
%files img
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-img
%files user
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-aarch64
+%attr(755,root,root) %{_bindir}/qemu-aarch64_be
%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-ppc64
%attr(755,root,root) %{_bindir}/qemu-ppc64abi32
%attr(755,root,root) %{_bindir}/qemu-ppc64le
+%attr(755,root,root) %{_bindir}/qemu-riscv32
+%attr(755,root,root) %{_bindir}/qemu-riscv64
%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-sparc32plus
%attr(755,root,root) %{_bindir}/qemu-sparc64
%attr(755,root,root) %{_bindir}/qemu-x86_64
+%attr(755,root,root) %{_bindir}/qemu-xtensa
+%attr(755,root,root) %{_bindir}/qemu-xtensaeb
%if %{with user_static}
%files user-static
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-aarch64-static
+%attr(755,root,root) %{_bindir}/qemu-aarch64_be-static
%attr(755,root,root) %{_bindir}/qemu-alpha-static
%attr(755,root,root) %{_bindir}/qemu-arm-static
%attr(755,root,root) %{_bindir}/qemu-armeb-static
%attr(755,root,root) %{_bindir}/qemu-ppc64-static
%attr(755,root,root) %{_bindir}/qemu-ppc64abi32-static
%attr(755,root,root) %{_bindir}/qemu-ppc64le-static
+%attr(755,root,root) %{_bindir}/qemu-riscv32-static
+%attr(755,root,root) %{_bindir}/qemu-riscv64-static
%attr(755,root,root) %{_bindir}/qemu-s390x-static
%attr(755,root,root) %{_bindir}/qemu-sh4-static
%attr(755,root,root) %{_bindir}/qemu-sh4eb-static
%attr(755,root,root) %{_bindir}/qemu-sparc64-static
%attr(755,root,root) %{_bindir}/qemu-tilegx-static
%attr(755,root,root) %{_bindir}/qemu-x86_64-static
+%attr(755,root,root) %{_bindir}/qemu-xtensa-static
+%attr(755,root,root) %{_bindir}/qemu-xtensaeb-static
%endif
%files system-aarch64
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-system-cris
+%files system-hppa
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/qemu-system-hppa
+%{_datadir}/%{name}/hppa-firmware.img
+
%files system-lm32
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/qemu-system-lm32
%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}/canyonlands.dtb
%{_datadir}/%{name}/qemu_vga.ndrv
%{_datadir}/%{name}/u-boot.e500
+%{_datadir}/%{name}/u-boot-sam460-20100605.bin
+
+%files system-riscv32
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/qemu-system-riscv32
+
+%files system-riscv64
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/qemu-system-riscv64
%files system-s390x
%defattr(644,root,root,755)
%endif
%{_datadir}/%{name}/bios.bin
%{_datadir}/%{name}/bios-256k.bin
-%{_datadir}/%{name}/acpi-dsdt.aml
%files system-xtensa
%defattr(644,root,root,755)
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/%{name}/block-curl.so
-%files module-block-dmg
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/%{name}/block-dmg-bz2.so
-
%if %{with glusterfs}
%files module-block-gluster
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/%{name}/block-iscsi.so
%endif
-%if %{with libnfs}
-%files module-block-nfs
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/%{name}/block-nfs.so
-%endif
-
%if %{with ceph}
%files module-block-rbd
%defattr(644,root,root,755)