diff options
Diffstat (limited to 'nixpkgs/pkgs/misc/lilypond')
-rw-r--r-- | nixpkgs/pkgs/misc/lilypond/default.nix | 68 | ||||
-rw-r--r-- | nixpkgs/pkgs/misc/lilypond/findlib.patch | 24 | ||||
-rw-r--r-- | nixpkgs/pkgs/misc/lilypond/fonts.nix | 138 | ||||
-rw-r--r-- | nixpkgs/pkgs/misc/lilypond/unstable.nix | 23 | ||||
-rw-r--r-- | nixpkgs/pkgs/misc/lilypond/with-fonts.nix | 17 |
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 + ''; +}) |