Skip to content

Instantly share code, notes, and snippets.

@AcouBass
Last active May 12, 2018 02:24
Show Gist options
  • Save AcouBass/34498d20fb53f6fe2ba6b7251e64ecd6 to your computer and use it in GitHub Desktop.
Save AcouBass/34498d20fb53f6fe2ba6b7251e64ecd6 to your computer and use it in GitHub Desktop.
Tuxguitar 1.5.1 nixpkg
{ stdenv, fetchurl, swt, libXtst, jdk, fluidsynth, makeWrapper, alsaLib, jre, makeDesktopItem }:
with stdenv.lib;
let metadata = assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
if stdenv.system == "i686-linux" then
{ arch = "x86"; sha256 = "1qmb51k0538pn7gv4nsvhfv33xik4l4af0qmpllkzrikmj8wvzlb"; }
else
{ arch = "x86_64"; sha256 = "19d8srzki57yywin5nipibq7kkwf65k3ngk6kzqa57ska22rqhfj"; };
in stdenv.mkDerivation rec {
version = "1.5.1";
name = "tuxguitar-${version}";
src = fetchurl {
url = "https://downloads.sourceforge.net/tuxguitar/tuxguitar-1.5.1-linux-x86_64.tar.gz";
sha256 = metadata.sha256;
};
buildInputs = [ makeWrapper swt libXtst alsaLib jdk fluidsynth jre ];
desktopItem = makeDesktopItem rec {
name = "Tuxguitar";
exec = "tuxguitar";
icon = "icon.png";
comment = "A multitrack guitar tablature editor";
desktopName = "tuxguitar";
genericName = "tuxguitar";
categories = "AudioVideo;Audio;";
};
installPhase =
''
mkdir -p $out/bin
cp -r lib share dist $out/
#cp tuxguitar.sh $out/bin/tuxguitar
#cp tuxguitar.jar $out/lib
ln -s $out/share $out/bin/share
cat > $out/bin/tuxguitar << EOF
#!${stdenv.shell}
##SCRIPT DIR
DIR_NAME=/run/current-system/sw/bin
##JAVA
JAVA=${jre}/bin/java
##LIBRARY_PATH
LD_LIBRARY_PATH=${makeLibraryPath [ fluidsynth jre jdk swt alsaLib libXtst ]}
LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:$out/lib
##CLASSPATH
CLASSPATH=\$CLASSPATH:$out/lib/tuxguitar.jar
CLASSPATH=\$CLASSPATH:$out/lib/tuxguitar-ui-toolkit.jar
CLASSPATH=\$CLASSPATH:$out/lib/tuxguitar-ui-toolkit-swt.jar
CLASSPATH=\$CLASSPATH:$out/lib/tuxguitar-lib.jar
CLASSPATH=\$CLASSPATH:$out/lib/tuxguitar-editor-utils.jar
CLASSPATH=\$CLASSPATH:$out/lib/tuxguitar-gm-utils.jar
CLASSPATH=\$CLASSPATH:$out/lib/tuxguitar-awt-graphics.jar
CLASSPATH=\$CLASSPATH:$out/lib/swt.jar
CLASSPATH=\$CLASSPATH:$out/lib/gervill.jar
CLASSPATH=\$CLASSPATH:$out/lib/itext-pdf.jar
CLASSPATH=\$CLASSPATH:$out/lib/itext-xmlworker.jar
CLASSPATH=\$CLASSPATH:$out/lib/commons-compress.jar
CLASSPATH=\$CLASSPATH:$out/lib/icedtea-sound.jar
CLASSPATH=\$CLASSPATH:$out/share/
CLASSPATH=\$CLASSPATH:$out/dist/
##MAINCLASS
MAINCLASS=org.herac.tuxguitar.app.TGMainSingleton
##JVM ARGUMENTS
VM_ARGS="-Xmx512m"
##EXPORT VARS
export CLASSPATH
export LD_LIBRARY_PATH
export MOZILLA_FIVE_HOME
##LAUNCH
\$JAVA \$VM_ARGS -cp :\$CLASSPATH -Dtuxguitar.home.path="\$DIR_NAME" -Dtuxguitar.share.path="$out/share/" -Djava.library.path="\$LD_LIBRARY_PATH" \$MAINCLASS "\$1" "\$2"
EOF
chmod +x $out/bin/tuxguitar
mkdir -p $out/share/applications
cp ${desktopItem}/share/applications/* $out/share/applications/
substituteInPlace $out/share/applications/Tuxguitar.desktop \
--replace "icon.png" "$out/share/skins/Lavender/icon.png"
'';
meta = with stdenv.lib; {
description = "A multitrack guitar tablature editor";
longDescription = ''
TuxGuitar is a multitrack guitar tablature editor and player written
in Java-SWT. It can open GuitarPro, PowerTab and TablEdit files.
'';
homepage = http://www.tuxguitar.com.ar/;
license = licenses.lgpl2;
maintainers = [ maintainers.ardumont ];
platforms = platforms.linux;
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment