qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 for-7.2 0/6] Drop libslirp submodule
@ 2022-08-24 15:11 Thomas Huth
  2022-08-24 15:11 ` [PATCH 1/6] tests/docker: Update the debian-all-test-cross container to Debian 11 Thomas Huth
                   ` (7 more replies)
  0 siblings, 8 replies; 10+ messages in thread
From: Thomas Huth @ 2022-08-24 15:11 UTC (permalink / raw)
  To: qemu-devel, Alex Bennée, Samuel Thibault
  Cc: Paolo Bonzini, Warner Losh, Philippe Mathieu-Daudé,
	Daniel P . Berrange

At the point in time we're going to release QEMU 7.2, all supported
host OS distributions will have a libslirp package available, so
there is no need anymore for us to ship the slirp submodule. Thus
let's clean up the related tests and finally remove the submodule now.

v2:
- Added patches to clean up and adapt the tests
- Rebased the removal patch to the latest version of the master branch

Thomas Huth (6):
  tests/docker: Update the debian-all-test-cross container to Debian 11
  tests/vm: Add libslirp to the VM tests
  tests/lcitool/libvirt-ci: Update the lcitool module to the latest
    version
  tests: Refresh dockerfiles and FreeBSD vars with lcitool
  tests/avocado: Do not run tests that require libslirp if it is not
    available
  Remove the slirp submodule (i.e. compile only with an external
    libslirp)

 configure                                     |  24 ----
 meson.build                                   | 121 ++++--------------
 .gitlab-ci.d/buildtest.yml                    |  20 ++-
 .gitlab-ci.d/cirrus/freebsd-12.vars           |   2 +-
 .gitlab-ci.d/cirrus/freebsd-13.vars           |   2 +-
 .gitlab-ci.d/container-cross.yml              |   1 -
 .gitmodules                                   |   3 -
 MAINTAINERS                                   |   1 -
 meson_options.txt                             |   5 +-
 scripts/archive-source.sh                     |   2 +-
 scripts/meson-buildoptions.sh                 |   4 +-
 slirp                                         |   1 -
 tests/avocado/avocado_qemu/__init__.py        |   7 +
 tests/avocado/info_usernet.py                 |   1 +
 tests/avocado/replay_linux.py                 |   1 +
 tests/docker/Makefile.include                 |   1 -
 .../dockerfiles/debian-all-test-cross.docker  |   9 +-
 tests/docker/dockerfiles/opensuse-leap.docker |   2 +-
 tests/docker/dockerfiles/ubuntu2004.docker    |   2 +-
 tests/lcitool/libvirt-ci                      |   2 +-
 tests/vm/freebsd                              |   3 +
 tests/vm/haiku.x86_64                         |   3 +-
 tests/vm/netbsd                               |   3 +
 23 files changed, 64 insertions(+), 156 deletions(-)
 delete mode 160000 slirp

-- 
2.31.1



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

* [PATCH 1/6] tests/docker: Update the debian-all-test-cross container to Debian 11
  2022-08-24 15:11 [PATCH v2 for-7.2 0/6] Drop libslirp submodule Thomas Huth
@ 2022-08-24 15:11 ` Thomas Huth
  2022-08-24 15:11 ` [PATCH 2/6] tests/vm: Add libslirp to the VM tests Thomas Huth
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Thomas Huth @ 2022-08-24 15:11 UTC (permalink / raw)
  To: qemu-devel, Alex Bennée, Samuel Thibault
  Cc: Paolo Bonzini, Warner Losh, Philippe Mathieu-Daudé,
	Daniel P . Berrange

The "build-tci" job in our CI is running the pxe-test that requires
slirp. However, we are going to remove the slirp submodule from QEMU,
so we need to run the test in a container that provides libslirp from
the OS distribution.
Currently, the debian-all-test-cross container that is used for the
"build-tci" job is based on Debian 10 - which is not supported by
QEMU anymore and does not have libslirp as a system library. Thus we
really need to update the container to Debian 11 now to keep the
"build-tci" job working.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 .gitlab-ci.d/container-cross.yml                      | 1 -
 tests/docker/Makefile.include                         | 1 -
 tests/docker/dockerfiles/debian-all-test-cross.docker | 9 ++++++++-
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/.gitlab-ci.d/container-cross.yml b/.gitlab-ci.d/container-cross.yml
index 505b267542..0971c6ac8b 100644
--- a/.gitlab-ci.d/container-cross.yml
+++ b/.gitlab-ci.d/container-cross.yml
@@ -15,7 +15,6 @@ amd64-debian-cross-container:
 amd64-debian-user-cross-container:
   extends: .container_job_template
   stage: containers
-  needs: ['amd64-debian10-container']
   variables:
     NAME: debian-all-test-cross
 
diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 9a45e8890b..e60588cdc9 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -139,7 +139,6 @@ docker-image-debian-nios2-cross: $(DOCKER_FILES_DIR)/debian-toolchain.docker \
 
 # Specialist build images, sometimes very limited tools
 docker-image-debian-tricore-cross: docker-image-debian10
-docker-image-debian-all-test-cross: docker-image-debian10
 docker-image-debian-loongarch-cross: docker-image-debian11
 docker-image-debian-microblaze-cross: docker-image-debian10
 docker-image-debian-nios2-cross: docker-image-debian10
diff --git a/tests/docker/dockerfiles/debian-all-test-cross.docker b/tests/docker/dockerfiles/debian-all-test-cross.docker
index dedcea58b4..afdf0261d3 100644
--- a/tests/docker/dockerfiles/debian-all-test-cross.docker
+++ b/tests/docker/dockerfiles/debian-all-test-cross.docker
@@ -6,16 +6,23 @@
 # basic compilers for as many targets as possible. We shall use this
 # to build and run linux-user tests on GitLab
 #
-FROM qemu/debian10
+FROM docker.io/library/debian:bullseye-slim
+
+# Duplicate deb line as deb-src
+RUN cat /etc/apt/sources.list | sed "s/^deb\ /deb-src /" >> /etc/apt/sources.list
 
 # What we need to build QEMU itself
 RUN apt update && \
+    DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
     DEBIAN_FRONTEND=noninteractive eatmydata \
     apt build-dep -yy qemu
 
 # Add the foreign architecture we want and install dependencies
 RUN DEBIAN_FRONTEND=noninteractive eatmydata \
         apt install -y --no-install-recommends \
