[oe-commits] Laurentiu Palcu : lib/oe/manifest.py: create global variables for package types

git at git.openembedded.org git at git.openembedded.org
Tue Feb 11 11:56:59 UTC 2014


Module: openembedded-core.git
Branch: master-next
Commit: bac2e279005b601daff4d53549612ceb76a6a857
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=bac2e279005b601daff4d53549612ceb76a6a857

Author: Laurentiu Palcu <laurentiu.palcu at intel.com>
Date:   Fri Jan 10 18:37:19 2014 +0200

lib/oe/manifest.py: create global variables for package types

Manifest class clients don't really need to know how package types are
encoded.

Signed-off-by: Laurentiu Palcu <laurentiu.palcu at intel.com>

---

 meta/lib/oe/manifest.py | 30 ++++++++++++++++++++----------
 1 file changed, 20 insertions(+), 10 deletions(-)

diff --git a/meta/lib/oe/manifest.py b/meta/lib/oe/manifest.py
index 3c5715e..4f61cb9 100644
--- a/meta/lib/oe/manifest.py
+++ b/meta/lib/oe/manifest.py
@@ -9,6 +9,11 @@ class Manifest(object):
     """
     __metaclass__ = ABCMeta
 
+    PKG_TYPE_MUST_INSTALL = "mip"
+    PKG_TYPE_MULTILIB = "mlp"
+    PKG_TYPE_LANGUAGE = "lgp"
+    PKG_TYPE_ATTEMPT_ONLY = "aop"
+
     initial_manifest_file_header = \
         "# This file was generated automatically and contains the packages\n" \
         "# passed on to the package manager in order to create the rootfs.\n\n" \
@@ -33,9 +38,9 @@ class Manifest(object):
         self.initial_manifest = os.path.join(self.manifest_dir, "initial_manifest")
         self.final_manifest = os.path.join(self.manifest_dir, "final_manifest")
 
-        self.var_map = {"PACKAGE_INSTALL": "mip",
-                        "PACKAGE_INSTALL_ATTEMPTONLY": "aop",
-                        "LINGUAS_INSTALL": "lgp"}
+        self.var_map = {"PACKAGE_INSTALL": self.PKG_TYPE_MUST_INSTALL,
+                        "PACKAGE_INSTALL_ATTEMPTONLY": self.PKG_TYPE_ATTEMPT_ONLY,
+                        "LINGUAS_INSTALL": self.PKG_TYPE_LANGUAGE}
 
     """
     This creates a standard initial manifest for core-image-(minimal|sato|sato-sdk).
@@ -44,7 +49,7 @@ class Manifest(object):
     def _create_dummy_initial(self):
         pkg_list = dict()
         if self.image_rootfs.find("core-image-sato-sdk") > 0:
-            pkg_list['mip'] = \
+            pkg_list[self.PKG_TYPE_MUST_INSTALL] = \
                 "packagegroup-core-x11-sato-games packagegroup-base-extended " \
                 "packagegroup-core-x11-sato packagegroup-core-x11-base " \
                 "packagegroup-core-sdk packagegroup-core-tools-debug " \
@@ -53,17 +58,17 @@ class Manifest(object):
                 "apt packagegroup-core-tools-profile psplash " \
                 "packagegroup-core-standalone-sdk-target " \
                 "packagegroup-core-ssh-openssh dpkg kernel-dev"
-            pkg_list['lgp'] = \
+            pkg_list[self.PKG_TYPE_LANGUAGE] = \
                 "locale-base-en-us locale-base-en-gb"
         elif self.image_rootfs.find("core-image-sato") > 0:
-            pkg_list['mip'] = \
+            pkg_list[self.PKG_TYPE_MUST_INSTALL] = \
                 "packagegroup-core-ssh-dropbear packagegroup-core-x11-sato-games " \
                 "packagegroup-core-x11-base psplash apt dpkg packagegroup-base-extended " \
                 "packagegroup-core-x11-sato packagegroup-core-boot"
             pkg_list['lgp'] = \
                 "locale-base-en-us locale-base-en-gb"
         elif self.image_rootfs.find("core-image-minimal") > 0:
-            pkg_list['mip'] = "run-postinsts packagegroup-core-boot"
+            pkg_list[self.PKG_TYPE_MUST_INSTALL] = "run-postinsts packagegroup-core-boot"
 
         with open(self.initial_manifest, "w+") as manifest:
             manifest.write(self.initial_manifest_file_header)
@@ -97,7 +102,12 @@ class Manifest(object):
         with open(self.initial_manifest) as manifest:
             for line in manifest.read().split('\n'):
                 comment = re.match("^#.*", line)
-                pkg = re.match("^(mip|aop|mlp|lgp),(.*)$", line)
+                pattern = "^(%s|%s|%s|%s),(.*)$" % \
+                          (self.PKG_TYPE_MUST_INSTALL,
+                           self.PKG_TYPE_ATTEMPT_ONLY,
+                           self.PKG_TYPE_MULTILIB,
+                           self.PKG_TYPE_LANGUAGE)
+                pkg = re.match(pattern, line)
 
                 if comment is not None:
                     continue
@@ -130,13 +140,13 @@ class OpkgManifest(Manifest):
         pkgs = dict()
 
         for pkg in pkg_list.split():
-            pkg_type = 'mip'
+            pkg_type = self.PKG_TYPE_MUST_INSTALL
 
             ml_variants = self.d.getVar('MULTILIB_VARIANTS', True).split()
 
             for ml_variant in ml_variants:
                 if pkg.startswith(ml_variant + '-'):
-                    pkg_type = 'mlp'
+                    pkg_type = self.PKG_TYPE_MULTILIB
 
             if not pkg_type in pkgs:
                 pkgs[pkg_type] = pkg



More information about the Openembedded-commits mailing list