[oe-commits] Ross Burton : utils: add helper to get all non-system packages

git at git.openembedded.org git at git.openembedded.org
Thu Apr 4 22:49:43 UTC 2013


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

Author: Ross Burton <ross.burton at intel.com>
Date:   Thu Apr  4 17:34:39 2013 +0100

utils: add helper to get all non-system packages

For example if PACKAGES is "foo foo-data foo-dev foo-doc", this will return
"foo-data".

Signed-off-by: Ross Burton <ross.burton at intel.com>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

---

 meta/lib/oe/tests/test_utils.py |   27 +++++++++++++++++++++++++++
 meta/lib/oe/utils.py            |   16 ++++++++++++++++
 2 files changed, 43 insertions(+), 0 deletions(-)

diff --git a/meta/lib/oe/tests/test_utils.py b/meta/lib/oe/tests/test_utils.py
new file mode 100644
index 0000000..466c47e
--- /dev/null
+++ b/meta/lib/oe/tests/test_utils.py
@@ -0,0 +1,27 @@
+import unittest
+import bb, oe.utils
+
+class TestPackagesFilterOutSystem(unittest.TestCase):
+    def test_filter(self):
+        """
+        Test that oe.utils.packages_filter_out_system works.
+        """
+
+        d = bb.data_smart.DataSmart()
+        d.setVar("PN", "foo")
+
+        d.setVar("PACKAGES", "foo foo-doc foo-dev")
+        pkgs = oe.utils.packages_filter_out_system(d)
+        self.assertEqual(pkgs, [])
+
+        d.setVar("PACKAGES", "foo foo-doc foo-data foo-dev")
+        pkgs = oe.utils.packages_filter_out_system(d)
+        self.assertEqual(pkgs, ["foo-data"])
+
+        d.setVar("PACKAGES", "foo foo-locale-en-gb")
+        pkgs = oe.utils.packages_filter_out_system(d)
+        self.assertEqual(pkgs, [])
+
+        d.setVar("PACKAGES", "foo foo-data foo-locale-en-gb")
+        pkgs = oe.utils.packages_filter_out_system(d)
+        self.assertEqual(pkgs, ["foo-data"])
diff --git a/meta/lib/oe/utils.py b/meta/lib/oe/utils.py
index b269f32..acd3969 100644
--- a/meta/lib/oe/utils.py
+++ b/meta/lib/oe/utils.py
@@ -107,3 +107,19 @@ def features_backfill(var,d):
 
     if addfeatures:
         d.appendVar(var, " " + " ".join(addfeatures))
+
+
+def packages_filter_out_system(d):
+    """
+    Return a list of packages from PACKAGES with the "system" packages such as
+    PN-dbg PN-doc PN-locale-eb-gb removed.
+    """
+    pn = d.getVar('PN', True)
+    blacklist = map(lambda suffix: pn + suffix, ('', '-dbg', '-dev', '-doc', '-locale', '-staticdev'))
+    localepkg = pn + "-locale-"
+    pkgs = []
+
+    for pkg in d.getVar('PACKAGES', True).split():
+        if pkg not in blacklist and localepkg not in pkg:
+            pkgs.append(pkg)
+    return pkgs





More information about the Openembedded-commits mailing list