From nobody Thu Oct 22 19:27:18 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=1791939293; cv=none; d=zohomail.com; s=zohoarc; b=hpZzDAKdq3X68E+N0er1UacIwyG4vLqyrJLaVcZAHQe5geQ8ybChbWfJX/9Efcoh1ucsHNKlV9xvisxJaUh1kOYuVmcASFlb8AuOZUC1rGzUxci704rh2gyC74WSwqSf62BMtCorwatBXFI353z4FIs4JGQ4Z4m23jw6f2yRVcY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1791939293; 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=tT8fHw8GqlEEjvdhQeN4T5ab6ZoZVUWORJJE3Dgv64A=; b=cQNnsap1KYzbsTV0PVJ7LZRsxXpQOPMLiHvwIjj0rI5WZ12BGtF6Bqy9IVXtyUvxNI1Mn5B0d8I1bsi2FhuXia7ex8Ek+Q+bQTQCeBGhPr58/Z8AMa2DgI8Npl4OdmzxyOeUDdOaU8Kn5tuBXi7q/1Tn8GRitYYHi0KR7YEOkVg= 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 1791939293057343.4585130750422; Tue, 13 Oct 2026 17:54:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1xGnFu-00078S-VJ; Tue, 13 Oct 2026 20:54:07 -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 1xGnFs-00077T-A8 for qemu-devel@nongnu.org; Tue, 13 Oct 2026 20:54:04 -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 1xGnFq-0004Jy-5B for qemu-devel@nongnu.org; Tue, 13 Oct 2026 20:54:04 -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 69DKGjkX442764 for ; Wed, 14 Oct 2026 00:54:00 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4h9n71juux-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 14 Oct 2026 00:54:00 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-35cbea41088so704871eec.1 for ; Tue, 13 Oct 2026 17:54: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 5a478bee46e88-359789fde97sm31823564eec.20.2026.10.13.17.53.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Oct 2026 17:53: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=tT8fHw8GqlE EjvdhQeN4T5ab6ZoZVUWORJJE3Dgv64A=; b=Zdq3K/ydN9Ur++heI0yrVOK/9ED GLZgQWSOeEqn5jgxBs389cP74ipEFXJ9aPJtovYGvf2hWb4ny76C7r4jrkH9JnR2 4VC/2pdoGCDlmgR8tIDht/nUHKSqVPHUWeSWmxlA6Mj1T5Itvs9kXTbXGzxvlZBT J4gZNq22DzjoJpyWTP1FubSKchc467134ESST2OgOi67mXMqm9sNS4LfE9YElkx4 yErro4Jscz4z5l6WXyGuyUE8gloPOLvc8+16kHX9AFqoOMVxoBwfo1qt9eTjh1+T bK4WXFxXxpB4XkXh0OJnTd+cgvDyxxuo0OyzY4QhJbsiBwxW3YERnpxHRGA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1791939239; x=1792544039; 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=tT8fHw8GqlEEjvdhQeN4T5ab6ZoZVUWORJJE3Dgv64A=; b=aO83qMkNO1VmBQVvKcUQa7tYUzlzMTpOCELP/ROlLD7d/D5bkbm8Mv8WEgbexxKGuX 6c312Ov/GB+c0tJ8ZufYkiuGccLG9kbpeSZUPkRMk9GgOdWNcWojwhOWHE/umKYEIAex pfn0BDlR90r4QnpuncHe6FWJB2aIoDHG2tc8vjTwj51dU7Ff6bL/DgMVVp1TFyFYC4Ny AipndJHh9OqJ24Yv4Bx6lcxhvPVL5O3KIH3ZxJL0Zr5gMkqPH9zFEgrEUhUWbGiF6B41 HY/qGJ9NhIozBxpDd+SSKyCc3k5U5ZhI865jKx8V9Nve4KFvn10SUD5rF94sSlu0Ex0L CapQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791939239; x=1792544039; 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=tT8fHw8GqlEEjvdhQeN4T5ab6ZoZVUWORJJE3Dgv64A=; b=PTGIWUsOU7UbN6Meds9lsTR2w9ebm0mUajfZcjob53yhtGRxHsPQp+GcIkUOKpvYgD s5KgAvhqLK0G1ZTKprfDK3AveJP1jx3P47w+F8cjx3l7oUisTS9Mx9GUCCupok3AVQtF 6h4/FtSjFvWD9al7rvUZ4WURs8io0fSO5Z8cYaSGYjU7HrAePjFxBUQssrVb8QudCtNZ EhlCW9TIU9xgex5RNPF7ivypKhgTRZ/3AE3ZLvLl2+QGjnNnkLMqYhty3wPfiSU6KCTL 1aIUzF4bIZSUOitKou+evsr5TK8GC53xI15PgSiLJmn44IU9+Sp9BI2NF+VWrGYM52I9 7QQw== X-Gm-Message-State: AFq9FYLLsQV6+NmRZqhW7UToUc5CHmm6kxoWpygTWHx5npbt/rFK6t/O I1+S/x9cQ7xMW3750x/cXvVnXJIPZkRhv3Bq/QlvM34mciKAlpyMXXBqHqj9IiR/wng3oFkQvEY whnc7UP4c6aoKvk8EOUfs9rSj0M7DAbs2Nu/NUbaF+5MISk6N9eZ+si/2/OrukOhY2g== X-Gm-Gg: AYBFou17zZJTQ5HFY8SL37Ea+fkeQBV16TVpOJ1tD6icXh7Xtrdtvce+fZhxw+9Zfpe vYSVZjrmcmuaenWK7auhz4AUeqP+t4i1LaBHJjIkeAqMhBTS5/wTzbkbfqQT2OJB7bHb/QTa8on z+MdeBv7jOu3DXdmzyZfcvXW+XLTdsnc7dw0yoSwDdIog0FCPXSUuOoR9M2A4nATRwlglQR+xyE qFkwZdWZ8Zt/D/YGFionYqF5YEzlyiKS+YZM5iVDYcgTbHvZdlROR0MwsyqHQ5Z+pSGcc+aFfdx SAxFmO/myL9N5zUP8MEBPk2Rz2UU0s1Lnn70b2+ZdcdmwaIw/cXFzVk3+uf1jBoxCzslrEb0CjZ pxSm3Aa4COGuYcarDMDHrtFdigaLDyHtejYcthC/Ubss+Djz+HCRHPyGDO8Up X-Received: by 2002:a05:7300:b2a0:b0:35d:a0cd:d51f with SMTP id 5a478bee46e88-35da0cde46bmr1245205eec.23.1791939239326; Tue, 13 Oct 2026 17:53:59 -0700 (PDT) X-Received: by 2002:a05:7300:b2a0:b0:35d:a0cd:d51f with SMTP id 5a478bee46e88-35da0cde46bmr1245160eec.23.1791939238627; Tue, 13 Oct 2026 17:53:58 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= , Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , mjt@tls.msk.ru, peterx@redhat.com, Fabiano Rosas Subject: [PATCH v3 1/3] tests/docker/dockerfiles: add release.docker Date: Wed, 14 Oct 2026 00:53:36 +0000 Message-ID: <20261014005338.34657-2-pierrick.bouvier@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20261014005338.34657-1-pierrick.bouvier@oss.qualcomm.com> References: <20261014005338.34657-1-pierrick.bouvier@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=FuqQbGrq c=1 sm=1 tr=0 ts=6aced2a8 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=9852oil1ID9t5xBSyQ/BEA==:17 a=660iZSQnnn4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=fxJcL_dCAAAA:8 a=p0WdMEafAAAA:8 a=ID6ng7r3AAAA:8 a=NEAV23lmAAAA:8 a=EUspDBNiAAAA:8 a=DfNHnWVPAAAA:8 a=GUVi8RmzAAAA:8 a=4HQkHWYM07Omh7VlaF4A:9 a=6Ab_bkdmUrQuMsNx7PHu:22 a=AkheI1RvQwOzcTXhi5f4:22 a=rjTVMONInIDnV1a_A2c_:22 a=jSdgSmmMQx7r16_JUfbt:22 X-Proofpoint-GUID: F2OwuI9QThmm9pyU-1T7zRsQmr0jzRzf X-Proofpoint-ORIG-GUID: F2OwuI9QThmm9pyU-1T7zRsQmr0jzRzf X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYxMDE0MDAwMyBTYWx0ZWRfX/3QE8vyHYAbf DkFjtmLKKs215NYGgdXqVtj4K/mgp8OD4KchyIuAfCcfEzfBhCRTPlYOZg4U9lQV+eyFlsTSWN3 S/b4lNLV7raUGZs+q0ATtP+HOaIRp+hlwlu+CP1w1MzEepX0blaL1JiP6FHOCszAfhp/3YTELv1 iJJpOx60A5AUl5Wz5vIi6ixN6c67PIpUtDfwwTDfFbWTDm3ZMzqpIlMNY4wWwuYyPqbP4wcAtbk 55F77UqJzARgDsRRKatogy/5DpwAgLfWRWAJ1nAwxycoeTSodG2JERYuMdyIJPfGD+Wryqo4Fod ijJtEeC5UlpmOHpyr/vvH/m4EgQxMNocQXuc8Cj12WWHSw+kYP8XMSN/LD21WYu0Qt4OCKWa3lg LbD+pc5+HNbP5nweIptbIqnvHxsGA4qYz9GVP8WvSnxnrf4vdVfdjHDWnVVqntn6DRa1SQmG91a e03dofdYecu08/j6Z8w== X-Proofpoint-Spam-Info: AW1haW4tMjYxMDE0MDAwMyBTYWx0ZWRfX10ODLI9kVvai cxrPtZwuBU3ZGcOB5APhKtfkM5hZH22GJ+clECmYW0ysEOzZcEBJUkhhT4Hwvgmbt4EJi9gMIw5 9bx3vUftfYnw1cbAZxdeEvF/T9Cn9q0= 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-13_01,2026-10-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 adultscore=0 phishscore=0 suspectscore=0 priorityscore=1501 bulkscore=0 spamscore=0 impostorscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2610080000 definitions=main-2610140003 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: 1791939294343158500 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 12.04. Debian old old stable have broken apt sources for instance. Ubuntu 10.04 binaries segfault due to missing vsyscall emulation on modern kernels, so 12.04 is the lowest possible. This unique dockerfile works for all qemu versions, with 0.12.0 being the oldest we can build today (based on ubuntu 12.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 | 76 +++++++++++++++++++++++++ 1 file changed, 76 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..611ecca9859 --- /dev/null +++ b/tests/docker/dockerfiles/release.docker @@ -0,0 +1,76 @@ +ARG UBUNTU_VERSION=3D"UBUNTU_VERSION_build_arg_must_be_set" +FROM ubuntu:$UBUNTU_VERSION as build +ARG UBUNTU_VERSION + +# 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 +# LTS < 14.04 are hosted on https://old-releases.ubuntu.com/releases/ +RUN if [ $(echo $UBUNTU_VERSION | cut -f 1 -d '.') -lt 14 ]; then \ + sed -e 's/archive/old-releases/g' -i /etc/apt/sources.list; \ +fi + +# 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 libpixman-1-dev +# 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. +# Ubuntu < 14.04: git has no --single-branch, so perform manual fetch afte= r clone. +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.git --depth 1 && cd qemu &&= \ +git fetch origin "${QEMU_VERSION}" --depth 1 && \ +git checkout FETCH_HEAD && \ +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:18 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=1791939292; cv=none; d=zohomail.com; s=zohoarc; b=jtenJDCmRjbJ3FGOvoRvSIku+f2MzKtPl2MXdB1duriiiMW7IpNoTtgD8NZ8ZHxP+5205Vt9FXhgXN68z2vaiD2/lMPc+fJ76sPIeP7usdvBYKtE8qdzhAGNdIDBrpHiFbDRjMKi+/LYUinRXZ9kuU4G8rNWjzOi6k2Nx6ZR4xA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1791939292; 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=vChicHzJdk8fx07dp3F4nySlwDIblWP3jMlYYISqgzA=; b=k4JiIfm6P22gA/LAP1C+dHsMbkEwH0eh3SE4pdE0kZQWmeFVNfrUyti81DJiSaWIcnx0jNdat8RM0/KSfenOReufLctkOLtl7HcVTC4aGvxOy1ysYfCxkIYLPavJa2fPPrL7HrNhofGcmiS85A6smLJ3Iw4opVoU1uBs/oQ569o= 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 1791939292518424.4983690387328; Tue, 13 Oct 2026 17:54:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1xGnFu-00078O-Tv; Tue, 13 Oct 2026 20:54:07 -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 1xGnFs-00077p-Tz for qemu-devel@nongnu.org; Tue, 13 Oct 2026 20:54:04 -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 1xGnFq-0004KM-Gq for qemu-devel@nongnu.org; Tue, 13 Oct 2026 20:54:04 -0400 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 69DKx40n1402944 for ; Wed, 14 Oct 2026 00:54:01 GMT Received: from mail-dy1-f200.google.com (mail-dy1-f200.google.com [74.125.82.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4h9psk2aqn-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 14 Oct 2026 00:54:01 +0000 (GMT) Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-351788121cfso5338340eec.0 for ; Tue, 13 Oct 2026 17:54:01 -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 5a478bee46e88-359789fde97sm31823564eec.20.2026.10.13.17.53.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Oct 2026 17:53:59 -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=vChicHzJdk8 fx07dp3F4nySlwDIblWP3jMlYYISqgzA=; b=NRWsd5/O4Mqvvcp/vSP7XuQvJET EVM/C11n/og95sDPszlsB4RJUPimEoZV1Ly3fLDbje/j0DRi3o5bhskfXc1y/s3R v14snUGZVjPXvfXEq4QQga6znta/m3EmYcpk3TOB+JEYa2Oq5ihwzsdHoGFfuRnC GiV5Srt8+O5SUAX/iyLv3Q1YnilixtJv4AW0BmpI83sbkqWZuPM5Br8y+PDIxFip kZ7xplTQ4OrwY2Sj1WkaOpVzI8TdVKV2KwwYciwMzvQkT7EOazV4wlljVATAJBdU ViRR9aoFGRmeb/H5BSUOeJ2OgzN/c56EfrrSGshL7Qq6dxYzs0lDY0QKZPg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1791939240; x=1792544040; 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=vChicHzJdk8fx07dp3F4nySlwDIblWP3jMlYYISqgzA=; b=LIJHg6+T9nG1y5iwu6gCEOCeSMcOduQcerChDIZbRWVQuqlKgPnDmQDD8a8y30PIc7 XLR90pkRrHv6AcbmlrRBmETBhjP704/bIQoCyUvcprYpWpy/w5qWLts7KrVqExukCZoR YTPo6r8DPE6dt3dKXtnA7ZXfUT1TqCjWnVxYTSlb42Z+trLYnXf1O6mjoMxMfLKKuny3 SOJvj6c9iPtl+i08gW7HKsONmKIwLjRqz7F20o+FmA2S2fyR5McbUnnvSglvA0zkk81d gTSuaZvIkSf/BX+hNZP+6SbBieT0l7GqjUT7FguEpmn66xiG7ufCOcNkxRibHoOLa7bX 7DFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791939240; x=1792544040; 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=vChicHzJdk8fx07dp3F4nySlwDIblWP3jMlYYISqgzA=; b=J/AVu13UpbmuPo2L73jeC8Z9w67IpdCu7ncK9kUL5zdiAQHkZTsavGrLDnzXY+RsTK GSsXXk85WcH0RnuzEmJSYnORq7rTnDcD/XyMdrbbuWgCZBXKuKWF12SPuOVqqy4WrFhG uiiF05sEzGKQlHDIh6lYXClL1in6ek1e8OgTclDdwNd9bZ/s1/1kVlYOGrWl+/ozQaxx 5XTgZumUCapiVVgHCmsNgvn4EFWGVlTPDOQjZLCO9hGuzEDisjBpnMoIITCYl7egBvSj iaXCOeHV1mhpDju6OtdlNPcQUO6zMDDEQH3ydTcQ05Kk0rtpO6/ERNmSp8Zz+u6pLx9/ xLMg== X-Gm-Message-State: AFq9FYJxgRCDdySCqmqAUoiLuxv4t+ZUv2Ag5UcN+uOdckoj54dr/Mi2 sdEEJX5Q14sWWC967qSjbxrlwvgOioWYsvMC6qUjAh5TbOu41dE3iBzECkG2UEn5LIZZoru+oln 9ZE9nAhRYT67tn2CRdFtvLuNfXbRzdrAlLSjJgUXi7GiP9mB4eIehykVvFeeGY5fw1g== X-Gm-Gg: AYBFou0Dgs9Pu6JtFWp3kkF6Jz3vdbbgrdW+fA3rjtf3Bfz55YQu+NCBSiuYtpbkB4Y od7BRTGB9sSVxxnA6AhAscceRkJ29hWOTohlP9rU4hSj/om+/OprgSpffF8LbLtW5VVDQsBVsjp fO5eiPc/o+Qt4sl8AAUWPa8V8fZ8vl5+vgAJTlRVRXS596GK9bFaM2qWnYfzd6TLvd52Ck+5qTx cuvr6ByWLfFWyNaw8vIxfS6uWLaVZMqONGq3YFmu2lxEIDHkKQlFg09TfrEt4E02a9cLlrfywzn wrT6oggYLwLtGLrVwA4tTHGLF2aJ6g1qY26QfwA3XSWnPOyI6QAvApQ8zue462jLHzwpmZGGQMZ K9OdN3SLsavCyL5L1QKFhPX2i+y14/d4ulMuTmtMXcEz0fMTVf1kMZdW5MkK3 X-Received: by 2002:a05:693c:23c6:b0:351:1f56:3a89 with SMTP id 5a478bee46e88-3537e00a83amr28132784eec.23.1791939240300; Tue, 13 Oct 2026 17:54:00 -0700 (PDT) X-Received: by 2002:a05:693c:23c6:b0:351:1f56:3a89 with SMTP id 5a478bee46e88-3537e00a83amr28132738eec.23.1791939239730; Tue, 13 Oct 2026 17:53:59 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= , Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , mjt@tls.msk.ru, peterx@redhat.com, Fabiano Rosas Subject: [PATCH v3 2/3] scripts: add build_release_container.sh Date: Wed, 14 Oct 2026 00:53:37 +0000 Message-ID: <20261014005338.34657-3-pierrick.bouvier@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20261014005338.34657-1-pierrick.bouvier@oss.qualcomm.com> References: <20261014005338.34657-1-pierrick.bouvier@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: HxlbkPrlKRaLmJNy583Q6LVFWTBYpY8t X-Proofpoint-Spam-Info: AW1haW4tMjYxMDE0MDAwMyBTYWx0ZWRfXxife8hkHoejU h2wR+ulFMCfRZyjQOIifyZxIcbL1EqgC3GFie2kxYHIoxMNlt2jTy/9O6FIgaq/C47smPvlVOgX GGlvRPGSo79ZJSC+KAMbR+RzrdaxRwQ= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYxMDE0MDAwMyBTYWx0ZWRfX+KE6cVHwGdur HCfEPrHzzd8j1HDb6os1vKEWZqp4J5VfL3b9FOIJSXJv1JPbwgcv/oCDAWqyXAXEE0/S9PFUupm uPvD/3vCEV8FvJeRchpcPVMSgOCVkmGK35sRxXGZi+oFHHDpKtoumqeMraUIIhn/bxYtlVQzeB8 kCK3p1+H6YQwNaPsrI09X6008nWV9Zg0TRM8VsRwY7/qu+QUj2FSfhXn2u8M3zh33lvVHrGTGKe zaehn/9S4y8Cdx8uJ6CqPL08gTGGSaz4EhOdqnVOJecNQH4FKloYc79W3qJDwTDViXjZYWGfcrk 3CFr9TouG41WKWqt/yRUkobjzlRMcWf+jELvrv/4rpeo2ejWNGqmDh6fQbAxh5B9jCzkwe1ddrR sdaEOY1bODr2RH5Mla0k0p6W7NQGy/RPJqUlWOEw1tARmoUdJZr32RLDJ2vBlJmlbwKhAro2seq I0l5aO0obrxsaI0wdzA== X-Authority-Analysis: v=2.4 cv=cbJHPXDM c=1 sm=1 tr=0 ts=6aced2a9 cx=c_pps a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=9852oil1ID9t5xBSyQ/BEA==:17 a=660iZSQnnn4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=HuU_MOfc58QDrxAvbQAA:9 a=6Ab_bkdmUrQuMsNx7PHu:22 X-Proofpoint-GUID: HxlbkPrlKRaLmJNy583Q6LVFWTBYpY8t 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-13_01,2026-10-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 lowpriorityscore=0 phishscore=0 adultscore=0 impostorscore=0 suspectscore=0 spamscore=0 malwarescore=0 bulkscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2610080000 definitions=main-2610140003 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: 1791939294436158500 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 v0.12.0 $ podman run -it --rm qemu/v0.12.0 qemu-system-arm --version QEMU PC emulator version 0.12.0, Copyright (c) 2003-2008 Fabrice Bellard Signed-off-by: Pierrick Bouvier --- scripts/build_release_container.sh | 62 ++++++++++++++++++++++++++++++ 1 file changed, 62 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..38910f60e8f --- /dev/null +++ b/scripts/build_release_container.sh @@ -0,0 +1,62 @@ +#!/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 LTS containers, as original repo urls still exist for old +# distros (>=3D 14.04). On ubuntu <=3D 10.04, binaries (including apt-get)= segfault +# due to missing vsyscall emulation on modern kernels, which leave us with +# 12.04 as the oldest distro usable. +# +# The oldest buildable release is v0.12.0, as previous ones require gcc 3.= X. +oldest_release=3Dv0.12.0 + +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 2012 ]; then + # oldest ubuntu release available with containers is 12.04 + ubuntu=3D2012 +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:18 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=1791939292; cv=none; d=zohomail.com; s=zohoarc; b=moYPhWkRBjphPYoyVDAxrWXfiqTEpnAP5KiKbdyr2mEIsfaedHjAVgOoVQuBYzf5l+X+htFNt1cME3PcecyqYHXe89h3EXep4x1ajGhLtXF2lBmlz+/iDy2quFuasbi9FGNW12mjQpk1ZLgnY4NgQwceldFO52+K/biub40x+3U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1791939292; 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=cG+9+UjqU73mLQsoMNj8wRvHWfQWm5DtP5psJ0TsNd4=; b=XxUxxHMjdgPlhcS2UJU5CwWh/MB1Tj8Mgtb+9zcFRbREM414/aLl2X/5WSQgTGvRGcbQPFv99GrjnGmel9cdi8IC5g0a7Cg4ex4F2AOouFGXdHT7oS+YYGwa9YV6M5Z3B+Bqk5QMABk9v0UsfHmAZZZcVTdoWGlS0XOFung/gs0= 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 1791939292556645.6208235935283; Tue, 13 Oct 2026 17:54:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1xGnFw-00078p-AB; Tue, 13 Oct 2026 20:54:08 -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 1xGnFu-000784-Er for qemu-devel@nongnu.org; Tue, 13 Oct 2026 20:54:06 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1xGnFs-0004Km-KL for qemu-devel@nongnu.org; Tue, 13 Oct 2026 20:54:06 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 69DHuoUZ1125161 for ; Wed, 14 Oct 2026 00:54:02 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 4h9sg81fvr-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 14 Oct 2026 00:54:02 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-357e2bc3b1bso6025773eec.0 for ; Tue, 13 Oct 2026 17:54:02 -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 5a478bee46e88-359789fde97sm31823564eec.20.2026.10.13.17.53.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Oct 2026 17:54:00 -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=cG+9+UjqU73 mLQsoMNj8wRvHWfQWm5DtP5psJ0TsNd4=; b=NuEUBkeanpOskhYE0SDSgkaBnNC a8OlBRxZUGqqJfJPsDhP0FCkAS7H6TlnlcpHP/E8EIPYHjj3WMkTzWBE/nPKp+1Y G8eQnI3lqrShrBRLea9UZ5HTBfOsvPtTV22PcImeJ1BQ4XOFlgk4iC5XD7z+NGAx tspjT7il1+nRBAbzKPKIoHX/infLq3oR7uEZax34AMCkAPeCi1f6VTEW9+QTguqp tH2ejPgmhjp/loVxYBheGyPEz4c9bLX4Dmu0vFHeWytpVVsv8QQkqN8yn5Ptd2SR q2k5vk5blM+mkCHaJ//J437DR9rW8+Ykw00umxEQKJsUECsWo6ds1XIXbsw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1791939241; x=1792544041; 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=cG+9+UjqU73mLQsoMNj8wRvHWfQWm5DtP5psJ0TsNd4=; b=SkjMKIEvsckXyeZQsCSP5H3Hw6xfyeKVkYPEbS/p0md7BapU82XzSchz1TxLIlrf+z EoR/++9Oti4EwDr+FbuDKzOoxXm8Ecji4VZmuxqLdiolCG28j6FnT4kwj+iwTeCMeliN SIl35kO0ykB2JhuG4XF9qj51KO24zvY9AgdVmQpVneNHLOK30feYu//3+yZLdGebsrrR 1El6WSQDVcIrTrZuq8wjXXTaDDbfICKV4Vxy9uEuxJCoWim2fpgGsJtWD7pLGEBQAs9W lXHz+zREKaXw2qKd3wp9xKIfz7K+mCpQyESkX05JvVZOugQ09tYABPpPE08a5h2Gh6Jg +lGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791939241; x=1792544041; 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=cG+9+UjqU73mLQsoMNj8wRvHWfQWm5DtP5psJ0TsNd4=; b=Hxr3g5XOuA8yu1gBbNwjTsc+LlIYwo5PcBYfkjNZToDXfY5+Bn9UNq9+aqQeq+Pww2 VhkYZ6fOEBx6LqNogHbEbZ6++xWOLPbXdZ3OLLwOcnFFn+O04InykJ+LkM4h+9iIWdAa vWD6MJG4TI0hke0FYkwMfaG5B0xaPWOrY4Bdyed39WgCR+t0u5dIe95Rp2kd7VAGipo9 rLrDfaKRamNZLedcJonDO+n5xgsAhpbHcx58gV8GK10smP26OYrEHsClKh7bX8iXVTkH uIpgoqKv7b4pZSDKh7SL93PC8cPE0rIsDVWjdkxmFJg1hR8r1/tcQepOncmKmK+7GqIW 60Lg== X-Gm-Message-State: AFq9FYL4mytiUdVKKV4josZ/M/fSubUo+J4kw8tF5RvCFOFxdRxXriMa PQ/Il+rVlnJN3B6dGT3B+tHr8UvUIqGAOeKfDhJXzsoTfx9VZHBjdRBivFyxuP7F5mkv24tE1Lu moIwdxXLjK7mn5PQ8SZxZmnQ0u82EtiFO3yBPX+guCBQpOeuP0YV2cG+2qEO03BwsZw== X-Gm-Gg: AYBFou1bSu152KQQ9kPf+Spn4lMFE9JjbOB8+4GDTR0mJ9shWWk9WxtxEHv6U3WZLXD i80itsEVxrWVdr4wrKTZjcRfcjcpr3mYkjKvJ9bdiX1eIuvt4a+WrVhuTC7hYBwzkofeXWz+EjC vm1/eV2CoEVEA2ztXByk+3thI5oM4+liCAANR4Kh3NdZgPX5KEaEOdbqWnigIcr08NKGiT1g8C6 TLxd6y2JepMqaaUzYHMuT94q8Y/s8X9fGw6XdtWSTSgw8F5H2PSrptMuCw229TzA9XKUlG4yAbs i0ZMBsW6R7220IwVmbLuMZQp2Xu8vqWuY8sVdyMwr1z3Sq+AUvopNnmE0AWvSghpGx61HcS8gFk 8WSFyy9sqk5jAh41p+SosgdUUN0llDTONk198fMLwpZqoqXQuTh0ljejEv3zX X-Received: by 2002:a05:693c:415c:10b0:351:1133:8780 with SMTP id 5a478bee46e88-3537dfd18cfmr21762020eec.25.1791939241441; Tue, 13 Oct 2026 17:54:01 -0700 (PDT) X-Received: by 2002:a05:693c:415c:10b0:351:1133:8780 with SMTP id 5a478bee46e88-3537dfd18cfmr21761972eec.25.1791939240801; Tue, 13 Oct 2026 17:54:00 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= , Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , mjt@tls.msk.ru, peterx@redhat.com, Fabiano Rosas Subject: [PATCH v3 3/3] scripts: add generate_release_wrappers.sh Date: Wed, 14 Oct 2026 00:53:38 +0000 Message-ID: <20261014005338.34657-4-pierrick.bouvier@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20261014005338.34657-1-pierrick.bouvier@oss.qualcomm.com> References: <20261014005338.34657-1-pierrick.bouvier@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: jAy-BFuyWA3530tf7WequEWki77r0kpP X-Proofpoint-Spam-Info: AW1haW4tMjYxMDE0MDAwMyBTYWx0ZWRfX/oF+bAY65jje 9vB2qYF3JH0f3RopRT7MhhdO5Y1X40zPN+f3/6UiqH5fgeux2BlvHhMDrZghGB79XQfEVxaXOGJ rRpJN7LI75mSMcEV87uxyeuuC/Bwsjs= X-Proofpoint-ORIG-GUID: jAy-BFuyWA3530tf7WequEWki77r0kpP X-Authority-Analysis: v=2.4 cv=PYJqFShd c=1 sm=1 tr=0 ts=6aced2aa 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=YMgV9FUhrdKAYTUUvYB2:22 a=n6MYwUk4AAAA:8 a=EUspDBNiAAAA:8 a=TynfjPBJ9GV2hGmLUgYA:9 a=bBxd6f-gb0O0v-kibOvt:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYxMDE0MDAwMyBTYWx0ZWRfX94qIZSfZGAzV b6HKpqYBH4lD2hMy7FsrohfQi9bY3rpD4AX9hZ3Sid+EscBFPnj2Dv1FEz8HncfT/ftNHBpwMOJ 94FDRDLfWtLgKWtLmQoY3L6feopCKvsvpBNhR9xuWqTKnKctW2gIMKCOuUdYgORiA4+wQqd6tgT g2dhIcyXebb6JpYLm0EZvYd0VHsIBcGmAHBFQmuKzSThXHYSVwJgNMKvyAtN/letPlHbJlGeRG7 QyGH/pOPBZhVAK/vxOi62hMZIOh9v3hB9DKtXDL34SpQW7njVw4OBIudxv+ficjx3dZLKe8y0Ju 0xCs+ew+NDC6gRdsb1EiKGF0JuKFqv4TIgtxt+xvnS9hEA/SztsUbbmkWfzbr1B2cFBxVSEkhFk OVF6PJ+3T8SebSHOl9KFZNoXlyByv3yXXU1W5ZyrP7e+oHk3uhzCjn0k78mVy1HSZdLZaBQ+IkW nOZvVlD1sOjh0gvOptA== 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-13_01,2026-10-09_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 spamscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2610080000 definitions=main-2610140003 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.168.131; envelope-from=pierrick.bouvier@oss.qualcomm.com; helo=mx0a-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: 1791939294355158500 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 wrapper scripts to all qemu binaries from all buildable 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_wrappers.sh qemu-releases/ $ ./qemu-releases/v0.12.0/qemu-system-arm --version QEMU PC emulator version 0.12.0, Copyright (c) 2003-2008 Fabrice Bellard $ ./qemu-releases/v11.1.2/qemu-system-arm --version QEMU emulator version 11.1.2 (v11.1.2) Copyright (c) 2003-2026 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_wrappers.sh | 71 ++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100755 scripts/generate_release_wrappers.sh diff --git a/scripts/generate_release_wrappers.sh b/scripts/generate_releas= e_wrappers.sh new file mode 100755 index 00000000000..3f37ecad4a1 --- /dev/null +++ b/scripts/generate_release_wrappers.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 'v0\.12\.0' | + 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 wrappers 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