+        clang \
+        git \
+        gdb-multiarch \
         gcc-aarch64-linux-gnu \
         libc6-dev-arm64-cross \
         gcc-alpha-linux-gnu \
-- 
2.31.1



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

* [PATCH 2/6] tests/vm: Add libslirp to the VM tests
  2022-08-24 15:11 [PATCH v2 for-7.2 0/6] Drop libslirp submodule Thomas Huth
  2022-08-24 15:11 ` [PATCH 1/6] tests/docker: Update the debian-all-test-cross container to Debian 11 Thomas Huth
@ 2022-08-24 15:11 ` Thomas Huth
  2022-08-24 15:11 ` [PATCH 3/6] tests/lcitool/libvirt-ci: Update the lcitool module to the latest version Thomas Huth
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Thomas Huth @ 2022-08-24 15:11 UTC (permalink / raw)
  To: qemu-devel, Alex Bennée, Samuel Thibault
  Cc: Paolo Bonzini, Warner Losh, Philippe Mathieu-Daudé,
	Daniel P . Berrange

We are going to remove the slirp submodule from the QEMU repository, so
we should make sure to install the distro's libslirp to get the same
test coverage as before in the VMs.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 tests/vm/freebsd      | 3 +++
 tests/vm/haiku.x86_64 | 3 ++-
 tests/vm/netbsd       | 3 +++
 3 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/tests/vm/freebsd b/tests/vm/freebsd
index cd1fabde52..3643fe325d 100755
--- a/tests/vm/freebsd
+++ b/tests/vm/freebsd
@@ -63,6 +63,9 @@ class FreeBSDVM(basevm.BaseVM):
 
         # libs: migration
         "zstd",
+
+        # libs: networking
+        "libslirp",
     ]
 
     BUILD_SCRIPT = """
diff --git a/tests/vm/haiku.x86_64 b/tests/vm/haiku.x86_64
index 936f7d2ae2..29668bc272 100755
--- a/tests/vm/haiku.x86_64
+++ b/tests/vm/haiku.x86_64
@@ -71,6 +71,7 @@ class HaikuVM(basevm.BaseVM):
         "devel:libpixman_1",
         "devel:libpng16",
         "devel:libsdl2_2.0",
+        "devel:libslirp",
         "devel:libsnappy",
         "devel:libssh2",
         "devel:libtasn1",
@@ -89,7 +90,7 @@ class HaikuVM(basevm.BaseVM):
         mkdir -p /usr/bin
         ln -s /boot/system/bin/env /usr/bin/env
         cd ../build
-        ../src/configure --disable-slirp {configure_opts};
+        ../src/configure {configure_opts};
         make --output-sync -j{jobs} {target} {verbose};
     """
 
diff --git a/tests/vm/netbsd b/tests/vm/netbsd
index aa883ec23c..da6773ff59 100755
--- a/tests/vm/netbsd
+++ b/tests/vm/netbsd
@@ -54,6 +54,9 @@ class NetBSDVM(basevm.BaseVM):
 
         # libs: migration
         "zstd",
+
+        # libs: networking
+        "libslirp",
     ]
 
     BUILD_SCRIPT = """
-- 
2.31.1



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

* [PATCH 3/6] tests/lcitool/libvirt-ci: Update the lcitool module to the latest version
  2022-08-24 15:11 [PATCH v2 for-7.2 0/6] Drop libslirp submodule Thomas Huth
  2022-08-24 15:11 ` [PATCH 1/6] tests/docker: Update the debian-all-test-cross container to Debian 11 Thomas Huth
  2022-08-24 15:11 ` [PATCH 2/6] tests/vm: Add libslirp to the VM tests Thomas Huth
@ 2022-08-24 15:11 ` Thomas Huth
  2022-08-24 15:11 ` [PATCH 4/6] tests: Refresh dockerfiles and FreeBSD vars with lcitool Thomas Huth
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Thomas Huth @ 2022-08-24 15:11 UTC (permalink / raw)
  To: qemu-devel, Alex Bennée, Samuel Thibault
  Cc: Paolo Bonzini, Warner Losh, Philippe Mathieu-Daudé,
	Daniel P . Berrange

The latest version of the lcitool now supports libslirp on FreeBSD, too.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 tests/lcitool/libvirt-ci | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/lcitool/libvirt-ci b/tests/lcitool/libvirt-ci
index 324355cf62..bc06b58be9 160000
--- a/tests/lcitool/libvirt-ci
+++ b/tests/lcitool/libvirt-ci
@@ -1 +1 @@
-Subproject commit 324355cf62e86fb551408575afb123bac989ac37
+Subproject commit bc06b58be9ff74e50e410cace1cd054e6f99a57a
-- 
2.31.1



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

* [PATCH 4/6] tests: Refresh dockerfiles and FreeBSD vars with lcitool
  2022-08-24 15:11 [PATCH v2 for-7.2 0/6] Drop libslirp submodule Thomas Huth
                   ` (2 preceding siblings ...)
  2022-08-24 15:11 ` [PATCH 3/6] tests/lcitool/libvirt-ci: Update the lcitool module to the latest version Thomas Huth
@ 2022-08-24 15:11 ` Thomas Huth
  2022-08-24 15:11 ` [PATCH 5/6] tests/avocado: Do not run tests that require libslirp if it is not available Thomas Huth
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Thomas Huth @ 2022-08-24 15:11 UTC (permalink / raw)
  To: qemu-devel, Alex Bennée, Samuel Thibault
  Cc: Paolo Bonzini, Warner Losh, Philippe Mathieu-Daudé,
	Daniel P . Berrange

Run tests/lcitool/refresh to get the latest updates (like libslirp
in the FreeBSD files) from lcitool.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 .gitlab-ci.d/cirrus/freebsd-12.vars           | 2 +-
 .gitlab-ci.d/cirrus/freebsd-13.vars           | 2 +-
 tests/docker/dockerfiles/opensuse-leap.docker | 2 +-
 tests/docker/dockerfiles/ubuntu2004.docker    | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/.gitlab-ci.d/cirrus/freebsd-12.vars b/.gitlab-ci.d/cirrus/freebsd-12.vars
index 8fa5a320e9..1a5959810f 100644
--- a/.gitlab-ci.d/cirrus/freebsd-12.vars
+++ b/.gitlab-ci.d/cirrus/freebsd-12.vars
@@ -11,6 +11,6 @@ MAKE='/usr/local/bin/gmake'
 NINJA='/usr/local/bin/ninja'
 PACKAGING_COMMAND='pkg'
 PIP3='/usr/local/bin/pip-3.8'
-PKGS='alsa-lib bash bzip2 ca_root_nss capstone4 ccache cdrkit-genisoimage cmocka ctags curl cyrus-sasl dbus diffutils dtc fusefs-libs3 gettext git glib gmake gnutls gsed gtk3 json-c libepoxy libffi libgcrypt libjpeg-turbo libnfs libspice-server libssh libtasn1 llvm lzo2 meson ncurses nettle ninja opencv perl5 pixman pkgconf png py39-numpy py39-pillow py39-pip py39-sphinx py39-sphinx_rtd_theme py39-yaml python3 rpm2cpio sdl2 sdl2_image snappy spice-protocol tesseract texinfo usbredir virglrenderer vte3 zstd'
+PKGS='alsa-lib bash bzip2 ca_root_nss capstone4 ccache cdrkit-genisoimage cmocka ctags curl cyrus-sasl dbus diffutils dtc fusefs-libs3 gettext git glib gmake gnutls gsed gtk3 json-c libepoxy libffi libgcrypt libjpeg-turbo libnfs libslirp libspice-server libssh libtasn1 llvm lzo2 meson ncurses nettle ninja opencv perl5 pixman pkgconf png py39-numpy py39-pillow py39-pip py39-sphinx py39-sphinx_rtd_theme py39-yaml python3 rpm2cpio sdl2 sdl2_image snappy spice-protocol tesseract texinfo usbredir virglrenderer vte3 zstd'
 PYPI_PKGS=''
 PYTHON='/usr/local/bin/python3'
diff --git a/.gitlab-ci.d/cirrus/freebsd-13.vars b/.gitlab-ci.d/cirrus/freebsd-13.vars
index 8ed7e33a77..5e5aafd7e5 100644
--- a/.gitlab-ci.d/cirrus/freebsd-13.vars
+++ b/.gitlab-ci.d/cirrus/freebsd-13.vars
@@ -11,6 +11,6 @@ MAKE='/usr/local/bin/gmake'
 NINJA='/usr/local/bin/ninja'
 PACKAGING_COMMAND='pkg'
 PIP3='/usr/local/bin/pip-3.8'
-PKGS='alsa-lib bash bzip2 ca_root_nss capstone4 ccache cdrkit-genisoimage cmocka ctags curl cyrus-sasl dbus diffutils dtc fusefs-libs3 gettext git glib gmake gnutls gsed gtk3 json-c libepoxy libffi libgcrypt libjpeg-turbo libnfs libspice-server libssh libtasn1 llvm lzo2 meson ncurses nettle ninja opencv perl5 pixman pkgconf png py39-numpy py39-pillow py39-pip py39-sphinx py39-sphinx_rtd_theme py39-yaml python3 rpm2cpio sdl2 sdl2_image snappy spice-protocol tesseract texinfo usbredir virglrenderer vte3 zstd'
+PKGS='alsa-lib bash bzip2 ca_root_nss capstone4 ccache cdrkit-genisoimage cmocka ctags curl cyrus-sasl dbus diffutils dtc fusefs-libs3 gettext git glib gmake gnutls gsed gtk3 json-c libepoxy libffi libgcrypt libjpeg-turbo libnfs libslirp libspice-server libssh libtasn1 llvm lzo2 meson ncurses nettle ninja opencv perl5 pixman pkgconf png py39-numpy py39-pillow py39-pip py39-sphinx py39-sphinx_rtd_theme py39-yaml python3 rpm2cpio sdl2 sdl2_image snappy spice-protocol tesseract texinfo usbredir virglrenderer vte3 zstd'
 PYPI_PKGS=''
 PYTHON='/usr/local/bin/python3'
diff --git a/tests/docker/dockerfiles/opensuse-leap.docker b/tests/docker/dockerfiles/opensuse-leap.docker
index 047a435ab5..193df305af 100644
--- a/tests/docker/dockerfiles/opensuse-leap.docker
+++ b/tests/docker/dockerfiles/opensuse-leap.docker
@@ -127,7 +127,7 @@ RUN zypper update -y && \
     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
+RUN /usr/bin/pip3 install meson==0.56.0
 
 ENV LANG "en_US.UTF-8"
 ENV MAKE "/usr/bin/make"
diff --git a/tests/docker/dockerfiles/ubuntu2004.docker b/tests/docker/dockerfiles/ubuntu2004.docker
index 99803b343b..e1f4ed7c80 100644
--- a/tests/docker/dockerfiles/ubuntu2004.docker
+++ b/tests/docker/dockerfiles/ubuntu2004.docker
@@ -137,7 +137,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
     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
+RUN /usr/bin/pip3 install meson==0.56.0
 
 ENV LANG "en_US.UTF-8"
 ENV MAKE "/usr/bin/make"
-- 
2.31.1



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

* [PATCH 5/6] tests/avocado: Do not run tests that require libslirp if it is not available
  2022-08-24 15:11 [PATCH v2 for-7.2 0/6] Drop libslirp submodule Thomas Huth
                   ` (3 preceding siblings ...)
  2022-08-24 15:11 ` [PATCH 4/6] tests: Refresh dockerfiles and FreeBSD vars with lcitool Thomas Huth
@ 2022-08-24 15:11 ` Thomas Huth
  2022-08-24 15:11 ` [PATCH v2 6/6] Remove the slirp submodule (i.e. compile only with an external libslirp) Thomas Huth
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Thomas Huth @ 2022-08-24 15:11 UTC (permalink / raw)
  To: qemu-devel, Alex Bennée, Samuel Thibault
  Cc: Paolo Bonzini, Warner Losh, Philippe Mathieu-Daudé,
	Daniel P . Berrange

Some avocado tests blindly assume that QEMU has been compiled with libslirp
enabled and fail badly if it is missing. Add a proper check to cancel the
tests in this case.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 tests/avocado/avocado_qemu/__init__.py | 7 +++++++
 tests/avocado/info_usernet.py          | 1 +
 tests/avocado/replay_linux.py          | 1 +
 3 files changed, 9 insertions(+)

diff --git a/tests/avocado/avocado_qemu/__init__.py b/tests/avocado/avocado_qemu/__init__.py
index ed4853c805..5ebf5c1766 100644
--- a/tests/avocado/avocado_qemu/__init__.py
+++ b/tests/avocado/avocado_qemu/__init__.py
@@ -295,6 +295,12 @@ def require_accelerator(self, accelerator):
             self.cancel("%s accelerator does not seem to be "
                         "available" % accelerator)
 
+    def require_netdev(self, netdevname):
+        netdevhelp = run_cmd([self.qemu_bin,
+                             '-M', 'none', '-netdev', 'help'])[0];
+        if netdevhelp.find('\n' + netdevname + '\n') < 0:
+            self.cancel('no support for user networking')
+
     def _new_vm(self, name, *args):
         self._sd = tempfile.TemporaryDirectory(prefix="avo_qemu_sock_")
         vm = QEMUMachine(self.qemu_bin, base_temp_dir=self.workdir,
@@ -547,6 +553,7 @@ def _set_distro(self):
 
     def setUp(self, ssh_pubkey=None, network_device_type='virtio-net'):
         super().setUp()
+        self.require_netdev('user')
         self._set_distro()
         self.vm.add_args('-smp', self.smp)
         self.vm.add_args('-m', self.memory)
diff --git a/tests/avocado/info_usernet.py b/tests/avocado/info_usernet.py
index dc01f74150..b862a47dba 100644
--- a/tests/avocado/info_usernet.py
+++ b/tests/avocado/info_usernet.py
@@ -16,6 +16,7 @@
 class InfoUsernet(QemuSystemTest):
 
     def test_hostfwd(self):
+        self.require_netdev('user')
         self.vm.add_args('-netdev', 'user,id=vnet,hostfwd=:127.0.0.1:0-:22')
         self.vm.launch()
         res = self.vm.command('human-monitor-command',
diff --git a/tests/avocado/replay_linux.py b/tests/avocado/replay_linux.py
index e1f9981a34..a76dd507fc 100644
--- a/tests/avocado/replay_linux.py
+++ b/tests/avocado/replay_linux.py
@@ -55,6 +55,7 @@ def vm_add_disk(self, vm, path, id, device):
             '%s,drive=disk%s-rr%s' % (device, id, bus_string))
 
     def launch_and_wait(self, record, args, shift):
+        self.require_netdev('user')
         vm = self.get_vm()
         vm.add_args('-smp', '1')
         vm.add_args('-m', '1024')
-- 
2.31.1



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

* [PATCH v2 6/6] Remove the slirp submodule (i.e. compile only with an external libslirp)
  2022-08-24 15:11 [PATCH v2 for-7.2 0/6] Drop libslirp submodule Thomas Huth
                   ` (4 preceding siblings ...)
  2022-08-24 15:11 ` [PATCH 5/6] tests/avocado: Do not run tests that require libslirp if it is not available Thomas Huth
@ 2022-08-24 15:11 ` Thomas Huth
  2022-08-24 19:46 ` [PATCH v2 for-7.2 0/6] Drop libslirp submodule Samuel Thibault
  2022-09-30 16:50 ` Christian Schoenebeck
  7 siblings, 0 replies; 10+ messages in thread
