-
-
Notifications
You must be signed in to change notification settings - Fork 1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Javier Serrano Polo
committed
Jul 24, 2016
1 parent
3a90c73
commit 9cbbaae
Showing
3 changed files
with
157 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
#!/bin/bash | ||
set -e | ||
BINDIR="$1" | ||
RUNFILE="$2" | ||
[ "$BINDIR" -a "$RUNFILE" ] | ||
|
||
VERSION=@VERSION@ | ||
|
||
cd "$BINDIR" | ||
[ -e CMakeCache.txt ] | ||
|
||
rm -fr lmms.root | ||
mkdir lmms.root | ||
make install DESTDIR=lmms.root | ||
|
||
cd lmms.root | ||
mv usr/local/* usr | ||
rm -r usr/include usr/local | ||
|
||
strip usr/bin/lmms usr/lib/lmms/RemoteZynAddSubFx usr/lib/lmms/*.so \ | ||
usr/lib/lmms/ladspa/* | ||
|
||
# Find required libraries and download the deb files that contain them; | ||
# RemoteVstPlugin.exe.so is not considered | ||
ldd usr/bin/lmms usr/lib/lmms/RemoteZynAddSubFx usr/lib/lmms/lib*.so \ | ||
usr/lib/lmms/ladspa/* | | ||
grep = | | ||
cut -d " " -f 3 | | ||
grep -v usr/lib/lmms | | ||
sort -u | | ||
xargs dpkg -S | | ||
cut -d : -f 1 | | ||
sort -u | | ||
xargs aptitude download | ||
|
||
unpack_downloaded_deb() | ||
{ | ||
ls *.deb | | ||
while read DEB | ||
do | ||
dpkg-deb -x $DEB . | ||
done | ||
rm *.deb | ||
} | ||
|
||
unpack_downloaded_deb | ||
|
||
# Fetch missing copyright files | ||
find -L usr/share/doc -maxdepth 1 -type l -printf "%l\n" | | ||
sort -u | | ||
xargs aptitude download | ||
|
||
unpack_downloaded_deb | ||
|
||
mv usr/share/applications/lmms.desktop lmms-$VERSION.desktop | ||
sed -e " | ||
/^Name=/ s/LMMS/LMMS $VERSION/ | ||
/^Icon=/ s/lmms/lmms-$VERSION/ | ||
" -i lmms-$VERSION.desktop | ||
|
||
mv usr/share/pixmaps/lmms.png lmms-$VERSION.png | ||
rmdir --ignore-fail-on-non-empty usr/share/pixmaps | ||
|
||
mv usr/share/mime/packages/lmms.xml . | ||
|
||
rm -fr lib64 usr/share/applications usr/share/doc-base usr/share/lintian \ | ||
usr/share/man usr/share/menu usr/share/mime | ||
|
||
find usr/share/doc -type f ! -name copyright -delete | ||
find usr/share/doc -type d -empty -delete | ||
|
||
# libc6 is included, so its loader should be used instead of the system one; | ||
# move the loader to usr/bin because of Qt applicationDirPath() usage | ||
MULTIARCH=$(dpkg-architecture -qDEB_HOST_MULTIARCH) | ||
mv lib/$MULTIARCH/ld-*.so usr/bin/ld.so | ||
|
||
# FHS requires /opt programs to be in /opt/<package>/bin | ||
mkdir -p bin | ||
|
||
cat > bin/lmms-launcher << EOF | ||
#!/bin/sh | ||
DIR=\$(dirname \$(readlink -f "\$0")) | ||
DIR=\${DIR%/bin} | ||
export LD_LIBRARY_PATH="\$DIR"/lib/$MULTIARCH:"\$DIR"/usr/lib/$MULTIARCH\ | ||
:"\$DIR"/usr/lib/$MULTIARCH/pulseaudio | ||
"\$DIR"/usr/bin/ld.so "\$DIR"/usr/bin/lmms "\$@" | ||
EOF | ||
|
||
chmod a+x bin/lmms-launcher | ||
|
||
cp -a ../../cmake/linux/installer . | ||
|
||
cd .. | ||
fakeroot makeself --xz --complevel 6 lmms.root "$RUNFILE" LMMS ./installer \ | ||
$VERSION | ||
|
||
# Work around feature in makeself to allow system installation | ||
if [ "$(makeself -v)" = "Makeself version 2.2.0" ] | ||
then | ||
sed -e "4 s/umask 077//" -i "$RUNFILE" | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
#!/bin/sh | ||
set -e | ||
[ "$1" ] | ||
|
||
VERSION="$1" | ||
|
||
if [ $(id -u) -eq 0 ] | ||
then | ||
DIR=/opt/lmms-$VERSION | ||
PREFIX=/usr | ||
else | ||
DIR="$HOME"/.lmms-$VERSION | ||
PREFIX="$HOME"/.local | ||
fi | ||
echo Installing to $DIR | ||
mkdir -p "$DIR" | ||
|
||
rm -fr "$DIR"/bin "$DIR"/etc "$DIR"/lib "$DIR"/usr | ||
mv bin etc lib usr "$DIR" | ||
|
||
sed -e "/^Exec=/ s#lmms#\"$DIR\"/bin/lmms-launcher#" -i lmms-$VERSION.desktop | ||
|
||
ICONDIR="$PREFIX"/share/icons | ||
mkdir -p "$ICONDIR" | ||
mv lmms-$VERSION.png "$ICONDIR" | ||
|
||
MENUDIR="$PREFIX"/share/applications | ||
mkdir -p "$MENUDIR" | ||
mv lmms-$VERSION.desktop "$MENUDIR" | ||
|
||
MIMEDIR="$PREFIX"/share/mime/packages | ||
if [ ! \( -e "$MIMEDIR"/lmms.xml -o -e /usr/share/mime/packages/lmms.xml -o \ | ||
-e /usr/local/share/mime/packages/lmms.xml \) ] | ||
then | ||
mkdir -p "$MIMEDIR" | ||
mv lmms.xml "$MIMEDIR" | ||
if [ "$(which update-mime-database)" ] | ||
then | ||
update-mime-database "$PREFIX"/share/mime | ||
fi | ||
fi |