summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Ho <Michael.Ho@bmw.de>2021-01-11 13:45:23 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-01-13 23:13:45 +0000
commit2fa0b3278ca6900320795ffa61c894254531bc03 (patch)
tree53a3f05787c72f092b77d8942d412d635bb00c52
parent39ac141eb681aabe1b05fbcdb59bd9b183ecaee5 (diff)
downloadpoky-2fa0b3278ca6900320795ffa61c894254531bc03.tar.gz
rootfs_ipk: allow do_populate_sdk in parallel to do_rootfs
Switch do_populate_sdk for the ipk package manager to use a separate target opkg config file and separate the lockfiles restricting do_rootfs and do_populate_sdk from running in parallel. This way if an image recipe includes a dependency to do_populate_sdk by default then it will run in parallel to do_rootfs saving time compared to the sequential execution. (From OE-Core rev: 8c210407d07483075a70c8b97ad52b5eae062c9c) Signed-off-by: Michael Ho <Michael.Ho@bmw.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/package_ipk.bbclass1
-rw-r--r--meta/classes/rootfs_ipk.bbclass4
-rw-r--r--meta/lib/oe/package_manager/ipk/sdk.py6
3 files changed, 9 insertions, 2 deletions
diff --git a/meta/classes/package_ipk.bbclass b/meta/classes/package_ipk.bbclass
index 79cb36c513..d31dba0c8f 100644
--- a/meta/classes/package_ipk.bbclass
+++ b/meta/classes/package_ipk.bbclass
@@ -4,6 +4,7 @@ IMAGE_PKGTYPE ?= "ipk"
4 4
5IPKGCONF_TARGET = "${WORKDIR}/opkg.conf" 5IPKGCONF_TARGET = "${WORKDIR}/opkg.conf"
6IPKGCONF_SDK = "${WORKDIR}/opkg-sdk.conf" 6IPKGCONF_SDK = "${WORKDIR}/opkg-sdk.conf"
7IPKGCONF_SDK_TARGET = "${WORKDIR}/opkg-sdk-target.conf"
7 8
8PKGWRITEDIRIPK = "${WORKDIR}/deploy-ipks" 9PKGWRITEDIRIPK = "${WORKDIR}/deploy-ipks"
9 10
diff --git a/meta/classes/rootfs_ipk.bbclass b/meta/classes/rootfs_ipk.bbclass
index f1e0219732..245c256a6f 100644
--- a/meta/classes/rootfs_ipk.bbclass
+++ b/meta/classes/rootfs_ipk.bbclass
@@ -14,8 +14,8 @@ do_rootfs[recrdeptask] += "do_package_write_ipk do_package_qa"
14do_rootfs[vardeps] += "PACKAGE_FEED_URIS PACKAGE_FEED_BASE_PATHS PACKAGE_FEED_ARCHS" 14do_rootfs[vardeps] += "PACKAGE_FEED_URIS PACKAGE_FEED_BASE_PATHS PACKAGE_FEED_ARCHS"
15 15
16do_rootfs[lockfiles] += "${WORKDIR}/ipk.lock" 16do_rootfs[lockfiles] += "${WORKDIR}/ipk.lock"
17do_populate_sdk[lockfiles] += "${WORKDIR}/ipk.lock" 17do_populate_sdk[lockfiles] += "${WORKDIR}/sdk-ipk.lock"
18do_populate_sdk_ext[lockfiles] += "${WORKDIR}/ipk.lock" 18do_populate_sdk_ext[lockfiles] += "${WORKDIR}/sdk-ipk.lock"
19 19
20OPKG_PREPROCESS_COMMANDS = "" 20OPKG_PREPROCESS_COMMANDS = ""
21 21
diff --git a/meta/lib/oe/package_manager/ipk/sdk.py b/meta/lib/oe/package_manager/ipk/sdk.py
index 37af0344eb..e2ca415c8e 100644
--- a/meta/lib/oe/package_manager/ipk/sdk.py
+++ b/meta/lib/oe/package_manager/ipk/sdk.py
@@ -14,6 +14,12 @@ class PkgSdk(Sdk):
14 def __init__(self, d, manifest_dir=None): 14 def __init__(self, d, manifest_dir=None):
15 super(PkgSdk, self).__init__(d, manifest_dir) 15 super(PkgSdk, self).__init__(d, manifest_dir)
16 16
17 # In sdk_list_installed_packages the call to opkg is hardcoded to
18 # always use IPKGCONF_TARGET and there's no exposed API to change this
19 # so simply override IPKGCONF_TARGET to use this separated config file.
20 ipkgconf_sdk_target = d.getVar("IPKGCONF_SDK_TARGET")
21 d.setVar("IPKGCONF_TARGET", ipkgconf_sdk_target)
22
17 self.target_conf = self.d.getVar("IPKGCONF_TARGET") 23 self.target_conf = self.d.getVar("IPKGCONF_TARGET")
18 self.host_conf = self.d.getVar("IPKGCONF_SDK") 24 self.host_conf = self.d.getVar("IPKGCONF_SDK")
19 25