All of lore.kernel.org
 help / color / mirror / Atom feed
* [PULL 0/8] Misc patches (Gitlab-CI, qtest, Capstone, ...)
@ 2022-05-18  9:04 Thomas Huth
  2022-05-18  9:04 ` [PULL 1/8] gitlab-ci: Switch the container of the 'check-patch' & 'check-dco' jobs Thomas Huth
                   ` (8 more replies)
  0 siblings, 9 replies; 16+ messages in thread
From: Thomas Huth @ 2022-05-18  9:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Richard Henderson

 Hi Richard!

The following changes since commit eec398119fc6911d99412c37af06a6bc27871f85:

  Merge tag 'for_upstream' of git://git.kernel.org/pub/scm/virt/kvm/mst/qemu into staging (2022-05-16 16:31:01 -0700)

are available in the Git repository at:

  https://gitlab.com/thuth/qemu.git tags/pull-request-2022-05-18

for you to fetch changes up to 83602083b4ada6ceb86bfb327e83556ebab120fc:

  capstone: Remove the capstone submodule (2022-05-18 08:54:22 +0200)

----------------------------------------------------------------
* Remove Ubuntu 18.04 containers (not supported anymore)
* Improve the cleanup of the QEMU binary in case of failing qtests
* Update the Windows support statement
* Remove the capstone submodule (and rely on Capstone of the distros instead)

----------------------------------------------------------------
Daniel P. Berrangé (2):
      tests/qtest: fix registration of ABRT handler for QEMU cleanup
      tests/qtest: use prctl(PR_SET_PDEATHSIG) as fallback to kill QEMU

Thomas Huth (6):
      gitlab-ci: Switch the container of the 'check-patch' & 'check-dco' jobs
      Remove Ubuntu 18.04 container support from the repository
      docs/about: Update the support statement for Windows
      tests/vm: Add capstone to the NetBSD and OpenBSD VMs
      capstone: Allow version 3.0.5 again
      capstone: Remove the capstone submodule

 docs/about/build-platforms.rst                     |  14 +-
 configure                                          |  23 +---
 meson.build                                        | 115 +---------------
 include/qemu/osdep.h                               |   2 +-
 tests/qtest/libqtest.c                             |  21 ++-
 .gitlab-ci.d/buildtest.yml                         |   3 +-
 .gitlab-ci.d/containers.yml                        |   5 -
 .../custom-runners/ubuntu-20.04-aarch32.yml        |   2 +-
 .../custom-runners/ubuntu-20.04-aarch64.yml        |   2 +-
 .gitlab-ci.d/static_checks.yml                     |  14 +-
 .gitlab-ci.d/windows.yml                           |   5 +-
 .gitmodules                                        |   3 -
 capstone                                           |   1 -
 meson_options.txt                                  |   3 +-
 scripts/ci/setup/build-environment.yml             |  14 +-
 scripts/meson-buildoptions.sh                      |   5 +-
 tests/docker/dockerfiles/ubuntu1804.docker         | 144 ---------------------
 tests/lcitool/refresh                              |   7 -
 tests/vm/netbsd                                    |   3 +-
 tests/vm/openbsd                                   |   3 +-
 20 files changed, 59 insertions(+), 330 deletions(-)
 delete mode 160000 capstone
 delete mode 100644 tests/docker/dockerfiles/ubuntu1804.docker



^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PULL 1/8] gitlab-ci: Switch the container of the 'check-patch' & 'check-dco' jobs
  2022-05-18  9:04 [PULL 0/8] Misc patches (Gitlab-CI, qtest, Capstone, ...) Thomas Huth
@ 2022-05-18  9:04 ` Thomas Huth
  2022-05-18  9:04 ` [PULL 2/8] Remove Ubuntu 18.04 container support from the repository Thomas Huth
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2022-05-18  9:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Richard Henderson, Daniel P . Berrangé, John Snow

The 'check-patch' and 'check-dco' jobs only need Python and git for
checking the patches, so it's not really necessary to use a container
here that has all the other build dependencies installed. By using a
lightweight Alpine container, we can improve the runtime here quite a
bit, cutting it down from ca. 1:30 minutes to ca. 45 seconds.

Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20220516082310.33876-1-thuth@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: John Snow <jsnow@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 .gitlab-ci.d/static_checks.yml | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/.gitlab-ci.d/static_checks.yml b/.gitlab-ci.d/static_checks.yml
index 5e955540d3..94858e3272 100644
--- a/.gitlab-ci.d/static_checks.yml
+++ b/.gitlab-ci.d/static_checks.yml
@@ -1,12 +1,13 @@
 check-patch:
   stage: build
-  image: $CI_REGISTRY_IMAGE/qemu/centos8:latest
-  needs:
-    job: amd64-centos8-container
+  image: python:3.10-alpine
+  needs: []
   script:
     - .gitlab-ci.d/check-patch.py
   variables:
     GIT_DEPTH: 1000
+  before_script:
+    - apk -U add git perl
   rules:
     - if: '$CI_PROJECT_NAMESPACE == "qemu-project"'
       when: never
@@ -15,12 +16,13 @@ check-patch:
 
 check-dco:
   stage: build
-  image: $CI_REGISTRY_IMAGE/qemu/centos8:latest
-  needs:
-    job: amd64-centos8-container
+  image: python:3.10-alpine
+  needs: []
   script: .gitlab-ci.d/check-dco.py
   variables:
     GIT_DEPTH: 1000
+  before_script:
+    - apk -U add git
   rules:
     - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
       when: never
-- 
2.27.0



