aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2016-10-26 12:28:45 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2016-10-26 12:42:33 +0000
commitec356aebd5adedb9de23cbb54ff42a783fb835e7 (patch)
tree3d5d9547461536638cad6966d89d7a5546111c54 /main
parentdddfa696dcbef80b8169cb1079eef23cbbd25491 (diff)
downloadaports-ec356aebd5adedb9de23cbb54ff42a783fb835e7.tar.bz2
aports-ec356aebd5adedb9de23cbb54ff42a783fb835e7.tar.xz
main/python2: fix cyclic dependency for tkinter
Add a separate apkbuild for tkinter to avoid the cyclic buildtime dependency: python -> tk -> libX11 -> libxcb -> xcb-proto -> python
Diffstat (limited to 'main')
-rw-r--r--main/python2-tkinter/APKBUILD102
-rw-r--r--main/python2/APKBUILD15
2 files changed, 103 insertions, 14 deletions
diff --git a/main/python2-tkinter/APKBUILD b/main/python2-tkinter/APKBUILD
new file mode 100644
index 0000000000..b642cc3b69
--- /dev/null
+++ b/main/python2-tkinter/APKBUILD
@@ -0,0 +1,102 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+
+# This package must be synchronized with python2. It is splitted to avoid
+# a cyclic dependency: python -> tk -> libx11 -> libxcb -> xcb-proto -> python
+
+pkgname=python2-tkinter
+pkgver=2.7.12
+_verbase=${pkgver%.*}
+pkgrel=0
+pkgdesc="A graphical user interface for the Python"
+url="https://wiki.python.org/moin/TkInter"
+arch="all"
+license="custom"
+subpackages="$pkgname-tests python2-idle:_idle"
+depends=""
+makedepends="expat-dev libressl-dev zlib-dev ncurses-dev bzip2-dev
+ gdbm-dev sqlite-dev libffi-dev readline-dev linux-headers paxmark
+ tk tk-dev python2"
+source="http://www.python.org/ftp/python/$pkgver/Python-$pkgver.tar.xz"
+builddir="$srcdir/Python-$pkgver"
+
+prepare() {
+ local _pyapkbuild="$startdir"/../python2/APKBUILD
+ if [ -e "$_pyapkbuild" ]; then
+ _pver=$(. "$_pyapkbuild" ; echo $pkgver)
+ if [ "$_pver" != "$pkgver" ]; then
+ error "python version mismatch ($_pver). Set pkgver=$_pver"
+ return 1
+ fi
+ fi
+ default_prepare || return 1
+ cd "$builddir"
+
+ # Make sure we use system libs
+ rm -rf Modules/expat Modules/_ctypes/libffi* Modules/zlib || return 1
+}
+
+build() {
+ cd "$builddir"
+ export OPT="$CFLAGS"
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --enable-shared \
+ --with-threads \
+ --enable-ipv6 \
+ --with-system-ffi \
+ --with-system-expat \
+ --with-system-zlib \
+ --enable-unicode=ucs4 \
+ || return 1
+ make || return 1
+}
+
+package() {
+ cd "$builddir"
+ # we only care about idle, and tkinter
+ make DESTDIR="$builddir"/tmpinstall sharedinstall libinstall \
+ || return 1
+
+ mkdir -p "$pkgdir"/usr/lib/python${_verbase}/lib-dynload \
+ "$pkgdir"/usr/bin || return 1
+
+ for lib in idlelib lib-tk; do
+ mv "$builddir"/tmpinstall/usr/lib/python${_verbase}/$lib \
+ "$pkgdir"/usr/lib/python${_verbase}/ || return 1
+ done
+
+ mv "$builddir"/tmpinstall/usr/lib/python${_verbase}/lib-dynload/_tkinter.so \
+ "$pkgdir"/usr/lib/python${_verbase}/lib-dynload/ || return 1
+
+ mv "$builddir"/tmpinstall/usr/bin/idle \
+ "$pkgdir"/usr/bin/idle${_verbase} || return 1
+}
+
+_mv_files() {
+ local i
+ for i in "$@"; do
+ mkdir -p "$subpkgdir"/${i%/*}
+ mv "$pkgdir"/$i "$subpkgdir"/$i || return 1
+ done
+}
+
+tests() {
+ pkgdesc="The test modules from the main python package for tkinter"
+ replaces="python-tests python2-tests"
+ cd "$pkgdir"
+ _mv_files usr/lib/python*/*/test || return 1
+}
+
+_idle() {
+ pkgdesc="IDE for Python2 using Tkinter"
+ arch=noarch
+ depends="$pkgname=$pkgver-r$pkgrel"
+ cd "$pkgdir"
+ _mv_files usr/bin
+}
+
+md5sums="57dffcee9cee8bb2ab5f82af1d8e9a69 Python-2.7.12.tar.xz"
+sha256sums="d7837121dd5652a05fef807c361909d255d173280c4e1a4ded94d73d80a1f978 Python-2.7.12.tar.xz"
+sha512sums="6ddbbce47cc49597433d98ca05c2f62f07ed1070807b645602a8e9e9b996adc6fa66fa20a33cd7d23d4e7e925e25071d7301d288149fbe4e8c5f06d5438dda1f Python-2.7.12.tar.xz"
diff --git a/main/python2/APKBUILD b/main/python2/APKBUILD
index 7f0e26a21d..37b9de2aa2 100644
--- a/main/python2/APKBUILD
+++ b/main/python2/APKBUILD
@@ -2,7 +2,7 @@
pkgname=python2
pkgver=2.7.12
_verbase=${pkgver%.*}
-pkgrel=4
+pkgrel=5
pkgdesc="A high-level scripting language"
url="http://www.python.org"
arch="all"
@@ -18,12 +18,6 @@ source="http://www.python.org/ftp/python/$pkgver/Python-$pkgver.tar.xz
unchecked-ioctl.patch"
builddir="$srcdir/Python-$pkgver"
-# To avoid circular dependency between python2 and x11 when bootstrapping.
-if [ -z "$BOOTSTRAP" ]; then
- subpackages="$subpackages py2-tkinter:tkinter"
- makedepends="$makedepends tk tk-dev"
-fi
-
prepare() {
default_prepare || return 1
@@ -104,13 +98,6 @@ gdbm() {
_mv_files $(find usr/lib -name '*gdbm*')
}
-tkinter() {
- pkgdesc="A graphical user interface for the Python"
- replaces="py-tkinter"
-
- _mv_files usr/lib/python$_verbase/lib-dynload/_tkinter.so
-}
-
md5sums="57dffcee9cee8bb2ab5f82af1d8e9a69 Python-2.7.12.tar.xz
e2ea88671f8f838142323aedc417be48 musl-find_library.patch
dada786a50fa332686a9b9260d84c110 unchecked-ioctl.patch"