From nobody Thu Oct 22 19:27:20 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1791736146; cv=none; d=zohomail.com; s=zohoarc; b=YT6cMTEkPhhsJKFYBbqT7YPowWzXxnvSAlV/AYX0KulBnTk4bGe9qZd9jY/Ui5ZUBQF8IXo+fEV9eQrk2Wns7UzvW4xo0jvHczoWbV76zdFmu8S2w7lZNgB56e1NrQsCQagguVZfgWg0kBdfAmOCq73I7ZbkGf3+ihWJ+fxUfpk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1791736146; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=LB96PXPlZyFzeseItNhsm9LBmKTAImNw8DavHlYT6lI=; b=oFB5svDeX+3m4G3LXD0Ndo77ofkZpm/hYnx/abeaUIyef03AtuEo0MYT8OzfFmg1NIJBaOVjBPjRr4D+v3Qyx11hCv1KYOhl/NAoRsUDYiH/RGKYnVW8Wext2Smcf5iB+qD57ywR0iZwXLjY04fJudRXpxZaAAYwecW82P8dtj8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1791736146908355.6954776822944; Sun, 11 Oct 2026 09:29:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1xFwP7-0001Zm-5o; Sun, 11 Oct 2026 12:28:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xFwP5-0001Z7-3n for qemu-devel@nongnu.org; Sun, 11 Oct 2026 12:28:03 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xFwP2-00078D-TD for qemu-devel@nongnu.org; Sun, 11 Oct 2026 12:28:02 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 69B85crX2954362 for ; Sun, 11 Oct 2026 16:27:59 GMT Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4h7deukb8v-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 11 Oct 2026 16:27:59 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-35ac5255f1dso21330eec.0 for ; Sun, 11 Oct 2026 09:27:59 -0700 (PDT) Received: from debian.qualcomm.com (192-80-163-190.dyn.novuscom.net. [192.80.163.190]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-169a1becf08sm25001242c88.5.2026.10.11.09.27.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Oct 2026 09:27:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=LB96PXPlZyF zeseItNhsm9LBmKTAImNw8DavHlYT6lI=; b=CgE5Yr5Eu0XJMwcNqEErHFv7ziW QN5b8yupDRA6ScoTmDd+FqlwysE/a0ujoI6lrTnmNBaD5Qlzz1FWiMvDy5k5K3xI Zjt+uDHGt4VyNIGiPzVhOfFe0BCN6jY2VA/21vvroqgloR+SIs+qUKk4/WzJtHZj sc3YgDlIFUOyUnyO+ZQreadHy2dqSSmOZIbGF0qCWrwF1kVJzi0gLk92+ohRAOEx E8sVbkM7bIt1nz4KlR9Q6cKWFc+5HuuYnXQM5X+Kqc0oi/yAtSXABpx1lj6JOfZt kU1pTbMQehWzT97XKhZHOhzxvsoz3A43iOA/7qdbSScoXoCqFPj/KRVr7Sg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1791736079; x=1792340879; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=LB96PXPlZyFzeseItNhsm9LBmKTAImNw8DavHlYT6lI=; b=HTOl/n2Cjuv3JZ9n6ljnfYilfnRv/B76yhqFHAMue566WiGveYvbZXCpfHraKsA03K 8FbRHSWT8r2TLO1zt6XK53JVa6U727i49TOAAqWtJxra5Qe6ZxjXoQlUrtNi2mRvk0nm VDe4WfOFfufd+4z1p9XsLP07uzEEQDJ8GGIdrhIX4s+j8V9+gsNR+ezBagAySU/SvT+c hQRqy1ncHLiD9FkyI8Tu5zMd3/UEqH3z+A6QMGjPwnBwc66xjJLtQTgxbVL+6e54DojN RoBSvjYHBW7WD1BgaxiWNB1j9fDEbKPYy7vBdwgSAxMETbidnZNq4TUr2MRDmP3ujX0a Ux7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791736079; x=1792340879; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=LB96PXPlZyFzeseItNhsm9LBmKTAImNw8DavHlYT6lI=; b=gkFBJKwKkQrU/gzy0wy+h4LuXUBZjf9jMq8Hq9XRngvjlPieAVhCHA3dhdJ3gY/x/u v72sn3Qxxsy3wx97BSFrg2L1+S5sr9HWhqRsNkRHQpwTQGqKuzg2dulASbG2YkvYK+QW sJFVCqttQPNvUEg3mz8yWfwlLQQffKXuqa/taupEHOvV4CC/+R+3aVg3t1bHYgZuamRq psuPXAmtWoDLID3dcxOQCT+AX8YCWZ5ngJ6uQRnaH5j6igVvWR85pyX8sLbCLUjP73oi NAi6UUd8SvPrUUAlkIrkrC7BjaWR9s/hKlDLjOV/f1AiuGp2odI3XEi2W/1X737Z07uQ Kd3A== X-Gm-Message-State: AFq9FYJ183h0J9lNlLaQ7ZyU+1UR3f3oJOBLyx3zYfwITK0pjgTZbkib bE8IPlY0fwoejw9cJDi4Md4yluEYUJeEVUSBtULNYVjn5plROQvv6zybhzANJAjWFt+rDI5dqWp ylaIN7GUXrz7kgezwo4feAfmA0ttYIIgXG4vZLCW6mZhnG1ANWiLp/iHTCjciHO/jbw== X-Gm-Gg: AYBFou0VdBlKLymAeb5lZpnXRZAnkDa9TJSNbZpMy/xhwTu0X98UZ65KR0v7EuJTVaw +5HIXBWtOBJ5hl0UiTC6Jh5JZdFiKA+NCuayjVXQUzZrBabSZHDVz/vpYGEUMBMW/vp2ivuhXTQ jkvKEFz/LGfDhDIZBFFlE1xv0ENwNSkBDwiUZvMkm+czYXm21HJnPA7a7D2EIR4SoGDK0lgryfa yF9V863KSLBCXCbekwiQ8rU3ZbIwtlRjmpeNzGR0RFK7BThjv8Ph5epyrqMJkDvKaVqWSy/uxFD PRIPJoGE6hgo6eqXr+19NByFz2FGu8aJJzxh+ix2hlCaGHtPLNlgj99wMLdUYbI2s4UJ5I7cLFn Qar5J8wz9cXEm+QapDXBLtwkHw9rLeR14ngSNUtStoXNmZyx+FaOwkmO6wxqT X-Received: by 2002:a05:701b:230c:b0:14c:be8e:69fe with SMTP id a92af1059eb24-16a57922026mr10511706c88.5.1791736077504; Sun, 11 Oct 2026 09:27:57 -0700 (PDT) X-Received: by 2002:a05:701b:230c:b0:14c:be8e:69fe with SMTP id a92af1059eb24-16a57922026mr10511684c88.5.1791736076850; Sun, 11 Oct 2026 09:27:56 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Fabiano Rosas , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Pierrick Bouvier , peterx@redhat.com, mjt@tls.msk.ru Subject: [PATCH v2 1/3] tests/docker/dockerfiles: add release.docker Date: Sun, 11 Oct 2026 16:27:35 +0000 Message-ID: <20261011162737.3024-2-pierrick.bouvier@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20261011162737.3024-1-pierrick.bouvier@oss.qualcomm.com> References: <20261011162737.3024-1-pierrick.bouvier@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: 7Ce_oe_NSXI_kzvYDsg0RZi0F4KbpoHh X-Authority-Analysis: v=2.4 cv=Aud7T+9P c=1 sm=1 tr=0 ts=6acbb90f cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=9852oil1ID9t5xBSyQ/BEA==:17 a=660iZSQnnn4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=p0WdMEafAAAA:8 a=ID6ng7r3AAAA:8 a=NEAV23lmAAAA:8 a=EUspDBNiAAAA:8 a=DfNHnWVPAAAA:8 a=GUVi8RmzAAAA:8 a=4HQkHWYM07Omh7VlaF4A:9 a=bBxd6f-gb0O0v-kibOvt:22 a=AkheI1RvQwOzcTXhi5f4:22 a=rjTVMONInIDnV1a_A2c_:22 a=jSdgSmmMQx7r16_JUfbt:22 X-Proofpoint-Spam-Info: AW1haW4tMjYxMDExMDA2NSBTYWx0ZWRfX7AG5az8fxLiE El16uMmJi3IGAEXhoZ/x9sB1QMAGGICtfxPogcoM5Q0AK2ypV4bkeva8HbljZhU+FI7NdqRKsnd itELh+pPN3FNHcb5XZceYBjTArs1LYs= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYxMDExMDA2NSBTYWx0ZWRfX3fXHwRr2g+lH Hj4R/GS4GBRmHbTQHuQS0bONxoTUBBuOdl7GGKYa3XdyUShwjZS4CpqGbxFR4pBCNHg5tb+TPno v69wTjY5aBPb1RSZ/BlH3utn+yu+qZPIIwD558Tm9FqSSA+/21el75xNiFh7JR3D0sBh8TeKDFe dUKY4BcjO6YOA+6lGiuPaq7ncpcIkwue+p6uKBfEDUOGG2bNFuT6DY/Wo8t9FX6iWDZEC/6QNh6 XZW9/z9SPkVw4RNpQuTgcOCcv298BkpBFHSut/Tge4PeRK/VyUWT4LY2Snp2ulYIWZVjXuGWb26 6RBA9CdfaYjJkkaRGELEVR3tsVgty/VxkRW1aynAvBEf88S29MPvafZ45zvCWvAgtHg09uvmDK8 QkUdbaTyAipzFFbWiXtTczQRtYYwAE4XlvoYaMAPubIh3SwIif5kzG712yxNISe/0PxBYe8XypU 1piftuAteXhXE2/ecvg== X-Proofpoint-ORIG-GUID: 7Ce_oe_NSXI_kzvYDsg0RZi0F4KbpoHh X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-10-11_03,2026-10-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 adultscore=0 spamscore=0 phishscore=0 clxscore=1015 priorityscore=1501 impostorscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2610080000 definitions=main-2610110065 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=pierrick.bouvier@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1791736148468158500 Content-Type: text/plain; charset="utf-8" This new dockerfile allows to build a distroless image containing only qemu stripped release binaries, their lib dependencies, and installed artifacts (roms, keymap, ...). There is no shell, no python, nothing else. This is achieved thanks to a multi-stage build, where we add qemu binaries, artifacts and libraries in a new scratch image. Image has the minimal size possible. This is based on Ubuntu, which has the advantage to have working containers available up to 14.04. Debian old old stable have broken apt sources for instance. This unique dockerfile works for all qemu versions, with 1.6.1 being the oldest we can build today (based on ubuntu 14.04). Previous ones need an older compiler. To build the image, you need to provide a qemu and ubuntu version: $ podman build -f release.Dockerfile --build-arg QEMU_VERSION=3Dv11.1.0 --b= uild-arg UBUNTU_VERSION=3D24.04 -t qemu/v11.1.0 To run it, as there is no shell, and no defined entrypoint, you need to choose the binary you want explicitely: $ podman run -it --rm qemu/v11.1.0 qemu-system-aarch64 --version Notes: We could optimize a bit further, by creating a base container for each ubuntu version, that is reused between all qemu versions built with it. Given that recent QEMU have around 800MB of binaries + artifacts, and only 100MB of library dependency, I don't think it's worth the extra complexity. Notes: Also, I considered create one image per binary. Problem is that qemu depends on other artifacts (rom, keymap, etc) and it's not easy to identify what is needed for one binary. Thus, I think it's better to stick to one container with all binaries per release. Signed-off-by: Pierrick Bouvier --- tests/docker/dockerfiles/release.docker | 69 +++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 tests/docker/dockerfiles/release.docker diff --git a/tests/docker/dockerfiles/release.docker b/tests/docker/dockerf= iles/release.docker new file mode 100644 index 00000000000..4567280ea59 --- /dev/null +++ b/tests/docker/dockerfiles/release.docker @@ -0,0 +1,69 @@ +ARG UBUNTU_VERSION=3D"UBUNTU_VERSION_build_arg_must_be_set" +FROM ubuntu:$UBUNTU_VERSION as build + +# add deb-src for apt build-dep +RUN sed -e 's/Types: deb/Types: deb deb-src/' -i /etc/apt/sources.list.d/*= || true +RUN sed -e 's/# deb-src/deb-src/' -i /etc/apt/sources.list +# archive.canonical.com is not reachable anymore, and cause a long timeout +RUN sed -e '/archive.canonical.com/d' -i /etc/apt/sources.list + +# use apt-get since apt was missing -y option in some ancient distro +RUN apt-get update && \ +env DEBIAN_FRONTEND=3Dnoninteractive apt-get install -y git build-essential +RUN apt-get update && \ +env DEBIAN_FRONTEND=3Dnoninteractive apt-get build-dep -y --arch-only qemu +# additional dependencies that are missing at some point in history +RUN apt-get update && \ +env DEBIAN_FRONTEND=3Dnoninteractive apt-get install -y ninja-build flex b= ison +# python3-venv didn't exist in ancient ubuntu distro +RUN apt-get update && \ +if apt-cache show python3-venv; then \ + env DEBIAN_FRONTEND=3Dnoninteractive apt-get install -y python3-venv; \ +fi + +# patch cc and c++ to inject warning suppression options +RUN mv /usr/bin/cc /usr/bin/cc.real +RUN echo "#!/usr/bin/env bash" > /usr/bin/cc && \ +echo "exec /usr/bin/cc.real \"\$@\" -Wno-error -Wno-int-conversion" >> /us= r/bin/cc && \ +chmod +x /usr/bin/cc +RUN mv /usr/bin/c++ /usr/bin/c++.real +RUN echo "#!/usr/bin/env bash" > /usr/bin/c++ && \ +echo "exec /usr/bin/c++.real \"\$@\" -Wno-error -Wno-int-conversion" >> /u= sr/bin/c++ && \ +chmod +x /usr/bin/c++ + +# 2.9.0 =3D> 3.1.0: clone git submodules from expired url, replace them wi= th gitlab. +# 2.9.0 =3D> 2.11.0: issue with libfdt version, solved with dtc submodule,= which +# was removed later. +ARG QEMU_VERSION +RUN echo "QEMU_VERSION=3D${QEMU_VERSION:?QEMU_VERSION build arg must be se= t}" +RUN cd /tmp && \ +git clone https://gitlab.com/qemu-project/qemu --depth 1 --single-branch -= -branch "${QEMU_VERSION}" && \ +cd qemu && \ +sed -e 's#git://git.qemu.org#https://gitlab.com/qemu-project/#' -i .gitmod= ules && \ +sed -e 's#git://git.qemu-project.org#https://gitlab.com/qemu-project/#' -i= .gitmodules && \ +sed -e 's#https://git.qemu.org/git/#https://gitlab.com/qemu-project/#' -i = .gitmodules && \ +sed -e 's#git://github.com#https://github.com#' -i .gitmodules && \ +if grep -q dtc .gitmodules; then git submodule update --init dtc; fi && \ +./configure --prefix=3D/opt/qemu --disable-docs && \ +make install -j $(nproc) && \ +strip /opt/qemu/bin/* && \ +rm -rf /tmp/* + +# retrieve runtime dependencies (libs + loader) +RUN ldd /opt/qemu/bin/* | grep '=3D>' | sed -e 's/.*=3D>//' -e 's/(.*//' |= sort -u > /opt/qemu/libs.links +RUN find /lib*/ld-linux* >> /opt/qemu/libs.links +RUN cat /opt/qemu/libs.links | xargs -n1 readlink -f > /opt/qemu/libs.real= path +# store them in /deps +RUN mkdir /deps && cp --parents $(cat /opt/qemu/libs.*) /deps/ + +##########################################################################= ###### +FROM scratch + +# copy qemu and all associated artifacts (roms, ...) +COPY --from=3Dbuild /opt/qemu /usr +COPY --from=3Dbuild /deps / + +# build with: +# podman build -f release.docker --build-arg QEMU_VERSION=3Dv11.1.0 --buil= d-arg UBUNTU_VERSION=3D24.04 -t qemu/v11.1.0 +# run with: +# podman run -it --rm qemu/v11.1.0 qemu-system-aarch64 --version --=20 2.43.0 From nobody Thu Oct 22 19:27:20 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1791736136; cv=none; d=zohomail.com; s=zohoarc; b=dC8LR1gG4vh0NikAPmmSI/McWMmKjtdzVUz7ppp1RoHZRm+BVvfxB9H5msKUI6nAHBGsB8b2qDw09DLKS8EflpdQlrUEqSArAMYy6PqmwNnqGIn/3Vhta1UNF9yBWD5BM08P6JzHtciEW532NNfBlg8BYP1wkDz94DolmGecg8k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1791736136; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=E6LNlyppH925J5W84+bwby3Bn6N27zg0oeJiiMV9S10=; b=d2POVnnE8eDXbA/rdNm3/dnyZqx0g7VR/U/kNWHrJb5gnO+R3r0peig0vh06K0UBPzwq9qM2prM50XcpgMngeiH6xOudOnupMtwknVfSyEwkxzQLOypZyic8LrTlrtYTCKis4AnysgJ+4WsYjV4yUduu2tQHPrhgUjLgfK6HMXY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1791736136509331.04303193747535; Sun, 11 Oct 2026 09:28:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1xFwP8-0001aM-Cd; Sun, 11 Oct 2026 12:28:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xFwP5-0001Z6-3h for qemu-devel@nongnu.org; Sun, 11 Oct 2026 12:28:03 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xFwP3-00078H-0s for qemu-devel@nongnu.org; Sun, 11 Oct 2026 12:28:02 -0400 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 69B85JFV3491385 for ; Sun, 11 Oct 2026 16:28:00 GMT Received: from mail-dl1-f69.google.com (mail-dl1-f69.google.com [74.125.82.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4h7cxxkga4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 11 Oct 2026 16:27:59 +0000 (GMT) Received: by mail-dl1-f69.google.com with SMTP id a92af1059eb24-152d1363a29so5722107c88.1 for ; Sun, 11 Oct 2026 09:27:59 -0700 (PDT) Received: from debian.qualcomm.com (192-80-163-190.dyn.novuscom.net. [192.80.163.190]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-169a1becf08sm25001242c88.5.2026.10.11.09.27.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Oct 2026 09:27:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=E6LNlyppH92 5J5W84+bwby3Bn6N27zg0oeJiiMV9S10=; b=A2ZDbkXfRqkiUIweP5fwONvz4An pRqQEPmxfIPD7jPTqiXs1fuxYkaADhk+5pDyfkj0036vPAc2tZtY+WqHR0pp4g3p hZxuukckbxcB+42qwiIAOW3IgsoEd+u8tA/hHClilKMbu3BcbjIbUpIyTTjTOv5x iRngvCIAN2JIRvdMy5G3j3Nog2Iv22nlkjvZi1upG62vjeQ4CXqHaHR2GaAyZly3 sDZ0FU7wbw65X/KTfmsHERWkCREdmwXwgHej9Q+JrhW56YvkmjghhhY8GeuubMSp 4R59499LVLB1nzfY3P9yc/GWdiSbGJm3naUUjYDlkiTUfxbdRvL4aDUd8Ug== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1791736079; x=1792340879; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=E6LNlyppH925J5W84+bwby3Bn6N27zg0oeJiiMV9S10=; b=BRN+vXQbs7RCHHkq8VwaZgqJsuXB6ozesVnIfWZ++yBe+G392/dlMmug9d7fXjDtAG dv0mj2rQLGNZjEnMXfu50lCFggjGrGcpWQaRfsnwXOmbrjidjdCH2gKaal3AA98nRrOQ /KHvAaj6YZtwHIiqrIaYPUv9Dpmzl2MoOK1F8HWee3BF9NlNPHd4KuesFjFUlS9jbaBI ObmaS22DRFpvG/VxcetHkQPZdMItk1GaBnyxjAGcYyhLRbgZV733jcFs6ITypouhTW5y 3i4Oa6sgkqHmpl5AbWATwHrt+PRucqlFdKiXV2vcehGA1dhdoWi56PhTEsX3ZnaIhyLj XX5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791736079; x=1792340879; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=E6LNlyppH925J5W84+bwby3Bn6N27zg0oeJiiMV9S10=; b=r6WWSMJwqw9Xawp2LL+ljF24ALLNtEj5JhlSqQIYOXS+cfPI4eh+ocjOk6O9u0wEVJ 8acgBNeWO2dZ4qTvBTnP1ndHrlATeHttLsUUeUjR+caGHO+5nvmKXFaHkBdxD2A/7w8Y IsIeX/JqfEvYMloSO4EbB1+uxGvP25/s+RU0hd1dyqqsd374imcNlFW8OM41CCkzcyuM rsvHyDxfwr6id40g7oxEn0eeqPBBGuG6cLqQKZ5pqVjp338LJ1bv/tzu2D6uQWOMx0gN GLmYZP0sQVMfXvjlzE07pa5ZkyLJjj+TCZDmcmtBytbhMPnM6EuIMhWnk9V7/DrkSbsj jCXQ== X-Gm-Message-State: AFq9FYJEjTSXL1Zw6NlId3fBMjfYidepcDOEufrFtlyGjWrrlm2T0re3 wAanRiAFZLcsBcaRZksIJ3jxE1JyPqAcOog9qSkviGfZ3QI+N7keKoYwcD3nFChHrk+6Hesy4nV FL/fP31ZT3GGnejit69X9K+k7k8vqhZWeZFLdQ87Wkeq3k8mkuMpBOBStcg+Q2AbYgA== X-Gm-Gg: AYBFou3z8bKstSGs3FkY7KqIfkKaeMShAwnxKiD1ZPspzwFo7WbLFjKGjpM7yhCMh68 BdwOkXOGZZfsiWQXqA7zv35/cUKb6nH3LQ/Eure0kTzGFJ6/9vhzbpzkI0KpI11AWEYBQ+rfXcj 4eHYcJSLRlehRp7L1dwyewi7FkX7HmDUzuIEFx79dmruzedRa98n16HYA9SMoHZm+1aiBGbVaje RGxlB/5iGPLyXDK2GC4OWilWQALe70f5I1vv+8wYMzkAZ47shmJ64KITyx1Agcep8saX/EqPtHK mNS9NLU9whvAldgWAWdq0jCh4RIZj1G96BO+jAPJgKxTQgxtJ4K4lcloaviDKarZOAJPqYl7f+X FfX4z1+8Khgn5tJlqeYg5Gc8aN8WnDtdEvNxVfk+yTiwhFo1o2kLcly/68XL9 X-Received: by 2002:a05:7022:ea8b:b0:16b:fdbf:4a9c with SMTP id a92af1059eb24-16bfdbf4fe6mr7220863c88.23.1791736078822; Sun, 11 Oct 2026 09:27:58 -0700 (PDT) X-Received: by 2002:a05:7022:ea8b:b0:16b:fdbf:4a9c with SMTP id a92af1059eb24-16bfdbf4fe6mr7220834c88.23.1791736078281; Sun, 11 Oct 2026 09:27:58 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Fabiano Rosas , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Pierrick Bouvier , peterx@redhat.com, mjt@tls.msk.ru Subject: [PATCH v2 2/3] scripts: add build_release_container.sh Date: Sun, 11 Oct 2026 16:27:36 +0000 Message-ID: <20261011162737.3024-3-pierrick.bouvier@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20261011162737.3024-1-pierrick.bouvier@oss.qualcomm.com> References: <20261011162737.3024-1-pierrick.bouvier@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: P4u8Z3cdKKPa919WcyUNYxiLUv42bJ4W X-Proofpoint-Spam-Info: AW1haW4tMjYxMDExMDA2NSBTYWx0ZWRfX+ok2ZGPLWhCU Nr29VdOzU+7ru81JV4Kdlc3cw9P9ShVoZiLDUqUwFTKnBY+AfqS1A7wEcQYHO+H+4uX/KoH5WSO 6yyNGh4Gq11Eqn0OS+roqV5HWCu0kAY= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYxMDExMDA2NSBTYWx0ZWRfX/HdHfYl8Ovlp cN+uqs893y9rwpPs4Vf4h+w+VltfrDkLIzkW1gHirMeZQqT/mbhYQzkoDBbj5dclr9gLBNO9FOz qnE1CdT1ii5hw5MYzRJVLA3Yw6cJBo2kVU7G3R4lOEPEEjCuQbH2O2qWrBNDdU0FiHJh5GNIB1p TagutFNARmOsu2kKzfphPSs0+sQWlkdPZOLXzZl/nvnmsNJi9s1D+q/DCABrBaBbo31ao/uWq+6 2X5TzxCD12DqgoWsLlMYqtrv0zqdAxJQn8A4IPEST0nQ/M/e3/jPzXOdG4XFqytuAQvVtF1wZ93 glcS20IyzZrNULenMRVnBhjw1EpOeJi1O73jMjXI45MRvVauXiFfgPNq611TMYqGUZCxPjWaLUB FdmjJVMmv/J7dHQ/D+QVXMPF5bEaU/F2QsJfNp2T0gk6SITow3T/TMJ0jOD4EnutrEbpf7yryy/ rcvrmB2BNtcJ6SrlSHQ== X-Authority-Analysis: v=2.4 cv=AsJ7T+9P c=1 sm=1 tr=0 ts=6acbb90f cx=c_pps a=kVLUcbK0zfr7ocalXnG1qA==:117 a=9852oil1ID9t5xBSyQ/BEA==:17 a=660iZSQnnn4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=O1M4xD0Y80AByxq8toYA:9 a=vr4QvYf-bLy2KjpDp97w:22 X-Proofpoint-GUID: P4u8Z3cdKKPa919WcyUNYxiLUv42bJ4W X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-10-11_03,2026-10-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0 lowpriorityscore=0 impostorscore=0 spamscore=0 adultscore=0 priorityscore=1501 clxscore=1015 bulkscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2610080000 definitions=main-2610110065 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=pierrick.bouvier@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1791736138464158501 Content-Type: text/plain; charset="utf-8" This script allows to easily build a qemu release container, based on dockerfile introduced in previous commit. It filters available versions, names image "qemu/$version", it automatically detects which ubuntu version should be used to build it. $ ./scripts/build_release_container.sh v1.6.1 $ podman run -it --rm qemu/v1.6.1 qemu-system-arm --version QEMU emulator version 1.6.1, Copyright (c) 2003-2008 Fabrice Bellard Signed-off-by: Pierrick Bouvier --- scripts/build_release_container.sh | 59 ++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100755 scripts/build_release_container.sh diff --git a/scripts/build_release_container.sh b/scripts/build_release_con= tainer.sh new file mode 100755 index 00000000000..0189d5ab9ac --- /dev/null +++ b/scripts/build_release_container.sh @@ -0,0 +1,59 @@ +#!/usr/bin/env bash +# SPDX-License-Identifier: GPL-2.0-or-later + +set -euo pipefail + +script_dir=3D$(dirname $(readlink -f $0)) + +# We use ubuntu containers, as repo urls are correctly updated for old +# distros. Oldest available is 14.04 (in 2026-10). The oldest buildable re= lease is +# v1.6.0. We want to skip 1.5.3, so let's start from 1.6.1. +oldest_release=3Dv1.6.1 + +if [ $# -ne 1 ]; then + echo "usage: tag (>=3D $oldest_release)" + exit 1 +fi +version=3D$1;shift + +tags() +{ + git tag --sort=3Dcreatordate | grep '^v[0-9]' | grep -A 10000 $oldest_= release +} + +if ! tags | grep -q "^$version$"; then + echo "version $version is not available, check git tag (>=3D $oldest_r= elease)" + exit 1 +fi + +year=3D$(git log -1 --format=3D'%cd' --date=3D'format:%Y' $version) +month=3D$(git log -1 --format=3D'%cd' --date=3D'format:%m' $version) + +# Ubuntu LTS are published every (even) two years in April. +ubuntu=3D +if [ $((year % 2)) -eq 1 ]; then + # pick latest LTS from previous year + ubuntu=3D$((year - 1)) +elif [ $month -gt 6 ]; then + # LTS published this year should work + ubuntu=3D$year +else + # pick latest LTS from two years ago + ubuntu=3D$((year - 2)) +fi +if [ $ubuntu -lt 2014 ]; then + # oldest ubuntu release available with containers is 14.04 + ubuntu=3D2014 +fi +ubuntu=3D$((ubuntu - 2000)) +ubuntu_version=3D$ubuntu.04 + +dockerfile=3D$script_dir/../tests/docker/dockerfiles/release.docker +docker=3D$script_dir/../tests/docker/docker.py + +set -x +$docker build \ + -f $dockerfile \ + --build-arg QEMU_VERSION=3D$version \ + --build-arg UBUNTU_VERSION=3D$ubuntu_version \ + -t qemu/$version --=20 2.43.0 From nobody Thu Oct 22 19:27:20 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=oss.qualcomm.com ARC-Seal: i=1; a=rsa-sha256; t=1791736136; cv=none; d=zohomail.com; s=zohoarc; b=NyzOiZF5NUel5uI5nvRQ6NhUm6COsGtDMSNWc9EmDCBs8e4L9E4NN09Xrp7ktaQ63s9kGl84i1LKFasTugrL+5sTGSIMg44xSwOVhn7+rcKZpv4H6do4MHw47fPmb3MMJ+vrkUKihsng2lgBPOQJDr3ghaL1aKjXBirZVMDRTME= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1791736136; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=09nA4JNp4Q+xcM7sqdw3bupnKCqQJZVniniVyl1PCb4=; b=aHNb+xxzlrlE9pfmkMfHlQbruTvOsxNqrNUrLu8qiWWklXmISSBBc7l4fkF1QrNk4I92+JxI4k1Pv/AejNGT0mSKtsKqTaG6BMt4TYtu67Q2FvTQVFCkhHZcmxy3ztmQDuHcqNfrxvxlGaanYiT1mTp1bA5ETIsk/Z1+oJljL4w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1791736136508820.6233762521258; Sun, 11 Oct 2026 09:28:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1xFwP7-0001aF-Qp; Sun, 11 Oct 2026 12:28:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xFwP5-0001ZN-Ta for qemu-devel@nongnu.org; Sun, 11 Oct 2026 12:28:03 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xFwP3-00078V-Us for qemu-devel@nongnu.org; Sun, 11 Oct 2026 12:28:03 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 69B85ZE61946440 for ; Sun, 11 Oct 2026 16:28:01 GMT Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4h7dr7katn-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 11 Oct 2026 16:28:01 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-3510d0baf63so2889209eec.1 for ; Sun, 11 Oct 2026 09:28:00 -0700 (PDT) Received: from debian.qualcomm.com (192-80-163-190.dyn.novuscom.net. [192.80.163.190]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-169a1becf08sm25001242c88.5.2026.10.11.09.27.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Oct 2026 09:27:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=09nA4JNp4Q+ xcM7sqdw3bupnKCqQJZVniniVyl1PCb4=; b=RGqImn4S99BhouvjNsTpRlrVugi BzFcN2oyDbfs1ldDMIaENbyD+opSTHqIGuyPn9rCJDvk0RfKZQwH1Gz8Al+/aSGM 2uQ87AukpK0DnK3HkvT4tRO8f7JYETIII5LB3I5nT9qE1Xhjfzlh8ocorPIWl3qU sOktfKwPHd+eSKLC/tgFR1GglPvp1mLkoc8ksD1h4HbhcGnsrB0bWDfiQKQGBAMH UjXPUEgtl2FGYkJqA5qtzGAQVtWR456W4fhth790p7P1qyklWJrWs9JN7io+hQU7 sVxpoRKFM8b7TvX4Ywt4OE72thb+ff+UUN4Lr84LgTAU1puPqIxmQBarg0g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1791736080; x=1792340880; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=09nA4JNp4Q+xcM7sqdw3bupnKCqQJZVniniVyl1PCb4=; b=XXSPJFMCVhGS7H87wx3exPDEjeGulLPUPmgMCEY0Z3Eo2CnmwzTPIGbdM6rxXe8BZo kh8T6Kz6Mc9StODRahDHLaxONz2/5cjEgMKENnawvayHtPdFkJTD8P0/2CJD0I6pU6YR 6ZppqDAMRKYXP3d10pclP/tF7TvW7YwLctrTNJkeqQgUelZkmvLgnkOpuxG9USF3s34K ZlPsMRW1d3eO4ZXon5I+TLh5h0qy1vIzG1+3tIiraitNO3kVEQppRWUMj52cfag2u39j wqKXMqP+LvzOL8MR0p5ISMBHuDxYRrY0IOV+/zxRk6uGmH/b7Klr6aZHU457kf0dphgk dRhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791736080; x=1792340880; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=09nA4JNp4Q+xcM7sqdw3bupnKCqQJZVniniVyl1PCb4=; b=LLnI98qm4d85CFI2vlueJU+gMSzGMYLv2HLx/U3DxD5rQCfOCsEjrk2CWLKXxAUfZ+ aPL6se2vkM6OwidD80gSx19tbew9c0Y10ZOstxfVZsZcuDABRLivaHnI02PnvCP1X6ri mxcJ5wNwHBSa1a92iAfWPxerS1xOoZ3pSL9Pm1m1qJkrDAK3hmove5Znt3HbElIAAkq9 KPz7wTm2gXL20Td9HyUNbFxjW6c3nEvRNpQWjcbcGYUlSjTD8etJMgMW0mFS4NZWeg5Y 9x51xYwbNPPZC6hQJ8F9se5RP/hxvo6fpH+AgYJQ0307lywWH9eRMAf1ZZwD2rconl3j /dzA== X-Gm-Message-State: AFq9FYIEyhOIgniUqXDHNqcO1PyicnMN1B4cOPmjKbOGhfWsqJ6K9M4m sJiXMbBI/dC3wK21314kCzYrroOSGsOn8o2Be2JLPf/QE460hy7mzX0VDFbWTkMpc8Z01xMViNX gnmJDE57PwR99envE5yldsgU0jJILzFJp91SJA7k4HB1xboqoj2mPPjTaU/069V9ojw== X-Gm-Gg: AYBFou0q4cgihb78G7lqp0v/aPoTo8OQkZKLcFSywXEMF+FbPN3+us9JGqnFq6hSciy SsqrUqraXTlwCLztY/RgaQ+WfzXfbDVi5zqrH+pd7e0o94KGGWvlql/A5J9YLOG6ThDcpb9C43q Nsi881iQLUHB4ymsVdCoFvVryAZJKyt4g4vpsdMA/67wlZYm++GRcgqlIFkX3+u3WStWNzLZHGV UiAr6ktcfgtUZm2e2UE88y4jm14Y5t+288UjOCpoDpYLcEp7z0GAaEyFgsWko+L+RJ+lYFVbiDE N7FQlV4O5nbqy+ksjcY8taNeENBKdaVxaZ6o4ol9FzF749iagDtr7dgQX4NIN0z915EebygVsCF jjbrtClfi5nBnTvKwc/yxKvCXPiznkzr60wBnsIARO/aSLgh2tkFow9fu0bwl X-Received: by 2002:a05:701b:21db:b0:166:29a2:f83f with SMTP id a92af1059eb24-16a56ab04e9mr10493565c88.5.1791736079999; Sun, 11 Oct 2026 09:27:59 -0700 (PDT) X-Received: by 2002:a05:701b:21db:b0:166:29a2:f83f with SMTP id a92af1059eb24-16a56ab04e9mr10493536c88.5.1791736079408; Sun, 11 Oct 2026 09:27:59 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Fabiano Rosas , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Pierrick Bouvier , peterx@redhat.com, mjt@tls.msk.ru Subject: [PATCH v2 3/3] scripts: add generate_release_links.sh Date: Sun, 11 Oct 2026 16:27:37 +0000 Message-ID: <20261011162737.3024-4-pierrick.bouvier@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20261011162737.3024-1-pierrick.bouvier@oss.qualcomm.com> References: <20261011162737.3024-1-pierrick.bouvier@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: xmxJF8jfWmwXCzChy6nRZyy62jXsuz2G X-Proofpoint-Spam-Info: AW1haW4tMjYxMDExMDA2NSBTYWx0ZWRfX3jaiBwjQiDgH G/skGStN+4SG0J17VRuG7vYQtAEbGV4bB7pSA1aceKC+8WjSNtovJxqN4Lks5EL+DvPZSeFUsxM 9cH68onfCi5T1UhZqJljeVzKxPZY26k= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYxMDExMDA2NSBTYWx0ZWRfXwH/oQPif3Npk uqtfM1pITT1/AtTOxOwvV83eI8lmn8QtbXAuyOpxCzBGKPsX2PguXJbkdp4DhY/2aU8+n40tINC H3Xjv5JJkm4RbKhDAIBPg3ud6t4gQgUB72AGmhJUxYIaEXPGInNbbEITTl2yJI984y+sti+rq+w RiRoQF+4ydVhm7QRG1rY6K2zeEDaQwgxVdXGJ8dgdBGtvvtJFT3fbsub8wmI3+4M+Lk7S7TyNk0 31EfJ6pHUNN2xKkINon4Z7CW4vn94eL3+fvnOvxfbh3QD6tuuy4BkFer+AdfZ5yejia0+LV+4XD J8WolF5uwzixZInTMf9gLGakBx7webNtQhSPJD7fqgA8BsO9eEkfAxwMJpAEhVGUi+t7hG/GAYw oUO8mc6f0Gh3AF6ZhVPrydMZDtka99Gst1FhpPvDMIUtZhaXD5UxxiWemPPgl6UYrqYtSFgK8d7 RW8EcMqJ+8DAiATb4Vg== X-Proofpoint-GUID: xmxJF8jfWmwXCzChy6nRZyy62jXsuz2G X-Authority-Analysis: v=2.4 cv=asknmiZV c=1 sm=1 tr=0 ts=6acbb911 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=9852oil1ID9t5xBSyQ/BEA==:17 a=660iZSQnnn4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=n6MYwUk4AAAA:8 a=EUspDBNiAAAA:8 a=z6BG1H5jNmwsGlzAzHUA:9 a=scEy_gLbYbu1JhEsrz4S:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-10-11_03,2026-10-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 priorityscore=1501 phishscore=0 spamscore=0 adultscore=0 impostorscore=0 lowpriorityscore=0 bulkscore=0 clxscore=1015 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2610080000 definitions=main-2610110065 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=205.220.180.131; envelope-from=pierrick.bouvier@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @qualcomm.com) X-ZM-MESSAGEID: 1791736138545158500 Content-Type: text/plain; charset="utf-8" Now that it's easy to build containers for all QEMU versions, we can go further and offer "links" (scripts) to all qemu binaries from all versions. Note: this is based on prebuilt container images, that are hosted on my dockerhub (https://hub.docker.com/repository/docker/pboqemu/qemu-releases). If there is enough interest, I would be happy to relocate that on an official QEMU registry, or even add it to our CI in case people get paranoid about where those binaries come from. $ ./scripts/generate_release_links.sh qemu-releases/ $ ./qemu-releases/v1.6.1/qemu-system-arm --version QEMU emulator version 1.6.1, Copyright (c) 2003-2008 Fabrice Bellard $ ./qemu-releases/v10.0.0/qemu-system-arm --version QEMU emulator version 10.0.0 (v10.0.0) Copyright (c) 2003-2025 Fabrice Bellard and the QEMU Project developers Container engine automatically download and runs the right image, so no build is needed on developer machine. Signed-off-by: Pierrick Bouvier --- scripts/generate_release_links.sh | 71 +++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100755 scripts/generate_release_links.sh diff --git a/scripts/generate_release_links.sh b/scripts/generate_release_l= inks.sh new file mode 100755 index 00000000000..2213f0f56cb --- /dev/null +++ b/scripts/generate_release_links.sh @@ -0,0 +1,71 @@ +#!/usr/bin/env bash +# SPDX-License-Identifier: GPL-2.0-or-later + +set -euo pipefail + +script_dir=3D$(dirname $(readlink -f $0)) + +if [ $# -ne 1 ]; then + echo "usage: out_folder" + exit 1 +fi + +out=3D$1;shift + +releases() +{ + git tag --sort=3Dcreatordate | + grep '^v[0-9]' | + grep -A 10000 'v1\.6\.1' | + grep -v '\-rc[0-9]$' +} + +qemu_targets() +{ + version=3D$1;shift + git ls-tree -r $version --name-only configs default-configs | + grep configs.*mak | + sed -e 's#.*/##' -e 's#\.mak$##' | + sort -u +} + +softmmu_binaries() +{ + qemu_targets "$@" | + grep softmmu | + sed -e 's/-softmmu//' -e 's/^/qemu-system-/' +} + +linux_user_binaries() +{ + qemu_targets "$@" | + grep linux-user | + sed -e 's/-linux-user//' -e 's/^/qemu-/' +} + +root=3D$(readlink -f $script_dir/..) +docker=3D$($root/tests/docker/docker.py probe) +userns=3D +if echo "$docker" | grep -q podman; then + userns=3D"--userns=3Dkeep-id" +fi + +registry=3Ddocker.io/pboqemu/qemu-releases +for release in $(releases); do + echo "generate links for $release" + public_image=3D$registry:$release + mkdir -p $out/$release + for bin in $(softmmu_binaries $release) $(linux_user_binaries $release= ); do + script=3D$out/$release/$bin + cat > $script << EOF +#!/usr/bin/env bash + +here=3D\$(pwd) +exec $docker run -it --rm -u $UID $userns \\ + --security-opt label=3Ddisable \\ + -w \$(pwd) -v \$(pwd):\$(pwd) \\ + $public_image $bin "\$@" +EOF + chmod +x $script + done +done --=20 2.43.0