Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package qemu for openSUSE:Factory checked in at 2023-05-13 17:17:09 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/qemu (Old) and /work/SRC/openSUSE:Factory/.qemu.new.1533 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qemu" Sat May 13 17:17:09 2023 rev:252 rq:1086718 version:7.1.0 Changes: -------- --- /work/SRC/openSUSE:Factory/qemu/qemu.changes 2023-03-28 17:48:21.410682906 +0200 +++ /work/SRC/openSUSE:Factory/.qemu.new.1533/qemu.changes 2023-05-13 17:17:19.990274752 +0200 @@ -1,0 +2,110 @@ +Wed May 10 12:19:52 UTC 2023 - dfaggi...@suse.com + +- (Radical!) Change of packaging workflow. Now pretty much everything + happens via git, and interacting with https://github.com/openSUSE/qemu.git. + See README.PACKAGING for details +* Patches added: + linux-user: Add pidfd_open(), pidfd_send_signal() and pidfd_getfd() syscalls + linux-user: fill out task state in /proc/self/stat + linux-user: Emulate CLONE_PIDFD flag in clone() +* Patches transformed in git commits: + Disable-some-tests-that-have-problems-in.patch + Make-char-muxer-more-robust-wrt-small-FI.patch + Make-installed-scripts-explicitly-python.patch + Makefile-fix-build-with-binutils-2.38.patch + PPC-KVM-Disable-mmu-notifier-check.patch + Raise-soft-address-space-limit-to-hard-l.patch + Revert-linux-user-fix-compat-with-glibc-.patch + Revert-roms-efirom-tests-uefi-test-tools.patch + Revert-tests-qtest-enable-more-vhost-use.patch + Update-linux-headers-to-v6.0-rc4.patch + accel-abort-if-we-fail-to-load-the-accel.patch + acpi-cpuhp-fix-guest-visible-maximum-acc.patch + ath5k-Add-missing-AR5K_EEPROM_READ-in-at.patch + bios-tables-test-add-test-for-number-of-.patch + bios-tables-test-teach-test-to-use-smbio.patch + block-Handle-curl-7.55.0-7.85.0-version-.patch + block-io_uring-revert-Use-io_uring_regis.patch + configure-Add-Wno-gnu-variable-sized-typ.patch + dmg-warn-when-opening-dmg-images-contain.patch + dump-Add-architecture-section-and-sectio.patch + dump-Refactor-dump_iterate-and-introduce.patch + dump-Reintroduce-memory_offset-and-secti.patch + dump-Rename-write_elf-_phdr_note-to-prep.patch + dump-Rename-write_elf_loads-to-write_elf.patch + dump-Reorder-struct-DumpState.patch + dump-Replace-opaque-DumpState-pointer-wi.patch + dump-Rework-dump_calculate_size-function.patch + dump-Rework-filter-area-variables.patch + dump-Rework-get_start_block.patch + dump-Split-elf-header-functions-into-pre.patch + dump-Use-a-buffer-for-ELF-section-data-a.patch + dump-Write-ELF-section-headers-right-aft.patch + hw-acpi-erst.c-Fix-memory-handling-issue.patch + hw-display-qxl-Avoid-buffer-overrun-in-q.patch + hw-display-qxl-Document-qxl_phys2virt.patch + hw-display-qxl-Have-qxl_log_command-Retu.patch + hw-display-qxl-Pass-requested-buffer-siz.patch + hw-pvrdma-Protect-against-buggy-or-malic.patch + hw-scsi-megasas-check-for-NULL-frame-in-.patch + hw-smbios-add-core_count2-to-smbios-tabl.patch + hw-smbios-handle-both-file-formats-regar.patch + hw-smbios-support-for-type-8-port-connec.patch + include-elf.h-add-s390x-note-types.patch + increase-x86_64-physical-bits-to-42.patch + linux-user-Fake-proc-cpuinfo.patch + linux-user-lseek-explicitly-cast-non-set.patch + linux-user-remove-conditionals-for-many-.patch + linux-user-use-max-as-default-CPU-model-.patch + linux-user-use-target_ulong.patch + meson-install-ivshmem-client-and-ivshmem.patch + meson-remove-pkgversion-from-CONFIG_STAM.patch + module-add-Error-arguments-to-module_loa.patch + module-removed-unused-function-argument-.patch + module-rename-module_load_one-to-module_.patch + net-tulip-Restrict-DMA-engine-to-memorie.patch + openSUSE-Basetools-Ignore-spurious-GCC-1.patch + openSUSE-Makefile-Fix-csum8-to-be-built-.patch + openSUSE-Makefile-define-endianess-for-c.patch + openSUSE-Makefile-fix-issues-of-build-re.patch + openSUSE-add-cross.ini-file-to-handle-aa.patch + openSUSE-build-Makefile-fix-issues-of-bu.patch + openSUSE-build-Silence-GCC-12-spurious-w.patch + openSUSE-build-be-explicit-about-mx86-us.patch + openSUSE-build-enable-cross-compilation-.patch + openSUSE-pc-q35-Bump-max_cpus-to-1024.patch + openSUSE-pcbios-stub-out-the-SAN-req-s-i.patch + openSUSE-switch-to-python3-as-needed.patch + openSUSE-test-help-compiler-out-by-initi.patch + qemu-binfmt-conf-Modify-default-path.patch + qemu-bridge-helper-reduce-security-profi.patch + qemu-osdep-Switch-position-of-extern-and.patch + roms-Makefile-add-cross-file-to-qboot-me.patch + roms-Makefile-pass-a-packaging-timestamp.patch + roms-change-cross-compiler-naming-to-be-.patch + s390x-Add-KVM-PV-dump-interface.patch + s390x-Add-protected-dump-cap.patch + s390x-Introduce-PV-query-interface.patch + s390x-pci-add-routine-to-get-host-functi.patch + s390x-pci-don-t-fence-interpreted-device.patch + s390x-pci-enable-adapter-event-notificat.patch + s390x-pci-enable-for-load-store-interpre.patch + s390x-pci-let-intercept-devices-have-sep.patch + s390x-pci-reflect-proper-maxstbl-for-gro.patch + s390x-pci-reset-ISM-passthrough-devices-.patch + s390x-pci-shrink-DMA-aperture-to-be-boun.patch + s390x-pv-Add-dump-support.patch + s390x-tod-kvm-don-t-save-restore-the-TOD.patch + scsi-generic-check-for-additional-SG_IO-.patch + scsi-generic-replace-logical-block-count.patch + test-vmstate-fix-bad-GTree-usage-use-aft.patch + tests-acpi-allow-changes-for-core_count2.patch + tests-acpi-update-tables-for-new-core-co.patch + tests-change-error-message-in-test-162.patch + tests-qemu-iotests-Triple-timeout-of-i-o.patch + ui-vnc-clipboard-fix-integer-underflow-i.patch + xen-add-block-resize-support-for-xen-dis.patch + xen-ignore-live-parameter-from-xen-save-.patch + xen_disk-Add-suse-specific-flush-disable.patch + +------------------------------------------------------------------- Old: ---- 50-seabios-256k.json 60-seabios-128k.json 80-kvm.rules 80-qemu-ga.rules APIC.core-count2 DSDT.core-count2 DSDT.pcie Disable-some-tests-that-have-problems-in.patch FACP.core-count2 Make-char-muxer-more-robust-wrt-small-FI.patch Make-installed-scripts-explicitly-python.patch Makefile-fix-build-with-binutils-2.38.patch PPC-KVM-Disable-mmu-notifier-check.patch Raise-soft-address-space-limit-to-hard-l.patch Revert-linux-user-fix-compat-with-glibc-.patch Revert-roms-efirom-tests-uefi-test-tools.patch Revert-tests-qtest-enable-more-vhost-use.patch Update-linux-headers-to-v6.0-rc4.patch accel-abort-if-we-fail-to-load-the-accel.patch acpi-cpuhp-fix-guest-visible-maximum-acc.patch ath5k-Add-missing-AR5K_EEPROM_READ-in-at.patch bios-tables-test-add-test-for-number-of-.patch bios-tables-test-teach-test-to-use-smbio.patch block-Handle-curl-7.55.0-7.85.0-version-.patch block-io_uring-revert-Use-io_uring_regis.patch bridge.conf bundles.tar.xz config.sh configure-Add-Wno-gnu-variable-sized-typ.patch dmg-warn-when-opening-dmg-images-contain.patch dump-Add-architecture-section-and-sectio.patch dump-Refactor-dump_iterate-and-introduce.patch dump-Reintroduce-memory_offset-and-secti.patch dump-Rename-write_elf-_phdr_note-to-prep.patch dump-Rename-write_elf_loads-to-write_elf.patch dump-Reorder-struct-DumpState.patch dump-Replace-opaque-DumpState-pointer-wi.patch dump-Rework-dump_calculate_size-function.patch dump-Rework-filter-area-variables.patch dump-Rework-get_start_block.patch dump-Split-elf-header-functions-into-pre.patch dump-Use-a-buffer-for-ELF-section-data-a.patch dump-Write-ELF-section-headers-right-aft.patch hw-acpi-erst.c-Fix-memory-handling-issue.patch hw-display-qxl-Avoid-buffer-overrun-in-q.patch hw-display-qxl-Document-qxl_phys2virt.patch hw-display-qxl-Have-qxl_log_command-Retu.patch hw-display-qxl-Pass-requested-buffer-siz.patch hw-pvrdma-Protect-against-buggy-or-malic.patch hw-scsi-megasas-check-for-NULL-frame-in-.patch hw-smbios-add-core_count2-to-smbios-tabl.patch hw-smbios-handle-both-file-formats-regar.patch hw-smbios-support-for-type-8-port-connec.patch include-elf.h-add-s390x-note-types.patch increase-x86_64-physical-bits-to-42.patch ksm.service kvm.conf linux-user-Fake-proc-cpuinfo.patch linux-user-lseek-explicitly-cast-non-set.patch linux-user-remove-conditionals-for-many-.patch linux-user-use-max-as-default-CPU-model-.patch linux-user-use-target_ulong.patch meson-install-ivshmem-client-and-ivshmem.patch meson-remove-pkgversion-from-CONFIG_STAM.patch module-add-Error-arguments-to-module_loa.patch module-removed-unused-function-argument-.patch module-rename-module_load_one-to-module_.patch net-tulip-Restrict-DMA-engine-to-memorie.patch openSUSE-Basetools-Ignore-spurious-GCC-1.patch openSUSE-Makefile-Fix-csum8-to-be-built-.patch openSUSE-Makefile-define-endianess-for-c.patch openSUSE-Makefile-fix-issues-of-build-re.patch openSUSE-add-cross.ini-file-to-handle-aa.patch openSUSE-build-Makefile-fix-issues-of-bu.patch openSUSE-build-Silence-GCC-12-spurious-w.patch openSUSE-build-be-explicit-about-mx86-us.patch openSUSE-build-enable-cross-compilation-.patch openSUSE-pc-q35-Bump-max_cpus-to-1024.patch openSUSE-pcbios-stub-out-the-SAN-req-s-i.patch openSUSE-switch-to-python3-as-needed.patch openSUSE-test-help-compiler-out-by-initi.patch qemu-7.1.0.tar.xz.sig qemu-binfmt-conf-Modify-default-path.patch qemu-bridge-helper-reduce-security-profi.patch qemu-guest-agent.service qemu-ifup qemu-kvm.1.gz qemu-osdep-Switch-position-of-extern-and.patch qemu-supportconfig qemu.keyring qemu.spec.in roms-Makefile-add-cross-file-to-qboot-me.patch roms-Makefile-pass-a-packaging-timestamp.patch roms-change-cross-compiler-naming-to-be-.patch s390x-Add-KVM-PV-dump-interface.patch s390x-Add-protected-dump-cap.patch s390x-Introduce-PV-query-interface.patch s390x-pci-add-routine-to-get-host-functi.patch s390x-pci-don-t-fence-interpreted-device.patch s390x-pci-enable-adapter-event-notificat.patch s390x-pci-enable-for-load-store-interpre.patch s390x-pci-let-intercept-devices-have-sep.patch s390x-pci-reflect-proper-maxstbl-for-gro.patch s390x-pci-reset-ISM-passthrough-devices-.patch s390x-pci-shrink-DMA-aperture-to-be-boun.patch s390x-pv-Add-dump-support.patch s390x-tod-kvm-don-t-save-restore-the-TOD.patch scsi-generic-check-for-additional-SG_IO-.patch scsi-generic-replace-logical-block-count.patch supported.arm.txt supported.ppc.txt supported.s390.txt supported.x86.txt test-vmstate-fix-bad-GTree-usage-use-aft.patch tests-acpi-allow-changes-for-core_count2.patch tests-acpi-update-tables-for-new-core-co.patch tests-change-error-message-in-test-162.patch tests-qemu-iotests-Triple-timeout-of-i-o.patch ui-vnc-clipboard-fix-integer-underflow-i.patch update_git.sh xen-add-block-resize-support-for-xen-dis.patch xen-ignore-live-parameter-from-xen-save-.patch xen_disk-Add-suse-specific-flush-disable.patch New: ---- _service _servicedata common.inc qemu-linux-user.spec ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ qemu-linux-user.spec ++++++ # # spec file for package qemu-linux-user # # Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %include %{_sourcedir}/common.inc %ifarch %ix86 x86_64 s390x %define legacy_qemu_kvm 1 %endif Name: qemu-linux-user URL: https://www.qemu.org/ Summary: CPU emulator for user space License: BSD-2-Clause AND BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT Group: System/Emulators/PC Version: 7.1.0 Release: 0 Source0: qemu-%{version}.tar.xz Source1: common.inc Source200: qemu-rpmlintrc Source303: README.PACKAGING Source1000: qemu-rpmlintrc BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: glib2-devel-static >= 2.56 BuildRequires: glibc-devel-static BuildRequires: (pcre-devel-static if glib2-devel-static < 2.73 else pcre2-devel-static) # passing filelist check for /usr/lib/binfmt.d BuildRequires: systemd BuildRequires: zlib-devel-static # we must not install the qemu-linux-user package when under QEMU build %if 0%{?qemu_user_space_build:1} #!BuildIgnore: post-build-checks %endif BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: git-core BuildRequires: meson BuildRequires: ninja >= 1.7 BuildRequires: perl-Text-Markdown BuildRequires: python3-base >= 3.6 BuildRequires: python3-setuptools %description QEMU provides CPU emulation along with other related capabilities. This package provides programs to run user space binaries and libraries meant for another architecture. The syscall interface is intercepted and execution below the syscall layer occurs on the native hardware and operating system. %files %defattr(-, root, root) %doc README.rst VERSION %license COPYING COPYING.LIB LICENSE %_bindir/qemu-aarch64 %_bindir/qemu-aarch64_be %_bindir/qemu-alpha %_bindir/qemu-arm %_bindir/qemu-armeb %_bindir/qemu-cris %_bindir/qemu-hexagon %_bindir/qemu-hppa %_bindir/qemu-i386 %_bindir/qemu-loongarch64 %_bindir/qemu-m68k %_bindir/qemu-microblaze %_bindir/qemu-microblazeel %_bindir/qemu-mips %_bindir/qemu-mips64 %_bindir/qemu-mips64el %_bindir/qemu-mipsel %_bindir/qemu-mipsn32 %_bindir/qemu-mipsn32el %_bindir/qemu-nios2 %_bindir/qemu-or1k %_bindir/qemu-ppc %_bindir/qemu-ppc64 %_bindir/qemu-ppc64le %_bindir/qemu-riscv32 %_bindir/qemu-riscv64 %_bindir/qemu-s390x %_bindir/qemu-sh4 %_bindir/qemu-sh4eb %_bindir/qemu-sparc %_bindir/qemu-sparc32plus %_bindir/qemu-sparc64 %_bindir/qemu-x86_64 %_bindir/qemu-xtensa %_bindir/qemu-xtensaeb %_sbindir/qemu-binfmt-conf.sh %_prefix/lib/binfmt.d/qemu-*.conf %prep %autosetup -n qemu-%{version} %build %define rpmfilesdir %{_builddir}/qemu-%{version}/rpm %if %{legacy_qemu_kvm} # FIXME: Why are we copying the s390 specific one? cp %{rpmfilesdir}/supported.s390.txt docs/supported.rst sed -i '/^\ \ \ about\/index.*/i \ \ \ supported.rst' docs/index.rst %endif # When generating an upstream release tarball, the following commands # are run (see scripts/make-release): # (cd roms/seabios && git describe --tags --long --dirty > .version) # (cd roms/skiboot && ./make_version.sh > .version) # This has not happened for the archive we're using, since it's cloned # from a git branch. We, therefore, assumed that the following commands # have been run, and the result committed to the repository (with seabios # and skiboot at the proper commit/tag/...): # (cd roms/seabios && git describe --tags --long --dirty > rpm/seabios_version) # (cd roms/skiboot && ./make_version.sh > rpm/skiboot_version) cp %{rpmfilesdir}/seabios_version roms/seabios/.version cp %{rpmfilesdir}/skiboot_version roms/skiboot/.version find . -iname ".git" -exec rm -rf {} + mkdir -p %blddir cd %blddir # We define a few general and common options and then we disable # pretty much everything. Afterwards, there is a section for each # of the flavors where we explicitly enable all the feature we want # for them. # TODO: Check whether we want to enable the followings: # * avx512f # * debug-info # * fuse # * malloc-trim # * multiprocess # * qom-cast-debug # * trace-backends=dtrace # # Fedora has avx2 enabled for ix86, while we can't (I tried). Guess it's # because, for them, ix86 == i686 (while for us it's i586). # Let's try to stick to _FORTIFY_SOURCE=2 for now EXTRA_CFLAGS="$(echo %{optflags} | sed -E 's/-[A-Z]?_FORTIFY_SOURCE[=]?[0-9]*//g') -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wno-error" %srcdir/configure \ --docdir=%_docdir \ --datadir=%_datadir \ --extra-cflags="${EXTRA_CFLAGS}" \ --firmwarepath=%_datadir/%name \ --libdir=%_libdir \ --libexecdir=%_libexecdir \ --localstatedir=%_localstatedir \ --prefix=%_prefix \ --python=%_bindir/python3 \ --sysconfdir=%_sysconfdir \ --with-git-submodules=ignore \ --with-pkgversion="%(echo '%{distro}' | sed 's/ (.*)//')" \ --disable-alsa \ --disable-attr \ --disable-auth-pam \ --disable-avx2 \ --disable-avx512f \ --disable-block-drv-whitelist-in-tools \ --disable-bochs \ --disable-bpf \ --disable-brlapi \ --disable-bsd-user \ --disable-bzip2 \ --disable-cap-ng \ --disable-capstone \ --disable-cfi \ --disable-cfi-debug \ --disable-cloop \ --disable-cocoa \ --disable-coreaudio \ --disable-coroutine-pool \ --disable-crypto-afalg \ --disable-curl \ --disable-curses \ --disable-dbus-display \ --disable-debug-info \ --disable-debug-mutex \ --disable-debug-tcg \ --disable-dmg \ --disable-docs \ --disable-dsound \ --disable-fdt \ --disable-fuse \ --disable-fuse-lseek \ --disable-gcrypt \ --disable-gettext \ --disable-gio \ --disable-glusterfs \ --disable-gnutls \ --disable-gtk \ --disable-guest-agent \ --disable-guest-agent-msi \ --disable-hax \ --disable-hvf \ --disable-iconv \ --disable-jack \ --disable-kvm \ --disable-l2tpv3 \ --disable-libdaxctl \ --disable-libiscsi \ --disable-libnfs \ --disable-libpmem \ --disable-libssh \ --disable-libudev \ --disable-libusb \ --disable-linux-aio \ --disable-linux-io-uring \ --disable-linux-user \ --disable-live-block-migration \ --disable-lto \ --disable-lzfse \ --disable-lzo \ --disable-malloc-trim \ --disable-membarrier \ --disable-module-upgrades \ --disable-modules \ --disable-mpath \ --disable-multiprocess \ --disable-netmap \ --disable-nettle \ --disable-numa \ --disable-nvmm \ --disable-opengl \ --disable-oss \ --disable-pa \ --disable-parallels \ --disable-pie \ --disable-plugins \ --disable-png \ --disable-pvrdma \ --disable-qcow1 \ --disable-qed \ --disable-qom-cast-debug \ --disable-rbd \ --disable-rdma \ --disable-replication \ --disable-rng-none \ --disable-safe-stack \ --disable-sanitizers \ --disable-sdl \ --disable-sdl-image \ --disable-seccomp \ --disable-selinux \ --disable-slirp \ --disable-slirp-smbd \ --disable-smartcard \ --disable-snappy \ --disable-sparse \ --disable-spice \ --disable-spice-protocol \ --disable-strip \ --disable-system \ --disable-tcg \ --disable-tcg-interpreter \ --disable-tools \ --disable-tpm \ --disable-u2f \ --disable-usb-redir \ --disable-user \ --disable-vde \ --disable-vdi \ --disable-vhost-crypto \ --disable-vhost-kernel \ --disable-vhost-net \ --disable-vhost-user \ --disable-vhost-user-blk-server \ --disable-vhost-vdpa \ --disable-virglrenderer \ --disable-virtfs \ --disable-virtiofsd \ --disable-vnc \ --disable-vnc-jpeg \ --disable-vnc-sasl \ --disable-vte \ --disable-vvfat \ --disable-werror \ --disable-whpx \ --disable-xen \ --disable-xen-pci-passthrough \ --disable-xkbcommon \ --disable-zstd \ --without-default-devices \ %if %{with system_membarrier} --enable-membarrier \ %endif %if %{with malloc_trim} --enable-malloc-trim \ %endif %if "%{_lto_cflags}" != "%{nil}" --enable-lto \ %endif --disable-install-blobs \ --enable-attr \ --enable-coroutine-pool \ --enable-linux-user \ --enable-selinux \ --enable-tcg \ --static echo "=== Content of config-host.mak: ===" cat config-host.mak echo "=== ===" %make_build %install cd %blddir %make_build install DESTDIR=%{buildroot} rm -rf %{buildroot}%_datadir/qemu/keymaps unlink %{buildroot}%_datadir/qemu/trace-events-all install -d -m 755 %{buildroot}%_sbindir install -m 755 scripts/qemu-binfmt-conf.sh %{buildroot}%_sbindir install -d -m 755 %{buildroot}%{_prefix}/lib/binfmt.d/ scripts/qemu-binfmt-conf.sh --systemd ALL --persistent yes --exportdir %{buildroot}%{_prefix}/lib/binfmt.d/ %fdupes -s %{buildroot} %check cd %blddir %ifarch %ix86 %define qemu_arch i386 %endif %ifarch x86_64 %define qemu_arch x86_64 %endif %ifarch %arm %define qemu_arch arm %endif %ifarch aarch64 %define qemu_arch aarch64 %endif %ifarch ppc %define qemu_arch ppc %endif %ifarch ppc64 %define qemu_arch ppc64 %endif %ifarch ppc64le %define qemu_arch ppc64le %endif %ifarch s390x %define qemu_arch s390x %endif %ifarch %ix86 x86_64 %arm aarch64 ppc ppc64 ppc64le s390x %ifnarch %arm %{qemu_arch}-linux-user/qemu-%{qemu_arch} %_bindir/ls > /dev/null %endif %endif %make_build check-softfloat %changelog ++++++ qemu.spec ++++++ ++++ 2215 lines (skipped) ++++ between /work/SRC/openSUSE:Factory/qemu/qemu.spec ++++ and /work/SRC/openSUSE:Factory/.qemu.new.1533/qemu.spec ++++++ README.PACKAGING ++++++ --- /var/tmp/diff_new_pack.5rybWP/_old 2023-05-13 17:17:23.094292612 +0200 +++ /var/tmp/diff_new_pack.5rybWP/_new 2023-05-13 17:17:23.114292727 +0200 @@ -1,93 +1,203 @@ -The qemu package includes a special maintenance workflow in order to support git -based patching, including of submodules. Please use it in order to have changes -you make be acceptable to the package maintainers. A bash script (update_git.sh) -implements this workflow. - -A local clone of the upstream repo(s) is required for the packaging workflow. -If none is found, the qemu superproject will be cloned as a shallow repo for the -workflow script's use. If you intend to do more than superficial work in the -qemu package, unshallow it. The submodule local repos aren't needed unless you -intend to do patch work there. See config.sh for the local repo paths. - -The qemu.spec file is generated from a template file (qemu.spec.in), so to make -spec file changes outside of the patch file references (handled by the script), -you need to edit the template file, and NOT the qemu.spec file. The spec file's -version and patch references are added when update_git.sh is passed certain -commands, as described below. - -If you are not modifying any patches or their order, but just need to update the -spec file from a changed template, run 'bash ./update_git.sh refresh'. - -If the set of patches is being modified, including their order, you will want to -first run 'bash ./update_git.sh pkg2git', which makes the current package patch -set available in a local git branch named 'frombundle' (see config.sh for the -locations). This incarnation of the package patches comes from a "bundle of git -bundles", included as a package source file named bundles.tar.xz, which the -script extracts to the corresponding local frombundle branch. To add, remove or -modify the package patches, you will then do that work in a local branch whose -name corresponds to that qemu package's release version as follows: -The qemu major and minor release numbers are part of the name, prefixed by -'opensuse-', so, for example, for the v5.2.0 based SLE-15-SP3 qemu, the branch -would be named 'opensuse-5.2'. You want to start your work based on the current -patchqueue as contained in 'frombundle', so one approach is to do (depending on -your local repo's current state), 'git checkout -f --recurse-submodules -B - opensuse-5.2 frombundle', and then cherry-pick upstream patches into it, or -interactive rebase it to modify or delete patches, etc. Be careful to keep the -branch based on the upstream tag which represents the package tarball however! - -Once you have the patch queue ready to go, simply run 'bash ./update_git.sh -git2pkg' (in your local obs branch directory) to refresh the bundles.tar.xz -file, as well as the package spec and patch files. The package qemu.changes file -is modified to list added or removed patches as a starting point for documenting -the change. - -When you are ready to check in the package, using 'bash update_git.sh ci' is -provided as a convenience (and to help preserve correct spec file formatting, -since a 'normal osc check-in' messes up the spec file a bit). - -Additional Notes: - -The maintainer and automation use another workflow mode dealing with packaging -the latest upstream qemu. See 'LATEST' references in the scripts for details, -as this is an 'expert mode' and isn't documented here. - -Patches which are from an upstream git repo should have the commit id recorded -just below the Subject line (after a blank line) as follows: - -Git-commit: <40-char-sha-id> - -If a patch is anticipated to be shortly included in upstream repo, mark that -fact by doing the above with 40 0's, which will flag it as needing to be updated -in the near future. - -We try to maintain, if possible, patch ordering as follows: (tarball as base), -patches which come from upstream commits in commit order, patches which will -soon be upstream (as mentioned above), followed by our private patches. - -Bug or feature tracking identifiers should also be added to the patch similarly, -using the abbreviations identified here: -http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines#Current_set_of_abbreviations -using the "Reference:" tag, with multiple entries comma separated. - -The ability to provide a conditional inclusion of a patch (eg based on -architecture, is provided by this workflow by using the "Include-If:" tag, as -shown here: - -Include-If: %ifarch aarch64 - -This will cause the patch application in the spec file to be done as follows: -%ifarch aarch64 -%patch0013 -p1 -%endif - -A trick worth noting is, if a given git tracked patch is to be applied in a way -that can't be done in the normal patching section of the spec file, you can -still include the patch, and use it by name with the patch program elsewhere in -the spec file by doing something such as: -Include-If: %if 0%{?patch-possibly-applied-elsewhere} -(this variable will remain undefined in the spec file) And then elsewhere in the -spec file, the actual patch (eg specially-handled-change.patch) is referenced as -eg: +# PACKAGING WORKFLOW(S) + +The qemu package follows a special maintenance workflow in order to support +git based patching, including of submodules. Please use it in order to have +changes you make be acceptable to the package maintainers. + +All the development happens at https://github.com/openSUSE/qemu. The relevant +branch is `factory`. + +Any change to the package should be submitted in the form of a Pull Request +against such repository and branch. + +The reminder of this document provides more details, explanations and examples +for both contributors and maintainers. + + +# FOR CONTRIBUTORS + +## BACKPORTING AN UPSTREAM PATCH + +For submitting a backport of an upstream patch, proceed as follows (a local +copy of the repository is of course necessary). + +Identify the hash of the commit that needs backporting and do: + + git cherry-pick -esx <commit_hash> + +This way, the changelog will already contain the reference to the upstream +commit itself, and the appropriate "Signed-off-by:" tag. + +If the backport is related to Bugzilla (or Jira, and/or CVEs, etc) entry, add a +reference to that, such as: + + Resolves: bsc#123456 + +Or: + + References: jsc#PED-1234 + +Or: + + Resolves: bsc#7891011 (CVE-1234-5678) + +Add it between the "(cherry picked from commit ...)" line and the "Signed-off-by:" +line that follows it. + +An example of the end result, where Dario Faggioli (<dfaggi...@suse.com>) is +backporting upstream commit abe2c4bdb65e8dd in order to fix bug 1209546 from +bugzilla.opensuse.org is: + + test-vmstate: fix bad GTree usage, use-after-free + + According to g_tree_foreach() documentation: + "The tree may not be modified while iterating over it (you can't + add/remove items)." + + [...] + + Get rid of the node removal within the tree traversal. Also + check the trees have the same number of nodes before the actual + diff. + + Fixes: 9a85e4b8f6 ("migration: Support gtree migration") + Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1518 + Signed-off-by: Marc-Andr303251 Lureau <marcandre.lur...@redhat.com> + Signed-off-by: Eric Auger <eric.au...@redhat.com> + Reported-by: Richard W.M. Jones <rjo...@redhat.com> + Tested-by: Richard W.M. Jones <rjo...@redhat.com> + Reviewed-by: Richard W.M. Jones <rjo...@redhat.com> + Reviewed-by: Daniel P. Berrang303251 <berra...@redhat.com> + Reviewed-by: Juan Quintela <quint...@redhat.com> + Signed-off-by: Juan Quintela <quint...@redhat.com> + (cherry picked from commit abe2c4bdb65e8dd9cb2f01c355baa394bf49a8af) + Resolves: bsc#1209546 + Signed-off-by: Dario Faggioli <dfaggi...@suse.com> + +Of course, all conflicts and issues should be resolved, before committing the +result/completing the cherry-picking. + +At this point, the PR should be opened. As soon as that happens, some checks +will be run automatically and the maintainers of the QEMU package will review +and, eventually, merge or reject it. + +PRs containing multiple commits are allowed. They are actually encouraged, if +the patches being backported are related and/or dependant among each others. It +must, however, always be the case that each upstream commit is cherry-picked +individually. + +Note that there is no need to change any 'qemu.changes' file. That will, in +fact be handled by the package maintainers (and such RPM changelog entries will +be automatically generated out of the git commit messages). + +## ADDING A PATCH NOT COMING FROM UPSTREAM + +Downstream patches, i.e., patches that are not backports of upstream commits, +should be avoided as much as possible. The (largely!) recommended approach is +to submit the patch upstream and then, once it is accepted and committed, +backport it. + +If that is not possible (for whatever reason), a pull request with a downstream +only patch can be opened. The procedure is almost identical to the one described +above for upstream backports. The main differences are: + +1) Downstream only patch cannot be cherry-picked from upstream commits, of + course. Therefore, the PR will consist of the commit(s) that introduces the + patch. + +2) There will be no "(cherry picked from commit ...") line in the changelog + of a downstream only patch. On the other hand, the "Resolves:" or + "Reference:" tag, that link the patch to the issue it's trying to solve, + must be there, and the same is true for the "Signed-off-by:" tag + indicating who is proposing adding it. + +3) It is required that the subject of the commit starts with the [openSUSE] tag. + +An example of a downstream only commit is: + + [openSUSE] pc: q35: Bump max_cpus to 1024 + + And use the new limit for machine version 7.1 too. + Keep the old limit of 288 for machine versions 7.0 and earlier. + + Signed-off-by: Dario Faggioli <dfaggi...@suse.com> + References: bsc#1202282, jsc#PED-2592 + Signed-off-by: Dario Faggioli <dfaggi...@suse.com> + +## CHANGING THE PACKAGING FILES + +Files that are necessary for building the RPM (like the spec file) or that +are part of the RPM and will be copied in the appropriate places in the +filesystem when it is installed are also part of the git repository. In fact, +they can be found in the `rpm/` directory. + +Any addition, removal or change of and on any of those file should just be done +as a regular commit, and a pull request including such commit(s) should be +opened. + +Commits to packaging files should be prefixed with both the [openSUSE] tag and +an [RPM] tag. An example can be this one: + + [openSUSE][RPM] Add downstream packaging files + + Stash the "packaging files" in the QEMU repository, in the rpm/ + directory. During package build, they will be pulled out from there + and used as appropriate. + + Signed-off-by: Dario Faggioli <dfaggi...@suse.com> + +## ADDING A PATCH IN A SUBMODULE + +For including a backport, or in general adding a patch, to a submodule, the +downstream git repository for the submodule must be checkedout at the location +where the submodule resides, in the main QEMU git repository. + +For example, for including a downstream patch in the ipxe submodule, a local +copy of the repository https://github.com/openSUSE/qemu-ipxe.git is necessary. +After checking out the `factory` branch, add the patch there (cherry-picking +it from upstream, if it is a backport, and respecting all the tagging rules +explained in the previous sections). + +At this point: +- the branch must be pushed; +- in the main (qemu) repository, a commit must be added and pushed, for making + sure that the new patch is picked up. + +Basically, the commit in the main repository is how the information that a +submodule as a new head is recorded. + +The changelog of such commit shall include a reference to the subjects of all +the new commits in the various submodules. Unfortinately, there is not yet a +good way of achieving this automatically. + +As last step, a pull request should be opened, as usual. + +## REMOVING PATCHES + +If a patch, or, in general, a commit, that is already part of the repository +must be removed, this must be done without rewriting the git history, i.e., with +a revert (and then a pull request with the revert should be opened). + + +# FOR MAINTAINERS + +## REVIEWING AND ACCEPTING PRs + +TODO + +## COMMITTING CHANGES INTO FACTORY + +TODO + +## UPDATING THE BASE QEMU VERSION + +TODO + + +# MANUAL AND AUTOMATED CHECKS + +TODO + + -patch -p1 < %_sourcedir/specially-handled-change.patch ++++++ _constraints ++++++ --- /var/tmp/diff_new_pack.5rybWP/_old 2023-05-13 17:17:23.190293164 +0200 +++ /var/tmp/diff_new_pack.5rybWP/_new 2023-05-13 17:17:23.194293187 +0200 @@ -3,7 +3,7 @@ <overwrite> <conditions> <package>qemu</package> - <package>qemu:linux-user</package> + <package>qemu:qemu-linux-user</package> <package>qemu:testsuite</package> </conditions> <hardware> @@ -16,7 +16,7 @@ <overwrite> <conditions> <arch>armv7l</arch> - <package>qemu:linux-user</package> + <package>qemu:qemu-linux-user</package> </conditions> <hardware> <memory> ++++++ _multibuild ++++++ --- /var/tmp/diff_new_pack.5rybWP/_old 2023-05-13 17:17:23.222293348 +0200 +++ /var/tmp/diff_new_pack.5rybWP/_new 2023-05-13 17:17:23.226293371 +0200 @@ -1,4 +1,4 @@ <multibuild> - <package>linux-user</package> + <package>qemu-linux-user</package> </multibuild> ++++++ _service ++++++ <services> <service name="tar_scm" mode="manual"> <param name="scm">git</param> <param name="url">https://github.com/opensuse/qemu.git</param> <param name="revision">factory</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">[v]?([^-+a-z]+)(.*)</param> <param name="versionrewrite-replacement">\1</param> <param name="changesgenerate">enable</param> </service> <service name="extract_file" mode="manual"> <param name="archive">*.tar</param> <param name="files">*/rpm/common.inc */rpm/qemu.spec */rpm/qemu-linux-user.spec */rpm/README.PACKAGING */rpm/qemu-rpmlintrc</param> </service> <service name="set_version" mode="manual"/> <service name="recompress" mode="manual"> <param name="file">*.tar</param> <param name="compression">xz</param> </service> </services> ++++++ _servicedata ++++++ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/opensuse/qemu.git</param> <param name="changesrevision">1f81f98d05ac60508404fe8d12a094381c2249cd</param></service></servicedata> (No newline at EOF) ++++++ common.inc ++++++ %define _buildshell /bin/bash %define sbver 1.16.0_0_gd239552 %define srcdir %{_builddir}/%buildsubdir %define blddir %srcdir/build %define build_x86_firmware 0 %define build_ppc_firmware 0 %define build_opensbi_firmware 0 %define kvm_available 0 %define legacy_qemu_kvm 0 %define force_fit_virtio_pxe_rom 1 %if "%{?distribution}" == "" %define distro private-build %else %define distro %{distribution} %endif %bcond_with system_membarrier %bcond_with malloc_trim %bcond_with chkqtests # non-x86 archs still seem to have some issues with Link Time Optimization %ifnarch %ix86 x86_64 %define _lto_cflags %{nil} %endif %define generic_qemu_description \ QEMU provides full machine emulation and cross architecture usage. It closely\ integrates with KVM and Xen virtualization, allowing for excellent performance.\ Many options are available for defining the emulated environment, including\ traditional devices, direct host device access, and interfaces specific to\ virtualization. ++++++ qemu-7.1.0.tar.xz ++++++ /work/SRC/openSUSE:Factory/qemu/qemu-7.1.0.tar.xz /work/SRC/openSUSE:Factory/.qemu.new.1533/qemu-7.1.0.tar.xz differ: char 13, line 1