···
versionForFile = v: builtins.replaceStrings [ "." ] [ "" ] v;
21
+
if stdenv.hostPlatform.isx86_64 then ["x86-64bit" "amd64"]
22
+
else if stdenv.hostPlatform.isAarch64 then ["arm-64bit" "arm"]
23
+
else throw "unsupported platform";
28
-
, archdir ? if (stdenv.hostPlatform.system == "aarch64-linux") then "arm-64bit" else "x86-64bit"
stdenv.mkDerivation rec {
···
48
-
(lib.getLib stdenv.cc.cc)
49
-
xorg.libX11 # libX11.so.6
50
-
xorg.libXext # libXext.so.6
50
+
(lib.getLib stdenv.cc.cc) # libgcc_s.so.1, libstdc++.so.6
alsa-lib # libasound.so.2
freetype # libfreetype.so.6
53
+
libglvnd # libGL.so.1
···
71
-
mv -t $out/bin Pianoteq*/${archdir}/*
72
-
for f in $out/bin/Pianoteq*; do
73
-
if [ -x "$f" ] && [ -f "$f" ]; then
74
-
wrapProgram "$f" --prefix LD_LIBRARY_PATH : ${
75
-
lib.makeLibraryPath (buildInputs ++ [
72
+
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
···
224
-
# TODO currently can't install more than one because `lame` clashes
225
-
stage-trial = mkPianoteq rec {
226
-
name = "stage-trial";
227
-
mainProgram = "Pianoteq 8 STAGE";
228
-
startupWMClass = "Pianoteq STAGE Trial";
230
-
src = fetchPianoteqTrial {
231
-
name = "pianoteq_stage_linux_trial_v${versionForFile version}.7z";
232
-
hash = "sha256-66xbcqNrnVJ+C9FQ8Bg8A7nj/bFrjt6jKheusrXVWvI=";
210
+
version6 = "6.7.3";
211
+
version7 = "7.5.4";
212
+
version8 = "8.4.0";
214
+
mkStandard = version: hash: mkPianoteq {
216
+
mainProgram = "Pianoteq ${lib.versions.major version}";
217
+
startupWMClass = "Pianoteq";
219
+
src = fetchPianoteqWithLogin {
220
+
name = "pianoteq_linux_v${versionForFile version}.7z";
235
-
standard-trial = mkPianoteq rec {
236
-
name = "standard-trial";
237
-
mainProgram = "Pianoteq 8";
238
-
startupWMClass = "Pianoteq Trial";
240
-
src = fetchPianoteqTrial {
241
-
name = "pianoteq_linux_trial_v${versionForFile version}.7z";
242
-
hash = "sha256-IFFQMn8EFo5X8sUZV2/vtQOA83NHEFrUsU++CvYbN1c=";
245
-
stage-6 = mkPianoteq rec {
247
-
mainProgram = "Pianoteq 6 STAGE";
224
+
mkStage = version: hash: mkPianoteq {
226
+
mainProgram = "Pianoteq ${lib.versions.major version} STAGE";
startupWMClass = "Pianoteq STAGE";
250
-
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";
253
-
hash = "0jy0hkdynhwv0zhrqkby0hdphgmcc09wxmy74rhg9afm1pzl91jy";
256
-
stage-7 = mkPianoteq rec {
258
-
mainProgram = "Pianoteq 7 STAGE";
259
-
startupWMClass = "Pianoteq STAGE";
261
-
src = fetchPianoteqWithLogin {
262
-
name = "pianoteq_stage_linux_v${versionForFile version}.7z";
263
-
hash = "05w7sv9v38r6ljz9xai816w5z2qqwx88hcfjm241fvgbs54125hx";
234
+
mkStandardTrial = version: hash: mkPianoteq {
235
+
name = "standard-trial";
236
+
mainProgram = "Pianoteq ${lib.versions.major version}";
237
+
startupWMClass = "Pianoteq Trial";
239
+
src = fetchPianoteqTrial {
240
+
name = "pianoteq_linux_trial_v${versionForFile version}.7z";
266
-
standard-8 = mkPianoteq rec {
267
-
name = "standard-8";
268
-
mainProgram = "Pianoteq 8";
269
-
startupWMClass = "Pianoteq";
271
-
src = fetchPianoteqWithLogin {
272
-
name = "pianoteq_linux_v${versionForFile version}.7z";
273
-
hash = "sha256-ME0urUc1jwUKpg+5BdawYo9WhvMsrztYTVOrJTVxtkY=";
244
+
mkStageTrial = version: hash: mkPianoteq {
245
+
name = "stage-trial";
246
+
mainProgram = "Pianoteq ${lib.versions.major version} STAGE";
247
+
startupWMClass = "Pianoteq STAGE Trial";
249
+
src = fetchPianoteqTrial {
250
+
name = "pianoteq_stage_linux_trial_v${versionForFile version}.7z";
276
-
# TODO other paid binaries, I don't own that so I don't know their hash.
256
+
standard_8 = mkStandard version8 "sha256-ZDGB/SOOz+sWz7P+sNzyaipEH452n8zq5LleO3ztSXc=";
257
+
stage_8 = mkStage version8 "";
258
+
standard-trial_8 = mkStandardTrial version8 "sha256-K3LbAWxciXt9hVAyRayxSoE/IYJ38Fd03+j0s7ZsMuw=";
259
+
stage-trial_8 = mkStageTrial version8 "sha256-k0p7SnkEq90bqIlT7PTYAQuhKEDVi+srHwYrpMUtIbM=";
261
+
standard_7 = mkStandard version7 "sha256-TA9CiuT21fQedlMUGz7bNNxYun5ArmRjvIxjOGqXDCs=";
262
+
stage_7 = mkStage version7 "";
263
+
standard-trial_7 = mkStandardTrial version7 "sha256-3a3+SKTEhvDtqK5Kg4E6KiLvn5+j6JN6ntIb72u2bdQ=";
264
+
stage-trial_7 = mkStageTrial version7 "sha256-ybtq+hjnaQxpLxv2KE0ZcbQXtn5DJJsnMwCmh3rlrIc=";
266
+
standard_6 = mkStandard version6 "sha256-u6ZNpmHFVOk+r+6Q8OURSfAi41cxMoDvaEXrTtHEAVY=";
267
+
stage_6 = mkStage version6 "";
268
+
standard-trial_6 = mkStandardTrial version6 "sha256-nHTAqosOJqC0VnRw2/xVpZ6y02vvau6CgfNmgiN/AHs=";
269
+
stage-trial_6 = mkStageTrial version6 "sha256-zrv0c/Mxt1EysR7ZvmxtksXAF5MyXTFMNj4KAdO3QnE=";