diff options
author | Eric Hameleers <alien@slackware.com> | 2020-01-19 20:51:01 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2020-01-19 20:51:01 +0000 |
commit | 44268cbde7171d77b2b0891dd0616d1aaab6cb6c (patch) | |
tree | 219e088dfdfe0ad97f8387fcf50ad48a9885a0f0 | |
parent | e371268691cc01617f4ce0ea702c4eb3be6830b3 (diff) | |
download | asb-44268cbde7171d77b2b0891dd0616d1aaab6cb6c.tar.gz asb-44268cbde7171d77b2b0891dd0616d1aaab6cb6c.tar.xz |
Initial revision
22 files changed, 1569 insertions, 0 deletions
diff --git a/dssi/build/dssi.SlackBuild b/dssi/build/dssi.SlackBuild new file mode 100755 index 00000000..b3f2df1e --- /dev/null +++ b/dssi/build/dssi.SlackBuild @@ -0,0 +1,210 @@ +#!/bin/sh +# $Id$ +# Copyright 2020 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 <alien@slackware.com> +# For: dssi +# Descr: API for audio processing plugins +# URL: http://dssi.sourceforge.net/ +# Build needs: +# Needs: jack2, liblo, ladspa_Sdk +# Changelog: +# 1.1.1-1: 19/Jan/2020 by Eric Hameleers <alien@slackware.com> +# * Initial build. +# +# Run 'sh dssi.SlackBuild' to build a Slackware package. +# The package (.t?z) and .txt file as well as build logs are created in /tmp . +# Install the package using 'installpkg' or 'upgradepkg --install-new'. +# +# ----------------------------------------------------------------------------- + +PRGNAM=dssi +VERSION=${VERSION:-1.1.1} +BUILD=${BUILD:-1} +NUMJOBS=${NUMJOBS:-" -j$(nproc) "} +TAG=${TAG:-alien} + +DOCS="ChangeLog README" + +# 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://downloads.sourceforge.net/${PRGNAM}/${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 +# Set CFLAGS/CXXFLAGS and LIBDIRSUFFIX: +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=${SLKCFLAGS:-"-O2"} + SLKLDFLAGS=${SLKLDFLAGS:-""}; LIBDIRSUFFIX=${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/{checkout,configure,make,install,error,makepkg,patch}-$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+rX-st . + +echo Building ... +LDFLAGS="$SLKLDFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --program-prefix= \ + --program-suffix= \ + --build=$TARGET \ + 2>&1 | tee $OUTPUT/configure-${PRGNAM}.log + +make $NUMJOBS 2>&1 | tee $OUTPUT/make-${PRGNAM}.log +make DESTDIR=$PKG install 2>&1 | tee $OUTPUT/install-${PRGNAM}.log + +# Don't ship .la files: +find $PKG -type f -name "*.la" |xargs rm -f + +# 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 {} \; + +# Compress the man page(s): +if [ -d $PKG/usr/man ]; then + find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; + for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +fi + +# 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 +cat $SRCDIR/slack-required > $PKG/install/slack-required + +# 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 +cat $PKG/install/slack-required > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.dep + +# Restore the original umask: +umask ${_UMASK_} + diff --git a/dssi/build/slack-desc b/dssi/build/slack-desc new file mode 100644 index 00000000..d14211fe --- /dev/null +++ b/dssi/build/slack-desc @@ -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------------------------------------------------------| +dssi: dssi (API for audio processing plugins) +dssi: +dssi: DSSI (pronounced "dizzy") is an API for audio processing plugins, +dssi: particularly useful for software synthesis plugins with +dssi: user interfaces. +dssi: SSI is an open specification developed for use in Linux audio +dssi: applications. It may be thought of as LADSPA-for-instruments, or +dssi: something comparable to VSTi. +dssi: +dssi: dssi home: http://dssi.sourceforge.net/ +dssi: diff --git a/dssi/build/slack-required b/dssi/build/slack-required new file mode 100644 index 00000000..94fc057b --- /dev/null +++ b/dssi/build/slack-required @@ -0,0 +1,3 @@ +jack2 +liblo +ladspa_sdk diff --git a/libgig/build/libgig.SlackBuild b/libgig/build/libgig.SlackBuild new file mode 100755 index 00000000..821fa518 --- /dev/null +++ b/libgig/build/libgig.SlackBuild @@ -0,0 +1,216 @@ +#!/bin/sh +# $Id$ +# Copyright 2020 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 <alien@slackware.com> +# For: libgig +# Descr: library for loading, modifying and creating Gigasampler files +# URL: https://www.linuxsampler.org/libgig/ +# Build needs: +# Needs: +# Changelog: +# 4.2.0-1: 19/Jan/2020 by Eric Hameleers <alien@slackware.com> +# * Initial build. +# +# Run 'sh libgig.SlackBuild' to build a Slackware package. +# The package (.t?z) and .txt file as well as build logs are created in /tmp . +# Install the package using 'installpkg' or 'upgradepkg --install-new'. +# +# ----------------------------------------------------------------------------- + +PRGNAM=libgig +VERSION=${VERSION:-4.2.0} +BUILD=${BUILD:-1} +NUMJOBS=${NUMJOBS:-" -j$(nproc) "} +TAG=${TAG:-alien} + +DOCS="AUTHORS COPYING ChangeLog NEWS README TODO" + +# 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.bz2" +SRCURL="https://download.linuxsampler.org/packages/${PRGNAM}-${VERSION}.tar.bz2" + +## +## --- 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 +# Set CFLAGS/CXXFLAGS and LIBDIRSUFFIX: +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=${SLKCFLAGS:-"-O2"} + SLKLDFLAGS=${SLKLDFLAGS:-""}; LIBDIRSUFFIX=${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/{checkout,configure,make,install,error,makepkg,patch}-$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} + +# Drop the 'libgig' library subdir which only causes pain: +cat $SRCDIR/patches/libgig_libdir.patch | patch -p1 --verbose \ + 2>&1 | tee $OUTPUT/patch-${PRGNAM}.log + +chown -R root:root . +chmod -R u+w,go+r-w,a+rX-st . + +echo Building ... +touch $OUTPUT/configure-${PRGNAM}.log +autoreconf -vif \ + 2>&1 | tee -a $OUTPUT/configure-${PRGNAM}.log +LDFLAGS="$SLKLDFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --program-prefix= \ + --program-suffix= \ + --build=$TARGET \ + 2>&1 | tee -a $OUTPUT/configure-${PRGNAM}.log + +make $NUMJOBS 2>&1 | tee $OUTPUT/make-${PRGNAM}.log +make DESTDIR=$PKG install 2>&1 | tee $OUTPUT/install-${PRGNAM}.log + +# Don't ship .la files: +find $PKG -type f -name "*.la" |xargs rm -f + +# 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 {} \; + +# Compress the man page(s): +if [ -d $PKG/usr/man ]; then + find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; + for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +fi + +# 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_} + diff --git a/libgig/build/patches/libgig_libdir.patch b/libgig/build/patches/libgig_libdir.patch new file mode 100644 index 00000000..57be03e2 --- /dev/null +++ b/libgig/build/patches/libgig_libdir.patch @@ -0,0 +1,74 @@ +Taken from https://launchpad.net/ubuntu/+source/libgig/ + +Description: install libs to /usr/lib/<multiarch>. +Drop extra /libgig subdir +Author: Jarom#r Mike? <mira.mikes@seznam.cz> +Forwarded: cuse@users.sourceforge.net + +Index: libgig/akai.pc.in +=================================================================== +--- libgig.orig/akai.pc.in ++++ libgig/akai.pc.in +@@ -1,6 +1,6 @@ + prefix=@prefix@ + exec_prefix=@exec_prefix@ +-libdir=@libdir@/libgig ++libdir=@libdir@ + includedir=@includedir@/libgig + + Name: akai +Index: libgig/gig.pc.in +=================================================================== +--- libgig.orig/gig.pc.in ++++ libgig/gig.pc.in +@@ -1,6 +1,6 @@ + prefix=@prefix@ + exec_prefix=@exec_prefix@ +-libdir=@libdir@/libgig ++libdir=@libdir@ + includedir=@includedir@/libgig + + Name: gig +Index: libgig/libgig.spec.in +=================================================================== +--- libgig.orig/libgig.spec.in ++++ libgig/libgig.spec.in +@@ -80,18 +80,18 @@ if [ -d $RPM_BUILD_ROOT ]; then rm -rf $ + %defattr(-,root,root) + %doc AUTHORS COPYING ChangeLog NEWS README TODO + %{prefix}/bin/* +-%{prefix}/lib/libgig/libgig.so* +-%{prefix}/lib/libgig/libakai.so* ++%{prefix}/lib/libgig.so* ++%{prefix}/lib/libakai.so* + %{prefix}/share/man/man1/* + + %files devel + %defattr(-,root,root) + %doc doc/html/* +-%{prefix}/lib/libgig/libgig.a +-%{prefix}/lib/libgig/libgig.la ++%{prefix}/lib/libgig.a ++%{prefix}/lib/libgig.la + %{prefix}/lib/pkgconfig/gig.pc +-%{prefix}/lib/libgig/libakai.a +-%{prefix}/lib/libgig/libakai.la ++%{prefix}/lib/libakai.a ++%{prefix}/lib/libakai.la + %{prefix}/lib/pkgconfig/akai.pc + %{prefix}/include/libgig/* + +Index: libgig/src/Makefile.am +=================================================================== +--- libgig.orig/src/Makefile.am ++++ libgig/src/Makefile.am +@@ -1,7 +1,7 @@ + # to prevent compile errors on some systems + AM_CXXFLAGS = -pedantic -Wreturn-type + +-pkglib_LTLIBRARIES = libgig.la libakai.la ++lib_LTLIBRARIES = libgig.la libakai.la + + libgigincludedir = $(includedir)/libgig + libgiginclude_HEADERS = RIFF.h DLS.h SF.h gig.h Korg.h Serialization.h + diff --git a/libgig/build/slack-desc b/libgig/build/slack-desc new file mode 100644 index 00000000..f69a8c3b --- /dev/null +++ b/libgig/build/slack-desc @@ -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------------------------------------------------------| +libgig: libgig (library for loading, modifying and creating gigasampler files) +libgig: +libgig: libgig is a C++ library for loading, modifying and creating +libgig: Gigasampler (.gig) files, DLS (Downloadable Sounds) Level 1/2 files, +libgig: KORG sample based instruments (.KSF and .KMP files), +libgig: SoundFont v2 (.sf2) files and AKAI sampler data. +libgig: The package includes command line tools based on the library. +libgig: +libgig: +libgig: libgig home: https://www.linuxsampler.org/libgig/ +libgig: diff --git a/liblscp/build/liblscp.SlackBuild b/liblscp/build/liblscp.SlackBuild new file mode 100755 index 00000000..a808ee76 --- /dev/null +++ b/liblscp/build/liblscp.SlackBuild @@ -0,0 +1,208 @@ +#!/bin/sh +# $Id$ +# Copyright 2020 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 <alien@slackware.com> +# For: liblscp +# Descr: LinuxSampler Control Protocol library +# URL: https://www.linuxsampler.org/ +# Build needs: +# Needs: +# Changelog: +# 0.6.0-1: 19/Jan/2020 by Eric Hameleers <alien@slackware.com> +# * Initial build. +# +# Run 'sh liblscp.SlackBuild' to build a Slackware package. +# The package (.t?z) and .txt file as well as build logs are created in /tmp . +# Install the package using 'installpkg' or 'upgradepkg --install-new'. +# +# ----------------------------------------------------------------------------- + +PRGNAM=liblscp +VERSION=${VERSION:-0.6.0} +BUILD=${BUILD:-1} +NUMJOBS=${NUMJOBS:-" -j$(nproc) "} +TAG=${TAG:-alien} + +DOCS="AUTHORS ChangeLog NEWS README TODO" + +# 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://download.linuxsampler.org/packages/${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 +# Set CFLAGS/CXXFLAGS and LIBDIRSUFFIX: +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=${SLKCFLAGS:-"-O2"} + SLKLDFLAGS=${SLKLDFLAGS:-""}; LIBDIRSUFFIX=${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/{checkout,configure,make,install,error,makepkg,patch}-$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+rX-st . + +echo Building ... +LDFLAGS="$SLKLDFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --program-prefix= \ + --program-suffix= \ + --build=$TARGET \ + 2>&1 | tee $OUTPUT/configure-${PRGNAM}.log + +make $NUMJOBS 2>&1 | tee $OUTPUT/make-${PRGNAM}.log +make DESTDIR=$PKG install 2>&1 | tee $OUTPUT/install-${PRGNAM}.log + +# Don't ship .la files: +rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la + +# 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 {} \; + +# Compress the man page(s): +if [ -d $PKG/usr/man ]; then + find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; + for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +fi + +# 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_} + diff --git a/liblscp/build/slack-desc b/liblscp/build/slack-desc new file mode 100644 index 00000000..13adee01 --- /dev/null +++ b/liblscp/build/slack-desc @@ -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------------------------------------------------------| +liblscp: liblscp (LinuxSampler Control Protocol library) +liblscp: +liblscp: liblscp is a C library written as a wrapper around the LSCP network +liblscp: protocol, thus to control linuxsampler. +liblscp: It was originally designed to be used on both sides, that is on +liblscp: server/backend side (linuxsampler) and on client/frontend side +liblscp: (e.g. qsampler). Currently it is only used on client side by qsampler. +liblscp: +liblscp: +liblscp: liblscp home: https://www.linuxsampler.org/ +liblscp: diff --git a/linuxsampler/build/linuxsampler.SlackBuild b/linuxsampler/build/linuxsampler.SlackBuild new file mode 100755 index 00000000..b2991b78 --- /dev/null +++ b/linuxsampler/build/linuxsampler.SlackBuild @@ -0,0 +1,236 @@ +#!/bin/sh +# $Id$ +# Copyright 2020 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 <alien@slackware.com> +# For: linuxsampler +# Descr: software audio sampler +# URL: https://www.linuxsampler.org/ +# Build needs: +# Needs: dssi, jack2, ladspa-sdk, lv2 +# Changelog: +# 2.1.1-1: 18/Jan/2020 by Eric Hameleers <alien@slackware.com> +# * Initial build. +# +# Run 'sh linuxsampler.SlackBuild' to build a Slackware package. +# The package (.t?z) and .txt file as well as build logs are created in /tmp . +# Install the package using 'installpkg' or 'upgradepkg --install-new'. +# +# ----------------------------------------------------------------------------- + +PRGNAM=linuxsampler +VERSION=${VERSION:-2.1.1} +BUILD=${BUILD:-1} +NUMJOBS=${NUMJOBS:-" -j$(nproc) "} +TAG=${TAG:-alien} + +DOCS="AUTHORS ChangeLog NEWS README" + +# 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.bz2" +SRCURL="https://download.linuxsampler.org/packages/${PRGNAM}-${VERSION}.tar.bz2" + +## +## --- 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 +# Set CFLAGS/CXXFLAGS and LIBDIRSUFFIX: +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=${SLKCFLAGS:-"-O2"} + SLKLDFLAGS=${SLKLDFLAGS:-""}; LIBDIRSUFFIX=${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/{checkout,configure,make,install,error,makepkg,patch}-$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} + +# Apply patches borrowed from Gentoo: +touch $OUTPUT/patch-${PRGNAM}.log +cat $SRCDIR/patches/linuxsampler_lv2-automagic.patch | patch -p1 --verbose \ + 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log +cat $SRCDIR/patches/linuxsampler_nptl-hardened.patch | patch -p1 --verbose \ + 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log + +# Force regeneration of the file to let it build with all bison versions: +rm src/network/lscpparser.cpp + +chown -R root:root . +chmod -R u+w,go+r-w,a+rX-st . + +echo Building ... +autoreconf -vif \ + 2>&1 | tee $OUTPUT/configure-${PRGNAM}.log +echo -e "\n**\n" >> $OUTPUT/configure-${PRGNAM}.log + +LDFLAGS="$SLKLDFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --disable-arts-driver \ + --disable-static \ + --enable-alsa-driver \ + --enable-instruments-db \ + --enable-jack-driver \ + --enable-lv2 \ + --enable-sf2-engine \ + --program-prefix= \ + --program-suffix= \ + --build=$TARGET \ + 2>&1 | tee -a $OUTPUT/configure-${PRGNAM}.log + +make $NUMJOBS 2>&1 | tee $OUTPUT/make-${PRGNAM}.log +make DESTDIR=$PKG install 2>&1 | tee $OUTPUT/install-${PRGNAM}.log + +# Don't ship .la files: +find $PKG -type f -name "*.la" | xargs rm -f + +# The filename 'lscp' conflicts with nilfs-utils: +mv $PKG/usr/bin/lscp{,-$PRGNAM} +mv $PKG/usr/man/man1/lscp{,-$PRGNAM}.1 + +# 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 {} \; + +# Compress the man page(s): +if [ -d $PKG/usr/man ]; then + find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; + for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +fi + +# 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 +cat $SRCDIR/slack-required > $PKG/install/slack-required + +# 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 +cat $PKG/install/slack-required > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.dep + +# Restore the original umask: +umask ${_UMASK_} + diff --git a/linuxsampler/build/patches/linuxsampler_lv2-automagic.patch b/linuxsampler/build/patches/linuxsampler_lv2-automagic.patch new file mode 100644 index 00000000..522882ab --- /dev/null +++ b/linuxsampler/build/patches/linuxsampler_lv2-automagic.patch @@ -0,0 +1,26 @@ +diff --git a/configure.ac b/configure.ac +index c0a37e9..44348ad 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -535,12 +535,15 @@ AC_CHECK_HEADERS(dssi.h, + AM_CONDITIONAL(HAVE_DSSI, test $config_have_dssi = "yes") + + # LV2 +-PKG_CHECK_MODULES(LV2, lv2 >= 1.0.0, config_have_lv2="yes", config_have_lv2="no") +-if test "$config_have_lv2" != "yes"; then +- PKG_CHECK_MODULES(LV2, lv2core >= 1.0.0, config_have_lv2="yes", config_have_lv2="no") +-fi +-AC_SUBST(LV2_CFLAGS) +-AC_SUBST(LV2_LIBS) ++AC_ARG_ENABLE([lv2], ++ AS_HELP_STRING([--enable-lv2], [Enable building with lv2])) ++config_have_lv2="no" ++AS_IF([test "x$enable_lv2" = "xyes"], [ ++ PKG_CHECK_MODULES(LV2, lv2 >= 1.0.0, config_have_lv2="yes", config_have_lv2="no") ++ if test "$config_have_lv2" != "yes"; then ++ PKG_CHECK_MODULES(LV2, lv2core >= 1.0.0, config_have_lv2="yes", config_have_lv2="no") ++ fi ++]) + AM_CONDITIONAL(HAVE_LV2, test $config_have_lv2 = "yes") + + # VST diff --git a/linuxsampler/build/patches/linuxsampler_nptl-hardened.patch b/linuxsampler/build/patches/linuxsampler_nptl-hardened.patch new file mode 100644 index 00000000..0c61f096 --- /dev/null +++ b/linuxsampler/build/patches/linuxsampler_nptl-hardened.patch @@ -0,0 +1,15 @@ +Fix breakage caused by undefined behaviour. Using PTHREAD_CANCEL_ASYNCHRONOUS +is only allowed in pure functions. +See also: https://bugs.gentoo.org/show_bug.cgi?id=537516 + +--- linuxsampler-2.0.0/m4/nptl_bug.m4 ++++ linuxsampler-2.0.0/m4/nptl_bug.m4 +@@ -47,7 +47,7 @@ + void* __pthread_launcher(void* p) { + // let the thread be killable under any circumstances + // (without this function call, this test always succeeds !) +- pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL); ++ pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, NULL); + + // this will block this 2nd thread, since we already + // locked this mutex by the main thread diff --git a/linuxsampler/build/slack-desc b/linuxsampler/build/slack-desc new file mode 100644 index 00000000..98c80336 --- /dev/null +++ b/linuxsampler/build/slack-desc @@ -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------------------------------------------------------| +linuxsampler: linuxsampler (software audio sampler engine) +linuxsampler: +linuxsampler: LinuxSampler is a streaming-capable software audio sampler with +linuxsampler: high stability, efficiency and very low latency, providing +linuxsampler: professional grade features. It is modular and decoupled from any +linuxsampler: user interface. It can be launched in a terminal to show +linuxsampler: status information and debug messages, but it really requires +linuxsampler: a frontend like QSampler (light-weight) or JSampler (Java based). +linuxsampler: +linuxsampler: linuxsampler home: https://www.linuxsampler.org/ +linuxsampler: diff --git a/linuxsampler/build/slack-required b/linuxsampler/build/slack-required new file mode 100644 index 00000000..d119029b --- /dev/null +++ b/linuxsampler/build/slack-required @@ -0,0 +1,6 @@ +dssi +libgig +jack2 +ladspa_sdk +lv2 + diff --git a/pulseaudio-jack/build/patches/0001-client-conf-Add-allow-autospawn-for-root.patch b/pulseaudio-jack/build/patches/0001-client-conf-Add-allow-autospawn-for-root.patch new file mode 100644 index 00000000..ea54ae3f --- /dev/null +++ b/pulseaudio-jack/build/patches/0001-client-conf-Add-allow-autospawn-for-root.patch @@ -0,0 +1,79 @@ +From 1cb5647f76dc8cd7bacbce2a64fac9e6c2dc3b16 Mon Sep 17 00:00:00 2001 +From: Tanu Kaskinen <tanu.kaskinen at linux.intel.com> +Date: Tue, 28 Apr 2015 14:32:43 +0300 +Subject: [PATCH] client-conf: Add allow-autospawn-for-root + +Usually autospawning for root is a bad idea, since it can easily +interfere with other users' PulseAudio instances, but in embedded +environments where only root exists, autospawning is fine. + +Upstream-Status: Submitted [http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/23549] + +Signed-off-by: Tanu Kaskinen <tanu.kaskinen at linux.intel.com> +--- + man/pulse-client.conf.5.xml.in | 9 +++++++++ + src/pulse/client-conf.c | 1 + + src/pulse/client-conf.h | 1 + + src/pulse/client.conf.in | 1 + + src/pulse/context.c | 2 +- + 5 files changed, 13 insertions(+), 1 deletion(-) + +--- ./man/pulse-client.conf.5.xml.in.orig 2016-05-10 07:28:04.000000000 -0500 ++++ ./man/pulse-client.conf.5.xml.in 2016-06-22 13:39:30.494696654 -0500 +@@ -82,6 +82,15 @@ + </option> + + <option> ++ <p><opt>allow-autospawn-for-root=</opt> Allow autospawning also for root. ++ Takes a boolean value, defaults to <opt>no</opt>. If the <opt>autospawn ++ </opt> option is disabled, this option has no effect. Autospawning for ++ root is disabled by default, because running PulseAudio as root will ++ interfere with regular users' PulseAudio instances. This option should be ++ enabled only in environments where there are no regular users at all.</p> ++ </option> ++ ++ <option> + <p><opt>daemon-binary=</opt> Path to the PulseAudio daemon to + run when autospawning. Defaults to a path configured at compile + time.</p> +--- ./src/pulse/client.conf.in.orig 2016-05-03 01:17:39.000000000 -0500 ++++ ./src/pulse/client.conf.in 2016-06-22 13:39:30.527696657 -0500 +@@ -23,6 +23,7 @@ + ; default-dbus-server = + + ; autospawn = yes ++; allow-autospawn-for-root = no + ; daemon-binary = @PA_BINARY@ + ; extra-arguments = --log-target=syslog + +--- ./src/pulse/client-conf.c.orig 2016-05-10 07:28:04.000000000 -0500 ++++ ./src/pulse/client-conf.c 2016-06-22 13:39:30.505696655 -0500 +@@ -138,6 +138,7 @@ + { "default-server", pa_config_parse_string, &c->default_server, NULL }, + { "default-dbus-server", pa_config_parse_string, &c->default_dbus_server, NULL }, + { "autospawn", pa_config_parse_bool, &c->autospawn, NULL }, ++ { "allow-autospawn-for-root", pa_config_parse_bool, &c->allow_autospawn_for_root, NULL }, + { "cookie-file", pa_config_parse_string, &c->cookie_file_from_client_conf, NULL }, + { "disable-shm", pa_config_parse_bool, &c->disable_shm, NULL }, + { "enable-shm", pa_config_parse_not_bool, &c->disable_shm, NULL }, +--- ./src/pulse/context.c.orig 2016-06-01 05:50:54.000000000 -0500 ++++ ./src/pulse/context.c 2016-06-22 13:39:30.536696657 -0500 +@@ -1027,7 +1027,7 @@ + if (!(flags & PA_CONTEXT_NOAUTOSPAWN) && c->conf->autospawn) { + + #ifdef HAVE_GETUID +- if (getuid() == 0) ++ if (!c->conf->allow_autospawn_for_root && getuid() == 0) + pa_log_debug("Not doing autospawn since we are root."); + else { + c->do_autospawn = true; +--- ./src/pulse/client-conf.h.orig 2016-06-22 13:39:30.517696656 -0500 ++++ ./src/pulse/client-conf.h 2016-06-22 13:40:11.754699631 -0500 +@@ -38,6 +38,7 @@ + char *cookie_file_from_application; + char *cookie_file_from_client_conf; + bool autospawn, disable_shm, disable_memfd, auto_connect_localhost, auto_connect_display; ++ bool allow_autospawn_for_root; + size_t shm_size; + } pa_client_conf; + diff --git a/pulseaudio-jack/build/patches/0002-allow-autospawn-for-root-default.diff b/pulseaudio-jack/build/patches/0002-allow-autospawn-for-root-default.diff new file mode 100644 index 00000000..15c99583 --- /dev/null +++ b/pulseaudio-jack/build/patches/0002-allow-autospawn-for-root-default.diff @@ -0,0 +1,27 @@ +--- ./man/pulse-client.conf.5.xml.in.orig 2016-01-06 15:33:09.797022947 -0600 ++++ ./man/pulse-client.conf.5.xml.in 2016-01-06 15:35:34.902019857 -0600 +@@ -73,10 +73,7 @@ + <option> + <p><opt>allow-autospawn-for-root=</opt> Allow autospawning also for root. + Takes a boolean value, defaults to <opt>no</opt>. If the <opt>autospawn +- </opt> option is disabled, this option has no effect. Autospawning for +- root is disabled by default, because running PulseAudio as root will +- interfere with regular users' PulseAudio instances. This option should be +- enabled only in environments where there are no regular users at all.</p> ++ </opt> option is disabled, this option has no effect.</p> + </option> + + <option> +--- ./src/pulse/client.conf.in.orig 2016-01-06 15:33:09.800022947 -0600 ++++ ./src/pulse/client.conf.in 2016-01-06 15:39:33.502014775 -0600 +@@ -22,8 +22,8 @@ + ; default-server = + ; default-dbus-server = + +-; autospawn = yes +-; allow-autospawn-for-root = no ++autospawn = yes ++allow-autospawn-for-root = yes + ; daemon-binary = @PA_BINARY@ + ; extra-arguments = --log-target=syslog + diff --git a/pulseaudio-jack/build/patches/0003-no-root-warn.diff b/pulseaudio-jack/build/patches/0003-no-root-warn.diff new file mode 100644 index 00000000..c7d31c41 --- /dev/null +++ b/pulseaudio-jack/build/patches/0003-no-root-warn.diff @@ -0,0 +1,14 @@ +--- ./src/daemon/main.c.orig 2015-10-30 07:16:48.000000000 -0500 ++++ ./src/daemon/main.c 2016-01-07 15:05:42.131126245 -0600 +@@ -647,10 +647,8 @@ + } + + #ifdef HAVE_GETUID +- if (getuid() == 0 && !conf->system_instance) +- pa_log_warn(_("This program is not intended to be run as root (unless --system is specified).")); + #ifndef HAVE_DBUS /* A similar, only a notice worthy check was done earlier, if D-Bus is enabled. */ +- else if (getuid() != 0 && conf->system_instance) { ++ if (getuid() != 0 && conf->system_instance) { + pa_log(_("Root privileges required.")); + goto finish; + } diff --git a/pulseaudio-jack/build/patches/020_no-parallel-make.diff b/pulseaudio-jack/build/patches/020_no-parallel-make.diff new file mode 100644 index 00000000..6b552e33 --- /dev/null +++ b/pulseaudio-jack/build/patches/020_no-parallel-make.diff @@ -0,0 +1,22 @@ +--- src/Makefile.am.orig 2014-02-14 23:45:45.000000000 +1000 ++++ src/Makefile.am 2014-10-26 21:59:33.220234317 +1000 +@@ -19,6 +19,8 @@ + # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + # USA. + ++.NOTPARALLEL: ++ + ################################### + # Extra directories # + ################################### +--- Makefile.am.orig 2014-01-24 04:57:55.000000000 +1000 ++++ Makefile.am 2014-10-26 21:58:47.090622189 +1000 +@@ -15,6 +15,8 @@ + # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + # USA. + ++.NOTPARALLEL: ++ + ACLOCAL_AMFLAGS = -I m4 + + EXTRA_DIST = \ diff --git a/pulseaudio-jack/build/patches/030_posix-completion.diff b/pulseaudio-jack/build/patches/030_posix-completion.diff new file mode 100644 index 00000000..de1ef055 --- /dev/null +++ b/pulseaudio-jack/build/patches/030_posix-completion.diff @@ -0,0 +1,91 @@ +--- shell-completion/bash/pulseaudio.orig 2015-02-13 00:10:35.000000000 +1000 ++++ shell-completion/bash/pulseaudio 2015-09-12 11:09:36.948222926 +1000 +@@ -1,39 +1,45 @@ + #!/bin/bash + + __cards () { ++ (pactl list cards short 2> /dev/null) |\ + while IFS=$'\t' read idx name _; do + printf "%s %s\n" "$idx" "$name" +- done < <(pactl list cards short 2> /dev/null) ++ done + } + + __sinks () { ++ (pactl list sinks short 2> /dev/null) |\ + while IFS=$'\t' read _ name _ _ _; do + printf "%s\n" "$name" +- done < <(pactl list sinks short 2> /dev/null) ++ done + } + + __sinks_idx () { ++ (pactl list sinks short 2> /dev/null) |\ + while IFS=$'\t' read idx _ _ _ _; do + printf "%s\n" "$idx" +- done < <(pactl list sinks short 2> /dev/null) ++ done + } + + __sources () { ++ (pactl list sources short 2> /dev/null) |\ + while IFS=$'\t' read _ name _ _ _; do + printf "%s\n" "$name" +- done < <(pactl list sources short 2> /dev/null) ++ done + } + + __sink_inputs () { ++ (pactl list sink-inputs short 2> /dev/null) |\ + while IFS=$'\t' read idx _ _ _ _; do + printf "%s\n" "$idx" +- done < <(pactl list sink-inputs short 2> /dev/null) ++ done + } + + __source_outputs () { ++ (pactl list source-outputs short 2> /dev/null) |\ + while IFS=$'\t' read idx _ _ _ _; do + printf "%s\n" "$idx" +- done < <(pactl list source-outputs short 2> /dev/null) ++ done + } + + __ports () { +@@ -77,28 +83,32 @@ + } + + __all_modules () { ++ (pulseaudio --dump-modules 2> /dev/null) |\ + while read name; do + name=${name%% *} + printf "%s\n" "$name" +- done < <(pulseaudio --dump-modules 2> /dev/null) ++ done + } + + __loaded_modules () { ++ (pactl list modules short 2> /dev/null) |\ + while IFS=$'\t' read idx name _; do + printf "%s %s\n" "$idx" "$name" +- done < <(pactl list modules short 2> /dev/null) ++ done + } + + __resample_methods () { ++ (pulseaudio --dump-resample-methods 2> /dev/null) |\ + while read name; do + printf "%s\n" "$name" +- done < <(pulseaudio --dump-resample-methods 2> /dev/null) ++ done + } + + _pacat_file_formats () { ++ (pacat --list-file-formats 2> /dev/null) |\ + while IFS=$'\t' read name _; do + printf "%s\n" "$name" +- done < <(pacat --list-file-formats 2> /dev/null) ++ done + } + + in_array() { diff --git a/pulseaudio-jack/build/patches/pulseaudio-autostart.patch b/pulseaudio-jack/build/patches/pulseaudio-autostart.patch new file mode 100644 index 00000000..eb44bdbc --- /dev/null +++ b/pulseaudio-jack/build/patches/pulseaudio-autostart.patch @@ -0,0 +1,13 @@ +diff -up pulseaudio-6.0/src/daemon/start-pulseaudio-x11.in.autostart pulseaudio-6.0/src/daemon/start-pulseaudio-x11.in +--- pulseaudio-6.0/src/daemon/start-pulseaudio-x11.in.autostart 2015-02-12 08:10:35.000000000 -0600 ++++ pulseaudio-6.0/src/daemon/start-pulseaudio-x11.in 2015-06-22 11:24:13.561614127 -0500 +@@ -17,6 +17,9 @@ + + set -e + ++# probe to test if autospawn works, else resort to starting manually ++@PACTL_BINARY@ info > /dev/null 2>&1 || @PA_BINARY@ --start "$@" ++ + if [ x"$DISPLAY" != x ] ; then + + @PACTL_BINARY@ load-module module-x11-publish "display=$DISPLAY" > /dev/null diff --git a/qsampler/build/qsampler.SlackBuild b/qsampler/build/qsampler.SlackBuild new file mode 100755 index 00000000..fd008265 --- /dev/null +++ b/qsampler/build/qsampler.SlackBuild @@ -0,0 +1,230 @@ +#!/bin/sh +# $Id$ +# Copyright 2020 Eric Hameleers <alien@slackware.com> +# 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 <alien@slackware.com> +# For: qsampler +# Descr: linuxsampler Qt user interface +# URL: https://qsampler.sourceforge.io/ +# Build needs: +# Needs: +# Changelog: +# 0.6.1-1: 19/Jan/2020 by Eric Hameleers <alien@slackware.com> +# * Initial build. +# +# Run 'sh qsampler.SlackBuild' to build a Slackware package. +# The package (.t?z) and .txt file as well as build logs are created in /tmp . +# Install the package using 'installpkg' or 'upgradepkg --install-new'. +# +# ----------------------------------------------------------------------------- + +PRGNAM=qsampler +VERSION=${VERSION:-0.6.1} +BUILD=${BUILD:-1} +NUMJOBS=${NUMJOBS:-" -j$(nproc) "} +TAG=${TAG:-alien} + +DOCS="AUTHORS ChangeLog README TODO" + +# 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} + +# Input URL: https://downloads.sourceforge.net/qsampler/qsampler-0.6.1.tar.gz +SOURCE="$SRCDIR/${PRGNAM}-${VERSION}.tar.gz" +SRCURL="https://downloads.sourceforge.net/${PRGNAM}/${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 +# Set CFLAGS/CXXFLAGS and LIBDIRSUFFIX: +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=${SLKCFLAGS:-"-O2"} + SLKLDFLAGS=${SLKLDFLAGS:-""}; LIBDIRSUFFIX=${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/{checkout,configure,make,install,error,makepkg,patch}-$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+rX-st . + +echo Building ... +LDFLAGS="$SLKLDFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --program-prefix= \ + --program-suffix= \ + --build=$TARGET \ + 2>&1 | tee $OUTPUT/configure-${PRGNAM}.log + +make $NUMJOBS 2>&1 | tee $OUTPUT/make-${PRGNAM}.log +make DESTDIR=$PKG install 2>&1 | tee $OUTPUT/install-${PRGNAM}.log + +# Add this to the doinst.sh: +mkdir -p $PKG/install +cat <<EOINS >> $PKG/install/doinst.sh +# Update the desktop database: +if [ -x usr/bin/update-desktop-database ]; then + chroot . /usr/bin/update-desktop-database usr/share/applications > /dev/null 2>&1 +fi + +# Update hicolor theme cache: +if [ -d usr/share/icons/hicolor ]; then + if [ -x /usr/bin/gtk-update-icon-cache ]; then + chroot . /usr/bin/gtk-update-icon-cache -f -t usr/share/icons/hicolor 1> /dev/null 2> /dev/null + fi +fi + +# Update the mime database: +if [ -x usr/bin/update-mime-database ]; then + chroot . /usr/bin/update-mime-database usr/share/mime >/dev/null 2>&1 +fi + +EOINS + +# 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 {} \; + +# Compress the man page(s): +if [ -d $PKG/usr/man ]; then + find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; + for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +fi + +# 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 +cat $SRCDIR/slack-required > $PKG/install/slack-required + +# 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 +cat $PKG/install/slack-required > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.dep + +# Restore the original umask: +umask ${_UMASK_} + diff --git a/qsampler/build/slack-desc b/qsampler/build/slack-desc new file mode 100644 index 00000000..daa843fe --- /dev/null +++ b/qsampler/build/slack-desc @@ -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------------------------------------------------------| +qsampler: qsampler (linuxsampler Qt user interface) +qsampler: +qsampler: Qsampler is a LinuxSampler GUI front-end application written in C++ +qsampler: around the Qt framework using Qt Designer. +qsampler: At the moment it just wraps as a client reference interface for +qsampler: the LinuxSampler Control Protocol (LSCP). +qsampler: +qsampler: +qsampler: +qsampler: qsampler home: https://qsampler.sourceforge.io/ +qsampler: diff --git a/qsampler/build/slack-required b/qsampler/build/slack-required new file mode 100644 index 00000000..11b6e2c0 --- /dev/null +++ b/qsampler/build/slack-required @@ -0,0 +1,4 @@ +libgig +liblscp +linuxsampler +qt5 |