[oe-commits] Hongxu Jia : list-packageconfig-flags.py: fix searching bitbake module failed

git at git.openembedded.org git at git.openembedded.org
Fri Aug 30 15:17:00 UTC 2013


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

Author: Hongxu Jia <hongxu.jia at windriver.com>
Date:   Wed Aug 28 12:30:01 2013 +0800

list-packageconfig-flags.py: fix searching bitbake module failed

Run list-packageconfig-flags.py on wrlinux's platform in which
the oe-core layer and bitbake layer in different directories:
----
../layers/oe-core/scripts/contrib/list-packageconfig-flags.py
Traceback (most recent call last):
  File "../layers/oe-core/scripts/contrib/list-packageconfig-flags.py", line 28, in <module>
    import bb.cache
ImportError: No module named bb.cache
----

The script import bb module from bitbake lib dir, the previous
lib dir was hardcode and only worked on poky but not for others.

In this situation, look for bitbake/bin dir in PATH could fix this issue.

[YOCTO #5060]

Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

---

 scripts/contrib/list-packageconfig-flags.py |   32 +++++++++++++++++++++------
 1 files changed, 25 insertions(+), 7 deletions(-)

diff --git a/scripts/contrib/list-packageconfig-flags.py b/scripts/contrib/list-packageconfig-flags.py
index 149922d..371033a 100755
--- a/scripts/contrib/list-packageconfig-flags.py
+++ b/scripts/contrib/list-packageconfig-flags.py
@@ -23,8 +23,26 @@ import sys
 import getopt
 import os
 
+def search_bitbakepath():
+    bitbakepath = ""
+
+    # Search path to bitbake lib dir in order to load bb modules
+    if os.path.exists(os.path.join(os.path.dirname(sys.argv[0]), '../../bitbake/lib/bb')):
+        bitbakepath = os.path.join(os.path.dirname(sys.argv[0]), '../../bitbake/lib')
+        bitbakepath = os.path.abspath(bitbakepath)
+    else:
+        # Look for bitbake/bin dir in PATH
+        for pth in os.environ['PATH'].split(':'):
+            if os.path.exists(os.path.join(pth, '../lib/bb')):
+                bitbakepath = os.path.abspath(os.path.join(pth, '../lib'))
+                break
+        if not bitbakepath:
+            sys.stderr.write("Unable to find bitbake by searching parent directory of this script or PATH\n")
+            sys.exit(1)
+    return bitbakepath
+
 # For importing the following modules
-sys.path.insert(0, os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])), '../../bitbake/lib'))
+sys.path.insert(0, search_bitbakepath())
 import bb.cache
 import bb.cooker
 import bb.providers
@@ -39,12 +57,12 @@ OPTION:
   -p, --prefer  list pkgs with preferred version
 
 EXAMPLE:
-list-packageconfig-flags.py poky/meta poky/meta-yocto
-list-packageconfig-flags.py -f poky/meta poky/meta-yocto
-list-packageconfig-flags.py -a poky/meta poky/meta-yocto
-list-packageconfig-flags.py -p poky/meta poky/meta-yocto
-list-packageconfig-flags.py -f -p poky/meta poky/meta-yocto
-list-packageconfig-flags.py -a -p poky/meta poky/meta-yocto
+list-packageconfig-flags.py
+list-packageconfig-flags.py -f
+list-packageconfig-flags.py -a
+list-packageconfig-flags.py -p
+list-packageconfig-flags.py -f -p
+list-packageconfig-flags.py -a -p
 '''
 
 def usage():



More information about the Openembedded-commits mailing list