diff --git a/pkgs/tools/misc/fontforge/default.nix b/pkgs/tools/misc/fontforge/default.nix index 04717974a8b3..33a44dccc2d5 100644 --- a/pkgs/tools/misc/fontforge/default.nix +++ b/pkgs/tools/misc/fontforge/default.nix @@ -1,26 +1,26 @@ -{ stdenv, fetchFromGitHub, lib +{ stdenv, fetchurl, lib , autoconf, automake, gnum4, libtool, perl, gnulib, uthash, pkgconfig, gettext -, python, freetype, zlib, glib, libungif, libpng, libjpeg, libtiff, libxml2, pango +, python, freetype, zlib, glib, libungif, libpng, libjpeg, libtiff, libxml2, cairo, pango +, readline, woff2, zeromq , withSpiro ? false, libspiro , withGTK ? false, gtk2 , withPython ? true +, withExtras ? true , Carbon ? null, Cocoa ? null }: stdenv.mkDerivation rec { - name = "fontforge-${version}"; - version = "20170730"; + pname = "fontforge"; + version = "20190317"; - src = fetchFromGitHub { - owner = "fontforge"; - repo = "fontforge"; - rev = version; - sha256 = "15k6x97383p8l40jvcivalhwgbbcdg5vciyjz6m9r0lrlnjqkv99"; + src = fetchurl { + url = "https://github.com/${pname}/${pname}/releases/download/${version}/${pname}-${version}.tar.gz"; + sha256 = "1ddqbpc32cgbccdnv0lfw0qhj59hcqzb7616ph5lkvm91pnas4dp"; }; patches = [ ./fontforge-20140813-use-system-uthash.patch ]; - # use $SOURCE_DATE_EPOCH instead of non-determenistic timestamps + # use $SOURCE_DATE_EPOCH instead of non-deterministic timestamps postPatch = '' find . -type f -name '*.c' -exec sed -r -i 's#\btime\(&(.+)\)#if (getenv("SOURCE_DATE_EPOCH")) \1=atol(getenv("SOURCE_DATE_EPOCH")); else &#g' {} \; sed -r -i 's#author\s*!=\s*NULL#& \&\& !getenv("SOURCE_DATE_EPOCH")#g' fontforge/cvexport.c fontforge/dumppfa.c fontforge/print.c fontforge/svg.c fontforge/splineutil2.c @@ -32,19 +32,20 @@ stdenv.mkDerivation rec { # do not use x87's 80-bit arithmetic, rouding errors result in very different font binaries NIX_CFLAGS_COMPILE = lib.optionals stdenv.isi686 [ "-msse2" "-mfpmath=sse" ]; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig autoconf automake gnum4 libtool perl gettext ]; buildInputs = [ - autoconf automake gnum4 libtool perl gettext uthash + readline uthash woff2 zeromq python freetype zlib glib libungif libpng libjpeg libtiff libxml2 ] ++ lib.optionals withSpiro [libspiro] - ++ lib.optionals withGTK [ gtk2 pango ] + ++ lib.optionals withGTK [ gtk2 cairo pango ] ++ lib.optionals stdenv.isDarwin [ Carbon Cocoa ]; - configureFlags = - lib.optionals (!withPython) [ "--disable-python-scripting" "--disable-python-extension" ] + configureFlags = [ "--enable-woff2" ] + ++ lib.optionals (!withPython) [ "--disable-python-scripting" "--disable-python-extension" ] ++ lib.optional withGTK "--enable-gtk2-use" - ++ lib.optional (!withGTK) "--without-x"; + ++ lib.optional (!withGTK) "--without-x" + ++ lib.optional withExtras "--enable-fontforge-extras"; # work-around: git isn't really used, but configuration fails without it preConfigure = '' @@ -54,7 +55,7 @@ stdenv.mkDerivation rec { export GIT="$(type -P true)" cp -r "${gnulib}" ./gnulib chmod +w -R ./gnulib - ./bootstrap --skip-git --gnulib-srcdir=./gnulib + ./bootstrap --skip-git --gnulib-srcdir=./gnulib --force ''; doCheck = false; # tries to wget some fonts diff --git a/pkgs/tools/misc/fontforge/fontforge-20140813-use-system-uthash.patch b/pkgs/tools/misc/fontforge/fontforge-20140813-use-system-uthash.patch index 27c8274c1d21..fb53c619b2bc 100644 --- a/pkgs/tools/misc/fontforge/fontforge-20140813-use-system-uthash.patch +++ b/pkgs/tools/misc/fontforge/fontforge-20140813-use-system-uthash.patch @@ -8,10 +8,11 @@ EXTRA_DIST = CLEANFILES = MOSTLYCLEANFILES = -@@ -113,7 +112,6 @@ +@@ -113,8 +112,7 @@ Packaging/FontForge-doc.spec \ Packaging/FontForge.spec \ Packaging/FontForge.static.spec \ + README \ - uthash/src \ $(NULL) diff --git a/pkgs/tools/misc/fontforge/fontforge-fonttools.nix b/pkgs/tools/misc/fontforge/fontforge-fonttools.nix index 551fc71b7a74..ea4acfc5f0bb 100644 --- a/pkgs/tools/misc/fontforge/fontforge-fonttools.nix +++ b/pkgs/tools/misc/fontforge/fontforge-fonttools.nix @@ -1,32 +1 @@ -{ stdenv, fetchFromGitHub, zlib }: - -stdenv.mkDerivation rec { - version = "20160404"; - name = "fontforge-fonttools-${version}"; - - src = fetchFromGitHub { - owner = "fontforge"; - repo = "fontforge"; - rev = version; - sha256 = "15nacq84n9gvlzp3slpmfrrbh57kfb6lbdlc46i7aqgci4qv6fg0"; - }; - - buildInputs = [ zlib ]; - - setSourceRoot = ''export sourceRoot="$(echo */contrib/fonttools)"''; - - installPhase = '' - mkdir -p "$out"/{bin,share/doc/fontforge-fonttools} - for i in *.c; do - $CC "$i" -lz -lm --std=c99 -o "$out"/bin/$(basename "$i" .c) - done - cp README* "$out/share/doc/fontforge-fonttools" - ''; - - meta = with stdenv.lib; { - description = ''Small font tools shipped in FontForge contrib''; - license = licenses.bsd3; - maintainers = with maintainers; [ raskin ]; - platforms = with platforms; unix; - }; -} +{ fontforge }: fontforge.override { withExtras = true; }