development/python3-numpy-legacy: Added (Legacy Numpy).

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Christoph Willing 2023-11-30 22:40:37 +07:00 committed by Willy Sudiarto Raharjo
parent f8d1cb6a6d
commit 4490466f40
No known key found for this signature in database
GPG key ID: 3F617144D7238786
5 changed files with 220 additions and 0 deletions

View file

@ -0,0 +1,45 @@
This packaging of NumPy with Python 3.x is pegged at version 1.24.4.
It installs into opt/python3-numpy-legacy/usr/lib$LIBDIRSUFFIX and
should therefore not conflict with other numpy installations.
To use this installation in another SlackBuild, just before any call
to python3 setup.py build or install, add the line:
export PYTHONPATH=/opt/python3-numpy-legacy/usr/lib$LIBDIRSUFFIX/
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.
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 which
is available for python2 only and does not conflict with this
installation of numpy.

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,136 @@
#!/bin/bash
# Slackware build script for python3-numpy-legacy
# Copyright 2015-2023 Christoph Willing Brisbane, Australia
# 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.
# Based with thanks on original numpy scripts by
# Aleksandar Samardzic <asamardzic@gmail.com> and Serban Udrea <S.Udrea@gsi.de>
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=python3-numpy-legacy
SRCNAM=numpy
VERSION=${VERSION:-1.24.4}
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
LIBDIRSUFFIX=""
if [ "$ARCH" = "x86_64" ]; then
LIBDIRSUFFIX="64"
fi
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
fi
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
set -e
rm -rf $PKG
mkdir -p $TMP $PKG/opt/$PRGNAM $OUTPUT
cd $TMP
rm -rf $SRCNAM-$VERSION
tar xf $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} python3 setup.py install --install-platlib usr/lib${LIBDIRSUFFIX} --root $PKG/opt/$PRGNAM
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 --install-platlib usr/lib${LIBDIRSUFFIX} --root $PKG/opt/$PRGNAM
fi
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a CITATION.bib INSTALL.rst LICENSE.txt README.md THANKS.txt \
$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="python3-numpy-legacy"
VERSION="1.24.4"
HOMEPAGE="https://www.numpy.org/"
DOWNLOAD="https://github.com/numpy/numpy/releases/download/v1.24.4/numpy-1.24.4.tar.gz"
MD5SUM="3f3995540a17854a29dc79f8eeecd832"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="Christoph Willing"
EMAIL="chris.willing@linux.com"

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------------------------------------------------------|
python3-numpy-legacy: python3-numpy-legacy (Python3 extension for scientific computing)
python3-numpy-legacy:
python3-numpy-legacy: NumPy is an extension to the Python programming language, adding
python3-numpy-legacy: support for large, multi-dimensional arrays and matrices along
python3-numpy-legacy: with a large library of high-level mathematical functions to
python3-numpy-legacy: operate on these arrays.
python3-numpy-legacy:
python3-numpy-legacy: This package contains NumPy (held at 1.24.4) for python3.
python3-numpy-legacy:
python3-numpy-legacy: Homepage: http://www.numpy.org/
python3-numpy-legacy: