From 5e5569c962c9ebc898eeb5044214e95117b190e1 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Sun, 21 Jan 2018 23:17:16 +0000 Subject: lib/oe/package_manager/sdk: Ensure do_populate_sdk_ext and do_populate_sdk repos don't conflict The repository indexes updated during do_populate_sdk_ext and do_populate_sdk can conflcit. Add the missing lockfile calls for deb/ipk and in the rpm case, ensure different directories are used for the index for the two sdk cases. Signed-off-by: Richard Purdie --- meta/classes/rootfs_deb.bbclass | 1 + meta/classes/rootfs_ipk.bbclass | 1 + meta/lib/oe/package_manager.py | 5 +++-- meta/lib/oe/sdk.py | 10 ++++++++-- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/meta/classes/rootfs_deb.bbclass b/meta/classes/rootfs_deb.bbclass index 12002c49f3..9ee1dfc866 100644 --- a/meta/classes/rootfs_deb.bbclass +++ b/meta/classes/rootfs_deb.bbclass @@ -11,6 +11,7 @@ do_rootfs[vardeps] += "PACKAGE_FEED_URIS" do_rootfs[lockfiles] += "${DEPLOY_DIR_DEB}/deb.lock" do_populate_sdk[lockfiles] += "${DEPLOY_DIR_DEB}/deb.lock" +do_populate_sdk_ext[lockfiles] += "${DEPLOY_DIR_DEB}/deb.lock" python rootfs_deb_bad_recommendations() { if d.getVar("BAD_RECOMMENDATIONS"): diff --git a/meta/classes/rootfs_ipk.bbclass b/meta/classes/rootfs_ipk.bbclass index a57b1d34f7..52b468d85b 100644 --- a/meta/classes/rootfs_ipk.bbclass +++ b/meta/classes/rootfs_ipk.bbclass @@ -15,6 +15,7 @@ do_rootfs[vardeps] += "PACKAGE_FEED_URIS" do_rootfs[lockfiles] += "${WORKDIR}/ipk.lock" do_populate_sdk[lockfiles] += "${WORKDIR}/ipk.lock" +do_populate_sdk_ext[lockfiles] += "${WORKDIR}/ipk.lock" OPKG_PREPROCESS_COMMANDS = "" diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py index 0f85f3fb7c..2a07f0e39a 100644 --- a/meta/lib/oe/package_manager.py +++ b/meta/lib/oe/package_manager.py @@ -461,7 +461,8 @@ class RpmPM(PackageManager): target_vendor, task_name='target', arch_var=None, - os_var=None): + os_var=None, + rpm_repo_workdir="oe-rootfs-repo"): super(RpmPM, self).__init__(d) self.target_rootfs = target_rootfs self.target_vendor = target_vendor @@ -475,7 +476,7 @@ class RpmPM(PackageManager): else: self.primary_arch = self.d.getVar('MACHINE_ARCH') - self.rpm_repo_dir = oe.path.join(self.d.getVar('WORKDIR'), "oe-rootfs-repo") + self.rpm_repo_dir = oe.path.join(self.d.getVar('WORKDIR'), rpm_repo_workdir) bb.utils.mkdirhier(self.rpm_repo_dir) oe.path.symlink(self.d.getVar('DEPLOY_DIR_RPM'), oe.path.join(self.rpm_repo_dir, "rpm"), True) diff --git a/meta/lib/oe/sdk.py b/meta/lib/oe/sdk.py index dd02b8c12b..6dc96b5f06 100644 --- a/meta/lib/oe/sdk.py +++ b/meta/lib/oe/sdk.py @@ -85,7 +85,7 @@ class Sdk(object, metaclass=ABCMeta): bb.warn("cannot remove SDK dir: %s" % path) class RpmSdk(Sdk): - def __init__(self, d, manifest_dir=None): + def __init__(self, d, manifest_dir=None, rpm_workdir="oe-sdk-repo"): super(RpmSdk, self).__init__(d, manifest_dir) self.target_manifest = RpmManifest(d, self.manifest_dir, @@ -93,10 +93,15 @@ class RpmSdk(Sdk): self.host_manifest = RpmManifest(d, self.manifest_dir, Manifest.MANIFEST_TYPE_SDK_HOST) + rpm_repo_workdir = "oe-sdk-repo" + if "sdk_ext" in d.getVar("BB_RUNTASK"): + rpm_repo_workdir = "oe-sdk-ext-repo" + self.target_pm = RpmPM(d, self.sdk_target_sysroot, self.d.getVar('TARGET_VENDOR'), 'target', + rpm_repo_workdir=rpm_repo_workdir ) self.host_pm = RpmPM(d, @@ -104,7 +109,8 @@ class RpmSdk(Sdk): self.d.getVar('SDK_VENDOR'), 'host', "SDK_PACKAGE_ARCHS", - "SDK_OS" + "SDK_OS", + rpm_repo_workdir=rpm_repo_workdir ) def _populate_sysroot(self, pm, manifest): -- cgit 1.2.3-korg