115 lines
2.4 KiB
Nix
115 lines
2.4 KiB
Nix
{ lib
|
|
, stdenv
|
|
, maven
|
|
, fetchFromGitHub
|
|
, jdk17
|
|
, jre
|
|
, swt
|
|
, makeWrapper
|
|
, wrapGAppsHook3
|
|
, pkg-config
|
|
, alsa-lib
|
|
, jack2
|
|
, fluidsynth
|
|
, libpulseaudio
|
|
, lilv
|
|
, suil
|
|
, qt5
|
|
, which
|
|
}:
|
|
|
|
maven.buildMavenPackage rec {
|
|
pname = "tuxguitar";
|
|
version = "2.0.1";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "helge17";
|
|
repo = "tuxguitar";
|
|
rev = version;
|
|
hash = "sha256-USdYj8ebosXkiZpDqyN5J+g1kjyWm225iQlx/szXmLA=";
|
|
};
|
|
|
|
mvnHash = "sha256-XTODH8SG7iwhACJT4AbIokORUe00r6theV18TEXbrIs=";
|
|
|
|
doCheck = false;
|
|
|
|
mvnJdk = jdk17;
|
|
|
|
nativeBuildInputs = [
|
|
makeWrapper
|
|
pkg-config
|
|
wrapGAppsHook3
|
|
];
|
|
|
|
buildInputs = [
|
|
alsa-lib
|
|
fluidsynth
|
|
jack2
|
|
lilv
|
|
qt5.qtbase
|
|
suil
|
|
];
|
|
|
|
mvnFetchExtraArgs = {
|
|
inherit buildInputs;
|
|
dontWrapQtApps = true;
|
|
};
|
|
|
|
postPatch = ''
|
|
substituteInPlace desktop/build-scripts/native-modules/tuxguitar-synth-lv2-linux/pom.xml \
|
|
--replace-fail /usr/include/lilv-0/lilv ${lib.getDev lilv}/include/lilv-0/lilv \
|
|
--replace-fail /usr/include/suil-0/suil ${lib.getDev suil}/include/suil-0/suil
|
|
|
|
if [[ "$name" == maven-deps-* ]]; then
|
|
mvn install:install-file \
|
|
-Dfile=${swt}/jars/swt.jar \
|
|
-DgroupId=org.eclipse.swt \
|
|
-DartifactId=org.eclipse.swt.gtk.linux \
|
|
-Dpackaging=jar \
|
|
-Dversion=4.36 \
|
|
-Dmaven.repo.local=$out/.m2
|
|
fi
|
|
'';
|
|
|
|
mvnParameters = "-f desktop/build-scripts/tuxguitar-linux-swt/pom.xml verify -P native-modules";
|
|
|
|
dontWrapGApps = true;
|
|
dontWrapQtApps = true;
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
mkdir -p $out/bin
|
|
cp -r desktop/build-scripts/tuxguitar-linux-swt/target/tuxguitar-*-linux-swt/{dist,lib,share,tuxguitar.sh} $out/
|
|
ln -sf ${swt}/jars/swt.jar $out/lib/swt.jar
|
|
ln -s ../tuxguitar.sh $out/bin/tuxguitar
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
postFixup = ''
|
|
wrapProgram $out/tuxguitar.sh \
|
|
"''${gappsWrapperArgs[@]}" \
|
|
--prefix PATH : ${lib.makeBinPath [ jre which ]} \
|
|
--prefix LD_LIBRARY_PATH : "$out/lib:${lib.makeLibraryPath [
|
|
swt
|
|
alsa-lib
|
|
fluidsynth
|
|
jack2
|
|
libpulseaudio
|
|
lilv
|
|
qt5.qtbase
|
|
suil
|
|
]}"
|
|
'';
|
|
|
|
meta = {
|
|
description = "Multitrack guitar tablature editor";
|
|
homepage = "https://github.com/helge17/tuxguitar";
|
|
license = lib.licenses.lgpl2;
|
|
maintainers = with lib.maintainers; [ evanreichard ];
|
|
mainProgram = "tuxguitar";
|
|
platforms = lib.platforms.linux;
|
|
};
|
|
}
|