aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/tools/misc/fontforge/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/tools/misc/fontforge/default.nix')
-rw-r--r--nixpkgs/pkgs/tools/misc/fontforge/default.nix48
1 files changed, 28 insertions, 20 deletions
diff --git a/nixpkgs/pkgs/tools/misc/fontforge/default.nix b/nixpkgs/pkgs/tools/misc/fontforge/default.nix
index 67ab7b2d691..8da5c871652 100644
--- a/nixpkgs/pkgs/tools/misc/fontforge/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fontforge/default.nix
@@ -1,23 +1,39 @@
{ stdenv, fetchurl, lib
-, autoconf, automake, gnum4, libtool, perl, uthash, pkgconfig, gettext
+, fetchpatch
+, cmake, perl, uthash, pkgconfig, gettext
, python, freetype, zlib, glib, libungif, libpng, libjpeg, libtiff, libxml2, cairo, pango
, readline, woff2, zeromq, libuninameslist
, withSpiro ? false, libspiro
-, withGTK ? false, gtk2
+, withGTK ? false, gtk3
+, withGUI ? withGTK
, withPython ? true
, withExtras ? true
, Carbon ? null, Cocoa ? null
}:
+assert withGTK -> withGUI;
+
stdenv.mkDerivation rec {
pname = "fontforge";
- version = "20190801";
+ version = "20200314";
src = fetchurl {
- url = "https://github.com/${pname}/${pname}/releases/download/${version}/${pname}-${version}.tar.gz";
- sha256 = "0lh8yx01asbzxm6car5cfi64njh5p4lxc7iv8dldr5rwg357a86r";
+ url = "https://github.com/${pname}/${pname}/releases/download/${version}/${pname}-${version}.tar.xz";
+ sha256 = "0qf88wd6riycq56d24brybyc93ns74s0nyyavm43zp2kfcihn6fd";
};
+ patches = [
+ # Unreleased fix for https://github.com/fontforge/fontforge/issues/4229
+ # which is required to fix an uninterposated `${CMAKE_INSTALL_PREFIX}/lib`, see
+ # see https://github.com/nh2/static-haskell-nix/pull/98#issuecomment-665395399
+ # TODO: Remove https://github.com/fontforge/fontforge/pull/4232 is in a release.
+ (fetchpatch {
+ name = "fontforge-cmake-set-rpath-to-the-configure-time-CMAKE_INSTALL_PREFIX";
+ url = "https://github.com/fontforge/fontforge/commit/297ee9b5d6db5970ca17ebe5305189e79a1520a1.patch";
+ sha256 = "14qfp8pwh0vzzib4hq2nc6xhn8lc1cal1sb0lqwb2q5dijqx5kqk";
+ })
+ ];
+
# 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' {} \;
@@ -30,41 +46,33 @@ stdenv.mkDerivation rec {
# do not use x87's 80-bit arithmetic, rouding errors result in very different font binaries
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isi686 "-msse2 -mfpmath=sse";
- nativeBuildInputs = [ pkgconfig autoconf automake gnum4 libtool perl gettext ];
+ nativeBuildInputs = [ pkgconfig cmake ];
buildInputs = [
readline uthash woff2 zeromq libuninameslist
python freetype zlib glib libungif libpng libjpeg libtiff libxml2
]
++ lib.optionals withSpiro [libspiro]
- ++ lib.optionals withGTK [ gtk2 cairo pango ]
+ ++ lib.optionals withGUI [ gtk3 cairo pango ]
++ lib.optionals stdenv.isDarwin [ Carbon Cocoa ];
- 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 withExtras "--enable-fontforge-extras";
+ cmakeFlags = [ "-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON" ]
+ ++ lib.optional (!withSpiro) "-DENABLE_LIBSPIRO=OFF"
+ ++ lib.optional (!withGUI) "-DENABLE_GUI=OFF"
+ ++ lib.optional (!withGTK) "-DENABLE_X11=ON"
+ ++ lib.optional withExtras "-DENABLE_FONTFORGE_EXTRAS=ON";
# work-around: git isn't really used, but configuration fails without it
preConfigure = ''
# The way $version propagates to $version of .pe-scripts (https://github.com/dejavu-fonts/dejavu-fonts/blob/358190f/scripts/generate.pe#L19)
export SOURCE_DATE_EPOCH=$(date -d ${version} +%s)
-
- export GIT="$(type -P true)"
- ./bootstrap --skip-git --force
'';
- doCheck = false; # tries to wget some fonts
- doInstallCheck = doCheck;
-
postInstall =
# get rid of the runtime dependency on python
lib.optionalString (!withPython) ''
rm -r "$out/share/fontforge/python"
'';
- enableParallelBuilding = true;
-
meta = {
description = "A font editor";
homepage = "http://fontforge.github.io";