summary refs log tree commit diff
path: root/pkgs/tools/misc/ttmkfdir
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/misc/ttmkfdir')
-rw-r--r--pkgs/tools/misc/ttmkfdir/cstring.patch78
-rw-r--r--pkgs/tools/misc/ttmkfdir/default.nix33
2 files changed, 111 insertions, 0 deletions
diff --git a/pkgs/tools/misc/ttmkfdir/cstring.patch b/pkgs/tools/misc/ttmkfdir/cstring.patch
new file mode 100644
index 00000000000..e1da347c64f
--- /dev/null
+++ b/pkgs/tools/misc/ttmkfdir/cstring.patch
@@ -0,0 +1,78 @@
+diff --git a/Makefile b/Makefile
+index e65b64c..52af5ed 100644
+--- a/Makefile
++++ b/Makefile
+@@ -41,8 +41,9 @@ all: ttmkfdir
+ .cpp.o:
+ 	libtool --mode=compile $(CXX) $(CXXFLAGS) -o $@ -c $^
+ 
++# ulgy hack for libtool to find .o files !!
+ ttmkfdir: ttmkfdir.o directory.o commandline.o ttf.o encoding.o parser.o builtin.o
+-	libtool --mode=link $(CXX) -o $@ $^ $(LDFLAGS)
++	libtool --mode=link $(CXX) -o $@ ./.libs/ttmkfdir.o ./.libs/directory.o ./.libs/commandline.o ./.libs/ttf.o ./.libs/encoding.o ./.libs/parser.o ./.libs/builtin.o $(LDFLAGS)
+ 
+ parser.cpp: encoding.l
+ 	    flex -i -8 -o$@ $<
+diff --git a/encoding.cpp b/encoding.cpp
+index 9035d35..b4e9733 100644
+--- a/encoding.cpp
++++ b/encoding.cpp
+@@ -2,7 +2,9 @@
+ #include <cstdio>
+ #include <cstdlib>
+ #include <cstring>
+-#include "freetype/freetype.h"
++#include <ft2build.h>
++#include FT_FREETYPE_H
++#include <freetype/ftsnames.h>
+ 
+ #include "ttmkfdir.h"
+ #include "encoding.h"
+diff --git a/encoding.h b/encoding.h
+index fc618bc..e01518f 100644
+--- a/encoding.h
++++ b/encoding.h
+@@ -6,7 +6,8 @@
+ #include <map>
+ #include <string>
+ 
+-#include "freetype/freetype.h"
++#include <ft2build.h>
++#include FT_FREETYPE_H
+ 
+ #include "util.h"
+ 
+diff --git a/ttf.cpp b/ttf.cpp
+index 1dda774..97b37f3 100644
+--- a/ttf.cpp
++++ b/ttf.cpp
+@@ -239,7 +239,7 @@ Face::FontFamilyName (void) const
+ 	for (i = 0; i < n; i++) {
+ 	    if ((fterror = FT_Get_Sfnt_Name (face, i, &NamePtr)) != FT_Err_Ok) {
+                     std::cout << "Warning: Can't SFNT name : " << FileName << "(" << fterror << ")" << std::endl;
+-	            return;
++	            return 0;
+             };
+             platform = NamePtr.platform_id;
+             encoding = NamePtr.encoding_id;
+diff --git a/ttf.h b/ttf.h
+index 4261ef8..c4a0f1f 100644
+--- a/ttf.h
++++ b/ttf.h
+@@ -3,13 +3,14 @@
+ #define TTF_H__
+ 
+ #include <string>
++#include <ft2build.h>
++#include FT_FREETYPE_H
+ #include "freetype/freetype.h"
+ #include "freetype/tttables.h"
+ #include "freetype/ftsnames.h"
+ #include "freetype/ttnameid.h"
+ #include "freetype/fterrors.h"
+-#include "freetype/ftmodule.h"
+-
++#include "freetype/ftmodapi.h"
+ #include "util.h"
+ #include "encoding.h"
+ 
diff --git a/pkgs/tools/misc/ttmkfdir/default.nix b/pkgs/tools/misc/ttmkfdir/default.nix
new file mode 100644
index 00000000000..77bc9f172c6
--- /dev/null
+++ b/pkgs/tools/misc/ttmkfdir/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchurl, freetype, fontconfig, libunwind, libtool, flex, bison }:
+
+stdenv.mkDerivation {
+  pname = "ttf-mkfontdir";
+  version = "3.0.9-6";
+
+  src = fetchurl {
+    url = "http://mirror.fsf.org/trisquel/pool/main/t/ttmkfdir/ttmkfdir_3.0.9.orig.tar.gz";
+    sha256 = "0n6bmmndmp4c1myisvv7cby559gzgvwsw4rfw065a3f92m87jxiq";
+  };
+
+  # all the patches up from ttmkfdir-3.0.9/Makefile should be reviewed by someone
+  # who knows more about C/C++ ..
+  patches =
+    [ (fetchurl {
+        url = "http://mirror.fsf.org/trisquel/pool/main/t/ttmkfdir/ttmkfdir_3.0.9-6.diff.gz";
+        sha256 = "141kxaf2by8nf87hqyszaxi0n7nnmswr1nh2i5r5bsvxxmaj9633";
+      })
+
+      ./cstring.patch # also fixes some other compilation issues (freetype includes)
+    ];
+
+  preInstall = ''
+    mkdir -p $out; makeFlags="DESTDIR=$out BINDIR=/bin"
+  '';
+
+  buildInputs = [freetype fontconfig libunwind libtool flex bison];
+
+  meta = {
+    description = "Create fonts.dir for TTF font directory";
+    platforms = lib.platforms.linux;
+  };
+}