Patchwork python-native: correct prefix handling for oe-core sysroot layout

login
register
mail settings
Submitter Phil Blundell
Date Jan. 3, 2012, 5:39 p.m.
Message ID <1325612376.28005.14.camel@phil-desktop>
Download mbox | patch
Permalink /patch/18249/
State New
Headers show

Comments

Phil Blundell - Jan. 3, 2012, 5:39 p.m.
Don't try to guess a path based on ${HOST_SYS} since this is not where the
files in the sysroot are likely to be.  Instead, just use the "plat_specific"
approach of taking STAGING_INCDIR and knocking off the trailing "/include" for
all cases.  This is still evidently suboptimal but does at least seem to give
the correct results.

Signed-off-by: Phil Blundell <philb@gnu.org>
---
 ...2-distutils-prefix-is-inside-staging-area.patch |   22 ++++++++-----------
 .../recipes-devtools/python/python-native_2.6.6.bb |    2 +-
 2 files changed, 10 insertions(+), 14 deletions(-)
Martin Jansa - Jan. 3, 2012, 5:47 p.m.
On Tue, Jan 03, 2012 at 05:39:35PM +0000, Phil Blundell wrote:
> Don't try to guess a path based on ${HOST_SYS} since this is not where the
> files in the sysroot are likely to be.  Instead, just use the "plat_specific"
> approach of taking STAGING_INCDIR and knocking off the trailing "/include" for
> all cases.  This is still evidently suboptimal but does at least seem to give
> the correct results.
> 
> Signed-off-by: Phil Blundell <philb@gnu.org>
> ---
>  ...2-distutils-prefix-is-inside-staging-area.patch |   22 ++++++++-----------
>  .../recipes-devtools/python/python-native_2.6.6.bb |    2 +-
>  2 files changed, 10 insertions(+), 14 deletions(-)

Where did you get python-native_2.6.6?

That was removed with 2.7.2 upgrade in
commit b284e9a512860b8a8380be80f96cebce6b92ff80
Author: Nitin A Kamble <nitin.a.kamble@intel.com>
Date:   Fri Oct 14 07:06:13 2011 +0000

Cheers,

