pianoteq: refactor, bump versions
This commit is contained in:
@@ -1,31 +1,33 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, curl
|
||||
, jq
|
||||
, htmlq
|
||||
, xorg
|
||||
, alsa-lib
|
||||
, freetype
|
||||
, p7zip
|
||||
, autoPatchelfHook
|
||||
, writeShellScript
|
||||
, zlib
|
||||
, libjack2
|
||||
, makeWrapper
|
||||
, copyDesktopItems
|
||||
, makeDesktopItem
|
||||
, curl
|
||||
, freetype
|
||||
, htmlq
|
||||
, jq
|
||||
, libglvnd
|
||||
, librsvg
|
||||
, makeDesktopItem
|
||||
, makeWrapper
|
||||
, p7zip
|
||||
, writeShellScript
|
||||
}:
|
||||
let
|
||||
versionForFile = v: builtins.replaceStrings [ "." ] [ "" ] v;
|
||||
|
||||
archdirs =
|
||||
if stdenv.hostPlatform.isx86_64 then ["x86-64bit" "amd64"]
|
||||
else if stdenv.hostPlatform.isAarch64 then ["arm-64bit" "arm"]
|
||||
else throw "unsupported platform";
|
||||
|
||||
mkPianoteq =
|
||||
{ name
|
||||
, mainProgram
|
||||
, startupWMClass
|
||||
, src
|
||||
, version
|
||||
, archdir ? if (stdenv.hostPlatform.system == "aarch64-linux") then "arm-64bit" else "x86-64bit"
|
||||
, ...
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
@@ -45,11 +47,10 @@ let
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
(lib.getLib stdenv.cc.cc)
|
||||
xorg.libX11 # libX11.so.6
|
||||
xorg.libXext # libXext.so.6
|
||||
(lib.getLib stdenv.cc.cc) # libgcc_s.so.1, libstdc++.so.6
|
||||
alsa-lib # libasound.so.2
|
||||
freetype # libfreetype.so.6
|
||||
libglvnd # libGL.so.1
|
||||
];
|
||||
|
||||
desktopItems = [
|
||||
@@ -68,20 +69,7 @@ let
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/bin
|
||||
mv -t $out/bin Pianoteq*/${archdir}/*
|
||||
for f in $out/bin/Pianoteq*; do
|
||||
if [ -x "$f" ] && [ -f "$f" ]; then
|
||||
wrapProgram "$f" --prefix LD_LIBRARY_PATH : ${
|
||||
lib.makeLibraryPath (buildInputs ++ [
|
||||
xorg.libXcursor
|
||||
xorg.libXinerama
|
||||
xorg.libXrandr
|
||||
libjack2
|
||||
zlib
|
||||
])
|
||||
}
|
||||
fi
|
||||
done
|
||||
mv -t $out/bin ${builtins.concatStringsSep " " (builtins.map (dir: "Pianoteq*/${dir}/*") archdirs)}
|
||||
install -Dm644 ${./pianoteq.svg} $out/share/icons/hicolor/scalable/apps/pianoteq.svg
|
||||
for size in 16 22 32 48 64 128 256; do
|
||||
dir=$out/share/icons/hicolor/"$size"x"$size"/apps
|
||||
@@ -219,59 +207,64 @@ let
|
||||
'';
|
||||
};
|
||||
|
||||
in
|
||||
{
|
||||
# TODO currently can't install more than one because `lame` clashes
|
||||
stage-trial = mkPianoteq rec {
|
||||
name = "stage-trial";
|
||||
mainProgram = "Pianoteq 8 STAGE";
|
||||
startupWMClass = "Pianoteq STAGE Trial";
|
||||
version = "8.2.0";
|
||||
src = fetchPianoteqTrial {
|
||||
name = "pianoteq_stage_linux_trial_v${versionForFile version}.7z";
|
||||
hash = "sha256-66xbcqNrnVJ+C9FQ8Bg8A7nj/bFrjt6jKheusrXVWvI=";
|
||||
};
|
||||
};
|
||||
standard-trial = mkPianoteq rec {
|
||||
name = "standard-trial";
|
||||
mainProgram = "Pianoteq 8";
|
||||
startupWMClass = "Pianoteq Trial";
|
||||
version = "8.2.0";
|
||||
src = fetchPianoteqTrial {
|
||||
name = "pianoteq_linux_trial_v${versionForFile version}.7z";
|
||||
hash = "sha256-IFFQMn8EFo5X8sUZV2/vtQOA83NHEFrUsU++CvYbN1c=";
|
||||
};
|
||||
};
|
||||
stage-6 = mkPianoteq rec {
|
||||
name = "stage-6";
|
||||
mainProgram = "Pianoteq 6 STAGE";
|
||||
startupWMClass = "Pianoteq STAGE";
|
||||
version = "6.7.3";
|
||||
archdir = if (stdenv.hostPlatform.system == "aarch64-linux") then throw "Pianoteq stage-6 is not supported on aarch64-linux" else "amd64";
|
||||
src = fetchPianoteqWithLogin {
|
||||
name = "pianoteq_stage_linux_v${versionForFile version}.7z";
|
||||
hash = "0jy0hkdynhwv0zhrqkby0hdphgmcc09wxmy74rhg9afm1pzl91jy";
|
||||
};
|
||||
};
|
||||
stage-7 = mkPianoteq rec {
|
||||
name = "stage-7";
|
||||
mainProgram = "Pianoteq 7 STAGE";
|
||||
startupWMClass = "Pianoteq STAGE";
|
||||
version = "7.3.0";
|
||||
src = fetchPianoteqWithLogin {
|
||||
name = "pianoteq_stage_linux_v${versionForFile version}.7z";
|
||||
hash = "05w7sv9v38r6ljz9xai816w5z2qqwx88hcfjm241fvgbs54125hx";
|
||||
};
|
||||
};
|
||||
standard-8 = mkPianoteq rec {
|
||||
name = "standard-8";
|
||||
mainProgram = "Pianoteq 8";
|
||||
version6 = "6.7.3";
|
||||
version7 = "7.5.4";
|
||||
version8 = "8.3.2";
|
||||
|
||||
mkStandard = version: hash: mkPianoteq {
|
||||
name = "standard";
|
||||
mainProgram = "Pianoteq ${lib.versions.major version}";
|
||||
startupWMClass = "Pianoteq";
|
||||
version = "8.2.0";
|
||||
inherit version;
|
||||
src = fetchPianoteqWithLogin {
|
||||
name = "pianoteq_linux_v${versionForFile version}.7z";
|
||||
hash = "sha256-ME0urUc1jwUKpg+5BdawYo9WhvMsrztYTVOrJTVxtkY=";
|
||||
inherit hash;
|
||||
};
|
||||
};
|
||||
# TODO other paid binaries, I don't own that so I don't know their hash.
|
||||
mkStage = version: hash: mkPianoteq {
|
||||
name = "stage";
|
||||
mainProgram = "Pianoteq ${lib.versions.major version} STAGE";
|
||||
startupWMClass = "Pianoteq STAGE";
|
||||
inherit version;
|
||||
src = fetchPianoteqWithLogin {
|
||||
name = "pianoteq_stage_linux_v${versionForFile version}.7z";
|
||||
inherit hash;
|
||||
};
|
||||
};
|
||||
mkStandardTrial = version: hash: mkPianoteq {
|
||||
name = "standard-trial";
|
||||
mainProgram = "Pianoteq ${lib.versions.major version}";
|
||||
startupWMClass = "Pianoteq Trial";
|
||||
inherit version;
|
||||
src = fetchPianoteqTrial {
|
||||
name = "pianoteq_linux_trial_v${versionForFile version}.7z";
|
||||
inherit hash;
|
||||
};
|
||||
};
|
||||
mkStageTrial = version: hash: mkPianoteq {
|
||||
name = "stage-trial";
|
||||
mainProgram = "Pianoteq ${lib.versions.major version} STAGE";
|
||||
startupWMClass = "Pianoteq STAGE Trial";
|
||||
inherit version;
|
||||
src = fetchPianoteqTrial {
|
||||
name = "pianoteq_stage_linux_trial_v${versionForFile version}.7z";
|
||||
inherit hash;
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
standard_8 = mkStandard version8 "sha256-U9i9XgZKed8KxDL1fwGbRs30wj0IQwMjP+GH2JpdrJ0=";
|
||||
stage_8 = mkStage version8 "";
|
||||
standard-trial_8 = mkStandardTrial version8 "sha256-nYhTtPtkmYwVV5N1XIGBNU9YBbeIxLOjw2bA29ObXps=";
|
||||
stage-trial_8 = mkStageTrial version8 "sha256-dkSG1PZgVds4fTir/77TSKhd3pBMJaOcWnLtZHsPqWo=";
|
||||
|
||||
standard_7 = mkStandard version7 "sha256-TA9CiuT21fQedlMUGz7bNNxYun5ArmRjvIxjOGqXDCs=";
|
||||
stage_7 = mkStage version7 "";
|
||||
standard-trial_7 = mkStandardTrial version7 "sha256-3a3+SKTEhvDtqK5Kg4E6KiLvn5+j6JN6ntIb72u2bdQ=";
|
||||
stage-trial_7 = mkStageTrial version7 "sha256-ybtq+hjnaQxpLxv2KE0ZcbQXtn5DJJsnMwCmh3rlrIc=";
|
||||
|
||||
standard_6 = mkStandard version6 "sha256-u6ZNpmHFVOk+r+6Q8OURSfAi41cxMoDvaEXrTtHEAVY=";
|
||||
stage_6 = mkStage version6 "";
|
||||
standard-trial_6 = mkStandardTrial version6 "sha256-nHTAqosOJqC0VnRw2/xVpZ6y02vvau6CgfNmgiN/AHs=";
|
||||
stage-trial_6 = mkStageTrial version6 "sha256-zrv0c/Mxt1EysR7ZvmxtksXAF5MyXTFMNj4KAdO3QnE=";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user