From: Thomas Huth @ 2022-08-24 15:11 UTC (permalink / raw)
  To: qemu-devel, Alex Bennée, Samuel Thibault
  Cc: Paolo Bonzini, Warner Losh, Philippe Mathieu-Daudé,
	Daniel P . Berrange

Since QEMU 7.1 we don't support Ubuntu 18.04 anymore, so the last big
important Linux distro that did not have a pre-packaged libslirp has
been dismissed. All other major distros seem to have a libslirp package
in their distribution already - according to repology.org:

          Fedora 35: 4.6.1
  CentOS 8 (RHEL-8): 4.4.0
          Debian 11: 4.4.0
 OpenSUSE Leap 15.3: 4.3.1
   Ubuntu LTS 20.04: 4.1.0
      FreeBSD Ports: 4.7.0
      NetBSD pkgsrc: 4.7.0
           Homebrew: 4.7.0
        MSYS2 mingw: 4.7.0

The only one that was still missing a libslirp package is OpenBSD - but
the next version (OpenBSD 7.2 which will be shipped in October) is going
to include a libslirp package. Since QEMU 7.2 will be published after
OpenBSD 7.2, we should be fine there, too.

So there is no real urgent need for keeping the slirp submodule in
the QEMU tree anymore. Thus let's drop the slirp submodule now and
rely on the libslirp packages from the distributions instead.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 configure                     |  24 -------
 meson.build                   | 121 +++++++---------------------------
 .gitlab-ci.d/buildtest.yml    |  20 +++---
 .gitmodules                   |   3 -
 MAINTAINERS                   |   1 -
 meson_options.txt             |   5 +-
 scripts/archive-source.sh     |   2 +-
 scripts/meson-buildoptions.sh |   4 +-
 slirp                         |   1 -
 9 files changed, 34 insertions(+), 147 deletions(-)
 delete mode 160000 slirp

