--- Begin Message ---
Package: inkscape
Version: 0.48.4-4
Severity: important
Tags: patch
A new upstream libwpg is there and it's now using librevenge as base, so it
changed API and ABI version and it needs some bigger adaptions to the code.
Fortunately the librevenge authors provided patches (or did it themselves,
as for LO) for all known affected applications - this includes inkscape.
(Though I got this specific one from Fedora git[1], as the "general" one
from librevenge upstreams21] seemed to be for some git version)
I attach a full debdiff for reference.
Note that
a) configure is automatically regenerated and thus a subsequent build fails as
configure changed. I switched to dh-autoreconf which does do the handling
automatically and should prevent it
b) the patch needs an update for some new upstream when that happens...
Especially the 0.91 from experimental...
The library is also in experimental to test.
Note that this bug _might_ become serious _before_ the jessie release,
the transition starts. (LO 4.3 also needs all those new libs and doesn't
support the old ones anymore, and I still hope for it for jessie.)
The transition is tracked in #753426.
Regards,
Rene
[1]
http://pkgs.fedoraproject.org/cgit/inkscape.git/commit/?id=2aa77aa6cbbde044d027f206e57f0a26a0aba1b8
[2]
#libreoffice-dev.05-27.log:22:16 <@dtardon> _rene_, patches for calligra,
inkscape and abiword are available at
http://dtardon.fedorapeople.org/librevenge/0001-switch-to-librevenge-based-import-libs.patch,
http://people.freedesktop.org/~fridrich/abiword-librevenge.diff and
http://people.freedesktop.org/~fridrich/inkscape-librevenge.diff
diff -Nru inkscape-0.48.4/debian/changelog inkscape-0.48.4/debian/changelog
--- inkscape-0.48.4/debian/changelog 2014-05-27 16:23:42.000000000 +0200
+++ inkscape-0.48.4/debian/changelog 2014-05-31 14:33:58.000000000 +0200
@@ -1,3 +1,13 @@
+inkscape (0.48.4-4.1) UNRELEASED; urgency=medium
+
+ * Non-maintainer upload.
+ * fix build with libwpg 0.3 (and librevenge) and adapt Build-Depends: -
+ patch "stolen" from Fedora
+ * switch to --with=autoreconf instead of --with=autotools-dev to clean up
+ changes configure automatically afterwards...
+
+ -- Rene Engelhard <[email protected]> Sat, 31 May 2014 14:30:55 +0200
+
inkscape (0.48.4-4) unstable; urgency=medium
* debian/: python dependency fixed
diff -Nru inkscape-0.48.4/debian/control inkscape-0.48.4/debian/control
--- inkscape-0.48.4/debian/control 2014-05-27 16:23:42.000000000 +0200
+++ inkscape-0.48.4/debian/control 2014-05-31 14:34:10.000000000 +0200
@@ -6,8 +6,8 @@
Build-Depends:
autoconf,
automake,
- autotools-dev,
debhelper (>= 9),
+ dh-autoreconf,
intltool,
libart-2.0-dev (>= 2.3.10),
libaspell-dev,
@@ -26,10 +26,10 @@
libpoppler-glib-dev,
libpoppler-private-dev,
libpopt-dev,
+ librevenge-dev,
libsigc++-2.0-dev (>= 2.0.16-2),
libtool,
- libwpd-dev (>= 0.9.0),
- libwpg-dev (>= 0.2.0),
+ libwpg-dev (>= 0.3.0),
libxml-parser-perl,
libxml2-dev (>= 2-2.4.24),
libxslt1-dev,
diff -Nru inkscape-0.48.4/debian/patches/0006-update-to-new-libwpg.patch
inkscape-0.48.4/debian/patches/0006-update-to-new-libwpg.patch
--- inkscape-0.48.4/debian/patches/0006-update-to-new-libwpg.patch
1970-01-01 01:00:00.000000000 +0100
+++ inkscape-0.48.4/debian/patches/0006-update-to-new-libwpg.patch
2014-05-31 14:27:01.000000000 +0200
@@ -0,0 +1,112 @@
+From 127777fe3298bcdfe45d74b36f77b8238ebb6937 Mon Sep 17 00:00:00 2001
+From: David Tardon <[email protected]>
+Date: Tue, 27 May 2014 16:47:39 +0200
+Subject: [PATCH] switch to librevenge-based import libs
+
+---
+ configure.ac | 19 ++---------------
+ src/extension/internal/wpg-input.cpp | 41 ++++++++++++------------------------
+ 2 files changed, 15 insertions(+), 45 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index fcff879..4bce58c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -676,23 +676,8 @@ dnl ******************************
+
+ with_libwpg=no
+
+-PKG_CHECK_MODULES(LIBWPG01, libwpg-0.1 libwpg-stream-0.1, with_libwpg01=yes,
with_libwpg01=no)
+-if test "x$with_libwpg01" = "xyes"; then
+- AC_DEFINE(WITH_LIBWPG01,1,[Build in libwpg 0.1.x])
+- with_libwpg=yes
+- AC_SUBST(LIBWPG_LIBS, $LIBWPG01_LIBS)
+- AC_SUBST(LIBWPG_CFLAGS, $LIBWPG01_CFLAGS)
+-fi
+-AM_CONDITIONAL(WITH_LIBWPG01, test "x$with_libwpg01" = "xyes")
+-
+-PKG_CHECK_MODULES(LIBWPG02, libwpg-0.2 libwpd-0.9 libwpd-stream-0.9,
with_libwpg02=yes, with_libwpg02=no)
+-if test "x$with_libwpg02" = "xyes"; then
+- AC_DEFINE(WITH_LIBWPG02,1,[Build in libwpg 0.2.x])
+- with_libwpg=yes
+- AC_SUBST(LIBWPG_LIBS, $LIBWPG02_LIBS)
+- AC_SUBST(LIBWPG_CFLAGS, $LIBWPG02_CFLAGS)
+-fi
+-AM_CONDITIONAL(WITH_LIBWPG02, test "x$with_libwpg02" = "xyes")
++PKG_CHECK_MODULES(LIBWPG, libwpg-0.3 librevenge-0.0 librevenge-stream-0.0,
with_libwpg=yes, with_libwpg=no)
++AM_CONDITIONAL(WITH_LIBWPG01, test "x$with_libwpg" = "xyes")
+
+ if test "x$with_libwpg" = "xyes"; then
+ AC_DEFINE(WITH_LIBWPG,1,[Build in libwpg])
+diff --git a/src/extension/internal/wpg-input.cpp
b/src/extension/internal/wpg-input.cpp
+index 5c5cb65..71c7b44 100644
+--- a/src/extension/internal/wpg-input.cpp
++++ b/src/extension/internal/wpg-input.cpp
+@@ -48,17 +48,8 @@
+ #include "extension/input.h"
+ #include "document.h"
+
+-// Take a guess and fallback to 0.1.x if no configure has run
+-#if !defined(WITH_LIBWPG01) && !defined(WITH_LIBWPG02)
+-#define WITH_LIBWPG01 1
+-#endif
+-
+ #include "libwpg/libwpg.h"
+-#if WITH_LIBWPG01
+-#include "libwpg/WPGStreamImplementation.h"
+-#elif WITH_LIBWPG02
+-#include "libwpd-stream/libwpd-stream.h"
+-#endif
++#include "librevenge-stream/librevenge-stream.h"
+
+ using namespace libwpg;
+
+@@ -69,17 +60,9 @@ namespace Internal {
+
+ SPDocument *
+ WpgInput::open(Inkscape::Extension::Input * mod, const gchar * uri) {
+-#if WITH_LIBWPG01
+- WPXInputStream* input = new libwpg::WPGFileStream(uri);
+-#elif WITH_LIBWPG02
+- WPXInputStream* input = new WPXFileStream(uri);
+-#endif
+- if (input->isOLEStream()) {
+-#if WITH_LIBWPG01
+- WPXInputStream* olestream = input->getDocumentOLEStream();
+-#elif WITH_LIBWPG02
+- WPXInputStream* olestream =
input->getDocumentOLEStream("PerfectOffice_MAIN");
+-#endif
++ librevenge::RVNGInputStream* input = new librevenge::RVNGFileStream(uri);
++ if (input->isStructured()) {
++ librevenge::RVNGInputStream* olestream =
input->getSubStreamByName("PerfectOffice_MAIN");
+ if (olestream) {
+ delete input;
+ input = olestream;
+@@ -94,15 +77,17 @@ WpgInput::open(Inkscape::Extension::Input * mod, const
gchar * uri) {
+ return NULL;
+ }
+
+-#if WITH_LIBWPG01
+- libwpg::WPGString output;
+-#elif WITH_LIBWPG02
+- WPXString output;
+-#endif
+- if (!libwpg::WPGraphics::generateSVG(input, output)) {
++ librevenge::RVNGStringVector vec;
++ librevenge::RVNGSVGDrawingGenerator generator(vec, "");
++
++ if (!libwpg::WPGraphics::parse(input, &generator) || vec.empty() ||
vec[0].empty())
++ {
+ delete input;
+ return NULL;
+- }
++ }
++
++ librevenge::RVNGString output("<?xml version=\"1.0\" encoding=\"UTF-8\"
standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"
\"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n");
++ output.append(vec[0]);
+
+ //printf("I've got a doc: \n%s", painter.document.c_str());
+
+--
+1.9.3
+
diff -Nru inkscape-0.48.4/debian/patches/series
inkscape-0.48.4/debian/patches/series
--- inkscape-0.48.4/debian/patches/series 2014-05-27 16:23:42.000000000
+0200
+++ inkscape-0.48.4/debian/patches/series 2014-05-31 14:27:27.000000000
+0200
@@ -3,3 +3,4 @@
0003-Fix_LP_-911146.patch
0004-Fix_FTBFS_on_gcc-4.8.patch
0005-Fix_FreeType_include.patch
+0006-update-to-new-libwpg.patch
diff -Nru inkscape-0.48.4/debian/rules inkscape-0.48.4/debian/rules
--- inkscape-0.48.4/debian/rules 2014-05-27 16:23:42.000000000 +0200
+++ inkscape-0.48.4/debian/rules 2014-05-31 14:33:25.000000000 +0200
@@ -26,7 +26,7 @@
export DEB_LDFLAGS_MAINT_APPEND := $(ALPHA_LDLAGS)
%:
- dh $@ --buildsystem=autoconf --parallel --with autotools_dev,python2
+ dh $@ --buildsystem=autoconf --parallel --with autoreconf,python2
override_dh_auto_configure:
dh_auto_configure \
--- End Message ---