From 018b223699ebff58266bb32157c28f27cd2a38f82135d34508ff96cdef111583 Mon Sep 17 00:00:00 2001 From: Bruce Rogers Date: Thu, 10 Oct 2019 02:07:57 +0000 Subject: [PATCH] Accepting request 736751 from home:bfrogers:branches:Virtualization Some minor fixes. OBS-URL: https://build.opensuse.org/request/show/736751 OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=498 --- README.PACKAGING | 37 ++++---- bundles.tar.xz | 4 +- qemu.changes | 8 ++ qemu.spec | 30 +++--- qemu.spec.in | 28 +++--- ...-add-mapping-from-arch-of-i686-to-qe.patch | 25 +++++ tests-Disable-some-block-tests-for-now.patch | 94 ++++++++++++------- update_git.sh | 4 +- 8 files changed, 145 insertions(+), 85 deletions(-) create mode 100644 test-add-mapping-from-arch-of-i686-to-qe.patch diff --git a/README.PACKAGING b/README.PACKAGING index f1453408..eca40259 100644 --- a/README.PACKAGING +++ b/README.PACKAGING @@ -3,32 +3,31 @@ order to support git based patching. Please use it in order to have changes you make be acceptable to the package maintainers. The qemu.spec file is generated from a qemu.spec.in template, so to make changes -to the spec file (besides patch name or order changes), you'll need to edit the -template. The patches included are inserted into the spec file by scripts -described below. +to the spec file (besides the script generated patch references), you'll need to +edit the template, not the spec file. The spec file patch references are inserted +by scripts, which are 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', in order to get the current patch -queue made available in a local git branch named frombundle. (qemu packaging now -includes a "bundle of git bundles" stored as a package source file, which -contains the "git version" of the package patches.) You will create an altered -patch queue in the $GIT_BRANCH branch (see config.sh for actual name), and use -the frombundle branch as a starting point (eg perhaps start by doing git reset ---hard frombundle, then cherry-pick upstream patches from there). Once you have -the patch queue ready to go run 'bash ./update_git.sh git2pkg' to update the -bundle of bundles (bundles.tsr.xz file) as well as the spec and patch files. - -Additional Notes: +first run 'bash ./update_git.sh pkg2git', which makes the current package patch +queue available in a local git branch named frombundle (see confi.sh for the +locations). This set of patches comes from a "bundle of git bundles", the +bundles.tar.xz file, which is included as a package source file. You will then +create an altered patch queue in the $GIT_BRANCH branch ( again,see config.sh), +and use the frombundle branch as the starting point for your changes (eg perhaps +start by doing git reset --hard frombundle, then cherry-pick upstream patches +from there). Once you have the patch queue ready to go run 'bash ./update_git.sh +git2pkg' which updates the bunndles.tar.xz file, as well as the spec and patch +files. ** SPECIAL NOTE ABOUT CURRENT STATUS *** -The current status as of 12 Sep 2019 is that for this incarnation of qemu -packaging, the old update_git.sh workflow is no longer supported, being -suplanted with the workflow described above. THIS IS STILL A WORK IN PROGRESS. +The current status as of 03 Oct 2019 is that for this incarnation of qemu +packaging, the previous workflow which relied on the patches being in a shared +git repo on github or gitlab is no longer supported. This new bundle based +workflos is still a work in progress. If it isn't working right, please contact Bruce Rogers . -It isn't foolproof by a long shot! Also note that qemu now takes advantage of the MultiBuild feature of the Build Service. No longer do the qemu-linux-user and qemu-testsuite packages have build @@ -38,6 +37,8 @@ package variants. - Bruce Rogers *** END SPECIAL NOTE *** +Additional Notes: + 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: diff --git a/bundles.tar.xz b/bundles.tar.xz index c8ce1742..75d6c49e 100644 --- a/bundles.tar.xz +++ b/bundles.tar.xz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a7b737c94e0a6b8e4f922d2947f19bdef88c8ea1e1124e7d47c74298e5cf2fbe -size 53016 +oid sha256:88df3a40c42a4a202f358e77ed3802dd7ced53178a60b14f142d39f4f097f97e +size 53292 diff --git a/qemu.changes b/qemu.changes index 74ca1810..c2a53d20 100644 --- a/qemu.changes +++ b/qemu.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Thu Oct 10 01:42:04 UTC 2019 - Bruce Rogers + +- Reduce the cross compiler versions we rely on +- Fix some qemu-testsuite issues, reducing known error cases + test-add-mapping-from-arch-of-i686-to-qe.patch +- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-4.1 + ------------------------------------------------------------------- Wed Oct 2 15:52:16 UTC 2019 - Bruce Rogers diff --git a/qemu.spec b/qemu.spec index a5d93637..489ba828 100644 --- a/qemu.spec +++ b/qemu.spec @@ -185,6 +185,7 @@ Patch00059: pc-bios-s390-ccw-net-avoid-warning-about.patch Patch00060: roms-change-cross-compiler-naming-to-be-.patch Patch00061: roms-Makefile.edk2-don-t-invoke-git-sinc.patch Patch00062: tests-Disable-some-block-tests-for-now.patch +Patch00063: test-add-mapping-from-arch-of-i686-to-qe.patch # Patches applied in roms/seabios/: Patch01000: seabios-use-python2-explicitly-as-needed.patch Patch01001: seabios-switch-to-python3-as-needed.patch @@ -255,24 +256,16 @@ BuildRequires: bluez-devel BuildRequires: brlapi-devel %ifnarch %{ix86} aarch64 BuildRequires: cross-aarch64-binutils -%if 0%{?is_opensuse} -%ifarch riscv64 -BuildRequires: cross-aarch64-gcc8 -%else +%if 0%{suse_version} > 1500 BuildRequires: cross-aarch64-gcc9 -%endif %else BuildRequires: cross-aarch64-gcc7 %endif %endif %ifnarch %{ix86} armv7hl BuildRequires: cross-arm-binutils -%if 0%{?is_opensuse} -%ifarch riscv64 -BuildRequires: cross-arm-gcc8 -%else +%if 0%{suse_version} > 1500 BuildRequires: cross-arm-gcc9 -%endif %else BuildRequires: cross-arm-gcc7 %endif @@ -281,13 +274,13 @@ BuildRequires: cross-arm-gcc7 %ifnarch %{ix86} x86_64 # We must cross-compile on non-x86* BuildRequires: cross-i386-binutils -%if 0%{?is_opensuse} +%if 0%{suse_version} > 1500 BuildRequires: cross-i386-gcc9 %else BuildRequires: cross-i386-gcc7 %endif BuildRequires: cross-x86_64-binutils -%if 0%{?is_opensuse} +%if 0%{suse_version} > 1500 BuildRequires: cross-x86_64-gcc9 %else BuildRequires: cross-x86_64-gcc7 @@ -961,6 +954,7 @@ This package provides a service file for starting and stopping KSM. %patch00060 -p1 %patch00061 -p1 %patch00062 -p1 +%patch00063 -p1 %patch01000 -p1 %patch01001 -p1 %patch01002 -p1 @@ -1428,10 +1422,18 @@ make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms opensbi64-sifive_u CROSS_ # ------------------------------------------------------------------------ %if "%{name}" == "qemu-testsuite" +# TODO: Some of these are actually overwritten during the following make's ln -s %_bindir/qemu-img qemu-img ln -s %_bindir/qemu-ga qemu-ga ln -s %_bindir/qemu-io qemu-io -# And what about these binaries: qemu-nbd, elf2dmp, ivshmem-client, ivshmem-server, qemu-edid, qemu-keymap, qemu-pr-helper, virtfs-proxy-helper +ln -s %_bindir/elf2map elf2map +ln -s %_bindir/qemu-nbd qemu-nbd +ln -s %_bindir/qemu-edid qemu-edid +ln -s %_bindir/qemu-keymap qemu-keymap +ln -s %_bindir/ivshmem-client ivshmem-client +ln -s %_bindir/ivshmem-server ivshmem-server +ln -s %_bindir/qemu-pr-helper scsi/qemu-pr-helper +ln -s %_bindir/virtfs-proxy-helper fsdev/virtfs-proxy-helper for i in %firmware do @@ -1453,7 +1455,7 @@ make %{?_smp_mflags} tests/qom-test %{?_smp_mflags} V=1 # ... make comes in fresh and has lots of address space (needed for 32bit, bsc#957379) make %{?_smp_mflags} check-report.tap V=1 -%endif # qemu +%endif # qemu-testsuite # ------------------------------------------------------------------------ %if "%{name}" == "qemu-linux-user" diff --git a/qemu.spec.in b/qemu.spec.in index 580495f8..d23d2733 100644 --- a/qemu.spec.in +++ b/qemu.spec.in @@ -160,24 +160,16 @@ BuildRequires: bluez-devel BuildRequires: brlapi-devel %ifnarch %{ix86} aarch64 BuildRequires: cross-aarch64-binutils -%if 0%{?is_opensuse} -%ifarch riscv64 -BuildRequires: cross-aarch64-gcc8 -%else +%if 0%{suse_version} > 1500 BuildRequires: cross-aarch64-gcc9 -%endif %else BuildRequires: cross-aarch64-gcc7 %endif %endif %ifnarch %{ix86} armv7hl BuildRequires: cross-arm-binutils -%if 0%{?is_opensuse} -%ifarch riscv64 -BuildRequires: cross-arm-gcc8 -%else +%if 0%{suse_version} > 1500 BuildRequires: cross-arm-gcc9 -%endif %else BuildRequires: cross-arm-gcc7 %endif @@ -186,13 +178,13 @@ BuildRequires: cross-arm-gcc7 %ifnarch %{ix86} x86_64 # We must cross-compile on non-x86* BuildRequires: cross-i386-binutils -%if 0%{?is_opensuse} +%if 0%{suse_version} > 1500 BuildRequires: cross-i386-gcc9 %else BuildRequires: cross-i386-gcc7 %endif BuildRequires: cross-x86_64-binutils -%if 0%{?is_opensuse} +%if 0%{suse_version} > 1500 BuildRequires: cross-x86_64-gcc9 %else BuildRequires: cross-x86_64-gcc7 @@ -1243,10 +1235,18 @@ make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms opensbi64-sifive_u CROSS_ # ------------------------------------------------------------------------ %if "%{name}" == "qemu-testsuite" +# TODO: Some of these are actually overwritten during the following make's ln -s %_bindir/qemu-img qemu-img ln -s %_bindir/qemu-ga qemu-ga ln -s %_bindir/qemu-io qemu-io -# And what about these binaries: qemu-nbd, elf2dmp, ivshmem-client, ivshmem-server, qemu-edid, qemu-keymap, qemu-pr-helper, virtfs-proxy-helper +ln -s %_bindir/elf2map elf2map +ln -s %_bindir/qemu-nbd qemu-nbd +ln -s %_bindir/qemu-edid qemu-edid +ln -s %_bindir/qemu-keymap qemu-keymap +ln -s %_bindir/ivshmem-client ivshmem-client +ln -s %_bindir/ivshmem-server ivshmem-server +ln -s %_bindir/qemu-pr-helper scsi/qemu-pr-helper +ln -s %_bindir/virtfs-proxy-helper fsdev/virtfs-proxy-helper for i in %firmware do @@ -1268,7 +1268,7 @@ make %{?_smp_mflags} tests/qom-test %{?_smp_mflags} V=1 # ... make comes in fresh and has lots of address space (needed for 32bit, bsc#957379) make %{?_smp_mflags} check-report.tap V=1 -%endif # qemu +%endif # qemu-testsuite # ------------------------------------------------------------------------ %if "%{name}" == "qemu-linux-user" diff --git a/test-add-mapping-from-arch-of-i686-to-qe.patch b/test-add-mapping-from-arch-of-i686-to-qe.patch new file mode 100644 index 00000000..fd303658 --- /dev/null +++ b/test-add-mapping-from-arch-of-i686-to-qe.patch @@ -0,0 +1,25 @@ +From: Bruce Rogers +Date: Sat, 5 Oct 2019 09:09:42 -0600 +Subject: test: add mapping from arch of i686 to qemu_arch=i386 + +While we don't specifically set QEMU_PROG, the code which detects the +host architecture needs a little help mapping the output of uname -m to +what the qemu project uses to reference that architecture. + +Signed-off-by: Bruce Rogers +--- + tests/qemu-iotests/common.config | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tests/qemu-iotests/common.config b/tests/qemu-iotests/common.config +index 9bd1a5a6fc8367c336e9f51fe22f..e1c6ffa0cca3a8f14feeb38d6da8 100644 +--- a/tests/qemu-iotests/common.config ++++ b/tests/qemu-iotests/common.config +@@ -24,6 +24,7 @@ PATH=".:$PATH" + HOSTOS=$(uname -s) + arch=$(uname -m) + [[ "$arch" =~ "ppc64" ]] && qemu_arch=ppc64 || qemu_arch="$arch" ++[[ "$arch" = "i686" ]] && qemu_arch=i386 + + # make sure we have a standard umask + umask 022 diff --git a/tests-Disable-some-block-tests-for-now.patch b/tests-Disable-some-block-tests-for-now.patch index 072d4e99..e69f5439 100644 --- a/tests-Disable-some-block-tests-for-now.patch +++ b/tests-Disable-some-block-tests-for-now.patch @@ -7,35 +7,56 @@ block tests. There doesn't seem to be an obvious cause. Given that we now build qemu using multibuild, the qemu-testsuite failure is now more problematic to just ignore. Until we can address these failures, which seem to be tied to the build environment in some way, disable the tests -which are randomly failing. +which are either randomly or reliably failing. -Currently, this patch is based on these failures seen on 02OCT2019 on +At least some test failures are partly understood: tests 130, 153, and +161 fail due to an incompatibility with our use of --enable-membarrier +and the way the tests are driven. + +Currently, this patch is based on these failures seen on 09OCT2019 on v4.1.0 qemu: -on x86_64: 130, 177, 204, 205, 246, 250 -on i586: 161, 250 -on ppc64le: 161, 182, 250, 250 -on aarch64: 235 +disable 065, 129, 130, 153, 161, 169, 182, 205, 218, 242, 248, 250 (other architectures not evaluated at this time) Signed-off-by: Bruce Rogers --- - tests/qemu-iotests/group | 18 +++++++++--------- - 1 file changed, 9 insertions(+), 9 deletions(-) + tests/qemu-iotests/group | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group -index f13e5f2e23417b94bd84d820bcf6..d0da6ec0c8daba541b39ae920f68 100644 +index f13e5f2e23417b94bd84d820bcf6..d1579db09669797b0584e0892ff3 100644 --- a/tests/qemu-iotests/group +++ b/tests/qemu-iotests/group -@@ -151,7 +151,7 @@ +@@ -86,7 +86,7 @@ + 062 rw auto quick + 063 rw auto quick + 064 rw quick +-065 rw quick ++#DISABLE FOR NOW 065 rw quick + 066 rw auto quick + 067 rw quick + 068 rw quick +@@ -150,8 +150,8 @@ + 126 rw auto backing 127 rw backing quick 128 rw quick - 129 rw quick +-129 rw quick -130 rw auto quick ++#DISABLE FOR NOW 129 rw quick +#DISABLE FOR NOW 130 rw auto quick 131 rw quick 132 rw quick 133 auto quick -@@ -182,7 +182,7 @@ +@@ -174,7 +174,7 @@ + 150 rw auto quick + 151 rw + 152 rw quick +-153 rw quick ++#DISABLE FOR NOW 153 rw quick + 154 rw auto backing quick + 155 rw + 156 rw auto quick +@@ -182,11 +182,11 @@ 158 rw auto quick 159 rw auto quick 160 rw quick @@ -44,12 +65,12 @@ index f13e5f2e23417b94bd84d820bcf6..d0da6ec0c8daba541b39ae920f68 100644 162 quick 163 rw 165 rw quick -@@ -194,11 +194,11 @@ - 174 auto - 175 quick - 176 rw auto backing --177 rw auto quick -+#DISABLE FOR NOW 177 rw auto quick +-169 rw quick migration ++#DISABLE FOR NOW 169 rw quick migration + 170 rw auto quick + 171 rw quick + 172 auto +@@ -198,7 +198,7 @@ 178 img 179 rw auto quick 181 rw migration @@ -58,34 +79,37 @@ index f13e5f2e23417b94bd84d820bcf6..d0da6ec0c8daba541b39ae920f68 100644 183 rw migration 184 rw auto quick 185 rw -@@ -219,8 +219,8 @@ - 201 rw migration +@@ -220,7 +220,7 @@ 202 rw quick 203 rw migration --204 rw quick + 204 rw quick -205 rw quick -+#DISABLE FOR NOW 204 rw quick +#DISABLE FOR NOW 205 rw quick 206 rw 207 rw 208 rw quick -@@ -249,7 +249,7 @@ - 232 quick - 233 quick - 234 quick migration --235 quick -+#DISABLE FOR NOW 235 quick - 236 quick - 237 rw quick - 238 quick -@@ -260,11 +260,11 @@ +@@ -233,7 +233,7 @@ + 215 rw quick + 216 rw quick + 217 rw auto quick +-218 rw quick ++#DISABLE FOR NOW 218 rw quick + 219 rw + 220 rw auto + 221 rw quick +@@ -256,15 +256,15 @@ + 239 rw quick + 240 quick + 241 rw quick +-242 rw quick ++#DISABLE FOR NOW 242 rw quick 243 rw quick 244 rw auto quick 245 rw --246 rw quick -+#DISABLE FOR NOW 246 rw quick + 246 rw quick 247 rw quick - 248 rw quick +-248 rw quick ++#DISABLE FOR NOW 248 rw quick 249 rw auto quick -250 rw quick +#DISABLE FOR NOW 250 rw quick diff --git a/update_git.sh b/update_git.sh index 837edfdb..af20544d 100644 --- a/update_git.sh +++ b/update_git.sh @@ -591,8 +591,8 @@ osc service localrun format_spec_file usage() { echo "Usage:" - echo "bash ./git_update.sh : script to manage package maintenance" - echo "using a git-based workflow. Commands are as follows:" + echo "bash ./git_update.sh + echo description: package maintenance using a git-based workflow. Commands:" echo " git2pkg (update package spec file and patches from git. Is default)" echo " pkg2git (update git (frombundle branch) from the package "bundleofbundles")" echo " refresh (refresh spec file from spec file template and "bundlofbundles")"