Patchwork [2/2,v2] python: fix packaging dependencies on minimal systems

login
register
mail settings
Submitter Gary Thomas
Date March 23, 2012, 7:28 p.m.
Message ID <1332530896-27466-2-git-send-email-gary@mlbassoc.com>
Download mbox | patch
Permalink /patch/24347/
State Accepted
Commit c239564c768d0f305d8707103f4c59cf60431670
Headers show

Comments

Gary Thomas - March 23, 2012, 7:28 p.m.
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 <module>
      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 <module>
      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 <gary@mlbassoc.com>
---
 .../python/python-2.7-manifest.inc                 |    2 +-
 meta/recipes-devtools/python/python_2.7.2.bb       |    2 +-
 scripts/contrib/python/generate-manifest-2.7.py    |    2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)
Richard Purdie - March 26, 2012, 11:06 a.m.
On Fri, 2012-03-23 at 13:28 -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 <module>
>       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 <module>
>       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 <gary@mlbassoc.com>
> ---
>  .../python/python-2.7-manifest.inc                 |    2 +-
>  meta/recipes-devtools/python/python_2.7.2.bb       |    2 +-
>  scripts/contrib/python/generate-manifest-2.7.py    |    2 +-
>  3 files changed, 3 insertions(+), 3 deletions(-)

Merged to master, thanks.

Richard

Patch

diff --git a/meta/recipes-devtools/python/python-2.7-manifest.inc b/meta/recipes-devtools/python/python-2.7-manifest.inc
index 3193565..ca01553 100644
--- a/meta/recipes-devtools/python/python-2.7-manifest.inc
+++ b/meta/recipes-devtools/python/python-2.7-manifest.inc
@@ -38,7 +38,7 @@  RDEPENDS_${PN}-compression="${PN}-core ${PN}-zlib"
 FILES_${PN}-compression="${libdir}/python2.7/gzip.* ${libdir}/python2.7/zipfile.* ${libdir}/python2.7/tarfile.* ${libdir}/python2.7/lib-dynload/bz2.so "
 
 DESCRIPTION_${PN}-core="Python Interpreter and core modules (needed!)"
-RDEPENDS_${PN}-core=""
+RDEPENDS_${PN}-core="${PN}-lang ${PN}-re"
 FILES_${PN}-core="${libdir}/python2.7/__future__.* ${libdir}/python2.7/_abcoll.* ${libdir}/python2.7/abc.* ${libdir}/python2.7/copy.* ${libdir}/python2.7/copy_reg.* ${libdir}/python2.7/ConfigParser.* ${libdir}/python2.7/genericpath.* ${libdir}/python2.7/getopt.* ${libdir}/python2.7/linecache.* ${libdir}/python2.7/new.* ${libdir}/python2.7/os.* ${libdir}/python2.7/posixpath.* ${libdir}/python2.7/struct.* ${libdir}/python2.7/warnings.* ${libdir}/python2.7/site.* ${libdir}/python2.7/stat.* ${libdir}/python2.7/UserDict.* ${libdir}/python2.7/UserList.* ${libdir}/python2.7/UserString.* ${libdir}/python2.7/lib-dynload/binascii.so ${libdir}/python2.7/lib-dynload/_struct.so ${libdir}/python2.7/lib-dynload/time.so ${libdir}/python2.7/lib-dynload/xreadlines.so \
 ${libdir}/python2.7/types.* ${libdir}/python2.7/platform.* ${bindir}/python* ${libdir}/python2.7/_weakrefset.* ${libdir}/python2.7/sysconfig.* ${libdir}/python2.7/config/Makefile ${includedir}/python${PYTHON_MAJMIN}/pyconfig.h ${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py "
 
diff --git a/meta/recipes-devtools/python/python_2.7.2.bb b/meta/recipes-devtools/python/python_2.7.2.bb
index 8111b31..8cf45da 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 = ""
diff --git a/scripts/contrib/python/generate-manifest-2.7.py b/scripts/contrib/python/generate-manifest-2.7.py
index 85ca353..267d678 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.* " +