SHA256
1
0
forked from pool/qemu

Accepting request 964930 from home:dfaggioli:devel:Virtualization

- Kill downstream patches around bifmt handling that makes
  cumbersome to run multi-arch containers, and switch to the
  upstream behavior, which is well documented and valid on
  all other distros. This is possible thanks to Linux kernel
  commit 2347961b11d4 and QEMU commit 6e1c0d7b951e19c53 (so
  it can only work on Leap/SLE 15.4 and higher). (bsc#1197298)
* Patches dropped:
  qemu-binfmt-conf.sh-allow-overriding-SUS.patch
  qemu-binfmt-conf-use-qemu-ARCH-binfmt.patch

OBS-URL: https://build.opensuse.org/request/show/964930
OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=700
This commit is contained in:
Dario Faggioli 2022-03-25 18:55:22 +00:00 committed by Git OBS Bridge
parent c2608fba2c
commit 2c8c706b6f
6 changed files with 84 additions and 178 deletions

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5f4a8d7f2f09d3aa230e21e5c02290085428420b66c277a96e8db820e6246566
size 88892
oid sha256:4f5bc361cd694767bf6cac686610b0df8d6f39fc7463ba8fe614c3eeb8e0d565
size 87984

View File

@ -1,38 +0,0 @@
From: Andreas Schwab <schwab@suse.de>
Date: Fri, 12 Aug 2016 18:20:49 +0200
Subject: qemu-binfmt-conf: use qemu-ARCH-binfmt
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Andreas Schwab <schwab@suse.de>
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
scripts/qemu-binfmt-conf.sh | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh
index cb06245a834f9e8f2bb0464a25ce..c46e604fa6ef3faaecccaae835ba 100755
--- a/scripts/qemu-binfmt-conf.sh
+++ b/scripts/qemu-binfmt-conf.sh
@@ -275,7 +275,7 @@ qemu_generate_register() {
flags="${flags}P"
fi
- echo ":qemu-$cpu:M::$magic:$mask:$qemu:$flags"
+ echo ":qemu-$cpu:M::$magic:$mask:$qemu:P$flags"
}
qemu_register_interpreter() {
@@ -316,9 +316,9 @@ qemu_set_binfmts() {
continue
fi
- qemu="$QEMU_PATH/qemu-$cpu"
+ qemu="$QEMU_PATH/qemu-$cpu-binfmt"
if [ "$cpu" = "i486" ] ; then
- qemu="$QEMU_PATH/qemu-i386"
+ qemu="$QEMU_PATH/qemu-i386-binfmt"
fi
qemu="$qemu$QEMU_SUFFIX"

View File

@ -1,65 +0,0 @@
From: Martin Wilck <mwilck@suse.com>
Date: Wed, 19 May 2021 17:24:45 +0200
Subject: qemu-binfmt-conf.sh: allow overriding SUSE-specific argv[0] handling
Git-commit: 0000000000000000000000000000000000000000
References: bsc#1186256
Since abbc0ce ("qemu-binfmt-conf: use qemu-ARCH-binfmt"),
qemu-binfmt-conf.sh automatically replaces the default qemu binfmt wrapper
qemu-$ARCH with qemu-$ARCH-binfmt in order to ensure that argv[0] is
preserved; qemu-$ARCH-binfmt is a link to qemu-binfmt, which is just a
simple wrapper that mangles argv to achieve the desired result.
This is inconvenient in some situations. In particular for running
foreign-arch containers, it's useful to use the binfmt_misc "F" ("fix
binary") flag to pre-load the qemu wrapper in the kernel. That way,
foreign-arch containers can be run just like native containers, without
having to bind-mount interpreters into the container. But that's impossible
with the SUSE binfmt wrapper that needs to exec() a different (native)
executable.
As the qemu-binfmt-conf script supports the --qemu-suffix option anyway,
use it to set the "-binfmt" suffix, thus allowing admins to override the
SUSE default with the option "--qemu-suffix ''".
Signed-off-by: Martin Wilck <mwilck@suse.com>
Acked-by: Jose R Ziviani <jose.ziviani@suse.com>
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
---
scripts/qemu-binfmt-conf.sh | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh
index a73232edfd7f9dedb3a7c32218fb..93e2c7c83fded06c598b8e844464 100755
--- a/scripts/qemu-binfmt-conf.sh
+++ b/scripts/qemu-binfmt-conf.sh
@@ -185,6 +185,7 @@ Usage: qemu-binfmt-conf.sh [--qemu-path PATH][--debian][--systemd CPU]
--help: display this usage
--qemu-path: set path to qemu interpreter ($QEMU_PATH)
--qemu-suffix: add a suffix to the default interpreter name
+ (default: "-binfmt")
--debian: don't write into /proc,
instead generate update-binfmts templates
--systemd: don't write into /proc,
@@ -316,9 +317,9 @@ qemu_set_binfmts() {
continue
fi
- qemu="$QEMU_PATH/qemu-$cpu-binfmt"
+ qemu="$QEMU_PATH/qemu-$cpu"
if [ "$cpu" = "i486" ] ; then
- qemu="$QEMU_PATH/qemu-i386-binfmt"
+ qemu="$QEMU_PATH/qemu-i386"
fi
qemu="$qemu$QEMU_SUFFIX"
@@ -338,7 +339,7 @@ QEMU_PATH=/usr/bin
CREDENTIAL=no
PERSISTENT=no
PRESERVE_ARG0=no
-QEMU_SUFFIX=""
+QEMU_SUFFIX="-binfmt"
options=$(getopt -o ds:Q:S:e:hc:p:g:F: -l debian,systemd:,qemu-path:,qemu-suffix:,exportdir:,help,credential:,persistent:,preserve-argv0: -- "$@")
eval set -- "$options"

View File

@ -13,7 +13,7 @@ Signed-off-by: Martin Wilck <mwilck@suse.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh
index c46e604fa6ef3faaecccaae835ba..a73232edfd7f9dedb3a7c32218fb 100755
index cb06245a834f9e8f2bb0464a25ce..53be2ba047fa3fba9d9b61030ab3 100755
--- a/scripts/qemu-binfmt-conf.sh
+++ b/scripts/qemu-binfmt-conf.sh
@@ -340,7 +340,7 @@ PERSISTENT=no

View File

@ -1,10 +1,23 @@
-------------------------------------------------------------------
Fri Mar 25 17:44:06 UTC 2022 - Dario Faggioli <dfaggioli@suse.com>
Fri Mar 25 18:44:04 UTC 2022 - Dario Faggioli <dfaggioli@suse.com>
- Add missing patch from a PTFs (bsc#1194938)
* Patches added:
scsi-generic-check-for-additional-SG_IO-.patch
-------------------------------------------------------------------
Fri Mar 25 17:44:06 UTC 2022 - Dario Faggioli <dfaggioli@suse.com>
- Kill downstream patches around bifmt handling that makes
cumbersome to run multi-arch containers, and switch to the
upstream behavior, which is well documented and valid on
all other distros. This is possible thanks to Linux kernel
commit 2347961b11d4 and QEMU commit 6e1c0d7b951e19c53 (so
it can only work on Leap/SLE 15.4 and higher). (bsc#1197298)
* Patches dropped:
qemu-binfmt-conf.sh-allow-overriding-SUS.patch
qemu-binfmt-conf-use-qemu-ARCH-binfmt.patch
-------------------------------------------------------------------
Thu Mar 24 11:18:54 UTC 2022 - Li Zhang <li.zhang@suse.com>

138
qemu.spec
View File

@ -158,70 +158,68 @@ Patch00011: linux-user-lseek-explicitly-cast-non-set.patch
Patch00012: AIO-Reduce-number-of-threads-for-32bit-h.patch
Patch00013: xen_disk-Add-suse-specific-flush-disable.patch
Patch00014: qemu-bridge-helper-reduce-security-profi.patch
Patch00015: qemu-binfmt-conf-use-qemu-ARCH-binfmt.patch
Patch00016: roms-Makefile-pass-a-packaging-timestamp.patch
Patch00017: Raise-soft-address-space-limit-to-hard-l.patch
Patch00018: increase-x86_64-physical-bits-to-42.patch
Patch00019: i8254-Fix-migration-from-SLE11-SP2.patch
Patch00020: acpi_piix4-Fix-migration-from-SLE11-SP2.patch
Patch00021: Make-installed-scripts-explicitly-python.patch
Patch00022: hw-smbios-handle-both-file-formats-regar.patch
Patch00023: xen-add-block-resize-support-for-xen-dis.patch
Patch00024: tests-qemu-iotests-Triple-timeout-of-i-o.patch
Patch00025: tests-Fix-block-tests-to-be-compatible-w.patch
Patch00026: xen-ignore-live-parameter-from-xen-save-.patch
Patch00027: tests-change-error-message-in-test-162.patch
Patch00028: hw-intc-exynos4210_gic-provide-more-room.patch
Patch00029: configure-only-populate-roms-if-softmmu.patch
Patch00030: pc-bios-s390-ccw-net-avoid-warning-about.patch
Patch00031: roms-change-cross-compiler-naming-to-be-.patch
Patch00032: test-add-mapping-from-arch-of-i686-to-qe.patch
Patch00033: configure-remove-pkgversion-from-CONFIG_.patch
Patch00034: Revert-qht-constify-qht_statistics_init.patch
Patch00035: qht-Revert-some-constification-in-qht.c.patch
Patch00036: meson-install-ivshmem-client-and-ivshmem.patch
Patch00037: Revert-roms-efirom-tests-uefi-test-tools.patch
Patch00038: Makefile-Don-t-check-pc-bios-as-pre-requ.patch
Patch00039: roms-Makefile-add-cross-file-to-qboot-me.patch
Patch00040: usb-Help-compiler-out-to-avoid-a-warning.patch
Patch00041: qom-handle-case-of-chardev-spice-module-.patch
Patch00042: doc-add-our-support-doc-to-the-main-proj.patch
Patch00043: qemu-binfmt-conf.sh-should-use-F-as-shor.patch
Patch00044: modules-quick-fix-a-fundamental-error-in.patch
Patch00045: qemu-binfmt-conf.sh-allow-overriding-SUS.patch
Patch00046: scsi-generic-replace-logical-block-count.patch
Patch00047: meson-build-all-modules-by-default.patch
Patch00048: acpi-validate-hotplug-selector-on-access.patch
Patch00049: tests-qemu-iotests-Fix-051-for-binaries-.patch
Patch00050: iotests-MRCE-Write-data-to-source.patch
Patch00051: iotests.py-img_info_log-rename-imgopts-a.patch
Patch00052: iotests.py-implement-unsupported_imgopts.patch
Patch00053: iotests-specify-some-unsupported_imgopts.patch
Patch00054: iotests.py-qemu_img-create-support-IMGOP.patch
Patch00055: iotests-drop-qemu_img_verbose-helper.patch
Patch00056: iotests.py-rewrite-default-luks-support-.patch
Patch00057: iotest-303-explicit-compression-type.patch
Patch00058: iotest-065-explicit-compression-type.patch
Patch00059: iotests.py-filter-out-successful-output-.patch
Patch00060: iotest-302-use-img_info_log-helper.patch
Patch00061: qcow2-simple-case-support-for-downgradin.patch
Patch00062: iotests-common.rc-introduce-_qcow2_dump_.patch
Patch00063: iotests-massive-use-_qcow2_dump_header.patch
Patch00064: iotest-39-use-_qcow2_dump_header.patch
Patch00065: iotests-bash-tests-filter-compression-ty.patch
Patch00066: iotests-60-more-accurate-set-dirty-bit-i.patch
Patch00067: iotest-214-explicit-compression-type.patch
Patch00068: iotests-declare-lack-of-support-for-comp.patch
Patch00069: block-backend-Retain-permissions-after-m.patch
Patch00070: virtiofsd-Drop-membership-of-all-supplem.patch
Patch00071: hw-scsi-megasas-check-for-NULL-frame-in-.patch
Patch00072: hw-nvram-at24-return-0xff-if-1-byte-addr.patch
Patch00073: hw-i386-amd_iommu-Fix-maybe-uninitialize.patch
Patch00074: tools-virtiofsd-Add-rseq-syscall-to-the-.patch
Patch00075: tests-qemu-iotests-040-Skip-TestCommitWi.patch
Patch00076: tests-qemu-iotests-testrunner-Quote-case.patch
Patch00077: Fix-the-module-building-problem-for-s390.patch
Patch00078: scsi-generic-check-for-additional-SG_IO-.patch
Patch00015: roms-Makefile-pass-a-packaging-timestamp.patch
Patch00016: Raise-soft-address-space-limit-to-hard-l.patch
Patch00017: increase-x86_64-physical-bits-to-42.patch
Patch00018: i8254-Fix-migration-from-SLE11-SP2.patch
Patch00019: acpi_piix4-Fix-migration-from-SLE11-SP2.patch
Patch00020: Make-installed-scripts-explicitly-python.patch
Patch00021: hw-smbios-handle-both-file-formats-regar.patch
Patch00022: xen-add-block-resize-support-for-xen-dis.patch
Patch00023: tests-qemu-iotests-Triple-timeout-of-i-o.patch
Patch00024: tests-Fix-block-tests-to-be-compatible-w.patch
Patch00025: xen-ignore-live-parameter-from-xen-save-.patch
Patch00026: tests-change-error-message-in-test-162.patch
Patch00027: hw-intc-exynos4210_gic-provide-more-room.patch
Patch00028: configure-only-populate-roms-if-softmmu.patch
Patch00029: pc-bios-s390-ccw-net-avoid-warning-about.patch
Patch00030: roms-change-cross-compiler-naming-to-be-.patch
Patch00031: test-add-mapping-from-arch-of-i686-to-qe.patch
Patch00032: configure-remove-pkgversion-from-CONFIG_.patch
Patch00033: Revert-qht-constify-qht_statistics_init.patch
Patch00034: qht-Revert-some-constification-in-qht.c.patch
Patch00035: meson-install-ivshmem-client-and-ivshmem.patch
Patch00036: Revert-roms-efirom-tests-uefi-test-tools.patch
Patch00037: Makefile-Don-t-check-pc-bios-as-pre-requ.patch
Patch00038: roms-Makefile-add-cross-file-to-qboot-me.patch
Patch00039: usb-Help-compiler-out-to-avoid-a-warning.patch
Patch00040: qom-handle-case-of-chardev-spice-module-.patch
Patch00041: doc-add-our-support-doc-to-the-main-proj.patch
Patch00042: qemu-binfmt-conf.sh-should-use-F-as-shor.patch
Patch00043: modules-quick-fix-a-fundamental-error-in.patch
Patch00044: scsi-generic-replace-logical-block-count.patch
Patch00045: meson-build-all-modules-by-default.patch
Patch00046: acpi-validate-hotplug-selector-on-access.patch
Patch00047: tests-qemu-iotests-Fix-051-for-binaries-.patch
Patch00048: iotests-MRCE-Write-data-to-source.patch
Patch00049: iotests.py-img_info_log-rename-imgopts-a.patch
Patch00050: iotests.py-implement-unsupported_imgopts.patch
Patch00051: iotests-specify-some-unsupported_imgopts.patch
Patch00052: iotests.py-qemu_img-create-support-IMGOP.patch
Patch00053: iotests-drop-qemu_img_verbose-helper.patch
Patch00054: iotests.py-rewrite-default-luks-support-.patch
Patch00055: iotest-303-explicit-compression-type.patch
Patch00056: iotest-065-explicit-compression-type.patch
Patch00057: iotests.py-filter-out-successful-output-.patch
Patch00058: iotest-302-use-img_info_log-helper.patch
Patch00059: qcow2-simple-case-support-for-downgradin.patch
Patch00060: iotests-common.rc-introduce-_qcow2_dump_.patch
Patch00061: iotests-massive-use-_qcow2_dump_header.patch
Patch00062: iotest-39-use-_qcow2_dump_header.patch
Patch00063: iotests-bash-tests-filter-compression-ty.patch
Patch00064: iotests-60-more-accurate-set-dirty-bit-i.patch
Patch00065: iotest-214-explicit-compression-type.patch
Patch00066: iotests-declare-lack-of-support-for-comp.patch
Patch00067: block-backend-Retain-permissions-after-m.patch
Patch00068: virtiofsd-Drop-membership-of-all-supplem.patch
Patch00069: hw-scsi-megasas-check-for-NULL-frame-in-.patch
Patch00070: hw-nvram-at24-return-0xff-if-1-byte-addr.patch
Patch00071: hw-i386-amd_iommu-Fix-maybe-uninitialize.patch
Patch00072: tools-virtiofsd-Add-rseq-syscall-to-the-.patch
Patch00073: tests-qemu-iotests-040-Skip-TestCommitWi.patch
Patch00074: tests-qemu-iotests-testrunner-Quote-case.patch
Patch00075: Fix-the-module-building-problem-for-s390.patch
Patch00076: scsi-generic-check-for-additional-SG_IO-.patch
# Patches applied in roms/seabios/:
Patch01000: seabios-use-python2-explicitly-as-needed.patch
Patch01001: seabios-switch-to-python3-as-needed.patch
@ -1176,17 +1174,17 @@ This package records qemu testsuite results and represents successful testing.
%patch00035 -p1
%patch00036 -p1
%patch00037 -p1
%patch00038 -p1
%ifarch aarch64
%patch00039 -p1
%patch00038 -p1
%endif
%ifarch %arm %ix86 ppc
%patch00039 -p1
%endif
%patch00040 -p1
%endif
%patch00041 -p1
%if %{legacy_qemu_kvm}
%patch00042 -p1
%patch00041 -p1
%endif
%patch00042 -p1
%patch00043 -p1
%patch00044 -p1
%patch00045 -p1
@ -1221,8 +1219,6 @@ This package records qemu testsuite results and represents successful testing.
%patch00074 -p1
%patch00075 -p1
%patch00076 -p1
%patch00077 -p1
%patch00078 -p1
%patch01000 -p1
%patch01001 -p1
%patch01002 -p1