From 2814e2175eb346da3abcae6933b324d03534929c Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Thu, 30 Dec 2010 07:58:52 +0000 Subject: main/inkscape: rebuild against new poppler --- main/inkscape/APKBUILD | 16 +++- main/inkscape/inkscape-0.48.0-poppler.patch | 117 ++++++++++++++++++++++++++++ 2 files changed, 130 insertions(+), 3 deletions(-) create mode 100644 main/inkscape/inkscape-0.48.0-poppler.patch (limited to 'main/inkscape') diff --git a/main/inkscape/APKBUILD b/main/inkscape/APKBUILD index 4e85e5cf81..af012fa200 100644 --- a/main/inkscape/APKBUILD +++ b/main/inkscape/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: Natanael Copa pkgname=inkscape pkgver=0.48.0 -pkgrel=1 +pkgrel=2 pkgdesc="A vector-based drawing program - svg compliant" url="http://inkscape.sourceforge.net/" arch="x86 x86_64" @@ -19,15 +19,24 @@ popt-dev lcms-dev libxml2-dev boost-dev +autoconf automake " depends="desktop-file-utils" install= -source="http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz" +source="http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz + inkscape-0.48.0-poppler.patch + " _builddir="$srcdir"/$pkgname-$pkgver prepare() { cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg "$i"; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done + aclocal -I m4 && autoconf && automake -a && autoheader } build() { @@ -48,4 +57,5 @@ package() { cd "$_builddir" make DESTDIR="$pkgdir" install || return 1 } -md5sums="bb94543b813157d83281657a89465d46 inkscape-0.48.0.tar.gz" +md5sums="bb94543b813157d83281657a89465d46 inkscape-0.48.0.tar.gz +fa6eae3c40bf4560ee8ab7cb843b19da inkscape-0.48.0-poppler.patch" diff --git a/main/inkscape/inkscape-0.48.0-poppler.patch b/main/inkscape/inkscape-0.48.0-poppler.patch new file mode 100644 index 0000000000..377304c5ad --- /dev/null +++ b/main/inkscape/inkscape-0.48.0-poppler.patch @@ -0,0 +1,117 @@ +From 646a577c1a10ec62cd4e65e34f7af7e6f8900aee Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Sun, 14 Nov 2010 17:12:58 +0100 +Subject: [PATCH] Fix build with Poppler 0.15.1 + +--- + config.h.in | 3 ++ + configure.ac | 29 ++++++++++++++++++++--- + src/extension/internal/pdfinput/pdf-parser.cpp | 10 ++++++++ + 3 files changed, 38 insertions(+), 4 deletions(-) + +diff --git a/config.h.in b/config.h.in +index 909c36b..cab6f0d 100644 +--- a/config.h.in ++++ b/config.h.in +@@ -246,6 +246,9 @@ + /* Use color space API from Poppler >= 0.12.2 */ + #undef POPPLER_NEW_COLOR_SPACE_API + ++/* GfxPatch no longer uses GfxColor in >= 0.15.1 */ ++#undef POPPLER_NEW_GFXPATCH ++ + /* Use GfxFont from Poppler >= 0.8.3 */ + #undef POPPLER_NEW_GFXFONT + +diff --git a/configure.ac b/configure.ac +index b3c9fd0..815a402 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -611,11 +611,12 @@ if test "x$popplernew" = "xyes"; then + AC_DEFINE(POPPLER_NEW_GFXFONT, 1, [Use GfxFont from Poppler >= 0.8.3]) + fi + +-AC_MSG_CHECKING(for new color space API in Poppler) + ink_svd_CPPFLAGS=$CPPFLAGS + ink_svd_LIBS=$LIBS + CPPFLAGS="$CPPFLAGS $POPPLER_CFLAGS" + LIBS="$LIBS $POPPLER_LIBS" ++ ++AC_MSG_CHECKING(for new color space API in Poppler) + popplercolor="no" + AC_COMPILE_IFELSE([ + #include +@@ -627,9 +628,6 @@ int main() { + return 0; + } + ], [popplercolor=yes]) +-CPPFLAGS=$ink_svd_CPPFLAGS +-LIBS=$ink_svd_LIBS +- + if test "x$popplercolor" = "xyes"; then + AC_DEFINE(POPPLER_NEW_COLOR_SPACE_API, 1, [Use color space API from Poppler >= 0.12.2]) + AC_MSG_RESULT(yes) +@@ -637,6 +635,29 @@ else + AC_MSG_RESULT(no) + fi + ++# Poppler's b604a008 commit changes this ++AC_MSG_CHECKING(whether Poppler''s GfxPatch no longer uses GfxColor) ++popplergfxcolor="no" ++AC_COMPILE_IFELSE([ ++#include ++ ++int main() { ++ GfxPatch::ColorValue color = {c: {0}}; ++ GfxPatch patch; ++ patch.color[[0]][[0]] = color; ++ return 0; ++} ++], [popplergfxcolor=yes]) ++if test "x$popplergfxcolor" = "xyes"; then ++ AC_DEFINE(POPPLER_NEW_GFXPATCH, 1, [GfxPatch no longer uses GfxColor in >= 0.15.1]) ++ AC_MSG_RESULT(yes) ++else ++ AC_MSG_RESULT(no) ++fi ++ ++CPPFLAGS=$ink_svd_CPPFLAGS ++LIBS=$ink_svd_LIBS ++ + dnl ****************************** + dnl Inkboard dependency checking + dnl ****************************** +diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp +index b37cbb7..ef31cd3 100644 +--- a/src/extension/internal/pdfinput/pdf-parser.cpp ++++ b/src/extension/internal/pdfinput/pdf-parser.cpp +@@ -1874,6 +1874,9 @@ void PdfParser::doPatchMeshShFill(GfxPatchMeshShading *shading) { + + void PdfParser::fillPatch(GfxPatch *patch, int nComps, int depth) { + GfxPatch patch00, patch01, patch10, patch11; ++#ifdef POPPLER_NEW_GFXPATCH ++ GfxColor color; ++#endif + double xx[4][8], yy[4][8]; + double xxm, yym; + double patchColorDelta = colorDeltas[pdfPatchMeshShading-1]; +@@ -1890,9 +1893,16 @@ void PdfParser::fillPatch(GfxPatch *patch, int nComps, int depth) { + > patchColorDelta) { + break; + } ++#ifdef POPPLER_NEW_GFXPATCH ++ color.c[i] = GfxColorComp(patch->color[0][0].c[i]); ++#endif + } + if (i == nComps || depth == maxDepths[pdfPatchMeshShading-1]) { ++#ifdef POPPLER_NEW_GFXPATCH ++ state->setFillColor(&color); ++#else + state->setFillColor(&patch->color[0][0]); ++#endif + state->moveTo(patch->x[0][0], patch->y[0][0]); + state->curveTo(patch->x[0][1], patch->y[0][1], + patch->x[0][2], patch->y[0][2], +-- +1.7.3.2 + -- cgit v1.2.3