diff --git a/configure b/configure
index 72ab03f11a..b8ac0f8e56 100755
--- a/configure
+++ b/configure
@@ -321,11 +321,6 @@ vfio_user_server="disabled"
 # are included in the automatically generated help message)
 
 # 1. Track which submodules are needed
-if test "$default_feature" = no ; then
-  slirp="disabled"
-else
-  slirp="auto"
-fi
 fdt="auto"
 
 # 2. Automatically enable/disable other options
@@ -829,14 +824,6 @@ for opt do
   ;;
   --disable-tsan) tsan="no"
   ;;
-  --disable-slirp) slirp="disabled"
-  ;;
-  --enable-slirp) slirp="enabled"
-  ;;
-  --enable-slirp=git) slirp="internal"
-  ;;
-  --enable-slirp=*) slirp="$optarg"
-  ;;
   --disable-tcg) tcg="disabled"
                  plugins="no"
   ;;
@@ -1828,16 +1815,6 @@ EOF
   fi
 fi
 
-##########################################
-# check for slirp
-
-case "$slirp" in
-  auto | enabled | internal)
-    # Simpler to always update submodule, even if not needed.
-    git_submodules="${git_submodules} slirp"
-    ;;
-esac
-
 ##########################################
 # functions to probe cross compilers
 