^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PULL 2/8] Remove Ubuntu 18.04 container support from the repository
  2022-05-18  9:04 [PULL 0/8] Misc patches (Gitlab-CI, qtest, Capstone, ...) Thomas Huth
  2022-05-18  9:04 ` [PULL 1/8] gitlab-ci: Switch the container of the 'check-patch' & 'check-dco' jobs Thomas Huth
@ 2022-05-18  9:04 ` Thomas Huth
  2022-05-18  9:04 ` [PULL 3/8] tests/qtest: fix registration of ABRT handler for QEMU cleanup Thomas Huth
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2022-05-18  9:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Richard Henderson, Daniel P . Berrangé

According to our "Supported build platforms" policy, we now do not support
Ubuntu 18.04 anymore. Remove the related container files and entries from
our CI.

Message-Id: <20220516115912.120951-1-thuth@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 .gitlab-ci.d/containers.yml                   |   5 -
 .../custom-runners/ubuntu-20.04-aarch32.yml   |   2 +-
 .../custom-runners/ubuntu-20.04-aarch64.yml   |   2 +-
 scripts/ci/setup/build-environment.yml        |  14 +-
 tests/docker/dockerfiles/ubuntu1804.docker    | 144 ------------------
 tests/lcitool/refresh                         |   7 -
 6 files changed, 4 insertions(+), 170 deletions(-)
 delete mode 100644 tests/docker/dockerfiles/ubuntu1804.docker

diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-ci.d/containers.yml
index b9b675fdcb..e9df90bbdd 100644
--- a/.gitlab-ci.d/containers.yml
+++ b/.gitlab-ci.d/containers.yml
@@ -19,11 +19,6 @@ amd64-debian-container:
   variables:
     NAME: debian-amd64
 
-amd64-ubuntu1804-container:
-  extends: .container_job_template
-  variables:
-    NAME: ubuntu1804
-
 amd64-ubuntu2004-container:
   extends: .container_job_template
   variables:
diff --git a/.gitlab-ci.d/custom-runners/ubuntu-20.04-aarch32.yml b/.gitlab-ci.d/custom-runners/ubuntu-20.04-aarch32.yml
index 9c589bc4cf..47856ac53c 100644
--- a/.gitlab-ci.d/custom-runners/ubuntu-20.04-aarch32.yml
+++ b/.gitlab-ci.d/custom-runners/ubuntu-20.04-aarch32.yml
@@ -1,6 +1,6 @@
 # All ubuntu-20.04 jobs should run successfully in an environment
 # setup by the scripts/ci/setup/qemu/build-environment.yml task
-# "Install basic packages to build QEMU on Ubuntu 18.04/20.04"
+# "Install basic packages to build QEMU on Ubuntu 20.04"
 
 ubuntu-20.04-aarch32-all:
  needs: []
diff --git a/.gitlab-ci.d/custom-runners/ubuntu-20.04-aarch64.yml b/.gitlab-ci.d/custom-runners/ubuntu-20.04-aarch64.yml
index 920e388bd0..951e490db1 100644
--- a/.gitlab-ci.d/custom-runners/ubuntu-20.04-aarch64.yml
+++ b/.gitlab-ci.d/custom-runners/ubuntu-20.04-aarch64.yml
@@ -1,6 +1,6 @@
 # All ubuntu-20.04 jobs should run successfully in an environment
 # setup by the scripts/ci/setup/qemu/build-environment.yml task
-# "Install basic packages to build QEMU on Ubuntu 18.04/20.04"
+# "Install basic packages to build QEMU on Ubuntu 20.04"
 
 ubuntu-20.04-aarch64-all-linux-static:
  needs: []
diff --git a/scripts/ci/setup/build-environment.yml b/scripts/ci/setup/build-environment.yml
index 9182e0c253..232525b91d 100644
--- a/scripts/ci/setup/build-environment.yml
+++ b/scripts/ci/setup/build-environment.yml
@@ -33,10 +33,9 @@
       when:
         - ansible_facts['distribution'] == 'Ubuntu'
 
-    - name: Install basic packages to build QEMU on Ubuntu 18.04/20.04
+    - name: Install basic packages to build QEMU on Ubuntu 20.04
       package:
         name:
-        # Originally from tests/docker/dockerfiles/ubuntu1804.docker
           - ccache
           - gcc
           - gettext
@@ -90,7 +89,7 @@
       when:
         - ansible_facts['distribution'] == 'Ubuntu'
 
-    - name: Install packages to build QEMU on Ubuntu 18.04/20.04 on non-s390x
+    - name: Install packages to build QEMU on Ubuntu 20.04 on non-s390x
       package:
         name:
           - libspice-server-dev
@@ -100,15 +99,6 @@
         - ansible_facts['distribution'] == 'Ubuntu'
         - ansible_facts['architecture'] != 's390x'
 
-    - name: Install basic packages to build QEMU on Ubuntu 18.04
-      package:
-        name:
-        # Originally from tests/docker/dockerfiles/ubuntu1804.docker
-          - clang
-      when:
-        - ansible_facts['distribution'] == 'Ubuntu'
-        - ansible_facts['distribution_version'] == '18.04'
-
     - name: Install basic packages to build QEMU on Ubuntu 20.04
       package:
         name:
diff --git a/tests/docker/dockerfiles/ubuntu1804.docker b/tests/docker/dockerfiles/ubuntu1804.docker
deleted file mode 100644
index b3f2156580..0000000000
--- a/tests/docker/dockerfiles/ubuntu1804.docker
+++ /dev/null
@@ -1,144 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-#  $ lcitool dockerfile --layers all ubuntu-1804 qemu
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-FROM docker.io/library/ubuntu:18.04
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
-    apt-get update && \
-    apt-get install -y eatmydata && \
-    eatmydata apt-get dist-upgrade -y && \
-    eatmydata apt-get install --no-install-recommends -y \
-            bash \
-            bc \
-            bsdmainutils \
-            bzip2 \
-            ca-certificates \
-            ccache \
-            clang \
-            dbus \
-            debianutils \
-            diffutils \
-            exuberant-ctags \
-            findutils \
-            g++ \
-            gcc \
-            gcovr \
-            genisoimage \
-            gettext \
-            git \
-            glusterfs-common \
-            hostname \
-            libaio-dev \
-            libasan5 \
-            libasound2-dev \
-            libattr1-dev \
-            libbrlapi-dev \
-            libbz2-dev \
-            libc6-dev \
-            libcacard-dev \
-            libcap-ng-dev \
-            libcapstone-dev \
-            libcurl4-gnutls-dev \
-            libdaxctl-dev \
-            libdrm-dev \
-            libepoxy-dev \
-            libfdt-dev \
-            libffi-dev \
-            libgbm-dev \
-            libgcrypt20-dev \
-            libglib2.0-dev \
-            libgnutls28-dev \
-            libgtk-3-dev \
-            libibumad-dev \
-            libibverbs-dev \
-            libiscsi-dev \
-            libjemalloc-dev \
-            libjpeg-turbo8-dev \
-            liblttng-ust-dev \
-            liblzo2-dev \
-            libncursesw5-dev \
-            libnfs-dev \
-            libnuma-dev \
-            libpam0g-dev \
-            libpcre2-dev \
-            libpixman-1-dev \
-            libpmem-dev \
-            libpng-dev \
-            libpulse-dev \
-            librbd-dev \
-            librdmacm-dev \
-            libsasl2-dev \
-            libsdl2-dev \
-            libsdl2-image-dev \
-            libseccomp-dev \
-            libselinux1-dev \
-            libsnappy-dev \
-            libspice-protocol-dev \
-            libspice-server-dev \
-            libssh-dev \
-            libsystemd-dev \
-            libtasn1-6-dev \
-            libubsan1 \
-            libudev-dev \
-            libusb-1.0-0-dev \
-            libusbredirhost-dev \
-            libvdeplug-dev \
-            libvirglrenderer-dev \
-            libvte-2.91-dev \
-            libxen-dev \
-            libzstd-dev \
-            llvm \
-            locales \
-            make \
-            multipath-tools \
-            netcat-openbsd \
-            nettle-dev \
-            ninja-build \
-            openssh-client \
-            perl-base \
-            pkgconf \
-            python3 \
-            python3-numpy \
-            python3-opencv \
-            python3-pillow \
-            python3-pip \
-            python3-setuptools \
-            python3-sphinx \
-            python3-sphinx-rtd-theme \
-            python3-venv \
-            python3-wheel \
-            python3-yaml \
-            rpm2cpio \
-            sed \
-            sparse \
-            systemtap-sdt-dev \
-            tar \
-            tesseract-ocr \
-            tesseract-ocr-eng \
-            texinfo \
-            xfslibs-dev \
-            zlib1g-dev && \
-    eatmydata apt-get autoremove -y && \
-    eatmydata apt-get autoclean -y && \
-    sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
-    dpkg-reconfigure locales && \
-    dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
-    mkdir -p /usr/libexec/ccache-wrappers && \
-    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/c++ && \
-    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
-    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
-    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
-    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
-
-RUN pip3 install meson==0.56.0
-
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-# https://bugs.launchpad.net/qemu/+bug/1838763
-ENV QEMU_CONFIGURE_OPTS --disable-libssh
diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh
index 2d198ad281..fb49bbc441 100755
--- a/tests/lcitool/refresh
+++ b/tests/lcitool/refresh
@@ -65,11 +65,6 @@ def generate_cirrus(target, trailer=None):
    cmd = lcitool_cmd + ["variables", target, "qemu"]
    generate(filename, cmd, trailer)
 
-ubuntu1804_skipssh = [
-   "# https://bugs.launchpad.net/qemu/+bug/1838763\n",
-   "ENV QEMU_CONFIGURE_OPTS --disable-libssh\n"
-]
-
 ubuntu2004_tsanhack = [
    "# Apply patch https://reviews.llvm.org/D75820\n",
    "# This is required for TSan in clang-10 to compile with QEMU.\n",
@@ -85,8 +80,6 @@ def debian_cross_build(prefix, targets):
 try:
    generate_dockerfile("centos8", "centos-stream-8")
    generate_dockerfile("fedora", "fedora-35")
-   generate_dockerfile("ubuntu1804", "ubuntu-1804",
-                       trailer="".join(ubuntu1804_skipssh))
    generate_dockerfile("ubuntu2004", "ubuntu-2004",
                        trailer="".join(ubuntu2004_tsanhack))
    generate_dockerfile("opensuse-leap", "opensuse-leap-152")
-- 
2.27.0



^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PULL 3/8] tests/qtest: fix registration of ABRT handler for QEMU cleanup
  2022-05-18  9:04 [PULL 0/8] Misc patches (Gitlab-CI, qtest, Capstone, ...) Thomas Huth
  2022-05-18  9:04 ` [PULL 1/8] gitlab-ci: Switch the container of the 'check-patch' & 'check-dco' jobs Thomas Huth
  2022-05-18  9:04 ` [PULL 2/8] Remove Ubuntu 18.04 container support from the repository Thomas Huth
@ 2022-05-18  9:04 ` Thomas Huth
  2022-05-18  9:04 ` [PULL 4/8] tests/qtest: use prctl(PR_SET_PDEATHSIG) as fallback to kill QEMU Thomas Huth
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2022-05-18  9:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Richard Henderson, Daniel P. Berrangé

From: Daniel P. Berrangé <berrange@redhat.com>

qtest_init registers a hook to cleanup the running QEMU process
should g_assert() fire before qtest_quit is called. When the first
hook is registered, it is supposed to triggere registration of the
SIGABRT handler. Unfortunately the logic in hook_list_is_empty is
inverted, so the SIGABRT handler never gets registered, unless
2 or more QEMU processes are run concurrently. This caused qtest
to leak QEMU processes anytime g_assert triggers.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20220513154906.206715-2-berrange@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 tests/qtest/libqtest.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c
index 228357f1ea..4a4697c0d1 100644
--- a/tests/qtest/libqtest.c
+++ b/tests/qtest/libqtest.c
@@ -197,11 +197,11 @@ static bool hook_list_is_empty(GHookList *hook_list)
     GHook *hook = g_hook_first_valid(hook_list, TRUE);
 
     if (!hook) {
-        return false;
+        return true;
     }
 
     g_hook_unref(hook_list, hook);
-    return true;
+    return false;
 }
 
 void qtest_add_abrt_handler(GHookFunc fn, const void *data)
-- 
2.27.0



^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PULL 4/8] tests/qtest: use prctl(PR_SET_PDEATHSIG) as fallback to kill QEMU
  2022-05-18  9:04 [PULL 0/8] Misc patches (Gitlab-CI, qtest, Capstone, ...) Thomas Huth
                   ` (2 preceding siblings ...)
  2022-05-18  9:04 ` [PULL 3/8] tests/qtest: fix registration of ABRT handler for QEMU cleanup Thomas Huth
@ 2022-05-18  9:04 ` Thomas Huth
  2022-05-18  9:04 ` [PULL 5/8] docs/about: Update the support statement for Windows Thomas Huth
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2022-05-18  9:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Richard Henderson, Daniel P. Berrangé

From: Daniel P. Berrangé <berrange@redhat.com>

Although we register a ABRT handler to kill off QEMU when g_assert()
triggers, we want an extra safety net. The QEMU process might be
non-functional and thus not have responded to SIGTERM. The test script
might also have crashed with SEGV, in which case the cleanup handlers
won't ever run.

Using the Linux specific prctl(PR_SET_PDEATHSIG) syscall, we
can ensure that QEMU gets sent SIGKILL as soon as the controlling
qtest exits, if nothing else has correctly told it to quit.

Note, technically the death signal is sent when the *thread* that
called fork() exits. IOW, if you are calling qtest_init() in one
thread, letting that thread exit, and then expecting to run
qtest_quit() in a different thread, things are not going to work
out. Fortunately that is not a scenario that exists in qtests,
as pairs of qtest_init and qtest_quit are always called from the
same thread.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20220513154906.206715-3-berrange@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 tests/qtest/libqtest.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c
index 4a4697c0d1..2e49618454 100644
--- a/tests/qtest/libqtest.c
+++ b/tests/qtest/libqtest.c
@@ -19,6 +19,9 @@
 #include <sys/socket.h>
 #include <sys/wait.h>
 #include <sys/un.h>
+#ifdef __linux__
+#include <sys/prctl.h>
+#endif /* __linux__ */
 
 #include "libqtest.h"
 #include "libqmp.h"
@@ -301,6 +304,20 @@ QTestState *qtest_init_without_qmp_handshake(const char *extra_args)
     s->expected_status = 0;
     s->qemu_pid = fork();
     if (s->qemu_pid == 0) {
+#ifdef __linux__
+        /*
+         * Although we register a ABRT handler to kill off QEMU
+         * when g_assert() triggers, we want an extra safety
+         * net. The QEMU process might be non-functional and
+         * thus not have responded to SIGTERM. The test script
+         * might also have crashed with SEGV, in which case the
+         * cleanup handlers won't ever run.
+         *
+         * This PR_SET_PDEATHSIG setup will ensure any remaining
+         * QEMU will get terminated with SIGKILL in these cases.
+         */
+        prctl(PR_SET_PDEATHSIG, SIGKILL, 0, 0, 0);
+#endif /* __linux__ */
         if (!g_setenv("QEMU_AUDIO_DRV", "none", true)) {
             exit(1);
         }
-- 
2.27.0



^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PULL 5/8] docs/about: Update the support statement for Windows
  2022-05-18  9:04 [PULL 0/8] Misc patches (Gitlab-CI, qtest, Capstone, ...) Thomas Huth
                   ` (3 preceding siblings ...)
  2022-05-18  9:04 ` [PULL 4/8] tests/qtest: use prctl(PR_SET_PDEATHSIG) as fallback to kill QEMU Thomas Huth
@ 2022-05-18  9:04 ` Thomas Huth
  2022-05-18  9:04 ` [PULL 6/8] tests/vm: Add capstone to the NetBSD and OpenBSD VMs Thomas Huth
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2022-05-18  9:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Richard Henderson, Daniel P . Berrangé, Stefan Weil

Our support statement for Windows currently talks about "Vista / Server
2008" - which is related to the API of Windows, and this is not easy
to understand for the non-technical users. Additionally, glib sets the
_WIN32_WINNT macro to 0x0601 already, which indicates the Windows 7 API,
so QEMU effectively depends on the Windows 7 API, too.

Thus let's bump the _WIN32_WINNT setting in QEMU to the same level as
glib uses and adjust our support statement in the documentation to
something similar that we're using for Linux and the *BSD systems
(i.e. only the two most recent versions), which should hopefully be
easier to understand for the users now.

And since we're nowadays also compile-testing QEMU with MSYS2 on Windows
itself, I think we could mention this build environment here, too.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/880
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Stefan Weil <sw@weilnetz.de>
Message-Id: <20220513063958.1181443-1-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 docs/about/build-platforms.rst | 14 +++++++++-----
 configure                      |  2 ++
 include/qemu/osdep.h           |  2 +-
 3 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
index e9163ba556..1958edb430 100644
--- a/docs/about/build-platforms.rst
+++ b/docs/about/build-platforms.rst
@@ -86,11 +86,15 @@ similar versions.
 Windows
 -------
 
-The project supports building with current versions of the MinGW toolchain,
-hosted on Linux (Debian/Fedora).
-
-The version of the Windows API that's currently targeted is Vista / Server
-2008.
+The project aims to support the two most recent versions of Windows that are
+still supported by the vendor. The minimum Windows API that is currently
+targeted is "Windows 7", so theoretically the QEMU binaries can still be run
+on older versions of Windows, too. However, such old versions of Windows are
+not tested anymore, so it is recommended to use one of the latest versions of
+Windows instead.
+
+The project supports building QEMU with current versions of the MinGW
+toolchain, either hosted on Linux (Debian/Fedora) or via MSYS2 on Windows.
 
 .. _Homebrew: https://brew.sh/
 .. _MacPorts: https://www.macports.org/
diff --git a/configure b/configure
index 0cc8c876f7..103a7b02e8 100755
--- a/configure
+++ b/configure
@@ -1486,6 +1486,8 @@ fi
 ##########################################
 # glib support probe
 
+# When bumping glib_req_ver, please check also whether we should increase
+# the _WIN32_WINNT setting in osdep.h according to the value from glib
 glib_req_ver=2.56
 glib_modules=gthread-2.0
 if test "$modules" = yes; then
diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h
index 1c1e7eca98..a72e99db85 100644
--- a/include/qemu/osdep.h
+++ b/include/qemu/osdep.h
@@ -75,7 +75,7 @@ QEMU_EXTERN_C int daemon(int, int);
 #ifdef _WIN32
 /* as defined in sdkddkver.h */
 #ifndef _WIN32_WINNT
-#define _WIN32_WINNT 0x0600 /* Vista */
+#define _WIN32_WINNT 0x0601 /* Windows 7 API (should be in sync with glib) */
 #endif
 /* reduces the number of implicitly included headers */
 #ifndef WIN32_LEAN_AND_MEAN
-- 
2.27.0



^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PULL 6/8] tests/vm: Add capstone to the NetBSD and OpenBSD VMs
  2022-05-18  9:04 [PULL 0/8] Misc patches (Gitlab-CI, qtest, Capstone, ...) Thomas Huth
                   ` (4 preceding siblings ...)
  2022-05-18  9:04 ` [PULL 5/8] docs/about: Update the support statement for Windows Thomas Huth
@ 2022-05-18  9:04 ` Thomas Huth
  2022-05-18  9:04 ` [PULL 7/8] capstone: Allow version 3.0.5 again Thomas Huth
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2022-05-18  9:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Richard Henderson

The Capstone library that is shipped with NetBSD and OpenBSD works
fine when compiling QEMU, so let's enable this in our build-test
VMs to get a little bit more build-test coverage.

Message-Id: <20220516145823.148450-2-thuth@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 tests/vm/netbsd  | 3 ++-
 tests/vm/openbsd | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/tests/vm/netbsd b/tests/vm/netbsd
index 4cc58df130..45aa9a7fda 100755
--- a/tests/vm/netbsd
+++ b/tests/vm/netbsd
@@ -46,7 +46,8 @@ class NetBSDVM(basevm.BaseVM):
         "jpeg",
         "png",
 
-	# libs: ui
+        # libs: ui
+        "capstone",
         "SDL2",
         "gtk3+",
         "libxkbcommon",
diff --git a/tests/vm/openbsd b/tests/vm/openbsd
index dc34b2718b..13c8254214 100755
--- a/tests/vm/openbsd
+++ b/tests/vm/openbsd
@@ -48,7 +48,8 @@ class OpenBSDVM(basevm.BaseVM):
         "jpeg",
         "png",
 
-	# libs: ui
+        # libs: ui
+        "capstone",
         "sdl2",
         "gtk+3",
         "libxkbcommon",
-- 
2.27.0



^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PULL 7/8] capstone: Allow version 3.0.5 again
  2022-05-18  9:04 [PULL 0/8] Misc patches (Gitlab-CI, qtest, Capstone, ...) Thomas Huth
                   ` (5 preceding siblings ...)
  2022-05-18  9:04 ` [PULL 6/8] tests/vm: Add capstone to the NetBSD and OpenBSD VMs Thomas Huth
@ 2022-05-18  9:04 ` Thomas Huth
  2022-05-18  9:04 ` [PULL 8/8] capstone: Remove the capstone submodule Thomas Huth
  2022-05-18 16:12 ` [PULL 0/8] Misc patches (Gitlab-CI, qtest, Capstone, ...) Richard Henderson
  8 siblings, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2022-05-18  9:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Richard Henderson

