pycairo: Update to 1.11.1 and combine source packages to one split package (#2390)

This updates the pycairo packages to a new release of a fork I maintain at:
https://github.com/pygobject/pycairo

The new release can build python2/3 versions from the same source and uses
distutils as buildsystem. This allows us to get rid of all the patches and
build system hackery.

For more context:
    https://lists.cairographics.org/archives/cairo/2017-April/027919.html
This commit is contained in:
Christoph Reiter
2017-04-13 06:15:43 +02:00
committed by Алексей
parent 9d6d561d2b
commit 37b04f16df
10 changed files with 75 additions and 848 deletions

View File

@@ -0,0 +1,75 @@
# Maintainer: Christoph Reiter <reiter.christoph@gmail.com>
_realname=pycairo
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-python2-cairo" "${MINGW_PACKAGE_PREFIX}-python3-cairo")
pkgver=1.11.1
pkgrel=1
pkgdesc="Python bindings for the cairo graphics library (mingw-w64)"
url="https://pycairo.readthedocs.io"
arch=('any')
license=('LGPL' 'MPL')
depends=("${MINGW_PACKAGE_PREFIX}-python2"
"${MINGW_PACKAGE_PREFIX}-python3"
"${MINGW_PACKAGE_PREFIX}-cairo")
checkdepends=("${MINGW_PACKAGE_PREFIX}-python3-pytest"
"${MINGW_PACKAGE_PREFIX}-python2-pytest")
source=(https://github.com/pygobject/${_realname}/releases/download/v${pkgver}/${_realname}-${pkgver}.tar.gz)
sha256sums=('5bf375b35a6d002407d121ad93e7f363af7c1cd7596a752f5785258da4ccbc16')
prepare() {
cd "${srcdir}"
rm -rf python2-build python3-build
cp -r ${_realname}-${pkgver} python2-build
cp -r ${_realname}-${pkgver} python3-build
}
build() {
cd "${srcdir}"
for builddir in python{2,3}-build; do
pushd ${builddir}
${MINGW_PREFIX}/bin/${builddir%-build} setup.py build
popd
done
}
check() {
cd "${srcdir}"
for builddir in python{2,3}-build; do
pushd ${builddir}
${MINGW_PREFIX}/bin/${builddir%-build} setup.py test
popd
done
}
package_python2-cairo() {
cd "${srcdir}/python2-build"
MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \
${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" -O1
install -Dm644 COPYING* -t "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-cairo"
}
package_python3-cairo() {
cd "${srcdir}/python3-build"
MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \
${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} --root="${pkgdir}" -O1
install -Dm644 COPYING* -t "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-cairo"
}
package_mingw-w64-i686-python2-cairo() {
package_python2-cairo
}
package_mingw-w64-i686-python3-cairo() {
package_python3-cairo
}
package_mingw-w64-x86_64-python2-cairo() {
package_python2-cairo
}
package_mingw-w64-x86_64-python3-cairo() {
package_python3-cairo
}

View File

@@ -1,41 +0,0 @@
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
_realname=python2-cairo
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=1.10.0
pkgrel=3
pkgdesc="Python2 bindings for the cairo graphics library (mingw-w64)"
url="http://www.cairographics.org/pycairo"
arch=('any')
license=('LGPL' 'MPL')
depends=("${MINGW_PACKAGE_PREFIX}-python2" "${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-cairo")
source=(http://cairographics.org/releases/py2cairo-${pkgver}.tar.bz2
waflib.patch)
sha256sums=('d30439f06c2ec1a39e27464c6c828b6eface3b22ee17b2de05dc409e429a7431'
'9845997835da558d465b129e917157b1a9cb1cf17db298134bcc51ffc719ed2e')
build() {
cd "${srcdir}/py2cairo-${pkgver}"
sed -i 's:bin/env python:bin/env python2:' waf
/usr/bin/python2 ./waf --version
pushd .waf-*
patch -p0 -i ${srcdir}/waflib.patch
rm -f waflib/*.pyc
popd
export PYTHON=${MINGW_PREFIX}/bin/python2
CFLAGS+=" -I${MINGW_PREFIX}/include/python2.7 -I${MINGW_PREFIX}/include/cairo"
/usr/bin/python2 ./waf --help
/usr/bin/python2 ./waf configure --prefix=${MINGW_PREFIX}
/usr/bin/python2 ./waf build
}
package() {
cd "${srcdir}/py2cairo-${pkgver}"
export PYTHON=${MINGW_PREFIX}/bin/python2
/usr/bin/python2 ./waf install --destdir="${pkgdir}"
rm -rf ${pkgdir}${MINGW_PREFIX}/lib
mv ${pkgdir}${MINGW_PREFIX}/bin ${pkgdir}${MINGW_PREFIX}/lib
}

View File

@@ -1,14 +0,0 @@
--- waflib/Node.py.orig 2014-02-19 11:55:34.946600000 +0400
+++ waflib/Node.py 2014-02-19 14:36:30.000000000 +0400
@@ -228,9 +227,9 @@
except:
pass
if not self.parent:
- val=os.sep=='/'and os.sep or''
+ val=(os.sep=='/' and sys.platform!='win32') and os.sep or''
elif not self.parent.name:
- val=(os.sep=='/'and os.sep or'')+self.name
+ val=((os.sep=='/' and sys.platform!='win32') and os.sep or'')+self.name
else:
val=self.parent.abspath()+os.sep+self.name
self.cache_abspath=val

View File

@@ -1,69 +0,0 @@
From f569b675403aa987c3023f2365052bf38a663f3f Mon Sep 17 00:00:00 2001
From: Lubosz Sarnecki <lubosz@gmail.com>
Date: Mon, 4 Aug 2014 12:31:10 +0200
Subject: [PATCH 1/3] msys2: port to subprocess.check_output.
---
setup.py | 41 ++++++++++++++++++-----------------------
1 file changed, 18 insertions(+), 23 deletions(-)
diff --git a/setup.py b/setup.py
index 1985420..dabf41e 100755
--- a/setup.py
+++ b/setup.py
@@ -16,35 +16,30 @@ pkgconfig_file = 'py3cairo.pc'
config_file = 'src/config.h'
-def call(command):
- pipe = subprocess.Popen(command, shell=True,
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE)
- pipe.wait()
- return pipe
-
def pkg_config_version_check(pkg, version):
- check = '%s >= %s' % (pkg, version)
- pipe = call("pkg-config --print-errors --exists '%s'" % (check,))
- if pipe.returncode == 0:
- print(check, ' Successful')
- else:
- print(check, ' Failed')
- raise SystemExit(pipe.stderr.read().decode())
+ command = ["pkg-config",
+ "--print-errors",
+ "--exists",
+ '%s >= %s' % (pkg, version)]
+ try:
+ ret = subprocess.check_output(command)
+ except subprocess.CalledProcessError as e:
+ print(command, ' Failed')
+ raise SystemExit(e.output.decode())
+ print(command, ' Successful')
def pkg_config_parse(opt, pkg):
- check = "pkg-config %s %s" % (opt, pkg)
- pipe = call("pkg-config %s %s" % (opt, pkg))
- if pipe.returncode != 0:
- print(check, ' Failed')
- raise SystemExit(pipe.stderr.read().decode())
-
- output = pipe.stdout.read()
- output = output.decode() # get the str
+ command = ["pkg-config", opt, pkg]
+ try:
+ ret = subprocess.check_output(command)
+ except subprocess.CalledProcessError as e:
+ print(command, ' Failed')
+ raise SystemExit(e.output.decode())
+
+ output = ret.decode()
opt = opt[-2:]
return [x.lstrip(opt) for x in output.split()]
-
def createPcFile(PcFile):
print('creating %s' % PcFile)
with open(PcFile, 'w') as fo:
--
2.0.4

View File

@@ -1,319 +0,0 @@
From 93d4e01a8b56e9e07b323e1d156ee2fc022d0c08 Mon Sep 17 00:00:00 2001
From: Lubosz Sarnecki <lubosz@gmail.com>
Date: Mon, 4 Aug 2014 12:55:40 +0200
Subject: [PATCH 3/3] fix PyVarObject_HEAD_INIT problem
http://bugs.python.org/issue10773
---
src/context.c | 4 ++--
src/font.c | 16 ++++++++--------
src/matrix.c | 3 ++-
src/path.c | 8 ++++----
src/pattern.c | 24 ++++++++++++------------
src/region.c | 6 ++++--
src/surface.c | 30 ++++++++++++++++++++----------
7 files changed, 52 insertions(+), 39 deletions(-)
diff --git a/src/context.c b/src/context.c
index 984cdfc..3d7e334 100644
--- a/src/context.c
+++ b/src/context.c
@@ -1344,8 +1344,8 @@ static PyMethodDef pycairo_methods[] = {
};
PyTypeObject PycairoContext_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
- // PyObject_HEAD_INIT(NULL)
+ //PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.Context", /* tp_name */
sizeof(PycairoContext), /* tp_basicsize */
diff --git a/src/font.c b/src/font.c
index 6c7ca4e..7c92692 100644
--- a/src/font.c
+++ b/src/font.c
@@ -90,8 +90,8 @@ static PyMethodDef font_face_methods[] = {
*/
PyTypeObject PycairoFontFace_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
- //PyObject_HEAD_INIT(NULL)
+ //PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.FontFace", /* tp_name */
sizeof(PycairoFontFace), /* tp_basicsize */
@@ -178,8 +178,8 @@ static PyMethodDef toy_font_face_methods[] = {
PyTypeObject PycairoToyFontFace_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
- //PyObject_HEAD_INIT(NULL)
+ //PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.ToyFontFace", /* tp_name */
sizeof(PycairoToyFontFace), /* tp_basicsize */
@@ -340,8 +340,8 @@ static PyMethodDef scaled_font_methods[] = {
PyTypeObject PycairoScaledFont_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
- //PyObject_HEAD_INIT(NULL)
+ //PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.ScaledFont", /* tp_name */
sizeof(PycairoScaledFont), /* tp_basicsize */
@@ -527,8 +527,8 @@ static PyMethodDef font_options_methods[] = {
PyTypeObject PycairoFontOptions_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
- //PyObject_HEAD_INIT(NULL)
+ //PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.FontOptions", /* tp_name */
sizeof(PycairoFontOptions), /* tp_basicsize */
diff --git a/src/matrix.c b/src/matrix.c
index 24f6e4a..3601037 100644
--- a/src/matrix.c
+++ b/src/matrix.c
@@ -284,7 +284,8 @@ static PyMethodDef matrix_methods[] = {
};
PyTypeObject PycairoMatrix_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyObject_HEAD_INIT(NULL)
+ //PyVarObject_HEAD_INIT(&PyType_Type, 0)
"cairo.Matrix", /* tp_name */
sizeof(PycairoMatrix), /* tp_basicsize */
0, /* tp_itemsize */
diff --git a/src/path.c b/src/path.c
index e0814d8..546f28d 100644
--- a/src/path.c
+++ b/src/path.c
@@ -165,8 +165,8 @@ static PyObject * path_iter(PyObject *seq); /* forward declaration */
PyTypeObject PycairoPath_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
- //PyObject_HEAD_INIT(NULL)
+ //PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.Path", /* tp_name */
sizeof(PycairoPath), /* tp_basicsize */
@@ -286,8 +286,8 @@ pathiter_next(PycairoPathiter *it) {
}
PyTypeObject PycairoPathiter_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
- //PyObject_HEAD_INIT(NULL)
+ //PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.Pathiter", /* tp_name */
sizeof(PycairoPathiter), /* tp_basicsize */
diff --git a/src/pattern.c b/src/pattern.c
index 9daf5c4..685de55 100644
--- a/src/pattern.c
+++ b/src/pattern.c
@@ -153,8 +153,8 @@ static PyMethodDef pattern_methods[] = {
};
PyTypeObject PycairoPattern_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
- //PyObject_HEAD_INIT(NULL)
+ //PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.Pattern", /* tp_name */
sizeof(PycairoPattern), /* tp_basicsize */
@@ -223,8 +223,8 @@ static PyMethodDef solid_pattern_methods[] = {
};
PyTypeObject PycairoSolidPattern_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
- //PyObject_HEAD_INIT(NULL)
+ //PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.SolidPattern", /* tp_name */
sizeof(PycairoSolidPattern), /* tp_basicsize */
@@ -316,8 +316,8 @@ static PyMethodDef surface_pattern_methods[] = {
};
PyTypeObject PycairoSurfacePattern_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
- //PyObject_HEAD_INIT(NULL)
+ //PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.SurfacePattern", /* tp_name */
sizeof(PycairoSurfacePattern), /* tp_basicsize */
@@ -402,8 +402,8 @@ static PyMethodDef gradient_methods[] = {
};
PyTypeObject PycairoGradient_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
- //PyObject_HEAD_INIT(NULL)
+ //PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.Gradient", /* tp_name */
sizeof(PycairoGradient), /* tp_basicsize */
@@ -473,8 +473,8 @@ static PyMethodDef linear_gradient_methods[] = {
};
PyTypeObject PycairoLinearGradient_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
- //PyObject_HEAD_INIT(NULL)
+ //PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.LinearGradient", /* tp_name */
sizeof(PycairoLinearGradient), /* tp_basicsize */
@@ -546,8 +546,8 @@ static PyMethodDef radial_gradient_methods[] = {
};
PyTypeObject PycairoRadialGradient_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
- //PyObject_HEAD_INIT(NULL)
+ //PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.RadialGradient", /* tp_name */
sizeof(PycairoRadialGradient), /* tp_basicsize */
diff --git a/src/region.c b/src/region.c
index 2198ccd..54e98a7 100644
--- a/src/region.c
+++ b/src/region.c
@@ -127,7 +127,8 @@ static PyMemberDef RectangleInt_members[] = {
};
PyTypeObject PycairoRectangleInt_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ //PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyObject_HEAD_INIT(NULL)
"cairo.RectangleInt", /* tp_name */
sizeof(PycairoRectangleInt), /* tp_basicsize */
0, /* tp_itemsize */
@@ -557,7 +558,8 @@ static PyMethodDef region_methods[] = {
};
PyTypeObject PycairoRegion_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyObject_HEAD_INIT(NULL)
+ //PyVarObject_HEAD_INIT(&PyType_Type, 0)
"cairo.Region", /* tp_name */
sizeof(PycairoRegion), /* tp_basicsize */
0, /* tp_itemsize */
diff --git a/src/surface.c b/src/surface.c
index 204af68..23333de 100644
--- a/src/surface.c
+++ b/src/surface.c
@@ -390,7 +390,8 @@ static PyMethodDef surface_methods[] = {
PyTypeObject PycairoSurface_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyObject_HEAD_INIT(NULL)
+ //PyVarObject_HEAD_INIT(&PyType_Type, 0)
"cairo.Surface", /* tp_name */
sizeof(PycairoSurface), /* tp_basicsize */
0, /* tp_itemsize */
@@ -653,7 +654,8 @@ static PyMethodDef image_surface_methods[] = {
PyTypeObject PycairoImageSurface_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ //PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyObject_HEAD_INIT(NULL)
"cairo.ImageSurface", /* tp_name */
sizeof(PycairoImageSurface), /* tp_basicsize */
0, /* tp_itemsize */
@@ -806,7 +808,8 @@ static PyMethodDef pdf_surface_methods[] = {
};
PyTypeObject PycairoPDFSurface_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ //PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyObject_HEAD_INIT(NULL)
"cairo.PDFSurface", /* tp_name */
sizeof(PycairoPDFSurface), /* tp_basicsize */
0, /* tp_itemsize */
@@ -1005,7 +1008,8 @@ static PyMethodDef ps_surface_methods[] = {
};
PyTypeObject PycairoPSSurface_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ //PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyObject_HEAD_INIT(NULL)
"cairo.PSSurface", /* tp_name */
sizeof(PycairoPSSurface), /* tp_basicsize */
0, /* tp_itemsize */
@@ -1096,7 +1100,8 @@ static PyMethodDef recording_surface_methods[] = {
};
PyTypeObject PycairoRecordingSurface_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ //PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyObject_HEAD_INIT(NULL)
"cairo.RecordingSurface", /* tp_name */
sizeof(PycairoRecordingSurface), /* tp_basicsize */
0, /* tp_itemsize */
@@ -1235,7 +1240,8 @@ static PyMethodDef svg_surface_methods[] = {
};
PyTypeObject PycairoSVGSurface_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ //PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyObject_HEAD_INIT(NULL)
"cairo.SVGSurface", /* tp_name */
sizeof(PycairoSVGSurface), /* tp_basicsize */
0, /* tp_itemsize */
@@ -1299,7 +1305,8 @@ static PyMethodDef win32_surface_methods[] = {
};
PyTypeObject PycairoWin32Surface_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ //PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyObject_HEAD_INIT(NULL)
"cairo.Win32Surface", /* tp_name */
sizeof(PycairoWin32Surface), /* tp_basicsize */
0, /* tp_itemsize */
@@ -1360,7 +1367,8 @@ static PyMethodDef win32_printing_surface_methods[] = {
};
PyTypeObject PycairoWin32PrintingSurface_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ //PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyObject_HEAD_INIT(NULL)
"cairo.Win32PrintingSurface", /* tp_name */
sizeof(PycairoWin32PrintingSurface), /* tp_basicsize */
0, /* tp_itemsize */
@@ -1508,7 +1516,8 @@ static PyMethodDef xcb_surface_methods[] = {
};
PyTypeObject PycairoXCBSurface_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ //PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyObject_HEAD_INIT(NULL)
"cairo.XCBSurface", /* tp_name */
sizeof(PycairoXCBSurface), /* tp_basicsize */
0, /* tp_itemsize */
@@ -1587,7 +1596,8 @@ static PyMethodDef xlib_surface_methods[] = {
};
PyTypeObject PycairoXlibSurface_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ //PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyObject_HEAD_INIT(NULL)
"cairo.XlibSurface", /* tp_name */
sizeof(PycairoXlibSurface), /* tp_basicsize */
0, /* tp_itemsize */
--
2.0.4

View File

@@ -1,49 +0,0 @@
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
_realname=pycairo
pkgbase=mingw-w64-${_realname}-git
pkgname="${MINGW_PACKAGE_PREFIX}-python3-cairo-git"
provides=("${MINGW_PACKAGE_PREFIX}-python3-cairo")
conflicts=("${MINGW_PACKAGE_PREFIX}-python3-cairo")
pkgver=1.10.1.36.8910a35
pkgrel=2
pkgdesc="Python 3 bindings for the cairo graphics library (mingw-w64)"
url="http://www.cairographics.org/pycairo"
arch=('any')
license=('LGPL' 'MPL')
depends=("${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-cairo")
makedepends=('git')
source=("git://git.cairographics.org/git/pycairo"
0001-msys2-port-to-subprocess.check_output.patch
0003-fix-PyVarObject_HEAD_INIT-problem.patch)
sha256sums=('SKIP'
'bbd943874a097353dcbbadc2d40b49772f6c8e514889d55f8a56935a20215fe2'
'0ac9a474266a5cb84692014c82707332571680c4f4d16531c6eaed1e0d1d5751')
pkgver() {
cd ${_realname}
PREFIX="pycairo_version = '"
ver=$(grep "$PREFIX" setup.py | sed "s/$PREFIX//" | sed "s/'//")
revision=$(git rev-list --count HEAD)
hash=$(git log --pretty=format:'%h' -n 1)
echo ${ver}.${revision}.${hash}
}
prepare() {
cd ${_realname}
git am ${srcdir}/0001-msys2-port-to-subprocess.check_output.patch
git am ${srcdir}/0003-fix-PyVarObject_HEAD_INIT-problem.patch
}
build() {
cd ${_realname}
MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \
${MINGW_PREFIX}/bin/python3 setup.py build
}
package() {
cd ${_realname}
MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \
${MINGW_PREFIX}/bin/python3 setup.py install \
--prefix=${MINGW_PREFIX} --root="${pkgdir}"
}

View File

@@ -1,69 +0,0 @@
From f569b675403aa987c3023f2365052bf38a663f3f Mon Sep 17 00:00:00 2001
From: Lubosz Sarnecki <lubosz@gmail.com>
Date: Mon, 4 Aug 2014 12:31:10 +0200
Subject: [PATCH 1/3] msys2: port to subprocess.check_output.
---
setup.py | 41 ++++++++++++++++++-----------------------
1 file changed, 18 insertions(+), 23 deletions(-)
diff --git a/setup.py b/setup.py
index 1985420..dabf41e 100755
--- a/setup.py
+++ b/setup.py
@@ -16,35 +16,30 @@ pkgconfig_file = 'py3cairo.pc'
config_file = 'src/config.h'
-def call(command):
- pipe = subprocess.Popen(command, shell=True,
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE)
- pipe.wait()
- return pipe
-
def pkg_config_version_check(pkg, version):
- check = '%s >= %s' % (pkg, version)
- pipe = call("pkg-config --print-errors --exists '%s'" % (check,))
- if pipe.returncode == 0:
- print(check, ' Successful')
- else:
- print(check, ' Failed')
- raise SystemExit(pipe.stderr.read().decode())
+ command = ["pkg-config",
+ "--print-errors",
+ "--exists",
+ '%s >= %s' % (pkg, version)]
+ try:
+ ret = subprocess.check_output(command)
+ except subprocess.CalledProcessError as e:
+ print(command, ' Failed')
+ raise SystemExit(e.output.decode())
+ print(command, ' Successful')
def pkg_config_parse(opt, pkg):
- check = "pkg-config %s %s" % (opt, pkg)
- pipe = call("pkg-config %s %s" % (opt, pkg))
- if pipe.returncode != 0:
- print(check, ' Failed')
- raise SystemExit(pipe.stderr.read().decode())
-
- output = pipe.stdout.read()
- output = output.decode() # get the str
+ command = ["pkg-config", opt, pkg]
+ try:
+ ret = subprocess.check_output(command)
+ except subprocess.CalledProcessError as e:
+ print(command, ' Failed')
+ raise SystemExit(e.output.decode())
+
+ output = ret.decode()
opt = opt[-2:]
return [x.lstrip(opt) for x in output.split()]
-
def createPcFile(PcFile):
print('creating %s' % PcFile)
with open(PcFile, 'w') as fo:
--
2.0.4

View File

@@ -1,46 +0,0 @@
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
_realname=pycairo
pkgbase=mingw-w64-python3-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-python3-cairo"
pkgver=1.10.0
pkgrel=7
pkgdesc="Python 3 bindings for the cairo graphics library (mingw-w64)"
url="http://www.cairographics.org/pycairo"
arch=('any')
license=('LGPL' 'MPL')
depends=("${MINGW_PACKAGE_PREFIX}-python3" "${MINGW_PACKAGE_PREFIX}-cairo")
source=(http://cairographics.org/releases/${_realname}-${pkgver}.tar.bz2
'setup.py::https://cgit.freedesktop.org/pycairo/plain/setup.py?id=cd463341de185094455cf5869a442aa02b8b812e'
0001-msys2-port-to-subprocess.check_output.patch
setup-package-dir.patch
head-init.patch)
sha256sums=('9aa4078e7eb5be583aeabbe8d87172797717f95e8c4338f0d4a17b683a7253be'
'049b2afe6032d4e794680cbb4dcc642ec743cbcbc7cee8aaad587431fdb1dab2'
'bbd943874a097353dcbbadc2d40b49772f6c8e514889d55f8a56935a20215fe2'
'40fa12ab2a98b6e677afe5e0b47d3907e6f53f53961b586566d0e19be7665a63'
'00567503e89a0e7bb8bc8cd3583b5fcff4b8e00d7a646f76e766d798abae65a3')
prepare() {
cd "${srcdir}/pycairo-${pkgver}"
cp "${srcdir}/setup.py" .
patch -p1 -i "${srcdir}/0001-msys2-port-to-subprocess.check_output.patch"
patch -p0 -i "${srcdir}/setup-package-dir.patch"
patch -p1 -i "${srcdir}/head-init.patch"
}
build() {
cd "${srcdir}/pycairo-${pkgver}"
MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \
${MINGW_PREFIX}/bin/python3 setup.py build
}
package() {
cd "${srcdir}/pycairo-${pkgver}"
MSYS2_ARG_CONV_EXCL="--exec-prefix=;--prefix=;--install-scripts=;--install-platlib=" \
${MINGW_PREFIX}/bin/python3 setup.py install \
--prefix=${MINGW_PREFIX} --root="${pkgdir}"
}

View File

@@ -1,225 +0,0 @@
diff -Nur pycairo-1.10.0/src/context.c pycairo-1.10.0-new/src/context.c
--- pycairo-1.10.0/src/context.c 2010-09-19 05:06:09.000000000 +0200
+++ pycairo-1.10.0-new/src/context.c 2016-12-01 20:18:27.516585100 +0100
@@ -1329,7 +1329,7 @@
};
PyTypeObject PycairoContext_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyVarObject_HEAD_INIT(NULL, 0)
// PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.Context", /* tp_name */
diff -Nur pycairo-1.10.0/src/font.c pycairo-1.10.0-new/src/font.c
--- pycairo-1.10.0/src/font.c 2010-09-19 05:09:23.000000000 +0200
+++ pycairo-1.10.0-new/src/font.c 2016-12-01 20:24:01.738701500 +0100
@@ -90,7 +90,7 @@
*/
PyTypeObject PycairoFontFace_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyVarObject_HEAD_INIT(NULL, 0)
//PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.FontFace", /* tp_name */
@@ -178,7 +178,7 @@
PyTypeObject PycairoToyFontFace_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyVarObject_HEAD_INIT(NULL, 0)
//PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.ToyFontFace", /* tp_name */
@@ -340,7 +340,7 @@
PyTypeObject PycairoScaledFont_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyVarObject_HEAD_INIT(NULL, 0)
//PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.ScaledFont", /* tp_name */
@@ -527,7 +527,7 @@
PyTypeObject PycairoFontOptions_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyVarObject_HEAD_INIT(NULL, 0)
//PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.FontOptions", /* tp_name */
diff -Nur pycairo-1.10.0/src/matrix.c pycairo-1.10.0-new/src/matrix.c
--- pycairo-1.10.0/src/matrix.c 2010-09-11 16:13:19.000000000 +0200
+++ pycairo-1.10.0-new/src/matrix.c 2016-12-01 20:22:42.873190700 +0100
@@ -284,7 +284,7 @@
};
PyTypeObject PycairoMatrix_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyVarObject_HEAD_INIT(NULL, 0)
//PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.Matrix", /* tp_name */
diff -Nur pycairo-1.10.0/src/path.c pycairo-1.10.0-new/src/path.c
--- pycairo-1.10.0/src/path.c 2010-09-11 16:06:57.000000000 +0200
+++ pycairo-1.10.0-new/src/path.c 2016-12-01 20:22:39.493997400 +0100
@@ -165,7 +165,7 @@
PyTypeObject PycairoPath_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyVarObject_HEAD_INIT(NULL, 0)
//PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.Path", /* tp_name */
@@ -286,7 +286,7 @@
}
PyTypeObject PycairoPathiter_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyVarObject_HEAD_INIT(NULL, 0)
//PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.Pathiter", /* tp_name */
diff -Nur pycairo-1.10.0/src/pattern.c pycairo-1.10.0-new/src/pattern.c
--- pycairo-1.10.0/src/pattern.c 2011-03-28 05:23:25.000000000 +0200
+++ pycairo-1.10.0-new/src/pattern.c 2016-12-01 20:23:50.691069600 +0100
@@ -153,7 +153,7 @@
};
PyTypeObject PycairoPattern_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyVarObject_HEAD_INIT(NULL, 0)
//PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.Pattern", /* tp_name */
@@ -223,7 +223,7 @@
};
PyTypeObject PycairoSolidPattern_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyVarObject_HEAD_INIT(NULL, 0)
//PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.SolidPattern", /* tp_name */
@@ -316,7 +316,7 @@
};
PyTypeObject PycairoSurfacePattern_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyVarObject_HEAD_INIT(NULL, 0)
//PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.SurfacePattern", /* tp_name */
@@ -402,7 +402,7 @@
};
PyTypeObject PycairoGradient_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyVarObject_HEAD_INIT(NULL, 0)
//PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.Gradient", /* tp_name */
@@ -473,7 +473,7 @@
};
PyTypeObject PycairoLinearGradient_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyVarObject_HEAD_INIT(NULL, 0)
//PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.LinearGradient", /* tp_name */
@@ -546,7 +546,7 @@
};
PyTypeObject PycairoRadialGradient_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyVarObject_HEAD_INIT(NULL, 0)
//PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.RadialGradient", /* tp_name */
diff -Nur pycairo-1.10.0/src/surface.c pycairo-1.10.0-new/src/surface.c
--- pycairo-1.10.0/src/surface.c 2010-09-19 11:36:54.000000000 +0200
+++ pycairo-1.10.0-new/src/surface.c 2016-12-01 20:22:06.819128500 +0100
@@ -347,7 +347,7 @@
PyTypeObject PycairoSurface_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyVarObject_HEAD_INIT(NULL, 0)
//PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.Surface", /* tp_name */
@@ -646,7 +646,7 @@
PyTypeObject PycairoImageSurface_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyVarObject_HEAD_INIT(NULL, 0)
// PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.ImageSurface", /* tp_name */
@@ -771,7 +771,7 @@
};
PyTypeObject PycairoPDFSurface_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyVarObject_HEAD_INIT(NULL, 0)
// PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.PDFSurface", /* tp_name */
@@ -974,7 +974,7 @@
};
PyTypeObject PycairoPSSurface_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyVarObject_HEAD_INIT(NULL, 0)
//PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.PSSurface", /* tp_name */
@@ -1089,7 +1089,7 @@
};
PyTypeObject PycairoSVGSurface_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyVarObject_HEAD_INIT(NULL, 0)
//PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.SVGSurface", /* tp_name */
@@ -1155,7 +1155,7 @@
};
PyTypeObject PycairoWin32Surface_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyVarObject_HEAD_INIT(NULL, 0)
//PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.Win32Surface", /* tp_name */
@@ -1218,7 +1218,7 @@
};
PyTypeObject PycairoWin32PrintingSurface_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyVarObject_HEAD_INIT(NULL, 0)
//PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.Win32PrintingSurface", /* tp_name */
@@ -1368,7 +1368,7 @@
};
PyTypeObject PycairoXCBSurface_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyVarObject_HEAD_INIT(NULL, 0)
//PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.XCBSurface", /* tp_name */
@@ -1449,7 +1449,7 @@
};
PyTypeObject PycairoXlibSurface_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyVarObject_HEAD_INIT(NULL, 0)
//PyObject_HEAD_INIT(NULL)
//0, /* ob_size */
"cairo.XlibSurface", /* tp_name */

View File

@@ -1,16 +0,0 @@
--- setup.py 2016-12-01 18:38:00.167840500 +0100
+++ setup_new.py 2016-12-01 19:51:56.800601300 +0100
@@ -114,10 +114,10 @@
version = pycairo_version,
description = "python interface for cairo",
ext_modules = [cairo],
+ package_dir = {"cairo": "src"},
+ packages = ["cairo"],
data_files = [
('include/pycairo', ['src/py3cairo.h']),
('lib/pkgconfig', [pkgconfig_file]),
- (os.path.join(dsy.get_python_lib(), 'cairo'),
- ['src/__init__.py']),
],
)