summaryrefslogtreecommitdiff
path: root/staging
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-05-15 00:02:45 +0000
committerroot <root@rshg054.dnsready.net>2012-05-15 00:02:45 +0000
commit52a4948b9138662b1e7b23b04ef0d72101519f2d (patch)
tree701b562dc98245a57c6a93f3c2f94e3b1832f0eb /staging
parentd3af8dc0117dc1ce4fea3d05c7a2d7786bd78986 (diff)
Tue May 15 00:02:45 UTC 2012
Diffstat (limited to 'staging')
-rw-r--r--staging/cups-filters/PKGBUILD42
-rw-r--r--staging/inkscape/PKGBUILD59
-rw-r--r--staging/inkscape/install13
-rw-r--r--staging/inkscape/libpng15.patch40
-rw-r--r--staging/inkscape/poppler20.patch642
-rw-r--r--staging/kdegraphics-okular/PKGBUILD34
-rw-r--r--staging/kdegraphics-okular/kdegraphics-okular.install12
-rw-r--r--staging/poppler/PKGBUILD80
-rw-r--r--staging/xpdf/PKGBUILD64
-rw-r--r--staging/xpdf/char.patch12
-rw-r--r--staging/xpdf/desktop9
-rw-r--r--staging/xpdf/install11
12 files changed, 1018 insertions, 0 deletions
diff --git a/staging/cups-filters/PKGBUILD b/staging/cups-filters/PKGBUILD
new file mode 100644
index 000000000..62cbe9a91
--- /dev/null
+++ b/staging/cups-filters/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 158958 2012-05-13 16:11:10Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=cups-filters
+pkgver=1.0.17
+pkgrel=2
+pkgdesc="OpenPrinting CUPS Filters"
+arch=('i686' 'x86_64')
+url="http://www.linuxfoundation.org/collaborate/workgroups/openprinting"
+license=('GPL')
+groups=()
+depends=('ghostscript' 'lcms2' 'poppler') # bc ? https://bugs.archlinux.org/task/29808
+makedepends=()
+optdepends=()
+provides=()
+conflicts=()
+replaces=()
+backup=()
+#options=(!makeflags)
+install=
+source=(http://www.openprinting.org/download/cups-filters/$pkgname-$pkgver.tar.gz)
+md5sums=('5132b018cc503e9338fbd029acf56e55')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc
+ make
+}
+
+#check() {
+# cd "$srcdir/$pkgname-$pkgver"
+# make -k check
+#}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ #make DESTDIR="$pkgdir/" install
+ make install BUILDROOT="$pkgdir/"
+ # drop static lib
+ rm -f ${pkgdir}/usr/lib/*.a
+}
diff --git a/staging/inkscape/PKGBUILD b/staging/inkscape/PKGBUILD
new file mode 100644
index 000000000..fbecbdc23
--- /dev/null
+++ b/staging/inkscape/PKGBUILD
@@ -0,0 +1,59 @@
+# $Id: PKGBUILD 158964 2012-05-13 20:05:21Z bisson $
+# Contributor: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=inkscape
+pkgver=0.48.3.1
+pkgrel=3
+pkgdesc='Vector graphics editor using the SVG file format'
+url='http://inkscape.sourceforge.net/'
+license=('GPL' 'LGPL')
+arch=('i686' 'x86_64')
+makedepends=('boost' 'intltool')
+depends=('gc' 'gsl' 'gtkmm' 'gtkspell' 'imagemagick' 'libxslt' 'poppler-glib' 'popt'
+ 'python2' 'desktop-file-utils' 'hicolor-icon-theme')
+optdepends=('pstoedit: latex formulas'
+ 'texlive-core: latex formulas'
+ 'python2-numpy: some extensions'
+ 'python2-lxml: some extensions and filters'
+ 'pyxml: some extensions'
+ 'uniconvertor: reading/writing to some proprietary formats')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz"
+ 'poppler20.patch'
+ 'libpng15.patch')
+sha1sums=('9a09a97d184e09c2ee7f9956bfe073b7313e919e'
+ '7316c2903c157781838cce289a709d100dc40fec'
+ 'd6512f3cb38ca8e2436dc485aa652490d17b3a52')
+
+install=install
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i 's|/usr/bin/python\>|/usr/bin/python2|g' cxxtest/*.py
+ sed -i 's|/usr/bin/env python\>|/usr/bin/env python2|g' share/*/{test/,}*.py
+ sed -i 's|"python" },|"python2" },|g' src/extension/implementation/script.cpp
+ sed -i 's|python -c|python2 -c|g' configure share/extensions/uniconv*.py
+ sed -i 's|"python"|"python2"|g' src/main.cpp
+
+ patch -p1 -i ../poppler20.patch
+ patch -p1 -i ../libpng15.patch
+
+ ./configure \
+ --prefix=/usr \
+ --with-python \
+ --with-perl \
+ --enable-lcms \
+ --enable-poppler-cairo \
+ --disable-dependency-tracking \
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/inkscape/install b/staging/inkscape/install
new file mode 100644
index 000000000..6e803bf1d
--- /dev/null
+++ b/staging/inkscape/install
@@ -0,0 +1,13 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+
+post_remove() {
+ post_install
+}
diff --git a/staging/inkscape/libpng15.patch b/staging/inkscape/libpng15.patch
new file mode 100644
index 000000000..e24913ed6
--- /dev/null
+++ b/staging/inkscape/libpng15.patch
@@ -0,0 +1,40 @@
+--- inkscape-0.48.1/src/extension/internal/pdfinput/svg-builder.cpp
++++ inkscape-0.48.1-mod//src/extension/internal/pdfinput/svg-builder.cpp
+@@ -1443,7 +1443,7 @@
+ return NULL;
+ }
+ // Set error handler
+- if (setjmp(png_ptr->jmpbuf)) {
++ if (setjmp(png_jmpbuf(png_ptr))) {
+ png_destroy_write_struct(&png_ptr, &info_ptr);
+ return NULL;
+ }
+--- inkscape-0.48.1/src/helper/png-write.cpp
++++ inkscape-0.48.1-mod//src/helper/png-write.cpp
+@@ -165,7 +165,7 @@
+ /* Set error handling. REQUIRED if you aren't supplying your own
+ * error hadnling functions in the png_create_write_struct() call.
+ */
+- if (setjmp(png_ptr->jmpbuf)) {
++ if (setjmp(png_jmpbuf(png_ptr))) {
+ /* If we get here, we had a problem reading the file */
+ fclose(fp);
+ png_destroy_write_struct(&png_ptr, &info_ptr);
+--- inkscape-0.48.1/src/sp-image.cpp
++++ inkscape-0.48.1-mod//src/sp-image.cpp
+@@ -386,9 +386,13 @@
+
+ #if defined(PNG_iCCP_SUPPORTED)
+ {
+- char* name = 0;
++ png_charp name = 0;
+ int compression_type = 0;
+- char* profile = 0;
++#if (PNG_LIBPNG_VER < 10500)
++ png_charp profile = 0;
++#else
++ png_bytep profile = 0;
++#endif
+ png_uint_32 proflen = 0;
+ if ( png_get_iCCP(pngPtr, infoPtr, &name, &compression_type, &profile, &proflen) ) {
+ // g_message("Found an iCCP chunk named [%s] with %d bytes and comp %d", name, proflen, compression_type);
diff --git a/staging/inkscape/poppler20.patch b/staging/inkscape/poppler20.patch
new file mode 100644
index 000000000..ecb74603f
--- /dev/null
+++ b/staging/inkscape/poppler20.patch
@@ -0,0 +1,642 @@
+diff -Naur old/src/extension/internal/pdfinput/pdf-parser.cpp new/src/extension/internal/pdfinput/pdf-parser.cpp
+--- old/src/extension/internal/pdfinput/pdf-parser.cpp 2011-07-08 20:25:09.468790000 +0200
++++ new/src/extension/internal/pdfinput/pdf-parser.cpp 2012-05-13 21:07:11.334781215 +0200
+@@ -367,14 +367,14 @@
+ for (i = 0; i < obj->arrayGetLength(); ++i) {
+ obj->arrayGet(i, &obj2);
+ if (!obj2.isStream()) {
+- error(-1, const_cast<char*>("Weird page contents"));
++ error(errInternal, -1, const_cast<char*>("Weird page contents"));
+ obj2.free();
+ return;
+ }
+ obj2.free();
+ }
+ } else if (!obj->isStream()) {
+- error(-1, const_cast<char*>("Weird page contents"));
++ error(errInternal, -1, const_cast<char*>("Weird page contents"));
+ return;
+ }
+ parser = new Parser(xref, new Lexer(xref, obj), gFalse);
+@@ -419,7 +419,7 @@
+
+ // too many arguments - something is wrong
+ } else {
+- error(getPos(), const_cast<char*>("Too many args in content stream"));
++ error(errInternal, getPos(), const_cast<char*>("Too many args in content stream"));
+ if (printCommands) {
+ printf("throwing away arg: ");
+ obj.print(stdout);
+@@ -436,7 +436,7 @@
+
+ // args at end with no command
+ if (numArgs > 0) {
+- error(getPos(), const_cast<char*>("Leftover args in content stream"));
++ error(errInternal, getPos(), const_cast<char*>("Leftover args in content stream"));
+ if (printCommands) {
+ printf("%d leftovers:", numArgs);
+ for (i = 0; i < numArgs; ++i) {
+@@ -502,7 +502,7 @@
+ name = cmd->getCmd();
+ if (!(op = findOp(name))) {
+ if (ignoreUndef == 0)
+- error(getPos(), const_cast<char*>("Unknown operator '%s'"), name);
++ error(errInternal, getPos(), const_cast<char*>("Unknown operator '%s'"), name);
+ return;
+ }
+
+@@ -510,26 +510,26 @@
+ argPtr = args;
+ if (op->numArgs >= 0) {
+ if (numArgs < op->numArgs) {
+- error(getPos(), const_cast<char*>("Too few (%d) args to '%s' operator"), numArgs, name);
++ error(errInternal, getPos(), const_cast<char*>("Too few (%d) args to '%s' operator"), numArgs, name);
+ return;
+ }
+ if (numArgs > op->numArgs) {
+ #if 0
+- error(getPos(), "Too many (%d) args to '%s' operator", numArgs, name);
++ error(errInternal, getPos(), "Too many (%d) args to '%s' operator", numArgs, name);
+ #endif
+ argPtr += numArgs - op->numArgs;
+ numArgs = op->numArgs;
+ }
+ } else {
+ if (numArgs > -op->numArgs) {
+- error(getPos(), const_cast<char*>("Too many (%d) args to '%s' operator"),
++ error(errInternal, getPos(), const_cast<char*>("Too many (%d) args to '%s' operator"),
+ numArgs, name);
+ return;
+ }
+ }
+ for (i = 0; i < numArgs; ++i) {
+ if (!checkArg(&argPtr[i], op->tchk[i])) {
+- error(getPos(), const_cast<char*>("Arg #%d to '%s' operator is wrong type (%s)"),
++ error(errInternal, getPos(), const_cast<char*>("Arg #%d to '%s' operator is wrong type (%s)"),
+ i, name, argPtr[i].getTypeName());
+ return;
+ }
+@@ -690,7 +690,7 @@
+ return;
+ }
+ if (!obj1.isDict()) {
+- error(getPos(), const_cast<char*>("ExtGState '%s' is wrong type"), args[0].getName());
++ error(errInternal, getPos(), const_cast<char*>("ExtGState '%s' is wrong type"), args[0].getName());
+ obj1.free();
+ return;
+ }
+@@ -705,7 +705,7 @@
+ if (state->parseBlendMode(&obj2, &mode)) {
+ state->setBlendMode(mode);
+ } else {
+- error(getPos(), const_cast<char*>("Invalid blend mode in ExtGState"));
++ error(errInternal, getPos(), const_cast<char*>("Invalid blend mode in ExtGState"));
+ }
+ }
+ obj2.free();
+@@ -764,7 +764,7 @@
+ state->setTransfer(funcs);
+ }
+ } else if (!obj2.isNull()) {
+- error(getPos(), const_cast<char*>("Invalid transfer function in ExtGState"));
++ error(errInternal, getPos(), const_cast<char*>("Invalid transfer function in ExtGState"));
+ }
+ obj2.free();
+
+@@ -784,7 +784,7 @@
+ funcs[0] = Function::parse(&obj3);
+ if (funcs[0]->getInputSize() != 1 ||
+ funcs[0]->getOutputSize() != 1) {
+- error(getPos(),
++ error(errInternal, getPos(),
+ const_cast<char*>("Invalid transfer function in soft mask in ExtGState"));
+ delete funcs[0];
+ funcs[0] = NULL;
+@@ -809,11 +809,7 @@
+ blendingColorSpace = NULL;
+ isolated = knockout = gFalse;
+ if (!obj4.dictLookup(const_cast<char*>("CS"), &obj5)->isNull()) {
+-#ifdef POPPLER_NEW_COLOR_SPACE_API
+ blendingColorSpace = GfxColorSpace::parse(&obj5, NULL);
+-#else
+- blendingColorSpace = GfxColorSpace::parse(&obj5);
+-#endif
+ }
+ obj5.free();
+ if (obj4.dictLookup(const_cast<char*>("I"), &obj5)->isBool()) {
+@@ -840,15 +836,15 @@
+ delete funcs[0];
+ }
+ } else {
+- error(getPos(), const_cast<char*>("Invalid soft mask in ExtGState - missing group"));
++ error(errInternal, getPos(), const_cast<char*>("Invalid soft mask in ExtGState - missing group"));
+ }
+ obj4.free();
+ } else {
+- error(getPos(), const_cast<char*>("Invalid soft mask in ExtGState - missing group"));
++ error(errInternal, getPos(), const_cast<char*>("Invalid soft mask in ExtGState - missing group"));
+ }
+ obj3.free();
+ } else if (!obj2.isNull()) {
+- error(getPos(), const_cast<char*>("Invalid soft mask in ExtGState"));
++ error(errInternal, getPos(), const_cast<char*>("Invalid soft mask in ExtGState"));
+ }
+ }
+ obj2.free();
+@@ -876,7 +872,7 @@
+ // check form type
+ dict->lookup(const_cast<char*>("FormType"), &obj1);
+ if (!(obj1.isNull() || (obj1.isInt() && obj1.getInt() == 1))) {
+- error(getPos(), const_cast<char*>("Unknown form type"));
++ error(errInternal, getPos(), const_cast<char*>("Unknown form type"));
+ }
+ obj1.free();
+
+@@ -884,7 +880,7 @@
+ dict->lookup(const_cast<char*>("BBox"), &obj1);
+ if (!obj1.isArray()) {
+ obj1.free();
+- error(getPos(), const_cast<char*>("Bad form bounding box"));
++ error(errInternal, getPos(), const_cast<char*>("Bad form bounding box"));
+ return;
+ }
+ for (i = 0; i < 4; ++i) {
+@@ -1012,19 +1008,11 @@
+
+ state->setFillPattern(NULL);
+ res->lookupColorSpace(args[0].getName(), &obj);
+-#ifdef POPPLER_NEW_COLOR_SPACE_API
+ if (obj.isNull()) {
+ colorSpace = GfxColorSpace::parse(&args[0], NULL);
+ } else {
+ colorSpace = GfxColorSpace::parse(&obj, NULL);
+ }
+-#else
+- if (obj.isNull()) {
+- colorSpace = GfxColorSpace::parse(&args[0]);
+- } else {
+- colorSpace = GfxColorSpace::parse(&obj);
+- }
+-#endif
+ obj.free();
+ if (colorSpace) {
+ state->setFillColorSpace(colorSpace);
+@@ -1032,7 +1020,7 @@
+ state->setFillColor(&color);
+ builder->updateStyle(state);
+ } else {
+- error(getPos(), const_cast<char*>("Bad color space (fill)"));
++ error(errInternal, getPos(), const_cast<char*>("Bad color space (fill)"));
+ }
+ }
+
+@@ -1043,19 +1031,11 @@
+
+ state->setStrokePattern(NULL);
+ res->lookupColorSpace(args[0].getName(), &obj);
+-#ifdef POPPLER_NEW_COLOR_SPACE_API
+ if (obj.isNull()) {
+ colorSpace = GfxColorSpace::parse(&args[0], NULL);
+ } else {
+ colorSpace = GfxColorSpace::parse(&obj, NULL);
+ }
+-#else
+- if (obj.isNull()) {
+- colorSpace = GfxColorSpace::parse(&args[0]);
+- } else {
+- colorSpace = GfxColorSpace::parse(&obj);
+- }
+-#endif
+ obj.free();
+ if (colorSpace) {
+ state->setStrokeColorSpace(colorSpace);
+@@ -1063,7 +1043,7 @@
+ state->setStrokeColor(&color);
+ builder->updateStyle(state);
+ } else {
+- error(getPos(), const_cast<char*>("Bad color space (stroke)"));
++ error(errInternal, getPos(), const_cast<char*>("Bad color space (stroke)"));
+ }
+ }
+
+@@ -1072,7 +1052,7 @@
+ int i;
+
+ if (numArgs != state->getFillColorSpace()->getNComps()) {
+- error(getPos(), const_cast<char*>("Incorrect number of arguments in 'sc' command"));
++ error(errInternal, getPos(), const_cast<char*>("Incorrect number of arguments in 'sc' command"));
+ return;
+ }
+ state->setFillPattern(NULL);
+@@ -1088,7 +1068,7 @@
+ int i;
+
+ if (numArgs != state->getStrokeColorSpace()->getNComps()) {
+- error(getPos(), const_cast<char*>("Incorrect number of arguments in 'SC' command"));
++ error(errInternal, getPos(), const_cast<char*>("Incorrect number of arguments in 'SC' command"));
+ return;
+ }
+ state->setStrokePattern(NULL);
+@@ -1109,7 +1089,7 @@
+ if (!((GfxPatternColorSpace *)state->getFillColorSpace())->getUnder() ||
+ numArgs - 1 != ((GfxPatternColorSpace *)state->getFillColorSpace())
+ ->getUnder()->getNComps()) {
+- error(getPos(), const_cast<char*>("Incorrect number of arguments in 'scn' command"));
++ error(errInternal, getPos(), const_cast<char*>("Incorrect number of arguments in 'scn' command"));
+ return;
+ }
+ for (i = 0; i < numArgs - 1 && i < gfxColorMaxComps; ++i) {
+@@ -1120,23 +1100,15 @@
+ state->setFillColor(&color);
+ builder->updateStyle(state);
+ }
+-#ifdef POPPLER_NEW_COLOR_SPACE_API
+ if (args[numArgs-1].isName() &&
+ (pattern = res->lookupPattern(args[numArgs-1].getName(), NULL))) {
+ state->setFillPattern(pattern);
+ builder->updateStyle(state);
+ }
+-#else
+- if (args[numArgs-1].isName() &&
+- (pattern = res->lookupPattern(args[numArgs-1].getName()))) {
+- state->setFillPattern(pattern);
+- builder->updateStyle(state);
+- }
+-#endif
+
+ } else {
+ if (numArgs != state->getFillColorSpace()->getNComps()) {
+- error(getPos(), const_cast<char*>("Incorrect number of arguments in 'scn' command"));
++ error(errInternal, getPos(), const_cast<char*>("Incorrect number of arguments in 'scn' command"));
+ return;
+ }
+ state->setFillPattern(NULL);
+@@ -1161,7 +1133,7 @@
+ ->getUnder() ||
+ numArgs - 1 != ((GfxPatternColorSpace *)state->getStrokeColorSpace())
+ ->getUnder()->getNComps()) {
+- error(getPos(), const_cast<char*>("Incorrect number of arguments in 'SCN' command"));
++ error(errInternal, getPos(), const_cast<char*>("Incorrect number of arguments in 'SCN' command"));
+ return;
+ }
+ for (i = 0; i < numArgs - 1 && i < gfxColorMaxComps; ++i) {
+@@ -1172,23 +1144,15 @@
+ state->setStrokeColor(&color);
+ builder->updateStyle(state);
+ }
+-#ifdef POPPLER_NEW_COLOR_SPACE_API
+ if (args[numArgs-1].isName() &&
+ (pattern = res->lookupPattern(args[numArgs-1].getName(), NULL))) {
+ state->setStrokePattern(pattern);
+ builder->updateStyle(state);
+ }
+-#else
+- if (args[numArgs-1].isName() &&
+- (pattern = res->lookupPattern(args[numArgs-1].getName()))) {
+- state->setStrokePattern(pattern);
+- builder->updateStyle(state);
+- }
+-#endif
+
+ } else {
+ if (numArgs != state->getStrokeColorSpace()->getNComps()) {
+- error(getPos(), const_cast<char*>("Incorrect number of arguments in 'SCN' command"));
++ error(errInternal, getPos(), const_cast<char*>("Incorrect number of arguments in 'SCN' command"));
+ return;
+ }
+ state->setStrokePattern(NULL);
+@@ -1212,7 +1176,7 @@
+
+ void PdfParser::opLineTo(Object args[], int numArgs) {
+ if (!state->isCurPt()) {
+- error(getPos(), const_cast<char*>("No current point in lineto"));
++ error(errInternal, getPos(), const_cast<char*>("No current point in lineto"));
+ return;
+ }
+ state->lineTo(args[0].getNum(), args[1].getNum());
+@@ -1222,7 +1186,7 @@
+ double x1, y1, x2, y2, x3, y3;
+
+ if (!state->isCurPt()) {
+- error(getPos(), const_cast<char*>("No current point in curveto"));
++ error(errInternal, getPos(), const_cast<char*>("No current point in curveto"));
+ return;
+ }
+ x1 = args[0].getNum();
+@@ -1238,7 +1202,7 @@
+ double x1, y1, x2, y2, x3, y3;
+
+ if (!state->isCurPt()) {
+- error(getPos(), const_cast<char*>("No current point in curveto1"));
++ error(errInternal, getPos(), const_cast<char*>("No current point in curveto1"));
+ return;
+ }
+ x1 = state->getCurX();
+@@ -1254,7 +1218,7 @@
+ double x1, y1, x2, y2, x3, y3;
+
+ if (!state->isCurPt()) {
+- error(getPos(), const_cast<char*>("No current point in curveto2"));
++ error(errInternal, getPos(), const_cast<char*>("No current point in curveto2"));
+ return;
+ }
+ x1 = args[0].getNum();
+@@ -1282,7 +1246,7 @@
+
+ void PdfParser::opClosePath(Object args[], int numArgs) {
+ if (!state->isCurPt()) {
+- error(getPos(), const_cast<char*>("No current point in closepath"));
++ error(errInternal, getPos(), const_cast<char*>("No current point in closepath"));
+ return;
+ }
+ state->closePath();
+@@ -1298,7 +1262,7 @@
+
+ void PdfParser::opStroke(Object args[], int numArgs) {
+ if (!state->isCurPt()) {
+- //error(getPos(), const_cast<char*>("No path in stroke"));
++ //error(errInternal, getPos(), const_cast<char*>("No path in stroke"));
+ return;
+ }
+ if (state->isPath()) {
+@@ -1314,7 +1278,7 @@
+
+ void PdfParser::opCloseStroke(Object * /*args[]*/, int /*numArgs*/) {
+ if (!state->isCurPt()) {
+- //error(getPos(), const_cast<char*>("No path in closepath/stroke"));
++ //error(errInternal, getPos(), const_cast<char*>("No path in closepath/stroke"));
+ return;
+ }
+ state->closePath();
+@@ -1331,7 +1295,7 @@
+
+ void PdfParser::opFill(Object args[], int numArgs) {
+ if (!state->isCurPt()) {
+- //error(getPos(), const_cast<char*>("No path in fill"));
++ //error(errInternal, getPos(), const_cast<char*>("No path in fill"));
+ return;
+ }
+ if (state->isPath()) {
+@@ -1347,7 +1311,7 @@
+
+ void PdfParser::opEOFill(Object args[], int numArgs) {
+ if (!state->isCurPt()) {
+- //error(getPos(), const_cast<char*>("No path in eofill"));
++ //error(errInternal, getPos(), const_cast<char*>("No path in eofill"));
+ return;
+ }
+ if (state->isPath()) {
+@@ -1363,7 +1327,7 @@
+
+ void PdfParser::opFillStroke(Object args[], int numArgs) {
+ if (!state->isCurPt()) {
+- //error(getPos(), const_cast<char*>("No path in fill/stroke"));
++ //error(errInternal, getPos(), const_cast<char*>("No path in fill/stroke"));
+ return;
+ }
+ if (state->isPath()) {
+@@ -1376,7 +1340,7 @@
+
+ void PdfParser::opCloseFillStroke(Object args[], int numArgs) {
+ if (!state->isCurPt()) {
+- //error(getPos(), const_cast<char*>("No path in closepath/fill/stroke"));
++ //error(errInternal, getPos(), const_cast<char*>("No path in closepath/fill/stroke"));
+ return;
+ }
+ if (state->isPath()) {
+@@ -1388,7 +1352,7 @@
+
+ void PdfParser::opEOFillStroke(Object args[], int numArgs) {
+ if (!state->isCurPt()) {
+- //error(getPos(), const_cast<char*>("No path in eofill/stroke"));
++ //error(errInternal, getPos(), const_cast<char*>("No path in eofill/stroke"));
+ return;
+ }
+ if (state->isPath()) {
+@@ -1399,7 +1363,7 @@
+
+ void PdfParser::opCloseEOFillStroke(Object args[], int numArgs) {
+ if (!state->isCurPt()) {
+- //error(getPos(), const_cast<char*>("No path in closepath/eofill/stroke"));
++ //error(errInternal, getPos(), const_cast<char*>("No path in closepath/eofill/stroke"));
+ return;
+ }
+ if (state->isPath()) {
+@@ -1440,7 +1404,7 @@
+ doShadingPatternFillFallback((GfxShadingPattern *)pattern, gFalse, eoFill);
+ break;
+ default:
+- error(getPos(), const_cast<char*>("Unimplemented pattern type (%d) in fill"),
++ error(errInternal, getPos(), const_cast<char*>("Unimplemented pattern type (%d) in fill"),
+ pattern->getType());
+ break;
+ }
+@@ -1459,7 +1423,7 @@
+ doShadingPatternFillFallback((GfxShadingPattern *)pattern, gTrue, gFalse);
+ break;
+ default:
+- error(getPos(), const_cast<char*>("Unimplemented pattern type (%d) in stroke"),
++ error(errInternal, getPos(), const_cast<char*>("Unimplemented pattern type (%d) in stroke"),
+ pattern->getType());
+ break;
+ }
+@@ -1579,15 +1543,9 @@
+ double *matrix = NULL;
+ GBool savedState = gFalse;
+
+-#ifdef POPPLER_NEW_COLOR_SPACE_API
+ if (!(shading = res->lookupShading(args[0].getName(), NULL))) {
+ return;
+ }
+-#else
+- if (!(shading = res->lookupShading(args[0].getName()))) {
+- return;
+- }
+-#endif
+
+ // save current graphics state
+ if (shading->getType() != 2 && shading->getType() != 3) {
+@@ -2156,7 +2114,7 @@
+
+ void PdfParser::opShowText(Object args[], int numArgs) {
+ if (!state->getFont()) {
+- error(getPos(), const_cast<char*>("No font in show"));
++ error(errInternal, getPos(), const_cast<char*>("No font in show"));
+ return;
+ }
+ if (fontChanged) {
+@@ -2170,7 +2128,7 @@
+ double tx, ty;
+
+ if (!state->getFont()) {
+- error(getPos(), const_cast<char*>("No font in move/show"));
++ error(errInternal, getPos(), const_cast<char*>("No font in move/show"));
+ return;
+ }
+ if (fontChanged) {
+@@ -2188,7 +2146,7 @@
+ double tx, ty;
+
+ if (!state->getFont()) {
+- error(getPos(), const_cast<char*>("No font in move/set/show"));
++ error(errInternal, getPos(), const_cast<char*>("No font in move/set/show"));
+ return;
+ }
+ if (fontChanged) {
+@@ -2211,7 +2169,7 @@
+ int i;
+
+ if (!state->getFont()) {
+- error(getPos(), const_cast<char*>("No font in show/space"));
++ error(errInternal, getPos(), const_cast<char*>("No font in show/space"));
+ return;
+ }
+ if (fontChanged) {
+@@ -2236,7 +2194,7 @@
+ } else if (obj.isString()) {
+ doShowText(obj.getString());
+ } else {
+- error(getPos(), const_cast<char*>("Element of show/space array must be number or string"));
++ error(errInternal, getPos(), const_cast<char*>("Element of show/space array must be number or string"));
+ }
+ obj.free();
+ }
+@@ -2334,7 +2292,7 @@
+ if (charProc.isStream()) {
+ //parse(&charProc, gFalse); // TODO: parse into SVG font
+ } else {
+- error(getPos(), const_cast<char*>("Missing or bad Type3 CharProc entry"));
++ error(errInternal, getPos(), const_cast<char*>("Missing or bad Type3 CharProc entry"));
+ }
+ //out->endType3Char(state);
+ if (resDict) {
+@@ -2410,7 +2368,7 @@
+ return;
+ }
+ if (!obj1.isStream()) {
+- error(getPos(), const_cast<char*>("XObject '%s' is wrong type"), name);
++ error(errInternal, getPos(), const_cast<char*>("XObject '%s' is wrong type"), name);
+ obj1.free();
+ return;
+ }
+@@ -2426,9 +2384,9 @@
+ /* out->psXObject(obj1.getStream(),
+ obj3.isStream() ? obj3.getStream() : (Stream *)NULL);*/
+ } else if (obj2.isName()) {
+- error(getPos(), const_cast<char*>("Unknown XObject subtype '%s'"), obj2.getName());
++ error(errInternal, getPos(), const_cast<char*>("Unknown XObject subtype '%s'"), obj2.getName());
+ } else {
+- error(getPos(), const_cast<char*>("XObject subtype is missing or wrong type"));
++ error(errInternal, getPos(), const_cast<char*>("XObject subtype is missing or wrong type"));
+ }
+ obj2.free();
+ obj1.free();
+@@ -2559,11 +2517,7 @@
+ }
+ }
+ if (!obj1.isNull()) {
+-#ifdef POPPLER_NEW_COLOR_SPACE_API
+ colorSpace = GfxColorSpace::parse(&obj1, NULL);
+-#else
+- colorSpace = GfxColorSpace::parse(&obj1);
+-#endif
+ } else if (csMode == streamCSDeviceGray) {
+ colorSpace = new GfxDeviceGrayColorSpace();
+ } else if (csMode == streamCSDeviceRGB) {
+@@ -2648,11 +2602,7 @@
+ obj2.free();
+ }
+ }
+-#ifdef POPPLER_NEW_COLOR_SPACE_API
+ maskColorSpace = GfxColorSpace::parse(&obj1, NULL);
+-#else
+- maskColorSpace = GfxColorSpace::parse(&obj1);
+-#endif
+ obj1.free();
+ if (!maskColorSpace || maskColorSpace->getMode() != csDeviceGray) {
+ goto err1;
+@@ -2758,7 +2708,7 @@
+ err2:
+ obj1.free();
+ err1:
+- error(getPos(), const_cast<char*>("Bad image parameters"));
++ error(errInternal, getPos(), const_cast<char*>("Bad image parameters"));
+ }
+
+ void PdfParser::doForm(Object *str) {
+@@ -2783,7 +2733,7 @@
+ // check form type
+ dict->lookup(const_cast<char*>("FormType"), &obj1);
+ if (!(obj1.isNull() || (obj1.isInt() && obj1.getInt() == 1))) {
+- error(getPos(), const_cast<char*>("Unknown form type"));
++ error(errInternal, getPos(), const_cast<char*>("Unknown form type"));
+ }
+ obj1.free();
+
+@@ -2791,7 +2741,7 @@
+ dict->lookup(const_cast<char*>("BBox"), &bboxObj);
+ if (!bboxObj.isArray()) {
+ bboxObj.free();
+- error(getPos(), const_cast<char*>("Bad form bounding box"));
++ error(errInternal, getPos(), const_cast<char*>("Bad form bounding box"));
+ return;
+ }
+ for (i = 0; i < 4; ++i) {
+@@ -2827,11 +2777,7 @@
+ if (obj1.dictLookup(const_cast<char*>("S"), &obj2)->isName(const_cast<char*>("Transparency"))) {
+ transpGroup = gTrue;
+ if (!obj1.dictLookup(const_cast<char*>("CS"), &obj3)->isNull()) {
+-#ifdef POPPLER_NEW_COLOR_SPACE_API
+ blendingColorSpace = GfxColorSpace::parse(&obj3, NULL);
+-#else
+- blendingColorSpace = GfxColorSpace::parse(&obj3);
+-#endif
+ }
+ obj3.free();
+ if (obj1.dictLookup(const_cast<char*>("I"), &obj3)->isBool()) {
+@@ -2990,7 +2936,7 @@
+ parser->getObj(&obj);
+ while (!obj.isCmd(const_cast<char*>("ID")) && !obj.isEOF()) {
+ if (!obj.isName()) {
+- error(getPos(), const_cast<char*>("Inline image dictionary key must be a name object"));
++ error(errInternal, getPos(), const_cast<char*>("Inline image dictionary key must be a name object"));
+ obj.free();
+ } else {
+ key = copyString(obj.getName());
+@@ -3005,7 +2951,7 @@
+ parser->getObj(&obj);
+ }
+ if (obj.isEOF()) {
+- error(getPos(), const_cast<char*>("End of file in inline image"));
++ error(errInternal, getPos(), const_cast<char*>("End of file in inline image"));
+ obj.free();
+ dict.free();
+ return NULL;
+@@ -3020,11 +2966,11 @@
+ }
+
+ void PdfParser::opImageData(Object args[], int numArgs) {
+- error(getPos(), const_cast<char*>("Internal: got 'ID' operator"));
++ error(errInternal, getPos(), const_cast<char*>("Internal: got 'ID' operator"));
+ }
+
+ void PdfParser::opEndImage(Object args[], int numArgs) {
+- error(getPos(), const_cast<char*>("Internal: got 'EI' operator"));
++ error(errInternal, getPos(), const_cast<char*>("Internal: got 'EI' operator"));
+ }
+
+ //------------------------------------------------------------------------
+diff -Naur old/src/extension/internal/pdfinput/svg-builder.cpp new/src/extension/internal/pdfinput/svg-builder.cpp
+--- old/src/extension/internal/pdfinput/svg-builder.cpp 2011-07-08 20:25:09.468790000 +0200
++++ new/src/extension/internal/pdfinput/svg-builder.cpp 2012-05-13 20:45:22.303804308 +0200
+@@ -961,9 +961,7 @@
+ _font_style = sp_repr_css_attr_new();
+ GfxFont *font = state->getFont();
+ // Store original name
+- if (font->getOrigName()) {
+- _font_specification = font->getOrigName()->getCString();
+- } else if (font->getName()) {
++ if (font->getName()) {
+ _font_specification = font->getName()->getCString();
+ } else {
+ _font_specification = (char*) "Arial";
diff --git a/staging/kdegraphics-okular/PKGBUILD b/staging/kdegraphics-okular/PKGBUILD
new file mode 100644
index 000000000..ac50aeb7b
--- /dev/null
+++ b/staging/kdegraphics-okular/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 158978 2012-05-13 22:30:24Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-okular
+pkgver=4.8.3
+pkgrel=2
+pkgdesc='Document Viewer'
+arch=('i686' 'x86_64')
+url="http://kde.org/applications/graphics/okular/"
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime' 'qimageblitz' 'poppler-qt' 'chmlib' 'djvulibre'
+ 'ebook-tools' 'libspectre')
+makedepends=('cmake' 'automoc4')
+optdepends=('kdegraphics-mobipocket: mobipocket support')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/okular-${pkgver}.tar.xz")
+sha1sums=('7c43076df3e9d6217e2a5cbb8ef6d8af89f8ae37')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../okular-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdegraphics-okular/kdegraphics-okular.install b/staging/kdegraphics-okular/kdegraphics-okular.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/staging/kdegraphics-okular/kdegraphics-okular.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/poppler/PKGBUILD b/staging/poppler/PKGBUILD
new file mode 100644
index 000000000..139184dd8
--- /dev/null
+++ b/staging/poppler/PKGBUILD
@@ -0,0 +1,80 @@
+# $Id: PKGBUILD 158950 2012-05-13 15:25:14Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=poppler
+pkgname=('poppler' 'poppler-glib' 'poppler-qt')
+pkgver=0.20.0
+pkgrel=1
+arch=(i686 x86_64)
+license=('GPL')
+makedepends=('libjpeg' 'gcc-libs' 'cairo' 'fontconfig' 'openjpeg' 'gtk2' 'qt' 'pkgconfig' 'lcms' 'gobject-introspection')
+options=('!libtool' '!emptydirs')
+url="http://poppler.freedesktop.org/"
+_testtag=0d2bfd4af4c76a3bac27ccaff793d9129df7b57a
+source=(http://poppler.freedesktop.org/${pkgbase}-${pkgver}.tar.gz
+ http://cgit.freedesktop.org/poppler/test/snapshot/test-${_testtag}.tar.bz2)
+md5sums=('5bca54b9561bf5b14d9344efce2cd4f3'
+ '9dc64c254a31e570507bdd4ad4ba629a')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ sed -i -e '/AC_PATH_XTRA/d' configure.ac
+
+ autoreconf -fi
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --enable-cairo-output \
+ --enable-xpdf-headers \
+ --enable-libjpeg --enable-zlib \
+ --enable-poppler-qt4 \
+ --enable-poppler-glib
+ make
+}
+
+check() {
+ cd "${srcdir}"
+ ln -sf test-${_testtag} test
+ cd ${pkgbase}-${pkgver}
+ LANG=en_US.UTF8 make check
+}
+
+package_poppler() {
+ pkgdesc="PDF rendering library based on xpdf 3.0"
+ depends=('libjpeg' 'gcc-libs' 'cairo' 'fontconfig' 'openjpeg' 'lcms' 'poppler-data')
+ conflicts=("poppler-qt3<${pkgver}")
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ sed -e 's/^glib_subdir =.*/glib_subdir =/' \
+ -e 's/^qt4_subdir =.*/qt4_subdir =/' -i Makefile
+ make DESTDIR="${pkgdir}" install
+
+ rm -f "${pkgdir}"/usr/lib/pkgconfig/poppler-{glib,qt4}.pc
+}
+
+package_poppler-glib() {
+ pkgdesc="Poppler glib bindings"
+ depends=("poppler=${pkgver}" 'glib2')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/poppler"
+ make DESTDIR="${pkgdir}" install-libLTLIBRARIES
+ cd "${srcdir}/${pkgbase}-${pkgver}/glib"
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/lib/pkgconfig"
+ install -m644 ../poppler-glib.pc "${pkgdir}/usr/lib/pkgconfig/"
+ rm -f "${pkgdir}"/usr/lib/libpoppler.*
+ rm -f "${pkgdir}/usr/bin/poppler-glib-demo"
+}
+
+package_poppler-qt() {
+ pkgdesc="Poppler Qt bindings"
+ depends=("poppler=${pkgver}" 'qt')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/poppler"
+ make DESTDIR="${pkgdir}" install-libLTLIBRARIES
+ cd "${srcdir}/${pkgbase}-${pkgver}/qt4"
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/lib/pkgconfig"
+ install -m644 ../poppler-qt4.pc "${pkgdir}/usr/lib/pkgconfig/"
+ rm -f "${pkgdir}"/usr/lib/libpoppler.*
+}
diff --git a/staging/xpdf/PKGBUILD b/staging/xpdf/PKGBUILD
new file mode 100644
index 000000000..7545e3692
--- /dev/null
+++ b/staging/xpdf/PKGBUILD
@@ -0,0 +1,64 @@
+# $Id: PKGBUILD 158960 2012-05-13 16:58:43Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: tobias <tobias@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=xpdf
+#pkgver=3.03_pl1
+pkgver=3.03
+pkgrel=2
+pkgdesc='Viewer for Portable Document Format (PDF) files'
+url='http://www.foolabs.com/xpdf/'
+license=('GPL2')
+arch=('i686' 'x86_64')
+depends=('lesstif' 'gsfonts' 'libxt')
+optdepends=('poppler: tools that used to be included in xpdf'
+ 'desktop-file-utils: for desktop environments')
+# "ftp://ftp.foolabs.com/pub/${pkgname}/${pkgname}-${pkgver%_*}pl1.patch"
+source=("ftp://ftp.foolabs.com/pub/${pkgname}/${pkgname}-${pkgver%_*}.tar.gz"
+ 'char.patch'
+ 'desktop')
+sha1sums=('499423e8a795e0efd76ca798239eb4d0d52fe248'
+ '5c471944685a6b24a2b0c0e000562d1a3263aeeb'
+ '3b6fe01636253676ffa0efe1b237a75af4721f6d')
+
+install=install
+backup=('etc/xpdfrc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver%_*}"
+
+# patch -p1 -i "../${pkgname}-${_srcver}pl1.patch"
+ patch -p1 -i ../char.patch
+
+ sed -i 's:/usr/share/fonts/type1/gsfonts:/usr/share/fonts/Type1:' xpdf/GlobalParams.cc
+ sed -i 's:times-medium-r-normal--16:times-medium-r-normal--14:' xpdf/XPDFViewer.cc # FS#14217
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --enable-multithreaded \
+ --enable-wordlist \
+ --with-freetype2-library=/usr/lib \
+ --with-freetype2-includes=/usr/include/freetype2 \
+ --x-includes=/usr/include \
+ --with-Xm-library=/usr/lib \
+ --with-Xm-includes=/usr/include \
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver%_*}"
+
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm644 ../desktop "${pkgdir}/usr/share/applications/xpdf.desktop"
+ install -Dm644 xpdf/xpdfIcon.xpm "${pkgdir}/usr/share/pixmaps/xpdf.xpm"
+
+ # stuff provided by poppler
+ for tool in pdfdetach pdffonts pdfimages pdfinfo pdftoppm pdftops pdftotext; do
+ rm "${pkgdir}/usr/bin/${tool}" "${pkgdir}/usr/share/man/man1/${tool}.1"
+ done
+}
diff --git a/staging/xpdf/char.patch b/staging/xpdf/char.patch
new file mode 100644
index 000000000..8e49393a6
--- /dev/null
+++ b/staging/xpdf/char.patch
@@ -0,0 +1,12 @@
+diff -aur old/xpdf/XPDFViewer.cc new/xpdf/XPDFViewer.cc
+--- old/xpdf/XPDFViewer.cc 2011-08-15 14:08:53.000000000 -0700
++++ new/xpdf/XPDFViewer.cc 2011-08-17 11:05:55.739431215 -0700
+@@ -1803,7 +1803,7 @@
+ menuPane = XmCreatePulldownMenu(toolBar, "zoomMenuPane", args, n);
+ for (i = 0; i < nZoomMenuItems; ++i) {
+ n = 0;
+- s = XmStringCreateLocalized(zoomMenuInfo[i].label);
++ s = XmStringCreateLocalized((char *)zoomMenuInfo[i].label);
+ XtSetArg(args[n], XmNlabelString, s); ++n;
+ XtSetArg(args[n], XmNuserData, (XtPointer)i); ++n;
+ sprintf(buf, "zoom%d", i);
diff --git a/staging/xpdf/desktop b/staging/xpdf/desktop
new file mode 100644
index 000000000..06830ecda
--- /dev/null
+++ b/staging/xpdf/desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Xpdf
+Comment=Views Adobe PDF (acrobat) files
+Exec=xpdf
+Terminal=false
+Type=Application
+Icon=xpdf
+Categories=Office;
+MimeType=application/pdf;
diff --git a/staging/xpdf/install b/staging/xpdf/install
new file mode 100644
index 000000000..c6cf149dd
--- /dev/null
+++ b/staging/xpdf/install
@@ -0,0 +1,11 @@
+post_install() {
+ [[ -x /usr/bin/update-desktop-database ]] && update-desktop-database -q || true
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}