According to

 https://lore.kernel.org/qemu-devel/20200921174118.39352-1-richard.henderson@linaro.org/

there was an issue with Capstone 3.0.4 from Ubuntu 18, which was the reason
for bumping our minimum Capstone requirement to version 4.0. And indeed,
compiling with that version 3.0.4 from Ubuntu 18.04 still fails (after
allowing it with a hack in meson.build). But now that we've dropped support
for Ubuntu 18.04, that issue is not relevant anymore. Compiling with Capstone
version 3.0.5 (e.g. used in Ubuntu 20.04) seems to work fine, so let's allow
that version again.

Message-Id: <20220516145823.148450-3-thuth@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 meson.build                | 2 +-
 .gitlab-ci.d/buildtest.yml | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/meson.build b/meson.build
index 53a4728250..526ff29a86 100644
--- a/meson.build
+++ b/meson.build
@@ -2525,7 +2525,7 @@ capstone = not_found
 capstone_opt = get_option('capstone')
 if capstone_opt in ['enabled', 'auto', 'system']
   have_internal = fs.exists(meson.current_source_dir() / 'capstone/Makefile')
-  capstone = dependency('capstone', version: '>=4.0',
+  capstone = dependency('capstone', version: '>=3.0.5',
                         kwargs: static_kwargs, method: 'pkg-config',
                         required: capstone_opt == 'system' or
                                   capstone_opt == 'enabled' and not have_internal)
diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
index 0aea7ab84c..a4d43d743b 100644
--- a/.gitlab-ci.d/buildtest.yml
+++ b/.gitlab-ci.d/buildtest.yml
@@ -42,6 +42,7 @@ build-system-ubuntu:
   variables:
     IMAGE: ubuntu2004
     CONFIGURE_ARGS: --enable-docs --enable-fdt=system --enable-slirp=system
+        --enable-capstone=system
     TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu
       microblazeel-softmmu mips64el-softmmu
     MAKE_CHECK_ARGS: check-build
-- 
2.27.0



^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PULL 8/8] capstone: Remove the capstone submodule
  2022-05-18  9:04 [PULL 0/8] Misc patches (Gitlab-CI, qtest, Capstone, ...) Thomas Huth
                   ` (6 preceding siblings ...)
  2022-05-18  9:04 ` [PULL 7/8] capstone: Allow version 3.0.5 again Thomas Huth
