From 8a7203b48fbcd6b3d4e6ae42356e881cb75ef3eb Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Thu, 23 Jan 2020 07:53:58 +0000 Subject: libtorrent-rasterbar11: renamed from libtorrent-rasterbar --- .../build/libtorrent-rasterbar11.SlackBuild | 315 +++++++++++++++++++++ 1 file changed, 315 insertions(+) create mode 100755 libtorrent-rasterbar/build/libtorrent-rasterbar11.SlackBuild diff --git a/libtorrent-rasterbar/build/libtorrent-rasterbar11.SlackBuild b/libtorrent-rasterbar/build/libtorrent-rasterbar11.SlackBuild new file mode 100755 index 00000000..544dcf31 --- /dev/null +++ b/libtorrent-rasterbar/build/libtorrent-rasterbar11.SlackBuild @@ -0,0 +1,315 @@ +#!/bin/sh +# $Id$ +# Copyright 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Eric Hameleers, Eindhoven, NL +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# CONTRIBUTORS 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. +# ----------------------------------------------------------------------------- +# +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers +# For: libtorrent-rasterbar11 +# Descr: a bittorrent C++ library +# URL: http://www.rasterbar.com/products/libtorrent +# Needs: +# Changelog: +# 0.14.9-1: 19/Mar/2010 by Eric Hameleers +# * Initial build. +# 0.15.0-1: 01/jun/2010 by Eric Hameleers +# * Update. +# 0.15.4-1: 20/dec/2010 by Eric Hameleers +# * Update. +# 0.15.5-1: 08/jan/2011 by Eric Hameleers +# * Update. +# 0.15.6-1: 20/apr/2011 by Eric Hameleers +# * Update. +# 0.15.7-1: 15/aug/2011 by Eric Hameleers +# * Update. +# 0.15.8-1: 05/oct/2011 by Eric Hameleers +# * Update. +# 0.15.9-1: 04/feb/2012 by Eric Hameleers +# * Update. +# 0.15.10-1: 17/apr/2012 by Eric Hameleers +# * Update. +# 0.16.0-1: 04/jun/2012 by Eric Hameleers +# * Update. +# 0.16.1-1: 28/jun/2012 by Eric Hameleers +# * Update. +# 0.16.3-1: 17/sep/2012 by Eric Hameleers +# * Update. +# 0.16.4-1: 16/oct/2012 by Eric Hameleers +# * Update. +# 0.16.7-1: 20/jan/2013 by Eric Hameleers +# * Update. +# 0.16.9-1: 14/jun/2013 by Eric Hameleers +# * Update. +# 0.16.10-1: 23/jul/2013 by Eric Hameleers +# * Update. +# 0.16.12-1: 14/nov/2013 by Eric Hameleers +# * Update to accompany qbittorrent 3.1,2. +# 0.16.13-1: 03/jan/2014 by Eric Hameleers +# * Update to accompany qbittorrent 3.1,4. +# 0.16.15-1: 04/mar/2014 by Eric Hameleers +# * Update to accompany qbittorrent 3.1,9. +# 0.16.17-1: 11/nov/2014 by Eric Hameleers +# * Update to accompany qbittorrent 3.1,11. +# 1.0.4-1: 30/may/2015 by Eric Hameleers +# * Update (v1.x !) to accompany qbittorrent 3.2.0. +# 1.0.6-1: 17/aug/2015 by Eric Hameleers +# * Update to accompany qbittorrent 3.2.3. +# 1.0.6-2: 23/nov/2015 by Eric Hameleers +# * Rebuilt to accompany qbittorrent 3.2.5 on -current. +# 1.0.7-1: 28/dec/2015 by Eric Hameleers +# * Updated to accompany qbittorrent 3.3.1. +# 1.0.8-1: 17/feb/2016 by Eric Hameleers +# * Updated to accompany qbittorrent 3.3.3. +# 1.0.9-1: 22/jul/2016 by Eric Hameleers +# * Updated to accompany qbittorrent 3.3.6. +# 1.0.10-1: 25/jan/2017 by Eric Hameleers +# * Updated to accompany qbittorrent 3.3.10. +# 1.0.11-1: 07/mar/2017 by Eric Hameleers +# * Updated to accompany qbittorrent 3.3.12. +# 1.0.11-2: 21/nov/2017 by Eric Hameleers +# * Patched and rebuilt for newer boost in -current. +# 1.1.6-1: 03/apr/2018 by Eric Hameleers +# * Updated to accompany qbittorrent 4.0.4. +# 1.1.7-1: 21/apr/2018 by Eric Hameleers +# * Updated for newer boost in -current. +# 1.1.7-2: 14/may/2018 by Eric Hameleers +# * Rebuilt for new openssl in -current. +# 1.1.9-1: 17/aug/2018 by Eric Hameleers +# * Updated to accompany qbittorrent-4.1.2 in -current. +# 1.1.11-1: 17/dec/2018 by Eric Hameleers +# * Updated to accompany qbittorrent-4.1.4 in -current. +# 1.1.13-1: 25/may/2019 by Eric Hameleers +# * Updated to accompany qbittorrent-4.1.6 in -current. +# 1.1.13-2: 28/oct/2019 by Eric Hameleers +# * Rebuilt on slackware-current. +# +# Run 'sh libtorrent-rasterbar11.SlackBuild' to build a Slackware package. +# The package (.tgz) and .txt file as well as build logs are created in /tmp . +# Install it using 'installpkg'. +# +# ----------------------------------------------------------------------------- + +# Set initial variables: + +SRCNAM=libtorrent +PRGNAM=${SRCNAM}-rasterbar11 +VERSION=${VERSION:-1.1.13} +BUILD=${BUILD:-2} +NUMJOBS=${NUMJOBS:-" -j$(nproc) "} +TAG=${TAG:-alien} + +DOCS="AUTHORS COPYING ChangeLog LICENSE NEWS README* docs/" + +# Where do we look for sources? +SRCDIR=$(cd $(dirname $0); pwd) + +# Place to build (TMP) package (PKG) and output (OUTPUT) the program: +TMP=${TMP:-/tmp/build} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +SOURCE="$SRCDIR/${PRGNAM}-${VERSION}.tar.gz" +SRCURL="https://github.com/arvidn/${SRCNAM}/releases/download/${SRCNAM}-$(echo $VERSION |tr . _)/${PRGNAM}-${VERSION}.tar.gz" + +## +## --- with a little luck, you won't have to edit below this point --- ## +## + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$(uname -m)" in + i?86) ARCH=i586 ;; + arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) ARCH=$(uname -m) ;; + esac + export ARCH +fi + +case "$ARCH" in + i?86) SLKCFLAGS="-O2 -march=${ARCH} -mtune=i686" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; + x86_64) SLKCFLAGS="-O2 -fPIC" + SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64" + ;; + armv7hl) SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; + *) SLKCFLAGS="-O2" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; +esac + +case "$ARCH" in + arm*) TARGET=$ARCH-slackware-linux-gnueabi ;; + *) TARGET=$ARCH-slackware-linux ;; +esac + +# Exit the script on errors: +set -e +trap 'echo "$0 FAILED at line ${LINENO}" | tee $OUTPUT/error-${PRGNAM}.log' ERR +# Catch unitialized variables: +set -u +P1=${1:-1} + +# Save old umask and set to 0022: +_UMASK_=$(umask) +umask 0022 + +# Create working directories: +mkdir -p $OUTPUT # place for the package to be saved +mkdir -p $TMP/tmp-$PRGNAM # location to build the source +mkdir -p $PKG # place for the package to be built +rm -rf $PKG/* # always erase old package's contents +rm -rf $TMP/tmp-$PRGNAM/* # remove the remnants of previous build +rm -rf $OUTPUT/{configure,make,install,error,makepkg}-$PRGNAM.log + # remove old log files + +# Source file availability: +if ! [ -f ${SOURCE} ]; then + echo "Source '$(basename ${SOURCE})' not available yet..." + # Check if the $SRCDIR is writable at all - if not, download to $OUTPUT + [ -w "$SRCDIR" ] || SOURCE="$OUTPUT/$(basename $SOURCE)" + if [ -f ${SOURCE} ]; then echo "Ah, found it!"; continue; fi + if ! [ "x${SRCURL}" == "x" ]; then + echo "Will download file to $(dirname $SOURCE)" + wget --no-check-certificate -nv -T 20 -O "${SOURCE}" "${SRCURL}" || true + if [ $? -ne 0 -o ! -s "${SOURCE}" ]; then + echo "Downloading '$(basename ${SOURCE})' failed... aborting the build." + mv -f "${SOURCE}" "${SOURCE}".FAIL + exit 1 + fi + else + echo "File '$(basename ${SOURCE})' not available... aborting the build." + exit 1 + fi +fi + +if [ "$P1" == "--download" ]; then + echo "Download complete." + exit 0 +fi + +# --- PACKAGE BUILDING --- + +echo "++" +echo "|| $PRGNAM-$VERSION" +echo "++" + +cd $TMP/tmp-$PRGNAM +echo "Extracting the source archive(s) for $PRGNAM..." +tar -xvf ${SOURCE} +cd ${PRGNAM}-${VERSION} +chown -R root:root . +chmod -R u+w,go+r-w,a+X-s . + +# If your boost libraries ship with separate multi-threaded libraries, use them: +if [ -f /usr/lib${LIBDIRSUFFIX}/libboost_system-mt.so ]; then + MT="-mt" +else + MT="" +fi + +echo Building ... +build_ltr() { + LDFLAGS="$SLKLDFLAGS" \ + CXXFLAGS="$SLKCFLAGS -std=c++11" \ + CFLAGS="$SLKCFLAGS" \ + ./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --localstatedir=/var/lib \ + --sysconfdir=/etc \ + --enable-python-binding \ + --disable-static \ + --with-boost-libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-boost-system=boost_system$MT \ + --program-prefix= \ + --program-suffix= \ + --build=$TARGET \ + $* +} + +# Prime the log files: +echo > $OUTPUT/configure-${PRGNAM}.log +echo > $OUTPUT/make-${PRGNAM}.log +echo > $OUTPUT/install-${PRGNAM}.log + +# First, compile with python2 support: +PYTHON=/usr/bin/python2 \ +build_ltr \ + --with-boost-python=boost_python \ + 2>&1 | tee -a $OUTPUT/configure-${PRGNAM}.log +make $NUMJOBS 2>&1 | tee -a $OUTPUT/make-${PRGNAM}.log +make DESTDIR=$PKG install 2>&1 | tee -a $OUTPUT/install-${PRGNAM}.log + +# Also build and install the useful make_torrent and dump_torrent: +echo -e "\n**\n**\n" >> $OUTPUT/make-${PRGNAM}.log +make -C examples dump_torrent make_torrent 2>&1 | tee -a $OUTPUT/make-${PRGNAM}.log +install -d -m0755 $PKG/usr/bin +install -m0755 examples/dump_torrent $PKG/usr/bin/dump_torrent +install -m0755 examples/make_torrent $PKG/usr/bin/make_torrent + +# If present, compile with python3 support: +if which python3 1>/dev/null 2>/dev/null ; then + make clean + PYTHON=/usr/bin/python3 \ + build_ltr \ + --with-boost-python=boost_python3 \ + 2>&1 | tee -a $OUTPUT/configure-${PRGNAM}.log + make $NUMJOBS 2>&1 | tee -a $OUTPUT/make-${PRGNAM}.log + make DESTDIR=$PKG install 2>&1 | tee -a $OUTPUT/install-${PRGNAM}.log +fi + +# Remove .la files: +find $PKG/usr -type f -name "*.la" -exec rm -f {} \; || true + +# Add documentation: +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION || true +cat $SRCDIR/$(basename $0) > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +chown -R root:root $PKG/usr/doc/$PRGNAM-$VERSION +find $PKG/usr/doc -type f -exec chmod 644 {} \; + +# Strip binaries (if any): +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +# Add a package description: +mkdir -p $PKG/install +cat $SRCDIR/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.${PKGTYPE:-tgz} 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}.log +cd $OUTPUT +md5sum ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.${PKGTYPE:-tgz} > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.${PKGTYPE:-tgz}.md5 +cd - +cat $PKG/install/slack-desc | grep "^${PRGNAM}" > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txt + +# Restore the original umask: +umask ${_UMASK_} + -- cgit v1.2.3