Date: Monday, February 21, 2011 @ 21:50:48
  Author: stephane
Revision: 110756

upgpkg: python-cairo 1.8.10-2
python 3.2 rebuild

Added:
  python-cairo/trunk/pycairo-1.8.10-pypath.patch
Modified:
  python-cairo/trunk/PKGBUILD

-----------------------------+
 PKGBUILD                    |   25 ++++++++++++++++++++++---
 pycairo-1.8.10-pypath.patch |   36 ++++++++++++++++++++++++++++++++++++
 2 files changed, 58 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2011-02-22 01:17:56 UTC (rev 110755)
+++ PKGBUILD    2011-02-22 02:50:48 UTC (rev 110756)
@@ -3,18 +3,37 @@
 
 pkgname=python-cairo
 pkgver=1.8.10
-pkgrel=1
+pkgrel=2
 pkgdesc="Python bindings for the cairo graphics library"
 arch=('i686' 'x86_64')
 license=('LGPL3')
 depends=('python' 'cairo')
+makedepends=('pkg-config')
 options=('!libtool')
-source=(http://cairographics.org/releases/pycairo-${pkgver}.tar.bz2)
+source=(http://cairographics.org/releases/pycairo-${pkgver}.tar.bz2
+        pycairo-1.8.10-pypath.patch)
 url="http://www.cairographics.org/pycairo";
-md5sums=('ddc544943d791e3c22ca8f019e10e1e3')
+md5sums=('ddc544943d791e3c22ca8f019e10e1e3'
+         '047cfe0a98cfa73a156cd70e70082325')
 
 build() {
   cd "${srcdir}/pycairo-${pkgver}"
+
+  # We patch the embedded copy of waf to fix compiling against python 3.2
+  # (due to PEP-3149), by using the appropriate python-config tool, rather
+  # than trying to find the libraries by directly using PYTHON_VERSION
+
+  # Ensure that ./waf has created the cached unpacked version
+  # of the wafadmin source tree.
+  # This will be created to a subdirectory like
+  #    .waf3-1.5.18-a7b91e2a913ce55fa6ecdf310df95752
+  python ./waf --version
+
+  # Patch the unpacked version of waf:
+  pushd .waf3*
+  patch -Np0 -i ../../pycairo-1.8.10-pypath.patch
+  popd
+
   ./waf configure --prefix=/usr
   ./waf build
 }

Added: pycairo-1.8.10-pypath.patch
===================================================================
--- pycairo-1.8.10-pypath.patch                         (rev 0)
+++ pycairo-1.8.10-pypath.patch 2011-02-22 02:50:48 UTC (rev 110756)
@@ -0,0 +1,36 @@
+diff -up wafadmin/Tools/python.py.pypath wafadmin/Tools/python.py
+--- wafadmin/Tools/python.py.pypath    2011-02-10 15:30:44.118506004 -0500
++++ wafadmin/Tools/python.py   2011-02-10 15:32:50.922506002 -0500
+@@ -156,6 +156,9 @@ MACOSX_DEPLOYMENT_TARGET = %r
+               env.append_value('LINKFLAGS_PYEMBED',python_LDFLAGS.split())
+       result=False
+       name='python'+env['PYTHON_VERSION']
++      
python_config=conf.find_program('python%s-config'%('.'.join(env['PYTHON_VERSION'].split('.')[:2])),var='PYTHON_CONFIG')
++      if not python_config:
++              
python_config=conf.find_program('python-config-%s'%('.'.join(env['PYTHON_VERSION'].split('.')[:2])),var='PYTHON_CONFIG')
+       if python_LIBDIR is not None:
+               path=[python_LIBDIR]
+               conf.log.write("\n\n# Trying LIBDIR: %r\n"%path)
+@@ -169,6 +172,12 @@ MACOSX_DEPLOYMENT_TARGET = %r
+               path=[os.path.join(python_prefix,"libs")]
+               name='python'+env['PYTHON_VERSION'].replace('.','')
+               result=conf.check(lib=name,uselib='PYEMBED',libpath=path)
++      if not result and python_config:
++              conf.log.write("\n\n# try again with help of python-config\n")
++              for libstr in Utils.cmd_output("%s %s 
--libs"%(python,python_config)).strip().split():
++                      if(libstr.startswith('-lpython')):
++                              name=libstr[2:]
++              result=conf.check(lib=name,uselib='PYEMBED',libpath=path)
+       if result:
+               env['LIBPATH_PYEMBED']=path
+               env.append_value('LIB_PYEMBED',name)
+@@ -177,9 +186,6 @@ MACOSX_DEPLOYMENT_TARGET = %r
+       if(sys.platform=='win32'or sys.platform.startswith('os2')or 
sys.platform=='darwin'or Py_ENABLE_SHARED):
+               env['LIBPATH_PYEXT']=env['LIBPATH_PYEMBED']
+               env['LIB_PYEXT']=env['LIB_PYEMBED']
+-      
python_config=conf.find_program('python%s-config'%('.'.join(env['PYTHON_VERSION'].split('.')[:2])),var='PYTHON_CONFIG')
+-      if not python_config:
+-              
python_config=conf.find_program('python-config-%s'%('.'.join(env['PYTHON_VERSION'].split('.')[:2])),var='PYTHON_CONFIG')
+       includes=[]
+       if python_config:
+               for incstr in Utils.cmd_output("%s %s 
--includes"%(python,python_config)).strip().split():

Reply via email to