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()) {