development/numpy-legacy3: Added (a Python extension).

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Serban Udrea 2016-08-26 07:15:29 +07:00 committed by David Spencer
parent d7dda7c0e1
commit 2917ce175f
5 changed files with 246 additions and 0 deletions

View file

@ -0,0 +1,38 @@
NumPy is a general-purpose array-processing package designed to
efficiently manipulate large multi-dimensional arrays of arbitrary
records without sacrificing too much speed for small multi-dimensional
arrays. NumPy is built on the Numeric code base and adds features
introduced by numarray as well as an extended C-API and the ability to
create arrays of arbitrary type which also makes NumPy suitable for
interfacing with general-purpose data-base applications.
There are also basic facilities for discrete fourier transform, basic
linear algebra and random number generation.
If you need to build numpy for debugging, set DEBUG=y. If you use software
which is having problems with numpy's new relaxed strides checking, set
NPY_RSC=0.
It is highly recommended to install libraries implementing BLAS and LAPACK
before installing numpy. You may choose between:
a) BLAS and LAPACK (reference but unoptimized and thus slow)
b) OpenBLAS (optimized, provides LAPACK too)
c) ATLAS and LAPACK (optimized), good to read README.ATLAS
All these are available on SlackBuilds.org.
If you want to use the UMFPACK library instead of SuperLU to solve unsymmetric
sparse linear systems, then run this Slackbuild with NO_UMFPACK set to "no"
and then install scikit-umfpack on top of scipy. In this context, UMFPACK is an
optional dependency for numpy. Nevertheless, note that presently scikit-umfpack
is not available on SlackBuilds.org while its dependencies are.
NOTE: If you use this SlackBuild numpy will run with the python 3 version
installed on your system. If you'd like to use python 2.7.xx as
provided by Slackware Linux then you have to install it with the
numpy-legacy SlackBuild.
IMPORTANT: This version, 1.8.2, is the latest to include the oldnumeric
and numarray compatibility modules. Starting with version
1.9.0 these modules got removed by the numpy developers.
THUS: This SlackBuild conflicts with the numpy3 SlackBuild
which installs versions >= 1.9.0!

View file

@ -0,0 +1,13 @@
The numpy v. 1.8.2 is not able to autodetect the shared libraries created by
newer versions of ATLAS. Thus if one lets ATLAS create these libraries, she
has to tell numpy about them.
By default the numpy-legacy script forces numpy to look for the shared, threaded
ATLAS libraries. If you want to change this behaviour you have the following
possibilities:
a) Set ATLAS_SHARED to "no". In this case numpy will just look for the
apropriate static libraries.
b) Set ATLAS_THREADS to "no". In this case numpy will be forced to look for
the single threaded ATLAS libraries, static or shared depending on the
value of ATLAS_SHARED. Otherwise it will look for the threaded ones.

View file

