[v5,07/12] meta: Consider global debrepo context

Message ID 20230526070027.16890-8-ubely@ilbers.de
State RFC
Headers show
Series Improving base-apt usage PoC | expand

Commit Message

Uladzimir Bely May 26, 2023, 7 a.m. UTC
For host/target and cross/native modes different debrepo context
(e.g., working dir) should be used.

Signed-off-by: Uladzimir Bely <ubely@ilbers.de>
---
 meta/classes/dpkg-base.bbclass                        | 11 +++++++++++
 meta/recipes-devtools/buildchroot/buildchroot.inc     | 11 +++++++++++
 meta/recipes-devtools/sbuild-chroot/sbuild-chroot.inc | 11 +++++++++++
 3 files changed, 33 insertions(+)

Patch

diff --git a/meta/classes/dpkg-base.bbclass b/meta/classes/dpkg-base.bbclass
index e3412c82..c3e47a69 100644
--- a/meta/classes/dpkg-base.bbclass
+++ b/meta/classes/dpkg-base.bbclass
@@ -12,6 +12,17 @@  inherit repository
 inherit deb-dl-dir
 inherit essential
 
+python __anonymous() {
+    distro_arch = d.getVar('DISTRO_ARCH')
+    host_arch = d.getVar('HOST_ARCH')
+    cross = d.getVar('ISAR_CROSS_COMPILE', True)
+
+    if cross == "0" or host_arch == distro_arch:
+        d.setVar('DEBREPO_WORKDIR', d.getVar('DEBREPO_TARGET_DIR', True))
+    else:
+        d.setVar('DEBREPO_WORKDIR', d.getVar('DEBREPO_HOST_DIR', True))
+}
+
 DEPENDS ?= ""
 RPROVIDES ?= "${PROVIDES}"
 
diff --git a/meta/recipes-devtools/buildchroot/buildchroot.inc b/meta/recipes-devtools/buildchroot/buildchroot.inc
index f74896fb..320df55a 100644
--- a/meta/recipes-devtools/buildchroot/buildchroot.inc
+++ b/meta/recipes-devtools/buildchroot/buildchroot.inc
@@ -13,6 +13,17 @@  SRC_URI = "file://configscript.sh \
            file://deps.sh"
 PV = "1.0"
 
+python __anonymous() {
+    distro_arch = d.getVar('DISTRO_ARCH')
+    host_arch = d.getVar('HOST_ARCH')
+    variant = d.getVar('BUILDCHROOT_VARIANT', True)
+
+    if variant == "target" or host_arch == distro_arch:
+        d.setVar('DEBREPO_WORKDIR', d.getVar('DEBREPO_TARGET_DIR', True))
+    else:
+        d.setVar('DEBREPO_WORKDIR', d.getVar('DEBREPO_HOST_DIR', True))
+}
+
 inherit rootfs
 
 BUILDCHROOT_DIR = "${WORKDIR}/rootfs"
diff --git a/meta/recipes-devtools/sbuild-chroot/sbuild-chroot.inc b/meta/recipes-devtools/sbuild-chroot/sbuild-chroot.inc
index fd8bb648..03f812c9 100644
--- a/meta/recipes-devtools/sbuild-chroot/sbuild-chroot.inc
+++ b/meta/recipes-devtools/sbuild-chroot/sbuild-chroot.inc
@@ -8,6 +8,17 @@  LIC_FILES_CHKSUM = "file://${LAYERDIR_core}/licenses/COPYING.GPLv2;md5=751419260
 
 PV = "1.0"
 
+python __anonymous() {
+    distro_arch = d.getVar('DISTRO_ARCH')
+    host_arch = d.getVar('HOST_ARCH')
+    variant = d.getVar('SBUILD_VARIANT', True)
+
+    if variant == "target" or host_arch ==  distro_arch:
+        d.setVar('DEBREPO_WORKDIR', d.getVar('DEBREPO_TARGET_DIR', True))
+    else:
+        d.setVar('DEBREPO_WORKDIR', d.getVar('DEBREPO_HOST_DIR', True))
+}
+
 inherit rootfs
 inherit compat