@ 2022-05-18  9:04 ` Thomas Huth
  2022-05-18 16:12 ` [PULL 0/8] Misc patches (Gitlab-CI, qtest, Capstone, ...) Richard Henderson
  8 siblings, 0 replies; 16+ messages in thread
From: Thomas Huth @ 2022-05-18  9:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Richard Henderson

Now that we allow compiling with Capstone v3.0.5 again, all our supported
build hosts should provide at least this version of the disassembler
library, so we do not need to ship this as a submodule anymore.

Message-Id: <20220516145823.148450-4-thuth@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 configure                     |  21 -------
 meson.build                   | 113 ++--------------------------------
 .gitlab-ci.d/buildtest.yml    |   4 +-
 .gitlab-ci.d/windows.yml      |   5 +-
 .gitmodules                   |   3 -
 capstone                      |   1 -
 meson_options.txt             |   3 +-
 scripts/meson-buildoptions.sh |   5 +-
 8 files changed, 11 insertions(+), 144 deletions(-)
 delete mode 160000 capstone

diff --git a/configure b/configure
index 103a7b02e8..180ee688dc 100755
--- a/configure
+++ b/configure
@@ -307,10 +307,8 @@ skip_meson=no
 
 # 1. Track which submodules are needed
 if test "$default_feature" = no ; then
-  capstone="disabled"
   slirp="disabled"
 else
-  capstone="auto"
   slirp="auto"
 fi
 fdt="auto"
@@ -869,14 +867,6 @@ for opt do
   --enable-uuid|--disable-uuid)
       echo "$0: $opt is obsolete, UUID support is always built" >&2
   ;;
-  --disable-capstone) capstone="disabled"
-  ;;
-  --enable-capstone) capstone="enabled"
-  ;;
-  --enable-capstone=git) capstone="internal"
-  ;;
-  --enable-capstone=*) capstone="$optarg"
-  ;;
   --with-git=*) git="$optarg"
   ;;
   --with-git-submodules=*)
@@ -1566,16 +1556,6 @@ case "$fdt" in
     ;;
 esac
 
-##########################################
-# capstone
-
-case "$capstone" in
-  auto | enabled | internal)
-    # Simpler to always update submodule, even if not needed.
-    git_submodules="${git_submodules} capstone"
-    ;;
-esac
-
 ##########################################
 # check and set a backend for coroutine
 
@@ -2220,7 +2200,6 @@ if test "$skip_meson" = no; then
   test "$werror" = yes && meson_option_add -Dwerror=true
 
   # QEMU options
-  test "$capstone" != auto && meson_option_add "-Dcapstone=$capstone"
   test "$cfi" != false && meson_option_add "-Dcfi=$cfi"
   test "$fdt" != auto && meson_option_add "-Dfdt=$fdt"
   test -n "${LIB_FUZZING_ENGINE+xxx}" && meson_option_add "-Dfuzzing_engine=$LIB_FUZZING_ENGINE"
diff --git a/meson.build b/meson.build
index 526ff29a86..c4fb8fa5d0 100644
--- a/meson.build
+++ b/meson.build
@@ -2522,13 +2522,10 @@ genh += custom_target('config-poison.h',
 ##############
 
 capstone = not_found
-capstone_opt = get_option('capstone')
-if capstone_opt in ['enabled', 'auto', 'system']
-  have_internal = fs.exists(meson.current_source_dir() / 'capstone/Makefile')
+if not get_option('capstone').auto() or have_system or have_user
   capstone = dependency('capstone', version: '>=3.0.5',
                         kwargs: static_kwargs, method: 'pkg-config',
-                        required: capstone_opt == 'system' or
-                                  capstone_opt == 'enabled' and not have_internal)
+                        required: get_option('capstone'))
 
   # Some versions of capstone have broken pkg-config file
   # that reports a wrong -I path, causing the #include to
