Re: [OE-core] [PATCH 1/1] list-packageconfig-flags.py: fix searching bitbake module failed

2013-08-29 Thread Paul Eggleton
On Wednesday 28 August 2013 12:30:01 Hongxu Jia wrote:
 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@windriver.com
 ---
  scripts/contrib/list-packageconfig-flags.py | 32
 ++--- 1 file 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())

This looks fine, but I've been thinking for a while that we should have a place 
for shared library code just for the scripts directory in which we could put 
this function rather than having it repeated in a number of different scripts. 
I'll add an enhancement to bugzilla to do this in 1.6.

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

Acked-by: Paul Eggleton paul.eggle...@linux.intel.com

-- 

Paul Eggleton
Intel Open Source Technology Centre
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 1/1] list-packageconfig-flags.py: fix searching bitbake module failed

2013-08-27 Thread Hongxu Jia
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@windriver.com
---
 scripts/contrib/list-packageconfig-flags.py | 32 ++---
 1 file 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():
-- 
1.8.1.2

___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core