diff options
author | Yury G. Kudryashov <urkud.urkud@gmail.com> | 2007-11-11 16:00:51 +0000 |
---|---|---|
committer | Yury G. Kudryashov <urkud.urkud@gmail.com> | 2007-11-11 16:00:51 +0000 |
commit | 6203fa41f7a4914c8c4b1cb85c7858e0e6b67029 (patch) | |
tree | e750407c51da19007ecf356669069d370824de17 /pkgs/development/libraries | |
parent | 17b0f144f71549458898a6cf9d176d349318b7d5 (diff) | |
download | nixpkgs-6203fa41f7a4914c8c4b1cb85c7858e0e6b67029.tar nixpkgs-6203fa41f7a4914c8c4b1cb85c7858e0e6b67029.tar.gz nixpkgs-6203fa41f7a4914c8c4b1cb85c7858e0e6b67029.tar.bz2 nixpkgs-6203fa41f7a4914c8c4b1cb85c7858e0e6b67029.tar.lz nixpkgs-6203fa41f7a4914c8c4b1cb85c7858e0e6b67029.tar.xz nixpkgs-6203fa41f7a4914c8c4b1cb85c7858e0e6b67029.tar.zst nixpkgs-6203fa41f7a4914c8c4b1cb85c7858e0e6b67029.zip |
Added poppler and poppler-data
svn path=/nixpkgs/trunk/; revision=9633
Diffstat (limited to 'pkgs/development/libraries')
-rw-r--r-- | pkgs/development/libraries/poppler/GDir-const.patch | 24 | ||||
-rw-r--r-- | pkgs/development/libraries/poppler/datadir_env.patch | 56 | ||||
-rw-r--r-- | pkgs/development/libraries/poppler/default.nix | 17 | ||||
-rw-r--r-- | pkgs/development/libraries/poppler/use_exceptions.patch | 60 |
4 files changed, 157 insertions, 0 deletions
diff --git a/pkgs/development/libraries/poppler/GDir-const.patch b/pkgs/development/libraries/poppler/GDir-const.patch new file mode 100644 index 00000000000..0af8e054dd7 --- /dev/null +++ b/pkgs/development/libraries/poppler/GDir-const.patch @@ -0,0 +1,24 @@ +diff -ur poppler-0.6.1/goo/gfile.cc poppler-0.6.1-patched/goo/gfile.cc +--- poppler-0.6.1/goo/gfile.cc 2007-09-17 20:37:39.000000000 +0200 ++++ poppler-0.6.1-patched/goo/gfile.cc 2007-11-06 12:07:50.325498138 +0100 +@@ -634,7 +634,7 @@ + delete name; + } + +-GDir::GDir(char *name, GBool doStatA) { ++GDir::GDir(const char *name, GBool doStatA) { + path = new GooString(name); + doStat = doStatA; + #if defined(WIN32) +diff -ur poppler-0.6.1/goo/gfile.h poppler-0.6.1-patched/goo/gfile.h +--- poppler-0.6.1/goo/gfile.h 2007-09-17 20:37:39.000000000 +0200 ++++ poppler-0.6.1-patched/goo/gfile.h 2007-11-06 12:07:39.212878631 +0100 +@@ -117,7 +117,7 @@ + class GDir { + public: + +- GDir(char *name, GBool doStatA = gTrue); ++ GDir(const char *name, GBool doStatA = gTrue); + ~GDir(); + GDirEntry *getNextEntry(); + void rewind(); diff --git a/pkgs/development/libraries/poppler/datadir_env.patch b/pkgs/development/libraries/poppler/datadir_env.patch new file mode 100644 index 00000000000..dfe024a5b23 --- /dev/null +++ b/pkgs/development/libraries/poppler/datadir_env.patch @@ -0,0 +1,56 @@ +diff -ur poppler-0.6.1/poppler/GlobalParams.cc poppler-0.6.1-patched/poppler/GlobalParams.cc +--- poppler-0.6.1/poppler/GlobalParams.cc 2007-09-17 20:37:58.000000000 +0200 ++++ poppler-0.6.1-patched/poppler/GlobalParams.cc 2007-11-06 16:11:55.995595933 +0100 +@@ -654,27 +654,39 @@ + GDir *dir; + GDirEntry *entry; + +- dir = new GDir(POPPLER_DATADIR "/nameToUnicode", gFalse); ++ GooString *real_datadir = new GooString (getenv("POPPLER_DATADIR")); ++ if (!real_datadir->getCString()) ++ real_datadir->Set(POPPLER_DATADIR); ++ GooString *dirname; ++ ++ dirname = real_datadir->copy(); ++ dir = new GDir(dirname->append("/nameToUnicode")->getCString(), gFalse); + while (entry = dir->getNextEntry(), entry != NULL) { + parseNameToUnicode(entry->getFullPath()); + delete entry; + } + delete dir; ++ delete dirname; + +- dir = new GDir(POPPLER_DATADIR "/cidToUnicode", gFalse); ++ dirname = real_datadir->copy(); ++ dir = new GDir(dirname->append("/cidToUnicode")->getCString(), gFalse); + while (entry = dir->getNextEntry(), entry != NULL) { + addCIDToUnicode(entry->getName(), entry->getFullPath()); + delete entry; + } + delete dir; ++ delete dirname; + +- dir = new GDir(POPPLER_DATADIR "/unicodeMap", gFalse); ++ dirname = real_datadir->copy(); ++ dir = new GDir(dirname->append("/unicodeMap")->getCString(), gFalse); + while (entry = dir->getNextEntry(), entry != NULL) { + addUnicodeMap(entry->getName(), entry->getFullPath()); + delete entry; + } + delete dir; ++ delete dirname; + ++ dirname = real_datadir->copy(); + dir = new GDir(POPPLER_DATADIR "/cMap", gFalse); + while (entry = dir->getNextEntry(), entry != NULL) { + addCMapDir(entry->getName(), entry->getFullPath()); +@@ -682,6 +694,9 @@ + delete entry; + } + delete dir; ++ delete dirname; ++ ++ delete real_datadir; + } + + void GlobalParams::parseNameToUnicode(GooString *name) { diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix new file mode 100644 index 00000000000..1230a936c87 --- /dev/null +++ b/pkgs/development/libraries/poppler/default.nix @@ -0,0 +1,17 @@ +args: with args; +stdenv.mkDerivation { + name = "poppler-0.6.1"; + src = fetchurl { + url = http://poppler.freedesktop.org/poppler-0.6.1.tar.gz; + sha256 = "1wiz7m36wr4l0ihnawl7ww2ai0cx81ly5ych9wmyh348py4jgyyl"; + }; + + propagatedBuildInputs = [qt4 zlib glib cairo freetype fontconfig libjpeg gtk]; + + configureFlags = "--enable-shared --disable-static --enable-exceptions + --enable-cairo --enable-splash --enable-poppler-glib --enable-zlib"; + + patches = [ ./GDir-const.patch ./datadir_env.patch ./use_exceptions.patch ]; + + preConfigure = "sed -e '/jpeg_incdirs/s@/usr@${libjpeg}@' -i configure"; +} diff --git a/pkgs/development/libraries/poppler/use_exceptions.patch b/pkgs/development/libraries/poppler/use_exceptions.patch new file mode 100644 index 00000000000..4880da8e2e4 --- /dev/null +++ b/pkgs/development/libraries/poppler/use_exceptions.patch @@ -0,0 +1,60 @@ +diff -ur poppler-0.6.1/goo/gmem.cc poppler-0.6.1-patched/goo/gmem.cc +--- poppler-0.6.1/goo/gmem.cc 2007-10-12 13:34:49.000000000 +0200 ++++ poppler-0.6.1-patched/goo/gmem.cc 2007-11-06 16:17:41.290632269 +0100 +@@ -60,7 +60,7 @@ + } + size1 = gMemDataSize(size); + if (!(mem = (char *)malloc(size1 + gMemHdrSize + gMemTrlSize))) { +-#if USE_EXCEPTIONS ++#ifdef USE_EXCEPTIONS + throw GMemException(); + #else + fprintf(stderr, "Out of memory\n"); +@@ -95,7 +95,7 @@ + return NULL; + } + if (!(p = malloc(size))) { +-#if USE_EXCEPTIONS ++#ifdef USE_EXCEPTIONS + throw GMemException(); + #else + fprintf(stderr, "Out of memory\n"); +@@ -143,7 +143,7 @@ + q = malloc(size); + } + if (!q) { +-#if USE_EXCEPTIONS ++#ifdef USE_EXCEPTIONS + throw GMemException(); + #else + fprintf(stderr, "Out of memory\n"); +@@ -162,7 +162,7 @@ + } + n = nObjs * objSize; + if (objSize <= 0 || nObjs < 0 || nObjs >= INT_MAX / objSize) { +-#if USE_EXCEPTIONS ++#ifdef USE_EXCEPTIONS + throw GMemException(); + #else + fprintf(stderr, "Bogus memory allocation size\n"); +@@ -183,7 +183,7 @@ + } + n = nObjs * objSize; + if (objSize <= 0 || nObjs < 0 || nObjs >= INT_MAX / objSize) { +-#if USE_EXCEPTIONS ++#ifdef USE_EXCEPTIONS + throw GMemException(); + #else + fprintf(stderr, "Bogus memory allocation size\n"); +diff -ur poppler-0.6.1/goo/gmem.h poppler-0.6.1-patched/goo/gmem.h +--- poppler-0.6.1/goo/gmem.h 2007-09-17 20:37:39.000000000 +0200 ++++ poppler-0.6.1-patched/goo/gmem.h 2007-11-06 16:17:46.606925527 +0100 +@@ -12,7 +12,7 @@ + #include <stdio.h> + #include <poppler/poppler-config.h> + +-#if USE_EXCEPTIONS ++#ifdef USE_EXCEPTIONS + + class GMemException { + public: |