From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7279128154668531712 X-Received: by 2002:a05:600c:4686:b0:405:95ae:4a94 with SMTP id p6-20020a05600c468600b0040595ae4a94mr19882559wmo.5.1697101632102; Thu, 12 Oct 2023 02:07:12 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:600c:1395:b0:3fe:1974:f893 with SMTP id u21-20020a05600c139500b003fe1974f893ls74884wmf.0.-pod-prod-07-eu; Thu, 12 Oct 2023 02:07:10 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG7CtVKE3FHMaFosyuB51qEhBljGaYtXaUPzyRPOc4Wr1Cral1gU8Cig9z+Oc6bS9/7MD9V X-Received: by 2002:adf:f68f:0:b0:317:f714:3be6 with SMTP id v15-20020adff68f000000b00317f7143be6mr18362864wrp.61.1697101630478; Thu, 12 Oct 2023 02:07:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697101630; cv=none; d=google.com; s=arc-20160816; b=npmeud2bOw1jIaC7WiaRZnHPVyZPwPL4nnAj2L+/o1kjUvZ0FN0eIDK6ihtZDpuftx 7+fKXY+W4NUcNzEs7/0C4U1LYjt2ssWlHUKKPmBt/x4/mLAICCX/5GTujjQE/jrLdUNz czmNqL6r1OJEiBNVk71ZsDl8G38WvFZFOY8NYhK/ZIcYky5STRLPW2CdeVq3RHIBv/D6 lRueM6TVvB8+QhUgTRguZui2lof5lRTJ4+HLmD8ENuNqqtiPc9H/4RDfEMT2jSN1w5WY K6FL7J4H6MKmOAF4Xy1X+znjG4M8yZkrz9GdxwPwtGEBFjKpZj1CYSOV5m4KpVff8tCh e4hA== 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:content-language :references:to:subject:user-agent:mime-version:date:message-id; bh=v8mKdnORk1rGTUJjk49hmz6t7/pFYoluqfjxmGzyv9I=; fh=O+ZMFUiiuyZKsfz7Fw8hsdknZlxcSFSsLsCydBEGD0o=; b=sxBhZciYAGrEEoV8nrAumT8kzhPMFP6MNs+fc8nD/v4IsAiqlM6EKzAhQZfqeqfAkz nRTLvq+YPYZVoNkr6Ok0UbR40z8CmD8W8ePKtBkpjXX0i6EV/74GugKC0P0f2Jd8Z4jV EeZQhMU69DoFIU/byZuGc3HpEzgS7f0qHQhP9zSRhHWvz1PFjoSSFg10NwVuyjq0f16R wSuAyyJRLNAlfKd5d4C1vkR119rvpYjqe/UgeQmB9asBdw8HTt2b0POmpifwLQAdy3zU /nGHpdF7yYdOdI98atRHkq5Dr9XK5fowrnUk6nU41Cat3Ta0oGCRxCPeAxLbuI5PDVMG d8mw== 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 bv21-20020a0560001f1500b0032d8f0b5663si48881wrb.7.2023.10.12.02.07.10 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 12 Oct 2023 02:07:10 -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 39C978JC030739 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 12 Oct 2023 11:07:09 +0200 Message-ID: <4f91c530-ba20-4c46-8aec-420c0794f47e@ilbers.de> Date: Thu, 12 Oct 2023 12:07:08 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 3/5] meta: Implement two stage build To: Jan Kiszka , isar-users@googlegroups.com References: <20230915185439.2954192-1-amikan@ilbers.de> <20230915185439.2954192-4-amikan@ilbers.de> Content-Language: en-US, ru-RU From: Anton Mikanovich In-Reply-To: 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: FLSt3mw13lrB 12/10/2023 11:48, Jan Kiszka wrote: > On 15.09.23 20:54, Anton Mikanovich wrote: >> Split package build into two stages: building source package and >> building binary package. This allows to obtain Debian package >> dependencies before any build steps will actually start. >> >> Signed-off-by: Anton Mikanovich >> --- >> meta/classes/dpkg-gbp.bbclass | 2 +- >> meta/classes/dpkg-source.bbclass | 33 ++++++++++++++++++++++ >> meta/classes/dpkg.bbclass | 4 +-- >> meta/classes/rootfs.bbclass | 2 ++ >> meta/recipes-kernel/linux/linux-custom.inc | 2 +- >> 5 files changed, 38 insertions(+), 5 deletions(-) >> create mode 100644 meta/classes/dpkg-source.bbclass >> >> diff --git a/meta/classes/dpkg-gbp.bbclass b/meta/classes/dpkg-gbp.bbclass >> index 2bd09eaa..a151ade2 100644 >> --- a/meta/classes/dpkg-gbp.bbclass >> +++ b/meta/classes/dpkg-gbp.bbclass >> @@ -11,7 +11,7 @@ PATCHTOOL ?= "git" >> >> GBP_EXTRA_OPTIONS ?= "--git-pristine-tar" >> >> -dpkg_runbuild:prepend() { >> +do_dpkg_source:prepend() { >> sh -c " >> cd ${WORKDIR}/${PPS} >> gbp buildpackage --git-ignore-new --git-builder=/bin/true ${GBP_EXTRA_OPTIONS} >> diff --git a/meta/classes/dpkg-source.bbclass b/meta/classes/dpkg-source.bbclass >> new file mode 100644 >> index 00000000..434f1752 >> --- /dev/null >> +++ b/meta/classes/dpkg-source.bbclass >> @@ -0,0 +1,33 @@ >> +# This software is a part of ISAR. >> +# Copyright (C) 2023 ilbers GmbH >> +# >> +# SPDX-License-Identifier: MIT >> + >> +inherit dpkg-base >> + >> +do_dpkg_source() { >> + # Create a .dsc file from source directory to use it with sbuild >> + DEB_SOURCE_NAME=$(dpkg-parsechangelog --show-field Source --file ${WORKDIR}/${PPS}/debian/changelog) >> + find ${WORKDIR} -name "${DEB_SOURCE_NAME}*.dsc" -maxdepth 1 -delete >> + if [ ! -z "${SOURCE_DATE_EPOCH}" ]; then >> + export SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH}" >> + fi >> + sh -c "cd ${WORKDIR}; dpkg-source -I -b ${PPS}" >> +} >> +addtask dpkg_source after do_prepare_build before do_dpkg_build >> + >> +do_deploy_source[depends] += "isar-apt:do_cache_config" >> +do_deploy_source[lockfiles] = "${REPO_ISAR_DIR}/isar.lock" >> +do_deploy_source[dirs] = "${S}" >> +do_deploy_source() { >> + repo_del_srcpackage "${REPO_ISAR_DIR}"/"${DISTRO}" \ >> + "${REPO_ISAR_DB_DIR}"/"${DISTRO}" "${DEBDISTRONAME}" "${BPN}" >> + find "${S}/../" -name '*\.dsc' -maxdepth 1 | while read package; do >> + repo_add_srcpackage "${REPO_ISAR_DIR}"/"${DISTRO}" \ >> + "${REPO_ISAR_DB_DIR}"/"${DISTRO}" \ >> + "${DEBDISTRONAME}" \ >> + "${package}" >> + done >> +} >> +addtask deploy_source after do_dpkg_source before do_dpkg_build >> + >> diff --git a/meta/classes/dpkg.bbclass b/meta/classes/dpkg.bbclass >> index 90d717ca..2bb167e4 100644 >> --- a/meta/classes/dpkg.bbclass >> +++ b/meta/classes/dpkg.bbclass >> @@ -2,6 +2,7 @@ >> # Copyright (C) 2015-2018 ilbers GmbH >> >> inherit dpkg-base >> +inherit dpkg-source >> >> PACKAGE_ARCH ?= "${DISTRO_ARCH}" >> >> @@ -95,10 +96,7 @@ dpkg_runbuild() { >> >> echo '$apt_keep_downloaded_packages = 1;' >> ${SBUILD_CONFIG} >> >> - # Create a .dsc file from source directory to use it with sbuild >> DEB_SOURCE_NAME=$(dpkg-parsechangelog --show-field Source --file ${WORKDIR}/${PPS}/debian/changelog) >> - find ${WORKDIR} -name "${DEB_SOURCE_NAME}*.dsc" -maxdepth 1 -delete >> - sh -c "cd ${WORKDIR}; dpkg-source -q -b ${PPS}" >> DSC_FILE=$(find ${WORKDIR} -name "${DEB_SOURCE_NAME}*.dsc" -maxdepth 1 -print) >> >> sbuild -A -n -c ${SBUILD_CHROOT} --extra-repository="${ISAR_APT_REPO}" \ >> diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass >> index 7dec7b36..65574a6c 100644 >> --- a/meta/classes/rootfs.bbclass >> +++ b/meta/classes/rootfs.bbclass >> @@ -90,6 +90,8 @@ rootfs_configure_isar_apt() { >> mkdir -p '${ROOTFSDIR}/etc/apt/sources.list.d' >> echo 'deb [trusted=yes] file:///isar-apt ${DEBDISTRONAME} main' > \ >> '${ROOTFSDIR}/etc/apt/sources.list.d/isar-apt.list' >> + echo 'deb-src [trusted=yes] file:///isar-apt ${DEBDISTRONAME} main' >> \ >> + '${ROOTFSDIR}/etc/apt/sources.list.d/isar-apt.list' >> >> mkdir -p '${ROOTFSDIR}/etc/apt/preferences.d' >> cat << EOF > '${ROOTFSDIR}/etc/apt/preferences.d/isar-apt' >> diff --git a/meta/recipes-kernel/linux/linux-custom.inc b/meta/recipes-kernel/linux/linux-custom.inc >> index 8b367a2f..fa5d957d 100644 >> --- a/meta/recipes-kernel/linux/linux-custom.inc >> +++ b/meta/recipes-kernel/linux/linux-custom.inc >> @@ -212,6 +212,6 @@ EOF >> fi >> } >> >> -dpkg_runbuild:prepend() { >> +do_dpkg_source:prepend() { >> dpkg_configure_kernel >> } > This is not transparent to recipe as the very last hunk nicely > demonstrates. Where is the RECIPE-API-CHANGLOG entry? In p5. > I thought this change was already the reason, but I'm still searching > for a regression of this patch here on our downstream recipe > https://gitlab.com/cip-project/cip-core/isar-cip-core/-/tree/master/recipes-bsp/edk2 > (can be watched under > https://github.com/siemens/meta-iot2050/actions/runs/6492616563/job/17631910317. This change shouldn't have any influence on the linker for such a trivial recipe. Are you sure this patchset is the only change between working and non-working hashes? > Any hints welcome. > > Jan >