development/python2-numpy: Added (Py2 extension for sci. computing)

Replacement for development/numpy

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Serban Udrea 2022-11-05 02:41:01 +00:00 committed by Willy Sudiarto Raharjo
parent 4061bd2a10
commit e9990480f3
No known key found for this signature in database
GPG key ID: 3F617144D7238786
5 changed files with 243 additions and 0 deletions

View file

@ -0,0 +1,40 @@
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
ATLAS and the corresponding optimized LAPACK are not available on
SlackBuilds.org because the latest stable and rather old release of
ATLAS doesn't compile on the present Slackware version.
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.
This SlackBuild installs the last numpy version with support for
python2.
IMPORTANT: The version installed by this SlackBuild does NOT include the
oldnumeric and numarray compatibility modules since
starting with version 1.9.0 these modules got removed by
the numpy developers. If you need these compatibility
modules please consider the numpy-legacy SlackBuild.
THUS: This SlackBuild conflicts with the numpy-legacy
SlackBuild which installs versions < 1.9.0!

View file

@ -0,0 +1,10 @@
numpy is able to autodetect the ATLAS libraries, but by default will try
to use the shared, threaded ones. It would use something else just if these
are missing. You may force numpy to have another behaviour.
a) Set just ATLAS_NO_THREADS to "yes". In this case numpy will be forced to
look for the shared, single threaded libs.
b) Set just ATLAS_SHARED to "no". In this case numpy will be forced to look for
the static, threaded ATLAS libraries.
c) Set ATLAS_SHARED to "no" and ATLAS_NO_THREADS to "yes". In this case numpy
will be forced to look for the static, single threaded ATLAS libraries.

View file

@ -0,0 +1,164 @@
#!/bin/bash
# Slackware build script for NumPy
# Copyright 2011-2022 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.16.6 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 the possibility to force numpy to link to different kinds of the
# ATLAS library (S. Udrea)
#
# Thanks go to Pedro Ribeiro Mendes Júnior for help with the upgrade to 1.14.3.
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python2-numpy
SRCNAM=numpy
VERSION=${VERSION:-1.16.6}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
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
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
fi
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 $SRCNAM-$VERSION
tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
cd $SRCNAM-$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 {} \;
# You may want to force numpy to link against a special kind of ATLAS
#
ATLAS_SHARED="${ATLAS_SHARED:-yes}"
ATLAS_SHARED=$(echo "$ATLAS_SHARED"|cut -b 1|tr a-z A-Z)
ATLAS_NO_THREADS="${ATLAS_NO_THREADS:-no}"
ATLAS_NO_THREADS=$(echo "$ATLAS_NO_THREADS"|cut -b 1|tr a-z A-Z)
if [ "$ATLAS_SHARED" = "Y" ]; then
if [ "$ATLAS_NO_THREADS" = "Y" ]; then
echo -e "[atlas]\natlas_libs = satlas" >> site.cfg
echo -e "lapack_libs = satlas\nlapack_atlas = satlas\n" >> site.cfg
fi
else
if [ "$ATLAS_NO_THREADS" = "Y" ]; then
echo -e "[atlas]\natlas_libs = f77blas,cblas,atlas" >> site.cfg
echo -e "lapack_libs = lapack\nlapack_atlas = lapack\n" >> site.cfg
else
echo -e "[atlas]\natlas_libs = ptf77blas,ptcblas,atlas" >> site.cfg
echo -e "lapack_libs = ptlapack\nlapack_atlas = ptlapack\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} python2 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} python2 setup.py build --debug
python2 setup.py install --root $PKG
fi
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a LICENSE.txt THANKS.txt INSTALL.rst.txt PKG-INFO \
$PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$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

View file

@ -0,0 +1,10 @@
PRGNAM="python2-numpy"
VERSION="1.16.6"
HOMEPAGE="http://www.numpy.org/"
DOWNLOAD="https://github.com/numpy/numpy/releases/download/v1.16.6/numpy-1.16.6.tar.gz"
MD5SUM="5e958c603605f3168b7b29f421f64cdd"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="Serban Udrea"
EMAIL="S.Udrea@gsi.de"

View file

@ -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 ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
python2-numpy: python2-numpy (a Python extension for scientific computing)
python2-numpy:
python2-numpy: NumPy is an extension to the Python programming language, adding
python2-numpy: support for large, multi-dimensional arrays and matrices along
python2-numpy: with a large library of high-level mathematical functions to
python2-numpy: operate on these arrays.
python2-numpy:
python2-numpy: Homepage: http://www.numpy.org/
python2-numpy:
python2-numpy: numpy version 1.16.6 is the last with support for python2.
python2-numpy: