summaryrefslogtreecommitdiffstats
path: root/meta/lib
diff options
context:
space:
mode:
authorMariano Lopez <mariano.lopez@linux.intel.com>2016-05-24 12:44:12 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-05-30 15:58:11 +0100
commit6a7138ebb6b18bbfb91f743ebd64c3bfc009f75f (patch)
tree9fffc8973a173c44d6c9222988768fb1e13d1105 /meta/lib
parentdaf0cc3745bc309e5e9566f737d113c744c5ffb3 (diff)
downloadopenembedded-core-contrib-6a7138ebb6b18bbfb91f743ebd64c3bfc009f75f.tar.gz
openembedded-core-contrib-6a7138ebb6b18bbfb91f743ebd64c3bfc009f75f.tar.bz2
openembedded-core-contrib-6a7138ebb6b18bbfb91f743ebd64c3bfc009f75f.zip
oeqa/utils/package_manager.py: Add get_package_manager()
This new file just contain one function to return an OE package manager, this depends in the current packaging method. [YOCTO #8694] (From OE-Core rev: 9b4b150ccbcd2f7a0b27d083eb406578584af3fa) Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib')
-rw-r--r--meta/lib/oeqa/utils/package_manager.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/meta/lib/oeqa/utils/package_manager.py b/meta/lib/oeqa/utils/package_manager.py
new file mode 100644
index 0000000000..099ecc9728
--- /dev/null
+++ b/meta/lib/oeqa/utils/package_manager.py
@@ -0,0 +1,29 @@
+def get_package_manager(d, root_path):
+ """
+ Returns an OE package manager that can install packages in root_path.
+ """
+ from oe.package_manager import RpmPM, OpkgPM, DpkgPM
+
+ pkg_class = d.getVar("IMAGE_PKGTYPE", True)
+ if pkg_class == "rpm":
+ pm = RpmPM(d,
+ root_path,
+ d.getVar('TARGET_VENDOR', True))
+ pm.create_configs()
+
+ elif pkg_class == "ipk":
+ pm = OpkgPM(d,
+ root_path,
+ d.getVar("IPKGCONF_TARGET", True),
+ d.getVar("ALL_MULTILIB_PACKAGE_ARCHS", True))
+
+ elif pkg_class == "deb":
+ pm = DpkgPM(d,
+ root_path,
+ d.getVar('PACKAGE_ARCHS', True),
+ d.getVar('DPKG_ARCH', True))
+
+ pm.write_index()
+ pm.update()
+
+ return pm