@@ -2537,110 +2534,10 @@ if capstone_opt in ['enabled', 'auto', 'system']
   if capstone.found() and not cc.compiles('#include <capstone.h>',
                                           dependencies: [capstone])
     capstone = not_found
-    if capstone_opt == 'system'
-      error('system capstone requested, it does not appear to work')
+    if get_option('capstone').enabled()
+      error('capstone requested, but it does not appear to work')
     endif
   endif
-
-  if capstone.found()
-    capstone_opt = 'system'
-  elif have_internal
-    capstone_opt = 'internal'
-  else
-    capstone_opt = 'disabled'
-  endif
-endif
-if capstone_opt == 'internal'
-  capstone_data = configuration_data()
-  capstone_data.set('CAPSTONE_USE_SYS_DYN_MEM', '1')
-
-  capstone_files = files(
-    'capstone/cs.c',
-    'capstone/MCInst.c',
-    'capstone/MCInstrDesc.c',
-    'capstone/MCRegisterInfo.c',
-    'capstone/SStream.c',
-    'capstone/utils.c'
-  )
-
-  if 'CONFIG_ARM_DIS' in config_all_disas
-    capstone_data.set('CAPSTONE_HAS_ARM', '1')
-    capstone_files += files(
-      'capstone/arch/ARM/ARMDisassembler.c',
-      'capstone/arch/ARM/ARMInstPrinter.c',
-      'capstone/arch/ARM/ARMMapping.c',
-      'capstone/arch/ARM/ARMModule.c'
-    )
-  endif
-
-  # FIXME: This config entry currently depends on a c++ compiler.
-  # Which is needed for building libvixl, but not for capstone.
-  if 'CONFIG_ARM_A64_DIS' in config_all_disas
-    capstone_data.set('CAPSTONE_HAS_ARM64', '1')
-    capstone_files += files(
-      'capstone/arch/AArch64/AArch64BaseInfo.c',
-      'capstone/arch/AArch64/AArch64Disassembler.c',
-      'capstone/arch/AArch64/AArch64InstPrinter.c',
-      'capstone/arch/AArch64/AArch64Mapping.c',
-      'capstone/arch/AArch64/AArch64Module.c'
-    )
-  endif
-
-  if 'CONFIG_PPC_DIS' in config_all_disas
-    capstone_data.set('CAPSTONE_HAS_POWERPC', '1')
-    capstone_files += files(
-      'capstone/arch/PowerPC/PPCDisassembler.c',
-      'capstone/arch/PowerPC/PPCInstPrinter.c',
-      'capstone/arch/PowerPC/PPCMapping.c',
-      'capstone/arch/PowerPC/PPCModule.c'
-    )
-  endif
-
-  if 'CONFIG_S390_DIS' in config_all_disas
-    capstone_data.set('CAPSTONE_HAS_SYSZ', '1')
-    capstone_files += files(
-      'capstone/arch/SystemZ/SystemZDisassembler.c',
-      'capstone/arch/SystemZ/SystemZInstPrinter.c',
-      'capstone/arch/SystemZ/SystemZMapping.c',
-      'capstone/arch/SystemZ/SystemZModule.c',
-      'capstone/arch/SystemZ/SystemZMCTargetDesc.c'
-    )
-  endif
-
-  if 'CONFIG_I386_DIS' in config_all_disas
-    capstone_data.set('CAPSTONE_HAS_X86', 1)
-    capstone_files += files(
-      'capstone/arch/X86/X86Disassembler.c',
-      'capstone/arch/X86/X86DisassemblerDecoder.c',
-      'capstone/arch/X86/X86ATTInstPrinter.c',
-      'capstone/arch/X86/X86IntelInstPrinter.c',
-      'capstone/arch/X86/X86InstPrinterCommon.c',
-      'capstone/arch/X86/X86Mapping.c',
-      'capstone/arch/X86/X86Module.c'
-    )
-  endif
-
-  configure_file(output: 'capstone-defs.h', configuration: capstone_data)
-
-  capstone_cargs = [
-    # FIXME: There does not seem to be a way to completely replace the c_args
-    # that come from add_project_arguments() -- we can only add to them.
-    # So: disable all warnings with a big hammer.
-    '-Wno-error', '-w',
-
-    # Include all configuration defines via a header file, which will wind up
-    # as a dependency on the object file, and thus changes here will result
-    # in a rebuild.
-    '-include', 'capstone-defs.h'
-  ]
-
-  libcapstone = static_library('capstone',
-                               build_by_default: false,
-                               sources: capstone_files,
-                               c_args: capstone_cargs,
-                               include_directories: 'capstone/include')
-  capstone = declare_dependency(link_with: libcapstone,
-                                include_directories: 'capstone/include/capstone')
 endif
 
 slirp = not_found
@@ -3970,7 +3867,7 @@ summary_info += {'bzip2 support':     libbzip2}
 summary_info += {'lzfse support':     liblzfse}
 summary_info += {'zstd support':      zstd}
 summary_info += {'NUMA host support': numa}
-summary_info += {'capstone':          capstone_opt == 'internal' ? capstone_opt : capstone}
+summary_info += {'capstone':          capstone}
 summary_info += {'libpmem support':   libpmem}
 summary_info += {'libdaxctl support': libdaxctl}
 summary_info += {'libudev':           libudev}
diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
index a4d43d743b..e9620c3074 100644
--- a/.gitlab-ci.d/buildtest.yml
+++ b/.gitlab-ci.d/buildtest.yml
@@ -42,7 +42,7 @@ build-system-ubuntu:
   variables:
     IMAGE: ubuntu2004
     CONFIGURE_ARGS: --enable-docs --enable-fdt=system --enable-slirp=system
-        --enable-capstone=system
+        --enable-capstone
     TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu
       microblazeel-softmmu mips64el-softmmu
     MAKE_CHECK_ARGS: check-build
@@ -119,7 +119,7 @@ build-system-fedora:
   variables:
     IMAGE: fedora
     CONFIGURE_ARGS: --disable-gcrypt --enable-nettle --enable-docs
-             --enable-fdt=system --enable-slirp=system --enable-capstone=system
+             --enable-fdt=system --enable-slirp=system --enable-capstone
     TARGETS: tricore-softmmu microblaze-softmmu mips-softmmu
       xtensa-softmmu m68k-softmmu riscv32-softmmu ppc-softmmu sparc64-softmmu
     MAKE_CHECK_ARGS: check-build
diff --git a/.gitlab-ci.d/windows.yml b/.gitlab-ci.d/windows.yml
index 47f6073773..cf7724b8e5 100644
--- a/.gitlab-ci.d/windows.yml
+++ b/.gitlab-ci.d/windows.yml
@@ -57,7 +57,7 @@ msys2-64bit:
   - $env:CHERE_INVOKING = 'yes'  # Preserve the current working directory
   - $env:MSYSTEM = 'MINGW64'     # Start a 64 bit Mingw environment
   - .\msys64\usr\bin\bash -lc './configure --target-list=x86_64-softmmu
-      --enable-capstone=system --without-default-devices'
+      --enable-capstone --without-default-devices'
   - .\msys64\usr\bin\bash -lc "sed -i '/^ROMS=/d' build/config-host.mak"
   - .\msys64\usr\bin\bash -lc 'make -j2'
   - .\msys64\usr\bin\bash -lc 'make check'
@@ -90,7 +90,6 @@ msys2-32bit:
   - $env:MSYSTEM = 'MINGW32'     # Start a 32-bit MinG environment
   - mkdir output
   - cd output
-  - ..\msys64\usr\bin\bash -lc "../configure --target-list=ppc64-softmmu
-      --enable-capstone=system"
+  - ..\msys64\usr\bin\bash -lc "../configure --target-list=ppc64-softmmu"
   - ..\msys64\usr\bin\bash -lc 'make -j2'
   - ..\msys64\usr\bin\bash -lc 'make check'
diff --git a/.gitmodules b/.gitmodules
index f4b6a9b401..b8bff47df8 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -31,9 +31,6 @@
 [submodule "ui/keycodemapdb"]
 	path = ui/keycodemapdb
 	url = https://gitlab.com/qemu-project/keycodemapdb.git