@@ -2746,7 +2723,6 @@ if test "$skip_meson" = no; then
   test "$fdt" != auto && meson_option_add "-Dfdt=$fdt"
   test -n "${LIB_FUZZING_ENGINE+xxx}" && meson_option_add "-Dfuzzing_engine=$LIB_FUZZING_ENGINE"
   test "$qemu_suffix" != qemu && meson_option_add "-Dqemu_suffix=$qemu_suffix"
-  test "$slirp" != auto && meson_option_add "-Dslirp=$slirp"
   test "$smbd" != '' && meson_option_add "-Dsmbd=$smbd"
   test "$tcg" != enabled && meson_option_add "-Dtcg=$tcg"
   test "$vfio_user_server" != auto && meson_option_add "-Dvfio_user_server=$vfio_user_server"
diff --git a/meson.build b/meson.build
index 20fddbd707..fa55145d1a 100644
--- a/meson.build
+++ b/meson.build
@@ -643,6 +643,26 @@ else
                          method: 'pkg-config', kwargs: static_kwargs)
 endif
 
+slirp = not_found
+if not get_option('slirp').auto() or have_system
+  slirp = dependency('slirp', required: get_option('slirp'),
+                     method: 'pkg-config', kwargs: static_kwargs)
+  # slirp < 4.7 is incompatible with CFI support in QEMU.  This is because
+  # it passes function pointers within libslirp as callbacks for timers.
+  # When using a system-wide shared libslirp, the type information for the
+  # callback is missing and the timer call produces a false positive with CFI.
+  # Do not use the "version" keyword argument to produce a better error.
+  # with control-flow integrity.
+  if get_option('cfi') and slirp.found() and slirp.version().version_compare('<4.7')
+    if get_option('slirp').enabled()
+      error('Control-Flow Integrity requires libslirp 4.7.')
+    else
+      warning('Cannot use libslirp since Control-Flow Integrity requires libslirp >= 4.7.')
+      slirp = not_found
+    endif
+  endif
+endif
+
 vde = not_found
 if not get_option('vde').auto() or have_system or have_tools
   vde = cc.find_library('vdeplug', has_headers: ['libvdeplug.h'],
@@ -2614,103 +2634,6 @@ if not get_option('capstone').auto() or have_system or have_user
   endif
 endif
 
-slirp = not_found
-slirp_opt = 'disabled'
-if have_system
-  slirp_opt = get_option('slirp')
-  if slirp_opt in ['enabled', 'auto', 'system']
-    have_internal = fs.exists(meson.current_source_dir() / 'slirp/meson.build')
-    slirp_dep_required = (slirp_opt == 'system' or
-                          slirp_opt == 'enabled' and not have_internal)
-    slirp = dependency('slirp', kwargs: static_kwargs,
-                       method: 'pkg-config', version: '>=4.1.0',
-                       required: slirp_dep_required)
-    # slirp <4.7 is incompatible with CFI support in QEMU.  This is because
-    # it passes function pointers within libslirp as callbacks for timers.
-    # When using a system-wide shared libslirp, the type information for the
-    # callback is missing and the timer call produces a false positive with CFI.
-    # Do not use the "version" keyword argument to produce a better error.
-    # with control-flow integrity.
-    if get_option('cfi') and slirp.found() and slirp.version().version_compare('<4.7')
-      if slirp_dep_required
-        error('Control-Flow Integrity requires libslirp 4.7.')
-      else
-        warning('Control-Flow Integrity requires libslirp 4.7, not using system-wide libslirp.')
-        slirp = not_found
-      endif
-    endif
-    if slirp.found()
-      slirp_opt = 'system'
-    elif have_internal
-      slirp_opt = 'internal'
-    else
-      slirp_opt = 'disabled'
-    endif
-  endif
-  if slirp_opt == 'internal'
-    slirp_deps = []
-    if targetos == 'windows'
-      slirp_deps = cc.find_library('iphlpapi')
-    elif targetos == 'darwin'
-      slirp_deps = cc.find_library('resolv')
-    endif
-    slirp_conf = configuration_data()
-    slirp_conf.set('SLIRP_MAJOR_VERSION', meson.project_version().split('.')[0])
-    slirp_conf.set('SLIRP_MINOR_VERSION', meson.project_version().split('.')[1])
-    slirp_conf.set('SLIRP_MICRO_VERSION', meson.project_version().split('.')[2])
-    slirp_conf.set_quoted('SLIRP_VERSION_STRING', meson.project_version())
-    slirp_cargs = ['-DG_LOG_DOMAIN="Slirp"']
-    slirp_files = [
-      'slirp/src/arp_table.c',
-      'slirp/src/bootp.c',
-      'slirp/src/cksum.c',
-      'slirp/src/dhcpv6.c',
-      'slirp/src/dnssearch.c',
-      'slirp/src/if.c',
-      'slirp/src/ip6_icmp.c',
-      'slirp/src/ip6_input.c',
-      'slirp/src/ip6_output.c',
-      'slirp/src/ip_icmp.c',
-      'slirp/src/ip_input.c',
-      'slirp/src/ip_output.c',
-      'slirp/src/mbuf.c',
-      'slirp/src/misc.c',
-      'slirp/src/ncsi.c',
-      'slirp/src/ndp_table.c',
-      'slirp/src/sbuf.c',
-      'slirp/src/slirp.c',
-      'slirp/src/socket.c',
-      'slirp/src/state.c',
-      'slirp/src/stream.c',
-      'slirp/src/tcp_input.c',
-      'slirp/src/tcp_output.c',
-      'slirp/src/tcp_subr.c',
-      'slirp/src/tcp_timer.c',
-      'slirp/src/tftp.c',
-      'slirp/src/udp.c',
-      'slirp/src/udp6.c',
-      'slirp/src/util.c',
-      'slirp/src/version.c',
-      'slirp/src/vmstate.c',
-    ]
-
-    configure_file(
-      input : 'slirp/src/libslirp-version.h.in',
-      output : 'libslirp-version.h',
-      configuration: slirp_conf)
-
-    slirp_inc = include_directories('slirp', 'slirp/src')
-    libslirp = static_library('slirp',
-                              build_by_default: false,
-                              sources: slirp_files,
-                              c_args: slirp_cargs,
-                              include_directories: slirp_inc)
-    slirp = declare_dependency(link_with: libslirp,
-                               dependencies: slirp_deps,
-                               include_directories: slirp_inc)
-  endif
-endif
-
 libvfio_user_dep = not_found
 if have_system and vfio_user_server_allowed
   have_internal = fs.exists(meson.current_source_dir() / 'subprojects/libvfio-user/meson.build')
@@ -3717,7 +3640,7 @@ summary_info += {'genisoimage':       config_host['GENISOIMAGE']}
 if targetos == 'windows' and have_ga
   summary_info += {'wixl':            wixl}
 endif
-if slirp_opt != 'disabled' and have_system
+if slirp.found() and have_system
   summary_info += {'smbd':            have_slirp_smbd ? smbd_path : false}
 endif
 summary(summary_info, bool_yn: true, section: 'Host binaries')
@@ -3911,7 +3834,7 @@ summary_info += {'SDL image support': sdl_image}
 summary_info += {'GTK support':       gtk}
 summary_info += {'pixman':            pixman}
 summary_info += {'VTE support':       vte}
-summary_info += {'slirp support':     slirp_opt == 'internal' ? slirp_opt : slirp}
+summary_info += {'slirp support':     slirp}
 summary_info += {'libtasn1':          tasn1}
 summary_info += {'PAM':               pam}
 summary_info += {'iconv support':     iconv}
diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
index 1931b77b49..6c05c46397 100644
--- a/.gitlab-ci.d/buildtest.yml
+++ b/.gitlab-ci.d/buildtest.yml
@@ -41,8 +41,7 @@ build-system-ubuntu:
     job: amd64-ubuntu2004-container
   variables:
     IMAGE: ubuntu2004
-    CONFIGURE_ARGS: --enable-docs --enable-fdt=system --enable-slirp=system
-        --enable-capstone
+    CONFIGURE_ARGS: --enable-docs --enable-fdt=system --enable-capstone
     TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu
       microblazeel-softmmu mips64el-softmmu
     MAKE_CHECK_ARGS: check-build
@@ -120,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
+             --enable-fdt=system --enable-slirp --enable-capstone
     TARGETS: tricore-softmmu microblaze-softmmu mips-softmmu
       xtensa-softmmu m68k-softmmu riscv32-softmmu ppc-softmmu sparc64-softmmu
     MAKE_CHECK_ARGS: check-build
@@ -339,10 +338,8 @@ clang-user:
 # On gitlab runners, default value sometimes end up calling 2 lds concurrently and
 # triggers an Out-Of-Memory error
 #
-# Since slirp callbacks are used in QEMU Timers, slirp needs to be compiled together
-# with QEMU and linked as a static library to avoid false positives in CFI checks.
-# This can be accomplished by using -enable-slirp=git, which avoids the use of
-# a system-wide version of the library
+# Since slirp callbacks are used in QEMU Timers, we cannot use libslirp with
+# CFI builds, and thus have to disable it here.
 #
 # Split in three sets of build/check/avocado to limit the execution time of each
 # job
@@ -355,7 +352,7 @@ build-cfi-aarch64:
     AR: llvm-ar
     IMAGE: fedora
     CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug
-      --enable-safe-stack --enable-slirp=git
+      --enable-safe-stack --disable-slirp
     TARGETS: aarch64-softmmu
     MAKE_CHECK_ARGS: check-build
     # FIXME: This job is often failing, likely due to out-of-memory problems in
@@ -395,7 +392,7 @@ build-cfi-ppc64-s390x:
     AR: llvm-ar
     IMAGE: fedora
     CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug
-      --enable-safe-stack --enable-slirp=git
+      --enable-safe-stack --disable-slirp
     TARGETS: ppc64-softmmu s390x-softmmu
     MAKE_CHECK_ARGS: check-build
     # FIXME: This job is often failing, likely due to out-of-memory problems in
@@ -435,7 +432,7 @@ build-cfi-x86_64:
     AR: llvm-ar
     IMAGE: fedora
     CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug
-      --enable-safe-stack --enable-slirp=git
+      --enable-safe-stack --disable-slirp
     TARGETS: x86_64-softmmu
     MAKE_CHECK_ARGS: check-build
   timeout: 70m
@@ -469,7 +466,7 @@ tsan-build:
   variables:
     IMAGE: ubuntu2004
     CONFIGURE_ARGS: --enable-tsan --cc=clang-10 --cxx=clang++-10
-          --enable-trace-backends=ust --enable-fdt=system --enable-slirp=system
+          --enable-trace-backends=ust --enable-fdt=system --disable-slirp
     TARGETS: x86_64-softmmu ppc64-softmmu riscv64-softmmu x86_64-linux-user
     MAKE_CHECK_ARGS: bench V=1
 
@@ -571,7 +568,6 @@ build-without-default-features:
       --disable-capstone
       --disable-pie
       --disable-qom-cast-debug
-      --disable-slirp
       --disable-strip
     TARGETS: avr-softmmu i386-softmmu mips64-softmmu s390x-softmmu sh4-softmmu
       sparc64-softmmu hexagon-linux-user i386-linux-user s390x-linux-user
diff --git a/.gitmodules b/.gitmodules
index aedd9a03d4..24cffa87d4 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -46,9 +46,6 @@
 [submodule "roms/edk2"]
 	path = roms/edk2
 	url = https://gitlab.com/qemu-project/edk2.git
-[submodule "slirp"]
-	path = slirp
-	url = https://gitlab.com/qemu-project/libslirp.git
 [submodule "roms/opensbi"]
 	path = roms/opensbi
 	url = 	https://gitlab.com/qemu-project/opensbi.git
diff --git a/MAINTAINERS b/MAINTAINERS
index 5ce4227ff6..5e2c0d649e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2978,7 +2978,6 @@ F: include/hw/registerfields.h
 SLIRP
 M: Samuel Thibault <samuel.thibault@ens-lyon.org>
 S: Maintained
-F: slirp/
 F: net/slirp.c
 F: include/net/slirp.h
 T: git https://people.debian.org/~sthibault/qemu.git slirp
diff --git a/meson_options.txt b/meson_options.txt
index e58e158396..53fca1c554 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -199,6 +199,8 @@ option('l2tpv3', type : 'feature', value : 'auto',
        description: 'l2tpv3 network backend support')
 option('netmap', type : 'feature', value : 'auto',
        description: 'netmap network backend support')
+option('slirp', type: 'feature', value: 'auto',
+       description: 'libslirp user mode network backend support')
 option('vde', type : 'feature', value : 'auto',
        description: 'vde network backend support')
 option('vmnet', type : 'feature', value : 'auto',
@@ -264,9 +266,6 @@ option('vduse_blk_export', type: 'feature', value: 'auto',
 
 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'],
-       description: 'Whether and how to find the slirp library')
 option('fdt', type: 'combo', value: 'auto',
        choices: ['disabled', 'enabled', 'auto', 'system', 'internal'],
        description: 'Whether and how to find the libfdt library')
diff --git a/scripts/archive-source.sh b/scripts/archive-source.sh
index c6169db69f..23e042dacd 100755
--- a/scripts/archive-source.sh
+++ b/scripts/archive-source.sh
@@ -26,7 +26,7 @@ sub_file="${sub_tdir}/submodule.tar"
 # independent of what the developer currently has initialized
 # in their checkout, because the build environment is completely
 # different to the host OS.
-submodules="dtc slirp meson ui/keycodemapdb"
+submodules="dtc meson ui/keycodemapdb"
 submodules="$submodules tests/fp/berkeley-softfloat-3 tests/fp/berkeley-testfloat-3"
 sub_deinit=""
 
diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh
index 359b04e0e6..c68ba32ce2 100644
--- a/scripts/meson-buildoptions.sh
+++ b/scripts/meson-buildoptions.sh
@@ -35,8 +35,6 @@ meson_options_help() {
   printf "%s\n" '  --enable-qom-cast-debug  cast debugging support'
   printf "%s\n" '  --enable-rng-none        dummy RNG, avoid using /dev/(u)random and'
   printf "%s\n" '                           getrandom()'
-  printf "%s\n" '  --enable-slirp[=CHOICE]  Whether and how to find the slirp library'
-  printf "%s\n" '                           (choices: auto/disabled/enabled/internal/system)'
   printf "%s\n" '  --enable-strip           Strip targets on install'
   printf "%s\n" '  --enable-tcg-interpreter TCG with bytecode interpreter (slow)'
   printf "%s\n" '  --enable-trace-backends=CHOICES'
@@ -141,6 +139,7 @@ meson_options_help() {
   printf "%s\n" '  sdl-image       SDL Image support for icons'
   printf "%s\n" '  seccomp         seccomp support'
   printf "%s\n" '  selinux         SELinux support in qemu-nbd'
+  printf "%s\n" '  slirp           libslirp user mode network backend support'
   printf "%s\n" '  slirp-smbd      use smbd (at path --smbd=*) in slirp networking'
   printf "%s\n" '  smartcard       CA smartcard emulation support'
   printf "%s\n" '  snappy          snappy compression support'
@@ -386,7 +385,6 @@ _meson_option_parse() {
     --disable-selinux) printf "%s" -Dselinux=disabled ;;
     --enable-slirp) printf "%s" -Dslirp=enabled ;;
     --disable-slirp) printf "%s" -Dslirp=disabled ;;
-    --enable-slirp=*) quote_sh "-Dslirp=$2" ;;
     --enable-slirp-smbd) printf "%s" -Dslirp_smbd=enabled ;;
     --disable-slirp-smbd) printf "%s" -Dslirp_smbd=disabled ;;
     --enable-smartcard) printf "%s" -Dsmartcard=enabled ;;
