Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2195277/?format=api
{ "id": 2195277, "url": "http://patchwork.ozlabs.org/api/patches/2195277/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260210163556.713841-2-berrange@redhat.com/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api", "name": "QEMU Development", "link_name": "qemu-devel", "list_id": "qemu-devel.nongnu.org", "list_email": "qemu-devel@nongnu.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260210163556.713841-2-berrange@redhat.com>", "list_archive_url": null, "date": "2026-02-10T16:35:53", "name": "[v2,1/4] tests/docker: improve handling of docker probes", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "6365026818aa4e5b204c867375b1e3b0d5779cde", "submitter": { "id": 2694, "url": "http://patchwork.ozlabs.org/api/people/2694/?format=api", "name": "Daniel P. Berrangé", "email": "berrange@redhat.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260210163556.713841-2-berrange@redhat.com/mbox/", "series": [ { "id": 491707, "url": "http://patchwork.ozlabs.org/api/series/491707/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=491707", "date": "2026-02-10T16:35:52", "name": "tests/docker: improve detection of docker/podman", "version": 2, "mbox": "http://patchwork.ozlabs.org/series/491707/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2195277/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2195277/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=YBR4AdL7;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4f9RzG68tMz1xwG\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 11 Feb 2026 03:36:42 +1100 (AEDT)", "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1vpqii-0006Wb-29; Tue, 10 Feb 2026 11:36:12 -0500", "from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <berrange@redhat.com>)\n id 1vpqig-0006TO-SY\n for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:36:10 -0500", "from us-smtp-delivery-124.mimecast.com ([170.10.129.124])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <berrange@redhat.com>)\n id 1vpqif-00015Q-1A\n for qemu-devel@nongnu.org; Tue, 10 Feb 2026 11:36:10 -0500", "from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com\n (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by\n relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n cipher=TLS_AES_256_GCM_SHA384) id us-mta-37-4WwOu9D6MY-neED8eZziLg-1; Tue,\n 10 Feb 2026 11:36:05 -0500", "from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com\n (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS\n id 19498195608E; Tue, 10 Feb 2026 16:36:04 +0000 (UTC)", "from toolbx.redhat.com (unknown [10.44.34.137])\n by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP\n id F26F419560A3; Tue, 10 Feb 2026 16:36:01 +0000 (UTC)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1770741368;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=ZwRGMPoXt0M+Z2Yn/TMbbpD0yk9PsLOMxA01R6Irs90=;\n b=YBR4AdL78nbEVPreQrr1vT3aDLqprSVhr1b/KfmLgqViSX9i9n5jsnXpG6zfYteUVfdsut\n ltGgAboYWvd7IHfLDK0+SHH108tVja8Wcu5ibAvNe4aAaVq0LOhjrG7Qdm3yi6vfx0jdgO\n Pmu1YpXTHrVWP9gCpOzRpNlq8MOVp4Y=", "X-MC-Unique": "4WwOu9D6MY-neED8eZziLg-1", "X-Mimecast-MFC-AGG-ID": "4WwOu9D6MY-neED8eZziLg_1770741364", "From": "=?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= <berrange@redhat.com>", "To": "qemu-devel@nongnu.org", "Cc": "Paolo Bonzini <pbonzini@redhat.com>, Thomas Huth <thuth@redhat.com>,\n\t=?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>, =?utf-8?q?Alex?=\n\t=?utf-8?q?_Benn=C3=A9e?= <alex.bennee@linaro.org>, =?utf-8?q?Daniel_P=2E_Be?=\n\t=?utf-8?q?rrang=C3=A9?= <berrange@redhat.com>", "Subject": "[PATCH v2 1/4] tests/docker: improve handling of docker probes", "Date": "Tue, 10 Feb 2026 16:35:53 +0000", "Message-ID": "<20260210163556.713841-2-berrange@redhat.com>", "In-Reply-To": "<20260210163556.713841-1-berrange@redhat.com>", "References": "<20260210163556.713841-1-berrange@redhat.com>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "Content-Transfer-Encoding": "8bit", "X-Scanned-By": "MIMEDefang 3.0 on 10.30.177.12", "Received-SPF": "pass client-ip=170.10.129.124;\n envelope-from=berrange@redhat.com;\n helo=us-smtp-delivery-124.mimecast.com", "X-Spam_score_int": "-20", "X-Spam_score": "-2.1", "X-Spam_bar": "--", "X-Spam_report": "(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001,\n DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001,\n RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001,\n SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no", "X-Spam_action": "no action", "X-BeenThere": "qemu-devel@nongnu.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "qemu development <qemu-devel.nongnu.org>", "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>", "List-Archive": "<https://lists.nongnu.org/archive/html/qemu-devel>", "List-Post": "<mailto:qemu-devel@nongnu.org>", "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>", "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org" }, "content": "The docker.py script has logic to guess the container command and\ndetects one of\n\n * docker\n * sudo -n docker\n * podman\n\nbut the \"docker.py probe\" command then throws away the detected argv\nand prints a slightly different argv based solely on the detected\nargv[0]. The result is that 'probe' will print\n\n * docker\n * sudo docker\n * podman\n\nwhich means that if sudo was detected & the result of 'probe' were\nused directly, it would end up prompting for password interaction\nevery time.\n\nThe 'configure' script, however, runs 'probe' and then throws away\nthe printed argv again, reporting only 'podman' or 'docker', which\nis used to set the $(RUNC) variable for tests/docker/Makefile.include\nwhich is in turn used to pass --engine to docker.py. So the docker.py\ncommand will re-detect the need for 'sudo -n' and use it correctly\n\nThe problem with this is that some commands in Makefile.include do\nnot call docker.py at all, they invoke $(RUNC) directly. Since\nconfigure threw away the 'sudo' command prefix Makefile.in won't\nbe adding either 'sudo' or 'sudo -n', it'll just run plain 'docker'\nwhich is wrong.\n\nThis commit sanitizes things so that the 'docker.py probe' prints\nout the exact detected ARGV, and configure fully preserves this\nARGV when setting $(RUNC). Since \"$(RUNC)\" is no longer just a bare\nengine name, however, we must now also set the $(CONTAINER_ENGINE)\nvariable for Makefile.include so it can pass something sane to\nthe --engine arg for docker.py\n\nReviewed-by: Thomas Huth <thuth@redhat.com>\nSigned-off-by: Daniel P. Berrangé <berrange@redhat.com>\n---\n configure | 19 +++++++------------\n tests/docker/Makefile.include | 5 +++--\n tests/docker/docker.py | 7 +------\n 3 files changed, 11 insertions(+), 20 deletions(-)", "diff": "diff --git a/configure b/configure\nindex 4b61fd3bbf..ecb446d5f6 100755\n--- a/configure\n+++ b/configure\n@@ -1311,17 +1311,11 @@ fi\n ##########################################\n # functions to probe cross compilers\n \n-container=\"no\"\n-runc=\"\"\n+runc=\"no\"\n if test $use_containers = \"yes\" && (has \"docker\" || has \"podman\"); then\n- case $($python \"$source_path\"/tests/docker/docker.py --engine \"$container_engine\" probe) in\n- *docker) container=docker ;;\n- podman) container=podman ;;\n- no) container=no ;;\n- esac\n- if test \"$container\" != \"no\"; then\n- docker_py=\"$python $source_path/tests/docker/docker.py --engine $container\"\n- runc=$container\n+ runc=$($python \"$source_path\"/tests/docker/docker.py --engine \"$container_engine\" probe)\n+ if test \"$runc\" != \"no\"; then\n+ docker_py=\"$python $source_path/tests/docker/docker.py --engine $container_engine\"\n fi\n fi\n \n@@ -1441,7 +1435,7 @@ probe_target_compiler() {\n esac\n \n for host in $container_hosts; do\n- test \"$container\" != no || continue\n+ test \"$runc\" != no || continue\n test \"$host\" = \"$cpu\" || continue\n case $target_arch in\n # debian-all-test-cross architectures\n@@ -1771,8 +1765,9 @@ echo all: >> $config_host_mak\n echo \"SRC_PATH=$source_path\" >> $config_host_mak\n echo \"TARGET_DIRS=$target_list\" >> $config_host_mak\n echo \"GDB=$gdb_bin\" >> $config_host_mak\n-if test \"$container\" != no; then\n+if test \"$runc\" != no; then\n echo \"RUNC=$runc\" >> $config_host_mak\n+ echo \"CONTAINER_ENGINE=$container_engine\" >> $config_host_mak\n fi\n echo \"SUBDIRS=$subdirs\" >> $config_host_mak\n if test \"$rust\" != disabled; then\ndiff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include\nindex 38467cca61..7d4582b6a8 100644\n--- a/tests/docker/Makefile.include\n+++ b/tests/docker/Makefile.include\n@@ -16,8 +16,9 @@ DOCKER_DEFAULT_REGISTRY := registry.gitlab.com/qemu-project/qemu\n endif\n DOCKER_REGISTRY := $(if $(REGISTRY),$(REGISTRY),$(DOCKER_DEFAULT_REGISTRY))\n \n-RUNC ?= $(if $(shell command -v docker), docker, podman)\n-DOCKER_SCRIPT=$(SRC_PATH)/tests/docker/docker.py --engine $(RUNC)\n+CONTAINER_ENGINE = auto\n+DOCKER_SCRIPT=$(SRC_PATH)/tests/docker/docker.py --engine $(CONTAINER_ENGINE)\n+RUNC ?= $(shell $(DOCKER_SCRIPT) probe)\n \n CUR_TIME := $(shell date +%Y-%m-%d-%H.%M.%S.$$$$)\n DOCKER_SRC_COPY := $(BUILD_DIR)/docker-src.$(CUR_TIME)\ndiff --git a/tests/docker/docker.py b/tests/docker/docker.py\nindex 3b8a26704d..ff68c7bf6f 100755\n--- a/tests/docker/docker.py\n+++ b/tests/docker/docker.py\n@@ -618,12 +618,7 @@ class ProbeCommand(SubCommand):\n def run(self, args, argv):\n try:\n docker = Docker()\n- if docker._command[0] == \"docker\":\n- print(\"docker\")\n- elif docker._command[0] == \"sudo\":\n- print(\"sudo docker\")\n- elif docker._command[0] == \"podman\":\n- print(\"podman\")\n+ print(\" \".join(docker._command))\n except Exception:\n print(\"no\")\n \n", "prefixes": [ "v2", "1/4" ] }