summary refs log tree commit diff
path: root/pkgs/misc/lilypond
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/misc/lilypond')
-rw-r--r--pkgs/misc/lilypond/with-fonts.nix42
1 files changed, 19 insertions, 23 deletions
diff --git a/pkgs/misc/lilypond/with-fonts.nix b/pkgs/misc/lilypond/with-fonts.nix
index 5bc74cb65dd..c8657298e44 100644
--- a/pkgs/misc/lilypond/with-fonts.nix
+++ b/pkgs/misc/lilypond/with-fonts.nix
@@ -1,35 +1,31 @@
-{ stdenv
-, lndir
-, lilypond
-, openlilylib-fonts
+{ stdenv, lndir, symlinkJoin, makeWrapper
+, lilypond, openlilylib-fonts
 , fonts ? openlilylib-fonts.all
 }:
 
-stdenv.lib.appendToName "with-fonts" (stdenv.mkDerivation {
-  inherit (lilypond) name;
-  phases = "installPhase";
-  buildInputs = fonts;
-  nativeBuildInputs = [ lndir ];
-  installPhase = ''
-    local fontsdir=$out/share/lilypond/${lilypond.version}/fonts
+stdenv.lib.appendToName "with-fonts" (symlinkJoin {
+  inherit (lilypond) name version;
 
-    install -m755 -d $fontsdir/otf
-    install -m755 -d $fontsdir/svg
+  paths = [ lilypond ];
 
-    ${stdenv.lib.concatMapStrings (font: ''
-        lndir -silent ${font}/otf $fontsdir/otf
-        lndir -silent ${font}/svg $fontsdir/svg
-      '') fonts}
+  buildInputs = [ makeWrapper lndir ];
+
+  postBuild = ''
+    local datadir="$out/share/lilypond/${lilypond.version}"
+    local fontsdir="$datadir/fonts"
 
-      install -m755 -d $out/lib
-      lndir -silent ${lilypond}/lib $out/lib
-      install -m755 -d $out/share
-      lndir -silent ${lilypond}/share $out/share
+    install -m755 -d "$fontsdir/otf"
+    install -m755 -d "$fontsdir/svg"
 
-      install -m755 -Dt $out/bin ${lilypond}/bin/*
+    ${stdenv.lib.concatMapStrings (font: ''
+          lndir -silent "${font}/otf" "$fontsdir/otf"
+          lndir -silent "${font}/svg" "$fontsdir/svg"
+      '') fonts}
 
       for p in $out/bin/*; do
-        substituteInPlace $p --replace "exec -a \"${lilypond}" "exec -a \"$out"
+          wrapProgram "$p" --set LILYPOND_DATADIR "$datadir"
       done
   '';
+
+  inherit (lilypond) meta;
 })