From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7365616083855736832 X-Forwarded-Encrypted: i=2; AJvYcCX1a9VA75zx4poahsj2OUaeOrBF8e0aQKgsYx0UAoYHX/srcsOQGNx8ArqH+CSt9mW88l2yID9BuNc1+eT2LA8bsoi9oyZ2aIHL0WU= X-Received: by 2002:a05:6512:118a:b0:51a:f84d:1188 with SMTP id 2adb3069b0e04-5220fb7207amr6450594e87.19.1715601896186; Mon, 13 May 2024 05:04:56 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6512:3f0a:b0:51c:17d5:cf19 with SMTP id 2adb3069b0e04-521e30332b1ls161030e87.0.-pod-prod-04-eu; Mon, 13 May 2024 05:04:53 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWFJCN8hjy91w39Az5J/7mU4P5TJgd5LOg8NtjgiC2ilxGvqZqhBCiVTx5hwT1GbTWHim4QF16Y3BnNX4J4A/0OAQ1qgEERraHEM1c= X-Google-Smtp-Source: AGHT+IGPmbuXhRwJKbFETjk1ThlRA9f1XPzbBoWIeFU7kQEkeCpY3XGd6rAZZyYeSx4UDwMuST2w X-Received: by 2002:a19:6449:0:b0:51d:8756:33f3 with SMTP id 2adb3069b0e04-5220fc6d46bmr5936350e87.32.1715601893050; Mon, 13 May 2024 05:04:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1715601893; cv=none; d=google.com; s=arc-20160816; b=JcwOMwLvVzOiFnW6vxCyVusd/fUwuoJAO8hpp1eFY2p69YLuzZz+67pllwLE4jfimg Y2XGikl4FDeg/2ytkUb/T28E4VKSuvvST27IqCIqQsQRawaSpW+e0nXD+tKBiDEVsxF5 Ks1DgAs9zUlJe5k2J3bDjxDc8FM2cqLJ4DgB/5LyRJgeTJCiU5EMou86u57GA5knaZXa nA7X/zhnQYyKZIO3JUDnUS1oGuW8fuZUZ3Rq30YfV7wjRwCJTExIfTrCgdlN57VnhZaA EcUTOD8HnyKOUSIBtwuRWqjEfVxpO031gJvUXlVFnIKLy4Q32pJJkAZjGoQh4f2dQTQ+ avKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id; bh=icVJzMRjffWgq6TWKHZH/zrI6We7Bzu7Y8Ul8GveW3Y=; fh=rBG6h+ED3Qo/hr+hXXj4SzWRdDSF2QJJ9UZEGC9DMmY=; b=eR7kg3MAF6B/WMvCFooop31qAyDVaAw2AkHx0M0NLTKHDT9dVzWOns4p3kdv2vaeCQ 2H41RAkkI/gXcmbqtEK8RsK/QqSfBXNMyR9k7MpDHlCrIEhREOReQ2CZ5SrwJxtwJc6I DdlgPWkdEuQl3YQA4wWlaixlQgv5GHk4eMikUdKM8HaSryG9Jv6bAKWDVAHQLDjNYhB8 5TA9vJO5yq0yoXXKzAmG8VZBaJWhlI5BbBtFoneMjWvbdwmpMknok+UerERzEohSaG2M 4MzlxbTd5+4taLmTrdFGRXgJ6bgwIfDv9NuJHuZLY2v/Jo2N5+oj1LknSgpCxWL9VOTT 7xhQ==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Return-Path: Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id 2adb3069b0e04-521f36b765csi271674e87.7.2024.05.13.05.04.52 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 13 May 2024 05:04:52 -0700 (PDT) Received-SPF: pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) client-ip=85.214.156.166; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Received: from [127.0.0.1] (host-80-81-17-52.static.customer.m-online.net [80.81.17.52]) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 44DC4nOl026272 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 13 May 2024 14:04:51 +0200 Message-ID: <8cc271c6-bf89-4244-86b1-961ae074515e@ilbers.de> Date: Mon, 13 May 2024 15:04:49 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 2/2] dpkg-source: Build source package only once Content-Language: en-US, ru-RU To: Jan Kiszka , isar-users Cc: "Schmidt, Adriaan" , Stefan Koch References: <1fe26da1-b3db-4b06-95ff-4b7996d318ee@siemens.com> From: Anton Mikanovich In-Reply-To: <1fe26da1-b3db-4b06-95ff-4b7996d318ee@siemens.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED 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-TUID: n2jmECCTyz7H 05/05/2024 23:32, 'Jan Kiszka' via isar-users wrote: > From: Jan Kiszka > > Avoid building the source package multiple times, possibly even > inconsistently. This is achieved by delegating this task to to the base > package and installing the source package from isar-apt in the native > and compat package variants. > > Signed-off-by: Jan Kiszka > --- > meta/classes/dpkg-source.bbclass | 44 ++++++++++++++++++++++++++++++-- > 1 file changed, 42 insertions(+), 2 deletions(-) > > diff --git a/meta/classes/dpkg-source.bbclass b/meta/classes/dpkg-source.bbclass > index 005eafbe..7161641f 100644 > --- a/meta/classes/dpkg-source.bbclass > +++ b/meta/classes/dpkg-source.bbclass > @@ -13,7 +13,7 @@ do_dpkg_source() { > find ${WORKDIR} -name "${DEB_SOURCE_NAME}*.dsc" -maxdepth 1 -delete > sh -c "cd ${WORKDIR}; dpkg-source ${DPKG_SOURCE_EXTRA_ARGS} -b ${PPS}" > } > -addtask dpkg_source after do_prepare_build before do_dpkg_build > +addtask dpkg_source after do_prepare_build > > do_deploy_source[depends] += "isar-apt:do_cache_config" > do_deploy_source[lockfiles] = "${REPO_ISAR_DIR}/isar.lock" > @@ -28,4 +28,44 @@ do_deploy_source() { > "${package}" > done > } > -addtask deploy_source after do_dpkg_source before do_dpkg_build > +addtask deploy_source after do_dpkg_source > + > +do_dpkg_build[depends] += "${BPN}:do_deploy_source" > + > +SCHROOT_MOUNTS = "${WORKDIR}:/work ${REPO_ISAR_DIR}/${DISTRO}:/isar-apt" > + > +do_fetch_common_source[depends] += "${BPN}:do_deploy_source" As do_fetch_common_source is the first task which use schroot it should also have ${SCHROOT_DEP} in depends flag. Simple test case to reproduce the issue with missing schroot: build mc:qemuarm64-bullseye:libhello-compat (with ISAR_ENABLE_COMPAT_ARCH enabled) > +do_fetch_common_source[network] = "${TASK_USE_SUDO}" > +do_fetch_common_source() { > + schroot_create_configs > + insert_mounts > + > + session_id=$(schroot -q -b -c ${SBUILD_CHROOT}) > + echo "Started session: ${session_id}" > + > + schroot_cleanup() { > + schroot -q -f -e -c ${session_id} > /dev/null 2>&1 > + remove_mounts > /dev/null 2>&1 > + schroot_delete_configs > + } > + trap 'exit 1' INT HUP QUIT TERM ALRM USR1 > + trap 'schroot_cleanup' EXIT > + > + schroot -r -c ${session_id} -d / -u root -- \ > + apt-get update -o Dir::Etc::SourceList="sources.list.d/isar-apt.list" -o Dir::Etc::SourceParts="-" -o APT::Get::List-Cleanup="0" > + schroot -r -c ${session_id} -d / -- \ > + sh -c ' > + cd /work > + apt-get -y --download-only --only-source -o Acquire::Source-Symlinks="false" source ${BPN}' > + > + schroot -e -c ${session_id} > + remove_mounts > + schroot_delete_configs > +} > +addtask fetch_common_source after do_unpack > + > +def is_native_or_compat(d): > + overrides = d.getVar('OVERRIDES').split(':') > + return 'class-native' in overrides or 'class-compat' in overrides > + > +do_dpkg_build[depends] += "${@'${PN}:do_fetch_common_source' if is_native_or_compat(d) else ''}"