Decide which manifest we should load in run time without any hard coded values but look at which package type that is used.
Signed-off-by: Fredrik Gustafsson <fredr...@axis.com> --- meta/lib/oe/manifest.py | 10 ++------ meta/lib/oe/package_managers/deb/manifest.py | 2 +- meta/lib/oe/package_managers/ipk/manifest.py | 2 +- meta/lib/oe/package_managers/rpm/manifest.py | 2 +- meta/lib/oe/rootfs.py | 13 +++++----- meta/lib/oe/sdk.py | 27 +++++++------------- 6 files changed, 20 insertions(+), 36 deletions(-) diff --git a/meta/lib/oe/manifest.py b/meta/lib/oe/manifest.py index d93edfcac5..a8d14244c0 100644 --- a/meta/lib/oe/manifest.py +++ b/meta/lib/oe/manifest.py @@ -190,14 +190,8 @@ class Manifest(object, metaclass=ABCMeta): def create_manifest(d, final_manifest=False, manifest_dir=None, manifest_type=Manifest.MANIFEST_TYPE_IMAGE): - from oe.package_managers.rpm.manifest import RpmManifest - from oe.package_managers.ipk.manifest import OpkgManifest - from oe.package_managers.deb.manifest import DpkgManifest - manifest_map = {'rpm': RpmManifest, - 'ipk': OpkgManifest, - 'deb': DpkgManifest} - - manifest = manifest_map[d.getVar('IMAGE_PKGTYPE')](d, manifest_dir, manifest_type) + import importlib + manifest = importlib.import_module('oe.package_managers.' + d.getVar('IMAGE_PKGTYPE') + '.manifest').PkgManifest(d, manifest_dir, manifest_type) if final_manifest: manifest.create_final() diff --git a/meta/lib/oe/package_managers/deb/manifest.py b/meta/lib/oe/package_managers/deb/manifest.py index 9b186555dc..5daf709e6c 100644 --- a/meta/lib/oe/package_managers/deb/manifest.py +++ b/meta/lib/oe/package_managers/deb/manifest.py @@ -4,7 +4,7 @@ from oe.manifest import * -class DpkgManifest(Manifest): +class PkgManifest(Manifest): def create_initial(self): with open(self.initial_manifest, "w+") as manifest: manifest.write(self.initial_manifest_file_header) diff --git a/meta/lib/oe/package_managers/ipk/manifest.py b/meta/lib/oe/package_managers/ipk/manifest.py index be87f3d1b7..cf3097224f 100644 --- a/meta/lib/oe/package_managers/ipk/manifest.py +++ b/meta/lib/oe/package_managers/ipk/manifest.py @@ -4,7 +4,7 @@ from oe.manifest import * -class OpkgManifest(Manifest): +class PkgManifest(Manifest): """ Returns a dictionary object with mip and mlp packages. """ diff --git a/meta/lib/oe/package_managers/rpm/manifest.py b/meta/lib/oe/package_managers/rpm/manifest.py index a225ee7a23..801e50e8b6 100644 --- a/meta/lib/oe/package_managers/rpm/manifest.py +++ b/meta/lib/oe/package_managers/rpm/manifest.py @@ -4,7 +4,7 @@ from oe.manifest import * -class RpmManifest(Manifest): +class PkgManifest(Manifest): """ Returns a dictionary object with mip and mlp packages. """ diff --git a/meta/lib/oe/rootfs.py b/meta/lib/oe/rootfs.py index ab10edfec0..c3cfb58493 100644 --- a/meta/lib/oe/rootfs.py +++ b/meta/lib/oe/rootfs.py @@ -12,7 +12,6 @@ import os import subprocess import re - class Rootfs(object, metaclass=ABCMeta): """ This is an abstract class. Do not instantiate this directly. @@ -359,8 +358,8 @@ class RpmRootfs(Rootfs): self.log_check_regex = r'(unpacking of archive failed|Cannot find package'\ r'|exit 1|ERROR: |Error: |Error |ERROR '\ r'|Failed |Failed: |Failed$|Failed\(\d+\):)' - from oe.package_managers.rpm.manifest import RpmManifest - self.manifest = RpmManifest(d, manifest_dir) + import importlib + self.manifest = importlib.import_module('oe.package_managers.rpm.manifest').PkgManifest(d, manifest_dir) self.pm = RpmPM(d, d.getVar('IMAGE_ROOTFS'), @@ -614,8 +613,8 @@ class DpkgRootfs(DpkgOpkgRootfs): bb.utils.remove(self.image_rootfs, True) bb.utils.remove(self.d.getVar('MULTILIB_TEMP_ROOTFS'), True) - from oe.package_managers.deb.manifest import DpkgManifest - self.manifest = DpkgManifest(d, manifest_dir) + import importlib + self.manifest = importlib.import_module('oe.package_managers.deb.manifest').PkgManifest(d, manifest_dir) self.pm = DpkgPM(d, d.getVar('IMAGE_ROOTFS'), d.getVar('PACKAGE_ARCHS'), d.getVar('DPKG_ARCH')) @@ -699,8 +698,8 @@ class OpkgRootfs(DpkgOpkgRootfs): super(OpkgRootfs, self).__init__(d, progress_reporter, logcatcher) self.log_check_regex = '(exit 1|Collected errors)' - from oe.package_managers.ipk.manifest import OpkgManifest - self.manifest = OpkgManifest(d, manifest_dir) + import importlib + self.manifest = importlib.import_module('oe.package_managers.ipk.manifest').PkgManifest(d, manifest_dir) self.opkg_conf = self.d.getVar("IPKGCONF_TARGET") self.pkg_archs = self.d.getVar("ALL_MULTILIB_PACKAGE_ARCHS") diff --git a/meta/lib/oe/sdk.py b/meta/lib/oe/sdk.py index 70451a0b3a..18f6c16bd2 100644 --- a/meta/lib/oe/sdk.py +++ b/meta/lib/oe/sdk.py @@ -114,11 +114,9 @@ class RpmSdk(Sdk): def __init__(self, d, manifest_dir=None, rpm_workdir="oe-sdk-repo"): super(RpmSdk, self).__init__(d, manifest_dir) - from oe.package_managers.rpm.manifest import RpmManifest - self.target_manifest = RpmManifest(d, self.manifest_dir, - Manifest.MANIFEST_TYPE_SDK_TARGET) - self.host_manifest = RpmManifest(d, self.manifest_dir, - Manifest.MANIFEST_TYPE_SDK_HOST) + import importlib + self.target_manifest = importlib.import_module('oe.package_managers.rpm.manifest').PkgManifest(d, self.manifest_dir, Manifest.MANIFEST_TYPE_SDK_TARGET) + self.host_manifest = importlib.import_module('oe.package_managers.rpm.manifest').PkgManifest(d, self.manifest_dir, Manifest.MANIFEST_TYPE_SDK_HOST) rpm_repo_workdir = "oe-sdk-repo" if "sdk_ext" in d.getVar("BB_RUNTASK"): @@ -232,14 +230,9 @@ class OpkgSdk(Sdk): if "sdk_ext" in d.getVar("BB_RUNTASK"): ipk_repo_workdir = "oe-sdk-ext-repo" - from oe.package_managers.ipk.manifest import OpkgManifest - self.target_pm = OpkgPM(d, self.sdk_target_sysroot, self.target_conf, - self.d.getVar("ALL_MULTILIB_PACKAGE_ARCHS"), - ipk_repo_workdir=ipk_repo_workdir) - - self.host_pm = OpkgPM(d, self.sdk_host_sysroot, self.host_conf, - self.d.getVar("SDK_PACKAGE_ARCHS"), - ipk_repo_workdir=ipk_repo_workdir) + import importlib + self.target_manifest = importlib.import_module('oe.package_managers.ipk.manifest').PkgManifest(d, self.sdk_target_sysroot, self.target_conf, self.d.getVar("ALL_MULTILIB_PACKAGE_ARCHS"), ipk_repo_workdir=ipk_repo_workdir) + self.host_manifest = importlib.import_module('oe.package_managers.ipk.manifest').PkgManifest(d, self.sdk_host_sysroot, self.host_conf, self.d.getVar("SDK_PACKAGE_ARCHS"), ipk_repo_workdir=ipk_repo_workdir) def _populate_sysroot(self, pm, manifest): pkgs_to_install = manifest.parse_initial_manifest() @@ -310,11 +303,9 @@ class DpkgSdk(Sdk): self.target_conf_dir = os.path.join(self.d.getVar("APTCONF_TARGET"), "apt") self.host_conf_dir = os.path.join(self.d.getVar("APTCONF_TARGET"), "apt-sdk") - from oe.package_managers.deb.manifest import DpkgManifest - self.target_manifest = DpkgManifest(d, self.manifest_dir, - Manifest.MANIFEST_TYPE_SDK_TARGET) - self.host_manifest = DpkgManifest(d, self.manifest_dir, - Manifest.MANIFEST_TYPE_SDK_HOST) + import importlib + self.target_manifest = importlib.import_module('oe.package_managers.deb.manifest').PkgManifest(d, self.manifest_dir, Manifest.MANIFEST_TYPE_SDK_TARGET) + self.host_manifest = importlib.import_module('oe.package_managers.deb.manifest').PkgManifest(d, self.manifest_dir, Manifest.MANIFEST_TYPE_SDK_HOST) deb_repo_workdir = "oe-sdk-repo" if "sdk_ext" in d.getVar("BB_RUNTASK"): -- 2.20.1
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#139917): https://lists.openembedded.org/g/openembedded-core/message/139917 Mute This Topic: https://lists.openembedded.org/mt/75099999/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-