~alpine/aports

This thread contains a patchset. You're looking at the original emails, but you may wish to use the patch review UI. Review patch

[PATCH] community/py3-pyclipper: use clipper library from Alpine package

Sascha Brawer <sascha@brawer.ch>
Details
Message ID
<20200305185458.7-1-sascha@brawer.ch>
DKIM signature
missing
Download raw message
Patch: +52 -7
To save installation space, and to use the exact same implementation
of polygon clipping across the system.

Also taking the source code from pypi instead of github, like most
other Alpine py3 packages. Other than github, pypi is putting the git
release tag into the zip bundles, which is then used by Python
setuptools. When setuptools is installing a package, it is checking
for the version tag, and the installation fails with a warning when
the version tag cannot be inferred.  Before this change, the `APKBUILD`
would run `git init` to work around this setuptools check.  After this
change, that hack is not needed anymore.
---
 community/py3-pyclipper/10-system-libs.patch | 30 ++++++++++++++++++++
 community/py3-pyclipper/APKBUILD             | 29 ++++++++++++++-----
 2 files changed, 52 insertions(+), 7 deletions(-)
 create mode 100644 community/py3-pyclipper/10-system-libs.patch

diff --git a/community/py3-pyclipper/10-system-libs.patch b/community/py3-pyclipper/10-system-libs.patch
new file mode 100644
index 0000000000..cc1c738856
--- /dev/null
+++ b/community/py3-pyclipper/10-system-libs.patch
@@ -0,0 +1,30 @@
--- a/setup.py
+++ b/setup.py
@@ -23,7 +23,7 @@
     from Cython.Distutils import build_ext
 
     print('Development mode: Compiling Cython modules from .pyx sources.')
-    sources = ["pyclipper/pyclipper.pyx", "pyclipper/clipper.cpp"]
+    sources = ["pyclipper/pyclipper.pyx"]
 
     from setuptools.command.sdist import sdist as _sdist
 
@@ -40,7 +40,7 @@
 
 else:
     print('Distribution mode: Compiling Cython generated .cpp sources.')
-    sources = ["pyclipper/pyclipper.cpp", "pyclipper/clipper.cpp"]
+    sources = ["pyclipper/pyclipper.cpp"]
     cmdclass = {}
 
 
@@ -51,6 +51,9 @@
 ext = Extension("pyclipper",
                 sources=sources,
                 language="c++",
+                include_dirs=['/usr/include/polyclipping'],
+                libraries=['polyclipping'],
+                library_dirs=['/usr/lib'],
                 # define extra macro definitions that are used by clipper
                 # Available definitions that can be used with pyclipper:
                 # use_lines, use_int32
diff --git a/community/py3-pyclipper/APKBUILD b/community/py3-pyclipper/APKBUILD
index c51d5c925c..87cd1163ba 100644
--- a/community/py3-pyclipper/APKBUILD
+++ b/community/py3-pyclipper/APKBUILD
@@ -1,20 +1,34 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
pkgname=py3-pyclipper
_pyname=pyclipper
pkgver=1.1.0
pkgrel=0
_pkgpostver="$pkgver.post3"
pkgrel=1
pkgdesc="Cython wrapper for clipper"
url="https://github.com/fonttools/pyclipper"
arch="all"
license="MIT"
depends="python3"
makedepends="py3-setuptools python3-dev cython"
depends="python3 clipper libgcc libstdc++"
makedepends="py3-setuptools python3-dev cython clipper-dev"
checkdepends="py3-pytest"
source="$pkgname-$pkgver.tar.gz::https://github.com/fonttools/pyclipper/archive/$pkgver.post2.tar.gz"
builddir="$srcdir/pyclipper-$pkgver.post2"
_pypiprefix="${_pyname%${_pyname#?}}"
source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$_pkgpostver.zip
	10-system-libs.patch
"
builddir="$srcdir/$_pyname-$_pkgpostver"

# For system-wide consistency, and to save installation space,
# we do not use the copy of the Clipper library that comes bundled
# with the pyclipper sources. Instead, we use the system-wide shared
# library.

prepare() {
	default_prepare
	rm pyclipper/clipper.cpp pyclipper/clipper.hpp
}

build() {
	git init
	python3 setup.py build
}

@@ -26,4 +40,5 @@ package() {
	python3 setup.py install --prefix=/usr --root="$pkgdir"
}

sha512sums="2c5044ef3a516e909a1f2e87a4824660bf02721f830a0dfb6a853eae02875b6e45a0aaaf3c3591ad7a5b6679364a366c5977f7ba1f44899f98a7c2f95f2f5061  py3-pyclipper-1.1.0.tar.gz"
sha512sums="303be17e498f1d9fc5cdd0ce7c3e4c92c5d6dae7c7be7003402baa8403ec06951ec4805401748689e429118484cebaa6a762b8c2f4fc6ec801b4fd4a891131d9  pyclipper-1.1.0.post3.zip
f15b927ce6b40413fa3f44b8e3a4bebc8799a981babaa7e69b73b525c155dbe60c46a373509df886709daaa8c15169a9f38239f34da9d1f886f90ca61247a034  10-system-libs.patch"
-- 
2.25.1
Reply to thread Export thread (mbox)