-[submodule "capstone"]
-	path = capstone
-	url = https://gitlab.com/qemu-project/capstone.git
 [submodule "roms/seabios-hppa"]
 	path = roms/seabios-hppa
 	url = https://gitlab.com/qemu-project/seabios-hppa.git
diff --git a/capstone b/capstone
deleted file mode 160000
index f8b1b83301..0000000000
--- a/capstone
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit f8b1b833015a4ae47110ed068e0deb7106ced66d
diff --git a/meson_options.txt b/meson_options.txt
index 29c6b90cec..fcdc43f7db 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -252,8 +252,7 @@ option('virtfs', type: 'feature', value: 'auto',
 option('virtiofsd', type: 'feature', value: 'auto',
        description: 'build virtiofs daemon (virtiofsd)')
 
-option('capstone', type: 'combo', value: 'auto',
-       choices: ['disabled', 'enabled', 'auto', 'system', 'internal'],
+option('capstone', type: 'feature', value: 'auto',
        description: 'Whether and how to find the capstone library')
 option('slirp', type: 'combo', value: 'auto',
        choices: ['disabled', 'enabled', 'auto', 'system', 'internal'],
diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh
index 5d2172bfb4..7fc56d3f4a 100644
--- a/scripts/meson-buildoptions.sh
+++ b/scripts/meson-buildoptions.sh
@@ -16,9 +16,6 @@ meson_options_help() {
   printf "%s\n" '  --enable-block-drv-whitelist-in-tools'
   printf "%s\n" '                           use block whitelist also in tools instead of only'
   printf "%s\n" '                           QEMU'
-  printf "%s\n" '  --enable-capstone[=CHOICE]'
-  printf "%s\n" '                           Whether and how to find the capstone library'
-  printf "%s\n" '                           (choices: auto/disabled/enabled/internal/system)'
   printf "%s\n" '  --enable-cfi             Control-Flow Integrity (CFI)'
   printf "%s\n" '  --enable-cfi-debug       Verbose errors in case of CFI violation'
   printf "%s\n" '  --enable-debug-mutex     mutex debugging support'
@@ -77,6 +74,7 @@ meson_options_help() {
   printf "%s\n" '  brlapi          brlapi character device driver'
   printf "%s\n" '  bzip2           bzip2 support for DMG images'
   printf "%s\n" '  cap-ng          cap_ng support'
+  printf "%s\n" '  capstone        Whether and how to find the capstone library'
   printf "%s\n" '  cloop           cloop image format support'
   printf "%s\n" '  cocoa           Cocoa user interface (macOS only)'
   printf "%s\n" '  coreaudio       CoreAudio sound support'
@@ -209,7 +207,6 @@ _meson_option_parse() {
     --disable-cap-ng) printf "%s" -Dcap_ng=disabled ;;
     --enable-capstone) printf "%s" -Dcapstone=enabled ;;
     --disable-capstone) printf "%s" -Dcapstone=disabled ;;
-    --enable-capstone=*) quote_sh "-Dcapstone=$2" ;;
     --enable-cfi) printf "%s" -Dcfi=true ;;
     --disable-cfi) printf "%s" -Dcfi=false ;;
     --enable-cfi-debug) printf "%s" -Dcfi_debug=true ;;
-- 
2.27.0



^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PULL 0/8] Misc patches (Gitlab-CI, qtest, Capstone, ...)
  2022-05-18  9:04 [PULL 0/8] Misc patches (Gitlab-CI, qtest, Capstone, ...) Thomas Huth
                   ` (7 preceding siblings ...)
  2022-05-18  9:04 ` [PULL 8/8] capstone: Remove the capstone submodule Thomas Huth
@ 2022-05-18 16:12 ` Richard Henderson
  2022-05-19  6:29   ` Thomas Huth
  8 siblings, 1 reply; 16+ messages in thread
From: Richard Henderson @ 2022-05-18 16:12 UTC (permalink / raw)
  To: Thomas Huth, qemu-devel

On 5/18/22 02:04, Thomas Huth wrote:
>   Hi Richard!
> 
> The following changes since commit eec398119fc6911d99412c37af06a6bc27871f85:
> 
>    Merge tag 'for_upstream' of git://git.kernel.org/pub/scm/virt/kvm/mst/qemu into staging (2022-05-16 16:31:01 -0700)
> 
> are available in the Git repository at:
> 
>    https://gitlab.com/thuth/qemu.git tags/pull-request-2022-05-18
> 
> for you to fetch changes up to 83602083b4ada6ceb86bfb327e83556ebab120fc:
> 
>    capstone: Remove the capstone submodule (2022-05-18 08:54:22 +0200)
> 
> ----------------------------------------------------------------
> * Remove Ubuntu 18.04 containers (not supported anymore)
> * Improve the cleanup of the QEMU binary in case of failing qtests
> * Update the Windows support statement
> * Remove the capstone submodule (and rely on Capstone of the distros instead)

Fails centos-stream-8-x86_64 test,

Run-time dependency capstone found: NO (tried pkgconfig)
../meson.build:2539:2: ERROR: Dependency "capstone" not found, tried pkgconfig

https://gitlab.com/qemu-project/qemu/-/jobs/2473935684


r~



> 
> ----------------------------------------------------------------
> Daniel P. Berrangé (2):
>        tests/qtest: fix registration of ABRT handler for QEMU cleanup
>        tests/qtest: use prctl(PR_SET_PDEATHSIG) as fallback to kill QEMU
> 
> Thomas Huth (6):
>        gitlab-ci: Switch the container of the 'check-patch' & 'check-dco' jobs
>        Remove Ubuntu 18.04 container support from the repository
>        docs/about: Update the support statement for Windows
>        tests/vm: Add capstone to the NetBSD and OpenBSD VMs
>        capstone: Allow version 3.0.5 again
>        capstone: Remove the capstone submodule
> 
>   docs/about/build-platforms.rst                     |  14 +-
>   configure                                          |  23 +---
>   meson.build                                        | 115 +---------------
>   include/qemu/osdep.h                               |   2 +-
>   tests/qtest/libqtest.c                             |  21 ++-
>   .gitlab-ci.d/buildtest.yml                         |   3 +-
>   .gitlab-ci.d/containers.yml                        |   5 -
>   .../custom-runners/ubuntu-20.04-aarch32.yml        |   2 +-
>   .../custom-runners/ubuntu-20.04-aarch64.yml        |   2 +-
>   .gitlab-ci.d/static_checks.yml                     |  14 +-
>   .gitlab-ci.d/windows.yml                           |   5 +-
>   .gitmodules                                        |   3 -
>   capstone                                           |   1 -
>   meson_options.txt                                  |   3 +-
>   scripts/ci/setup/build-environment.yml             |  14 +-
>   scripts/meson-buildoptions.sh                      |   5 +-
>   tests/docker/dockerfiles/ubuntu1804.docker         | 144 ---------------------
>   tests/lcitool/refresh                              |   7 -
>   tests/vm/netbsd                                    |   3 +-
>   tests/vm/openbsd                                   |   3 +-
>   20 files changed, 59 insertions(+), 330 deletions(-)
>   delete mode 160000 capstone
>   delete mode 100644 tests/docker/dockerfiles/ubuntu1804.docker
> 



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PULL 0/8] Misc patches (Gitlab-CI, qtest, Capstone, ...)
  2022-05-18 16:12 ` [PULL 0/8] Misc patches (Gitlab-CI, qtest, Capstone, ...) Richard Henderson
@ 2022-05-19  6:29   ` Thomas Huth
  2022-05-19 11:29     ` Stefan Hajnoczi
                       ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: Thomas Huth @ 2022-05-19  6:29 UTC (permalink / raw)
  To: Richard Henderson, qemu-devel, Cleber Rosa, Stefan Hajnoczi

On 18/05/2022 18.12, Richard Henderson wrote:
> On 5/18/22 02:04, Thomas Huth wrote:
>>   Hi Richard!
>>
>> The following changes since commit eec398119fc6911d99412c37af06a6bc27871f85:
>>
>>    Merge tag 'for_upstream' of 
>> git://git.kernel.org/pub/scm/virt/kvm/mst/qemu into staging (2022-05-16 
>> 16:31:01 -0700)
>>
>> are available in the Git repository at:
>>
>>    https://gitlab.com/thuth/qemu.git tags/pull-request-2022-05-18
>>
>> for you to fetch changes up to 83602083b4ada6ceb86bfb327e83556ebab120fc:
>>
>>    capstone: Remove the capstone submodule (2022-05-18 08:54:22 +0200)
>>
>> ----------------------------------------------------------------
>> * Remove Ubuntu 18.04 containers (not supported anymore)
>> * Improve the cleanup of the QEMU binary in case of failing qtests
>> * Update the Windows support statement
>> * Remove the capstone submodule (and rely on Capstone of the distros instead)
> 
> Fails centos-stream-8-x86_64 test,
> 
> Run-time dependency capstone found: NO (tried pkgconfig)
> ../meson.build:2539:2: ERROR: Dependency "capstone" not found, tried pkgconfig
> 
> https://gitlab.com/qemu-project/qemu/-/jobs/2473935684

That's a custom runner ... who has access to that one? Cleber? Stefan? I 
didn't spot an entry for it on https://wiki.qemu.org/AdminContacts ...

Anyway, somebody needs to install "capstone-devel" on that machine - or we 
need to disable capstone in scripts/ci/org.centos/stream/8/x86_64/configure 
now if the machine can't be changed...

  Thomas



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PULL 0/8] Misc patches (Gitlab-CI, qtest, Capstone, ...)
  2022-05-19  6:29   ` Thomas Huth
