feat(tuxguitar): add source-built package
This commit is contained in:
114
packages/tuxguitar/default.nix
Normal file
114
packages/tuxguitar/default.nix
Normal file
@@ -0,0 +1,114 @@
|
||||
{ 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;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user