summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
authorFantix King2015-11-18 14:37:49 +0800
committerFantix King2015-11-19 18:05:57 +0800
commitbfa70b2a4583a336ffcaa6bc9b10965446490651 (patch)
tree34735a64b7ef0db9181ea1ee8b1f4c4623382896 /PKGBUILD
downloadaur-bfa70b2a4583a336ffcaa6bc9b10965446490651.tar.gz
3.5.0-2.1
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD161
1 files changed, 161 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..a3c47fe56bd8
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,161 @@
+# $Id: PKGBUILD 248014 2015-10-01 16:04:08Z fyan $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Maintainer: Felix Yan <felixonmars@archlinux.org>
+# Contributor: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Jason Chu <jason@archlinux.org>
+# x23 Maintainer: Fantix King <fantix.king@gmail.com>
+
+_pkgbasename=python
+pkgname=libx32-python
+pkgver=3.5.0
+pkgrel=2.1
+_pybasever=3.5
+pkgdesc="Next generation of the python high-level scripting language (x32 ABI)"
+arch=('x86_64')
+license=('custom')
+url="http://www.python.org/"
+depends=('libx32-expat' 'libx32-bzip2' 'libx32-gdbm' 'libx32-openssl' 'libx32-libffi' 'libx32-zlib' $_pkgbasename)
+makedepends=('libx32-tk' 'libx32-sqlite' 'bluez-libs' 'libx32-mpdecimal' 'libx32-readline' 'libx32-xz')
+checkdepends=('gdb' 'xorg-server-xvfb')
+optdepends=('libx32-sqlite'
+ 'libx32-mpdecimal: for decimal'
+ 'libx32-xz: for lzma'
+ 'libx32-tk: for tkinter')
+options=('!makeflags')
+source=("http://www.python.org/ftp/python/${pkgver%rc*}/Python-${pkgver}.tar.xz"
+ pyconfig-stub.h
+ venv-x32.patch
+ test_gdb-version-fix.patch
+ dont-make-libpython-readonly.patch
+ issue25150.patch)
+sha1sums=('871a06df9ab70984b7398ac53047fe125c757a70'
+ '74e5b55b394b1dfe5c430734e2ce049d595fb50f'
+ 'af6b854349f4992892471b9cb363e8a6ce19ea6b'
+ 'ab86515aff465385675e2e6e593f09596e0a8db0'
+ 'c22b24324b8e53326702de439c401d97927ee3f2'
+ 'bd068695d22931320069200f240c425096bb5011')
+
+prepare() {
+ cd Python-${pkgver}
+
+ # https://bugs.python.org/issue25096
+ patch -p1 -i ../test_gdb-version-fix.patch
+
+ # FS#45809
+ patch -p1 -i ../dont-make-libpython-readonly.patch
+
+ # https://bugs.python.org/issue25150
+ patch -p1 -i ../issue25150.patch
+
+ # x32 venv
+ patch -p1 -i ../venv-x32.patch
+
+ # FS#23997
+ sed -i -e "s|^#.* /usr/local/bin/python|#!/usr/bin/python-x32|" Lib/cgi.py
+
+ # Ensure that we are using the system copy of various libraries (expat, zlib, libffi, and libmpdec),
+ # rather than copies shipped in the tarball
+ rm -r Modules/expat
+ rm -r Modules/zlib
+ rm -r Modules/_ctypes/{darwin,libffi}*
+ rm -r Modules/_decimal/libmpdec
+
+ # x32 fixes
+ sed -i "s|base}/lib|base}/libx32|g" "${srcdir}/Python-${pkgver}/Lib/sysconfig.py"
+ sed -i "s|/include|/libx32/python{py_version_short}/include|g" "${srcdir}/Python-${pkgver}/Lib/sysconfig.py"
+ sed -i "s|lib/|libx32/|g" "${srcdir}/Python-${pkgver}/Modules/getpath.c"
+ sed -i "s|base/lib|base/libx32|g" "${srcdir}/Python-${pkgver}/Lib/distutils/command/install.py"
+ sed -i "s|/include|/libx32/python$py_version_short/include|g" "${srcdir}/Python-${pkgver}/Lib/distutils/command/install.py"
+ sed -i "s|prefix)/lib|prefix)/libx32|g" "${srcdir}/Python-${pkgver}/Makefile.pre.in"
+ sed -i "s|lib/python|libx32/python|g" "${srcdir}/Python-${pkgver}/configure"
+ sed -i "s|\"lib\"|\"libx32\"|g" "${srcdir}/Python-${pkgver}/Lib/distutils/sysconfig.py"
+}
+
+build() {
+ cd Python-${pkgver}
+
+ export CC="gcc -mx32"
+ export CXX="g++ -mx32"
+ export LDFLAGS='-mx32'
+ export PKG_CONFIG_PATH="/usr/libx32/pkgconfig"
+ export OPT="${CFLAGS}"
+
+ # Disable bundled pip & setuptools
+ ./configure --prefix=/usr \
+ --libdir=/usr/libx32 \
+ --with-suffix='-x32' \
+ --enable-shared \
+ --with-threads \
+ --with-computed-gotos \
+ --enable-ipv6 \
+ --with-system-expat \
+ --with-dbmliborder=gdbm:ndbm \
+ --with-system-ffi \
+ --with-system-libmpdec \
+ --enable-loadable-sqlite-extensions \
+ --without-ensurepip
+
+ make EXTRA_CFLAGS="$CFLAGS"
+}
+
+check() {
+ # Failures:
+ # test_pathlib & test_posixpath: https://bugs.python.org/issue24950
+
+ # Hacks:
+ # test_tk: xvfb-run
+ # test_unicode_file: LC_CTYPE=en_US.utf-8
+
+ cd Python-${pkgver}
+ LD_LIBRARY_PATH="${srcdir}/Python-${pkgver}":${LD_LIBRARY_PATH} \
+ LC_CTYPE=en_US.utf-8 xvfb-run \
+ "${srcdir}/Python-${pkgver}/python-x32" -m test.regrtest -uall || warning "Expected failure"
+}
+
+package() {
+ install="${pkgname}.install"
+
+ cd Python-${pkgver}
+ make DESTDIR="${pkgdir}" EXTRA_CFLAGS="$CFLAGS" install maninstall
+
+ # Why are these not done by default...
+ ln -s python3-x32 "${pkgdir}"/usr/bin/python-x32
+ ln -s python3-x32-config "${pkgdir}"/usr/bin/python-x32-config
+ ln -s idle3-x32 "${pkgdir}"/usr/bin/idle-x32
+
+ # Fix FS#22552
+ ln -sf ../../libpython${_pybasever}m.so \
+ "${pkgdir}/usr/libx32/python${_pybasever}/config-${_pybasever}m/libpython${_pybasever}m.so"
+
+ # some useful "stuff" FS#46146
+ install -dm755 "${pkgdir}"/usr/libx32/python${_pybasever}/Tools/{i18n,scripts}
+ install -m755 Tools/i18n/{msgfmt,pygettext}.py "${pkgdir}"/usr/libx32/python${_pybasever}/Tools/i18n/
+ install -m755 Tools/scripts/{README,*py} "${pkgdir}"/usr/libx32/python${_pybasever}/Tools/scripts/
+
+ # Clean-up reference to build directory
+ sed -i "s|$srcdir/Python-${pkgver}:||" "$pkgdir/usr/libx32/python${_pybasever}/config-${_pybasever}m/Makefile"
+
+ mv "${pkgdir}/usr/include/python3.5m/pyconfig.h" "${srcdir}/pyconfig-x32.h"
+ rm -rf "${pkgdir}"/usr/{include,share}
+ mkdir -p "$pkgdir/usr/include/python3.5m"
+ install -Dm644 "${srcdir}/pyconfig-x32.h" "${pkgdir}/usr/include/python3.5m/pyconfig-x32.h"
+ install -Dm644 "${srcdir}/pyconfig-stub.h" "${pkgdir}/usr/include/python3.5m/pyconfig-stub.h"
+
+ rm "${pkgdir}"/usr/bin/2to3{,-3.5}
+ rm "${pkgdir}"/usr/bin/idle3
+ mv "${pkgdir}"/usr/bin/idle3.5{,-x32}
+ ln -s idle3.5-x32 "${pkgdir}"/usr/bin/idle3-x32
+ rm "${pkgdir}"/usr/bin/pydoc3{,.5}
+ rm "${pkgdir}"/usr/bin/python3{,.5}-config
+ mv "${pkgdir}"/usr/bin/python3.5m{,-x32}-config
+ ln -s python3.5m-x32-config "${pkgdir}"/usr/bin/python3.5-x32-config
+ ln -s python3.5-x32-config "${pkgdir}"/usr/bin/python3-x32-config
+ rm "${pkgdir}"/usr/bin/pyvenv
+ mv "${pkgdir}"/usr/bin/pyvenv-3.5{,-x32}
+ ln -s pyvenv-3.5-x32 "${pkgdir}"/usr/bin/pyvenv-x32
+
+ # License
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}