Browse Source

d/python3: Added python3-3.2.3.

slackware-14.2
Damien Goutte-Gattat 10 years ago
parent
commit
b169ab0d30
  1. 1
      d/python3/Python-3.2.3.tar.xz.sha1
  2. 1
      d/python3/python-3.2.3-docs-html.tar.bz2.sha1
  3. 138
      d/python3/python3.SlackBuild
  4. 12
      d/python3/python3.readline.set_pre_input_hook.diff
  5. 177
      d/python3/python3.x86_64.diff
  6. 12
      d/python3/slack-desc

1
d/python3/Python-3.2.3.tar.xz.sha1

@ -0,0 +1 @@
3d607dbcfdf100dd659978195ccf3ade9d221823 Python-3.2.3.tar.xz

1
d/python3/python-3.2.3-docs-html.tar.bz2.sha1

@ -0,0 +1 @@
3d474a03fef9861d9897a987eb6a28c129833fd9 python-3.2.3-docs-html.tar.bz2

138
d/python3/python3.SlackBuild

@ -0,0 +1,138 @@
#!/bin/bash
# Build script for Slackware
# Copyright (C) 2012 Damien Goutte-Gattat
#
# Redistribution and use of this script, with or without modifications,
# is permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
# Contact: Damien Goutte-Gattat <dgouttegattat@incenp.org>
#
# Latest Python sourcecode is available at: <http://python.org/>.
# Source package infos
NAMESRC=${NAMESRC:-Python}
VERSION=${VERSION:-3.2.3}
ARCHIVE=${ARCHIVE:-$NAMESRC-$VERSION.tar.xz}
WGET=${WGET:-http://python.org/ftp/python/$VERSION/$ARCHIVE}
DOC_ARCHIVE=${DOC_ARCHIVE:-python-$VERSION-docs-html.tar.bz2}
DOC_WGET=${DOC_WGET:-http://python.org/ftp/python/doc/$VERSION/$DOC_ARCHIVE}
# Build infos
NAMEPKG=${NAMEPKG:-python3}
BUILD=${BUILD:-1GGD}
ARCH=${ARCH:-$(uname -m | sed 's/^i.86$/i486/;s/^arm.*/arm/')}
JOBS=${JOBS:-1}
EXT=${EXT:-txz}
# Directories
TMP=${TMP:-/tmp}
OUT=${OUT:-$TMP/build}
PKG=${PKG:-$OUT/$NAMEPKG}
CWD=$(pwd)
set -e # Quit if a command returns non-zero
# Sanity checks
if [ $UID -eq 0 ]; then
echo "You should NOT run this script as ROOT!"
exit 1
fi
if [ ! -d $TMP ]; then
echo "$TMP does not exists or is not a directory!"
exit 1
fi
# Get and verify source archives
if [ ! -r $ARCHIVE ]; then
wget -c -O $ARCHIVE.part "$WGET"
mv $ARCHIVE.part $ARCHIVE
fi
if [ ! -r $DOC_ARCHIVE ]; then
wget -c -O $DOC_ARCHIVE.part "$DOC_WGET"
mv $DOC_ARCHIVE.part $DOC_ARCHIVE
fi
sha1sum -c $ARCHIVE.sha1 $DOC_ARCHIVE.sha1
NAME=$(tar ft $ARCHIVE | head -n 1 | cut -d / -f 1)
# Extract and patch
cd $TMP
echo "Building $ARCHIVE..."
tar xf $CWD/$ARCHIVE
cd $NAME
patch -p1 < $CWD/python3.readline.set_pre_input_hook.diff
LIBDIRSUFFIX=""
if [ "x$ARCH" = xx86_64 ]; then
LIBDIRSUFFIX="64"
patch -p1 < $CWD/python3.x86_64.diff
fi
# Compile
./configure \
--prefix=/usr \
--libdir=/usr/lib$LIBDIRSUFFIX \
--mandir=/usr/man \
--docdir=/usr/doc/$NAMEPKG-$VERSION \
--with-threads \
--enable-ipv6 \
--enable-shared
make -j $JOBS
make altinstall DESTDIR=$PKG
# Strip binaries
find $PKG | xargs file | grep "ELF \(32\|64\)-bit LSB" | cut -d : -f 1 | \
xargs strip --strip-unneeded 2> /dev/null || true
# Compress man pages
find $PKG/usr/man -type f -exec gzip -9 {} \;
# Install python-tools
cp -a Tools/* $PKG/usr/lib$LIBDIRSUFFIX/python3.2/site-packages/
# Create symlinls
( cd $PKG/usr/bin
ln -sf python3.2 python3
ln -sf python3.2*-config python3.2-config
ln -sf pydoc3.2 pydoc3
)
# Install the documentation
mkdir -p $PKG/usr/doc/$NAMEPKG-$VERSION
install -m 644 LICENSE README $PKG/usr/doc/$NAMEPKG-$VERSION
( cd $PKG/usr/doc/$NAMEPKG-$VERSION/
mv $PKG/usr/lib$LIBDIRSUFFIX/python3.2/site-packages/README README.python-tools
tar xf $CWD/$DOC_ARCHIVE
mv python-$VERSION-docs-html html
)
# Copy slack-desc file
install -D -m 644 $CWD/slack-desc $PKG/install/slack-desc
# Package the tree
cd $PKG
mkdir -p $OUT
PACKAGING="
chown root:root . -R
/sbin/makepkg -l y -c n $OUT/$NAMEPKG-$VERSION-$ARCH-$BUILD.$EXT
rm -rf $PKG
rm -rf $TMP/$NAME
"
if type -p fakeroot ; then
echo "$PACKAGING" | fakeroot
else
su -c "$PACKAGING"
fi

12
d/python3/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!

177
d/python3/python3.x86_64.diff

@ -0,0 +1,177 @@
diff -uar Python-3.2.2.orig/Lib/distutils/command/install.py Python-3.2.2/Lib/distutils/command/install.py
--- Python-3.2.2.orig/Lib/distutils/command/install.py 2011-09-03 19:16:40.000000000 +0300
+++ Python-3.2.2/Lib/distutils/command/install.py 2011-09-05 23:16:30.986061070 +0300
@@ -44,15 +44,15 @@
INSTALL_SCHEMES = {
'unix_prefix': {
- 'purelib': '$base/lib/python$py_version_short/site-packages',
- 'platlib': '$platbase/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$abiflags/$dist_name',
'scripts': '$base/bin',
'data' : '$base',
},
'unix_home': {
- 'purelib': '$base/lib/python',
- 'platlib': '$base/lib/python',
+ 'purelib': '$base/lib64/python',
+ 'platlib': '$base/lib64/python',
'headers': '$base/include/python/$dist_name',
'scripts': '$base/bin',
'data' : '$base',
diff -uar Python-3.2.2.orig/Lib/distutils/sysconfig.py Python-3.2.2/Lib/distutils/sysconfig.py
--- Python-3.2.2.orig/Lib/distutils/sysconfig.py 2011-09-03 19:16:40.000000000 +0300
+++ Python-3.2.2/Lib/distutils/sysconfig.py 2011-09-05 23:16:30.986061070 +0300
@@ -123,7 +123,7 @@
if os.name == "posix":
libpython = os.path.join(prefix,
- "lib", "python" + get_python_version())
+ "lib64", "python" + get_python_version())
if standard_lib:
return libpython
else:
diff -uar Python-3.2.2.orig/Lib/site.py Python-3.2.2/Lib/site.py
--- Python-3.2.2.orig/Lib/site.py 2011-09-03 19:16:42.000000000 +0300
+++ Python-3.2.2/Lib/site.py 2011-09-05 23:16:30.986061070 +0300
@@ -285,13 +285,13 @@
if sys.platform in ('os2emx', 'riscos'):
sitepackages.append(os.path.join(prefix, "Lib", "site-packages"))
elif os.sep == '/':
- sitepackages.append(os.path.join(prefix, "lib",
+ sitepackages.append(os.path.join(prefix, "lib64",
"python" + sys.version[:3],
"site-packages"))
sitepackages.append(os.path.join(prefix, "lib", "site-python"))
else:
sitepackages.append(prefix)
- sitepackages.append(os.path.join(prefix, "lib", "site-packages"))
+ sitepackages.append(os.path.join(prefix, "lib64", "site-packages"))
if sys.platform == "darwin":
# for framework builds *only* we add the standard Apple
# locations.
diff -uar Python-3.2.2.orig/Lib/sysconfig.py Python-3.2.2/Lib/sysconfig.py
--- Python-3.2.2.orig/Lib/sysconfig.py 2011-09-03 19:16:42.000000000 +0300
+++ Python-3.2.2/Lib/sysconfig.py 2011-09-05 23:16:30.994061003 +0300
@@ -21,10 +21,10 @@
_INSTALL_SCHEMES = {
'posix_prefix': {
- 'stdlib': '{base}/lib/python{py_version_short}',
- 'platstdlib': '{platbase}/lib/python{py_version_short}',
- 'purelib': '{base}/lib/python{py_version_short}/site-packages',
- 'platlib': '{platbase}/lib/python{py_version_short}/site-packages',
+ 'stdlib': '{base}/lib64/python{py_version_short}',
+ 'platstdlib': '{platbase}/lib64/python{py_version_short}',
+ 'purelib': '{base}/lib64/python{py_version_short}/site-packages',
+ 'platlib': '{platbase}/lib64/python{py_version_short}/site-packages',
'include':
'{base}/include/python{py_version_short}{abiflags}',
'platinclude':
@@ -33,10 +33,10 @@
'data': '{base}',
},
'posix_home': {
- 'stdlib': '{base}/lib/python',
- 'platstdlib': '{base}/lib/python',
- 'purelib': '{base}/lib/python',
- 'platlib': '{base}/lib/python',
+ 'stdlib': '{base}/lib64/python',
+ 'platstdlib': '{base}/lib64/python',
+ 'purelib': '{base}/lib64/python',
+ 'platlib': '{base}/lib64/python',
'include': '{base}/include/python',
'platinclude': '{base}/include/python',
'scripts': '{base}/bin',
diff -uar Python-3.2.2.orig/Makefile.pre.in Python-3.2.2/Makefile.pre.in
--- Python-3.2.2.orig/Makefile.pre.in 2011-09-03 19:16:45.000000000 +0300
+++ Python-3.2.2/Makefile.pre.in 2011-09-05 23:16:30.994061003 +0300
@@ -106,7 +106,7 @@
MANDIR= @mandir@
INCLUDEDIR= @includedir@
CONFINCLUDEDIR= $(exec_prefix)/include
-SCRIPTDIR= $(prefix)/lib
+SCRIPTDIR= $(prefix)/lib64
ABIFLAGS= @ABIFLAGS@
# Detailed destination directories
diff -uar Python-3.2.2.orig/Modules/getpath.c Python-3.2.2/Modules/getpath.c
--- Python-3.2.2.orig/Modules/getpath.c 2011-09-03 19:16:46.000000000 +0300
+++ Python-3.2.2/Modules/getpath.c 2011-09-05 23:16:30.995060994 +0300
@@ -122,8 +122,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
@@ -135,7 +135,7 @@
static wchar_t progpath[MAXPATHLEN+1];
static wchar_t *module_search_path = NULL;
static int module_search_path_malloced = 0;
-static wchar_t *lib_python = L"lib/python" VERSION;
+static wchar_t *lib_python = L"lib64/python" VERSION;
static void
reduce(wchar_t *dir)
@@ -583,7 +583,7 @@
}
else
wcsncpy(zip_path, _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];
@@ -593,7 +593,7 @@
fprintf(stderr,
"Could not find platform dependent libraries <exec_prefix>\n");
wcsncpy(exec_prefix, _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.2.2.orig/setup.py Python-3.2.2/setup.py
--- Python-3.2.2.orig/setup.py 2011-09-03 19:16:50.000000000 +0300
+++ Python-3.2.2/setup.py 2011-09-05 23:16:30.995060994 +0300
@@ -396,7 +396,7 @@
# Ensure that /usr/local is always used, but the local build
# directories (i.e. '.' and 'Include') must be first. See issue
# 10520.
- 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')
self.add_multiarch_paths()
@@ -643,11 +643,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:
@@ -684,8 +684,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

12
d/python3/slack-desc

@ -0,0 +1,12 @@
|-----handy-ruler-----------------------------------------------------|
python3: python3 (Python3 programming language)
python3:
python3: Python 3.x is a new version of the language, which is incompatible
python3: with the 2.X line of releases. The language is mostly the same, but
python3: many details, especially how built-in objects like dictionaries and
python3: strings work, have changed considerably, and a lot of deprecated
python3: features have finally been removed.
python3:
python3:
python3:
python3:
Loading…
Cancel
Save