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]

(From OE-Core rev: 9e749c430f97b1a30cdf0c13dacd2a985ef7b433)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Hongxu Jia 2013-08-28 12:30:01 +08:00 committed by Richard Purdie
parent 1370927687
commit 926a117486
1 changed files with 25 additions and 7 deletions

View File

@ -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():