On Sun, Nov 29, 2009 at 09:21:36PM +0100, Christian Weisgerber wrote:
> graphics/inkscape
>   Fails somewhere in pdf handling code.

Unbreak after the latest poppler update.
While here, update license marker.

Tested on amd64 by importing some pdf files.

Index: Makefile
===================================================================
RCS file: /cvs/ports/graphics/inkscape/Makefile,v
retrieving revision 1.11
diff -u -p -r1.11 Makefile
--- Makefile    10 Aug 2009 06:31:45 -0000      1.11
+++ Makefile    30 Nov 2009 21:04:58 -0000
@@ -3,7 +3,7 @@
 COMMENT=       SVG vector drawing application
 
 DISTNAME=      inkscape-0.46
-PKGNAME=       ${DISTNAME}p9
+PKGNAME=       ${DISTNAME}p10
 CATEGORIES=    graphics
 
 MAINTAINER=    Benoit Chesneau <[email protected]>
@@ -12,7 +12,7 @@ HOMEPAGE=     http://www.inkscape.org/
 
 MASTER_SITES=  ${MASTER_SITE_SOURCEFORGE:=inkscape/}
 
-# GPL
+# GPLv2/LGPLv2.1
 PERMIT_PACKAGE_CDROM=  Yes
 PERMIT_PACKAGE_FTP=    Yes
 PERMIT_DISTFILES_CDROM=        Yes
@@ -37,7 +37,7 @@ LIB_DEPENDS=  gc.>=3::devel/boehm-gc \
                lcms::graphics/lcms \
                png::graphics/png \
                xslt::textproc/libxslt \
-               poppler,poppler-glib::print/poppler \
+               poppler.>=7.0,poppler-glib::print/poppler \
                atkmm-1.6,gdkmm-2.4,gtkmm-2.4::x11/gtk2mm \
                pangomm-1.4::devel/pangomm \
                gdk-x11-2.0,gdk_pixbuf-2.0,gtk-x11-2.0::x11/gtk+2 \
Index: patches/patch-src_extension_internal_pdfinput_pdf-parser_cpp
===================================================================
RCS file: 
/cvs/ports/graphics/inkscape/patches/patch-src_extension_internal_pdfinput_pdf-parser_cpp,v
retrieving revision 1.1
diff -u -p -r1.1 patch-src_extension_internal_pdfinput_pdf-parser_cpp
--- patches/patch-src_extension_internal_pdfinput_pdf-parser_cpp        3 Nov 
2008 19:40:38 -0000       1.1
+++ patches/patch-src_extension_internal_pdfinput_pdf-parser_cpp        30 Nov 
2009 21:04:58 -0000
@@ -1,6 +1,66 @@
 $OpenBSD: patch-src_extension_internal_pdfinput_pdf-parser_cpp,v 1.1 
