3 changed files with 142 additions and 0 deletions
-
129l/python-scikit-learn/python-scikit-learn.SlackBuild
-
1l/python-scikit-learn/scikit-learn-0.23.2.tar.gz.sha256
-
12l/python-scikit-learn/slack-desc
@ -0,0 +1,129 @@ |
|||
#!/bin/bash |
|||
# Build script for Slackware |
|||
# Copyright (C) 2020 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 scikit-learn sourcecode is available at: <http://scikit-learn.org/>. |
|||
# |
|||
# Depends: d/Cython, l/python-joblib, l/python-threadpoolctl, l/scipy |
|||
|
|||
# Source package infos |
|||
NAMESRC=${NAMESRC:-scikit-learn} |
|||
VERSION=${VERSION:-0.23.2} |
|||
ARCHIVE=${ARCHIVE:-$NAMESRC-$VERSION.tar.gz} |
|||
|
|||
# Build infos |
|||
NAMEPKG=${NAMEPKG:-python-scikit-learn} |
|||
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) |
|||
PYTHONDIR=$(python3 -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])') |
|||
|
|||
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 |
|||
|
|||
# Compilation flags |
|||
case "$ARCH" in |
|||
i?86) |
|||
CPUOPT="-O2 -march=$ARCH -mtune=i686" |
|||
;; |
|||
x86_64) |
|||
CPUOPT="-O2 -fPIC" |
|||
;; |
|||
*) |
|||
CPUOPT="-O2" |
|||
;; |
|||
esac |
|||
|
|||
# Get and verify the source archive |
|||
if [ ! -r $ARCHIVE ]; then |
|||
pip3 download --no-binary :all: --no-deps $NAMESRC==$VERSION |
|||
fi |
|||
sha256sum -c $ARCHIVE.sha256 |
|||
NAME=$(tar ft $ARCHIVE | head -n 1 | cut -d / -f 1) |
|||
|
|||
# Compile |
|||
cd $TMP |
|||
echo "Building $ARCHIVE..." |
|||
tar xf $CWD/$ARCHIVE |
|||
cd $NAME |
|||
CFLAGS=$CPUOPT \ |
|||
CXXFLAGS=$CPUOPT \ |
|||
python3 setup.py build |
|||
python3 setup.py install --root=$PKG |
|||
|
|||
# Strip binaries |
|||
find $PKG | xargs file | grep "ELF \(32\|64\)-bit LSB" | cut -d : -f 1 | \ |
|||
xargs strip --strip-unneeded 2> /dev/null |
|||
|
|||
|
|||
# Install the documentation |
|||
mkdir -p $PKG/usr/doc/$NAMEPKG-$VERSION |
|||
install -m 644 COPYING README.rst $PKG/usr/doc/$NAMEPKG-$VERSION |
|||
|
|||
# Build HTML docs if Sphinx is available |
|||
export PYTHONPATH=$PKG$PYTHONDIR |
|||
if sphinx-build -b html doc $PKG/usr/doc/$NAMEPKG-$VERSION/html ; then |
|||
rm -rf $PKG/usr/doc/$NAMEPKG-$VERSION/html/.{buildinfo,doctrees} |
|||
fi |
|||
|
|||
# Copy slack-desc file |
|||
install -D -m 644 $CWD/slack-desc $PKG/install/slack-desc |
|||
|
|||
# Add dependency infos |
|||
cat <<EOF > $PKG/install/slack-required |
|||
Cython |
|||
python-joblib |
|||
python-threadpoolctl |
|||
scipy |
|||
EOF |
|||
|
|||
# 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 |
@ -0,0 +1 @@ |
|||
20766f515e6cd6f954554387dfae705d93c7b544ec0e6c6a5d8e006f6f7ef480 scikit-learn-0.23.2.tar.gz |
@ -0,0 +1,12 @@ |
|||
|-----handy-ruler-----------------------------------------------------| |
|||
python-scikit-learn: python-scikit-learn (machine learning for Python) |
|||
python-scikit-learn: |
|||
python-scikit-learn: scikit-learn is a Python module for machine learning built on top of |
|||
python-scikit-learn: SciPy and is distributed under the 3-clause BSD license. |
|||
python-scikit-learn: |
|||
python-scikit-learn: |
|||
python-scikit-learn: |
|||
python-scikit-learn: |
|||
python-scikit-learn: |
|||
python-scikit-learn: |
|||
python-scikit-learn: |
Write
Preview
Loading…
Cancel
Save
Reference in new issue