From patchwork Wed Mar 19 09:13:47 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Moessbauer X-Patchwork-Id: 4116 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Wed, 19 Mar 2025 10:14:05 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-wm1-f61.google.com (mail-wm1-f61.google.com [209.85.128.61]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 52J9E3ZJ028722 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 19 Mar 2025 10:14:03 +0100 Received: by mail-wm1-f61.google.com with SMTP id 5b1f17b1804b1-43ce9cb22ebsf3467445e9.1 for ; Wed, 19 Mar 2025 02:14:03 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1742375637; cv=pass; d=google.com; s=arc-20240605; b=NHAzpVDz6T+nHP3jLw3VSwrstMif4ejAYws1wCMkz/gW9qO1/rZNyM6YM7ST5p+QIh d0CYP1h9tIEfkft6UiGtXo5xk19gJpRsqLK/j7fakvPf89dW9DKvYudeg3NPXrDRHRcP rbdXH6StvhenjxkqPx3LlscEE6sJUFSTUAsskneCkzjk7azzhpZweMaXoNXSkL+aG/sF GjvkJgyptwDOTIjRt5N+pOR10R7QuO0fB7sLz1fuUNLVRM9Ummjo7Fmch/b9Q5TBd/SL qLBOtpwLbTsrVWfLyDfsugi0vypnZSgSXZ5PQOS9jT22KaO+83HSaIy745M1pAAj0jPk WNpQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:feedback-id:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=18JLLP94+5PCU4I0p90oFSBJgKUrFDwWDTwlqVR+xTc=; fh=6Q/Sy+2OzKReOhaQvsreL2JV0kZ00951cg3ErtB/7GQ=; b=gReYIqGTFvXWv5raFKrUhPAGud1D//BHmfpfEhpQoP87x5p6UXDBtNqdIwSoLYfgNx dpYszmNyvTvnPRMfaMGULwPO//ZVaw9M7PHlguBnUvmgtjy87f8TBVNRoMv76vXmgYrY dviyEZUMYhVl1Gmy398t0Mau0lvfk93ebkv/HKlvHIW1J4LK221Se4Y1rlCStZHcd1uF jGjlEQHBssLBPhiSyg4TyaB+kWFmHn8jHUBs3Ce/LM8NZt3QTbGqaEn5TAQAnwzr1lju 2anAeFAfMW6w6mX9z66z66Y75O3dPIMW27dLE0i1croWTEGP80RFNNnCrAkeZzY66LHa oVZg==; darn=isar-build.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=FvNuJkyL; spf=pass (google.com: domain of fm-1321639-202503190913539c2b876fec107d42b7-7ibbwe@rts-flowmailer.siemens.com designates 185.136.64.225 as permitted sender) smtp.mailfrom=fm-1321639-202503190913539c2b876fec107d42b7-7IbbwE@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1742375637; x=1742980437; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:feedback-id :mime-version:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=18JLLP94+5PCU4I0p90oFSBJgKUrFDwWDTwlqVR+xTc=; b=Th/Y/Ah0cKb7KUUV9+7oa8KgVYt9iHgBFedNecU1KDnoZOYwlM2b2hdwPVg7aWW4I4 t32BDnF/B2nSV0ZWkZGGcGbbHeXhzUn5gzGzMDnoRY/QdNSuNHbaPBqzI2Ml/4oxx49S HOV3apTI0uwhYw3RogZUXiAU1hlfuTfYZnvW+2qsLWLg6MajLeTshbA05u8hxX9+l8u9 SDPpnGCC1vvNfo6hYL8UkbO7GX4j1bkycVv9nSBSH+yDP+pTSNt3+ouy4uRAB4TMnvnf ySD6bpIqAPJ/yLNB12YIrElBl5T7ObLEtdEcrELwma2eaqqglki381ilIe7j8DY83U2f nXGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742375637; x=1742980437; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:feedback-id :mime-version:message-id:date:subject:cc:to:from:x-beenthere :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=18JLLP94+5PCU4I0p90oFSBJgKUrFDwWDTwlqVR+xTc=; b=Cx8yGZB/Mi+K44zC5bNb4eavGtX9f02QQ/0nvzVvy/5X5pkBzlf4hghK2PwxphjLLo Tgv4CVsbeKJMrO8Q+49b0v9CgIOF75Pm7XqsrKhQOwPzeRjUKdCQiL1EjnfDMHCrTe+w gMpOBfya43LJhN7/XjHxWcAIkFL6QXPgHdyPgyWF/yJlOkVzYk4ZPiA3Jd/w+1SGoBzM rMrCXUCbnrF68nSuqJWaA11XJ40AUloJCbElEPuayqcfv7eLu37nUcyVZqupVa+K3lLF 9Z0jQ1p8FilVVtKQEc6sl2rVm3nTx1q3lSjdT4jwdmq3lGv53pz+LGe1B5v/5TjR9/Uy xdgg== X-Forwarded-Encrypted: i=2; AJvYcCWwa3kISmNt7Cr8YITXF+PuFCqsQgy9PLq99X6WdwYgFFm0U3hphnazVBhrATyZMw1VtuLlUo0=@isar-build.org X-Gm-Message-State: AOJu0YynM5YhkeVIu7B7ZGG6pAyPBbIzNLn+xOAt6Pmc2m62AQ/CpC8U qbFmlzaUkjXEd2TM3jkRVB+hRQVO3CCHJs96L+ZznDPF8Q34zNtO X-Google-Smtp-Source: AGHT+IEz+0yGKk5M8zRZOUzL3GxDJfthJW+o6AV/NdSEOreasimb0zp/U6t79q23HJdqm3LVFJcEHQ== X-Received: by 2002:a05:600c:1389:b0:439:a30f:2e49 with SMTP id 5b1f17b1804b1-43d44d7571cmr4496865e9.5.1742375636772; Wed, 19 Mar 2025 02:13:56 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h=ARLLPALyxqllqLLe661X8l6sf5ws2rzPRfz3dPc1F3UAf9AhAQ== Received: by 2002:a05:600c:5254:b0:43c:f001:2ff1 with SMTP id 5b1f17b1804b1-43d41759195ls5018045e9.0.-pod-prod-00-eu; Wed, 19 Mar 2025 02:13:54 -0700 (PDT) X-Received: by 2002:a05:600c:22cf:b0:43b:c592:7e16 with SMTP id 5b1f17b1804b1-43d3b95f70emr51813605e9.3.1742375633789; Wed, 19 Mar 2025 02:13:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1742375633; cv=none; d=google.com; s=arc-20240605; b=RQLzZabOsMixIs5FaESyQYISIO/9pIfOv+o2pEey+H2qZ5cFK8eX+qosUOv6kxufVL 2ZfW6Qd+8iKJUKV7gAUqMU/P1xkOWbHl20i4KVAWEPBETkIbj961rky+K6BMGCr2HS1Q KP4KlToPAvpaMyActknhWPsJC91h++rbwpISimPa9+53dpvxMMF3IQmUtdJuL7joR99I aGvsmBze8guGFDvI9CTsV/4BBRG5oXMAl4SOayLK62poGGC4MDbTKXstv/l+iTqQ9OFv /A9SujqSYBNGf+6retnz3Dc/myJfsSLdkYZkHUfEVt0+PYOPdRpy2A8pOY83MY/08+iq LqZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=feedback-id:content-transfer-encoding:mime-version:message-id:date :subject:cc:to:from:dkim-signature; bh=SIJuvmvYhBS2ABRAHghlq58AC8ser6mmyNOlkB4xbqw=; fh=y4Q4sSo60XIDMfQl4kOzeqW/gQkja1RlhaZM6hZs/O8=; b=lkxUXEuqa2s1EcFXUvpYpjTtd2b5QLUatt8I3p8uNNSqpAAavbpKtlfA4LKv+8CQVO euv2bH/RQVNhSBWgwhJujEsGAkkaJNrbOwJ9PIQGS5wKcxK7WeNE5WJGmQuDmBks8ygB riiLUeKWk9t1AEREMALqY7WHGXLAGWBoXS9Jl/n7BCEM90FJKaWcHe6CKuIBDkoekW5C UItM6O75U3EBiClMWaAxAMqxG3/sjE+HImachgqmll8RZTkrHNonTKYs8CJBe/Y+pABF FVheuVLhr2iOM+Z2fOc5RN1PsInmnWngOClYYRpDfJ253BaGkhDXtk1K2Zyn4qEj+PB/ cGVw==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=FvNuJkyL; spf=pass (google.com: domain of fm-1321639-202503190913539c2b876fec107d42b7-7ibbwe@rts-flowmailer.siemens.com designates 185.136.64.225 as permitted sender) smtp.mailfrom=fm-1321639-202503190913539c2b876fec107d42b7-7IbbwE@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from mta-64-225.siemens.flowmailer.net (mta-64-225.siemens.flowmailer.net. [185.136.64.225]) by gmr-mx.google.com with ESMTPS id 5b1f17b1804b1-43d3ad4807esi1402685e9.0.2025.03.19.02.13.53 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 19 Mar 2025 02:13:53 -0700 (PDT) Received-SPF: pass (google.com: domain of fm-1321639-202503190913539c2b876fec107d42b7-7ibbwe@rts-flowmailer.siemens.com designates 185.136.64.225 as permitted sender) client-ip=185.136.64.225; Received: by mta-64-225.siemens.flowmailer.net with ESMTPSA id 202503190913539c2b876fec107d42b7 for ; Wed, 19 Mar 2025 10:13:53 +0100 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: Felix Moessbauer Subject: [PATCH 1/1] isar-apt: support further optional fields in Release Date: Wed, 19 Mar 2025 10:13:47 +0100 Message-ID: <20250319091347.9181-1-felix.moessbauer@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-1321639:519-21489:flowmailer X-Original-Sender: felix.moessbauer@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=FvNuJkyL; spf=pass (google.com: domain of fm-1321639-202503190913539c2b876fec107d42b7-7ibbwe@rts-flowmailer.siemens.com designates 185.136.64.225 as permitted sender) smtp.mailfrom=fm-1321639-202503190913539c2b876fec107d42b7-7IbbwE@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Original-From: Felix Moessbauer Reply-To: Felix Moessbauer Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-Spam-Status: No, score=-4.9 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2,RCVD_IN_RP_CERTIFIED, RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= The isar-apt repository is a proper apt repository which can be distributed as-is. A common use-case for that is to build packages which are then used in a standard Debian by adding the repository to the apt sources. In this case, it is desired to fill some of the optional fields in Release to enable fine-grained pinnings. We extend the repo_create function to allow appending arbitrary fields to the Release file. To make that easy to use, we introduce the ISAR_APT_OPT_FIELD bitbake var map. As the do_cache_config task now depends on user-input, we also ensure it is rebuild when changed. Signed-off-by: Felix Moessbauer --- RECIPE-API-CHANGELOG.md | 5 +++++ meta/classes/repository.bbclass | 10 ++++++++++ meta/recipes-devtools/isar-apt/isar-apt.bb | 6 +++++- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md index 64c0f34a..2801a177 100644 --- a/RECIPE-API-CHANGELOG.md +++ b/RECIPE-API-CHANGELOG.md @@ -714,3 +714,8 @@ For example, If `KERNEL_NAME` is configured as `foo` for arm64, now `linux-libc-dev-foo` and `linux-libc-dev-arm64-cross-foo` package will be generated. This will help to have multiple versions of linux-libc-dev packages available for respective bsps in apt feeds. + +### ISAR APT Repository + +Optional fields of the isar-apt repo can be controlled by adding to the +`ISAR_APT_OPT_FIELD` map. Example: `ISAR_APT_OPT_FIELD[Origin]="isar"`. diff --git a/meta/classes/repository.bbclass b/meta/classes/repository.bbclass index bc5852a5..8fbceed6 100644 --- a/meta/classes/repository.bbclass +++ b/meta/classes/repository.bbclass @@ -4,12 +4,19 @@ # # SPDX-License-Identifier: MIT +def repo_expand_opt_fields(d, var): + f = d.getVarFlags(var) + if not f: + return '' + return '\n'.join('{}: {}'.format(k, v) for k, v in f.items()) + repo_create() { local dir="$1" local dbdir="$2" local codename="$3" local distros_in="$4" local keyfiles="$5" + local conf_append="$6" if [ -n "${GNUPGHOME}" ]; then export GNUPGHOME="${GNUPGHOME}" @@ -27,6 +34,9 @@ repo_create() { done echo "SignWith: ${option}" >> "${dir}"/conf/distributions fi + if [ -n "${conf_append}" ]; then + echo "${conf_append}" >> "${dir}"/conf/distributions + fi fi if [ ! -d "${dbdir}" ]; then reprepro -b "${dir}" --dbdir "${dbdir}" export "${codename}" diff --git a/meta/recipes-devtools/isar-apt/isar-apt.bb b/meta/recipes-devtools/isar-apt/isar-apt.bb index 187784f9..cda7de89 100644 --- a/meta/recipes-devtools/isar-apt/isar-apt.bb +++ b/meta/recipes-devtools/isar-apt/isar-apt.bb @@ -9,6 +9,8 @@ inherit repository SRC_URI = "file://distributions.in" do_cache_config[lockfiles] = "${REPO_ISAR_DIR}/isar.lock" +do_cache_config[vardeps] += "ISAR_APT_OPT_FIELD" +do_cache_config[cleandirs] += "${REPO_ISAR_DIR}/${DISTRO}/conf" # Generate reprepro config for current distro if it doesn't exist. Once it's # generated, this task should do nothing. @@ -16,7 +18,9 @@ do_cache_config() { repo_create "${REPO_ISAR_DIR}"/"${DISTRO}" \ "${REPO_ISAR_DB_DIR}"/"${DISTRO}" \ "${DEBDISTRONAME}" \ - "${WORKDIR}/distributions.in" + "${WORKDIR}/distributions.in" \ + "" \ + "${@ repo_expand_opt_fields(d, 'ISAR_APT_OPT_FIELD')}" } addtask cache_config after do_unpack before do_build