aboutsummaryrefslogtreecommitdiff
path: root/python/python3
diff options
context:
space:
mode:
Diffstat (limited to 'python/python3')
-rw-r--r--python/python3/README13
-rw-r--r--python/python3/patches/python3.pure64.diff32
-rw-r--r--python/python3/patches/python3.readline.set_pre_input_hook.diff12
-rw-r--r--python/python3/patches/python3.x86_64.diff159
-rw-r--r--python/python3/python3.SlackBuild104
-rw-r--r--python/python3/python3.info10
-rw-r--r--python/python3/slack-desc19
7 files changed, 349 insertions, 0 deletions
diff --git a/python/python3/README b/python/python3/README
new file mode 100644
index 0000000000000..64880e33b2c18
--- /dev/null
+++ b/python/python3/README
@@ -0,0 +1,13 @@
+Python is an interpreted, interactive, object-oriented programming language
+that combines remarkable power with very clear syntax. Python's basic power
+can be extended with your own modules written in C or C++. Python is also
+adaptable as an extension language for existing applications.
+
+Python 3 (a.k.a. "Python 3000" or "Py3k") is a new version of the language that
+is incompatible with the 2.x line of releases. The language is mostly the
+same, but many details, especially how built-in objects like dictionaries and
+strings work, have changed considerably, and a lot of deprecated features have
+finally been removed. Also, the standard library has been reorganized in a few
+prominent places.
+
+It is safe to install this on a system which already has 2.x version of Python.
diff --git a/python/python3/patches/python3.pure64.diff b/python/python3/patches/python3.pure64.diff
new file mode 100644
index 0000000000000..915f2e1cf7c9e
--- /dev/null
+++ b/python/python3/patches/python3.pure64.diff
@@ -0,0 +1,32 @@
+diff -uar Python-3.1.3.orig/Lib/distutils/command/install.py Python-3.1.3/Lib/distutils/command/install.py
+--- Python-3.1.3.orig/Lib/distutils/command/install.py 2010-11-29 22:16:59.433287434 +0200
++++ Python-3.1.3/Lib/distutils/command/install.py 2010-11-29 22:21:28.544937484 +0200
+@@ -46,14 +46,14 @@
+
+ INSTALL_SCHEMES = {
+ 'unix_prefix': {
+- 'purelib': '$base/lib/python$py_version_short/site-packages',
++ 'purelib': '$base/lib64/python$py_version_short/site-packages',
+ 'platlib': '$platbase/lib64/python$py_version_short/site-packages',
+ 'headers': '$base/include/python$py_version_short/$dist_name',
+ 'scripts': '$base/bin',
+ 'data' : '$base',
+ },
+ 'unix_home': {
+- 'purelib': '$base/lib/python',
++ 'purelib': '$base/lib64/python',
+ 'platlib': '$base/lib64/python',
+ 'headers': '$base/include/python/$dist_name',
+ 'scripts': '$base/bin',
+diff -uar Python-3.1.3.orig/Lib/distutils/sysconfig.py Python-3.1.3/Lib/distutils/sysconfig.py
+--- Python-3.1.3.orig/Lib/distutils/sysconfig.py 2010-11-29 22:16:59.434287447 +0200
++++ Python-3.1.3/Lib/distutils/sysconfig.py 2010-11-29 22:29:32.627720854 +0200
+@@ -120,7 +120,7 @@
+ if plat_specific or standard_lib:
+ lib = "lib64"
+ else:
+- lib = "lib"
++ lib = "lib64"
+ libpython = os.path.join(prefix,
+ lib, "python" + get_python_version())
+ if standard_lib:
diff --git a/python/python3/patches/python3.readline.set_pre_input_hook.diff b/python/python3/patches/python3.readline.set_pre_input_hook.diff
new file mode 100644
index 0000000000000..6796c6007e3af
--- /dev/null
+++ b/python/python3/patches/python3.readline.set_pre_input_hook.diff
@@ -0,0 +1,12 @@
+--- ./Modules/readline.c.orig 2009-10-26 21:32:51.000000000 +0200
++++ ./Modules/readline.c 2010-05-30 14:07:10.000000000 +0300
+@@ -11,6 +11,9 @@
+ #include <errno.h>
+ #include <sys/time.h>
+
++/* This seems to be needed for set_pre_input_hook to work */
++#define HAVE_RL_PRE_INPUT_HOOK 1
++
+ #if defined(HAVE_SETLOCALE)
+ /* GNU readline() mistakenly sets the LC_CTYPE locale.
+ * This is evil. Only the user or the app's main() should do this!
diff --git a/python/python3/patches/python3.x86_64.diff b/python/python3/patches/python3.x86_64.diff
new file mode 100644
index 0000000000000..eb036ec8c26f5
--- /dev/null
+++ b/python/python3/patches/python3.x86_64.diff
@@ -0,0 +1,159 @@
+diff -uar Python-3.1.3.orig/Lib/distutils/command/install.py Python-3.1.3/Lib/distutils/command/install.py
+--- Python-3.1.3.orig/Lib/distutils/command/install.py 2009-06-04 10:39:50.000000000 +0300
++++ Python-3.1.3/Lib/distutils/command/install.py 2010-11-29 21:24:50.939437490 +0200
+@@ -47,14 +47,14 @@
+ INSTALL_SCHEMES = {
+ 'unix_prefix': {
+ 'purelib': '$base/lib/python$py_version_short/site-packages',
+- 'platlib': '$platbase/lib/python$py_version_short/site-packages',
++ 'platlib': '$platbase/lib64/python$py_version_short/site-packages',
+ 'headers': '$base/include/python$py_version_short/$dist_name',
+ 'scripts': '$base/bin',
+ 'data' : '$base',
+ },
+ 'unix_home': {
+ 'purelib': '$base/lib/python',
+- 'platlib': '$base/lib/python',
++ 'platlib': '$base/lib64/python',
+ 'headers': '$base/include/python/$dist_name',
+ 'scripts': '$base/bin',
+ 'data' : '$base',
+diff -uar Python-3.1.3.orig/Lib/distutils/sysconfig.py Python-3.1.3/Lib/distutils/sysconfig.py
+--- Python-3.1.3.orig/Lib/distutils/sysconfig.py 2010-08-04 00:33:04.000000000 +0300
++++ Python-3.1.3/Lib/distutils/sysconfig.py 2010-11-29 21:36:39.452228520 +0200
+@@ -117,8 +117,12 @@
+ prefix = plat_specific and EXEC_PREFIX or PREFIX
+
+ if os.name == "posix":
++ if plat_specific or standard_lib:
++ lib = "lib64"
++ else:
++ lib = "lib"
+ libpython = os.path.join(prefix,
+- "lib", "python" + get_python_version())
++ lib, "python" + get_python_version())
+ if standard_lib:
+ return libpython
+ else:
+diff -uar Python-3.1.3.orig/Lib/site.py Python-3.1.3/Lib/site.py
+--- Python-3.1.3.orig/Lib/site.py 2010-10-13 01:56:55.000000000 +0300
++++ Python-3.1.3/Lib/site.py 2010-11-29 21:38:44.804126610 +0200
+@@ -262,12 +262,16 @@
+ if sys.platform in ('os2emx', 'riscos'):
+ sitedirs.append(os.path.join(prefix, "Lib", "site-packages"))
+ elif os.sep == '/':
++ sitedirs.append(os.path.join(prefix, "lib64",
++ "python" + sys.version[:3],
++ "site-packages"))
+ sitedirs.append(os.path.join(prefix, "lib",
+ "python" + sys.version[:3],
+ "site-packages"))
+ sitedirs.append(os.path.join(prefix, "lib", "site-python"))
+ else:
+ sitedirs.append(prefix)
++ sitedirs.append(os.path.join(prefix, "lib64", "site-packages"))
+ sitedirs.append(os.path.join(prefix, "lib", "site-packages"))
+
+ if sys.platform == "darwin":
+diff -uar Python-3.1.3.orig/Makefile.pre.in Python-3.1.3/Makefile.pre.in
+--- Python-3.1.3.orig/Makefile.pre.in 2010-10-14 14:35:17.000000000 +0300
++++ Python-3.1.3/Makefile.pre.in 2010-11-29 21:46:00.887367145 +0200
+@@ -94,7 +94,7 @@
+ MANDIR= @mandir@
+ INCLUDEDIR= @includedir@
+ CONFINCLUDEDIR= $(exec_prefix)/include
+-SCRIPTDIR= $(prefix)/lib
++SCRIPTDIR= $(prefix)/lib64
+
+ # Detailed destination directories
+ BINLIBDEST= $(LIBDIR)/python$(VERSION)
+diff -uar Python-3.1.3.orig/Modules/Setup.dist Python-3.1.3/Modules/Setup.dist
+--- Python-3.1.3.orig/Modules/Setup.dist 2009-06-04 12:30:30.000000000 +0300
++++ Python-3.1.3/Modules/Setup.dist 2010-11-29 21:47:10.734770412 +0200
+@@ -351,7 +351,7 @@
+ # Andrew Kuchling's zlib module.
+ # This require zlib 1.1.3 (or later).
+ # See http://www.gzip.org/zlib/
+-#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
++#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib64 -lz
+
+ # Interface to the Expat XML parser
+ #
+diff -uar Python-3.1.3.orig/Modules/getpath.c Python-3.1.3/Modules/getpath.c
+--- Python-3.1.3.orig/Modules/getpath.c 2010-10-08 02:39:04.000000000 +0300
++++ Python-3.1.3/Modules/getpath.c 2010-11-29 22:03:08.820526757 +0200
+@@ -119,8 +119,8 @@
+ #endif
+
+ #ifndef PYTHONPATH
+-#define PYTHONPATH PREFIX "/lib/python" VERSION ":" \
+- EXEC_PREFIX "/lib/python" VERSION "/lib-dynload"
++#define PYTHONPATH PREFIX "/lib64/python" VERSION ":" \
++ EXEC_PREFIX "/lib64/python" VERSION "/lib-dynload"
+ #endif
+
+ #ifndef LANDMARK
+@@ -131,7 +131,7 @@
+ static wchar_t exec_prefix[MAXPATHLEN+1];
+ static wchar_t progpath[MAXPATHLEN+1];
+ static wchar_t *module_search_path = NULL;
+-static wchar_t lib_python[] = L"lib/python" VERSION;
++static wchar_t lib_python[] = L"lib64/python" VERSION;
+
+ /* In principle, this should use HAVE__WSTAT, and _wstat
+ should be detected by autoconf. However, no current
+@@ -612,7 +612,7 @@
+ }
+ else
+ wcsncpy(zip_path, L"" PREFIX, MAXPATHLEN);
+- joinpath(zip_path, L"lib/python00.zip");
++ joinpath(zip_path, L"lib64/python00.zip");
+ bufsz = wcslen(zip_path); /* Replace "00" with version */
+ zip_path[bufsz - 6] = VERSION[0];
+ zip_path[bufsz - 5] = VERSION[2];
+@@ -622,7 +622,7 @@
+ fprintf(stderr,
+ "Could not find platform dependent libraries <exec_prefix>\n");
+ wcsncpy(exec_prefix, L"" EXEC_PREFIX, MAXPATHLEN);
+- joinpath(exec_prefix, L"lib/lib-dynload");
++ joinpath(exec_prefix, L"lib64/lib-dynload");
+ }
+ /* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */
+
+diff -uar Python-3.1.3.orig/setup.py Python-3.1.3/setup.py
+--- Python-3.1.3.orig/setup.py 2010-11-26 13:56:26.000000000 +0200
++++ Python-3.1.3/setup.py 2010-11-29 22:06:52.939575911 +0200
+@@ -341,7 +341,7 @@
+
+ def detect_modules(self):
+ # Ensure that /usr/local is always used
+- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
++ add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib64')
+ add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
+
+ # Add paths specified in the environment variables LDFLAGS and
+@@ -610,11 +610,11 @@
+ elif curses_library:
+ readline_libs.append(curses_library)
+ elif self.compiler.find_library_file(lib_dirs +
+- ['/usr/lib/termcap'],
++ ['/usr/lib64/termcap'],
+ 'termcap'):
+ readline_libs.append('termcap')
+ exts.append( Extension('readline', ['readline.c'],
+- library_dirs=['/usr/lib/termcap'],
++ library_dirs=['/usr/lib64/termcap'],
+ extra_link_args=readline_extra_link_args,
+ libraries=readline_libs) )
+ else:
+@@ -651,8 +651,8 @@
+ if krb5_h:
+ ssl_incs += krb5_h
+ ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs,
+- ['/usr/local/ssl/lib',
+- '/usr/contrib/ssl/lib/'
++ ['/usr/local/ssl/lib64',
++ '/usr/contrib/ssl/lib64/'
+ ] )
+
+ if (ssl_incs is not None and
diff --git a/python/python3/python3.SlackBuild b/python/python3/python3.SlackBuild
new file mode 100644
index 0000000000000..253bef21aa175
--- /dev/null
+++ b/python/python3/python3.SlackBuild
@@ -0,0 +1,104 @@
+#!/bin/sh
+
+# Slackware build script for python3
+# Written by Audrius Kažukauskas <audrius@neutrino.lt>
+# Based on Patrick Volkerding's official build script for python
+
+PRGNAM=python3
+VERSION=${VERSION:-3.1.3}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+# Don't set any SLKCFLAGS here, or OPT="$SLKCFLAGS" before the ./configure.
+# Python gets the compile options right without any help.
+if [ "$ARCH" = "i486" ]; then
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ LIBDIRSUFFIX="64"
+else
+ LIBDIRSUFFIX=""
+fi
+
+set -eu
+
+# Location for Python site-packages:
+SITEPK=$PKG/usr/lib${LIBDIRSUFFIX}/python3.1/site-packages
+# same as above without $PKG
+TOOLSDIR=/usr/lib${LIBDIRSUFFIX}/python3.1/site-packages
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf Python-$VERSION
+tar xvf $CWD/Python-$VERSION.tar.bz2
+cd Python-$VERSION
+
+patch -p1 < $CWD/patches/python3.readline.set_pre_input_hook.diff
+
+if [ "$ARCH" = "x86_64" ]; then
+ # Install to lib64 instead of lib:
+ patch -p1 < $CWD/patches/python3.x86_64.diff
+ # Python must report /usr/lib64/python3.1/site-packages as python_lib_dir:
+ patch -p1 < $CWD/patches/python3.pure64.diff
+fi
+
+chown -R root:root .
+chmod -R u+w,go+r-w,a-s+X .
+
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PRGNAM-$VERSION \
+ --with-ncurses \
+ --with-threads \
+ --enable-ipv6 \
+ --enable-shared \
+ --with-computed-gotos \
+ --build=$ARCH-slackware-linux
+
+make
+make altinstall DESTDIR=$PKG
+
+# Create a symlink for convenience.
+( cd $PKG/usr/bin ; ln -sf python3.1 python3 )
+
+# We'll install the python-tools under site-packages:
+mkdir -p $SITEPK
+cp -a Tools/* $SITEPK
+
+# Python 2.6 already has this script.
+rm -f $PKG/usr/bin/2to3
+
+# Install docs and demos:
+mkdir -p $PKG/usr/doc/python3-$VERSION
+cp -a README LICENSE Demo Doc Misc $PKG/usr/doc/python3-$VERSION
+mv $SITEPK/README $PKG/usr/doc/python3-$VERSION/README.python-tools
+( cd $PKG/usr/doc/python3-$VERSION ; ln -sf $TOOLSDIR Tools )
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/python/python3/python3.info b/python/python3/python3.info
new file mode 100644
index 0000000000000..4bb3fb83ec95e
--- /dev/null
+++ b/python/python3/python3.info
@@ -0,0 +1,10 @@
+PRGNAM="python3"
+VERSION="3.1.3"
+HOMEPAGE="http://python.org/"
+DOWNLOAD="http://python.org/ftp/python/3.1.3/Python-3.1.3.tar.bz2"
+MD5SUM="ad5e5f1c07e829321e0a015f8cafe245"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Audrius Kažukauskas"
+EMAIL="audrius@neutrino.lt"
+APPROVED="rworkman"
diff --git a/python/python3/slack-desc b/python/python3/slack-desc
new file mode 100644
index 0000000000000..694d9ed798ffe
--- /dev/null
+++ b/python/python3/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+python3: python3 (object-oriented interpreted programming language)
+python3:
+python3: Python is an interpreted, interactive, object-oriented programming
+python3: language that combines remarkable power with very clear syntax.
+python3: This is a new version of the language that is incompatible with the
+python3: 2.x line of releases. The language is mostly the same, but many
+python3: details, especially how built-in objects like dictionaries and strings
+python3: work, have changed considerably, and a lot of deprecated features have
+python3: finally been removed. Also, the standard library has been reorganized
+python3: in a few prominent places.
+python3: