summaryrefslogtreecommitdiff
path: root/testing/python2
diff options
context:
space:
mode:
Diffstat (limited to 'testing/python2')
-rw-r--r--testing/python2/PKGBUILD90
-rw-r--r--testing/python2/python-2.7-db51.diff42
-rw-r--r--testing/python2/python-2.7.1-fix-decimal-in-turkish-locale.patch48
3 files changed, 180 insertions, 0 deletions
diff --git a/testing/python2/PKGBUILD b/testing/python2/PKGBUILD
new file mode 100644
index 000000000..2dadb1ec3
--- /dev/null
+++ b/testing/python2/PKGBUILD
@@ -0,0 +1,90 @@
+# $Id: PKGBUILD 119684 2011-04-13 16:35:24Z stephane $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributer: Jason Chu <jason@archlinux.org>
+
+pkgname=python2
+pkgver=2.7.1
+pkgrel=8
+_pybasever=2.7
+pkgdesc="A high-level scripting language"
+arch=('i686' 'x86_64')
+license=('PSF')
+url="http://www.python.org/"
+depends=('db' 'bzip2' 'gdbm' 'openssl' 'zlib' 'expat' 'sqlite3' 'libffi')
+makedepends=('tk')
+optdepends=('tk: for IDLE')
+conflicts=('python<3')
+options=('!makeflags')
+source=(http://www.python.org/ftp/python/${pkgver}/Python-${pkgver}.tar.bz2
+ python-2.7-db51.diff
+ python-2.7.1-fix-decimal-in-turkish-locale.patch)
+md5sums=('aa27bc25725137ba155910bd8e5ddc4f'
+ 'd9b8161568ce17a305c1b71e61ccd4b5'
+ '5032449f1ff2abfe18d14cc674165b23')
+
+build() {
+ cd "${srcdir}/Python-${pkgver}"
+
+ patch -Np1 -i ../python-2.7-db51.diff
+
+ # Fix "import decimal" in the Turkish locale
+ # cf : https://bugzilla.redhat.com/show_bug.cgi?id=694928
+ patch -Np1 -i ../python-2.7.1-fix-decimal-in-turkish-locale.patch
+
+ # Temporary workaround for FS#22322
+ # See http://bugs.python.org/issue10835 for upstream report
+ sed -i "/progname =/s/python/python${_pybasever}/" Python/pythonrun.c
+
+ # Enable built-in SQLite3 module to load extensions (fix FS#22122)
+ sed -i "/SQLITE_OMIT_LOAD_EXTENSION/d" setup.py
+
+ # Ensure that we are using the system copy of various libraries (expat, zlib and libffi),
+ # rather than copies shipped in the tarball
+ rm -r Modules/expat
+ rm -r Modules/zlib
+ rm -r Modules/_ctypes/{darwin,libffi}*
+
+ export OPT="${CFLAGS}"
+ ./configure --prefix=/usr --enable-shared --with-threads --enable-ipv6 \
+ --enable-unicode=ucs4 --with-system-expat --with-system-ffi
+
+ make
+}
+
+package() {
+ cd "${srcdir}/Python-${pkgver}"
+ make DESTDIR="${pkgdir}" altinstall maninstall
+
+ ln -sf python${_pybasever} "${pkgdir}/usr/bin/python2"
+ ln -sf python${_pybasever}-config "${pkgdir}/usr/bin/python2-config"
+ ln -sf python${_pybasever}.1 "${pkgdir}/usr/share/man/man1/python2.1"
+
+ ln -sf ../../libpython${_pybasever}.so \
+ "${pkgdir}/usr/lib/python${_pybasever}/config/libpython${_pybasever}.so"
+
+ mv "${pkgdir}/usr/bin/smtpd.py" "${pkgdir}/usr/lib/python${_pybasever}/"
+
+ # some useful "stuff"
+ install -dm755 "${pkgdir}"/usr/lib/python${_pybasever}/Tools/{i18n,scripts}
+ install -m755 Tools/i18n/{msgfmt,pygettext}.py \
+ "${pkgdir}/usr/lib/python${_pybasever}/Tools/i18n/"
+ install -m755 Tools/scripts/{README,*py} \
+ "${pkgdir}/usr/lib/python${_pybasever}/Tools/scripts/"
+
+ # fix conflicts with python
+ mv "${pkgdir}"/usr/bin/idle{,2}
+ mv "${pkgdir}"/usr/bin/pydoc{,2}
+ mv "${pkgdir}"/usr/bin/2to3{,-2.7}
+
+ # clean up #!s
+ find "${pkgdir}/usr/lib/python${_pybasever}/" -name '*.py' | \
+ xargs sed -i "s|#[ ]*![ ]*/usr/bin/env python$|#!/usr/bin/env python2|"
+
+ # clean-up reference to build directory
+ sed -i "s#${srcdir}/Python-${pkgver}:##" \
+ "${pkgdir}/usr/lib/python${_pybasever}/config/Makefile"
+
+ # license
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/testing/python2/python-2.7-db51.diff b/testing/python2/python-2.7-db51.diff
new file mode 100644
index 000000000..2da95c375
--- /dev/null
+++ b/testing/python2/python-2.7-db51.diff
@@ -0,0 +1,42 @@
+diff -Naur Python-2.7-orig//Modules/_bsddb.c Python-2.7/Modules/_bsddb.c
+--- Python-2.7-orig//Modules/_bsddb.c 2010-05-10 00:46:46.000000000 +1000
++++ Python-2.7/Modules/_bsddb.c 2010-10-20 13:19:26.436669911 +1000
+@@ -9765,8 +9765,11 @@
+
+ ADD_INT(d, DB_REP_PERMANENT);
+
+-#if (DBVER >= 44)
++#if (DBVER >= 44) && (DBVER <= 48)
+ ADD_INT(d, DB_REP_CONF_NOAUTOINIT);
++#endif
++
++#if (DBVER >= 44)
+ ADD_INT(d, DB_REP_CONF_DELAYCLIENT);
+ ADD_INT(d, DB_REP_CONF_BULK);
+ ADD_INT(d, DB_REP_CONF_NOWAIT);
+diff -Naur Python-2.7-orig//setup.py Python-2.7/setup.py
+--- Python-2.7-orig//setup.py 2010-06-27 22:36:16.000000000 +1000
++++ Python-2.7/setup.py 2010-10-20 13:10:48.256670026 +1000
+@@ -765,7 +765,7 @@
+ # a release. Most open source OSes come with one or more
+ # versions of BerkeleyDB already installed.
+
+- max_db_ver = (4, 8)
++ max_db_ver = (5, 1)
+ min_db_ver = (4, 1)
+ db_setup_debug = False # verbose debug prints from this script?
+
+@@ -787,8 +787,12 @@
+ return True
+
+ def gen_db_minor_ver_nums(major):
+- if major == 4:
++ if major == 5:
+ for x in range(max_db_ver[1]+1):
++ if allow_db_ver((5, x)):
++ yield x
++ if major == 4:
++ for x in range(9):
+ if allow_db_ver((4, x)):
+ yield x
+ elif major == 3:
diff --git a/testing/python2/python-2.7.1-fix-decimal-in-turkish-locale.patch b/testing/python2/python-2.7.1-fix-decimal-in-turkish-locale.patch
new file mode 100644
index 000000000..57f527f40
--- /dev/null
+++ b/testing/python2/python-2.7.1-fix-decimal-in-turkish-locale.patch
@@ -0,0 +1,48 @@
+diff -up Python-2.7.1/Lib/decimal.py.fix-decimal-in-turkish-locale Python-2.7.1/Lib/decimal.py
+--- Python-2.7.1/Lib/decimal.py.fix-decimal-in-turkish-locale 2010-07-08 17:22:54.000000000 -0400
++++ Python-2.7.1/Lib/decimal.py 2011-04-12 11:30:40.850350842 -0400
+@@ -1720,8 +1720,6 @@ class Decimal(object):
+ # here self was representable to begin with; return unchanged
+ return Decimal(self)
+
+- _pick_rounding_function = {}
+-
+ # for each of the rounding functions below:
+ # self is a finite, nonzero Decimal
+ # prec is an integer satisfying 0 <= prec < len(self._int)
+@@ -1788,6 +1786,17 @@ class Decimal(object):
+ else:
+ return -self._round_down(prec)
+
++ _pick_rounding_function = dict(
++ ROUND_DOWN = '_round_down',
++ ROUND_UP = '_round_up',
++ ROUND_HALF_UP = '_round_half_up',
++ ROUND_HALF_DOWN = '_round_half_down',
++ ROUND_HALF_EVEN = '_round_half_even',
++ ROUND_CEILING = '_round_ceiling',
++ ROUND_FLOOR = '_round_floor',
++ ROUND_05UP = '_round_05up',
++ )
++
+ def fma(self, other, third, context=None):
+ """Fused multiply-add.
+
+@@ -3705,18 +3714,6 @@ _numbers.Number.register(Decimal)
+
+ ##### Context class #######################################################
+
+-
+-# get rounding method function:
+-rounding_functions = [name for name in Decimal.__dict__.keys()
+- if name.startswith('_round_')]
+-for name in rounding_functions:
+- # name is like _round_half_even, goes to the global ROUND_HALF_EVEN value.
+- globalname = name[1:].upper()
+- val = globals()[globalname]
+- Decimal._pick_rounding_function[val] = name
+-
+-del name, val, globalname, rounding_functions
+-
+ class _ContextManager(object):
+ """Context manager class to support localcontext().