diff --git a/slirp b/slirp
deleted file mode 160000
index 9d59bb775d..0000000000
--- a/slirp
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 9d59bb775d6294c8b447a88512f7bb43f12a25a8
-- 
2.31.1



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

* Re: [PATCH v2 for-7.2 0/6] Drop libslirp submodule
  2022-08-24 15:11 [PATCH v2 for-7.2 0/6] Drop libslirp submodule Thomas Huth
                   ` (5 preceding siblings ...)
  2022-08-24 15:11 ` [PATCH v2 6/6] Remove the slirp submodule (i.e. compile only with an external libslirp) Thomas Huth
@ 2022-08-24 19:46 ` Samuel Thibault
  2022-09-30 16:50 ` Christian Schoenebeck
  7 siblings, 0 replies; 10+ messages in thread
From: Samuel Thibault @ 2022-08-24 19:46 UTC (permalink / raw)
  To: Thomas Huth
  Cc: qemu-devel, Alex Bennée, Paolo Bonzini, Warner Losh,
	Philippe Mathieu-Daudé, Daniel P . Berrange

Thomas Huth, le mer. 24 août 2022 17:11:16 +0200, a ecrit:
> At the point in time we're going to release QEMU 7.2, all supported
> host OS distributions will have a libslirp package available, so
> there is no need anymore for us to ship the slirp submodule. Thus
> let's clean up the related tests and finally remove the submodule now.

Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

