From patchwork Fri May 17 16:35:42 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kiszka X-Patchwork-Id: 3572 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Fri, 17 May 2024 18:35:54 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-lj1-f185.google.com (mail-lj1-f185.google.com [209.85.208.185]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 44HGZrwF017339 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 17 May 2024 18:35:54 +0200 Received: by mail-lj1-f185.google.com with SMTP id 38308e7fff4ca-2e3003fae2dsf64144011fa.3 for ; Fri, 17 May 2024 09:35:54 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1715963747; cv=pass; d=google.com; s=arc-20160816; b=y/3/L+30fZ9ZZTNZC/ZyE7aM/oNfcH3Y6xjqiBeT5XOsmA+Flc83pZumkIHIzInUu6 Y9bYxacSgQ5VhgMyDzauEh7DvsFijVJNttg2ymCdZGEklDK99Sa6NoXmOtz9dny9C453 QFWBE4HxjC+8LEpz9H9qRIgVU/9Ek8/nnCULMmxL9a+naWI23DYYXLODnfAHNttR2KK+ Gss/BJ8BK8wCWpJw6gDC80S+3C2K9a9po/Bl2GkZQMd/YVC4IujXdqiD+EZjhPfu4tP/ kYoWlluHZ3Z3lv0gfZPYViu5cGyewNNDVtPPolGZqVB1M/SLotjHPvDxjzf8uwLnwISg pXDg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:feedback-id:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=r7Q0v4cN3EfjqKChe6jRGNGsCZYlGQt+Ly6dsBP571c=; fh=CJ5J1sWGaxu8NBbUk/a7DKNGG9nXqkcgHYsze3QWCls=; b=T2iJRP4vp3gFt1YXTiSpKlEj5xZS5uR8wEoG7FYGRolJ4BW/46AoJNyDR0k4NCp8La q8gBjF/YYeV3z9FAsJFd0UOF6oKE+Nl9RDCl25HsDllw8QLXJ5StiEi3J2qEhHnpi3Ft UZj/RCb4ea1rCsrM/o5E77HU0wqu7xfvb3SD2sHQ2TXeyEkJOb3nZLDtBqvmiyE3tGgd pqYc7mZ01ouxdWfrmV5fIl78jNCH+mZz7mGBMTyUOMUFJ7i17F/0KFVA152bdzx+WPYk KiP5qrzSz9ASGG6B6rsEmvb7NGyA7Ne5qvNMFDLapr5GyFCTBCLGHx8r7hsWFqHn23pP vyOg==; darn=isar-build.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=KrNti+lX; spf=pass (google.com: domain of fm-294854-202405171635442d42bcf972af35d00d-pxl2sg@rts-flowmailer.siemens.com designates 185.136.64.225 as permitted sender) smtp.mailfrom=fm-294854-202405171635442d42bcf972af35d00d-Pxl2SG@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=1715963747; x=1716568547; 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:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=r7Q0v4cN3EfjqKChe6jRGNGsCZYlGQt+Ly6dsBP571c=; b=le+Jjc5T+2V6Z6oYHuc60a/66aep1lMyskpWJKbRTR2g1pAz6V1Bf3fq0w//FySdwf AhsqXZFum9Bl95p3rtb82qNmbkL+Hvif8h7aDt/ts2fxcXAssVM19B5AjzRwGPG0Ytpg JLOYtw3vXYYYXnSW5szvpQUFZAQbe+Jdo1/AEzlTBr0h9h74Tq4cRT55WBWzI2pk+DYl S8viFXeOmEA/m3K+uRoY/lBalG/7D++naFp5jkXrKSJhM8McFXK60yNVqZlU43pPUPuO Xq6IGs1z3KADfbpARw4RA1YcycRXD8TqLyUIBRY4dLWZgPTHCuPnpknRci8mE7WqG1X5 3M+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715963747; x=1716568547; 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:references:in-reply-to:message-id:date:subject:cc:to :from:x-beenthere:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=r7Q0v4cN3EfjqKChe6jRGNGsCZYlGQt+Ly6dsBP571c=; b=wxOBW3xeqixn25GwxZRA898GLkAgpSoAOlpww+QbgSSUfBcfb5hzO3kULxbYPkC0nw YbWy2yHMAVMb+8frBlhKhzKEtu3XIe8l0SNN8xIBjWAqS0xIV9kQ5WJlnMAhsGJzq1PS 4cCdaSEQcbZfttpbUQ2RXUlBCqCgIu9zUAA/9Cn+mYnKXrxmokWIebTb68bQrMS9tDlF yS8aKlMCF6PuEGPh7nmW7//96XBHsJV/xouqo46YYlN/6tRqegtJOOi+p1b21xp0+J9W MucQXgMJpMw/Rs/lyWDakTaRzxQp8lk/9brYQ61NODDB6jKuuYTEhx4uJUCPpqyZh+mr uj9A== X-Forwarded-Encrypted: i=2; AJvYcCVmFbTbXlqdWfx2uhT/MRBVSnxM9GWvf+AAL8R99pBpxb5g+Ns9x+R47gJCMGlTvyo3SINRZD4qMjHd96lChXBq7dFHf4U= X-Gm-Message-State: AOJu0YzwF+UagZyyNqBwOL/8Sv8CDThxEfdy4bA/qX+bUQ5iYpTNPD4e 68tgCgjGoZIoUj5YlqE+/RAWEuxQXboNvun0jSDEfUBfvjzU37kN X-Google-Smtp-Source: AGHT+IEIgV91EIaN8XjuZNzd3SyPMdH3RyQQ5QQ4W5h147hiV52q3Hqt8iI5qFVbMkwCna39Vsoqag== X-Received: by 2002:a2e:98cf:0:b0:2e4:d09a:36a7 with SMTP id 38308e7fff4ca-2e51fd4b1b4mr180789871fa.17.1715963747157; Fri, 17 May 2024 09:35:47 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a2e:b16a:0:b0:2e6:fc88:7866 with SMTP id 38308e7fff4ca-2e6fc887c43ls10566061fa.0.-pod-prod-07-eu; Fri, 17 May 2024 09:35:45 -0700 (PDT) X-Received: by 2002:a05:651c:a10:b0:2e1:bd06:51b0 with SMTP id 38308e7fff4ca-2e52039c4d7mr172212901fa.35.1715963744664; Fri, 17 May 2024 09:35:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1715963744; cv=none; d=google.com; s=arc-20160816; b=uRJW4KUvyNkC9bOmz4hY9oh3HCz4eRY89hYHlfkmJnjHkrSZlV2xjN8q0PpQTrV8Lx k+3kruPK5UiT2K1N1QoKDS7viD3NPR9th2590PaTpkU/MjuEfsg0+SdaYtZGcg5/3UOq tvo7BBZSJRnIxvPMS9HCutq4ebjG+BbrcP9XN/ppQR7oRfjQNWoJXGnfZFcr6NhEDKcB rrCRBgTmUEXMkc/QyjOFJ6vE99O0INouBZPZQZPo1VXZr4lqvz008ObhVCk8hOUehgAp W9jQnrbMxtfpIKqTuO70c54UzUuuBFEXGMN2S8KhSGAtsrEp5ymnyv47LFtJ5Jk52ECI y9cg== 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=vOznNKWJ5HmxWvX04CxN2jUm0z0WeZduMKdb5ihYpU4=; fh=XGT9su1InluIJlpNbfO5AhdONNgYrcrI0omn79eqbSQ=; b=IcSIet4hN8+7Ctn8hd5PxfEVdMEVvXDqlywU6Ueh7Qghn86BaGi+8QvzcF+znU3k3k wO6P62uNqWKYNBUrCg0y18nuAfpErRlItDNr9NlDSfADUtOOnqCEISG9sHVgkR/y8q/+ GFXt35FPazUJn0jWictUX2I5vTfVikekzXTjXXlsTIYRUHyJrIEer82yeY0KiSn9c02d 1TNejBnxSbrjqY43FKPXp9Ra4uvxXe6yMUsCZxMgzYtZkPZS8LAl5MDqisfNFbrjN0Fn bAAje5QEui9TrWubdOIiBT3CTDxq50r6Y3QLuw0hzc7jnX7sAyoVpugKx2w7F4/Re9v0 9aCA==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=KrNti+lX; spf=pass (google.com: domain of fm-294854-202405171635442d42bcf972af35d00d-pxl2sg@rts-flowmailer.siemens.com designates 185.136.64.225 as permitted sender) smtp.mailfrom=fm-294854-202405171635442d42bcf972af35d00d-Pxl2SG@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-42024ca927esi1958325e9.2.2024.05.17.09.35.44 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 17 May 2024 09:35:44 -0700 (PDT) Received-SPF: pass (google.com: domain of fm-294854-202405171635442d42bcf972af35d00d-pxl2sg@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 202405171635442d42bcf972af35d00d for ; Fri, 17 May 2024 18:35:44 +0200 X-Patchwork-Original-From: "'Jan Kiszka' via isar-users" From: Jan Kiszka To: isar-users Cc: Felix Moessbauer , stefan-koch@siemens.com, Adriaan Schmidt , Anton Mikanovich Subject: [PATCH v3 5/5] dpkg-source: Build source package only once Date: Fri, 17 May 2024 18:35:42 +0200 Message-Id: <1f7d8469de5afbad8d9172bdc5022b46c52f846e.1715963742.git.jan.kiszka@siemens.com> In-Reply-To: References: MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-294854:519-21489:flowmailer X-Original-Sender: jan.kiszka@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=KrNti+lX; spf=pass (google.com: domain of fm-294854-202405171635442d42bcf972af35d00d-pxl2sg@rts-flowmailer.siemens.com designates 185.136.64.225 as permitted sender) smtp.mailfrom=fm-294854-202405171635442d42bcf972af35d00d-Pxl2SG@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Original-From: Jan Kiszka Reply-To: Jan Kiszka 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=-1.2 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, RCVD_IN_MSPIKE_H2,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?= 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. Those derived packages will also no longer trigger fetching, unpacking or prepare_build as everything is supposed to be in the source package. Signed-off-by: Jan Kiszka --- meta/classes/dpkg-base.bbclass | 4 +-- meta/classes/dpkg-prebuilt.bbclass | 7 ++---- meta/classes/dpkg-source.bbclass | 40 ++++++++++++++++++++++++++++-- meta/classes/dpkg.bbclass | 3 ++- 4 files changed, 44 insertions(+), 10 deletions(-) diff --git a/meta/classes/dpkg-base.bbclass b/meta/classes/dpkg-base.bbclass index 93321976..789d6c74 100644 --- a/meta/classes/dpkg-base.bbclass +++ b/meta/classes/dpkg-base.bbclass @@ -78,7 +78,7 @@ addtask adjust_git after do_unpack before do_patch do_adjust_git[lockfiles] += "${DL_DIR}/git/isar.lock" inherit patch -addtask patch after do_adjust_git before do_dpkg_build +addtask patch after do_adjust_git SRC_APT ?= "" @@ -191,7 +191,7 @@ do_prepare_build() { true } -addtask prepare_build after do_patch do_transform_template before do_dpkg_build +addtask prepare_build after do_patch do_transform_template # If Isar recipes depend on each other, they typically need the package # deployed to isar-apt do_local_isarapt[depends] += "isar-apt:do_cache_config" diff --git a/meta/classes/dpkg-prebuilt.bbclass b/meta/classes/dpkg-prebuilt.bbclass index 8135fc81..7092670b 100644 --- a/meta/classes/dpkg-prebuilt.bbclass +++ b/meta/classes/dpkg-prebuilt.bbclass @@ -16,11 +16,8 @@ python do_unpack:prepend() { d.setVar('SRC_URI', ' '.join(src_uri)) } -# break dependencies on do_patch, etc... but still support sstate caching -deltask dpkg_build -addtask dpkg_build after do_unpack before do_deploy_deb -# break inherited (from dpkg-base) dependency on sbuild_chroot -do_dpkg_build[depends] = "" +# also breaks inherited (from dpkg-base) dependency on sbuild_chroot +do_dpkg_build[depends] = "${PN}:do_unpack" do_dpkg_build() { true } diff --git a/meta/classes/dpkg-source.bbclass b/meta/classes/dpkg-source.bbclass index 560f536b..d6ab5aad 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,40 @@ 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 + +do_dpkg_build[depends] += "${@'${PN}:do_dpkg_source' if '${PN}' == '${BPN}' else '${PN}:do_fetch_common_source'}" diff --git a/meta/classes/dpkg.bbclass b/meta/classes/dpkg.bbclass index 804fe5a6..d92ff68c 100644 --- a/meta/classes/dpkg.bbclass +++ b/meta/classes/dpkg.bbclass @@ -24,9 +24,10 @@ def expand_sbuild_pt_additions(d): cmds += 'sbuild_export ' + var + ' "' + varval + '"\n' return cmds -do_prepare_build:append() { +do_get_reference_env() { env > ${DPKG_PREBUILD_ENV_FILE} } +addtask get_reference_env before do_dpkg_build # cp -n results in nonzero exit code starting from coreutils 9.2 # and starting from 9.3 we can use --update=none for the same behaviour