From nobody Thu Oct 22 19:27:19 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=1791674268; cv=none; d=zohomail.com; s=zohoarc; b=VaBmnGwBFhpIkmirX2cbsYkeedln9RaijeIrw/Zu/Cr7HLm4/0tYvyq5tbOHwytEawdd2iEuC3tpnBivjq0jtnzfn+xRjRT9ibh1z1jtD8YLn9gabaumeq8lDi0tDFB4LN6DvIcmlJWeOCmnr1EaDyHgzz8syFOwNxkKfUmTyFU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1791674268; 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=up199dogk/UbIVHHhg4rc/M5BP1+vi6CFnHEWl4UEG0=; b=XyVYEcbXoXfgTlDjXacnAxL74XgPmXyNO9rrusUsGo+VbnnPFmVZB57WZ4uMCVAB9RBK31XMa7JTTBtoW89PTe8Oq3A4qQI0U2xLuDFfmXvD5oXazqvJMV7pblJ0mpexsB63MkD7Oz7fn8Dowt4XE6SRCJyS66quQEysqIuEn70= 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 1791674268790909.0632973864325; Sat, 10 Oct 2026 16:17:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1xFgJT-0001Ei-09; Sat, 10 Oct 2026 19:17:11 -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 1xFgJL-0001Dt-BB for qemu-devel@nongnu.org; Sat, 10 Oct 2026 19:17:09 -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 1xFgJI-0003qm-4Q for qemu-devel@nongnu.org; Sat, 10 Oct 2026 19:17:03 -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 69AMBceu1771071 for ; Sat, 10 Oct 2026 23:16: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 4h7deuhy2y-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sat, 10 Oct 2026 23:16:58 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-357e2bc3b1bso1375870eec.0 for ; Sat, 10 Oct 2026 16:16:58 -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-3537ca67b21sm18285396eec.11.2026.10.10.16.16.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 10 Oct 2026 16:16:55 -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=up199dogk/U bIVHHhg4rc/M5BP1+vi6CFnHEWl4UEG0=; b=JC2kFXG5zJ9ybrkgJJtE0l6uIiA xK1wbMaNS8v8EeVwK6vR7PYwrW0Lrm/ZcKq6K8WZLZAaNBSH9tBU7nUomw+8JVdb 3uzZlxohcPvmcqlfRDxBzOvS2XO/FH5VuXNNxXw8jC3rHsrBt2qvgWWuRSShEufG 3PzdO2E9jUfeTw4GyNHeGX9kho0QY34dMzEiUHhmuypA38g6/V66TI95iZK/mWIs QGIOstZ9Ct6kVyWegjHCPBLsAaDdi4L8Avf4nzVqBRUFiXNYxWG8nuq0jOk1P7dH RxMMICx/q1NGr/1UaaCEQmRNPEznTl//ABr9+Eg7/ZCi74aGlig8bNZsOTA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1791674217; x=1792279017; 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=up199dogk/UbIVHHhg4rc/M5BP1+vi6CFnHEWl4UEG0=; b=O7z4kcQ6wdFASvxmzZ0HbX+cMJs8/VAJnS6Py3dhaRvhJW4YRlbL8y6rNZf7edVbBb a37WUUE6+rZ9PLBkUW9aELNG9adUlNnUUlOkR/AystMwxLsayIP3Vdi8VieIk4XD6kzL P84/xKZrjaishbH0yLdLFtDTZ5vfMEbXKtWHCMQGMpDLnXLrf/zRYzP3sJLYgarWxzGj N4bwVUc3+ZmxSPlQPMcYryxk074B0oYtZsDaZGNLRcRAkztvHTLET3Alwi2pp26BqwLZ OmNalgxDOaLYu9jTLp5mZHceEDBxZcUDiL4nrjE+rxWkby+UQi9dv1VzGY9szPlxiBAD j9Ng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791674217; x=1792279017; 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=up199dogk/UbIVHHhg4rc/M5BP1+vi6CFnHEWl4UEG0=; b=1ZlkYnTZoQbY3l0mpMWNXQwyPqVx12rSJ4YHDJxtnhqBgsEJkf44ropJP7Hdbpn8oZ yy1cJeRnM45/i7zSlgXUkYEwbmL0lkvHE8dIsBfbmkY/PFOGS/DylqJrWPvzo7NWvIw3 pYiDfmEFosL6nI9rgM2FLNhTIUNjmNbMgLrDGQ7gdwl5oKD7Pil/imYeKs83lyvlmjlX GeVIEkRKL1W2uZWCi5OIGtCXuYa/k7tNOSYK0vCVC9+Y0fLXNLQuK0DzuNPYc8nTWs1O ARZF7saE/1cl+f93+6KEpccS1yR0wvfqWjHmarvW1lxIz0JXUkrR1Z2VUvZSvyRk12Nd Eg5Q== X-Gm-Message-State: AFq9FYLA02zrhz4imtjPSS4Vyyk+yoBKFYI/yWOklB/O5NFVUBncCzTj oVNZUh+jyJuJt3CsFOwuL/GktquAPLSnv7+AgHarjVZZk/X76Zukf9IQ9qKMMHWrXQpvvHRAZ1R YAXWQh03oRnZbkCM4fSrRo/Prd62MUnRoUQrmOxBd+go0nTJB1qc0afiGWsNdCA/FaQ== X-Gm-Gg: AYBFou33f9JhRMepmqYbFFEFWUHxAKUAv3Yci3jNZQSpe7gKTm1aFn/fC1efMivB8n+ 8ZQNGIRDzzCDjV5elABuIhaZrDKDEZbKQBS95x5ARm7x1gBJ1IqOcOiiEDTKNib2+jf2wN9/UOg 6SsCG2WuQqZbE/4TSl6Ofqgh0A5vDIPCxCbqTcWXMxIXbv8wS36r3YYHRQk0ds2+r+jannGLH9W WatSc2YoK6rF74TZDAZrtbOsmB1ofpQmQkQ4addFeqSc1mX04vMIq+7pSTXZstCWr9Phk4gFFaW HaemLTzM8HAyba10eF1R33GBvsFuCHS11bIXqmx923NsVEqxhchTKAwxt8IseESUPh6gpUF3by3 e+aY7b2SrkzUCzZWDPA+T6Z22NrPSzOjVt4+s5+BUu50XL5tQLomaUkMPRkX0 X-Received: by 2002:a05:7300:538e:b0:34d:2c1a:987f with SMTP id 5a478bee46e88-3537e033581mr11272176eec.35.1791674216785; Sat, 10 Oct 2026 16:16:56 -0700 (PDT) X-Received: by 2002:a05:7300:538e:b0:34d:2c1a:987f with SMTP id 5a478bee46e88-3537e033581mr11272147eec.35.1791674216177; Sat, 10 Oct 2026 16:16:56 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Fabiano Rosas , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Pierrick Bouvier , mjt@tls.msk.ru, peterx@redhat.com Subject: [PATCH 1/3] tests/docker/dockerfiles: add release.docker Date: Sat, 10 Oct 2026 23:16:46 +0000 Message-ID: <20261010231648.3105-2-pierrick.bouvier@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20261010231648.3105-1-pierrick.bouvier@oss.qualcomm.com> References: <20261010231648.3105-1-pierrick.bouvier@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: JKYhfdHX4KNba3RFp7UaCAP_rNaol-XO X-Authority-Analysis: v=2.4 cv=Aud7T+9P c=1 sm=1 tr=0 ts=6acac76a 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: AW1haW4tMjYxMDEwMDA5MiBTYWx0ZWRfX/+ADOkq3SK1k NoWPCRlJgKxuPbQimBHPOIAj2/Se6+Dd5R+dqLnf59EICSwIwfh6Qh+Ytx51qtlVjiZVCbPFvAy OoQZbYwsn47iwMKGvRo3nXh2pEzDzFw= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYxMDEwMDA5MiBTYWx0ZWRfX1S/NWu7KbtSq BX8gFYPq2JOfDOOc2a+dYJ9rxhX+L47Al1d1IVpsKsOdOwE8ltuZv72xOGDUgyTKwjqwExWaP24 P+dMc2V03wfKiAFwljokLNQyIc2Hg1LpagD8s0Ovl9zCvMIssduJLXwYesIj5Ukl1UWhN8dpBHQ LHcQ5Clx6ug/0frEwdsG8Jn2l0KsHtJVb64ov6u64vuRwEMdY1jt5DHZdjNVBtVfTTsKg49bhDd Enc+cVcH0osqEZL6xRGzzCb02vv17UtzYd9Umt/7uIZ/5eUhYmLm+Filv+P0voI0pc20CqHFPCE nIFakkq9QefOCdONi62OzOvoTNw43HiD2vp8TLZFhPDanw9Vk6/HuORoSVz+KMT11L5G+zN/7kr I3hBa32d5GEX2do4bAWGHsvrq4HaLdfKnRKxtrXRNsEgL25S3epZNXKiCeLZNTVfwztspUudgBd suPnp9yJJa5ay0QWKzg== X-Proofpoint-ORIG-GUID: JKYhfdHX4KNba3RFp7UaCAP_rNaol-XO 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-10_05,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-2610100092 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: 1791674270607158500 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 | 67 +++++++++++++++++++++++++ 1 file changed, 67 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..24fcbf7c719 --- /dev/null +++ b/tests/docker/dockerfiles/release.docker @@ -0,0 +1,67 @@ +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/' -e '/archive.canonical.com/d' -i /etc/ap= t/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 && \ +env DEBIAN_FRONTEND=3Dnoninteractive apt-get install -y python3-venv || tr= ue + +# 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 && \ +(git submodule update --init dtc || true) && \ +./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:19 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=1791674282; cv=none; d=zohomail.com; s=zohoarc; b=LaBmdwsC0eOCXyz2dzdKNZaG3GyZ5hYJZesX8V+TNr3Zfl/wlaMvWzdzlZKa4XfKUZvRS7N8pbIYNS0LefDR9/dSnfewJd9C3Y8HWgosvg8PAjkx3aiZbe1S8Oh8PmdDUQ/b9OvzmabyY+1EfLIYbeo8Wg9y1PcWQWTbAZoMUaQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1791674282; 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=ZZW89slsVhJmKi0bW+s6RoonouoFNfjNU4R2koBspkGlGQ/8RSSCm+d8EjmxF1NSrmBqy7T4HhBPsLpUp5PvhxSaahPwaf+/KqoJk3MaQd6nicOIWsZCs6flnBHlXdddkv+pudQjN0nQHY+TFyxQev5Xd4WmBb6Fln0+bdB58rk= 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 1791674282098333.0641991792079; Sat, 10 Oct 2026 16:18:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1xFgJS-0001EV-Ej; Sat, 10 Oct 2026 19:17:10 -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 1xFgJK-0001Da-8y for qemu-devel@nongnu.org; Sat, 10 Oct 2026 19:17:02 -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 1xFgJI-0003qo-6F for qemu-devel@nongnu.org; Sat, 10 Oct 2026 19:17:01 -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 69AMEFTe763973 for ; Sat, 10 Oct 2026 23:16:59 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 4h7dr7hx90-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sat, 10 Oct 2026 23:16:59 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-33713e5e6daso1293981eec.0 for ; Sat, 10 Oct 2026 16:16:58 -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-3537ca67b21sm18285396eec.11.2026.10.10.16.16.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 10 Oct 2026 16:16: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=E6LNlyppH92 5J5W84+bwby3Bn6N27zg0oeJiiMV9S10=; b=GmDNB7CjTqA5zJc4hZ5YSLKV65j Hgyoz3764P7nTnour00meqbCj2nmyGGKIHo9YgquuCiqoDR3OsFljphNutAcVZNX U/IoEHdCJ4sqJztMuDQgzpaW7KkFo3FBiZJH1DdsCPHcg0GinZVLLMU8+Ak3K7j+ ZHKl8gYc+1Hg62YWm0Bv7tsnUfebxZEmLSS/xdikDXhnZAy9hoVmv0NWupg/pgut E81Y3+hWV37CNCeeQySSJSFxr0WHL2X7OWKI2TVqQSeep7Fs2StR9r1e+LigF5HQ 1TnzyPnyzOvNmjn5Dq1gCbf/Dd2nfW+di98JmfOplSewZujHcBA4KQIR4yA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1791674218; x=1792279018; 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=NlfeDRZe3sDBq+8pzeqLj1n+vJdLVlBRXFpz9Lrp5xHAS3qwspmKbFuUY+ulXSrYfm CwzXCNMMdgRUxdoz2cXbxpM2qcfhnLA0eyj3AdSdOdBU+IPWKcKuQ6xPj6ZLo5EhDeW2 b8z5dXM5LirB7h9PWm6RMVgMUxnjQujqEs1KBWfN2b7tGHSkuM/Lb4pTTb3wG+NKLCX2 XqPUJAFbSSpbkXjpt+8vuGX2w1q88U5yWdvL38gzrapU7u57nP5tUlO9UTnBcL0ktjh/ Ne2mKr78IW/FhQBnvDG5zbD33hiIo0YdE+3mkG3v5vg/Q/1KKsaZgyOytXHrhqwYMQpq ClGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791674218; x=1792279018; 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=dgX4745sChIPuWgDCOtMrnSauI2Hv+dJ7bw0x7FAzx3W3jMyPAI0dUnMAxt7c9vneI vQz/DCFtF/HijobXBlo4+RQLlYv9HyKrzGl1qsOFC28Msk3Y8srffIIE05T5E83IqpsW ZqYgwjvI1nQXpl11637FrYXM9aS2B7OlqI3bSPW+4V0mWQiPPFnNCxeZ6gmxF7pve0CG +gzWRIH1S8DftFEN8WuwW16GwOHRI+nUq0O2QP1xJF+YdiMQc8ygcGe5h5hqMdkoaWVa culNseV6t/J0nhH+ZKf3leT77bc3rhu4EAQ1YoTYSKusNAkE8YzsfEmlBF/U7eP8vQb2 2G9w== X-Gm-Message-State: AFq9FYKN/0605YfKPwsyIIxujHWDbQ2UO93AWRBmARNUEbdzMtDkquah yDO/aeZ4OAaEvSZRmzJfTlOcHqJ6QsYFfQbcPGtlaGsCkyKZUNjp1F6W6+8jWyjISAAg1+/sNLe oADPSioYlCee8pRLCU99R2hCRvkWaytSQfG5Rgg2//EsYU6XLiN0CG0esI9C8PEGLCg== X-Gm-Gg: AYBFou2kWT/xR2PyNAK5jBNsfyyS7TUn6qQ/9pJ3AXwOQK9qYbmxZWT1qKLwZtRVlFd UwSGtCrjqIpxtAtOUDrpMgkxeNNy0CqMyHNCdjBg4nDFjW8OFGbqDwsEfPFicIWR/iBvgprk0nr bxVKmTsnFWTlE8751UdIEI7NwFKx4Qfeo/VvuDqEZCtvnmZf1anC2OClXRy+KdgiD9aZn0P6RGo X5uW2mPZifSmpCp0J9uc8E8OLsl7JBKTS28uYHcFmWj+ODrsr3umIkh2Y22RfbKv6MmB48dacGO OckQmQBrc3IlljRKXuCIJNfdjyhGn+Xufbvu8ccl6JH7SdxfQ62H0qqX23YNk5twqUertFqkEF3 8EEEOP+/QyP5AHIty+1OkWBlct38ejs4EvnK8YmY4OE0muJR+Z50H3ZmYE4ws X-Received: by 2002:a05:7300:ac81:b0:353:7e33:664c with SMTP id 5a478bee46e88-3537e3369c5mr11507357eec.37.1791674217858; Sat, 10 Oct 2026 16:16:57 -0700 (PDT) X-Received: by 2002:a05:7300:ac81:b0:353:7e33:664c with SMTP id 5a478bee46e88-3537e3369c5mr11507332eec.37.1791674217302; Sat, 10 Oct 2026 16:16:57 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Fabiano Rosas , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Pierrick Bouvier , mjt@tls.msk.ru, peterx@redhat.com Subject: [PATCH 2/3] scripts: add build_release_container.sh Date: Sat, 10 Oct 2026 23:16:47 +0000 Message-ID: <20261010231648.3105-3-pierrick.bouvier@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20261010231648.3105-1-pierrick.bouvier@oss.qualcomm.com> References: <20261010231648.3105-1-pierrick.bouvier@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: 5-Tx3AUtYASdg3sGedkVzJWh1xlMpVuK X-Proofpoint-Spam-Info: AW1haW4tMjYxMDEwMDA5MiBTYWx0ZWRfX2X8wbyZd8Z0C IvIT4svrQ3qMBsrvhg/9YXtNozsPT7sjOxCWBg57GuwntbZexUz81FyjSGQQ5psHAo+eLGcHakh qVh3W9t7+WapTSwS0wJeiy2H0Ht7leg= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYxMDEwMDA5MiBTYWx0ZWRfX3e0OITJXHckt s2bIW/lLtUCRMstf8c6cOsaZ1kjcpyOAgSGIjdvXU9DxMMa7/g1ubbX+M1iR70p4QSVafuUFRjG wnqnMNOEBT3tqK+ljJ78MPLTrng9gzcdBmCI6wYJ2TOy2P09VMLS5ACY3hQE6ueyBLZSTNboqrs SgjvwnYmjwF8brn9cKTk+/SMjuq/xtUX1jzp181kjIHkRV9kN+HbPPK41xa+ZKbxYKSIAkvsmhL /PUFlp2a7+vcnxDMN4KmdMqG2SAjzrjvEMRPpnFjdlGTQn7FyGPzmg8w59CcGMJG/taK9SFmPL1 4Z/fDtjBg+AZ3FPOkUMCjPLhU6jqYQg8LdAZHTzyrxxYtosEPC+MHiS6dV3J+A2dn9btSrBgfRq 5zY3webq+belJbsMS2PikpdeOToP4UShpOQ9rko4n0exz/CYtLkFhKOdy087gnkL0cGjGqr+gVt oEtdbJ8dQjanTjBf9LA== X-Proofpoint-GUID: 5-Tx3AUtYASdg3sGedkVzJWh1xlMpVuK X-Authority-Analysis: v=2.4 cv=asknmiZV c=1 sm=1 tr=0 ts=6acac76b 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=EUspDBNiAAAA:8 a=O1M4xD0Y80AByxq8toYA: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-10_05,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-2610100092 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: 1791674284674158500 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:19 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=1791674270; cv=none; d=zohomail.com; s=zohoarc; b=PqQQpnkBvB+uq5Q5N/z/xNE70cZCfKcQjscfwv1Ng9lqKIrLIvPxw8s5oO3OYywU+NaMjKcsYHXH43/aIp6/TOJ9LIkl/j0+Srq4+pcdDd4xyQp4t8k+STMLQYfeXtYOIrZuxUvFT7WeMQfU6QjEnPJbKENCIBf0U0eCeU/NsVk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1791674270; 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=bOnexhYfvVRdMNUntca9cUmBID3gqSg3/xxOQS0LM/M=; b=YF8U3smczDIz/3i4nFzfelviF9B1FqjB4d+DnJFsJnWgo4Y2OAJcWOXvs8Hyjg8Y511t0BxKY20xqmgSxZpUEO3TkymgayffinkRj+ZSRNIGv7sQodASl2Bwgl+ooRAYZTUPYwX6CMensQMUhNGVgE4cVA6rNrwVvQzuLD2Cdss= 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 1791674270075876.723014340192; Sat, 10 Oct 2026 16:17:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1xFgJU-0001F0-4h; Sat, 10 Oct 2026 19:17:12 -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 1xFgJL-0001Du-E3 for qemu-devel@nongnu.org; Sat, 10 Oct 2026 19:17:09 -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 1xFgJJ-0003qu-Ba for qemu-devel@nongnu.org; Sat, 10 Oct 2026 19:17:03 -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 69AMECLB2308511 for ; Sat, 10 Oct 2026 23:17:00 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 4h7cxxj23b-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sat, 10 Oct 2026 23:17:00 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-357e2bc3b1bso1375894eec.0 for ; Sat, 10 Oct 2026 16:17: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-3537ca67b21sm18285396eec.11.2026.10.10.16.16.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 10 Oct 2026 16:16: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=bOnexhYfvVR dMNUntca9cUmBID3gqSg3/xxOQS0LM/M=; b=WH8BAQP/Ju3UV5XokXSbKYgro7v +opTx6RwKC6HhqJ6BLuy5lOCLmX4hixN6otEjet2tXxB/0JNwUjMvWqj/yvvTDsO QO4dj8HoNXkMj0ewEXTce1p3rouDutpYtr1J6THq7hfZodKZfidvZ+AqZVw8cBPa 0biN8DpDRYKTq99pGWc3k4IzA2RW5zwWdf+92OyWk6ct7s5u+ghfh25FOD7ODDJJ GL9fFnLyFoyN9pV2ee7R/T6x+/u4Q33JX5W2JLj+oD63+/DsW6Yf1B15dn8/bzB0 5fSrJvPk6i6QcRW+kFxbTBWE9ZkcUhr97GDmKX0buzK9ButRQDK97fNEorg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1791674219; x=1792279019; 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=bOnexhYfvVRdMNUntca9cUmBID3gqSg3/xxOQS0LM/M=; b=PzDRbl6netPIZI5AnQoUHB3xi4sTH2+V52vLHUWyEqEQELblyOvM7H7g2ksBHcoruQ CxfsV/47WSkKQCWj+Kqnw1SZ1/eL24gwvNhCZEA2whBaG89x6fkiDWqJV6fo4xiVO/Sk dzJxNz3hSPiv4efV5wLiGu7ajpZHy4E+gMB4dOt3dlVMnntc5b80CM/UOf4+M+U8qxN1 n0DsmihCkrQzk0XbiBkYLXyVGd8v4bmatDPRq9crLaXI8+SBqnE0/bwNS4nXqw1CcEZ/ AJ3J0ei1+cKpJpyh9bQC5aZAdvqOTctscmK1zA+4sE9QnpcQQle9IchGWRNqXCY8PA/i d26w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791674219; x=1792279019; 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=bOnexhYfvVRdMNUntca9cUmBID3gqSg3/xxOQS0LM/M=; b=ki9fB2v43x5YSx1mWpBlXI8hMxD6/rBF+JuLOUSk212kYnVyDQ6vW+XIb/b8RPdVee 4mutkwbzEdV0iU7d7UFa/6h1AXYeaJjqo6NWPS5/TY/fkYLOcTKFy5+neSN2zvRVx0Lr J84YYk58XS65YjcGZe5WlwDZONZYjMP4Emrdcx1tIwS66irVJoOR0V2IDfRF/4L7bMHO c+BIlFzeTggs1fb3S//QT7d9ALDv+jk/oD3F4DDy9kxKh+AeQjNW5Y5dkgBQ4k0bdDU5 jS960QDu/KJFt/XpFRCcic7x9cDRty2W99sNKGddjHChCPxoE2vr92c7UBQMa1a30F6l Z0jg== X-Gm-Message-State: AFq9FYIsbmHuR/X6RHsB8rwQsRCPLfbQVf75ufLQSVL7s1KJNNgwVrE4 1NPYNFV8S44bPA6o6PpT3SqLFe/01SgpUFVS/SUYjMsRO1Z01nB42Bgpf9K6MOcfjB32sSWhI98 IHJJa/wMh8q/H55qmQDWatL6Ob2q6CKZEdWJJRZ6tRRUwyuq8vh/F0JUqGBKYtN1AtA== X-Gm-Gg: AYBFou2Tut7uFk3Cu2br5nLjiN5Um2KwqyIVxx0GrFxyIfePtkp5iAcaQ+oJw0kyPdI 2DHq088xrZ3minK9P93H2Z4k1CzAHZTKzx/2yjl+TMtbHr0vx2CBwJsQ14tR8pf/6mQc+BoxJ32 96P4VrBTwXuqdhU+feYGAI9V2XHJsxKOfNdvJ81SYYIgpPjIF6RFKEQDry+EHIpuLoS6h8Ipg9X JxbOUQgii1loiI4bZoUEVTrPwnHg8DvL9iS+5f0wv6gmGayz/axtGzG+JlTtcZZ7J+gQY+HNIdm l1P6YpLB3ZDeMYg7no5RfuuN+Vb2XScXP9emAIo1272vIMdyyaIbVlvbQQqkCFU4Tkop04FeDBB wFNzlo9W84YoT+OaMKRldkR3f+D1V4jnppMwim1RbpjgoTn/R893EGqtH9JrV X-Received: by 2002:a05:7301:e0c5:b0:359:ef9:9be3 with SMTP id 5a478bee46e88-3590f090316mr1877409eec.11.1791674219074; Sat, 10 Oct 2026 16:16:59 -0700 (PDT) X-Received: by 2002:a05:7301:e0c5:b0:359:ef9:9be3 with SMTP id 5a478bee46e88-3590f090316mr1877381eec.11.1791674218463; Sat, 10 Oct 2026 16:16:58 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Fabiano Rosas , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Pierrick Bouvier , mjt@tls.msk.ru, peterx@redhat.com Subject: [PATCH 3/3] scripts: add generate_release_links.sh Date: Sat, 10 Oct 2026 23:16:48 +0000 Message-ID: <20261010231648.3105-4-pierrick.bouvier@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20261010231648.3105-1-pierrick.bouvier@oss.qualcomm.com> References: <20261010231648.3105-1-pierrick.bouvier@oss.qualcomm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: bX-fcOwBjx60PNyslN3Ua1TVqGz9EVFS X-Proofpoint-Spam-Info: AW1haW4tMjYxMDEwMDA5MiBTYWx0ZWRfX0zTZLFSnGSPD mSPVFvP+gJgqHmf1b9p9VphVs7/FRQ9sBKwMgygDj//hZ5WvlnPF8V/eivgJuxJc5jRitYKCYcT k1u7hY0WyxoX1/Ugnq/+iElXbTiTQtY= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYxMDEwMDA5MiBTYWx0ZWRfXw6//VYnKh6cj pLWHnm6YPx3AUtzkj4MPSVop7JeCP/gm4RpCDqdFgybi/E/QPisA3FICj5upIPdSgSxlbU1KSgn haOzh/FGJahifDOr2+d50+UFeXa4MbnyduorM5o2A/yHX1DD5qmSz2NlXDc37FEpAlvdCTM8IMn o3SvQd8zodJkNPjMjrhtytXjFZEbSW9uH/VDxc0cMUKGP/q90+z6A4DBFOnPGaN6KLgrq1Tj0dh 0Hs/O4sfq73t5k+obPnFY5rBNWbvjdYNXZBmL0zByDuPlak6S0MLJfCGcT3+YmlnYkydCHUYpw5 JKiMdik70Fbx/xKpAKbMZyB2rcubyBdHF7chzr46awbmkH5827+qIeuYPRFugD9vztHAw4WgdTZ C6uJbNMRqguWV+IOXkq1Rz7GDX9jlgQqqkXIckHSUQoGmbIfhlLZLNSI+pyjdMw2XktU9b8Is6v neqzg77VYqdyo11+9Aw== X-Authority-Analysis: v=2.4 cv=AsJ7T+9P c=1 sm=1 tr=0 ts=6acac76c 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=3WHJM1ZQz_JShphwDgj5:22 a=n6MYwUk4AAAA:8 a=EUspDBNiAAAA:8 a=z6BG1H5jNmwsGlzAzHUA:9 a=bBxd6f-gb0O0v-kibOvt:22 X-Proofpoint-GUID: bX-fcOwBjx60PNyslN3Ua1TVqGz9EVFS 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-10_05,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-2610100092 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: 1791674272418158500 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 | 66 +++++++++++++++++++++++++++++++ 1 file changed, 66 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..112546a4edd --- /dev/null +++ b/scripts/generate_release_links.sh @@ -0,0 +1,66 @@ +#!/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 | + grep configs.*mak | + sed -e 's#.*/##' -e 's#\.mak$##' +} + +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) + +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 -u $UID \\ + --security-opt label=3Ddisable \\ + -w \$(pwd) -v \$(pwd):\$(pwd) \\ + $public_image $bin "\$@" +EOF + chmod +x $script + done +done --=20 2.43.0