@ -0,0 +1,164 @@
#!/bin/sh
# Slackware build script for the latest version of NumPy to include
# the compatibility layer with numeric and numarray. This is supposed
# to be build with python 3. Tested up to python 3.5.2
# Copyright 2016 Serban Udrea <s.udrea@gsi.de>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification,
# 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.
# Written by Aleksandar Samardzic <asamardzic@gmail.com>
# Updated up to 1.11.1 by Serban Udrea <S.Udrea@gsi.de>
#
# Added support for building with debugging symbols (S. Udrea)
#
# LIBDIRSUFFIX is now needed to set the proper path for
# UMFPACK (S. Udrea)
#
# Since UMFPACK is not used anymore by scipy but by the optional package
# scikit-umfpack, the configuration of this and the corresponding AMD library
# is now optional. One has to set NO_UMFPACK to "no" to create the apropriate
# configuration file before building numpy. (S. Udrea)
#
# Added support for newer versions of ATLAS (3.10.x) (S. Udrea)
#
# Added the possibility to force numpy to link to different kinds of the
# ATLAS library (S. Udrea)
PRGNAM="numpy-legacy3"
VERSION=${VERSION:-1.8.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
TARBALL_NAME="numpy" # This is actually what we are going to install
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=${PKG:-$TMP/package-$PRGNAM}
OUTPUT=${OUTPUT:-/tmp}
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $TARBALL_NAME-$VERSION
tar xvf $CWD/$TARBALL_NAME-$VERSION.tar.gz
cd $TARBALL_NAME-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
# Tell numpy about the new names of the ATLAS shared libraries. This doesn't
# force compilation against ATLAS, just makes sure that numpy does not link
# against the static libraries, in case ATLAS is chosen.
#
ATLAS_SHARED="${ATLAS_SHARED:-yes}"
ATLAS_SHARED=$(echo "$ATLAS_SHARED"|cut -b 1|tr a-z A-Z)
ATLAS_THREADS="${ATLAS_THREADS:-yes}"
ATLAS_THREADS=$(echo "$ATLAS_THREADS"|cut -b 1|tr a-z A-Z)
if [ "$ATLAS_SHARED" = "Y" ]; then
if [ "$ATLAS_THREADS" = "Y" ]; then
echo -e "[atlas]\natlas_libs = tatlas" >> site.cfg
echo -e "lapack_libs = tatlas\nlapack_atlas = tatlas\n" >> site.cfg
else
echo -e "[atlas]\natlas_libs = satlas" >> site.cfg
echo -e "lapack_libs = satlas\nlapack_atlas = satlas\n" >> site.cfg
fi
else
if [ "$ATLAS_THREADS" = "Y" ]; then
echo -e "[atlas]\natlas_libs = ptf77blas,ptcblas,atlas" >> site.cfg
echo -e "lapack_libs = ptlapack\nlapack_atlas = ptlapack\n" >> site.cfg
else
echo -e "[atlas]\natlas_libs = f77blas,cblas,atlas" >> site.cfg
echo -e "lapack_libs = lapack\nlapack_atlas = lapack\n" >> site.cfg
fi
fi
NO_UMFPACK=${NO_UMFPACK:-yes}
case "$NO_UMFPACK" in
[yY]|[yY][eE][sS]) NO_UMFPACK="y" ;;
*) NO_UMFPACK="" ;;
esac
if [ ! "$NO_UMFPACK" ]; then
echo -e "[amd]\nlibrary_dirs = /usr/lib${LIBDIRSUFFIX}" >> site.cfg
echo -e "include_dirs = /usr/include/amd\namd_libs = amd\n" >> site.cfg
echo -e "[umfpack]\nlibrary_dirs = /usr/lib${LIBDIRSUFFIX}" >> site.cfg
echo -e "include_dirs = /usr/include/umfpack\numfpack_libs = umfpack\n" \
>> site.cfg
fi
DEBUG=${DEBUG:-no}
case "$DEBUG" in
[yY]|[yY][eE][sS]) DEBUG="y" ;;
*) DEBUG="" ;;
esac
if [ ! "$DEBUG" ]; then
NPY_RELAXED_STRIDES_CHECKING=${NPY_RSC:-1} python3 setup.py install --root $PKG
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
else
NPY_RELAXED_STRIDES_CHECKING=${NPY_RSC:-1} python3 setup.py build --debug
python3 setup.py install --root $PKG
fi
mkdir -p $PKG/usr/doc/$TARBALL_NAME-$VERSION
cp -a COMPATIBILITY DEV_README.txt LICENSE.txt README.txt THANKS.txt\
$PKG/usr/doc/$TARBALL_NAME-$VERSION
cat $CWD/${PRGNAM}.SlackBuild > \
$PKG/usr/doc/$TARBALL_NAME-$VERSION/${PRGNAM}.SlackBuild
find $PKG/usr/doc -type f -exec chmod 0644 {} \;
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}

View file

@ -0,0 +1,10 @@
PRGNAM="numpy-legacy3"
VERSION="1.8.2"
HOMEPAGE="http://numpy.scipy.org/"
DOWNLOAD="http://download.sourceforge.net/project/numpy/NumPy/1.8.2/numpy-1.8.2.tar.gz"
MD5SUM="dd8eece8f6fda3a13836de4adbafb0cb"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="python3"
MAINTAINER="Serban Udrea"
EMAIL="S.Udrea@gsi.de"

View file

@ -0,0 +1,21 @@
# 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 ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
numpy-legacy3: numpy (a Python extension for scientific computing)
numpy-legacy3:
numpy-legacy3: NumPy is an extension to the Python programming language, adding
numpy-legacy3: support for large, multi-dimensional arrays and matrices along
numpy-legacy3: with a large library of high-level mathematical functions to
numpy-legacy3: operate on these arrays.
numpy-legacy3: This package installs the last version of NumPy known to offer the
numpy-legacy3: compatibility layer with its predecessors numeric and numarray.
numpy-legacy3:
numpy-legacy3: Homepage: http://numpy.scipy.org/
numpy-legacy3:
numpy-legacy3:
numpy-legacy3: