Patchwork python automake dirs (was meta-toolchain-sdk failure)

login
register
mail settings
Submitter Kumar Gala
Date Aug. 9, 2011, 4:50 p.m.
Message ID <822AACC4-810B-4113-A214-EE283679EA06@kernel.crashing.org>
Download mbox | patch
Permalink /patch/9553/
State New, archived
Headers show

Comments

Kumar Gala - Aug. 9, 2011, 4:50 p.m.
On Aug 9, 2011, at 10:32 AM, Kumar Gala wrote:

> 
> On Aug 9, 2011, at 8:58 AM, Richard Purdie wrote:
> 
>> On Tue, 2011-08-09 at 08:45 -0500, Kumar Gala wrote:
>>> Seeing the following when trying to do a meta-toolchain-sdk build w/latest git.  Guessing we're missing a depend of some sort:
>>> 
>>> | error: Failed dependencies:
>>> | 	telepathy-python is needed by task-core-standalone-gmae-sdk-target-1.0-r13.ppc64e5500
>>> 
>>> I think the reset of this is noise:
>> 
>> It is, yes.
>> 
>> Did telepathy-python build at all (you can check if any stamps are
>> present)? Are there any packages generated (in the deploy/rpm
>> directory)?
>> 
>> I'm trying to work out if this wasn't present because it didn't build,
>> because it did build but didn't package correctly or whether the rootfs
>> code just isn't seeing the package...
> 
> Seems it build but no package:
> 
> build-p5020/tmp/deploy/rpm/ppc64e5500/telepathy-python-dev-0.15.19-r2.ppc64e5500.rpm
> build-p5020/tmp/deploy/rpm/ppc64e5500/telepathy-python-dbg-0.15.19-r2.ppc64e5500.rpm
> 
> Looking at log.do_package
> 
> WARNING: For recipe telepathy-python, the following files were installed but not shipped in any package:
> WARNING:   /usr/lib/python2.6/site-packages/telepathy/__init__.pyo
> WARNING:   /usr/lib/python2.6/site-packages/telepathy/utils.py
> WARNING:   /usr/lib/python2.6/site-packages/telepathy/utils.pyc
> WARNING:   /usr/lib/python2.6/site-packages/telepathy/interfaces.py
> WARNING:   /usr/lib/python2.6/site-packages/telepathy/errors.py
> WARNING:   /usr/lib/python2.6/site-packages/telepathy/_version.pyo
> WARNING:   /usr/lib/python2.6/site-packages/telepathy/__init__.py
> WARNING:   /usr/lib/python2.6/site-packages/telepathy/_version.py
> WARNING:   /usr/lib/python2.6/site-packages/telepathy/__init__.pyc
> WARNING:   /usr/lib/python2.6/site-packages/telepathy/_version.pyc
> WARNING:   /usr/lib/python2.6/site-packages/telepathy/constants.pyc
> ...
> 
> Since this build is with 64-bit we should be in /usr/lib64 but are not.
> 
> I believe there are other python packages that aren't respecting ${libdir}
> 
> There was a patch to xcb, but that still had issues as for some reason aclocal.m4 is getting regnerated and overriding PYTHON_LIB_PREFIX.

So the root of this seems to stem from the following in automake's python.m4:

am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages

So the question at hand is how to fix this?

Do we patch automake to respect libdir setting for these?

something like:




- k
Khem Raj - Aug. 10, 2011, 2:44 p.m.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


> So the root of this seems to stem from the following in automake's
> python.m4:
> 
> am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
>
> 
am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
> 
> So the question at hand is how to fix this?
> 
> Do we patch automake to respect libdir setting for these?
> 

yes seems sane to me

> something like:
> 
> --- python.m4.orig	2011-08-09 11:46:19.511163337 -0500 +++ python.m4
> 2011-08-09 11:49:43.623022930 -0500 @@ -88,12 +88,13 @@ 
> [am_cv_python_version=`$PYTHON -c "import sys;
> sys.stdout.write(sys.version[[:3]])"`]) AC_SUBST([PYTHON_VERSION],
> [$am_cv_python_version])
> 
> -  dnl Use the values of $prefix and $exec_prefix for the
> corresponding -  dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX.
> These are made +  dnl Use the values of $prefix, $libdir and
> $exec_prefix for the corresponding +  dnl values of PYTHON_PREFIX
> PYTHON_LIB_PREFIX, and PYTHON_EXEC_PREFIX.  These are made dnl
> distinct variables so they can be overridden if need be.  However, 
> dnl general consensus is that you shouldn't need this ability.
> 
> AC_SUBST([PYTHON_PREFIX], ['${prefix}']) +
> AC_SUBST([PYTHON_LIB_PREFIX], ['${libdir}']) 
> AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
> 
> dnl At times (like when building shared libraries) you may want @@
> -122,7 +123,7 @@ am_py_prefix=$prefix fi 
> am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import
> sysconfig;
> sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))"
> 2>/dev/null || -     echo
> "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"` +     echo
> "$PYTHON_LIB_PREFIX/python$PYTHON_VERSION/site-packages"` case
> $am_cv_python_pythondir in $am_py_prefix*) am__strip_prefix=`echo
> "$am_py_prefix" | sed 's|.|.|g'` @@ -132,7 +133,7 @@ case
> $am_py_prefix in /usr|/System*) ;; *) -
> am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
>
> 
+	
am_cv_python_pythondir=$PYTHON_LIB_PREFIX/python$PYTHON_VERSION/site-packages
> ;; esac ;; @@ -160,7 +161,7 @@ am_py_exec_prefix=$exec_prefix fi 
> am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import
> sysconfig;
> sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))"
> 2>/dev/null || -     echo
> "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"` +
> echo "$PYTHON_LIB_PREFIX/python$PYTHON_VERSION/site-packages"` case
> $am_cv_python_pyexecdir in $am_py_exec_prefix*) 
> am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'` @@
> -170,7 +171,7 @@ case $am_py_exec_prefix in /usr|/System*) ;; *) -
> am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
>
> 
+	
am_cv_python_pyexecdir=$PYTHON_LIB_PREFIX/python$PYTHON_VERSION/site-packages
> ;; esac ;;
> 
> 
> 
> - k _______________________________________________ Openembedded-core
> mailing list Openembedded-core@lists.openembedded.org 
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


