Patchwork [2/2] python: Fix minimal packaging dependencies

login
register
mail settings
Submitter Gary Thomas
Date March 23, 2012, 3:27 p.m.
Message ID <1332516428-9675-3-git-send-email-gary@mlbassoc.com>
Download mbox | patch
Permalink /patch/24315/
State New
Headers show

Comments

Gary Thomas - March 23, 2012, 3:27 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>
---
 meta/recipes-devtools/python/python_2.7.2.bb |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
Martin Jansa - March 23, 2012, 3:35 p.m.
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 <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>
> ---
>  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?

Cheers,
Martin Jansa - March 23, 2012, 3:48 p.m.
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 <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>
> > ---
> >  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?

Cheers,
Gary Thomas - March 23, 2012, 4:19 p.m.
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<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>
>>> ---
>>>   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].

Query: if I change the script, should I also bum PR in this recipe?

Patch

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
 
 # manual dependency additions
+RRDEPENDS_${PN} = "${PN}-lang ${PN}-re"
 RPROVIDES_${PN}-core = "${PN}"
 RRECOMMENDS_${PN}-core = "${PN}-readline"
 RRECOMMENDS_${PN}-crypt = "openssl"