@ 2022-05-19 11:29     ` Stefan Hajnoczi
  2022-05-19 11:43     ` Daniel P. Berrangé
  2022-05-19 11:55     ` Peter Maydell
  2 siblings, 0 replies; 16+ messages in thread
From: Stefan Hajnoczi @ 2022-05-19 11:29 UTC (permalink / raw)
  To: Thomas Huth; +Cc: Richard Henderson, qemu-devel, Cleber Rosa

[-- Attachment #1: Type: text/plain, Size: 1751 bytes --]

On Thu, May 19, 2022 at 08:29:09AM +0200, Thomas Huth wrote:
> On 18/05/2022 18.12, Richard Henderson wrote:
> > On 5/18/22 02:04, Thomas Huth wrote:
> > >   Hi Richard!
> > > 
> > > The following changes since commit eec398119fc6911d99412c37af06a6bc27871f85:
> > > 
> > >    Merge tag 'for_upstream' of
> > > git://git.kernel.org/pub/scm/virt/kvm/mst/qemu into staging
> > > (2022-05-16 16:31:01 -0700)
> > > 
> > > are available in the Git repository at:
> > > 
> > >    https://gitlab.com/thuth/qemu.git tags/pull-request-2022-05-18
> > > 
> > > for you to fetch changes up to 83602083b4ada6ceb86bfb327e83556ebab120fc:
> > > 
> > >    capstone: Remove the capstone submodule (2022-05-18 08:54:22 +0200)
> > > 
> > > ----------------------------------------------------------------
> > > * Remove Ubuntu 18.04 containers (not supported anymore)
> > > * Improve the cleanup of the QEMU binary in case of failing qtests
> > > * Update the Windows support statement
> > > * Remove the capstone submodule (and rely on Capstone of the distros instead)
> > 
> > Fails centos-stream-8-x86_64 test,
> > 
> > Run-time dependency capstone found: NO (tried pkgconfig)
> > ../meson.build:2539:2: ERROR: Dependency "capstone" not found, tried pkgconfig
> > 
> > https://gitlab.com/qemu-project/qemu/-/jobs/2473935684
> 
> That's a custom runner ... who has access to that one? Cleber? Stefan? I
> didn't spot an entry for it on https://wiki.qemu.org/AdminContacts ...
> 
> Anyway, somebody needs to install "capstone-devel" on that machine - or we
> need to disable capstone in scripts/ci/org.centos/stream/8/x86_64/configure
> now if the machine can't be changed...

I don't manage a custom CI runner for QEMU.

Stefan

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PULL 0/8] Misc patches (Gitlab-CI, qtest, Capstone, ...)
  2022-05-19  6:29   ` Thomas Huth
  2022-05-19 11:29     ` Stefan Hajnoczi
@ 2022-05-19 11:43     ` Daniel P. Berrangé
  2022-05-19 11:55     ` Peter Maydell
  2 siblings, 0 replies; 16+ messages in thread
From: Daniel P. Berrangé @ 2022-05-19 11:43 UTC (permalink / raw)
  To: Thomas Huth; +Cc: Richard Henderson, qemu-devel, Cleber Rosa, Stefan Hajnoczi

On Thu, May 19, 2022 at 08:29:09AM +0200, Thomas Huth wrote:
> On 18/05/2022 18.12, Richard Henderson wrote:
> > On 5/18/22 02:04, Thomas Huth wrote:
> > >   Hi Richard!
> > > 
> > > The following changes since commit eec398119fc6911d99412c37af06a6bc27871f85:
> > > 
> > >    Merge tag 'for_upstream' of
> > > git://git.kernel.org/pub/scm/virt/kvm/mst/qemu into staging
> > > (2022-05-16 16:31:01 -0700)
> > > 
> > > are available in the Git repository at:
> > > 
> > >    https://gitlab.com/thuth/qemu.git tags/pull-request-2022-05-18
> > > 
> > > for you to fetch changes up to 83602083b4ada6ceb86bfb327e83556ebab120fc:
> > > 
> > >    capstone: Remove the capstone submodule (2022-05-18 08:54:22 +0200)
> > > 
> > > ----------------------------------------------------------------
> > > * Remove Ubuntu 18.04 containers (not supported anymore)
> > > * Improve the cleanup of the QEMU binary in case of failing qtests
> > > * Update the Windows support statement
> > > * Remove the capstone submodule (and rely on Capstone of the distros instead)
> > 
> > Fails centos-stream-8-x86_64 test,
> > 
> > Run-time dependency capstone found: NO (tried pkgconfig)
> > ../meson.build:2539:2: ERROR: Dependency "capstone" not found, tried pkgconfig
> > 
> > https://gitlab.com/qemu-project/qemu/-/jobs/2473935684
> 
> That's a custom runner ... who has access to that one? Cleber? Stefan? I
> didn't spot an entry for it on https://wiki.qemu.org/AdminContacts ...
> 
> Anyway, somebody needs to install "capstone-devel" on that machine - or we
> need to disable capstone in scripts/ci/org.centos/stream/8/x86_64/configure
> now if the machine can't be changed...

This is pretty that when we add build deps we need someone to manually
inconvenient as a requirement :-(

It would be really nice if the host could run the jobs in containers,
so when the pull request contains container updates, it "just works"
in the same way as the standard gitlab runners.


With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PULL 0/8] Misc patches (Gitlab-CI, qtest, Capstone, ...)
  2022-05-19  6:29   ` Thomas Huth
  2022-05-19 11:29     ` Stefan Hajnoczi
  2022-05-19 11:43     ` Daniel P. Berrangé
@ 2022-05-19 11:55     ` Peter Maydell
  2022-05-20  6:22       ` Thomas Huth
  2 siblings, 1 reply; 16+ messages in thread
From: Peter Maydell @ 2022-05-19 11:55 UTC (permalink / raw)
  To: Thomas Huth
  Cc: Richard Henderson, qemu-devel, Cleber Rosa, Stefan Hajnoczi,
	Willian Rampazzo

On Thu, 19 May 2022 at 07:32, Thomas Huth <thuth@redhat.com> wrote:
>
> On 18/05/2022 18.12, Richard Henderson wrote:
> > On 5/18/22 02:04, Thomas Huth wrote:
> >>   Hi Richard!
> >>
> >> The following changes since commit eec398119fc6911d99412c37af06a6bc27871f85:
> >>
> >>    Merge tag 'for_upstream' of
> >> git://git.kernel.org/pub/scm/virt/kvm/mst/qemu into staging (2022-05-16
> >> 16:31:01 -0700)
> >>
> >> are available in the Git repository at:
> >>
> >>    https://gitlab.com/thuth/qemu.git tags/pull-request-2022-05-18
> >>
> >> for you to fetch changes up to 83602083b4ada6ceb86bfb327e83556ebab120fc:
> >>
> >>    capstone: Remove the capstone submodule (2022-05-18 08:54:22 +0200)
> >>
> >> ----------------------------------------------------------------
> >> * Remove Ubuntu 18.04 containers (not supported anymore)
> >> * Improve the cleanup of the QEMU binary in case of failing qtests
> >> * Update the Windows support statement
> >> * Remove the capstone submodule (and rely on Capstone of the distros instead)
> >
> > Fails centos-stream-8-x86_64 test,
> >
> > Run-time dependency capstone found: NO (tried pkgconfig)
> > ../meson.build:2539:2: ERROR: Dependency "capstone" not found, tried pkgconfig
> >
> > https://gitlab.com/qemu-project/qemu/-/jobs/2473935684
>
> That's a custom runner ... who has access to that one? Cleber? Stefan? I
> didn't spot an entry for it on https://wiki.qemu.org/AdminContacts ...