- --
> 
- -Khem
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iEYEARECAAYFAk5CmWUACgkQuwUzVZGdMxRKIwCeIMURyalficv+nODveSc0q1uE
ldkAnjBjNrI7Un528uulbm4sowLgiclj
=AyDt
-----END PGP SIGNATURE-----
Kumar Gala - Aug. 10, 2011, 4:51 p.m.
On Aug 10, 2011, at 9:44 AM, Khem Raj wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> 
>> So the root of this seems to stem from the following in automake's
>> python.m4:
>> 
>> am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
>> 
>> 
> am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
>> 
>> So the question at hand is how to fix this?
>> 
>> Do we patch automake to respect libdir setting for these?
>> 
> 
> yes seems sane to me

posted some patches in which I do this via python-dir.bbclass which I think is better

- k
Richard Purdie - Aug. 10, 2011, 5:22 p.m.
On Wed, 2011-08-10 at 11:51 -0500, Kumar Gala wrote:
> On Aug 10, 2011, at 9:44 AM, Khem Raj wrote:
> 
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> > 
> > 
> >> So the root of this seems to stem from the following in automake's
> >> python.m4:
> >> 
> >> am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
> >> 
> >> 
> > am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
> >> 
> >> So the question at hand is how to fix this?
> >> 
> >> Do we patch automake to respect libdir setting for these?
> >> 
> > 
> > yes seems sane to me
> 
> posted some patches in which I do this via python-dir.bbclass which I think is better

I think I'm in favour of changing the m4 files in this case now I better
understand the problem...

Cheers,

Richard

Patch

--- python.m4.orig	2011-08-09 11:46:19.511163337 -0500
+++ python.m4	2011-08-09 11:49:43.623022930 -0500
@@ -88,12 +88,13 @@ 
     [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`])
   AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
 
-  dnl Use the values of $prefix and $exec_prefix for the corresponding
-  dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX.  These are made
+  dnl Use the values of $prefix, $libdir and $exec_prefix for the corresponding
+  dnl values of PYTHON_PREFIX PYTHON_LIB_PREFIX, and PYTHON_EXEC_PREFIX.  These are made
   dnl distinct variables so they can be overridden if need be.  However,
   dnl general consensus is that you shouldn't need this ability.
 
   AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
+  AC_SUBST([PYTHON_LIB_PREFIX], ['${libdir}'])
   AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
 
   dnl At times (like when building shared libraries) you may want
@@ -122,7 +123,7 @@ 
        am_py_prefix=$prefix
      fi
      am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null ||
-     echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
+     echo "$PYTHON_LIB_PREFIX/python$PYTHON_VERSION/site-packages"`
      case $am_cv_python_pythondir in
      $am_py_prefix*)
        am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
@@ -132,7 +133,7 @@ 
        case $am_py_prefix in
          /usr|/System*) ;;
          *)
-	  am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
+	  am_cv_python_pythondir=$PYTHON_LIB_PREFIX/python$PYTHON_VERSION/site-packages
 	  ;;
        esac
        ;;
@@ -160,7 +161,7 @@ 
        am_py_exec_prefix=$exec_prefix
      fi
      am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null ||
-     echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
+     echo "$PYTHON_LIB_PREFIX/python$PYTHON_VERSION/site-packages"`
      case $am_cv_python_pyexecdir in
      $am_py_exec_prefix*)
        am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
@@ -170,7 +171,7 @@ 
        case $am_py_exec_prefix in
          /usr|/System*) ;;
          *)
-	   am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
+	   am_cv_python_pyexecdir=$PYTHON_LIB_PREFIX/python$PYTHON_VERSION/site-packages
 	   ;;
        esac
        ;;