X-Git-Url: http://git.pld-linux.org/?p=packages%2Fqemu.git;a=blobdiff_plain;f=qemu.spec;h=8f1af9dbdb057ce39709b1e781def08319d46cbf;hp=878576d3daf638efd3e3c211fa00efae2ed1d632;hb=1b469720678e8543c4cb9818dde4e19879e051cf;hpb=d80315be18182dba8b67ff5d076e2c56e771d371 diff --git a/qemu.spec b/qemu.spec index 878576d..8f1af9d 100644 --- a/qemu.spec +++ b/qemu.spec @@ -1,15 +1,18 @@ +# TODO: +# libvxhs/libqnio (Veritas HyperScale block driver VxHS) +# capstone=system +# libpmem (x86_64 only?) +# plugins? # # Conditional build: %bcond_without sdl # SDL UI and audio support -%bcond_without gl # Don't require gl deps +%bcond_without opengl # Don't require GL deps %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_with esd # EsounD audio support %bcond_without oss # OSS audio support %bcond_without pulseaudio # PulseAudio audio support %bcond_without xen # Xen backend driver support @@ -18,6 +21,7 @@ %bcond_without smartcard # smartcard-nss support %bcond_without iscsi # iscsi support %bcond_without libnfs # NFS support +%bcond_without multipath # Multipath support %bcond_without seccomp # seccomp support %bcond_without usbredir # usb network redirection support %bcond_without system_seabios # system seabios binary @@ -25,10 +29,8 @@ %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 @@ -37,13 +39,12 @@ Summary: QEMU CPU Emulator Summary(pl.UTF-8): QEMU - emulator procesora Name: qemu -Version: 2.10.1 -Release: 1 -License: GPL v2 +Version: 4.2.0 +Release: 2 +License: GPL v2, BSD (edk2 firmware files) Group: Applications/Emulators Source0: http://wiki.qemu-project.org/download/%{name}-%{version}.tar.xz -# Source0-md5: 0c4d98038480c5c19a95990eb8d04a51 -Source2: %{name}.binfmt +# Source0-md5: 278eeb294e4b497e79af7a57e660cb9a # Loads kvm kernel modules at boot Source3: kvm-modules-load.conf # Creates /dev/kvm @@ -57,17 +58,20 @@ Source9: ksmtuned Source10: ksmtuned.conf Source11: %{name}-guest-agent.service Source12: 99-%{name}-guest-agent.rules +Source13: %{name}-guest-agent.init +Source14: %{name}-guest-agent.logrotate 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 +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_opengl:BuildRequires: Mesa-libgbm-devel} +%{?with_opengl:BuildRequires: OpenGL-GLX-devel} +%{?with_opengl:BuildRequires: OpenGL-devel} %{?with_sdl:BuildRequires: SDL2-devel >= 2.0} +%{?with_sdl:BuildRequires: SDL2_image-devel >= 2.0} BuildRequires: alsa-lib-devel BuildRequires: bcc >= 0.16.21-2 %{?with_bluetooth:BuildRequires: bluez-libs-devel} @@ -76,31 +80,41 @@ BuildRequires: bzip2-devel %{?with_ceph:BuildRequires: ceph-devel} BuildRequires: curl-devel BuildRequires: cyrus-sasl-devel >= 2 -%{?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: glib2-devel >= 1:2.48 +# minimal is 3.4 but new features are used up to 6 +%{?with_glusterfs:BuildRequires: glusterfs-devel >= 6} +BuildRequires: gnutls-devel >= 3.1.18 BuildRequires: libaio-devel -%{?with_smartcard:BuildRequires: libcacard-devel} +%{?with_smartcard:BuildRequires: libcacard-devel >= 2.5.1} BuildRequires: libcap-devel BuildRequires: libcap-ng-devel -%{?with_gl:BuildRequires: libepoxy-devel} +%{?with_opengl:BuildRequires: libepoxy-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} -BuildRequires: libssh2-devel >= 1.2.8 -BuildRequires: libusb-devel >= 1.0.13 +%{?with_seccomp:BuildRequires: libseccomp-devel >= 2.3.0} +BuildRequires: libssh-devel >= 0.8 +BuildRequires: libslirp-devel >= 4.0.0 +# for tests only +#BuildRequires: libtasn1-devel +BuildRequires: libusb-devel >= 1.0.22 BuildRequires: libuuid-devel +BuildRequires: libxml2-devel >= 2.0 %{?with_lttng:BuildRequires: lttng-ust-devel} +BuildRequires: lzfse-devel BuildRequires: lzo-devel >= 2 +%{?with_multipath:BuildRequires: multipath-tools-devel} BuildRequires: ncurses-devel +# also libgcrypt-devel >= 1.5.0 possible, but gnutls already pulls nettle +BuildRequires: nettle-devel >= 2.7.1 %{?with_smartcard:BuildRequires: nss-devel >= 1:3.12.8} BuildRequires: numactl-devel +BuildRequires: pam-devel BuildRequires: perl-Encode BuildRequires: perl-tools-pod BuildRequires: pixman-devel >= 0.21.8 @@ -110,31 +124,32 @@ BuildRequires: rpmbuild(macros) >= 1.644 %{?with_system_seabios:BuildRequires: seabios} BuildRequires: sed >= 4.0 %{?with_snappy:BuildRequires: snappy-devel} +BuildRequires: sphinx-pdg %if %{with spice} BuildRequires: spice-protocol >= 0.12.3 -BuildRequires: spice-server-devel >= 0.12.0 +BuildRequires: spice-server-devel >= 0.12.5 %endif %{?with_systemtap:BuildRequires: systemtap-sdt-devel} BuildRequires: texi2html BuildRequires: texinfo +%{?with_multipath:BuildRequires: udev-devel} %{?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} +%{?with_virgl:BuildRequires: virglrenderer-devel} +# xencontrol xenstore xenguest xenforeignmemory xengnttab xenevtchn xendevicemodel [xentoolcore for xen 4.10+] +%{?with_xen:BuildRequires: xen-devel >= 4.2} 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 -%{?with_vte:BuildRequires: vte2.90-devel >= 0.32.0} +BuildRequires: gtk+3-devel >= 3.16 +%{?with_vte:BuildRequires: vte-devel >= 0.32.0} %endif %if %{with user_static} -BuildRequires: glib2-static +BuildRequires: glib2-static >= 1:2.48 BuildRequires: glibc-static BuildRequires: pcre-static BuildRequires: zlib-static @@ -144,13 +159,17 @@ Requires: %{name}-system-aarch64 = %{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-mips = %{version}-%{release} Requires: %{name}-system-moxie = %{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} @@ -160,28 +179,27 @@ Requires: %{name}-system-x86 = %{version}-%{release} Requires: %{name}-system-xtensa = %{version}-%{release} Requires: %{name}-user = %{version}-%{release} Obsoletes: qemu-kvm +ExcludeArch: i386 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define systempkg_req \ %if %{with sdl} \ Requires: SDL2 \ %endif \ +%{?with_smartcard:Requires: libcacard >= 2.5.1} \ Requires: libfdt >= 1.4.2 \ %if %{with seccomp} \ -Requires: libseccomp >= 2.1.0 \ +Requires: libseccomp >= 2.3.0 \ %endif \ -Requires: libusb >= 1.0.13 \ +Requires: libslirp >= 4.0.0 \ +Requires: libusb >= 1.0.22 \ 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 \ -%{?with_vte:Requires: vte2.90 >= 0.32.0} \ +Requires: gtk+3 >= 3.16 \ +%{?with_vte:Requires: vte >= 0.32.0} \ %endif # don't strip/chrpath anything in there; these are boot images, roms etc @@ -230,13 +248,14 @@ Requires(pre): /bin/id Requires(pre): /usr/bin/getgid Requires(pre): /usr/sbin/groupadd Requires(pre): /usr/sbin/useradd -Requires: glib2 >= 1:2.22 +Requires: glib2 >= 1:2.48 %{?with_libnfs:Requires: libnfs >= 1.9.3} -Requires: libssh2 >= 1.2.8 +Requires: libssh >= 0.8 Requires: systemd-units >= 38 Provides: group(qemu) Provides: user(qemu) Obsoletes: qemu-kvm-common +Obsoletes: qemu-module-block-archipelago < 2.9.0 Conflicts: qemu < 1.0-2 %description common @@ -290,6 +309,7 @@ Ten pakiet udostępnia emulację trybu użytkownika środowisk QEMU. %package user-static Summary: QEMU user mode emulation of qemu targets static build +Summary(pl.UTF-8): QEMU - emulacja trybu użytkownika środowisk qemu - wersja statyczna Group: Development/Tools Requires(post,postun): systemd-units >= 38 Requires: systemd-units >= 38 @@ -299,7 +319,14 @@ 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 built as -static binaries +static binaries. + +%description user-static -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 w +oparciu o programy wykonywalne zbudowane statycznie. %package system-aarch64 Summary: QEMU system emulator for AArch64 @@ -313,13 +340,13 @@ Obsoletes: qemu-kvm-system-aarch64 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 AArch64 CPU. +This package provides the system emulator with AArch64 (ARM64) CPU. %description system-aarch64 -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 AArch64. +Ten pakiet zawiera emulator systemu z procesorem AArch64 (ARM64). %package system-alpha Summary: QEMU system emulator for Alpha @@ -342,8 +369,8 @@ 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 +Summary: QEMU system emulator for 32-bit ARM +Summary(pl.UTF-8): QEMU - emulator systemu z 32-bitowym procesorem ARM Group: Development/Tools Requires: %{name}-common = %{version}-%{release} %systempkg_req @@ -353,13 +380,13 @@ Obsoletes: qemu-kvm-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. +This package provides the system emulator for 32-bit 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. +Ten pakiet zawiera emulator systemu z 32-bitowym procesorem ARM. %package system-cris Summary: QEMU system emulator for CRIS @@ -381,6 +408,25 @@ dobrą szybkość emulacji dzięki użyciu translacji dynamicznej. 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 (PA-RISC) 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 (PA-RISC). + %package system-lm32 Summary: QEMU system emulator for LM32 Summary(pl.UTF-8): QEMU - emulator systemu z procesorem LM32 @@ -413,13 +459,15 @@ Obsoletes: qemu-kvm-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. +This package provides the system emulator with m68k (Motorola 68xxx) +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. +Ten pakiet zawiera emulator systemu z procesorem m68k (Motorola +68xxx). %package system-microblaze Summary: QEMU system emulator for MicroBlaze @@ -480,6 +528,25 @@ dobrą szybkość emulacji dzięki użyciu translacji dynamicznej. Ten pakiet zawiera emulator systemu z procesorem Moxie. +%package system-nios2 +Summary: QEMU system emulator for Nios II +Summary(pl.UTF-8): QEMU - emulator systemu z procesorem Nios II +Group: Development/Tools +Requires: %{name}-common = %{version}-%{release} +%systempkg_req + +%description system-nios2 +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 Nios II CPU. + +%description system-nios2 -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 Nios II. + %package system-or1k Summary: QEMU system emulator for OpenRISC Summary(pl.UTF-8): QEMU - emulator systemu z procesorem OpenRISC @@ -521,9 +588,47 @@ dobrą szybkość emulacji dzięki użyciu translacji dynamicznej. 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 bitowym) +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-bitowym). + %package system-s390x -Summary: QEMU system emulator for S390 -Summary(pl.UTF-8): QEMU - emulator systemu z procesorem S390 +Summary: QEMU system emulator for S390x (IBM Z) +Summary(pl.UTF-8): QEMU - emulator systemu z procesorem S390x (IBM Z) Group: Development/Tools Requires: %{name}-common = %{version}-%{release} %systempkg_req @@ -533,13 +638,13 @@ Obsoletes: qemu-kvm-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. +This package provides the system emulator with S390x (IBM Z) 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. +Ten pakiet zawiera emulator systemu z procesorem S390x (IBM Z). %package system-sh4 Summary: QEMU system emulator for SH4 @@ -634,10 +739,14 @@ Obsoletes: qemu-kvm-system-x86 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 x86 CPU. + %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. +Ten pakiet zawiera emulator systemu z procesorem x86. + %package system-xtensa Summary: QEMU system emulator for Xtensa Summary(pl.UTF-8): QEMU - emulator systemu z procesorem Xtensa @@ -663,9 +772,10 @@ 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.22 +Requires: glib2 >= 1:2.48 Requires: systemd-units >= 38 Obsoletes: qemu-kvm-guest-agent +Conflicts: SysVinit < 2.96-2 %description guest-agent QEMU is a generic and open source processor emulator which achieves a @@ -704,7 +814,7 @@ Summary: QEMU module for 'gluster' block devices Summary(pl.UTF-8): Moduł QEMU dla urządeń blokowych typu 'gluster' Group: Development/Tools Requires: %{name}-common = %{version}-%{release} -Requires: glusterfs-libs >= 3.4 +Requires: glusterfs-libs >= 6 %description module-block-gluster 'gluster' block device support for QEMU. @@ -752,12 +862,11 @@ Moduł QEMU dla urządeń blokowych typu 'ssh'. %prep %setup -q %patch0 -p1 -%patch1 -p1 -%patch2 -p0 +%patch1 -p0 +%patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 -%patch6 -p1 # workaround for conflict with alsa/error.h ln -s ../error.h qapi/error.h @@ -795,6 +904,7 @@ build() { build dynamic \ --extra-cflags="%{rpmcflags} %{rpmcppflags} -fPIE -DPIE" \ --extra-ldflags="%{rpmldflags} -pie -Wl,-z,relro -Wl,-z,now" \ + --audio-drv-list="alsa%{?with_oss:,oss}%{?with_sdl:,sdl}%{?with_pulseaudio:,pa}" \ --enable-attr \ %{__enable_disable bluetooth bluez} \ %{__enable_disable brlapi} \ @@ -804,34 +914,33 @@ build dynamic \ --enable-docs \ --enable-fdt \ %{__enable_disable glusterfs} \ + %{!?with_gtk3:--disable-gtk} \ %{__enable_disable iscsi libiscsi} \ + %{__enable_disable libnfs} \ + --enable-lzo \ + %{__enable_disable multipath mpath} \ + --enable-modules \ + --disable-netmap \ + --enable-nettle \ %{__enable_disable ceph rbd} \ %{__enable_disable rdma} \ %{__enable_disable sdl} \ - --with-sdlabi=2.0 \ %{__enable_disable seccomp} \ + --enable-slirp=system \ %{__enable_disable spice} \ %{__enable_disable smartcard smartcard} \ + %{__enable_disable snappy} \ --enable-tpm \ %{__enable_disable usbredir usb-redir} \ --enable-vde \ + %{__enable_disable virgl virglrenderer} \ --enable-virtfs \ --enable-vnc-jpeg \ --enable-vnc-png \ --enable-vnc-sasl \ %{!?with_vte:--disable-vte} \ %{__enable_disable xen} \ - --enable-modules \ - --disable-netmap \ - %{__enable_disable libnfs} \ - --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} - --disable-gtk -%else - --with-gtkabi="%{?with_gtk2:2.0}%{!?with_gtk2:3.0}" -%endif + %{__enable_disable xkbcommon} %if %{with user_static} build static \ @@ -845,27 +954,26 @@ build static \ --disable-guest-agent \ --disable-guest-agent-msi \ --disable-libnfs \ + --disable-mpath \ --disable-nettle \ --disable-pie \ --disable-sdl \ + --enable-slirp=internal \ --disable-spice \ + --disable-system \ --disable-tcmalloc \ --disable-tools \ --enable-user \ - --disable-system \ + --disable-xkbcommon \ --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{%{systemdunitdir},/usr/lib/binfmt.d} \ - $RPM_BUILD_ROOT/etc/{qemu,sysconfig,udev/rules.d,modules-load.d} \ + $RPM_BUILD_ROOT/etc/{qemu,sysconfig,udev/rules.d,modules-load.d,rc.d/init.d,logrotate.d} \ $RPM_BUILD_ROOT{%{_sysconfdir}/sasl,%{_sbindir}} %if %{with user_static} @@ -875,7 +983,7 @@ install -d $RPM_BUILD_ROOT{%{systemdunitdir},/usr/lib/binfmt.d} \ # Give all QEMU user emulators a -static suffix for src in $RPM_BUILD_ROOT%{_bindir}/qemu-*; do - mv $src $src-static + %{__mv} $src $src-static done %endif @@ -884,6 +992,9 @@ done %{!?with_smartcard:CONFIG_USB_SMARTCARD=n} \ DESTDIR=$RPM_BUILD_ROOT +# let rpm generate dependencies +chmod 755 $RPM_BUILD_ROOT%{_libdir}/%{name}/*.so + echo "#allow br0" > $RPM_BUILD_ROOT/etc/qemu/bridge.conf install -d $RPM_BUILD_ROOT%{_sysconfdir} @@ -912,64 +1023,75 @@ install -p %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/ksmtuned.conf install -p %{SOURCE11} $RPM_BUILD_ROOT%{systemdunitdir} install -p %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d +install -p %{SOURCE13} $RPM_BUILD_ROOT/etc/rc.d/init.d/qemu-ga +install -p %{SOURCE14} $RPM_BUILD_ROOT/etc/logrotate.d/qemu-ga + # Install binfmt -for i in dummy \ +BINFMT_CPUS=" \ %ifnarch %{ix86} %{x8664} x32 - qemu-i386 \ + i386 x86_64 \ +%endif +%ifnarch aarch64 + aarch64 \ %endif %ifnarch alpha - qemu-alpha \ + alpha \ %endif %ifnarch %{arm} - qemu-arm \ + arm \ %endif - qemu-armeb \ - qemu-cris \ - qemu-microblaze qemu-microblazeel \ + aarch64_be \ + armeb \ + microblaze microblazeel \ %ifnarch mips64 - qemu-mips64 \ + mips64 \ %ifnarch mips - qemu-mips \ + mips \ %endif %endif %ifnarch mips64el - qemu-mips64el \ + mips64el \ %ifnarch mipsel - qemu-mipsel \ + mipsel \ %endif %endif %ifnarch m68k - qemu-m68k \ + m68k \ %endif %ifnarch ppc ppc64 ppc64le - qemu-ppc qemu-ppc64abi32 qemu-ppc64 \ + ppc ppc64 ppc64le \ %endif %ifnarch sparc sparc64 - qemu-sparc qemu-sparc32plus qemu-sparc64 \ + sparc sparc32plus sparc64 \ %endif %ifnarch s390 s390x - qemu-s390x \ + s390x \ %endif %ifnarch sh4 - qemu-sh4 \ + sh4 \ %endif - qemu-sh4eb \ -; do - test $i = dummy && continue - grep /$i:\$ %{SOURCE2} > $RPM_BUILD_ROOT/usr/lib/binfmt.d/$i-dynamic.conf + sh4eb \ +" + +if [ -n "$BINFMT_CPUS" ]; then + for cpu in $BINFMT_CPUS; do + bash ./scripts/qemu-binfmt-conf.sh --systemd "$cpu" --exportdir $RPM_BUILD_ROOT/usr/lib/binfmt.d --qemu-path %{_bindir} + done + for i in /$RPM_BUILD_ROOT/usr/lib/binfmt.d/*.conf; do + mv $i ${i%.conf}-dynamic.conf + done %if %{with user_static} - grep /$i:\$ %{SOURCE2} > $RPM_BUILD_ROOT/usr/lib/binfmt.d/$i-static.conf - %{__sed} -i -e "s/$i/$i-static/" $RPM_BUILD_ROOT/usr/lib/binfmt.d/$i-static.conf + for regularfmt in $RPM_BUILD_ROOT/usr/lib/binfmt.d/*; do + staticfmt="${regularfmt%\-dynamic.conf}-static.conf" + cat $regularfmt | tr -d '\n' | sed "s/:$/-static:F/" > $staticfmt + done %endif -done < %{SOURCE2} +fi # 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 @@ -981,7 +1103,7 @@ for f in $RPM_BUILD_ROOT%{_datadir}/%{name}/*.aml ; do 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} @@ -989,6 +1111,12 @@ done : > qemu.lang %endif +# Windows installer icon, not used +%{__rm} $RPM_BUILD_ROOT%{_datadir}/%{name}/qemu-nsis.bmp +# packaged as %doc +%{__rm} $RPM_BUILD_ROOT%{_datadir}/%{name}/edk2-licenses.txt +%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/qemu + %clean rm -rf $RPM_BUILD_ROOT @@ -1030,9 +1158,15 @@ fi %systemd_service_restart systemd-binfmt.service %post guest-agent +/sbin/chkconfig --add qemu-ga +%service qemu-ga restart "qemu-ga" %systemd_reload %preun guest-agent +if [ "$1" = "0" ]; then + %service qemu-ga stop + /sbin/chkconfig --del qemu-ga +fi %systemd_preun qemu-guest-agent.service %postun guest-agent @@ -1043,8 +1177,7 @@ fi %files common -f %{name}.lang %defattr(644,root,root,755) -%doc LICENSE README -%doc build-dynamic/qemu-doc.html +%doc LICENSE README.rst build-dynamic/qemu-doc.html pc-bios/edk2-licenses.txt %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/qemu-ifup %config(noreplace) %verify(not md5 mtime size) /etc/ksmtuned.conf %config(noreplace) %verify(not md5 mtime size) /etc/sasl/qemu.conf @@ -1053,70 +1186,63 @@ fi %attr(640,root,qemu) %config(noreplace) %verify(not md5 mtime size) /etc/qemu/bridge.conf %{systemdunitdir}/ksm.service %{systemdunitdir}/ksmtuned.service +%attr(755,root,root) %{_bindir}/elf2dmp %attr(755,root,root) %{_bindir}/ivshmem-client %attr(755,root,root) %{_bindir}/ivshmem-server -%attr(755,root,root) %{_bindir}/virtfs-proxy-helper +%attr(755,root,root) %{_bindir}/qemu-edid +%if %{with xkbcommon} +%attr(755,root,root) %{_bindir}/qemu-keymap +%endif %attr(755,root,root) %{_bindir}/qemu-nbd -%attr(755,root,root) %{_bindir}/qemu-tilegx -%attr(755,root,root) %{_libexecdir}/qemu-bridge-helper +%attr(755,root,root) %{_bindir}/qemu-pr-helper +%attr(755,root,root) %{_bindir}/virtfs-proxy-helper %attr(755,root,root) %{_sbindir}/ksmctl %attr(755,root,root) %{_sbindir}/ksmtuned +%attr(755,root,root) %{_libexecdir}/qemu-bridge-helper %{_mandir}/man1/qemu.1* %{_mandir}/man1/virtfs-proxy-helper.1* +%{_mandir}/man7/qemu-block-drivers.7* +%{_mandir}/man7/qemu-cpu-models.7* +%{_mandir}/man7/qemu-qmp-ref.7* %{_mandir}/man8/qemu-nbd.8* -%dir %{_datadir}/qemu +%dir %{_datadir}/%{name} +%dir %{_datadir}/%{name}/firmware %{_datadir}/%{name}/keymaps -%{_datadir}/%{name}/qemu-icon.bmp %{_datadir}/%{name}/trace-events-all - -# various bios images -# all should be probably moved to the right system subpackage -%{_datadir}/%{name}/bamboo.dtb -%{_datadir}/%{name}/efi-e1000e.rom -%{_datadir}/%{name}/efi-e1000.rom -%{_datadir}/%{name}/efi-eepro100.rom -%{_datadir}/%{name}/efi-ne2k_pci.rom -%{_datadir}/%{name}/efi-pcnet.rom -%{_datadir}/%{name}/efi-rtl8139.rom -%{_datadir}/%{name}/efi-virtio.rom -%{_datadir}/%{name}/efi-vmxnet3.rom -%{_datadir}/%{name}/kvmvapic.bin -%{_datadir}/%{name}/linuxboot.bin -%{_datadir}/%{name}/linuxboot_dma.bin -%{_datadir}/%{name}/multiboot.bin -%{_datadir}/%{name}/openbios-ppc -%{_datadir}/%{name}/openbios-sparc* -%{_datadir}/%{name}/palcode-clipper -%{_datadir}/%{name}/petalogix-ml605.dtb -%{_datadir}/%{name}/petalogix-s3adsp1800.dtb -%{_datadir}/%{name}/ppc_rom.bin -%{_datadir}/%{name}/pxe-e1000.rom -%{_datadir}/%{name}/pxe-eepro100.rom -%{_datadir}/%{name}/pxe-ne2k_pci.rom -%{_datadir}/%{name}/pxe-pcnet.rom -%{_datadir}/%{name}/pxe-rtl8139.rom -%{_datadir}/%{name}/pxe-virtio.rom -%{_datadir}/%{name}/QEMU,cgthree.bin -%{_datadir}/%{name}/qemu_logo_no_text.svg -%{_datadir}/%{name}/QEMU,tcx.bin -%{_datadir}/%{name}/s390-ccw.img -%{_datadir}/%{name}/sgabios.bin -%{_datadir}/%{name}/skiboot.lid -%{_datadir}/%{name}/slof.bin -%{_datadir}/%{name}/spapr-rtas.bin -%{_datadir}/%{name}/vgabios.bin -%{_datadir}/%{name}/vgabios-cirrus.bin -%{_datadir}/%{name}/vgabios-qxl.bin -%{_datadir}/%{name}/vgabios-stdvga.bin -%{_datadir}/%{name}/vgabios-virtio.bin -%{_datadir}/%{name}/vgabios-vmware.bin +%{_desktopdir}/qemu.desktop +%{_iconsdir}/hicolor/*x*/apps/qemu.png +%{_iconsdir}/hicolor/32x32/apps/qemu.bmp +%{_iconsdir}/hicolor/scalable/apps/qemu.svg %dir %{_libdir}/%{name} # modules without too many external dependencies %attr(755,root,root) %{_libdir}/%{name}/block-dmg-bz2.so +%attr(755,root,root) %{_libdir}/%{name}/block-dmg-lzfse.so +%if %{with libnfs} %attr(755,root,root) %{_libdir}/%{name}/block-nfs.so +%endif + +%attr(755,root,root) %{_libdir}/%{name}/audio-alsa.so +%if %{with oss} +%attr(755,root,root) %{_libdir}/%{name}/audio-oss.so +%endif +%if %{with pulseaudio} +%attr(755,root,root) %{_libdir}/%{name}/audio-pa.so +%endif + +%attr(755,root,root) %{_libdir}/%{name}/ui-curses.so +%if %{with gtk3} +%attr(755,root,root) %{_libdir}/%{name}/ui-gtk.so +%endif +%if %{with sdl} +%attr(755,root,root) %{_libdir}/%{name}/audio-sdl.so +%attr(755,root,root) %{_libdir}/%{name}/ui-sdl.so +%endif +%if %{with spice} +%attr(755,root,root) %{_libdir}/%{name}/ui-spice-app.so +%endif %files img %defattr(644,root,root,755) @@ -1127,10 +1253,12 @@ fi %defattr(644,root,root,755) /usr/lib/binfmt.d/qemu-*-dynamic.conf %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-cris +%attr(755,root,root) %{_bindir}/qemu-hppa %attr(755,root,root) %{_bindir}/qemu-i386 %attr(755,root,root) %{_bindir}/qemu-io %attr(755,root,root) %{_bindir}/qemu-m68k @@ -1142,28 +1270,36 @@ fi %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-nios2 %attr(755,root,root) %{_bindir}/qemu-or1k %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-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-sparc %attr(755,root,root) %{_bindir}/qemu-sparc32plus %attr(755,root,root) %{_bindir}/qemu-sparc64 +%attr(755,root,root) %{_bindir}/qemu-tilegx %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) /usr/lib/binfmt.d/qemu-*-static.conf %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-cris-static +%attr(755,root,root) %{_bindir}/qemu-hppa-static %attr(755,root,root) %{_bindir}/qemu-i386-static %attr(755,root,root) %{_bindir}/qemu-m68k-static %attr(755,root,root) %{_bindir}/qemu-microblaze-static @@ -1174,11 +1310,14 @@ fi %attr(755,root,root) %{_bindir}/qemu-mipsel-static %attr(755,root,root) %{_bindir}/qemu-mipsn32-static %attr(755,root,root) %{_bindir}/qemu-mipsn32el-static +%attr(755,root,root) %{_bindir}/qemu-nios2-static %attr(755,root,root) %{_bindir}/qemu-or1k-static %attr(755,root,root) %{_bindir}/qemu-ppc-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 @@ -1187,24 +1326,37 @@ fi %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-aarch64 +%{_datadir}/%{name}/edk2-aarch64-code.fd +%{_datadir}/%{name}/firmware/60-edk2-aarch64.json %files system-alpha %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/qemu-system-alpha +%{_datadir}/%{name}/palcode-clipper %files system-arm %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/qemu-system-arm +%{_datadir}/%{name}/edk2-arm-code.fd +%{_datadir}/%{name}/edk2-arm-vars.fd +%{_datadir}/%{name}/firmware/60-edk2-arm.json %files system-cris %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 @@ -1229,6 +1381,10 @@ fi %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/qemu-system-moxie +%files system-nios2 +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/qemu-system-nios2 + %files system-or1k %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/qemu-system-or1k @@ -1237,14 +1393,33 @@ fi %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}/bamboo.dtb +%{_datadir}/%{name}/canyonlands.dtb +%{_datadir}/%{name}/openbios-ppc +%{_datadir}/%{name}/petalogix-ml605.dtb +%{_datadir}/%{name}/petalogix-s3adsp1800.dtb +%{_datadir}/%{name}/ppc_rom.bin %{_datadir}/%{name}/qemu_vga.ndrv +%{_datadir}/%{name}/skiboot.lid +%{_datadir}/%{name}/slof.bin %{_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 +%{_datadir}/%{name}/opensbi-riscv32-virt-fw_jump.bin + +%files system-riscv64 +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/qemu-system-riscv64 +%{_datadir}/%{name}/opensbi-riscv64-sifive_u-fw_jump.bin +%{_datadir}/%{name}/opensbi-riscv64-virt-fw_jump.bin %files system-s390x %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/qemu-system-s390x +%{_datadir}/%{name}/s390-ccw.img %{_datadir}/%{name}/s390-netboot.img %files system-sh4 @@ -1256,6 +1431,10 @@ fi %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/qemu-system-sparc %attr(755,root,root) %{_bindir}/qemu-system-sparc64 +%{_datadir}/%{name}/QEMU,cgthree.bin +%{_datadir}/%{name}/QEMU,tcx.bin +%{_datadir}/%{name}/openbios-sparc32 +%{_datadir}/%{name}/openbios-sparc64 %files system-tricore %defattr(644,root,root,755) @@ -1275,7 +1454,45 @@ fi %endif %{_datadir}/%{name}/bios.bin %{_datadir}/%{name}/bios-256k.bin -%{_datadir}/%{name}/acpi-dsdt.aml +%{_datadir}/%{name}/bios-microvm.bin +%{_datadir}/%{name}/edk2-i386-code.fd +%{_datadir}/%{name}/edk2-i386-secure-code.fd +%{_datadir}/%{name}/edk2-i386-vars.fd +%{_datadir}/%{name}/edk2-x86_64-code.fd +%{_datadir}/%{name}/edk2-x86_64-secure-code.fd +%{_datadir}/%{name}/efi-e1000e.rom +%{_datadir}/%{name}/efi-e1000.rom +%{_datadir}/%{name}/efi-eepro100.rom +%{_datadir}/%{name}/efi-ne2k_pci.rom +%{_datadir}/%{name}/efi-pcnet.rom +%{_datadir}/%{name}/efi-rtl8139.rom +%{_datadir}/%{name}/efi-virtio.rom +%{_datadir}/%{name}/efi-vmxnet3.rom +%{_datadir}/%{name}/kvmvapic.bin +%{_datadir}/%{name}/linuxboot.bin +%{_datadir}/%{name}/linuxboot_dma.bin +%{_datadir}/%{name}/multiboot.bin +%{_datadir}/%{name}/pvh.bin +%{_datadir}/%{name}/pxe-e1000.rom +%{_datadir}/%{name}/pxe-eepro100.rom +%{_datadir}/%{name}/pxe-ne2k_pci.rom +%{_datadir}/%{name}/pxe-pcnet.rom +%{_datadir}/%{name}/pxe-rtl8139.rom +%{_datadir}/%{name}/pxe-virtio.rom +%{_datadir}/%{name}/sgabios.bin +%{_datadir}/%{name}/vgabios.bin +%{_datadir}/%{name}/vgabios-ati.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 +%{_datadir}/%{name}/firmware/50-edk2-i386-secure.json +%{_datadir}/%{name}/firmware/50-edk2-x86_64-secure.json +%{_datadir}/%{name}/firmware/60-edk2-i386.json +%{_datadir}/%{name}/firmware/60-edk2-x86_64.json %files system-xtensa %defattr(644,root,root,755) @@ -1286,7 +1503,10 @@ fi %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(754,root,root) /etc/rc.d/init.d/qemu-ga +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/qemu-ga %attr(755,root,root) %{_bindir}/qemu-ga +%{_mandir}/man7/qemu-ga-ref.7* %{_mandir}/man8/qemu-ga.8* %files module-block-curl