diff options
author | root <root@rshg047.dnsready.net> | 2011-04-14 04:54:18 +0000 |
---|---|---|
committer | root <root@rshg047.dnsready.net> | 2011-04-14 04:54:18 +0000 |
commit | 0917a0682e48c4261e47d743725d990f47f6ec95 (patch) | |
tree | 32b99e036a20918da470922bf40276cedcfe7506 /testing/python2 | |
parent | 9c49791f6e912bd4834f00f2c6b3a00e6c12bb73 (diff) |
Thu Apr 14 04:54:18 UTC 2011
Diffstat (limited to 'testing/python2')
-rw-r--r-- | testing/python2/PKGBUILD | 90 | ||||
-rw-r--r-- | testing/python2/python-2.7-db51.diff | 42 | ||||
-rw-r--r-- | testing/python2/python-2.7.1-fix-decimal-in-turkish-locale.patch | 48 |
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(). |