From: Jakub Bogusz Date: Sun, 12 Jun 2022 06:33:10 +0000 (+0200) Subject: - updated to 6.2.0; -system-moxie is gone X-Git-Tag: auto/th/qemu-6.2.0-1~1 X-Git-Url: http://git.pld-linux.org/?p=packages%2Fqemu.git;a=commitdiff_plain;h=f6b5cdb - updated to 6.2.0; -system-moxie is gone - updated execve patch - added u2f-emu patch (adjust e2f-emu.h header for meson-based libu2f-emu build) - added -module-audio-jack and -devel subpackages --- diff --git a/qemu-u2f-emu.patch b/qemu-u2f-emu.patch new file mode 100644 index 0000000..3f74ad8 --- /dev/null +++ b/qemu-u2f-emu.patch @@ -0,0 +1,11 @@ +--- qemu-6.2.0/hw/usb/u2f-emulated.c.orig 2021-12-14 21:42:02.000000000 +0100 ++++ qemu-6.2.0/hw/usb/u2f-emulated.c 2022-06-23 06:03:41.512678723 +0200 +@@ -31,7 +31,7 @@ + #include "hw/usb.h" + #include "hw/qdev-properties.h" + +-#include ++#include + + #include "u2f.h" + diff --git a/qemu-user-execve.patch b/qemu-user-execve.patch index 8a0cf71..1834887 100644 --- a/qemu-user-execve.patch +++ b/qemu-user-execve.patch @@ -78,18 +78,16 @@ index ee12035..5951279 100644 {"R", "QEMU_RESERVED_VA", true, handle_arg_reserved_va, "size", "reserve 'size' bytes for guest virtual address space"}, {"d", "QEMU_LOG", true, handle_arg_log, -diff --git a/linux-user/qemu.h b/linux-user/qemu.h -index bd90cc3..0d9b058 100644 ---- a/linux-user/qemu.h -+++ b/linux-user/qemu.h -@@ -140,6 +140,7 @@ void init_task_state(TaskState *ts); +--- qemu-6.2.0/linux-user/user-internals.h.orig ++++ qemu-6.2.0/linux-user/user-internals.h +@@ -28,6 +28,7 @@ void init_task_state(TaskState *ts); void task_settid(TaskState *); void stop_all_tasks(void); extern const char *qemu_uname_release; +extern const char *qemu_execve_path; extern unsigned long mmap_min_addr; - /* ??? See if we can avoid exposing so much of the loader internals. */ + typedef struct IOCTLEntry IOCTLEntry; --- qemu-2.12.0/linux-user/syscall.c~ 2018-04-30 21:43:39.000000000 +0300 +++ qemu-2.12.0/linux-user/syscall.c 2018-04-30 21:46:36.362935706 +0300 @@ -5854,6 +5854,109 @@ static target_timer_t get_timer_id(abi_long arg) diff --git a/qemu.spec b/qemu.spec index ce6c1c2..d643611 100644 --- a/qemu.spec +++ b/qemu.spec @@ -29,7 +29,7 @@ %bcond_without virgl # build virgl support %bcond_without xkbcommon # xkbcommon support -%if %{without gtk} +%if %{without gtk3} %undefine with_vte %endif %ifarch x32 @@ -42,12 +42,12 @@ Summary: QEMU CPU Emulator Summary(pl.UTF-8): QEMU - emulator procesora Name: qemu -Version: 6.0.0 +Version: 6.2.0 Release: 1 License: GPL v2, BSD (edk2 firmware files) Group: Applications/Emulators Source0: https://download.qemu.org/%{name}-%{version}.tar.xz -# Source0-md5: cce185dc0119546e395909e8a71a75bb +# Source0-md5: a077669ce58b6ee07ec355e54aad25be # Loads kvm kernel modules at boot Source3: kvm-modules-load.conf # Creates /dev/kvm @@ -70,6 +70,7 @@ Patch1: %{name}-user-execve.patch Patch2: %{name}-xattr.patch Patch3: libjpeg-boolean.patch Patch4: x32.patch +Patch5: %{name}-u2f-emu.patch URL: https://www.qemu.org/ %{?with_opengl:BuildRequires: Mesa-libgbm-devel} %{?with_opengl:BuildRequires: OpenGL-GLX-devel} @@ -79,22 +80,29 @@ URL: https://www.qemu.org/ BuildRequires: alsa-lib-devel %{?with_brlapi:BuildRequires: brlapi-devel} BuildRequires: bzip2-devel -BuildRequires: capstone-devel >= 3.0.5 -%{?with_ceph:BuildRequires: ceph-devel} -BuildRequires: curl-devel +BuildRequires: capstone-devel >= 4.0 +%{?with_ceph:BuildRequires: ceph-devel >= 12} +BuildRequires: curl-devel >= 7.29.0 BuildRequires: cyrus-sasl-devel >= 2 +BuildRequires: daxctl-devel >= 57 +BuildRequires: gcc >= 6:7.4 BuildRequires: gettext-tools -BuildRequires: glib2-devel >= 1:2.48 +BuildRequires: glib2-devel >= 1:2.56 # 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: gnutls-devel >= 3.6.14 %{?with_gtk3:BuildRequires: gtk+3-devel >= 3.22.0} +BuildRequires: jack-audio-connection-kit-devel +# for tests +#BuildRequires: keyutils-devel BuildRequires: libaio-devel +BuildRequires: libbpf-devel %{?with_smartcard:BuildRequires: libcacard-devel >= 2.5.1} BuildRequires: libcap-ng-devel BuildRequires: libdrm-devel %{?with_opengl:BuildRequires: libepoxy-devel} -BuildRequires: libfdt-devel >= 1.4.2 +BuildRequires: libfdt-devel >= 1.5.1 +BuildRequires: libfuse3-devel >= 3.8 %{?with_rdma:BuildRequires: libibverbs-devel} %{?with_iscsi:BuildRequires: libiscsi-devel >= 1.9.0} %{?with_rdma:BuildRequires: libibumad-devel} @@ -103,10 +111,12 @@ BuildRequires: libjpeg-devel BuildRequires: libpng-devel %{?with_rdma:BuildRequires: librdmacm-devel} %{?with_seccomp:BuildRequires: libseccomp-devel >= 2.3.0} -BuildRequires: libssh-devel >= 0.8 +BuildRequires: libselinux-devel +BuildRequires: libssh-devel >= 0.8.7 BuildRequires: libslirp-devel >= 4.0.0 # for tests only #BuildRequires: libtasn1-devel +BuildRequires: libu2f-emu-devel BuildRequires: libusb-devel >= 1.0.22 BuildRequires: liburing-devel BuildRequires: libuuid-devel @@ -114,11 +124,11 @@ BuildRequires: libxml2-devel >= 2.0 %{?with_lttng:BuildRequires: lttng-ust-devel} BuildRequires: lzfse-devel BuildRequires: lzo-devel >= 2 -BuildRequires: meson >= 0.55.0 +BuildRequires: meson >= 0.59.3 %{?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 +# also libgcrypt-devel >= 1.8 possible, but gnutls already pulls nettle +BuildRequires: nettle-devel >= 3.4 BuildRequires: ninja %{?with_smartcard:BuildRequires: nss-devel >= 1:3.12.8} BuildRequires: numactl-devel @@ -129,7 +139,8 @@ BuildRequires: pixman-devel >= 0.21.8 BuildRequires: pkgconfig %{?with_pmem:BuildRequires: pmdk-devel} %{?with_pulseaudio:BuildRequires: pulseaudio-devel} -BuildRequires: python3 >= 1:3.5 +BuildRequires: python3 >= 1:3.6 +BuildRequires: rpm-build >= 4.6 BuildRequires: rpmbuild(macros) >= 1.644 %{?with_system_seabios:BuildRequires: seabios} BuildRequires: sed >= 4.0 @@ -151,8 +162,8 @@ BuildRequires: which %{?with_virgl:BuildRequires: virglrenderer-devel} %{?with_vte:BuildRequires: vte-devel >= 0.32.0} # xencontrol xenstore xenguest xenforeignmemory xengnttab xenevtchn xendevicemodel; xentoolcore for xen 4.10+ -# min version is 4.2, more features up to 4.10 -%{?with_xen:BuildRequires: xen-devel >= 4.10} +# min version is 4.2, more features up to 4.11 +%{?with_xen:BuildRequires: xen-devel >= 4.11} BuildRequires: xfsprogs-devel %if %{with xkbcommon} BuildRequires: xkeyboard-config @@ -163,7 +174,7 @@ BuildRequires: xz BuildRequires: zlib-devel BuildRequires: zstd-devel >= 1.4.0 %if %{with user_static} -BuildRequires: glib2-static >= 1:2.48 +BuildRequires: glib2-static >= 1:2.56 BuildRequires: glibc-static BuildRequires: pcre-static BuildRequires: zlib-static @@ -178,7 +189,6 @@ Requires: %{name}-system-hppa = %{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} @@ -197,9 +207,12 @@ ExcludeArch: i386 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define systempkg_req \ -Requires: capstone >= 3.0.5 \ +Requires: capstone >= 4.0 \ +Requires: daxctl-libs >= 57 \ %{?with_smartcard:Requires: libcacard >= 2.5.1} \ -Requires: libfdt >= 1.4.2 \ +Requires: libfdt >= 1.5.1 \ +Requires: libfuse3 >= 3.8 \ +%{?with_iscsi:Requires: libiscsi >= 1.9.0} \ %if %{with seccomp} \ Requires: libseccomp >= 2.3.0 \ %endif \ @@ -211,8 +224,7 @@ Requires: spice-server-libs >= 0.12.5 \ %endif \ %if %{with usbredir} \ Requires: usbredir >= 0.6 \ -%endif \ -Requires: zstd >= 1.4.0 +%endif # don't strip/chrpath anything in there; these are boot images, roms etc %define _noautostrip .*%{_datadir}/qemu/.* @@ -249,6 +261,18 @@ aby działał na kolejnych procesorach. QEMU ma dwa tryby pracy: używane do wirtualnego hostowania kilku wirtualnych pecetów na pojedynczym serwerze. +%package devel +Summary: Header file for QEMU plugins development +Summary(pl.UTF-8): Plik nagłówkowy do tworzenia wtyczek QEMU +Group: Development/Libraries +BuildArch: noarch + +%description devel +Header file for QEMU plugins development. + +%description devel -l pl.UTF-8 +Plik nagłówkowy do tworzenia wtyczek QEMU. + %package common Summary: QEMU common files needed by all QEMU targets Summary(pl.UTF-8): Wspólne pliki QEMU wymagane przez wszystkie środowiska QEMU @@ -260,16 +284,18 @@ Requires(pre): /bin/id Requires(pre): /usr/bin/getgid Requires(pre): /usr/sbin/groupadd Requires(pre): /usr/sbin/useradd -Requires: glib2 >= 1:2.48 -Requires: gnutls-libs >= 3.1.18 +Requires: glib2 >= 1:2.56 +Requires: gnutls-libs >= 3.6.14 %{?with_gtk3:Requires: gtk+3 >= 3.22.0} -Requires: nettle >= 2.7.1 +Requires: nettle >= 3.4 Requires: systemd-units >= 38 %{?with_vte:Requires: vte >= 0.32.0} +Requires: zstd >= 1.4.0 Provides: group(qemu) Provides: user(qemu) Obsoletes: qemu-kvm-common < 2 Obsoletes: qemu-module-block-archipelago < 2.9.0 +Obsoletes: qemu-system-moxie < 6.1 Conflicts: qemu < 1.0-2 %description common @@ -523,25 +549,6 @@ 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: Applications/Emulators -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-nios2 Summary: QEMU system emulator for Nios II Summary(pl.UTF-8): QEMU - emulator systemu z procesorem Nios II @@ -785,7 +792,7 @@ Summary: QEMU guest agent Summary(pl.UTF-8): Agent gościa QEMU Group: Daemons Requires(post,preun,postun): systemd-units >= 38 -Requires: glib2 >= 1:2.48 +Requires: glib2 >= 1:2.56 Requires: systemd-units >= 38 Obsoletes: qemu-kvm-guest-agent < 2 Conflicts: SysVinit < 2.96-2 @@ -810,11 +817,24 @@ systemach-gościach, komunikującego się kanałem virtio-serial o nazwie Ten pakiet nie musi być zainstalowany w systemie hosta. +%package module-audio-jack +Summary: QEMU module for JACK audio output +Summary(pl.UTF-8): Moduł QEMU z wyjściem dźwięku JACK +Group: Applications/Emulators +Requires: %{name}-common = %{version}-%{release} + +%description module-audio-jack +QEMU module for JACK audio output. + +%description module-audio-jack -l pl.UTF-8 +Moduł QEMU z wyjściem dźwięku JACK. + %package module-block-curl Summary: QEMU module for 'curl' block devices Summary(pl.UTF-8): Moduł QEMU dla urządeń blokowych typu 'curl' Group: Applications/Emulators Requires: %{name}-common = %{version}-%{release} +Requires: curl-libs >= 7.29.0 %description module-block-curl QEMU block device support for CURL. It allows to access remote disks @@ -872,6 +892,7 @@ Summary: QEMU module for 'rbd' block devices Summary(pl.UTF-8): Moduł QEMU dla urządeń blokowych typu 'rbd' Group: Applications/Emulators Requires: %{name}-common = %{version}-%{release} +Requires: ceph-libs >= 12 %description module-block-rbd QEMU block device support for Ceph/RBD volumes. @@ -884,7 +905,7 @@ Summary: QEMU module for 'ssh' block devices Summary(pl.UTF-8): Moduł QEMU dla urządeń blokowych typu 'ssh' Group: Applications/Emulators Requires: %{name}-common = %{version}-%{release} -Requires: libssh >= 0.8 +Requires: libssh >= 0.8.7 %description module-block-ssh QEMU block device support for accessing remote disks using the Secure @@ -938,13 +959,15 @@ Sondy systemtap/dtrace dla QEMU. %patch2 -p1 %patch3 -p1 %patch4 -p1 +%patch5 -p1 %{__sed} -i '1s,/usr/bin/env python3,%{__python3},' scripts/qemu-trace-stap %if %{with systemtap} # don't require stap binary during build -%{__sed} -i -e "s/has 'stap'/true/" configure +%{__sed} -i -e "s/stap.found()/true/" meson.build docs/meson.build scripts/meson.build %endif + %build build() { @@ -979,7 +1002,7 @@ build() { build dynamic \ --extra-cflags="%{rpmcflags} %{rpmcppflags}" \ --extra-ldflags="%{rpmldflags} -Wl,-z,relro -Wl,-z,now" \ - --audio-drv-list="alsa%{?with_oss:,oss}%{?with_sdl:,sdl}%{?with_pulseaudio:,pa}" \ + --audio-drv-list="alsa,jack%{?with_oss:,oss}%{?with_pulseaudio:,pa}%{?with_sdl:,sdl}" \ --enable-attr \ %{__enable_disable brlapi} \ --enable-cap-ng \ @@ -1173,12 +1196,6 @@ fi %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 -for f in $RPM_BUILD_ROOT%{_datadir}/%{name}/*.aml ; do - bn="$(basename $f)" - if [ -e "/usr/share/seabios/$bn" ] ; then - ln -sf "/usr/share/seabios/$bn" "$f" - fi -done %endif %if %{with gtk3} @@ -1193,6 +1210,8 @@ for t in client server; do cp -p build-dynamic/contrib/ivshmem-$t/ivshmem-$t $RPM_BUILD_ROOT%{_bindir} done +# test modules +%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/accel-qtest-*.so # Windows installer icon, not used %{__rm} $RPM_BUILD_ROOT%{_datadir}/%{name}/qemu-nsis.bmp # packaged as %doc @@ -1260,6 +1279,10 @@ fi %files %defattr(644,root,root,755) +%files devel +%defattr(644,root,root,755) +%{_includedir}/qemu-plugin.h + %files common -f %{name}.lang %defattr(644,root,root,755) %doc LICENSE README.rst pc-bios/edk2-licenses.txt @@ -1295,6 +1318,8 @@ fi # 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 +%attr(755,root,root) %{_libdir}/%{name}/accel-tcg-i386.so +%attr(755,root,root) %{_libdir}/%{name}/accel-tcg-x86_64.so %attr(755,root,root) %{_libdir}/%{name}/audio-alsa.so %if %{with oss} %attr(755,root,root) %{_libdir}/%{name}/audio-oss.so @@ -1306,10 +1331,14 @@ fi %attr(755,root,root) %{_libdir}/%{name}/chardev-baum.so %endif %attr(755,root,root) %{_libdir}/%{name}/hw-display-qxl.so -%attr(755,root,root) %{_libdir}/%{name}/hw-display-virtio-gpu-pci.so %attr(755,root,root) %{_libdir}/%{name}/hw-display-virtio-gpu.so +%attr(755,root,root) %{_libdir}/%{name}/hw-display-virtio-gpu-gl.so +%attr(755,root,root) %{_libdir}/%{name}/hw-display-virtio-gpu-pci.so +%attr(755,root,root) %{_libdir}/%{name}/hw-display-virtio-gpu-pci-gl.so %attr(755,root,root) %{_libdir}/%{name}/hw-display-virtio-vga.so +%attr(755,root,root) %{_libdir}/%{name}/hw-display-virtio-vga-gl.so %attr(755,root,root) %{_libdir}/%{name}/hw-s390x-virtio-gpu-ccw.so +%attr(755,root,root) %{_libdir}/%{name}/hw-usb-host.so %attr(755,root,root) %{_libdir}/%{name}/ui-curses.so %if %{with usbredir} %attr(755,root,root) %{_libdir}/%{name}/hw-usb-redirect.so @@ -1485,10 +1514,6 @@ fi %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-nios2 %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/qemu-system-nios2 @@ -1580,6 +1605,7 @@ fi %{_datadir}/%{name}/linuxboot.bin %{_datadir}/%{name}/linuxboot_dma.bin %{_datadir}/%{name}/multiboot.bin +%{_datadir}/%{name}/multiboot_dma.bin %{_datadir}/%{name}/pvh.bin %{_datadir}/%{name}/pxe-e1000.rom %{_datadir}/%{name}/pxe-eepro100.rom @@ -1618,6 +1644,10 @@ fi %{_mandir}/man7/qemu-ga-ref.7* %{_mandir}/man8/qemu-ga.8* +%files module-audio-jack +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/%{name}/audio-jack.so + %files module-block-curl %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/%{name}/block-curl.so diff --git a/x32.patch b/x32.patch index 342bb07..c0dec10 100644 --- a/x32.patch +++ b/x32.patch @@ -9,14 +9,3 @@ test "$targetos" != "Darwin" && test "$targetos" != "SunOS" && \ test "$targetos" != "Haiku" && test "$softmmu" = yes ; then # Different host OS linkers have different ideas about the name of the ELF ---- qemu-2.6.0/include/qemu/atomic.h~ 2016-07-17 18:37:57.000000000 +0200 -+++ qemu-2.6.0/include/qemu/atomic.h 2016-07-17 18:38:33.485893530 +0200 -@@ -20,7 +20,7 @@ - (unsigned short)1, \ - (expr)+0)))))) - --#ifdef __ATOMIC_RELAXED -+#if defined(__ATOMIC_RELAXED) && !defined(__ILP32__) - /* For C11 atomic ops */ - - /* Manual memory barriers