summaryrefslogtreecommitdiffstats
path: root/sonic-pi
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2020-07-23 19:12:53 +0000
committer Eric Hameleers <alien@slackware.com>2020-07-23 19:12:53 +0000
commitd451757f7958df43efdfaaa56c4311a889fe96ee (patch)
tree9a30e72578a3f854b70bb34142620c2ee01f5070 /sonic-pi
parentc955fe1c26786fd528c6fff6a1ba1977285aec71 (diff)
downloadasb-d451757f7958df43efdfaaa56c4311a889fe96ee.tar.gz
asb-d451757f7958df43efdfaaa56c4311a889fe96ee.tar.xz
sonic-pi: create a cleaner package, which is a lot smaller and which puts all the documentation in /usr/doc
Diffstat (limited to 'sonic-pi')
-rwxr-xr-xsonic-pi/build/sonic-pi.SlackBuild69
1 files changed, 65 insertions, 4 deletions
diff --git a/sonic-pi/build/sonic-pi.SlackBuild b/sonic-pi/build/sonic-pi.SlackBuild
index 01c322fa..bf5557be 100755
--- a/sonic-pi/build/sonic-pi.SlackBuild
+++ b/sonic-pi/build/sonic-pi.SlackBuild
@@ -29,7 +29,7 @@
# Descr: live coding music performance tool
# URL: https://sonic-pi.net/
# Build needs: erlang-otp
-# Needs: aubio osmid sc3-plugins supercollider
+# Needs: aubio sc3-plugins supercollider
# Changelog:
# 3.2.2-1: 21/Jul/2020 by Eric Hameleers <alien@slackware.com>
# * Initial build.
@@ -220,10 +220,68 @@ cd build
cmake --build .
cd - 1>/dev/null
-# Install the lot into the package dir:
+# Install the lot into the package dir.
+# Use standard locations rather than those that the program expects,
+# and apply symlinks librally to tie it all together.
cd ${APPROOT}
-mkdir -p $PKG/usr/libexec/sonic-pi
-cp -a ${APPROOT}/{app,bin,etc} $PKG/usr/libexec/sonic-pi/
+##########cp -a ${APPROOT}/{app,etc} $PKG/usr/libexec/sonic-pi/
+# Create directories:
+mkdir -p $PKG/usr/libexec/sonic-pi/app/gui/qt/{build,images,lang}
+mkdir -p $PKG/usr/libexec/sonic-pi/app/server/{erlang,native}
+mkdir -p $PKG/usr/libexec/sonic-pi/etc/synthdefs/graphviz
+
+# Copy the GUI programs:
+cp -a ${APPROOT}/bin $PKG/usr/libexec/sonic-pi/
+cp -a ${APPROOT}/app/gui/qt/build/sonic-pi $PKG/usr/libexec/sonic-pi/app/gui/qt/build/
+
+# All the other stuff needed by the GUI:
+cp -a ${APPROOT}/app/gui/qt/fonts $PKG/usr/libexec/sonic-pi/app/gui/qt/
+cd ${APPROOT}/app/gui/qt/images
+ find . -name "*.png" | xargs -I '{}' cp -a --parents '{}' $PKG/usr/libexec/sonic-pi/app/gui/qt/images/
+cd - 1>/dev/null
+cp -a ${APPROOT}/app/gui/qt/lang/*.qm $PKG/usr/libexec/sonic-pi/app/gui/qt/lang/
+cp -a ${APPROOT}/app/gui/qt/theme $PKG/usr/libexec/sonic-pi/app/gui/qt/
+
+# Audio data:
+cp -a ${APPROOT}/etc/buffers $PKG/usr/libexec/sonic-pi/etc/
+cp -a ${APPROOT}/etc/samples $PKG/usr/libexec/sonic-pi/etc/
+cp -a ${APPROOT}/etc/snippets $PKG/usr/libexec/sonic-pi/etc/
+cd ${APPROOT}/etc/synthdefs
+ find . -name "*.scsyndef" -o -name "*.clj" -o -name "*.md" \
+ | xargs -I '{}' cp -a --parents '{}' $PKG/usr/libexec/sonic-pi/etc/synthdefs/
+cd - 1>/dev/null
+
+# The erlang files:
+cp -a ${APPROOT}/app/server/erlang/*.beam ${APPROOT}/app/server/erlang/*.md $PKG/usr/libexec/sonic-pi/app/server/erlang/
+
+# osmid:
+cp -a ${APPROOT}/app/server/native/osmid $PKG/usr/libexec/sonic-pi/app/server/native/
+
+# Ruby files - there's a lot of crap in there that I can not really assess:
+cp -a ${APPROOT}/app/server/ruby $PKG/usr/libexec/sonic-pi/app/server/
+# Remove unused bloat that I recognize:
+find $PKG/usr/libexec/sonic-pi/app/server/ruby -name libgit2 -type d | xargs rm -rf
+# We do not want these either:
+find $PKG/usr/libexec/sonic-pi/app/server/ruby -name Rakefile | xargs rm -f
+find $PKG/usr/libexec/sonic-pi/app/server/ruby -name "*.c" | xargs rm -rf
+find $PKG/usr/libexec/sonic-pi/app/server/ruby -name "*.o" | xargs rm -rf
+find $PKG/usr/libexec/sonic-pi/app/server/ruby -name ".git*" | xargs rm -rf
+
+# The documentation:
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a ${APPROOT}/app/gui/qt/book $PKG/usr/doc/$PRGNAM-$VERSION/
+ln -s /usr/doc/$PRGNAM-$VERSION/book $PKG/usr/libexec/sonic-pi/app/gui/qt/
+cp -a ${APPROOT}/app/gui/qt/help $PKG/usr/doc/$PRGNAM-$VERSION/
+ln -s /usr/doc/$PRGNAM-$VERSION/help $PKG/usr/libexec/sonic-pi/app/gui/qt/
+cp -a ${APPROOT}/app/gui/qt/html $PKG/usr/doc/$PRGNAM-$VERSION/
+ln -s /usr/doc/$PRGNAM-$VERSION/html $PKG/usr/libexec/sonic-pi/app/gui/qt/
+cp -a ${APPROOT}/etc/doc/{cheatsheets,images,lang,tutorial} $PKG/usr/doc/$PRGNAM-$VERSION/
+ln -s /usr/doc/$PRGNAM-$VERSION $PKG/usr/libexec/sonic-pi/etc/doc
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/synthdefs
+cp -a ${APPROOT}/etc/synthdefs/graphviz/pdf $PKG/usr/doc/$PRGNAM-$VERSION/synthdefs/
+ln -s /usr/doc/$PRGNAM-$VERSION/synthdefs/pdf $PKG/usr/libexec/sonic-pi/etc/synthdefs/graphviz/
+cp -a ${APPROOT}/etc/examples $PKG/usr/doc/$PRGNAM-$VERSION/
+ln -s /usr/doc/$PRGNAM-$VERSION/examples $PKG/usr/libexec/sonic-pi/etc/
# Create a program wrapper:
mkdir -p $PKG/usr/bin
@@ -235,6 +293,9 @@ EOT
chmod 755 $PKG/usr/bin/sonic-pi
# Install a desktop file:
+mkdir -p $PKG/usr/share/pixmaps
+cp -a ${APPROOT}/app/gui/qt/images/icon-smaller.png \
+ $PKG/usr/share/pixmaps/sonic-pi.png
mkdir -p $PKG/usr/share/applications
cat <<EOT > $PKG/usr/share/applications/$PRGNAM.desktop
[Desktop Entry]