about summary refs log tree commit diff
path: root/nixpkgs/pkgs/misc/lilypond
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/misc/lilypond')
-rw-r--r--nixpkgs/pkgs/misc/lilypond/default.nix68
-rw-r--r--nixpkgs/pkgs/misc/lilypond/findlib.patch24
-rw-r--r--nixpkgs/pkgs/misc/lilypond/fonts.nix138
-rw-r--r--nixpkgs/pkgs/misc/lilypond/unstable.nix23
-rw-r--r--nixpkgs/pkgs/misc/lilypond/with-fonts.nix17
5 files changed, 270 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/misc/lilypond/default.nix b/nixpkgs/pkgs/misc/lilypond/default.nix
new file mode 100644
index 000000000000..7738c9b1c091
--- /dev/null
+++ b/nixpkgs/pkgs/misc/lilypond/default.nix
@@ -0,0 +1,68 @@
+{ stdenv, fetchgit, ghostscript, texinfo, imagemagick, texi2html, guile
+, python2, gettext, flex, perl, bison, pkgconfig, autoreconfHook, dblatex
+, fontconfig, freetype, pango, fontforge, help2man, zip, netpbm, groff
+, makeWrapper, t1utils
+, texlive, tex ? texlive.combine {
+    inherit (texlive) scheme-small lh metafont epsf;
+  }
+}:
+
+let
+
+  version = "2.18.2";
+
+in
+
+stdenv.mkDerivation {
+  pname = "lilypond";
+  inherit version;
+
+  src = fetchgit {
+    url = "https://git.savannah.gnu.org/r/lilypond.git";
+    rev = "release/${version}-1";
+    sha256 = "0fk045fmmb6fcv7jdvkbqr04qlwnxzwclr2gzx3gja714xy6a76x";
+  };
+
+  postInstall = ''
+    for f in "$out/bin/"*; do
+        # Override default argv[0] setting so LilyPond can find
+        # its Scheme libraries.
+        wrapProgram "$f" --set GUILE_AUTO_COMPILE 0 \
+                         --set PATH "${ghostscript}/bin" \
+                         --argv0 "$f"
+    done
+  '';
+
+  configureFlags = [
+    "--disable-documentation"
+    "--with-ncsb-dir=${ghostscript}/share/ghostscript/fonts"
+  ];
+
+  preConfigure = ''
+    sed -e "s@mem=mf2pt1@mem=$PWD/mf/mf2pt1@" -i scripts/build/mf2pt1.pl
+    export HOME=$TMPDIR/home
+  '';
+
+  nativeBuildInputs = [ makeWrapper pkgconfig autoreconfHook ];
+
+  autoreconfPhase = "NOCONFIGURE=1 sh autogen.sh";
+
+  buildInputs =
+    [ ghostscript texinfo imagemagick texi2html guile dblatex tex zip netpbm
+      python2 gettext flex perl bison fontconfig freetype pango
+      fontforge help2man groff t1utils
+    ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Music typesetting system";
+    homepage = http://lilypond.org/;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ marcweber yurrriq ];
+    platforms = platforms.all;
+    broken = stdenv.isDarwin;
+  };
+
+  patches = [ ./findlib.patch ];
+}
diff --git a/nixpkgs/pkgs/misc/lilypond/findlib.patch b/nixpkgs/pkgs/misc/lilypond/findlib.patch
new file mode 100644
index 000000000000..30e130bc8ad8
--- /dev/null
+++ b/nixpkgs/pkgs/misc/lilypond/findlib.patch
@@ -0,0 +1,24 @@
+diff --git a/stepmake/stepmake/executable-vars.make b/stepmake/stepmake/executable-vars.make
+index 3825101..bf37d16 100644
+--- a/stepmake/stepmake/executable-vars.make
++++ b/stepmake/stepmake/executable-vars.make
+@@ -1,4 +1,4 @@
+-MODULE_LIBES =$(addprefix $(outdir)/../, $(addsuffix /$(outbase)/library.a, $(MODULE_LIBS)))
++MODULE_LIBES =$(addprefix , $(addsuffix /$(outbase)/library.a, $(MODULE_LIBS)))
+ LOADLIBES = $(MODULE_LIBES) $($(PACKAGE)_LIBES) $(CONFIG_LIBS)
+ 
+ EXECUTABLE = $(outdir)/$(NAME)
+
+diff --git a/make/stepmake.make b/make/stepmake.make
+index 604341b..7f0d9d8 100644
+--- a/make/stepmake.make
++++ b/make/stepmake.make
+@@ -87,7 +87,7 @@ outdir=$(outroot)/$(outbase)
+ config_h=$(top-build-dir)/config$(CONFIGSUFFIX).hh
+ 
+ # The outdir that was configured for: best guess to find binaries
+-outconfbase=out$(CONFIGSUFFIX)
++outconfbase=$(outdir)
+ outconfdir=$(outroot)/$(outconfbase)
+ 
+ # user package
diff --git a/nixpkgs/pkgs/misc/lilypond/fonts.nix b/nixpkgs/pkgs/misc/lilypond/fonts.nix
new file mode 100644
index 000000000000..00335eddce86
--- /dev/null
+++ b/nixpkgs/pkgs/misc/lilypond/fonts.nix
@@ -0,0 +1,138 @@
+{ stdenv, fetchFromGitHub, lilypond }:
+
+let
+
+  olpFont = { fontName, rev, sha256, version ? rev, ... }:
+    stdenv.mkDerivation {
+      inherit version;
+      pname = "openlilypond-font-${fontName}";
+
+
+      src = fetchFromGitHub {
+        inherit rev sha256;
+        owner = "OpenLilyPondFonts";
+        repo = fontName;
+      };
+
+      phases = [ "unpackPhase" "installPhase" ];
+
+      installPhase = ''
+        local fontsdir="$out/share/lilypond/${lilypond.version}/fonts"
+
+        install -m755 -d "$fontsdir/otf"
+        for font in {otf,supplementary-fonts}/**.{o,t}tf; do
+          install -Dt "$fontsdir/otf" -m755 "$font"
+        done
+
+        install -m755 -d "$fontsdir/svg"
+        for font in svg/**.{svg,woff}; do
+          install -Dt "$fontsdir/svg" -m755 "$font"
+        done
+      '';
+
+      meta = with stdenv.lib; {
+        inherit (src.meta) homepage;
+        inherit (lilypond.meta) platforms;
+        description = "${fontName} font for LilyPond";
+        license = licenses.ofl;
+        maintainers = with maintainers; [ yurrriq ];
+      };
+    };
+
+in
+
+rec {
+  beethoven = olpFont {
+    fontName = "beethoven";
+    rev = "669f400";
+    sha256 = "17wdklg5shmqwnb7b81qavfg52v32wx5yf15c6al0hbvv1nqqj2i";
+  };
+  bravura = olpFont {
+    fontName = "bravura";
+    rev = "53c7744";
+    sha256 = "1p27w1c3bzxlnm6rzq8n7dbfjwbxqjy4r0fhkmk9jbm8awmzw214";
+  };
+  cadence = olpFont {
+    fontName = "cadence";
+    rev = "1cc0fb7";
+    sha256 = "1zxb3m8glh8iwj8mzcgyaxhlq0bji0rwniw702m70h9kpifiim1j";
+  };
+  gonville = olpFont {
+    fontName = "gonville";
+    rev = "a638bc9";
+    sha256 = "15khy9677crgd6bpajn7l1drysgxy49wiym3b248khgpavidwyy9";
+  };
+  gutenberg1939 = olpFont {
+    fontName = "gutenberg1939";
+    rev = "2316a35";
+    sha256 = "1lkhivmrx92z37zfrb5mkhzhwggyaga9cm0wl89r0n2f2kayyc7q";
+  };
+  haydn = olpFont {
+    fontName = "haydn";
+    rev = "9e7de8b";
+    sha256 = "1jmbhb2jm887sdc498l2jilpivq1d8lmmgdb8lp59lv8d9fx105z";
+  };
+  improviso = olpFont {
+    fontName = "improviso";
+    rev = "0753f5a";
+    sha256 = "1clin9c74gjhhira12mwxynxn4b1ixij5bg04mvk828lbr740mfm";
+  };
+  lilyboulez = olpFont {
+    fontName = "lilyboulez";
+    rev = "e8455fc";
+    sha256 = "0mq92x0rbgfb6s7ipgg2zcxika2si30w3ay89rp7m6vwca01649y";
+  };
+  lilyjazz = olpFont {
+    fontName = "lilyjazz";
+    rev = "8fa7d554";
+    sha256 = "1z7px7k2sn7snnj7yfjv0p9axwbn452vn9ww9icmb1249b0d1qry";
+  };
+  lv-goldenage = olpFont {
+    fontName = "lv-goldenage";
+    rev = "8a92fd3";
+    sha256 = "03nbd1vmlaj7wkhsnl2lq09nafv7zj1k518zs966vclzah94qghp";
+  };
+  paganini = olpFont {
+    fontName = "paganini";
+    rev = "8e4e55a";
+    sha256 = "0gw9wr4hfn205j40rpgnfddhzhn9x4pwfinamj5b7607880nvx29";
+  };
+  profondo = olpFont {
+    fontName = "profondo";
+    rev = "8cfb668";
+    sha256 = "0armwbg9y0l935949b7klngws6fq42fi944lws61qvjl61780br8";
+  };
+  ross = olpFont {
+    fontName = "ross";
+    rev = "aa8127f";
+    sha256 = "1w2x3pd1d1z4x0107dpq95v7m547cj4nkkzxgqpmzfqa0074idqd";
+  };
+  scorlatti = olpFont {
+    fontName = "scorlatti";
+    rev = "1db87da";
+    sha256 = "07jam5hwdy6bydrm98cdla6p6rl8lmy8zzsfq46i55l64l3w956h";
+  };
+  sebastiano = olpFont {
+    fontName = "sebastiano";
+    rev = "44bf262";
+    sha256 = "09i8p3p4z6vz69j187cpxvikkgc4pk6gxippahy0k7i7bh0d4qaj";
+  };
+
+  all = [
+    beethoven
+    bravura
+    cadence
+    gonville
+    gutenberg1939
+    haydn
+    improviso
+    lilyboulez
+    lilyjazz
+    lv-goldenage
+    paganini
+    profondo
+    ross
+    scorlatti
+    sebastiano
+  ];
+}
diff --git a/nixpkgs/pkgs/misc/lilypond/unstable.nix b/nixpkgs/pkgs/misc/lilypond/unstable.nix
new file mode 100644
index 000000000000..5b548038da9f
--- /dev/null
+++ b/nixpkgs/pkgs/misc/lilypond/unstable.nix
@@ -0,0 +1,23 @@
+{ fetchgit, lilypond, ghostscript, gyre-fonts }:
+
+let
+
+  version = "2.19.83";
+
+in
+
+lilypond.overrideAttrs (oldAttrs: {
+  inherit version;
+
+  src = fetchgit {
+    url = "https://git.savannah.gnu.org/r/lilypond.git";
+    rev = "release/${version}-1";
+    sha256 = "1ycyx9x76d79jh7wlwyyhdjkyrwnhzqpw006xn2fk35s0jrm2iz0";
+  };
+
+  configureFlags = [
+    "--disable-documentation"
+    "--with-urwotf-dir=${ghostscript}/share/ghostscript/fonts"
+    "--with-texgyre-dir=${gyre-fonts}/share/fonts/truetype/"
+  ];
+})
diff --git a/nixpkgs/pkgs/misc/lilypond/with-fonts.nix b/nixpkgs/pkgs/misc/lilypond/with-fonts.nix
new file mode 100644
index 000000000000..36dbcf170dd5
--- /dev/null
+++ b/nixpkgs/pkgs/misc/lilypond/with-fonts.nix
@@ -0,0 +1,17 @@
+{ stdenv, lndir, symlinkJoin, makeWrapper
+, lilypond, openlilylib-fonts
+}:
+
+stdenv.lib.appendToName "with-fonts" (symlinkJoin {
+  inherit (lilypond) meta name version ;
+
+  paths = [ lilypond ];
+
+  buildInputs = [ makeWrapper lndir ];
+
+  postBuild = ''
+    for p in $out/bin/*; do
+        wrapProgram "$p" --set LILYPOND_DATADIR "$datadir"
+    done
+  '';
+})