summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2019-03-07 09:45:51 +0000
committer Eric Hameleers <alien@slackware.com>2019-03-07 09:45:51 +0000
commit49aa32bfaba0a67aa5150fea95fd8b54aaf35e4f (patch)
tree7bfa1b61d2bd09766a0635e9f8441426c7e976f2
parent25bda75f49c83e5a6829026522d73abf060cb143 (diff)
downloadasb-49aa32bfaba0a67aa5150fea95fd8b54aaf35e4f.tar.gz
asb-49aa32bfaba0a67aa5150fea95fd8b54aaf35e4f.tar.xz
hydrogen: updated to 1.0.0.beta1
-rwxr-xr-xhydrogen/build/hydrogen.SlackBuild199
1 files changed, 109 insertions, 90 deletions
diff --git a/hydrogen/build/hydrogen.SlackBuild b/hydrogen/build/hydrogen.SlackBuild
index 67f541fa..f388a0ae 100755
--- a/hydrogen/build/hydrogen.SlackBuild
+++ b/hydrogen/build/hydrogen.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
# $Id$
-# Copyright (c) 2006-2009 Eric Hameleers, Eindhoven, NL
+# Copyright 2006-2019 Eric Hameleers, Eindhoven, NL
# All rights reserved.
#
# Permission to use, copy, modify, and distribute this software for
@@ -26,16 +26,18 @@
# ===========================
# By: Eric Hameleers <alien@slackware.com>
# For: hydrogen
-# Descr: advanced drum machine
-# URL: http://www.hydrogen-music.org/
-# Needs: jack,libsndfile
-# scons (only during compilation)
-# Optional: lrdf
+# Descr: advanced drum machine
+# URL: https://github.com/hydrogen-music/
+# Needs: jack2, ladspa_sdk, lash, liblo, liblrdf, rubberband, qt5
+# Optional:
# Changelog:
# 0.9.3-1: 03/Mar/2006 by Eric Hameleers <alien@slackware.com>
# * Initial build.
# 0.9.4-1: 22/Sep/2009 by Eric Hameleers <alien@slackware.com>
# * Update (finally!) now uses Qt4.
+# 1.0.0_beta1-1:
+# 24/feb/2019 by Eric Hameleers <alien@slackware.com>
+# * This release sports a Qt5 based GUI.
#
# Run 'sh hydrogen.SlackBuild' to build a Slackware package.
# The package (.tgz) and .txt file as well as build logs are created in /tmp .
@@ -43,22 +45,14 @@
#
# -----------------------------------------------------------------------------
-# Set initial variables:
PRGNAM=hydrogen
-VERSION=${VERSION:-0.9.4}
-ARCH=${ARCH:-i486}
+SRCVER=${SRCVER:-'1.0.0-beta1'}
+VERSION="$(echo $SRCVER |tr - _)"
BUILD=${BUILD:-1}
TAG=${TAG:-alien}
-DOCS="AUTHORS COPYING* ChangeLog DEVELOPERS README*"
-
-# Important:
-# if you want to enable/disable support for Jack or LRDF (to get LADSPA support)
-# then set these values to "1" or "0" - of course you need to have
-# these programs installed first...:
-USE_JACK="1"
-USE_LRDF="0"
+DOCS="ChangeLog DEVELOPERS INSTALL.txt README.txt"
# Where do we look for sources?
SRCDIR=$(cd $(dirname $0); pwd)
@@ -68,52 +62,73 @@ TMP=${TMP:-/tmp/build}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-SOURCE="$SRCDIR/${PRGNAM}-${VERSION}.tar.gz"
-SRCURL="http://downloads.sourceforge.net/${PRGNAM}/${PRGNAM}-${VERSION}.tar.gz"
+SOURCE="$SRCDIR/${PRGNAM}-${SRCVER}.tar.gz"
+SRCURL="https://github.com/${PRGNAM}-music/${PRGNAM}/archive/${SRCVER}.tar.gz"
##
## --- with a little luck, you won't have to edit below this point --- ##
##
-# 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}
-
+# 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
- i486) SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ i?86) SLKCFLAGS="-O2 -march=${ARCH} -mtune=i686"
SLKLDFLAGS=""; LIBDIRSUFFIX=""
;;
- s390) SLKCFLAGS="-O2"
- SLKLDFLAGS=""; LIBDIRSUFFIX=""
+ x86_64) SLKCFLAGS="-O2 -fPIC"
+ SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64"
;;
- powerpc) SLKCFLAGS="-O2"
+ armv7hl) SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
SLKLDFLAGS=""; LIBDIRSUFFIX=""
;;
- x86_64) SLKCFLAGS="-O2 -fPIC"
- SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64"
+ *) 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/{configure,make,install,error,makepkg}-$PRGNAM.log
+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
- # Check if the $SRCDIR is writable at all - if not, download to $OUTPUT
- [ -w "$SRCDIR" ] || SOURCE="$OUTPUT/$(basename $SOURCE)"
- echo "Source '$(basename ${SOURCE})' not available yet..."
echo "Will download file to $(dirname $SOURCE)"
- wget -nv -T 20 -O "${SOURCE}" "${SRCURL}" || true
+ 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
@@ -139,68 +154,76 @@ echo "++"
cd $TMP/tmp-$PRGNAM
echo "Extracting the source archive(s) for $PRGNAM..."
tar -xvf ${SOURCE}
-cd ${PRGNAM}-${VERSION}
+cd ${PRGNAM}-${SRCVER}
+
+# Use python2 explicitly:
+sed -e 's/python/python2/' -i data/i18n/stats.py
+
chown -R root:root .
-chmod -R u+w,go+r-w,a-s .
+chmod -R u+w,go+r-w,a+rX-st .
echo Building ...
-export LDFLAGS="$SLKLDFLAGS"
-export CXXFLAGS="$SLKCFLAGS"
-export CFLAGS="$SLKCFLAGS"
-export QTDIR="/usr/lib${LIBDIRSUFFIX}/qt"
-scons \
- prefix=/usr \
- jack=${USE_JACK} lrdf=${USE_LRDF} libarchive=1 \
+mkdir -p build-${PRGNAM}
+cd build-${PRGNAM}
+ cmake .. \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_C_FLAGS_RELEASE:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS_RELEASE:STRING="$SLKCFLAGS" \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DMAN_INSTALL_DIR=/usr/man \
+ -DSYSCONF_INSTALL_DIR=/etc \
+ -DLIB_SUFFIX=${LIBDIRSUFFIX} \
+ -DWANT_LASH=OFF \
+ -DWANT_LRDF=ON \
+ -DWANT_DEBUG=OFF \
+ -DWANT_CPPUNIT=OFF \
2>&1 | tee $OUTPUT/configure-${PRGNAM}.log
-scons \
- prefix=/usr \
- jack=${USE_JACK} lrdf=${USE_LRDF} libarchive=1 \
- DESTDIR=$PKG install 2>&1 | tee $OUTPUT/install-${PRGNAM}.log
+ make $NUMJOBS 2>&1 | tee $OUTPUT/make-${PRGNAM}.log
-# Clean up left-over makefiles:
-find $PKG/usr -name Makefile -exec rm -f {} \; || true
+ # This is a git snapshot, update translations:
+ ( cd ../data/i18n
+ ./updateTranslations.sh 2>&1 | tee -a $OUTPUT/make-${PRGNAM}.log
+ )
-# Move the svg files to proper place and create png files for compatibility:
-for IMG in $PKG/usr/share/pixmaps/*.svg ; do
- convert $IMG -scale 64 $PKG/usr/share/pixmaps/$(basename $IMG .svg).png
-done
-mkdir -p $PKG/usr/share/icons/hicolor/scalable/apps
-mv $PKG/usr/share/pixmaps/*.svg $PKG/usr/share/icons/hicolor/scalable/apps/
+ make DESTDIR=$PKG install 2>&1 | tee $OUTPUT/install-${PRGNAM}.log
+cd - 1>/dev/null
# Add this to the doinst.sh:
-! [ -d $PKG/install ] && mkdir -p $PKG/install
-cat <<EOT >> $PKG/install/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
-EOT
+# 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) | sed \
- -e "/^VERSION=/s/:-.*}/:-$VERSION}/" \
- -e "/^ARCH=/s/:-.*}/:-$ARCH}/" \
- -e "/^BUILD=/s/:-.*}/:-$BUILD}/" \
- > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-# Get the man pages outta here!
-mv $PKG/usr/share/hydrogen/data/doc/man $PKG/usr/
-# Hydrogen actually looks for "/usr/share/hydrogen/data/doc"
-( cd $PKG/usr/doc/$PRGNAM-$VERSION/
- ln -s ../../share/hydrogen/data/doc html
-)
+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 {} \;
-# Fix and compress the man page(s) if there are any (0.9.4 has none?):
-( cd $PKG/usr/man
- mv C man1
- mkdir ru/man1 ; mv ru/*.1 ru/man1/
- find . -type f -name "*.?" -exec gzip -9f {} \;
- for i in $(find . -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
-)
+# 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 \
@@ -209,21 +232,17 @@ find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
# Add a package description:
mkdir -p $PKG/install
cat $SRCDIR/slack-desc > $PKG/install/slack-desc
-if [ -f $SRCDIR/doinst.sh ]; then
- cat $SRCDIR/doinst.sh >> $PKG/install/doinst.sh
-fi
-if [ -f $SRCDIR/slack-required ]; then
- cat $SRCDIR/slack-required > $PKG/install/slack-required
-fi
+cat $SRCDIR/slack-required > $PKG/install/slack-required
# Build the package:
cd $PKG
-makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.tgz 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}.log
+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}.tgz > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.tgz.md5
+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
-if [ -f $PKG/install/slack-required ]; then
- cat $PKG/install/slack-required > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.dep
-fi
+cat $PKG/install/slack-required > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.dep
+
+# Restore the original umask:
+umask ${_UMASK_}