summary refs log tree commit diff
path: root/pkgs/development/libraries/freetype
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2013-06-25 18:42:56 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2013-06-25 18:42:56 +0200
commit552fd3d599851336aa21ef073d1f7836566e454f (patch)
treeb2ebdeaa32426d12e21020410a0eb1a12881f8f6 /pkgs/development/libraries/freetype
parentcc61d31902d67b94333f53a5ab5772330bbc21cc (diff)
parent9dc35999602bc3bf2d7358a9ff79b9530e8d1975 (diff)
downloadnixpkgs-552fd3d599851336aa21ef073d1f7836566e454f.tar
nixpkgs-552fd3d599851336aa21ef073d1f7836566e454f.tar.gz
nixpkgs-552fd3d599851336aa21ef073d1f7836566e454f.tar.bz2
nixpkgs-552fd3d599851336aa21ef073d1f7836566e454f.tar.lz
nixpkgs-552fd3d599851336aa21ef073d1f7836566e454f.tar.xz
nixpkgs-552fd3d599851336aa21ef073d1f7836566e454f.tar.zst
nixpkgs-552fd3d599851336aa21ef073d1f7836566e454f.zip
Merge remote-tracking branch 'origin/master' into multiple-outputs
Conflicts:
	pkgs/development/libraries/atk/default.nix
	pkgs/development/libraries/cairo/default.nix
	pkgs/development/libraries/freetype/default.nix
	pkgs/development/libraries/glib/default.nix
	pkgs/development/libraries/gmime/default.nix
	pkgs/development/libraries/pango/default.nix
	pkgs/servers/x11/xorg/default.nix
	pkgs/top-level/all-packages.nix
Diffstat (limited to 'pkgs/development/libraries/freetype')
-rw-r--r--pkgs/development/libraries/freetype/default.nix48
-rw-r--r--pkgs/development/libraries/freetype/enable-validation.patch22
2 files changed, 63 insertions, 7 deletions
diff --git a/pkgs/development/libraries/freetype/default.nix b/pkgs/development/libraries/freetype/default.nix
index 4c695ab3345..b2e39e41a0b 100644
--- a/pkgs/development/libraries/freetype/default.nix
+++ b/pkgs/development/libraries/freetype/default.nix
@@ -1,24 +1,52 @@
 { stdenv, fetchurl, gnumake
-, # FreeType supports sub-pixel rendering.  This is patented by
+  # FreeType supports sub-pixel rendering.  This is patented by
   # Microsoft, so it is disabled by default.  This option allows it to
   # be enabled.  See http://www.freetype.org/patents.html.
-  useEncumberedCode ? false
+, useEncumberedCode ? false
+, useInfinality ? true
 }:
 
+assert !(useEncumberedCode && useInfinality); # probably wouldn't make sense
+
+let
+
+  version = "2.4.11";
+
+  infinality = rec {
+    inherit useInfinality;
+    vers = "20130104";
+    subvers = "04";
+    sha256 = "0dqglig34lfcw0w6sm6vmich0pcvq303vyh8jzqapvxgvrpr2156";
+
+    base_URL = "http://www.infinality.net/fedora/linux/zips";
+    url = "${base_URL}/freetype-infinality-${version}-${vers}_${subvers}-x86_64.tar.bz2";
+  };
+
+in
+
 stdenv.mkDerivation rec {
-  name = "freetype-2.4.10";
+  name = "freetype-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/freetype/${name}.tar.bz2";
-    sha256 = "0bwrkqpygayfc1rf6rr1nb8l3svgn1fmjz8davg2hnf46cn293hc";
+    sha256 = "0gxyzxqpyf8g85y6g1zc1wqrh71prbbk8xfw4m8rwzb4ck5hp7gg";
   };
 
   outputs = [ "dev" "out" ];
 
   configureFlags = "--disable-static --bindir=$(dev)/bin";
 
-  NIX_CFLAGS_COMPILE = stdenv.lib.optionalString useEncumberedCode
-    "-DFT_CONFIG_OPTION_SUBPIXEL_RENDERING=1";
+  infinality_patch = if useInfinality
+    then fetchurl { inherit (infinality) url sha256; }
+    else null;
+
+  NIX_CFLAGS_COMPILE = with stdenv.lib;
+    " -fno-strict-aliasing" # from Gentoo, see https://bugzilla.redhat.com/show_bug.cgi?id=506840
+    + optionalString useEncumberedCode " -DFT_CONFIG_OPTION_SUBPIXEL_RENDERING=1"
+    + optionalString useInfinality " -DTT_CONFIG_OPTION_SUBPIXEL_HINTING=1";
+
+  patches = [ ./enable-validation.patch ] # from Gentoo
+    ++ stdenv.lib.optional useInfinality [ infinality_patch ];
 
   # The asm for armel is written with the 'asm' keyword.
   CFLAGS = stdenv.lib.optionalString stdenv.isArm "-std=gnu99";
@@ -28,6 +56,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  doCheck = true;
+
   postInstall =
     ''
       mkdir $dev/lib
@@ -42,9 +72,13 @@ stdenv.mkDerivation rec {
     configureFlags = "--disable-static CC_BUILD=gcc";
   };
 
+  passthru = { inherit infinality; }; # for fontconfig
+
   meta = {
     description = "A font rendering engine";
     homepage = http://www.freetype.org/;
-    license = "GPLv2+"; # or the FreeType License (BSD + advertising clause)
+    license = if useEncumberedCode then "unfree"
+      else "GPLv2+"; # or the FreeType License (BSD + advertising clause)
+    platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/freetype/enable-validation.patch b/pkgs/development/libraries/freetype/enable-validation.patch
new file mode 100644
index 00000000000..44f3bf6e1c9
--- /dev/null
+++ b/pkgs/development/libraries/freetype/enable-validation.patch
@@ -0,0 +1,22 @@
+Enables gxvalid and otvalid modules for use with ftvalid.
+
+--- freetype-2.2.1/modules.cfg.orig	2006-07-07 21:01:09.000000000 -0400
++++ freetype-2.2.1/modules.cfg	2006-07-07 21:01:54.000000000 -0400
+@@ -110,7 +110,7 @@
+ AUX_MODULES += cache
+ 
+ # TrueType GX/AAT table validation.  Needs ftgxval.c below.
+-# AUX_MODULES += gxvalid
++AUX_MODULES += gxvalid
+ 
+ # Support for streams compressed with gzip (files with suffix .gz).
+ #
+@@ -124,7 +124,7 @@
+ 
+ # OpenType table validation.  Needs ftotval.c below.
+ #
+-# AUX_MODULES += otvalid
++AUX_MODULES += otvalid
+ 
+ # Auxiliary PostScript driver component to share common code.
+ #