> 
> diff --git a/meta/recipes-devtools/python/python-native/12-distutils-prefix-is-inside-staging-area.patch b/meta/recipes-devtools/python/python-native/12-distutils-prefix-is-inside-staging-area.patch
> index 8e721fe..b46caf6 100644
> --- a/meta/recipes-devtools/python/python-native/12-distutils-prefix-is-inside-staging-area.patch
> +++ b/meta/recipes-devtools/python/python-native/12-distutils-prefix-is-inside-staging-area.patch
> @@ -2,12 +2,11 @@ Upstream-Status: Inappropriate [embedded specific]
>  
>  # The proper prefix is inside our staging area.
>  # Signed-Off: Michael 'Mickey' Lauer <mickey@vanille-media.de>
> +# Signed-off-by: Phil Blundell <philb@gnu.org>
>  
> -Index: Python-2.6.6/Lib/distutils/sysconfig.py
> -===================================================================
> ---- Python-2.6.6.orig/Lib/distutils/sysconfig.py
> -+++ Python-2.6.6/Lib/distutils/sysconfig.py
> -@@ -19,8 +19,8 @@ import sys
> +--- Python-2.6.6/Lib/distutils/sysconfig.py.orig	2012-01-03 14:02:03.027005296 +0000
> ++++ Python-2.6.6/Lib/distutils/sysconfig.py	2012-01-03 14:02:31.517601081 +0000
> +@@ -19,8 +19,8 @@
>   from distutils.errors import DistutilsPlatformError
>   
>   # These are needed in a couple of spots, so just compute them once.
> @@ -18,19 +17,16 @@ Index: Python-2.6.6/Lib/distutils/sysconfig.py
>   
>   # Path to the base directory of the project. On Windows the binary may
>   # live in project/PCBuild9.  If we're dealing with an x64 Windows build,
> -@@ -70,7 +70,10 @@ def get_python_inc(plat_specific=0, pref
> +@@ -70,7 +70,7 @@
>       sys.exec_prefix -- i.e., ignore 'plat_specific'.
>       """
>       if prefix is None:
>  -        prefix = plat_specific and EXEC_PREFIX or PREFIX
> -+        if plat_specific:
> -+            prefix = plat_specific and os.environ['STAGING_INCDIR'].rstrip('include')
> -+        else:
> -+            prefix = plat_specific and EXEC_PREFIX or PREFIX
> ++        prefix = os.environ['STAGING_INCDIR'].rstrip('include')
>   
>       if os.name == "posix":
>           if python_build:
> -@@ -115,12 +118,16 @@ def get_python_lib(plat_specific=0, stan
> +@@ -115,12 +115,16 @@
>       If 'prefix' is supplied, use it instead of sys.prefix or
>       sys.exec_prefix -- i.e., ignore 'plat_specific'.
>       """
> @@ -49,7 +45,7 @@ Index: Python-2.6.6/Lib/distutils/sysconfig.py
>           if standard_lib:
>               return libpython
>           else:
> -@@ -216,7 +223,7 @@ def get_config_h_filename():
> +@@ -216,7 +220,7 @@
>       else:
>           # The name of the config.h file changed in 2.2
>           config_h = 'pyconfig.h'
> @@ -58,7 +54,7 @@ Index: Python-2.6.6/Lib/distutils/sysconfig.py
>   
>   
>   def get_makefile_filename():
> -@@ -225,7 +232,7 @@ def get_makefile_filename():
> +@@ -225,7 +229,7 @@
>           return os.path.join(os.path.dirname(os.path.realpath(sys.executable)),
>                               "Makefile")
>       lib_dir = get_python_lib(plat_specific=1, standard_lib=1)
> diff --git a/meta/recipes-devtools/python/python-native_2.6.6.bb b/meta/recipes-devtools/python/python-native_2.6.6.bb
> index e0a4fb3..9293f03 100644
> --- a/meta/recipes-devtools/python/python-native_2.6.6.bb
> +++ b/meta/recipes-devtools/python/python-native_2.6.6.bb
> @@ -1,6 +1,6 @@
>  require python.inc
>  DEPENDS = "openssl-native bzip2-full-native zlib-native readline-native sqlite3-native"
> -PR = "${INC_PR}.4"
> +PR = "${INC_PR}.5"
>  
>  LIC_FILES_CHKSUM = "file://LICENSE;md5=38fdd546420fab09ac6bd3d8a1c83eb6"
>  
> -- 
> 1.7.4.1
> 
> 
> 
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Phil Blundell - Jan. 3, 2012, 6:01 p.m.
On Tue, 2012-01-03 at 18:47 +0100, Martin Jansa wrote:
> Where did you get python-native_2.6.6?
> 
> That was removed with 2.7.2 upgrade in
> commit b284e9a512860b8a8380be80f96cebce6b92ff80
> Author: Nitin A Kamble <nitin.a.kamble@intel.com>
> Date:   Fri Oct 14 07:06:13 2011 +0000
> 
> Cheers,

Ah yes, sorry, I made the patch against the wrong repository.  2.7.2
still seems to be broken in the same way, though.  I'll rebase the patch
tomorrow and send a new one.

p.

Patch

diff --git a/meta/recipes-devtools/python/python-native/12-distutils-prefix-is-inside-staging-area.patch b/meta/recipes-devtools/python/python-native/12-distutils-prefix-is-inside-staging-area.patch
index 8e721fe..b46caf6 100644
--- a/meta/recipes-devtools/python/python-native/12-distutils-prefix-is-inside-staging-area.patch
+++ b/meta/recipes-devtools/python/python-native/12-distutils-prefix-is-inside-staging-area.patch
@@ -2,12 +2,11 @@  Upstream-Status: Inappropriate [embedded specific]
 
 # The proper prefix is inside our staging area.
 # Signed-Off: Michael 'Mickey' Lauer <mickey@vanille-media.de>
+# Signed-off-by: Phil Blundell <philb@gnu.org>
 
-Index: Python-2.6.6/Lib/distutils/sysconfig.py
-===================================================================
---- Python-2.6.6.orig/Lib/distutils/sysconfig.py
-+++ Python-2.6.6/Lib/distutils/sysconfig.py
-@@ -19,8 +19,8 @@ import sys
+--- Python-2.6.6/Lib/distutils/sysconfig.py.orig	2012-01-03 14:02:03.027005296 +0000
++++ Python-2.6.6/Lib/distutils/sysconfig.py	2012-01-03 14:02:31.517601081 +0000
+@@ -19,8 +19,8 @@
  from distutils.errors import DistutilsPlatformError
  
  # These are needed in a couple of spots, so just compute them once.
@@ -18,19 +17,16 @@  Index: Python-2.6.6/Lib/distutils/sysconfig.py
  
  # Path to the base directory of the project. On Windows the binary may
  # live in project/PCBuild9.  If we're dealing with an x64 Windows build,
-@@ -70,7 +70,10 @@ def get_python_inc(plat_specific=0, pref
+@@ -70,7 +70,7 @@
      sys.exec_prefix -- i.e., ignore 'plat_specific'.
      """
      if prefix is None:
 -        prefix = plat_specific and EXEC_PREFIX or PREFIX
-+        if plat_specific:
-+            prefix = plat_specific and os.environ['STAGING_INCDIR'].rstrip('include')
-+        else:
-+            prefix = plat_specific and EXEC_PREFIX or PREFIX
++        prefix = os.environ['STAGING_INCDIR'].rstrip('include')
  
      if os.name == "posix":
          if python_build:
-@@ -115,12 +118,16 @@ def get_python_lib(plat_specific=0, stan
+@@ -115,12 +115,16 @@
      If 'prefix' is supplied, use it instead of sys.prefix or
      sys.exec_prefix -- i.e., ignore 'plat_specific'.
      """
@@ -49,7 +45,7 @@  Index: Python-2.6.6/Lib/distutils/sysconfig.py
          if standard_lib:
              return libpython
          else:
-@@ -216,7 +223,7 @@ def get_config_h_filename():
+@@ -216,7 +220,7 @@
      else:
          # The name of the config.h file changed in 2.2
          config_h = 'pyconfig.h'
@@ -58,7 +54,7 @@  Index: Python-2.6.6/Lib/distutils/sysconfig.py
  
  
  def get_makefile_filename():
-@@ -225,7 +232,7 @@ def get_makefile_filename():
+@@ -225,7 +229,7 @@
          return os.path.join(os.path.dirname(os.path.realpath(sys.executable)),
                              "Makefile")
      lib_dir = get_python_lib(plat_specific=1, standard_lib=1)
diff --git a/meta/recipes-devtools/python/python-native_2.6.6.bb b/meta/recipes-devtools/python/python-native_2.6.6.bb
index e0a4fb3..9293f03 100644
--- a/meta/recipes-devtools/python/python-native_2.6.6.bb
+++ b/meta/recipes-devtools/python/python-native_2.6.6.bb
@@ -1,6 +1,6 @@ 
 require python.inc
 DEPENDS = "openssl-native bzip2-full-native zlib-native readline-native sqlite3-native"
-PR = "${INC_PR}.4"
+PR = "${INC_PR}.5"
 
 LIC_FILES_CHKSUM = "file://LICENSE;md5=38fdd546420fab09ac6bd3d8a1c83eb6"