2008/11/03 19:40:38 kili Exp $
---- src/extension/internal/pdfinput/pdf-parser.cpp.orig        Sun Nov  2 
21:27:57 2008
-+++ src/extension/internal/pdfinput/pdf-parser.cpp     Sun Nov  2 21:30:50 2008
+--- src/extension/internal/pdfinput/pdf-parser.cpp.orig        Tue Mar 11 
05:20:21 2008
++++ src/extension/internal/pdfinput/pdf-parser.cpp     Mon Nov 30 21:32:15 2009
+@@ -810,7 +810,7 @@ void PdfParser::opSetExtGState(Object args[], int numA
+         blendingColorSpace = NULL;
+         isolated = knockout = gFalse;
+         if (!obj4.dictLookup("CS", &obj5)->isNull()) {
+-          blendingColorSpace = GfxColorSpace::parse(&obj5);
++          blendingColorSpace = GfxColorSpace::parse(&obj5, NULL);
+         }
+         obj5.free();
+         if (obj4.dictLookup("I", &obj5)->isBool()) {
+@@ -1010,9 +1010,9 @@ void PdfParser::opSetFillColorSpace(Object args[], int
+   state->setFillPattern(NULL);
+   res->lookupColorSpace(args[0].getName(), &obj);
+   if (obj.isNull()) {
+-    colorSpace = GfxColorSpace::parse(&args[0]);
++    colorSpace = GfxColorSpace::parse(&args[0], NULL);
+   } else {
+-    colorSpace = GfxColorSpace::parse(&obj);
++    colorSpace = GfxColorSpace::parse(&obj, NULL);
+   }
+   obj.free();
+   if (colorSpace) {
+@@ -1033,9 +1033,9 @@ void PdfParser::opSetStrokeColorSpace(Object args[], i
+   state->setStrokePattern(NULL);
+   res->lookupColorSpace(args[0].getName(), &obj);
+   if (obj.isNull()) {
+-    colorSpace = GfxColorSpace::parse(&args[0]);
++    colorSpace = GfxColorSpace::parse(&args[0], NULL);
+   } else {
+-    colorSpace = GfxColorSpace::parse(&obj);
++    colorSpace = GfxColorSpace::parse(&obj, NULL);
+   }
+   obj.free();
+   if (colorSpace) {
+@@ -1102,7 +1102,7 @@ void PdfParser::opSetFillColorN(Object args[], int num
+       builder->updateStyle(state);
+     }
+     if (args[numArgs-1].isName() &&
+-      (pattern = res->lookupPattern(args[numArgs-1].getName()))) {
++      (pattern = res->lookupPattern(args[numArgs-1].getName(), NULL))) {
+       state->setFillPattern(pattern);
+       builder->updateStyle(state);
+     }
+@@ -1146,7 +1146,7 @@ void PdfParser::opSetStrokeColorN(Object args[], int n
+       builder->updateStyle(state);
+     }
+     if (args[numArgs-1].isName() &&
+-      (pattern = res->lookupPattern(args[numArgs-1].getName()))) {
++      (pattern = res->lookupPattern(args[numArgs-1].getName(), NULL))) {
+       state->setStrokePattern(pattern);
+       builder->updateStyle(state);
+     }
+@@ -1544,7 +1544,7 @@ void PdfParser::opShFill(Object args[], int numArgs) {
+   double *matrix = NULL;
+   GBool savedState = gFalse;
+ 
+-  if (!(shading = res->lookupShading(args[0].getName()))) {
++  if (!(shading = res->lookupShading(args[0].getName(), NULL))) {
+     return;
+   }
+ 
 @@ -2196,7 +2196,7 @@ void PdfParser::doShowText(GooString *s) {
    int wMode;
    double riseX, riseY;
@@ -28,3 +88,30 @@ $OpenBSD: patch-src_extension_internal_p
                            &dx, &dy, &originX, &originY);
        
        if (wMode) {
+@@ -2487,7 +2487,7 @@ void PdfParser::doImage(Object *ref, Stream *str, GBoo
+       }
+     }
+     if (!obj1.isNull()) {
+-      colorSpace = GfxColorSpace::parse(&obj1);
++      colorSpace = GfxColorSpace::parse(&obj1, NULL);
+     } else if (csMode == streamCSDeviceGray) {
+       colorSpace = new GfxDeviceGrayColorSpace();
+     } else if (csMode == streamCSDeviceRGB) {
+@@ -2572,7 +2572,7 @@ void PdfParser::doImage(Object *ref, Stream *str, GBoo
+         obj2.free();
+       }
+       }
+-      maskColorSpace = GfxColorSpace::parse(&obj1);
++      maskColorSpace = GfxColorSpace::parse(&obj1, NULL);
+       obj1.free();
+       if (!maskColorSpace || maskColorSpace->getMode() != csDeviceGray) {
+       goto err1;
+@@ -2747,7 +2747,7 @@ void PdfParser::doForm(Object *str) {
+     if (obj1.dictLookup("S", &obj2)->isName("Transparency")) {
+       transpGroup = gTrue;
+       if (!obj1.dictLookup("CS", &obj3)->isNull()) {
+-      blendingColorSpace = GfxColorSpace::parse(&obj3);
++      blendingColorSpace = GfxColorSpace::parse(&obj3, NULL);
+       }
+       obj3.free();
+       if (obj1.dictLookup("I", &obj3)->isBool()) {

Reply via email to