From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7369181641447571456 X-Received: by 2002:a05:600c:4513:b0:41f:df08:5ef7 with SMTP id 5b1f17b1804b1-41feac5a4a7mr111718605e9.28.1715771306319; Wed, 15 May 2024 04:08:26 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:600c:1392:b0:418:4830:9fc0 with SMTP id 5b1f17b1804b1-41fc13ea4fcls26985365e9.0.-pod-prod-06-eu; Wed, 15 May 2024 04:08:24 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE+Cm6UpaVLNtub9QthNJ25P6Ke7oe/Mtq0WWXQSpEPcIdPic97H24iFp3sT2ZSi8nbvWtK X-Received: by 2002:a05:600c:499a:b0:41a:fa9a:d86b with SMTP id 5b1f17b1804b1-41feaa39369mr104196025e9.11.1715771303891; Wed, 15 May 2024 04:08:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1715771303; cv=none; d=google.com; s=arc-20160816; b=UWDV1hHdDLojdfZTk34mAnWoCmQULh0LL+W6oxGSb/HtOx3HD+ZvDCdmu6XRk2lUAd eCQMdNKkzqJU4knG4YHmfPsciF5kuwVLBKAlfHquA2+SHAf1MDPebXLP8BG5df4iiJtU 4LI2h0UGG19wx6825/dZNfIPaGRxFRDBUkI/ttW2tgA6Y9JVJMbiCT+bhSYZqjLOo5vj GmGvoahpeWNfLCQDKl56YLwZe+56MfAhLMgUCv5RIqHyRofcEFcYbiqLQw3fceswZTHS wW2BrXs5N79EuMLq6LiNA1KnQipmLjfkjVzxMYTaVXB3euTgr01Ni60IodAobn7n0p00 WePw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=feedback-id:content-transfer-encoding:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=7yHb6B8W/gMMNYldYm10lxhROx2N3umnvFwmF+LnwRI=; fh=XGT9su1InluIJlpNbfO5AhdONNgYrcrI0omn79eqbSQ=; b=jQgRYpjjPV3nhgPTYNp0xJ5Bo9waQVlrj22KUancnFCpli8wZ7DUPahkFMXNOzvV0w n2vn781K9ZJNY5aRkXsnhVVlL0ehNFexUfLeJOMOzkUwkSlMkCpmQPdDvy5DSNH30fxh VUMan/sFrmHq6AQ1zZik8BKxtGP636H1M8e2gZnDqthbLWF47h8MUARZr4ScCwX2Wq/F SgETd2W7jFiOnCIWeM0LnKmRpDIri5FMUUJ14jrcxSDYp4RRHd0NDXfGrun3fn+WQMvB AHDu1/cX3kkwzL1R6XQUs786wvuANAAzaj65Ln/CaHDyJ9gxs/omxCrCe2Y2g6kLd2uV JyPw==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=eHMsdq7q; spf=pass (google.com: domain of fm-294854-2024051511082384977c09814e561c24-ltro0y@rts-flowmailer.siemens.com designates 185.136.64.226 as permitted sender) smtp.mailfrom=fm-294854-2024051511082384977c09814e561c24-ltrO0y@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Return-Path: Received: from mta-64-226.siemens.flowmailer.net (mta-64-226.siemens.flowmailer.net. [185.136.64.226]) by gmr-mx.google.com with ESMTPS id 5b1f17b1804b1-41fdbc779fcsi9511465e9.0.2024.05.15.04.08.23 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 15 May 2024 04:08:23 -0700 (PDT) Received-SPF: pass (google.com: domain of fm-294854-2024051511082384977c09814e561c24-ltro0y@rts-flowmailer.siemens.com designates 185.136.64.226 as permitted sender) client-ip=185.136.64.226; Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=eHMsdq7q; spf=pass (google.com: domain of fm-294854-2024051511082384977c09814e561c24-ltro0y@rts-flowmailer.siemens.com designates 185.136.64.226 as permitted sender) smtp.mailfrom=fm-294854-2024051511082384977c09814e561c24-ltrO0y@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: by mta-64-226.siemens.flowmailer.net with ESMTPSA id 2024051511082384977c09814e561c24 for ; Wed, 15 May 2024 13:08:23 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm1; d=siemens.com; i=jan.kiszka@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc:References:In-Reply-To; bh=7yHb6B8W/gMMNYldYm10lxhROx2N3umnvFwmF+LnwRI=; b=eHMsdq7qSwfEeSWY7o6c3FFZB1fXf1+/zk++8e8BmxaWeD9VoLMKaHeZzVX/dHZGqsw114 xgH/lrIk/J4z7LLErWTZSFdJHHk8iiPdSXB2uSUxfOAQTYXsMR6KqJvWPkhRFX1v/u3h0LPa YaIT/AoUyD9yvy0oqKjda9ftz33bc=; From: Jan Kiszka To: isar-users Cc: Felix Moessbauer , stefan-koch@siemens.com, Adriaan Schmidt , Anton Mikanovich Subject: [PATCH v2 5/5] dpkg-source: Build source package only once Date: Wed, 15 May 2024 13:08:19 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-294854:519-21489:flowmailer X-TUID: QjxyRsL2Iqjk 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 560f536b..6a36081b 100644 --- a/meta/classes/dpkg-source.bbclass +++ b/meta/classes/dpkg-source.bbclass @@ -18,7 +18,7 @@ do_dpkg_source() { find ${WORKDIR} -maxdepth 1 -name "${DEBIAN_SOURCE}_*.dsc" -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" @@ -34,4 +34,44 @@ do_deploy_source() { "${DSC_FILE}" fi } -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] += "${SCHROOT_DEP} ${BPN}:do_deploy_source" +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 ${DEBIAN_SOURCE}' + + 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 ''}" -- 2.35.3