From patchwork Fri Mar 23 16:28:55 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [2/2] python: Fix minimal packaging dependencies Date: Fri, 23 Mar 2012 16:28:55 -0000 From: Gary Thomas X-Patchwork-Id: 24323 Message-Id: <4F6CA4C7.3080600@mlbassoc.com> To: openembedded-core@lists.openembedded.org On 2012-03-23 10:19, Gary Thomas wrote: > On 2012-03-23 09:48, Martin Jansa wrote: >> On Fri, Mar 23, 2012 at 04:35:53PM +0100, Martin Jansa wrote: >>> On Fri, Mar 23, 2012 at 09:27:08AM -0600, Gary Thomas wrote: >>>> If you install the top-level python package only on a minimal >>>> system which has no other python packages installed then python >>>> is not functional at all. Without any extra packages installed >>>> this error is seen: >>>> # python >>>> Traceback (most recent call last): >>>> File "/usr/lib/python2.7/site.py", line 64, in >>>> import traceback >>>> ImportError: No module named traceback >>>> >>>> Installing python-lang only partly fixes the problem as this >>>> error still exists: >>>> # python >>>> Traceback (most recent call last): >>>> File "/usr/lib/python2.7/site.py", line 569, in >>>> main() >>>> File "/usr/lib/python2.7/site.py", line 551, in main >>>> known_paths = addusersitepackages(known_paths) >>>> File "/usr/lib/python2.7/site.py", line 278, in addusersitepackages >>>> user_site = getusersitepackages() >>>> File "/usr/lib/python2.7/site.py", line 253, in getusersitepackages >>>> user_base = getuserbase() # this will also set USER_BASE >>>> File "/usr/lib/python2.7/site.py", line 243, in getuserbase >>>> USER_BASE = get_config_var('userbase') >>>> File "/usr/lib/python2.7/sysconfig.py", line 520, in get_config_var >>>> return get_config_vars().get(name) >>>> File "/usr/lib/python2.7/sysconfig.py", line 400, in get_config_vars >>>> import re >>>> ImportError: No module named re >>>> >>>> Signed-off-by: Gary Thomas >>>> --- >>>> meta/recipes-devtools/python/python_2.7.2.bb | 3 ++- >>>> 1 files changed, 2 insertions(+), 1 deletions(-) >>>> >>>> diff --git a/meta/recipes-devtools/python/python_2.7.2.bb b/meta/recipes-devtools/python/python_2.7.2.bb >>>> index 8111b31..f1ba42d 100644 >>>> --- a/meta/recipes-devtools/python/python_2.7.2.bb >>>> +++ b/meta/recipes-devtools/python/python_2.7.2.bb >>>> @@ -1,6 +1,6 @@ >>>> require python.inc >>>> DEPENDS = "python-native bzip2 db gdbm openssl readline sqlite3 zlib" >>>> -PR = "${INC_PR}.8" >>>> +PR = "${INC_PR}.9" >>>> >>>> DISTRO_SRC_URI ?= "file://sitecustomize.py" >>>> DISTRO_SRC_URI_linuxstdbase = "" >>>> @@ -123,6 +123,7 @@ py_package_preprocess () { >>>> require python-${PYTHON_MAJMIN}-manifest.inc >>> >>> This should be fixed probably in >>> scripts/contrib/python/generate-manifest-2.7.py >>> >>>> >>>> # manual dependency additions >>>> +RRDEPENDS_${PN} = "${PN}-lang ${PN}-re" >>> >>> And here is typo, how did you test this change? >> >> And also notice that there is no ${PN} in PACKAGES, so by "top-level >> python package" you mean python-core right? > > Yes. As far as my testing, it got muddled with something else and > what I've proposed doesn't help, sorry. I'm looking into how to fix > this via the generate-manifest script and will send a different patch > shortly [I hope]. Sadly, my attempt to fix this doesn't work. Here's what I tried, but it has no effect: > > Query: if I change the script, should I also bum PR in this recipe? > > For now, I'll just have to install python-lang and python-re manually... diff --git a/scripts/contrib/python/generate-manifest-2.7.py b/scripts/contrib/python/generate-manifest-2.7.py index 85ca353..bde7db9 100755 --- a/scripts/contrib/python/generate-manifest-2.7.py +++ b/scripts/contrib/python/generate-manifest-2.7.py @@ -160,7 +160,7 @@ if __name__ == "__main__": # Parameters: revision, name, description, dependencies, filenames # - m.addPackage( "${PN}-core", "Python Interpreter and core modules (needed!)", "", + m.addPackage( "${PN}-core", "Python Interpreter and core modules (needed!)", "${PN}-lang ${PN}-re", "__future__.* _abcoll.* abc.* copy.* copy_reg.* ConfigParser.* " + "genericpath.* getopt.* linecache.* new.* " + "os.* posixpath.* struct.* " + @@ -276,7 +276,7 @@ if __name__ == "__main__": m.addPackage( "${PN}-json", "Python JSON Support", "${PN}-core ${PN}-math ${PN}-re", "json lib-dynload/_json.so" ) # package - m.addPackage( "${PN}-lang", "Python Low-Level Language Support", "${PN}-core", + m.addPackage( "${PN}-lang", "Python Low-Level Language Support", "", "lib-dynload/_bisect.so lib-dynload/_collections.so lib-dynload/_heapq.so lib-dynload/_weakref.so lib-dynload/_funct "lib-dynload/array.so lib-dynload/itertools.so lib-dynload/operator.so lib-dynload/parser.so " + "atexit.* bisect.* code.* codeop.* collections.* dis.* functools.* heapq.* inspect.* keyword.* opcode.* symbol.* rep @@ -322,7 +322,7 @@ if __name__ == "__main__": m.addPackage( "${PN}-profile", "Python Basic Profiling Support", "${PN}-core ${PN}-textutils", "profile.* pstats.* cProfile.* lib-dynload/_lsprof.so" ) - m.addPackage( "${PN}-re", "Python Regular Expression APIs", "${PN}-core", + m.addPackage( "${PN}-re", "Python Regular Expression APIs", "", "re.* sre.* sre_compile.* sre_constants* sre_parse.*" ) # _sre is builtin m.addPackage( "${PN}-readline", "Python Readline Support", "${PN}-core",