The 'Runner' string on the web page says:
"(Managed by Red Hat - willianr/clebergnu)"

> Anyway, somebody needs to install "capstone-devel" on that machine - or we
> need to disable capstone in scripts/ci/org.centos/stream/8/x86_64/configure
> now if the machine can't be changed...

-- PMM


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PULL 0/8] Misc patches (Gitlab-CI, qtest, Capstone, ...)
  2022-05-19 11:55     ` Peter Maydell
@ 2022-05-20  6:22       ` Thomas Huth
  2022-05-20 18:51         ` Richard Henderson
  0 siblings, 1 reply; 16+ messages in thread
From: Thomas Huth @ 2022-05-20  6:22 UTC (permalink / raw)
  To: Peter Maydell; +Cc: Richard Henderson, qemu-devel, Cleber Rosa, Stefan Hajnoczi

On 19/05/2022 13.55, Peter Maydell wrote:
> On Thu, 19 May 2022 at 07:32, Thomas Huth <thuth@redhat.com> wrote:
>>
>> On 18/05/2022 18.12, Richard Henderson wrote:
>>> On 5/18/22 02:04, Thomas Huth wrote:
>>>>    Hi Richard!
>>>>
>>>> The following changes since commit eec398119fc6911d99412c37af06a6bc27871f85:
>>>>
>>>>     Merge tag 'for_upstream' of
>>>> git://git.kernel.org/pub/scm/virt/kvm/mst/qemu into staging (2022-05-16
>>>> 16:31:01 -0700)
>>>>
>>>> are available in the Git repository at:
>>>>
>>>>     https://gitlab.com/thuth/qemu.git tags/pull-request-2022-05-18
>>>>
>>>> for you to fetch changes up to 83602083b4ada6ceb86bfb327e83556ebab120fc:
>>>>
>>>>     capstone: Remove the capstone submodule (2022-05-18 08:54:22 +0200)
>>>>
>>>> ----------------------------------------------------------------
>>>> * Remove Ubuntu 18.04 containers (not supported anymore)
>>>> * Improve the cleanup of the QEMU binary in case of failing qtests
>>>> * Update the Windows support statement
>>>> * Remove the capstone submodule (and rely on Capstone of the distros instead)
>>>
>>> Fails centos-stream-8-x86_64 test,
>>>
>>> Run-time dependency capstone found: NO (tried pkgconfig)
>>> ../meson.build:2539:2: ERROR: Dependency "capstone" not found, tried pkgconfig
>>>
>>> https://gitlab.com/qemu-project/qemu/-/jobs/2473935684
>>
>> That's a custom runner ... who has access to that one? Cleber? Stefan? I
>> didn't spot an entry for it on https://wiki.qemu.org/AdminContacts ...
> 
> The 'Runner' string on the web page says:
> "(Managed by Red Hat - willianr/clebergnu)"

Willian left, Cleber seems to be currently away from keyboard ... but I 
found someone who has access, so capstone-devel should hopefully be there now.

Richard, could you please re-try to merge the pull request?

  Thanks,
   Thomas



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PULL 0/8] Misc patches (Gitlab-CI, qtest, Capstone, ...)
  2022-05-20  6:22       ` Thomas Huth
@ 2022-05-20 18:51         ` Richard Henderson
  0 siblings, 0 replies; 16+ messages in thread
From: Richard Henderson @ 2022-05-20 18:51 UTC (permalink / raw)
  To: Thomas Huth, Peter Maydell; +Cc: qemu-devel, Cleber Rosa, Stefan Hajnoczi

On 5/19/22 23:22, Thomas Huth wrote:
> On 19/05/2022 13.55, Peter Maydell wrote:
>> On Thu, 19 May 2022 at 07:32, Thomas Huth <thuth@redhat.com> wrote:
>>>
>>> On 18/05/2022 18.12, Richard Henderson wrote:
>>>> On 5/18/22 02:04, Thomas Huth wrote:
>>>>>    Hi Richard!
>>>>>
>>>>> The following changes since commit eec398119fc6911d99412c37af06a6bc27871f85:
>>>>>
>>>>>     Merge tag 'for_upstream' of
>>>>> git://git.kernel.org/pub/scm/virt/kvm/mst/qemu into staging (2022-05-16
>>>>> 16:31:01 -0700)
>>>>>
>>>>> are available in the Git repository at:
>>>>>
>>>>>     https://gitlab.com/thuth/qemu.git tags/pull-request-2022-05-18
>>>>>
>>>>> for you to fetch changes up to 83602083b4ada6ceb86bfb327e83556ebab120fc:
>>>>>
>>>>>     capstone: Remove the capstone submodule (2022-05-18 08:54:22 +0200)
>>>>>
>>>>> ----------------------------------------------------------------
>>>>> * Remove Ubuntu 18.04 containers (not supported anymore)
>>>>> * Improve the cleanup of the QEMU binary in case of failing qtests
>>>>> * Update the Windows support statement
>>>>> * Remove the capstone submodule (and rely on Capstone of the distros instead)
>>>>
>>>> Fails centos-stream-8-x86_64 test,
>>>>
>>>> Run-time dependency capstone found: NO (tried pkgconfig)
>>>> ../meson.build:2539:2: ERROR: Dependency "capstone" not found, tried pkgconfig
>>>>
>>>> https://gitlab.com/qemu-project/qemu/-/jobs/2473935684
>>>
>>> That's a custom runner ... who has access to that one? Cleber? Stefan? I
>>> didn't spot an entry for it on https://wiki.qemu.org/AdminContacts ...
>>
>> The 'Runner' string on the web page says:
>> "(Managed by Red Hat - willianr/clebergnu)"
> 
> Willian left, Cleber seems to be currently away from keyboard ... but I found someone who 
> has access, so capstone-devel should hopefully be there now.
> 
> Richard, could you please re-try to merge the pull request?

Applied, thanks.  Please update https://wiki.qemu.org/ChangeLog/7.1 as appropriate.


r~




^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2022-05-20 18:52 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-18  9:04 [PULL 0/8] Misc patches (Gitlab-CI, qtest, Capstone, ...) Thomas Huth
2022-05-18  9:04 ` [PULL 1/8] gitlab-ci: Switch the container of the 'check-patch' & 'check-dco' jobs Thomas Huth
2022-05-18  9:04 ` [PULL 2/8] Remove Ubuntu 18.04 container support from the repository Thomas Huth
2022-05-18  9:04 ` [PULL 3/8] tests/qtest: fix registration of ABRT handler for QEMU cleanup Thomas Huth
2022-05-18  9:04 ` [PULL 4/8] tests/qtest: use prctl(PR_SET_PDEATHSIG) as fallback to kill QEMU Thomas Huth
2022-05-18  9:04 ` [PULL 5/8] docs/about: Update the support statement for Windows Thomas Huth
2022-05-18  9:04 ` [PULL 6/8] tests/vm: Add capstone to the NetBSD and OpenBSD VMs Thomas Huth
2022-05-18  9:04 ` [PULL 7/8] capstone: Allow version 3.0.5 again Thomas Huth
2022-05-18  9:04 ` [PULL 8/8] capstone: Remove the capstone submodule Thomas Huth
2022-05-18 16:12 ` [PULL 0/8] Misc patches (Gitlab-CI, qtest, Capstone, ...) Richard Henderson
2022-05-19  6:29   ` Thomas Huth
2022-05-19 11:29     ` Stefan Hajnoczi
2022-05-19 11:43     ` Daniel P. Berrangé
2022-05-19 11:55     ` Peter Maydell
2022-05-20  6:22       ` Thomas Huth
2022-05-20 18:51         ` Richard Henderson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.