summary refs log tree commit diff
path: root/pkgs/development/libraries
diff options
context:
space:
mode:
authorYury G. Kudryashov <urkud.urkud@gmail.com>2007-11-11 16:00:51 +0000
committerYury G. Kudryashov <urkud.urkud@gmail.com>2007-11-11 16:00:51 +0000
commit6203fa41f7a4914c8c4b1cb85c7858e0e6b67029 (patch)
treee750407c51da19007ecf356669069d370824de17 /pkgs/development/libraries
parent17b0f144f71549458898a6cf9d176d349318b7d5 (diff)
downloadnixpkgs-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.patch24
-rw-r--r--pkgs/development/libraries/poppler/datadir_env.patch56
-rw-r--r--pkgs/development/libraries/poppler/default.nix17
-rw-r--r--pkgs/development/libraries/poppler/use_exceptions.patch60
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: