diff options
Diffstat (limited to 'python/python3')
-rw-r--r-- | python/python3/README | 13 | ||||
-rw-r--r-- | python/python3/patches/python3.pure64.diff | 32 | ||||
-rw-r--r-- | python/python3/patches/python3.readline.set_pre_input_hook.diff | 12 | ||||
-rw-r--r-- | python/python3/patches/python3.x86_64.diff | 159 | ||||
-rw-r--r-- | python/python3/python3.SlackBuild | 104 | ||||
-rw-r--r-- | python/python3/python3.info | 10 | ||||
-rw-r--r-- | python/python3/slack-desc | 19 |
7 files changed, 349 insertions, 0 deletions
diff --git a/python/python3/README b/python/python3/README new file mode 100644 index 0000000000..64880e33b2 --- /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 0000000000..915f2e1cf7 --- /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 0000000000..6796c6007e --- /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 0000000000..eb036ec8c2 --- /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 0000000000..253bef21aa --- /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 0000000000..4bb3fb83ec --- /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 0000000000..694d9ed798 --- /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: |