diff options
-rw-r--r-- | extra/inkscape/.md5sum | 2 | ||||
-rw-r--r-- | extra/inkscape/50-poppler-API.dpatch | 97 | ||||
-rw-r--r-- | extra/inkscape/Pkgfile | 11 | ||||
-rw-r--r-- | extra/inkscape/inkscape-0.47-gcc45.patch | 83 |
4 files changed, 190 insertions, 3 deletions
diff --git a/extra/inkscape/.md5sum b/extra/inkscape/.md5sum index 4a1daf080..b1e668570 100644 --- a/extra/inkscape/.md5sum +++ b/extra/inkscape/.md5sum @@ -1,2 +1,4 @@ +b447272c9b282b49e86dca24c2581065 50-poppler-API.dpatch +a63bb0a325e3c40d86420183e003350d inkscape-0.47-gcc45.patch 7b497c8f673e40b05295a29f6e2111f4 inkscape-0.47.tar.bz2 4b4867ad0aac2f9683e4dd7c9fd9a0e9 inkscape-poppler-0.12.2.patch diff --git a/extra/inkscape/50-poppler-API.dpatch b/extra/inkscape/50-poppler-API.dpatch new file mode 100644 index 000000000..b97969de1 --- /dev/null +++ b/extra/inkscape/50-poppler-API.dpatch @@ -0,0 +1,97 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 50-poppler-API.patch.dpatch by Kees Cook <kees@ubuntu.com> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: https://bugs.launchpad.net/inkscape/+bug/487038 + +@DPATCH@ +diff -urNad inkscape~/src/extension/internal/pdfinput/pdf-parser.cpp inkscape/src/extension/internal/pdfinput/pdf-parser.cpp +--- inkscape~/src/extension/internal/pdfinput/pdf-parser.cpp 2009-10-10 12:17:47.000000000 -0700 ++++ inkscape/src/extension/internal/pdfinput/pdf-parser.cpp 2009-12-23 22:34:13.000000000 -0800 +@@ -809,7 +809,7 @@ + blendingColorSpace = NULL; + isolated = knockout = gFalse; + if (!obj4.dictLookup(const_cast<char*>("CS"), &obj5)->isNull()) { +- blendingColorSpace = GfxColorSpace::parse(&obj5); ++ blendingColorSpace = GfxColorSpace::parse(&obj5, NULL); + } + obj5.free(); + if (obj4.dictLookup(const_cast<char*>("I"), &obj5)->isBool()) { +@@ -1009,9 +1009,9 @@ + 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) { +@@ -1032,9 +1032,9 @@ + 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) { +@@ -1101,7 +1101,7 @@ + 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); + } +@@ -1145,7 +1145,7 @@ + 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); + } +@@ -1543,7 +1543,7 @@ + double *matrix = NULL; + GBool savedState = gFalse; + +- if (!(shading = res->lookupShading(args[0].getName()))) { ++ if (!(shading = res->lookupShading(args[0].getName(), NULL))) { + return; + } + +@@ -2507,7 +2507,7 @@ + } + } + if (!obj1.isNull()) { +- colorSpace = GfxColorSpace::parse(&obj1); ++ colorSpace = GfxColorSpace::parse(&obj1, NULL); + } else if (csMode == streamCSDeviceGray) { + colorSpace = new GfxDeviceGrayColorSpace(); + } else if (csMode == streamCSDeviceRGB) { +@@ -2592,7 +2592,7 @@ + obj2.free(); + } + } +- maskColorSpace = GfxColorSpace::parse(&obj1); ++ maskColorSpace = GfxColorSpace::parse(&obj1, NULL); + obj1.free(); + if (!maskColorSpace || maskColorSpace->getMode() != csDeviceGray) { + goto err1; +@@ -2767,7 +2767,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()) { +- blendingColorSpace = GfxColorSpace::parse(&obj3); ++ blendingColorSpace = GfxColorSpace::parse(&obj3, NULL); + } + obj3.free(); + if (obj1.dictLookup(const_cast<char*>("I"), &obj3)->isBool()) { diff --git a/extra/inkscape/Pkgfile b/extra/inkscape/Pkgfile index 2d469834d..9bf3f9a6e 100644 --- a/extra/inkscape/Pkgfile +++ b/extra/inkscape/Pkgfile @@ -2,19 +2,24 @@ # URL: http://inkscape.org # Maintainer: NuTyX core team # Packager: skingrapher at legtux dot org -# Depends on: pangomm, cairomm, gtkmm, boost, boehm-gc, imagemagick, gsl, gnome-vfs, libwpg, poppler-glib, librsvg +# Depends on: pangomm, cairomm, gtkmm, boost, boehm-gc, imagemagick, gsl, gnome-vfs, libwpg, poppler-glib, librsvg, gtkspell, desktop-file-utils, popt, pyxml, libxslt + name=inkscape version=0.47 release=2 -source=(http://downloads.sourceforge.net/$name/files/$name-$version.tar.bz2\ - http://launchpadlibrarian.net/36057611/inkscape-poppler-0.12.2.patch) +source=(http://downloads.sourceforge.net/$name/files/$name-$version.tar.bz2 + inkscape-0.47-gcc45.patch + http://launchpadlibrarian.net/36057611/inkscape-poppler-0.12.2.patch ) build() { sed -i "s|(Gf\x\*)this| NULL|g" inkscape-poppler-0.12.2.patch cd $name-* CFLAGS="${CFLAGS} -I/usr/include/ImageMagick" \ CXXFLAGS="${CXXFLAGS} -I/usr/include/ImageMagick" \ + patch -Np1 -i ../inkscape-poppler-0.12.2.patch + patch -Np1 -i ../inkscape-0.47-gcc45.patch + ./configure --prefix=/usr \ --enable-lcms \ --with-xft \ diff --git a/extra/inkscape/inkscape-0.47-gcc45.patch b/extra/inkscape/inkscape-0.47-gcc45.patch new file mode 100644 index 000000000..643b7ff1d --- /dev/null +++ b/extra/inkscape/inkscape-0.47-gcc45.patch @@ -0,0 +1,83 @@ +http://bugs.gentoo.org/show_bug.cgi?id=305749 + +diff -Naur inkscape-0.47-orig/src/eraser-context.cpp inkscape-0.47/src/eraser-context.cpp +--- inkscape-0.47-orig/src/eraser-context.cpp 2010-02-18 08:45:58.000000000 -0500 ++++ inkscape-0.47/src/eraser-context.cpp 2010-02-18 08:46:26.000000000 -0500 +@@ -749,7 +749,7 @@ + if ( eraserMode ) { + toWorkOn = sp_document_partial_items_in_box(sp_desktop_document(desktop), desktop->dkey, bounds); + } else { +- Inkscape::Rubberband::Rubberband *r = Inkscape::Rubberband::get(desktop); ++ Inkscape::Rubberband *r = Inkscape::Rubberband::get(desktop); + toWorkOn = sp_document_items_at_points(sp_desktop_document(desktop), desktop->dkey, r->getPoints()); + } + toWorkOn = g_slist_remove( toWorkOn, acid ); +diff -Naur inkscape-0.47-orig/src/extension/internal/filter/filter-file.cpp inkscape-0.47/src/extension/internal/filter/filter-file.cpp +--- inkscape-0.47-orig/src/extension/internal/filter/filter-file.cpp 2010-02-18 08:45:58.000000000 -0500 ++++ inkscape-0.47/src/extension/internal/filter/filter-file.cpp 2010-02-18 09:07:54.000000000 -0500 +@@ -161,7 +161,7 @@ + mywriter writer; + sp_repr_write_stream(node, writer, 0, FALSE, g_quark_from_static_string("svg"), 0, 0); + +- Inkscape::Extension::build_from_mem(xml_str, new Filter::Filter(g_strdup(writer.c_str()))); ++ Inkscape::Extension::build_from_mem(xml_str, new Filter(g_strdup(writer.c_str()))); + g_free(xml_str); + return; + } +diff -Naur inkscape-0.47-orig/src/extension/internal/filter/filter.cpp inkscape-0.47/src/extension/internal/filter/filter.cpp +--- inkscape-0.47-orig/src/extension/internal/filter/filter.cpp 2010-02-18 08:45:58.000000000 -0500 ++++ inkscape-0.47/src/extension/internal/filter/filter.cpp 2010-02-18 09:21:06.000000000 -0500 +@@ -217,7 +217,7 @@ + "<menu-tip>%s</menu-tip>\n" + "</effect>\n" + "</inkscape-extension>\n", name, id, submenu, tip); +- Inkscape::Extension::build_from_mem(xml_str, new Filter::Filter(filter)); ++ Inkscape::Extension::build_from_mem(xml_str, new Filter(filter)); + g_free(xml_str); + return; + } +diff -Naur inkscape-0.47-orig/src/flood-context.cpp inkscape-0.47/src/flood-context.cpp +--- inkscape-0.47-orig/src/flood-context.cpp 2010-02-18 08:45:58.000000000 -0500 ++++ inkscape-0.47/src/flood-context.cpp 2010-02-18 08:48:16.000000000 -0500 +@@ -900,7 +900,7 @@ + if (is_point_fill) { + fill_points.push_back(Geom::Point(event->button.x, event->button.y)); + } else { +- Inkscape::Rubberband::Rubberband *r = Inkscape::Rubberband::get(desktop); ++ Inkscape::Rubberband *r = Inkscape::Rubberband::get(desktop); + fill_points = r->getPoints(); + } + +@@ -1206,7 +1206,7 @@ + + case GDK_BUTTON_RELEASE: + if (event->button.button == 1 && !event_context->space_panning) { +- Inkscape::Rubberband::Rubberband *r = Inkscape::Rubberband::get(desktop); ++ Inkscape::Rubberband *r = Inkscape::Rubberband::get(desktop); + if (r->is_started()) { + // set "busy" cursor + desktop->setWaitingCursor(); +diff -Naur inkscape-0.47-orig/src/gradient-context.cpp inkscape-0.47/src/gradient-context.cpp +--- inkscape-0.47-orig/src/gradient-context.cpp 2010-02-18 08:45:58.000000000 -0500 ++++ inkscape-0.47/src/gradient-context.cpp 2010-02-18 08:47:33.000000000 -0500 +@@ -641,7 +641,7 @@ + if (!event_context->within_tolerance) { + // we've been dragging, either do nothing (grdrag handles that), + // or rubberband-select if we have rubberband +- Inkscape::Rubberband::Rubberband *r = Inkscape::Rubberband::get(desktop); ++ Inkscape::Rubberband *r = Inkscape::Rubberband::get(desktop); + if (r->is_started() && !event_context->within_tolerance) { + // this was a rubberband drag + if (r->getMode() == RUBBERBAND_MODE_RECT) { +diff -Naur inkscape-0.47-orig/src/select-context.cpp inkscape-0.47/src/select-context.cpp +--- inkscape-0.47-orig/src/select-context.cpp 2010-02-18 08:45:58.000000000 -0500 ++++ inkscape-0.47/src/select-context.cpp 2010-02-18 08:50:11.000000000 -0500 +@@ -602,7 +602,7 @@ + } + sc->item = NULL; + } else { +- Inkscape::Rubberband::Rubberband *r = Inkscape::Rubberband::get(desktop); ++ Inkscape::Rubberband *r = Inkscape::Rubberband::get(desktop); + if (r->is_started() && !within_tolerance) { + // this was a rubberband drag + GSList *items = NULL; |