Thanks!

> v2:
> - Added patches to clean up and adapt the tests
> - Rebased the removal patch to the latest version of the master branch
> 
> Thomas Huth (6):
>   tests/docker: Update the debian-all-test-cross container to Debian 11
>   tests/vm: Add libslirp to the VM tests
>   tests/lcitool/libvirt-ci: Update the lcitool module to the latest
>     version
>   tests: Refresh dockerfiles and FreeBSD vars with lcitool
>   tests/avocado: Do not run tests that require libslirp if it is not
>     available
>   Remove the slirp submodule (i.e. compile only with an external
>     libslirp)
> 
>  configure                                     |  24 ----
>  meson.build                                   | 121 ++++--------------
>  .gitlab-ci.d/buildtest.yml                    |  20 ++-
>  .gitlab-ci.d/cirrus/freebsd-12.vars           |   2 +-
>  .gitlab-ci.d/cirrus/freebsd-13.vars           |   2 +-
>  .gitlab-ci.d/container-cross.yml              |   1 -
>  .gitmodules                                   |   3 -
>  MAINTAINERS                                   |   1 -
>  meson_options.txt                             |   5 +-
>  scripts/archive-source.sh                     |   2 +-
>  scripts/meson-buildoptions.sh                 |   4 +-
>  slirp                                         |   1 -
>  tests/avocado/avocado_qemu/__init__.py        |   7 +
>  tests/avocado/info_usernet.py                 |   1 +
>  tests/avocado/replay_linux.py                 |   1 +
>  tests/docker/Makefile.include                 |   1 -
>  .../dockerfiles/debian-all-test-cross.docker  |   9 +-
>  tests/docker/dockerfiles/opensuse-leap.docker |   2 +-
>  tests/docker/dockerfiles/ubuntu2004.docker    |   2 +-
>  tests/lcitool/libvirt-ci                      |   2 +-
>  tests/vm/freebsd                              |   3 +
>  tests/vm/haiku.x86_64                         |   3 +-
>  tests/vm/netbsd                               |   3 +
>  23 files changed, 64 insertions(+), 156 deletions(-)
>  delete mode 160000 slirp
> 
> -- 
> 2.31.1
> 

-- 
Samuel
---
Pour une évaluation indépendante, transparente et rigoureuse !
Je soutiens la Commission d'Évaluation de l'Inria.


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

* Re: [PATCH v2 for-7.2 0/6] Drop libslirp submodule
  2022-08-24 15:11 [PATCH v2 for-7.2 0/6] Drop libslirp submodule Thomas Huth
                   ` (6 preceding siblings ...)
  2022-08-24 19:46 ` [PATCH v2 for-7.2 0/6] Drop libslirp submodule Samuel Thibault
@ 2022-09-30 16:50 ` Christian Schoenebeck
  2022-09-30 17:27   ` Thomas Huth
  7 siblings, 1 reply; 10+ messages in thread
From: Christian Schoenebeck @ 2022-09-30 16:50 UTC (permalink / raw)
  To: qemu-devel, Alex Bennée, Samuel Thibault
  Cc: Paolo Bonzini, Warner Losh, Philippe Mathieu-Daudé,
	Daniel P . Berrange, Thomas Huth

On Mittwoch, 24. August 2022 17:11:16 CEST Thomas Huth wrote:
> At the point in time we're going to release QEMU 7.2, all supported
> host OS distributions will have a libslirp package available, so
> there is no need anymore for us to ship the slirp submodule. Thus
> let's clean up the related tests and finally remove the submodule now.
> 
> v2:
> - Added patches to clean up and adapt the tests
> - Rebased the removal patch to the latest version of the master branch
> 
> Thomas Huth (6):
>   tests/docker: Update the debian-all-test-cross container to Debian 11
>   tests/vm: Add libslirp to the VM tests
>   tests/lcitool/libvirt-ci: Update the lcitool module to the latest
>     version
>   tests: Refresh dockerfiles and FreeBSD vars with lcitool
>   tests/avocado: Do not run tests that require libslirp if it is not
>     available
>   Remove the slirp submodule (i.e. compile only with an external
>     libslirp)

And I was wondering (bisecting) why network silently stopped working here.

While I understand the motivation for this change, it's probably not a user 
friendly situation to just silently decease functionality. As slirp was the 
default networking (i.e. not just some exotic QEMU feature), wouldn't it make 
sense then to make missing libslirp a build-time error by default?

Best regards,
Christian Schoenebeck




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

* Re: [PATCH v2 for-7.2 0/6] Drop libslirp submodule
  2022-09-30 16:50 ` Christian Schoenebeck
@ 2022-09-30 17:27   ` Thomas Huth
  0 siblings, 0 replies; 10+ messages in thread
From: Thomas Huth @ 2022-09-30 17:27 UTC (permalink / raw)
  To: Christian Schoenebeck, qemu-devel, Alex Bennée,
	Samuel Thibault
  Cc: Paolo Bonzini, Warner Losh, Philippe Mathieu-Daudé,
	Daniel P . Berrange

On 30/09/2022 18.50, Christian Schoenebeck wrote:
> On Mittwoch, 24. August 2022 17:11:16 CEST Thomas Huth wrote:
>> At the point in time we're going to release QEMU 7.2, all supported
>> host OS distributions will have a libslirp package available, so
>> there is no need anymore for us to ship the slirp submodule. Thus
>> let's clean up the related tests and finally remove the submodule now.
>>
>> v2:
>> - Added patches to clean up and adapt the tests
>> - Rebased the removal patch to the latest version of the master branch
>>
>> Thomas Huth (6):
>>    tests/docker: Update the debian-all-test-cross container to Debian 11
>>    tests/vm: Add libslirp to the VM tests
>>    tests/lcitool/libvirt-ci: Update the lcitool module to the latest
>>      version
>>    tests: Refresh dockerfiles and FreeBSD vars with lcitool
>>    tests/avocado: Do not run tests that require libslirp if it is not
>>      available
>>    Remove the slirp submodule (i.e. compile only with an external
>>      libslirp)
> 
> And I was wondering (bisecting) why network silently stopped working here.
> 
> While I understand the motivation for this change, it's probably not a user
> friendly situation to just silently decease functionality. As slirp was the
> default networking (i.e. not just some exotic QEMU feature), wouldn't it make
> sense then to make missing libslirp a build-time error by default?

See discussion here:

 
https://lore.kernel.org/qemu-devel/a25c238b-dabd-bf20-9aee-7cda4e422536@redhat.com/

and patch here:

 
https://lore.kernel.org/qemu-devel/20220929163237.1417215-1-marcandre.lureau@redhat.com/

  HTH,
   Thomas



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

end of thread, other threads:[~2022-09-30 17:28 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-08-24 15:11 [PATCH v2 for-7.2 0/6] Drop libslirp submodule Thomas Huth
2022-08-24 15:11 ` [PATCH 1/6] tests/docker: Update the debian-all-test-cross container to Debian 11 Thomas Huth
2022-08-24 15:11 ` [PATCH 2/6] tests/vm: Add libslirp to the VM tests Thomas Huth
2022-08-24 15:11 ` [PATCH 3/6] tests/lcitool/libvirt-ci: Update the lcitool module to the latest version Thomas Huth
2022-08-24 15:11 ` [PATCH 4/6] tests: Refresh dockerfiles and FreeBSD vars with lcitool Thomas Huth
2022-08-24 15:11 ` [PATCH 5/6] tests/avocado: Do not run tests that require libslirp if it is not available Thomas Huth
2022-08-24 15:11 ` [PATCH v2 6/6] Remove the slirp submodule (i.e. compile only with an external libslirp) Thomas Huth
2022-08-24 19:46 ` [PATCH v2 for-7.2 0/6] Drop libslirp submodule Samuel Thibault
2022-09-30 16:50 ` Christian Schoenebeck
2022-09-30 17:27   ` Thomas Huth

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).