[Libreoffice-commits] core.git: Branch 'libreoffice-4-3' - 6 commits - config_host.mk.in configure.ac download.lst external/libabw external/libcdr external/libebook external/libetonyek external/libfreehand external/libmspub external/libmwaw external/libodfgen external/librevenge external/libvisio external/libwpd external/libwpg external/libwps external/Module_external.mk include/writerperfect Makefile.fetch RepositoryExternal.mk writerperfect/CppunitTest_writerperfect_stream.mk writerperfect/Library_wpftdraw.mk writerperfect/Library_wpftimpress.mk writerperfect/Library_wpftwriter.mk writerperfect/Library_writerperfect.mk writerperfect/qa writerperfect/source

David Tardon dtardon at redhat.com
Mon May 26 11:05:38 PDT 2014


 Makefile.fetch                                                                 |    1 
 RepositoryExternal.mk                                                          |  123 +
 config_host.mk.in                                                              |    2 
 configure.ac                                                                   |   33 
 download.lst                                                                   |   47 
 external/Module_external.mk                                                    |    1 
 external/libabw/ExternalProject_libabw.mk                                      |    7 
 external/libcdr/ExternalProject_libcdr.mk                                      |    9 
 external/libebook/0001-blind-attempt-to-workaround-MSVC-bug.patch              |   87 +
 external/libebook/ExternalProject_libebook.mk                                  |   10 
 external/libebook/UnpackedTarball_libebook.mk                                  |    4 
 external/libetonyek/ExternalProject_libetonyek.mk                              |    5 
 external/libfreehand/ExternalProject_libfreehand.mk                            |    9 
 external/libmspub/ExternalProject_libmspub.mk                                  |    9 
 external/libmwaw/0001-librevenge-stream-is-optional-don-t-depend-on-it.patch   |  293 +++
 external/libmwaw/0001-std-isfinite-is-C-11.patch                               |   43 
 external/libmwaw/0001-use-correct-type.patch                                   |   52 
 external/libmwaw/0001-values4003-apparently-contains-22-patterns-not-28.patch  |   29 
 external/libmwaw/0002-librevenge-stream-is-optional-don-t-depend-on-it.patch   |   54 
 external/libmwaw/ExternalProject_libmwaw.mk                                    |    7 
 external/libmwaw/UnpackedTarball_libmwaw.mk                                    |    5 
 external/libodfgen/0001-properly-export-API-symbols.patch                      |  170 ++
 external/libodfgen/ExternalPackage_libodfgen.mk                                |   22 
 external/libodfgen/ExternalProject_libodfgen.mk                                |   15 
 external/libodfgen/Library_odfgen.mk                                           |   54 
 external/libodfgen/Module_libodfgen.mk                                         |   16 
 external/libodfgen/UnpackedTarball_libodfgen.mk                                |    6 
 external/librevenge/0001-nested-iterator-classes-need-to-be-exported-too.patch |   53 
 external/librevenge/0001-properly-export-API-symbols.patch                     |  752 ++++++++++
 external/librevenge/ExternalPackage_librevenge.mk                              |   22 
 external/librevenge/ExternalProject_librevenge.mk                              |   44 
 external/librevenge/Library_revenge.mk                                         |   48 
 external/librevenge/Makefile                                                   |    7 
 external/librevenge/Module_librevenge.mk                                       |   31 
 external/librevenge/README                                                     |    3 
 external/librevenge/UnpackedTarball_librevenge.mk                              |   21 
 external/libvisio/0001-fdo-70480-do-not-crash-reading-malformed-zip.patch      |   26 
 external/libvisio/ExternalProject_libvisio.mk                                  |    9 
 external/libvisio/UnpackedTarball_libvisio.mk                                  |    6 
 external/libwpd/ExternalProject_libwpd.mk                                      |   15 
 external/libwpg/ExternalProject_libwpg.mk                                      |    7 
 external/libwpg/UnpackedTarball_libwpg.mk                                      |    7 
 external/libwps/ExternalProject_libwps.mk                                      |    8 
 include/writerperfect/DirectoryStream.hxx                                      |   18 
 include/writerperfect/DocumentHandler.hxx                                      |    6 
 include/writerperfect/WPXSvInputStream.hxx                                     |   24 
 writerperfect/CppunitTest_writerperfect_stream.mk                              |    2 
 writerperfect/Library_wpftdraw.mk                                              |    2 
 writerperfect/Library_wpftimpress.mk                                           |    3 
 writerperfect/Library_wpftwriter.mk                                            |    6 
 writerperfect/Library_writerperfect.mk                                         |    4 
 writerperfect/qa/unit/WPXSvStreamTest.cxx                                      |  135 -
 writerperfect/qa/unit/WpftImpressFilterTest.cxx                                |    2 
 writerperfect/qa/unit/WpftWriterFilterTest.cxx                                 |    4 
 writerperfect/source/common/DirectoryStream.cxx                                |   34 
 writerperfect/source/common/DocumentHandler.cxx                                |    6 
 writerperfect/source/common/WPXSvInputStream.cxx                               |   43 
 writerperfect/source/draw/CDRImportFilter.cxx                                  |    4 
 writerperfect/source/draw/CDRImportFilter.hxx                                  |    4 
 writerperfect/source/draw/CMXImportFilter.cxx                                  |    4 
 writerperfect/source/draw/CMXImportFilter.hxx                                  |    4 
 writerperfect/source/draw/FreehandImportFilter.cxx                             |    4 
 writerperfect/source/draw/FreehandImportFilter.hxx                             |    4 
 writerperfect/source/draw/ImportFilterBase.cxx                                 |    3 
 writerperfect/source/draw/ImportFilterBase.hxx                                 |    8 
 writerperfect/source/draw/MSPUBImportFilter.cxx                                |    4 
 writerperfect/source/draw/MSPUBImportFilter.hxx                                |    4 
 writerperfect/source/draw/VisioImportFilter.cxx                                |    4 
 writerperfect/source/draw/VisioImportFilter.hxx                                |    4 
 writerperfect/source/draw/WPGImportFilter.cxx                                  |    6 
 writerperfect/source/draw/WPGImportFilter.hxx                                  |    4 
 writerperfect/source/impress/KeynoteImportFilter.cxx                           |   18 
 writerperfect/source/writer/AbiWordImportFilter.cxx                            |    4 
 writerperfect/source/writer/AbiWordImportFilter.hxx                            |    4 
 writerperfect/source/writer/EBookImportFilter.cxx                              |   58 
 writerperfect/source/writer/EBookImportFilter.hxx                              |    4 
 writerperfect/source/writer/ImportFilterBase.cxx                               |    3 
 writerperfect/source/writer/ImportFilterBase.hxx                               |    8 
 writerperfect/source/writer/MSWorksImportFilter.cxx                            |   11 
 writerperfect/source/writer/MSWorksImportFilter.hxx                            |    4 
 writerperfect/source/writer/MWAWImportFilter.cxx                               |    9 
 writerperfect/source/writer/MWAWImportFilter.hxx                               |    4 
 writerperfect/source/writer/WordPerfectImportFilter.cxx                        |   49 
 83 files changed, 2188 insertions(+), 510 deletions(-)

New commits:
commit 1edc1eab10c7666afcfef01f86e00f1e773a6048
Author: David Tardon <dtardon at redhat.com>
Date:   Sat May 24 14:21:21 2014 +0200

    rebase all import libs
    
    Change-Id: I9e1fc613816c943f4fb1033185e34e3acf317f1d
    (cherry picked from commit 48c9d7ac7ccdad27067efe0d168e96ff48372631)

diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index 2ecd404..240a7fe 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -1594,7 +1594,7 @@ $(call gb_LinkTarget_set_include,$(1),\
 	$$(INCLUDE) \
 )
 $(call gb_LinkTarget_add_libs,$(1),\
-	$(call gb_UnpackedTarball_get_dir,libcdr)/src/lib/.libs/libcdr-0.0$(gb_StaticLibrary_PLAINEXT) \
+	$(call gb_UnpackedTarball_get_dir,libcdr)/src/lib/.libs/libcdr-0.1$(gb_StaticLibrary_PLAINEXT) \
 )
 $(call gb_LinkTarget_use_external_project,$(1),libcdr)
 endef
@@ -1619,11 +1619,11 @@ else # !SYSTEM_EBOOK
 
 define gb_LinkTarget__use_ebook
 $(call gb_LinkTarget_set_include,$(1),\
-	$(EBOOK_CFLAGS) \
+	-I${WORKDIR}/UnpackedTarball/libebook/inc \
 	$$(INCLUDE) \
 )
 $(call gb_LinkTarget_add_libs,$(1),\
-	$(call gb_UnpackedTarball_get_dir,libebook)/src/lib/.libs/libe-book-0.0$(gb_StaticLibrary_PLAINEXT) \
+	$(call gb_UnpackedTarball_get_dir,libebook)/src/lib/.libs/libe-book-0.1$(gb_StaticLibrary_PLAINEXT) \
 )
 $(call gb_LinkTarget_use_external_project,$(1),libebook)
 
@@ -1654,11 +1654,11 @@ else # !SYSTEM_ETONYEK
 
 define gb_LinkTarget__use_etonyek
 $(call gb_LinkTarget_set_include,$(1),\
-	$(ETONYEK_CFLAGS) \
+	-I${WORKDIR}/UnpackedTarball/libetonyek/inc \
 	$$(INCLUDE) \
 )
 $(call gb_LinkTarget_add_libs,$(1),\
-	$(call gb_UnpackedTarball_get_dir,libetonyek)/src/lib/.libs/libetonyek-0.0$(gb_StaticLibrary_PLAINEXT) \
+	$(call gb_UnpackedTarball_get_dir,libetonyek)/src/lib/.libs/libetonyek-0.1$(gb_StaticLibrary_PLAINEXT) \
 )
 $(call gb_LinkTarget_use_external_project,$(1),libetonyek)
 
@@ -1689,11 +1689,11 @@ else # !SYSTEM_FREEHAND
 
 define gb_LinkTarget__use_freehand
 $(call gb_LinkTarget_set_include,$(1),\
-	$(FREEHAND_CFLAGS) \
+	-I${WORKDIR}/UnpackedTarball/libfreehand/inc \
 	$$(INCLUDE) \
 )
 $(call gb_LinkTarget_add_libs,$(1),\
-	$(call gb_UnpackedTarball_get_dir,libfreehand)/src/lib/.libs/libfreehand-0.0$(gb_StaticLibrary_PLAINEXT) \
+	$(call gb_UnpackedTarball_get_dir,libfreehand)/src/lib/.libs/libfreehand-0.1$(gb_StaticLibrary_PLAINEXT) \
 )
 $(call gb_LinkTarget_use_external_project,$(1),libfreehand)
 
@@ -1751,7 +1751,7 @@ $(call gb_LinkTarget_set_include,$(1),\
 	$$(INCLUDE) \
 )
 $(call gb_LinkTarget_add_libs,$(1),\
-	-L$(call gb_UnpackedTarball_get_dir,libodfgen)/src/.libs -lodfgen-0.0 \
+	-L$(call gb_UnpackedTarball_get_dir,libodfgen)/src/.libs -lodfgen-0.1 \
 )
 
 endef
@@ -1846,7 +1846,7 @@ $(call gb_LinkTarget_set_include,$(1),\
 	$$(INCLUDE) \
 )
 $(call gb_LinkTarget_add_libs,$(1),\
-	$(call gb_UnpackedTarball_get_dir,libabw)/src/lib/.libs/libabw-0.0$(gb_StaticLibrary_PLAINEXT) \
+	$(call gb_UnpackedTarball_get_dir,libabw)/src/lib/.libs/libabw-0.1$(gb_StaticLibrary_PLAINEXT) \
 )
 $(call gb_LinkTarget_use_external_project,$(1),libabw)
 
@@ -1878,7 +1878,7 @@ $(call gb_LinkTarget_set_include,$(1),\
 	$$(INCLUDE) \
 )
 $(call gb_LinkTarget_add_libs,$(1),\
-	$(call gb_UnpackedTarball_get_dir,libmspub)/src/lib/.libs/libmspub-0.0$(gb_StaticLibrary_PLAINEXT) \
+	$(call gb_UnpackedTarball_get_dir,libmspub)/src/lib/.libs/libmspub-0.1$(gb_StaticLibrary_PLAINEXT) \
 )
 $(call gb_LinkTarget_use_external_project,$(1),libmspub)
 
@@ -1906,7 +1906,7 @@ $(call gb_LinkTarget_set_include,$(1),\
 	$$(INCLUDE) \
 )
 $(call gb_LinkTarget_add_libs,$(1),\
-	$(call gb_UnpackedTarball_get_dir,libvisio)/src/lib/.libs/libvisio-0.0$(gb_StaticLibrary_PLAINEXT) \
+	$(call gb_UnpackedTarball_get_dir,libvisio)/src/lib/.libs/libvisio-0.1$(gb_StaticLibrary_PLAINEXT) \
 )
 $(call gb_LinkTarget_use_external_project,$(1),libvisio)
 
@@ -1935,7 +1935,7 @@ $(call gb_LinkTarget_set_include,$(1),\
 	$$(INCLUDE) \
 )
 $(call gb_LinkTarget_add_libs,$(1),\
-	$(call gb_UnpackedTarball_get_dir,libwpd)/src/lib/.libs/libwpd-0.9$(gb_StaticLibrary_PLAINEXT) \
+	$(call gb_UnpackedTarball_get_dir,libwpd)/src/lib/.libs/libwpd-0.10$(gb_StaticLibrary_PLAINEXT) \
 )
 $(call gb_LinkTarget_use_external_project,$(1),libwpd)
 
@@ -1968,7 +1968,7 @@ $(call gb_LinkTarget_set_include,$(1),\
 	$$(INCLUDE) \
 )
 $(call gb_LinkTarget_add_libs,$(1),\
-	$(call gb_UnpackedTarball_get_dir,libwpg)/src/lib/.libs/libwpg-0.2$(gb_StaticLibrary_PLAINEXT) \
+	$(call gb_UnpackedTarball_get_dir,libwpg)/src/lib/.libs/libwpg-0.3$(gb_StaticLibrary_PLAINEXT) \
 )
 $(call gb_LinkTarget_use_external_project,$(1),libwpg)
 
@@ -2001,7 +2001,7 @@ $(call gb_LinkTarget_set_include,$(1),\
 	$$(INCLUDE) \
 )
 $(call gb_LinkTarget_add_libs,$(1),\
-	$(call gb_UnpackedTarball_get_dir,libwps)/src/lib/.libs/libwps-0.2$(gb_StaticLibrary_PLAINEXT) \
+	$(call gb_UnpackedTarball_get_dir,libwps)/src/lib/.libs/libwps-0.3$(gb_StaticLibrary_PLAINEXT) \
 )
 $(call gb_LinkTarget_use_external_project,$(1),libwps)
 
@@ -2033,7 +2033,7 @@ $(call gb_LinkTarget_set_include,$(1),\
 	$$(INCLUDE) \
 )
 $(call gb_LinkTarget_add_libs,$(1),\
-	$(call gb_UnpackedTarball_get_dir,libmwaw)/src/lib/.libs/libmwaw-0.2$(gb_StaticLibrary_PLAINEXT) \
+	$(call gb_UnpackedTarball_get_dir,libmwaw)/src/lib/.libs/libmwaw-0.3$(gb_StaticLibrary_PLAINEXT) \
 )
 $(call gb_LinkTarget_use_external_project,$(1),libmwaw)
 
diff --git a/configure.ac b/configure.ac
index fc81afd..72ed99d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7702,49 +7702,49 @@ dnl Check for system librevenge
 dnl ===================================================================
 AS_IF([test "$COM" = "MSC"],
       [librevenge_libdir="${WORKDIR}/LinkTarget/Library"],
-      [librevenge_libdir="${WORKDIR}/UnpackedTarball/lirevenge/src/lib/.libs"]
+      [librevenge_libdir="${WORKDIR}/UnpackedTarball/librevenge/src/lib/.libs"]
 )
 libo_CHECK_SYSTEM_MODULE([librevenge],[REVENGE],[librevenge-0.0],["-I${WORKDIR}/UnpackedTarball/librevenge/inc"],["-L${librevenge_libdir} -lrevenge-0.0"]),
 
 dnl ===================================================================
 dnl Check for system libe-book
 dnl ===================================================================
-libo_CHECK_SYSTEM_MODULE([libebook],[EBOOK],[libe-book-0.0 >= 0.0.2],["-I${WORKDIR}/UnpackedTarball/libebook/inc"],["-L${WORKDIR}/UnpackedTarball/libebook/src/lib/.libs -le-book-0.0"])
+libo_CHECK_SYSTEM_MODULE([libebook],[EBOOK],[libe-book-0.1])
 
 dnl ===================================================================
 dnl Check for system libetonyek
 dnl ===================================================================
-libo_CHECK_SYSTEM_MODULE([libetonyek],[ETONYEK],[libetonyek-0.0],["-I${WORKDIR}/UnpackedTarball/libetonyek/inc"],["-L${WORKDIR}/UnpackedTarball/libetonyek/src/lib/.libs -letonyek-0.0"])
+libo_CHECK_SYSTEM_MODULE([libetonyek],[ETONYEK],[libetonyek-0.1])
 
 dnl ===================================================================
 dnl Check for system libfreehand
 dnl ===================================================================
-libo_CHECK_SYSTEM_MODULE([libfreehand],[FREEHAND],[libfreehand-0.0],["-I${WORKDIR}/UnpackedTarball/libfreehand/inc"],["-L${WORKDIR}/UnpackedTarball/libfreehand/src/lib/.libs -lfreehand-0.0"])
+libo_CHECK_SYSTEM_MODULE([libfreehand],[FREEHAND],[libfreehand-0.1])
 
 dnl ===================================================================
 dnl Check for system libodfgen
 dnl ===================================================================
-libo_CHECK_SYSTEM_MODULE([libodfgen],[ODFGEN],[libodfgen-0.0 >= 0.0.3])
+libo_CHECK_SYSTEM_MODULE([libodfgen],[ODFGEN],[libodfgen-0.1])
 
 dnl ===================================================================
 dnl Check for system libcdr
 dnl ===================================================================
-libo_CHECK_SYSTEM_MODULE([libcdr],[CDR],[libcdr-0.0 >= 0.0.5])
+libo_CHECK_SYSTEM_MODULE([libcdr],[CDR],[libcdr-0.1])
 
 dnl ===================================================================
 dnl Check for system libmspub
 dnl ===================================================================
-libo_CHECK_SYSTEM_MODULE([libmspub],[MSPUB],[libmspub-0.0])
+libo_CHECK_SYSTEM_MODULE([libmspub],[MSPUB],[libmspub-0.1])
 
 dnl ===================================================================
 dnl Check for system libmwaw
 dnl ===================================================================
-libo_CHECK_SYSTEM_MODULE([libmwaw],[MWAW],[libmwaw-0.2])
+libo_CHECK_SYSTEM_MODULE([libmwaw],[MWAW],[libmwaw-0.3 >= 0.3.1])
 
 dnl ===================================================================
 dnl Check for system libvisio
 dnl ===================================================================
-libo_CHECK_SYSTEM_MODULE([libvisio],[VISIO],[libvisio-0.0])
+libo_CHECK_SYSTEM_MODULE([libvisio],[VISIO],[libvisio-0.1])
 
 dnl ===================================================================
 dnl Check for system libcmis
@@ -7761,7 +7761,7 @@ AC_SUBST(ENABLE_CMIS)
 dnl ===================================================================
 dnl Check for system libwpd
 dnl ===================================================================
-libo_CHECK_SYSTEM_MODULE([libwpd],[WPD],[libwpd-0.9 >= 0.9.5 libwpd-stream-0.9 >= 0.9.5],["-I${WORKDIR}/UnpackedTarball/libwpd/inc"],["-L${WORKDIR}/UnpackedTarball/libwpd/src/lib/.libs -lwpd-0.9"])
+libo_CHECK_SYSTEM_MODULE([libwpd],[WPD],[libwpd-0.10 libwpd-stream-0.10],["-I${WORKDIR}/UnpackedTarball/libwpd/inc"],["-L${WORKDIR}/UnpackedTarball/libwpd/src/lib/.libs -lwpd-0.10"])
 
 dnl ===================================================================
 dnl Check for system lcms2
@@ -7816,17 +7816,17 @@ AC_SUBST([SYSTEM_FREETYPE])
 dnl ===================================================================
 dnl Check for system libabw
 dnl ===================================================================
-libo_CHECK_SYSTEM_MODULE([libabw],[ABW],[libabw-0.0],["-I${WORKDIR}/UnpackedTarball/libabw/inc"],["-L${WORKDIR}/UnpackedTarball/libabw/src/lib/.libs -labw-0.0"])
+libo_CHECK_SYSTEM_MODULE([libabw],[ABW],[libabw-0.1])
 
 dnl ===================================================================
 dnl Check for system libwps
 dnl ===================================================================
-libo_CHECK_SYSTEM_MODULE([libwps],[WPS],[libwps-0.2],["-I${WORKDIR}/UnpackedTarball/libwps/inc"],["-L${WORKDIR}/UnpackedTarball/libwps/src/lib/.libs -lwps-0.2"])
+libo_CHECK_SYSTEM_MODULE([libwps],[WPS],[libwps-0.3])
 
 dnl ===================================================================
 dnl Check for system libwpg
 dnl ===================================================================
-libo_CHECK_SYSTEM_MODULE([libwpg],[WPG],[libwpg-0.2],["-I${WORKDIR}/UnpackedTarball/libwpg/inc"],["-L${WORKDIR}/UnpackedTarball/libwpg/src/lib/.libs -lwpg-0.2"])
+libo_CHECK_SYSTEM_MODULE([libwpg],[WPG],[libwpg-0.3])
 
 # ===================================================================
 # Check for system libxslt
diff --git a/download.lst b/download.lst
index 9c14e51..02268c2 100644
--- a/download.lst
+++ b/download.lst
@@ -1,5 +1,5 @@
-export ABW_MD5SUM := 40fa48e03b1e28ae0325cc34b35bc46d
-export ABW_TARBALL := libabw-0.0.2.tar.bz2
+export ABW_MD5SUM := 9317e967c8fa8ff50e049744c4b33c87
+export ABW_TARBALL := libabw-0.1.0.tar.bz2
 export APACHE_COMMONS_CODEC_TARBALL := $(if $(filter TRUE,$(HAVE_JAVA6))\
   ,048751f3271906db5126ab76870444c4-commons-codec-1.9-src.zip\
   ,2e482c7567908d334785ce7d69ddfff7-commons-codec-1.6-src.tar.gz\
@@ -17,8 +17,8 @@ export APR_UTIL_TARBALL := apr-util-1.5.3.tar.gz
 export BOOST_TARBALL := d6eef4b4cacb2183f2bf265a5a03a354-boost_1_55_0.tar.bz2
 export BSH_TARBALL := ea570af93c284aa9e5621cd563f54f4d-bsh-2.0b1-src.tar.gz
 export CAIRO_TARBALL := f101a9e88b783337b20b2e26dfd26d5f-cairo-1.10.2.tar.gz
-export CDR_MD5SUM := fbcd8619fc6646f41d527c1329102998
-export CDR_TARBALL := libcdr-0.0.15.tar.bz2
+export CDR_MD5SUM := 0e2f56934c8872ec4a254cd4bb1d7cf6
+export CDR_TARBALL := libcdr-0.1.0.tar.bz2
 export CLUCENE_TARBALL := 48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz
 export CMIS_TARBALL := 22f8a85daf4a012180322e1f52a7563b-libcmis-0.4.1.tar.gz
 export COINMP_MD5SUM := 1cce53bf4b40ae29790d2c5c9f8b1129
@@ -30,11 +30,11 @@ export CT2N_TARBALL := 451ccf439a36a568653b024534669971-ConvertTextToNumber-1.3.
 export CURL_MD5SUM := e6d1f9d1b59da5062109ffe14e0569a4
 export CURL_TARBALL := curl-7.36.0.tar.bz2
 export DBGHELP_DLL := 13fbc2e8b37ddf28181dd6d8081c2b8e-dbghelp.dll
-export EBOOK_MD5SUM := 2f1ceaf2ac8752ed278e175447d9b978
-export EBOOK_TARBALL := libe-book-0.0.3.tar.bz2
+export EBOOK_MD5SUM := 3244af3faf9e8334b8c45d1107ba8ca2
+export EBOOK_TARBALL := libe-book-0.1.0.tar.bz2
 export EPM_TARBALL := 3ade8cfe7e59ca8e65052644fed9fca4-epm-3.7.tar.gz
-export ETONYEK_MD5SUM := 3c50bc60394d1f2675fbf9bd22581363
-export ETONYEK_TARBALL := libetonyek-0.0.4.tar.bz2
+export ETONYEK_MD5SUM := 9d4de5e3b0846dc53b9d18908557fb02
+export ETONYEK_TARBALL := libetonyek-0.1.0.tar.bz2
 export EXPAT_TARBALL := dd7dab7a5fea97d2a6a43f511449b7cd-expat-2.1.0.tar.gz
 export FIREBIRD_MD5SUM := 21154d2004e025c8a3666625b0357bb5
 export FIREBIRD_TARBALL := Firebird-2.5.2.26540-0.tar.bz2
@@ -52,8 +52,8 @@ export FONT_OPENSANS_TARBALL := 7a15edea7d415ac5150ea403e27401fd-open-sans-font-
 export FONT_PTSERIF_TARBALL := c3c1a8ba7452950636e871d25020ce0d-pt-serif-font-1.0000W.tar.gz
 export FONT_SOURCECODE_TARBALL := 0279a21fab6f245e85a6f85fea54f511-source-code-font-1.009.tar.gz
 export FONT_SOURCESANS_TARBALL := 1e9ddfe25ac9577da709d7b2ea36f939-source-sans-font-1.036.tar.gz
-export FREEHAND_MD5SUM := 496dd00028afcc19f896b01394769043
-export FREEHAND_TARBALL := libfreehand-0.0.0.tar.bz2
+export FREEHAND_MD5SUM := 5f029fef73e42a2c2ae4524a7513f97d
+export FREEHAND_TARBALL := libfreehand-0.1.0.tar.bz2
 export FREETYPE_TARBALL := dbf2caca1d3afd410a29217a9809d397-freetype-2.4.8.tar.bz2
 export GLEW_TARBALL := 594eb47b4b1210e25438d51825404d5a-glew-1.10.0.zip
 export GLM_TARBALL := bae83fa5dc7f081768daace6e199adc3-glm-0.9.4.6-libreoffice.zip
@@ -96,16 +96,16 @@ export LIBXSLT_TARBALL := 9667bf6f9310b957254fdcf6596600b7-libxslt-1.1.28.tar.gz
 export LPSOLVE_TARBALL := 26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz
 export MARIADB_TARBALL := 05f84c95b610c21c5fd510d10debcabf-mariadb-native-client-1.0.0.tar.bz2
 export MDDS_TARBALL := aa5ca9d1ed1082890835afab26400a39-mdds_0.10.3.tar.bz2
-export MSPUB_MD5SUM := 1120705cd0f0d9bd5506360bf57b6c2e
-export MSPUB_TARBALL := libmspub-0.0.6.tar.bz2
-export MWAW_MD5SUM := d794625f156a9fb1c53b3f8a8aa13b5e
-export MWAW_TARBALL := libmwaw-0.2.0.tar.bz2
+export MSPUB_MD5SUM := 7abe88964fd37fa4893792966ba1ac87
+export MSPUB_TARBALL := libmspub-0.1.0.tar.bz2
+export MWAW_MD5SUM := 6f1ac4a0e24131c422e1e91f07718fb6
+export MWAW_TARBALL := libmwaw-0.3.1.tar.bz2
 export MYSQLCPPCONN_TARBALL := 0981bda6548a8c8233ffce2b6e4b2a23-mysql-connector-c++-1.1.0.tar.gz
 export MYTHES_TARBALL := 46e92b68e31e858512b680b3b61dc4c1-mythes-1.2.3.tar.gz
 export NEON_TARBALL := ff369e69ef0f0143beb5626164e87ae2-neon-0.29.5.tar.gz
 export NSS_TARBALL := 06beb053e257d9e22641339c905c6eba-nss-3.15.3-with-nspr-4.10.2.tar.gz
-export ODFGEN_MD5SUM := e5483d1f0b71e64c367c1194b54b0f53
-export ODFGEN_TARBALL := libodfgen-0.0.4.tar.bz2
+export ODFGEN_MD5SUM := 6c708dbcca976ad56115c98f191a0e90
+export ODFGEN_TARBALL := libodfgen-0.1.0.tar.bz2
 export OPENCOLLADA_MD5SUM := 4ca8a6ef0afeefc864e9ef21b9f14bd6
 export OPENCOLLADA_TARBALL := OpenCOLLADA-master-6509aa13af.tar.bz2
 export OPENLDAP_TARBALL := 804c6cb5698db30b75ad0ff1c25baefd-openldap-2.4.31.tgz
@@ -129,11 +129,14 @@ export SERF_TARBALL := serf-1.2.1.tar.bz2
 export SWING_TARBALL := 35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
 export UCPP_TARBALL := 0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz
 export VIGRA_TARBALL := d62650a6f908e85643e557a236ea989c-vigra1.6.0.tar.gz
-export VISIO_MD5SUM := 82628333418f101a20cd21f980cf9f40
-export VISIO_TARBALL := libvisio-0.0.31.tar.bz2
-export WPD_TARBALL := a3dcac551fae5ebbec16e844810828c4-libwpd-0.9.9.tar.bz2
-export WPG_TARBALL := b85436266b2ac91d351ab5684b181151-libwpg-0.2.2.tar.bz2
-export WPS_TARBALL := 46eb0e7f213ad61bd5dee0c494132cb0-libwps-0.2.9.tar.bz2
+export VISIO_MD5SUM := 931588332ba44682c9cd5eefbd358ab4
+export VISIO_TARBALL := libvisio-0.1.0.tar.bz2
+export WPD_MD5SUM := 0773d79a1f240ef9f4f20242b13c5bb7
+export WPD_TARBALL := libwpd-0.10.0.tar.bz2
+export WPG_MD5SUM := 17da9770cb8b317b7633f9807b32b71a
+export WPG_TARBALL := libwpg-0.3.0.tar.bz2
+export WPS_MD5SUM := d4d77d08b9048bae3b8ec8df11f80efd
+export WPS_TARBALL := libwps-0.3.0.tar.bz2
 export XSLTML_TARBALL := a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip
 export ZLIB_MD5SUM := 44d667c142d7cda120332623eab69f40
 export ZLIB_TARBALL := zlib-1.2.8.tar.gz
diff --git a/external/libabw/ExternalProject_libabw.mk b/external/libabw/ExternalProject_libabw.mk
index 1bcb33d..63d4e52 100644
--- a/external/libabw/ExternalProject_libabw.mk
+++ b/external/libabw/ExternalProject_libabw.mk
@@ -18,7 +18,7 @@ $(eval $(call gb_ExternalProject_register_targets,libabw,\
 $(eval $(call gb_ExternalProject_use_externals,libabw,\
 	boost_headers \
 	libxml2 \
-	wpd \
+	revenge \
 	zlib \
 ))
 
@@ -33,13 +33,12 @@ $(call gb_ExternalProject_get_state_target,libabw,build) :
 			--disable-tools \
 			--disable-debug \
 			--disable-werror \
+			$(if $(VERBOSE)$(verbose),--disable-silent-rules,--enable-silent-rules) \
 			CXXFLAGS="$(if $(SYSTEM_BOOST),$(BOOST_CPPFLAGS),\
 				-I$(call gb_UnpackedTarball_get_dir,boost) -I$(BUILDDIR)/config_$(gb_Side)) \
 			$(if $(SYSTEM_LIBXML),,-I$(call gb_UnpackedTarball_get_dir,xml2)/include)" \
 			$(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
-		&& (cd $(EXTERNAL_WORKDIR)/src/lib && \
-		    $(if $(VERBOSE)$(verbose),V=1) \
-		    $(MAKE)) \
+		&& $(MAKE) \
 	)
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libcdr/ExternalProject_libcdr.mk b/external/libcdr/ExternalProject_libcdr.mk
index d96b0b2..174de18 100644
--- a/external/libcdr/ExternalProject_libcdr.mk
+++ b/external/libcdr/ExternalProject_libcdr.mk
@@ -19,8 +19,7 @@ $(eval $(call gb_ExternalProject_use_externals,libcdr,\
 	boost_headers \
 	icu \
 	lcms2 \
-	wpd \
-	wpg \
+	revenge \
 	zlib \
 ))
 
@@ -32,14 +31,14 @@ $(call gb_ExternalProject_get_state_target,libcdr,build) :
 			--enable-static \
 			--disable-shared \
 			--without-docs \
+			--disable-tools \
 			--disable-debug \
 			--disable-werror \
 			--disable-weffc \
+			$(if $(VERBOSE)$(verbose),--disable-silent-rules,--enable-silent-rules) \
 			CXXFLAGS="$(if $(SYSTEM_BOOST),$(BOOST_CPPFLAGS),-I$(call gb_UnpackedTarball_get_dir,boost) -I$(BUILDDIR)/config_$(gb_Side))" \
 			$(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
-		&& (cd $(EXTERNAL_WORKDIR)/src/lib && \
-		    $(if $(VERBOSE)$(verbose),V=1) \
-		    $(MAKE)) \
+		&& $(MAKE) \
 	)
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libebook/0001-blind-attempt-to-workaround-MSVC-bug.patch b/external/libebook/0001-blind-attempt-to-workaround-MSVC-bug.patch
new file mode 100644
index 0000000..2ecedf3
--- /dev/null
+++ b/external/libebook/0001-blind-attempt-to-workaround-MSVC-bug.patch
@@ -0,0 +1,87 @@
+From e9362c25b772c2cfb657b1234d8b636669a1b01b Mon Sep 17 00:00:00 2001
+From: David Tardon <dtardon at redhat.com>
+Date: Mon, 26 May 2014 16:33:00 +0200
+Subject: [PATCH] blind attempt to workaround MSVC bug
+
+http://msdn.microsoft.com/en-us/library/27zksbks.aspx
+---
+ src/lib/EBOOKDocument.cpp | 49 ++++++++++++++++++++++++++++-------------------
+ 1 file changed, 29 insertions(+), 20 deletions(-)
+
+diff --git a/src/lib/EBOOKDocument.cpp b/src/lib/EBOOKDocument.cpp
+index ea1a223..5b8e7ec 100644
+--- a/src/lib/EBOOKDocument.cpp
++++ b/src/lib/EBOOKDocument.cpp
+@@ -173,6 +173,15 @@ catch (...)
+   return EBOOKDocument::TYPE_UNKNOWN;
+ }
+ 
++extern "C"
++{
++
++  void detectInternalSubset(void *const ctx, const xmlChar *const name, const xmlChar *, const xmlChar *);
++  void detectExternalSubset(void *const ctx, const xmlChar *const name, const xmlChar *, const xmlChar *);
++  void detectStartElement(void *const ctx, const xmlChar *const name, const xmlChar **);
++
++}
++
+ struct HTMLContext
+ {
+   xmlSAXHandler handler;
+@@ -196,26 +205,6 @@ void detectHTMLContent(void *const ctx, const xmlChar *const name)
+   context->html = EBOOKHTMLToken::html == getHTMLTokenId(char_cast(name));
+ }
+ 
+-extern "C"
+-{
+-
+-  void detectInternalSubset(void *const ctx, const xmlChar *const name, const xmlChar *, const xmlChar *)
+-  {
+-    detectHTMLContent(ctx, name);
+-  }
+-
+-  void detectExternalSubset(void *const ctx, const xmlChar *const name, const xmlChar *, const xmlChar *)
+-  {
+-    detectHTMLContent(ctx, name);
+-  }
+-
+-  void detectStartElement(void *const ctx, const xmlChar *const name, const xmlChar **)
+-  {
+-    detectHTMLContent(ctx, name);
+-  }
+-
+-}
+-
+ HTMLContext::HTMLContext()
+   : handler()
+   , detected(false)
+@@ -250,6 +239,26 @@ catch (...)
+   return false;
+ }
+ 
++extern "C"
++{
++
++  void detectInternalSubset(void *const ctx, const xmlChar *const name, const xmlChar *, const xmlChar *)
++  {
++    detectHTMLContent(ctx, name);
++  }
++
++  void detectExternalSubset(void *const ctx, const xmlChar *const name, const xmlChar *, const xmlChar *)
++  {
++    detectHTMLContent(ctx, name);
++  }
++
++  void detectStartElement(void *const ctx, const xmlChar *const name, const xmlChar **)
++  {
++    detectHTMLContent(ctx, name);
++  }
++
++}
++
+ template<class Parser>
+ bool probe(const RVNGInputStreamPtr_t &input, const EBOOKDocument::Type type, EBOOKDocument::Type *const typeOut, EBOOKDocument::Confidence &confidence) try
+ {
+-- 
+1.9.0
+
diff --git a/external/libebook/ExternalProject_libebook.mk b/external/libebook/ExternalProject_libebook.mk
index b4e2bd6..785aeb7 100644
--- a/external/libebook/ExternalProject_libebook.mk
+++ b/external/libebook/ExternalProject_libebook.mk
@@ -19,10 +19,11 @@ $(eval $(call gb_ExternalProject_use_externals,libebook,\
 	boost_headers \
 	icu \
 	libxml2 \
-	wpd \
+	revenge \
 	zlib \
 ))
 
+# TODO: remove the generators/stream empty vars on libe-book update
 $(call gb_ExternalProject_get_state_target,libebook,build) :
 	$(call gb_ExternalProject_run,build,\
 		export PKG_CONFIG="" \
@@ -31,15 +32,18 @@ $(call gb_ExternalProject_get_state_target,libebook,build) :
 			--enable-static \
 			--disable-shared \
 			--without-docs \
+			--without-tools \
+			--disable-tests \
 			$(if $(filter TRUE,$(ENABLE_DEBUG)),--enable-debug,--disable-debug) \
+			$(if $(VERBOSE)$(verbose),--disable-silent-rules,--enable-silent-rules) \
 			--disable-werror \
 			--disable-weffc \
 			CXXFLAGS="$(if $(SYSTEM_BOOST),$(BOOST_CPPFLAGS),-I$(call gb_UnpackedTarball_get_dir,boost) -I$(BUILDDIR)/config_$(gb_Side))" \
 			XML_CFLAGS="$(if $(SYSTEM_LIBXML),$(LIBXML_CFLAGS),-I$(call gb_UnpackedTarball_get_dir,xml2)/include)" \
 			XML_LIBS="$(LIBXML_LIBS)" \
+			REVENGE_GENERATORS_CFLAGS=' ' REVENGE_GENERATORS_LIBS=' ' REVENGE_STREAM_CFLAGS=' ' REVENGE_STREAM_LIBS=' ' \
 			$(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
-		&& cd src/lib \
-		&& $(MAKE) $(if $(VERBOSE)$(verbose),V=1) \
+		&& $(MAKE) \
 	)
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libebook/UnpackedTarball_libebook.mk b/external/libebook/UnpackedTarball_libebook.mk
index 7dfee2c..bcc098a 100644
--- a/external/libebook/UnpackedTarball_libebook.mk
+++ b/external/libebook/UnpackedTarball_libebook.mk
@@ -13,4 +13,8 @@ $(eval $(call gb_UnpackedTarball_set_tarball,libebook,$(EBOOK_TARBALL)))
 
 $(eval $(call gb_UnpackedTarball_set_patchlevel,libebook,1))
 
+$(eval $(call gb_UnpackedTarball_add_patches,libebook,\
+	external/libebook/0001-blind-attempt-to-workaround-MSVC-bug.patch \
+))
+
 # vim: set noet sw=4 ts=4:
diff --git a/external/libetonyek/ExternalProject_libetonyek.mk b/external/libetonyek/ExternalProject_libetonyek.mk
index 1108282..ddf1394 100644
--- a/external/libetonyek/ExternalProject_libetonyek.mk
+++ b/external/libetonyek/ExternalProject_libetonyek.mk
@@ -18,7 +18,7 @@ $(eval $(call gb_ExternalProject_register_targets,libetonyek,\
 $(eval $(call gb_ExternalProject_use_externals,libetonyek,\
 	boost_headers \
 	libxml2 \
-	wpd \
+	revenge \
 	zlib \
 ))
 
@@ -34,11 +34,12 @@ $(call gb_ExternalProject_get_state_target,libetonyek,build) :
 			--disable-werror \
 			--disable-weffc \
 			--without-tools \
+			$(if $(VERBOSE)$(verbose),--disable-silent-rules,--enable-silent-rules) \
 			BOOST_CFLAGS="$(if $(SYSTEM_BOOST),$(BOOST_CPPFLAGS),-I$(call gb_UnpackedTarball_get_dir,boost) -I$(BUILDDIR)/config_$(gb_Side))" \
 			XML_CFLAGS="$(if $(SYSTEM_LIBXML),$(LIBXML_CFLAGS),-I$(call gb_UnpackedTarball_get_dir,xml2)/include)" \
 			XML_LIBS="$(LIBXML_LIBS)" \
 			$(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
-		&& $(MAKE) $(if $(VERBOSE)$(verbose),V=1) \
+		&& $(MAKE) \
 	)
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libfreehand/ExternalProject_libfreehand.mk b/external/libfreehand/ExternalProject_libfreehand.mk
index 068d886..39380e9 100644
--- a/external/libfreehand/ExternalProject_libfreehand.mk
+++ b/external/libfreehand/ExternalProject_libfreehand.mk
@@ -16,8 +16,7 @@ $(eval $(call gb_ExternalProject_register_targets,libfreehand,\
 ))
 
 $(eval $(call gb_ExternalProject_use_externals,libfreehand,\
-	wpd \
-	wpg \
+	revenge \
 	zlib \
 ))
 
@@ -29,13 +28,13 @@ $(call gb_ExternalProject_get_state_target,libfreehand,build) :
 			--enable-static \
 			--disable-shared \
 			--without-docs \
+			--disable-tools \
 			--disable-debug \
 			--disable-werror \
 			--disable-weffc \
+			$(if $(VERBOSE)$(verbose),--disable-silent-rules,--enable-silent-rules) \
 			$(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
-		&& (cd $(EXTERNAL_WORKDIR)/src/lib && \
-		    $(if $(VERBOSE)$(verbose),V=1) \
-		    $(MAKE)) \
+		&& $(MAKE) \
 	)
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libmspub/ExternalProject_libmspub.mk b/external/libmspub/ExternalProject_libmspub.mk
index a9edc00..8cbf9a6 100644
--- a/external/libmspub/ExternalProject_libmspub.mk
+++ b/external/libmspub/ExternalProject_libmspub.mk
@@ -18,8 +18,7 @@ $(eval $(call gb_ExternalProject_register_targets,libmspub,\
 $(eval $(call gb_ExternalProject_use_externals,libmspub,\
 	boost_headers \
 	icu \
-	wpd \
-	wpg \
+	revenge \
 ))
 
 $(call gb_ExternalProject_get_state_target,libmspub,build) :
@@ -30,14 +29,14 @@ $(call gb_ExternalProject_get_state_target,libmspub,build) :
 			--enable-static \
 			--disable-shared \
 			--without-docs \
+			--disable-tools \
 			--disable-debug \
 			--disable-werror \
 			--disable-weffc \
+			$(if $(VERBOSE)$(verbose),--disable-silent-rules,--enable-silent-rules) \
 			CXXFLAGS="$(if $(SYSTEM_BOOST),$(BOOST_CPPFLAGS),-I$(call gb_UnpackedTarball_get_dir,boost) -I$(BUILDDIR)/config_$(gb_Side))" \
 			$(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
-		&& (cd $(EXTERNAL_WORKDIR)/src/lib && \
-			$(if $(VERBOSE)$(verbose),V=1) \
-			$(MAKE)) \
+		&& $(MAKE) \
 	)
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libmwaw/0001-librevenge-stream-is-optional-don-t-depend-on-it.patch b/external/libmwaw/0001-librevenge-stream-is-optional-don-t-depend-on-it.patch
new file mode 100644
index 0000000..2b42f90
--- /dev/null
+++ b/external/libmwaw/0001-librevenge-stream-is-optional-don-t-depend-on-it.patch
@@ -0,0 +1,293 @@
+From 7b7cf183a7ad454706aa0f1657c851c578ec476e Mon Sep 17 00:00:00 2001
+From: David Tardon <dtardon at redhat.com>
+Date: Sun, 25 May 2014 15:51:54 +0200
+Subject: [PATCH] librevenge-stream is optional: don't depend on it
+
+---
+ src/lib/MWAWStringStream.cxx | 153 +++++++++++++++++++++++++++++++++++++++++++
+ src/lib/MWAWStringStream.hxx |  50 ++++++++++++++
+ src/lib/Makefile.am          |   2 +
+ src/lib/WingzParser.cxx      |   3 +-
+ 4 files changed, 207 insertions(+), 1 deletion(-)
+ create mode 100644 src/lib/MWAWStringStream.cxx
+ create mode 100644 src/lib/MWAWStringStream.hxx
+
+diff --git a/src/lib/MWAWStringStream.cxx b/src/lib/MWAWStringStream.cxx
+new file mode 100644
+index 0000000..efea071
+--- /dev/null
++++ b/src/lib/MWAWStringStream.cxx
+@@ -0,0 +1,153 @@
++/* -*- Mode: C++; c-default-style: "k&r"; indent-tabs-mode: nil; tab-width: 2; c-basic-offset: 2 -*- */
++
++/* libmwaw
++* Version: MPL 2.0 / LGPLv2+
++*
++* The contents of this file are subject to the Mozilla Public License Version
++* 2.0 (the "License"); you may not use this file except in compliance with
++* the License or as specified alternatively below. You may obtain a copy of
++* the License at http://www.mozilla.org/MPL/
++*
++* Software distributed under the License is distributed on an "AS IS" basis,
++* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
++* for the specific language governing rights and limitations under the
++* License.
++*
++* Alternatively, the contents of this file may be used under the terms of
++* the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"),
++* in which case the provisions of the LGPLv2+ are applicable
++* instead of those above.
++*/
++
++#include <cstring>
++#include <vector>
++
++#include <librevenge-stream/librevenge-stream.h>
++
++#include "MWAWStringStream.hxx"
++
++class MWAWStringStreamPrivate
++{
++public:
++  MWAWStringStreamPrivate(const unsigned char *data, unsigned dataSize);
++  ~MWAWStringStreamPrivate();
++  std::vector<unsigned char> buffer;
++  long offset;
++private:
++  MWAWStringStreamPrivate(const MWAWStringStreamPrivate &);
++  MWAWStringStreamPrivate &operator=(const MWAWStringStreamPrivate &);
++};
++
++MWAWStringStreamPrivate::MWAWStringStreamPrivate(const unsigned char *data, unsigned dataSize) :
++  buffer(dataSize),
++  offset(0)
++{
++  std::memcpy(&buffer[0], data, dataSize);
++}
++
++MWAWStringStreamPrivate::~MWAWStringStreamPrivate()
++{
++}
++
++MWAWStringStream::MWAWStringStream(const unsigned char *data, const unsigned int dataSize) :
++  librevenge::RVNGInputStream(),
++  d(new MWAWStringStreamPrivate(data, dataSize))
++{
++}
++
++MWAWStringStream::~MWAWStringStream()
++{
++  delete d;
++}
++
++const unsigned char *MWAWStringStream::read(unsigned long numBytes, unsigned long &numBytesRead)
++{
++  numBytesRead = 0;
++
++  if (numBytes == 0)
++    return 0;
++
++  long numBytesToRead;
++
++  if ((unsigned long)d->offset+numBytes < d->buffer.size())
++    numBytesToRead = (long) numBytes;
++  else
++    numBytesToRead = (long) d->buffer.size() - d->offset;
++
++  numBytesRead = (unsigned long) numBytesToRead; // about as paranoid as we can be..
++
++  if (numBytesToRead == 0)
++    return 0;
++
++  long oldOffset = d->offset;
++  d->offset += numBytesToRead;
++
++  return &d->buffer[size_t(oldOffset)];
++
++}
++
++long MWAWStringStream::tell()
++{
++  return d->offset;
++}
++
++int MWAWStringStream::seek(long offset, librevenge::RVNG_SEEK_TYPE seekType)
++{
++  if (seekType == librevenge::RVNG_SEEK_CUR)
++    d->offset += offset;
++  else if (seekType == librevenge::RVNG_SEEK_SET)
++    d->offset = offset;
++  else if (seekType == librevenge::RVNG_SEEK_END)
++    d->offset += d->buffer.size();
++
++  if (d->offset < 0) {
++    d->offset = 0;
++    return 1;
++  }
++  if ((long)d->offset > (long)d->buffer.size()) {
++    d->offset = (long) d->buffer.size();
++    return 1;
++  }
++
++  return 0;
++}
++
++bool MWAWStringStream::isEnd()
++{
++  if ((long)d->offset >= (long)d->buffer.size())
++    return true;
++
++  return false;
++}
++
++bool MWAWStringStream::isStructured()
++{
++  return false;
++}
++
++unsigned MWAWStringStream::subStreamCount()
++{
++  return 0;
++}
++
++const char *MWAWStringStream::subStreamName(unsigned)
++{
++  return 0;
++}
++
++bool MWAWStringStream::existsSubStream(const char *)
++{
++  return false;
++}
++
++librevenge::RVNGInputStream *MWAWStringStream::getSubStreamById(unsigned)
++{
++  return 0;
++}
++
++librevenge::RVNGInputStream *MWAWStringStream::getSubStreamByName(const char *)
++{
++  return 0;
++}
++
++// vim: set filetype=cpp tabstop=2 shiftwidth=2 cindent autoindent smartindent noexpandtab:
+diff --git a/src/lib/MWAWStringStream.hxx b/src/lib/MWAWStringStream.hxx
+new file mode 100644
+index 0000000..9a6aa02
+--- /dev/null
++++ b/src/lib/MWAWStringStream.hxx
+@@ -0,0 +1,50 @@
++/* -*- Mode: C++; c-default-style: "k&r"; indent-tabs-mode: nil; tab-width: 2; c-basic-offset: 2 -*- */
++
++/* libmwaw
++* Version: MPL 2.0 / LGPLv2+
++*
++* The contents of this file are subject to the Mozilla Public License Version
++* 2.0 (the "License"); you may not use this file except in compliance with
++* the License or as specified alternatively below. You may obtain a copy of
++* the License at http://www.mozilla.org/MPL/
++*
++* Software distributed under the License is distributed on an "AS IS" basis,
++* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
++* for the specific language governing rights and limitations under the
++* License.
++*
++* Alternatively, the contents of this file may be used under the terms of
++* the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"),
++* in which case the provisions of the LGPLv2+ are applicable
++* instead of those above.
++*/
++
++#include <librevenge-stream/librevenge-stream.h>
++
++class MWAWStringStreamPrivate;
++
++class MWAWStringStream: public librevenge::RVNGInputStream
++{
++public:
++  MWAWStringStream(const unsigned char *data, const unsigned int dataSize);
++  ~MWAWStringStream();
++
++  const unsigned char *read(unsigned long numBytes, unsigned long &numBytesRead);
++  long tell();
++  int seek(long offset, librevenge::RVNG_SEEK_TYPE seekType);
++  bool isEnd();
++
++  bool isStructured();
++  unsigned subStreamCount();
++  const char *subStreamName(unsigned);
++  bool existsSubStream(const char *name);
++  librevenge::RVNGInputStream *getSubStreamByName(const char *name);
++  librevenge::RVNGInputStream *getSubStreamById(unsigned);
++
++private:
++  MWAWStringStreamPrivate *d;
++  MWAWStringStream(const MWAWStringStream &); // copy is not allowed
++  MWAWStringStream &operator=(const MWAWStringStream &); // assignment is not allowed
++};
++
++// vim: set filetype=cpp tabstop=2 shiftwidth=2 cindent autoindent smartindent noexpandtab:
+diff --git a/src/lib/Makefile.in b/src/lib/Makefile.in
+index eb17bad..f7934b4 100644
+--- a/src/lib/Makefile.in
++++ b/src/lib/Makefile.in
+@@ -162,12 +162,12 @@ am_libmwaw_ at MWAW_MAJOR_VERSION@_ at MWAW_MI
+ 	MWAWPrinter.lo MWAWPropertyHandler.lo MWAWRSRCParser.lo \
+ 	MWAWSection.lo MWAWSpreadsheetDecoder.lo \
+ 	MWAWSpreadsheetEncoder.lo MWAWSpreadsheetListener.lo \
+-	MWAWSubDocument.lo MWAWTable.lo MWAWTextListener.lo \
+-	NisusWrtGraph.lo NisusWrtParser.lo NisusWrtStruct.lo \
+-	NisusWrtText.lo RagTimeParser.lo RagTimeSpreadsheet.lo \
+-	RagTimeText.lo SuperPaintParser.lo TeachTxtParser.lo \
+-	WingzParser.lo WriteNowParser.lo WriteNowText.lo \
+-	WriterPlsParser.lo ZWrtParser.lo ZWrtText.lo
++	MWAWStringStream.lo MWAWSubDocument.lo MWAWTable.lo \
++	MWAWTextListener.lo NisusWrtGraph.lo NisusWrtParser.lo \
++	NisusWrtStruct.lo NisusWrtText.lo RagTimeParser.lo \
++	RagTimeSpreadsheet.lo RagTimeText.lo SuperPaintParser.lo \
++	TeachTxtParser.lo WingzParser.lo WriteNowParser.lo \
++	WriteNowText.lo WriterPlsParser.lo ZWrtParser.lo ZWrtText.lo
+ libmwaw_ at MWAW_MAJOR_VERSION@_ at MWAW_MINOR_VERSION@_la_OBJECTS = $(am_libmwaw_ at MWAW_MAJOR_VERSION@_ at MWAW_MINOR_VERSION@_la_OBJECTS)
+ AM_V_lt = $(am__v_lt_ at AM_V@)
+ am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
+@@ -610,6 +610,8 @@ libmwaw_ at MWAW_MAJOR_VERSION@_ at MWAW_MINOR
+ 	MWAWSpreadsheetEncoder.hxx	\
+ 	MWAWSpreadsheetListener.cxx	\
+ 	MWAWSpreadsheetListener.hxx	\
++	MWAWStringStream.cxx		\
++	MWAWStringStream.hxx		\
+ 	MWAWSubDocument.cxx		\
+ 	MWAWSubDocument.hxx		\
+ 	MWAWTable.cxx			\
+@@ -812,6 +814,7 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/MWAWSpreadsheetDecoder.Plo at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/MWAWSpreadsheetEncoder.Plo at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/MWAWSpreadsheetListener.Plo at am__quote@
++ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/MWAWStringStream.Plo at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/MWAWSubDocument.Plo at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/MWAWTable.Plo at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/MWAWTextListener.Plo at am__quote@
+diff --git a/src/lib/WingzParser.cxx b/src/lib/WingzParser.cxx
+index 4813816..93dde7d 100644
+--- a/src/lib/WingzParser.cxx
++++ b/src/lib/WingzParser.cxx
+@@ -49,6 +49,7 @@
+ #include "MWAWPictMac.hxx"
+ #include "MWAWPrinter.hxx"
+ #include "MWAWSpreadsheetListener.hxx"
++#include "MWAWStringStream.hxx"
+ #include "MWAWSubDocument.hxx"
+ 
+ #include "WingzParser.hxx"
+@@ -2496,7 +2497,7 @@ bool WingzParser::decodeEncrypted()
+ 
+   // finally replace the actual input with a new input
+   shared_ptr<librevenge::RVNGInputStream> newInput
+-  (new librevenge::RVNGStringStream(buffer, (unsigned int)length));
++  (new MWAWStringStream(buffer, (unsigned int)length));
+   delete [] buffer;
+   getParserState()->m_input.reset(new MWAWInputStream(newInput, false));
+   return true;
+-- 
+1.9.0
+
diff --git a/external/libmwaw/0001-std-isfinite-is-C-11.patch b/external/libmwaw/0001-std-isfinite-is-C-11.patch
deleted file mode 100644
index 73fde5a..0000000
--- a/external/libmwaw/0001-std-isfinite-is-C-11.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 5da59d9aa9298136d447e4014aef207f00cdc82b Mon Sep 17 00:00:00 2001
-From: David Tardon <dtardon at redhat.com>
-Date: Sun, 3 Nov 2013 12:26:26 +0100
-Subject: [PATCH] std::isfinite is C++11
-
----
- configure.ac               | 10 ++++++++++
- src/lib/CWDbaseContent.cxx |  5 +++--
- 2 files changed, 13 insertions(+), 2 deletions(-)
-
-diff --git a/src/lib/CWDbaseContent.cxx b/src/lib/CWDbaseContent.cxx
-index f27148d..7198103 100644
---- a/src/lib/CWDbaseContent.cxx
-+++ b/src/lib/CWDbaseContent.cxx
-@@ -33,7 +33,6 @@
- 
- #include <time.h>
- 
--#include <cmath>
- #include <cstring>
- #include <ctime>
- #include <iomanip>
-@@ -41,6 +40,8 @@
- #include <set>
- #include <sstream>
- 
-+#include <boost/math/special_functions/fpclassify.hpp>
-+
- #include <libwpd/libwpd.h>
- 
- #include "MWAWContentListener.hxx"
-@@ -969,7 +970,7 @@ void CWDbaseContent::send(double val, CWStyleManager::CellFormat const &format)
-     if (type>=10&&type<=11) type += 4;
-     else if (type>=14) type=16;
-   }
--  if (type <= 0 || type >=16 || type==10 || type==11 || !std::isfinite(val)) {
-+  if (type <= 0 || type >=16 || type==10 || type==11 || !boost::math::isfinite(val)) {
-     s << val;
-     listener->insertUnicodeString(s.str().c_str());
-     return;
--- 
-1.8.3.1
-
diff --git a/external/libmwaw/0001-use-correct-type.patch b/external/libmwaw/0001-use-correct-type.patch
deleted file mode 100644
index 7a6ef2d..0000000
--- a/external/libmwaw/0001-use-correct-type.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From cde8d7c47cdea327f8153ab72cde650f1b36f7f8 Mon Sep 17 00:00:00 2001
-From: David Tardon <dtardon at redhat.com>
-Date: Sun, 3 Nov 2013 12:59:29 +0100
-Subject: [PATCH] use correct type
-
----
- src/lib/HMWJGraph.cxx | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/lib/HMWJGraph.cxx b/src/lib/HMWJGraph.cxx
-index fca366c..dd83ace 100644
---- a/src/lib/HMWJGraph.cxx
-+++ b/src/lib/HMWJGraph.cxx
-@@ -2668,7 +2668,7 @@ bool HMWJGraph::sendGroup(HMWJGraphInternal::Group const &group, MWAWPosition po
-     return true;
-   }
- 
--  std::multimap<long, int>::const_iterator fIt;
-+  std::map<long, int>::const_iterator fIt;
-   int numFrames = int(m_state->m_framesList.size());
-   for (size_t c=0; c<group.m_childsList.size(); ++c) {
-     long fId=group.m_childsList[c];
-@@ -2690,7 +2690,7 @@ bool HMWJGraph::sendGroup(HMWJGraphInternal::Group const &group, MWAWPosition po
- 
- bool HMWJGraph::canCreateGraphic(HMWJGraphInternal::Group const &group)
- {
--  std::multimap<long, int>::const_iterator fIt;
-+  std::map<long, int>::const_iterator fIt;
-   int page = group.m_page;
-   int numFrames = int(m_state->m_framesList.size());
-   for (size_t c=0; c<group.m_childsList.size(); ++c) {
-@@ -2726,7 +2726,7 @@ void HMWJGraph::sendGroup(HMWJGraphInternal::Group const &group, MWAWGraphicList
-   if (!listener) return;
-   group.m_parsed=true;
-   MWAWInputStreamPtr &input= m_parserState->m_input;
--  std::multimap<long, int>::const_iterator fIt;
-+  std::map<long, int>::const_iterator fIt;
-   int numFrames = int(m_state->m_framesList.size());
-   for (size_t c=0; c<group.m_childsList.size(); ++c) {
-     long fId=group.m_childsList[c];
-@@ -2784,7 +2784,7 @@ void HMWJGraph::sendGroupChild(HMWJGraphInternal::Group const &group, MWAWPositi
-   Box2f partialBdBox;
-   MWAWPosition partialPos(pos);
-   MWAWInputStreamPtr &input= m_parserState->m_input;
--  std::multimap<long, int>::const_iterator fIt;
-+  std::map<long, int>::const_iterator fIt;
-   int numFrames = int(m_state->m_framesList.size());
-   for (size_t c=0; c<numChilds; ++c) {
-     long fId=group.m_childsList[c];
--- 
-1.8.3.1
-
diff --git a/external/libmwaw/0001-values4003-apparently-contains-22-patterns-not-28.patch b/external/libmwaw/0001-values4003-apparently-contains-22-patterns-not-28.patch
deleted file mode 100644
index c06de94..0000000
--- a/external/libmwaw/0001-values4003-apparently-contains-22-patterns-not-28.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 83188cec2826a2bffdb3daf27702510c3e02edea Mon Sep 17 00:00:00 2001
-From: Stephan Bergmann <sbergman at redhat.com>
-Date: Thu, 24 Apr 2014 10:40:05 +0200
-Subject: [PATCH] values4003 apparently contains 22 patterns, not 28
-
-(cherry picked from commit c2ee6f30deb497dcf0ffa18a7ade603f398d889f)
-
-Conflicts:
-	src/lib/MSKGraph.cxx
----
- src/lib/MSKGraph.cxx | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/lib/MSKGraph.cxx b/src/lib/MSKGraph.cxx
-index 7c1a9f6..f32d7c6 100644
---- a/src/lib/MSKGraph.cxx
-+++ b/src/lib/MSKGraph.cxx
-@@ -728,7 +728,7 @@ void State::initPatterns(int vers)
-     0x55ff, 0x55ff, 0x55ff, 0x55ff,  0x55ff, 0xeeff, 0x55ff, 0xbbff,  0x77ff, 0xddff, 0x77ff, 0xddff,  0x7fff, 0xf7ff, 0x7fff, 0xf7ff,
-     0x7fff, 0xffff, 0xf7ff, 0xffff,  0xffff, 0xffff, 0xffff, 0xffff
-   };
--  m_rsrcPatternsMap.insert(std::map<long, Patterns>::value_type(4003,Patterns(28, values4003)));
-+  m_rsrcPatternsMap.insert(std::map<long, Patterns>::value_type(4003,Patterns(22, values4003)));
-   static uint16_t const (values4004[]) = {
-     0xf0f0, 0xf0f0, 0x0f0f, 0x0f0f,  0xcccc, 0x3333, 0xcccc, 0x3333,  0x3333, 0xcccc, 0x3333, 0xcccc
-   };
--- 
-1.9.0
-
diff --git a/external/libmwaw/0002-librevenge-stream-is-optional-don-t-depend-on-it.patch b/external/libmwaw/0002-librevenge-stream-is-optional-don-t-depend-on-it.patch
new file mode 100644
index 0000000..bd94338
--- /dev/null
+++ b/external/libmwaw/0002-librevenge-stream-is-optional-don-t-depend-on-it.patch
@@ -0,0 +1,54 @@
+From ead2223f2d3d4742df84f37c6cea9c73b71257c5 Mon Sep 17 00:00:00 2001
+From: David Tardon <dtardon at redhat.com>
+Date: Sun, 25 May 2014 16:07:21 +0200
+Subject: [PATCH] librevenge-stream is optional: don't depend on it
+
+---
+ src/lib/MWAWInputStream.cxx | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/src/lib/MWAWInputStream.cxx b/src/lib/MWAWInputStream.cxx
+index 91b713b..0d60f67 100644
+--- a/src/lib/MWAWInputStream.cxx
++++ b/src/lib/MWAWInputStream.cxx
+@@ -43,6 +43,7 @@
+ #include "MWAWDebug.hxx"
+ 
+ #include "MWAWInputStream.hxx"
++#include "MWAWStringStream.hxx"
+ 
+ MWAWInputStream::MWAWInputStream(shared_ptr<librevenge::RVNGInputStream> inp, bool inverted)
+   : m_stream(inp), m_streamSize(0), m_inverseRead(inverted), m_readLimit(-1), m_prevLimits(),
+@@ -517,7 +518,7 @@ bool MWAWInputStream::unBinHex()
+       MWAW_DEBUG_MSG(("MWAWInputStream::unBinHex: can not read the resource fork\n"));
+     }
+     else {
+-      shared_ptr<librevenge::RVNGInputStream> rsrc(new librevenge::RVNGStringStream(data, (unsigned int)numBytesRead));
++      shared_ptr<librevenge::RVNGInputStream> rsrc(new MWAWStringStream(data, (unsigned int)numBytesRead));
+       m_resourceFork.reset(new MWAWInputStream(rsrc,false));
+     }
+   }
+@@ -532,7 +533,7 @@ bool MWAWInputStream::unBinHex()
+       MWAW_DEBUG_MSG(("MWAWInputStream::unBinHex: can not read the data fork\n"));
+       return false;
+     }
+-    m_stream.reset(new librevenge::RVNGStringStream(data, (unsigned int)numBytesRead));
++    m_stream.reset(new MWAWStringStream(data, (unsigned int)numBytesRead));
+   }
+ 
+   return true;
+@@ -692,9 +693,9 @@ bool MWAWInputStream::unMacMIME(MWAWInputStream *inp,
+         return false;
+       }
+       if (wh==1)
+-        dataInput.reset(new librevenge::RVNGStringStream(data, (unsigned int)numBytesRead));
++        dataInput.reset(new MWAWStringStream(data, (unsigned int)numBytesRead));
+       else if (wh==2)
+-        rsrcInput.reset(new librevenge::RVNGStringStream(data, (unsigned int)numBytesRead));
++        rsrcInput.reset(new MWAWStringStream(data, (unsigned int)numBytesRead));
+       else { // the finder info
+         if (entrySize < 8) {
+           MWAW_DEBUG_MSG(("MWAWInputStream::unMacMIME: finder info size is odd\n"));
+-- 
+1.9.0
+
diff --git a/external/libmwaw/ExternalProject_libmwaw.mk b/external/libmwaw/ExternalProject_libmwaw.mk
index e8d837b..bbc69a7 100644
--- a/external/libmwaw/ExternalProject_libmwaw.mk
+++ b/external/libmwaw/ExternalProject_libmwaw.mk
@@ -17,8 +17,7 @@ $(eval $(call gb_ExternalProject_register_targets,libmwaw,\
 
 $(eval $(call gb_ExternalProject_use_externals,libmwaw,\
 	boost_headers \
-	wpd \
-	wpg \
+	revenge \
 ))
 
 $(call gb_ExternalProject_get_state_target,libmwaw,build) :
@@ -29,12 +28,14 @@ $(call gb_ExternalProject_get_state_target,libmwaw,build) :
 			--enable-static \
 			--disable-shared \
 			--without-docs \
+			--disable-tools \
+			--disable-zip \
 			$(if $(filter TRUE,$(ENABLE_DEBUG)),--enable-debug,--disable-debug) \
+			$(if $(VERBOSE)$(verbose),--disable-silent-rules,--enable-silent-rules) \
 			--disable-werror \
 			CXXFLAGS="$(if $(SYSTEM_BOOST),$(BOOST_CPPFLAGS),-I$(call gb_UnpackedTarball_get_dir,boost) -I$(BUILDDIR)/config_$(gb_Side))" \
 			$(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
 		&& (cd $(EXTERNAL_WORKDIR)/src/lib && \
-			$(if $(VERBOSE)$(verbose),V=1) \
 			$(MAKE)) \
 	)
 
diff --git a/external/libmwaw/UnpackedTarball_libmwaw.mk b/external/libmwaw/UnpackedTarball_libmwaw.mk
index 44fa61f..6f63f28 100644
--- a/external/libmwaw/UnpackedTarball_libmwaw.mk
+++ b/external/libmwaw/UnpackedTarball_libmwaw.mk
@@ -14,9 +14,8 @@ $(eval $(call gb_UnpackedTarball_set_tarball,libmwaw,$(MWAW_TARBALL)))
 $(eval $(call gb_UnpackedTarball_set_patchlevel,libmwaw,1))
 
 $(eval $(call gb_UnpackedTarball_add_patches,libmwaw,\
-	external/libmwaw/0001-std-isfinite-is-C-11.patch \
-	external/libmwaw/0001-use-correct-type.patch \
-	external/libmwaw/0001-values4003-apparently-contains-22-patterns-not-28.patch \
+	external/libmwaw/0001-librevenge-stream-is-optional-don-t-depend-on-it.patch \
+	external/libmwaw/0002-librevenge-stream-is-optional-don-t-depend-on-it.patch \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libodfgen/0001-properly-export-API-symbols.patch b/external/libodfgen/0001-properly-export-API-symbols.patch
index 3f488eb..91799aa 100644
--- a/external/libodfgen/0001-properly-export-API-symbols.patch
+++ b/external/libodfgen/0001-properly-export-API-symbols.patch
@@ -21,14 +21,14 @@ index 79c387b..19e04e3 100644
 +++ b/inc/libodfgen/OdfDocumentHandler.hxx
 @@ -26,6 +26,8 @@
  #define _ODFDOCUMENTHANDLER_HXX_
- #include <libwpd/libwpd.h>
+ #include <librevenge/librevenge.h>
  
 +#include "libodfgen-api.hxx"
 +
  /** Type of ODF content a generator should produce.
    *
    * @sa OdgGenerator, OdpGenerator, OdtGenerator
-@@ -57,7 +59,7 @@ typedef bool (*OdfEmbeddedImage)(const WPXBinaryData &input, librev
+@@ -57,7 +59,7 @@ typedef bool (*OdfEmbeddedImage)(const librevenge::RVNGBinaryData &input, librev
    * saved to a file, printed to the standard output, saved to a file
    * inside a package, or whatever else.
    */
@@ -42,64 +42,85 @@ index f818e3e..24455d8 100644
 --- a/inc/libodfgen/OdgGenerator.hxx
 +++ b/inc/libodfgen/OdgGenerator.hxx
 @@ -27,6 +27,7 @@
- #include <libwpd/libwpd.h>
- #include <libwpg/libwpg.h>
+ 
+ #include <librevenge/librevenge.h>
  
 +#include "libodfgen-api.hxx"
  #include "OdfDocumentHandler.hxx"
  
- class OdgGeneratorPrivate;
+ class OdfGenerator;
 @@ -37,7 +38,7 @@ class OdgGeneratorPrivate;
-   * See @c libwpg library for documentation of the
-   * libwpg::WPGPaintInterface interface.
+   * See @c librevenge library for documentation of the
+   * librevenge::WPGPaintInterface interface.
    */
--class OdgGenerator : public libwpg::WPGPaintInterface
-+class ODFGENAPI OdgGenerator : public libwpg::WPGPaintInterface
+-class OdgGenerator : public librevenge::RVNGDrawingInterface
++class ODFGENAPI OdgGenerator : public librevenge::RVNGDrawingInterface
  {
  public:
- 	OdgGenerator(OdfDocumentHandler *pHandler, const OdfStreamType streamType);
+ 	OdgGenerator();
 diff --git a/inc/libodfgen/OdpGenerator.hxx b/inc/libodfgen/OdpGenerator.hxx
 index 71f2562..c61f5ad 100644
 --- a/inc/libodfgen/OdpGenerator.hxx
 +++ b/inc/libodfgen/OdpGenerator.hxx
 @@ -27,6 +27,7 @@
  
- #include <libetonyek/libetonyek.h>
+ #include <librevenge/librevenge.h>
  
 +#include "libodfgen-api.hxx"
  #include "OdfDocumentHandler.hxx"
  
- class OdpGeneratorPrivate;
+ class OdfGenerator;
 @@ -37,7 +38,7 @@ class OdpGeneratorPrivate;
-   * See @c libetonyek library for documentation of the
-   * libetonyek::KEYPresentationInterface interface.
+   * See @c librevenge library for documentation of the
+   * librevenge::KEYPresentationInterface interface.
+   */
+-class OdpGenerator : public librevenge::RVNGPresentationInterface
++class ODFGENAPI OdpGenerator : public librevenge::RVNGPresentationInterface
+ {
+ public:
+ 	OdpGenerator();
+diff --git a/inc/libodfgen/OdsGenerator.hxx b/inc/libodfgen/OdsGenerator.hxx
+index f88c207..09e1b18 100644
+--- a/inc/libodfgen/OdsGenerator.hxx
++++ b/inc/libodfgen/OdsGenerator.hxx
+@@ -29,6 +29,7 @@
+ 
+ #include <librevenge/librevenge.h>
+ 
++#include "libodfgen-api.hxx"
+ #include "OdfDocumentHandler.hxx"
+ 
+ class OdfGenerator;
+@@ -39,7 +40,7 @@ class OdsGeneratorPrivate;
+   * See @c libdocumentinterface library for documentation of the librevenge::RVNGSpreadsheetInterface
+   * interface.
    */
--class OdpGenerator : public libetonyek::KEYPresentationInterface
-+class ODFGENAPI OdpGenerator : public libetonyek::KEYPresentationInterface
+-class OdsGenerator : public librevenge::RVNGSpreadsheetInterface
++class ODFGENAPI OdsGenerator : public librevenge::RVNGSpreadsheetInterface
  {
  public:
- 	OdpGenerator(OdfDocumentHandler *pHandler, const OdfStreamType streamType);
+ 	OdsGenerator();
 diff --git a/inc/libodfgen/OdtGenerator.hxx b/inc/libodfgen/OdtGenerator.hxx
 index 9c3ff88..e11778c 100644
 --- a/inc/libodfgen/OdtGenerator.hxx
 +++ b/inc/libodfgen/OdtGenerator.hxx
 @@ -29,6 +29,7 @@
  
- #include <libwpd/libwpd.h>
+ #include <librevenge/librevenge.h>
  
 +#include "libodfgen-api.hxx"
  #include "OdfDocumentHandler.hxx"
  
- /** Handler for embedded objects.
+ class OdtGeneratorPrivate;
 @@ -39,7 +40,7 @@ class OdfGenerator;
-   * See @c libwpd library for documentation of the ::WPXDocumentInterface
+   * See @c librevenge library for documentation of the ::librevenge::RVNGTextInterface
    * interface.
    */
--class OdtGenerator : public WPXDocumentInterface
-+class ODFGENAPI OdtGenerator : public WPXDocumentInterface
+-class OdtGenerator : public librevenge::RVNGTextInterface
++class ODFGENAPI OdtGenerator : public librevenge::RVNGTextInterface
  {
  public:
- 	OdtGenerator(OdfDocumentHandler *pHandler, const OdfStreamType streamType);
+ 	OdtGenerator();
 diff --git a/inc/libodfgen/libodfgen-api.hxx b/inc/libodfgen/libodfgen-api.hxx
 new file mode 100644
 index 0000000..39ffd05
diff --git a/external/libodfgen/ExternalPackage_libodfgen.mk b/external/libodfgen/ExternalPackage_libodfgen.mk
index a0692ed..5ae1839 100644
--- a/external/libodfgen/ExternalPackage_libodfgen.mk
+++ b/external/libodfgen/ExternalPackage_libodfgen.mk
@@ -12,11 +12,11 @@ $(eval $(call gb_ExternalPackage_ExternalPackage,libodfgen,libodfgen))
 $(eval $(call gb_ExternalPackage_use_external_project,libodfgen,libodfgen))
 
 ifeq ($(OS),MACOSX)
-$(eval $(call gb_ExternalPackage_add_file,libodfgen,$(LIBO_LIB_FOLDER)/libodfgen-0.0.0.dylib,src/.libs/libodfgen-0.0.dylib))
+$(eval $(call gb_ExternalPackage_add_file,libodfgen,$(LIBO_LIB_FOLDER)/libodfgen-0.1.1.dylib,src/.libs/libodfgen-0.1.dylib))
 else ifeq ($(OS),WNT)
-$(eval $(call gb_ExternalPackage_add_file,libodfgen,$(LIBO_LIB_FOLDER)/libodfgen-0.0.dll,src/.libs/libodfgen-0.0.dll))
+$(eval $(call gb_ExternalPackage_add_file,libodfgen,$(LIBO_LIB_FOLDER)/libodfgen-0.1.dll,src/.libs/libodfgen-0.1.dll))
 else ifeq ($(filter IOS ANDROID,$(OS)),)
-$(eval $(call gb_ExternalPackage_add_file,libodfgen,$(LIBO_LIB_FOLDER)/libodfgen-0.0.so.0,src/.libs/libodfgen-0.0.so.0.0.4))
+$(eval $(call gb_ExternalPackage_add_file,libodfgen,$(LIBO_LIB_FOLDER)/libodfgen-0.1.so.1,src/.libs/libodfgen-0.1.so.1.0.0))
 endif
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libodfgen/ExternalProject_libodfgen.mk b/external/libodfgen/ExternalProject_libodfgen.mk
index ab430df..f4e0072 100644
--- a/external/libodfgen/ExternalProject_libodfgen.mk
+++ b/external/libodfgen/ExternalProject_libodfgen.mk
@@ -17,9 +17,7 @@ $(eval $(call gb_ExternalProject_register_targets,libodfgen,\
 
 $(eval $(call gb_ExternalProject_use_externals,libodfgen,\
 	boost_headers \
-	etonyek \
-	wpd \
-	wpg \
+	revenge \
 ))
 
 $(call gb_ExternalProject_get_state_target,libodfgen,build) :
diff --git a/external/libodfgen/Library_odfgen.mk b/external/libodfgen/Library_odfgen.mk
index ce18735..dfdd5df 100644
--- a/external/libodfgen/Library_odfgen.mk
+++ b/external/libodfgen/Library_odfgen.mk
@@ -13,9 +13,7 @@ $(eval $(call gb_Library_use_unpacked,odfgen,libodfgen))
 
 $(eval $(call gb_Library_use_externals,odfgen,\
     boost_headers \
-	etonyek \
-	wpd \
-	wpg \
+	revenge \
 ))
 
 $(eval $(call gb_Library_set_warnings_not_errors,odfgen))
@@ -34,15 +32,21 @@ $(eval $(call gb_Library_add_defs,odfgen,\
 
 $(eval $(call gb_Library_add_generated_exception_objects,odfgen,\
     UnpackedTarball/libodfgen/src/DocumentElement \
+    UnpackedTarball/libodfgen/src/FilterInternal \
     UnpackedTarball/libodfgen/src/FontStyle \
     UnpackedTarball/libodfgen/src/GraphicFunctions \
+    UnpackedTarball/libodfgen/src/GraphicStyle \
     UnpackedTarball/libodfgen/src/InternalHandler \
     UnpackedTarball/libodfgen/src/ListStyle \
+    UnpackedTarball/libodfgen/src/OdcGenerator \
+    UnpackedTarball/libodfgen/src/OdfGenerator \
     UnpackedTarball/libodfgen/src/OdgGenerator \
     UnpackedTarball/libodfgen/src/OdpGenerator \
+    UnpackedTarball/libodfgen/src/OdsGenerator \
     UnpackedTarball/libodfgen/src/OdtGenerator \
     UnpackedTarball/libodfgen/src/PageSpan \
     UnpackedTarball/libodfgen/src/SectionStyle \
+    UnpackedTarball/libodfgen/src/SheetStyle \
     UnpackedTarball/libodfgen/src/TableStyle \
     UnpackedTarball/libodfgen/src/TextRunStyle \
 ))
diff --git a/external/librevenge/0001-nested-iterator-classes-need-to-be-exported-too.patch b/external/librevenge/0001-nested-iterator-classes-need-to-be-exported-too.patch
new file mode 100644
index 0000000..a6055f9
--- /dev/null
+++ b/external/librevenge/0001-nested-iterator-classes-need-to-be-exported-too.patch
@@ -0,0 +1,53 @@
+From 03c0fe096ae6e71237d36b88f5f0aa0f62eb09d6 Mon Sep 17 00:00:00 2001
+From: David Tardon <dtardon at redhat.com>
+Date: Mon, 26 May 2014 14:47:57 +0200
+Subject: [PATCH] nested iterator classes need to be exported too
+
+---
+ inc/librevenge/RVNGPropertyList.h       | 2 +-
+ inc/librevenge/RVNGPropertyListVector.h | 2 +-
+ inc/librevenge/RVNGString.h             | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/inc/librevenge/RVNGPropertyList.h b/inc/librevenge/RVNGPropertyList.h
+index c00af07..ac9c10d 100644
+--- a/inc/librevenge/RVNGPropertyList.h
++++ b/inc/librevenge/RVNGPropertyList.h
+@@ -60,7 +60,7 @@ public:
+ 
+ 	RVNGString getPropString() const;
+ 
+-	class Iter
++	class REVENGE_API Iter
+ 	{
+ 	public:
+ 		Iter(const RVNGPropertyList &propList);
+diff --git a/inc/librevenge/RVNGPropertyListVector.h b/inc/librevenge/RVNGPropertyListVector.h
+index 850326e..d56f583 100644
+--- a/inc/librevenge/RVNGPropertyListVector.h
++++ b/inc/librevenge/RVNGPropertyListVector.h
+@@ -55,7 +55,7 @@ public:
+ 
+ 	RVNGString getPropString() const;
+ 
+-	class Iter
++	class REVENGE_API Iter
+ 	{
+ 	public:
+ 		Iter(const RVNGPropertyListVector &vect);
+diff --git a/inc/librevenge/RVNGString.h b/inc/librevenge/RVNGString.h
+index cbea3bc..429170a 100644
+--- a/inc/librevenge/RVNGString.h
++++ b/inc/librevenge/RVNGString.h
+@@ -118,7 +118,7 @@ public:
+ 		return !operator<=(str);
+ 	}
+ 
+-	class Iter
++	class REVENGE_API Iter
+ 	{
+ 	public:
+ 		Iter(const RVNGString &str);
+-- 
+1.9.0
+
diff --git a/external/librevenge/UnpackedTarball_librevenge.mk b/external/librevenge/UnpackedTarball_librevenge.mk
index 8311eab..4fef678 100644
--- a/external/librevenge/UnpackedTarball_librevenge.mk
+++ b/external/librevenge/UnpackedTarball_librevenge.mk
@@ -15,6 +15,7 @@ $(eval $(call gb_UnpackedTarball_set_patchlevel,librevenge,1))
 
 $(eval $(call gb_UnpackedTarball_add_patches,librevenge,\
 	external/librevenge/0001-properly-export-API-symbols.patch \
+	external/librevenge/0001-nested-iterator-classes-need-to-be-exported-too.patch \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libvisio/0001-fdo-70480-do-not-crash-reading-malformed-zip.patch b/external/libvisio/0001-fdo-70480-do-not-crash-reading-malformed-zip.patch
deleted file mode 100644
index 6c7135f..0000000
--- a/external/libvisio/0001-fdo-70480-do-not-crash-reading-malformed-zip.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 410f564d9a728b983cf11ba9b3eadfc7d59c187c Mon Sep 17 00:00:00 2001
-From: David Tardon <dtardon at redhat.com>
-Date: Thu, 17 Oct 2013 10:35:34 +0200
-Subject: [PATCH] fdo#70480 do not crash reading malformed zip
-
-Change-Id: Ia37e8be5172a49669cb9f7271c5401ca88f39072
----
- src/lib/VSDZipStream.cpp | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/lib/VSDZipStream.cpp b/src/lib/VSDZipStream.cpp
-index 3b3e08a..1c12d56 100644
---- a/src/lib/VSDZipStream.cpp
-+++ b/src/lib/VSDZipStream.cpp
-@@ -203,6 +203,8 @@ bool libvisio::VSDZipStreamImpl::isZipStream()
-     return false;
-   if (!readCentralDirectory(end))
-     return false;
-+  if (m_cdir.empty())
-+    return false;
-   CentralDirectoryEntry entry = m_cdir.begin()->second;
-   m_input->seek(entry.offset, WPX_SEEK_SET);
-   LocalFileHeader header;
--- 
-1.8.3.1
-
diff --git a/external/libvisio/ExternalProject_libvisio.mk b/external/libvisio/ExternalProject_libvisio.mk
index 597ea93..4ea2b23 100644
--- a/external/libvisio/ExternalProject_libvisio.mk
+++ b/external/libvisio/ExternalProject_libvisio.mk
@@ -18,9 +18,8 @@ $(eval $(call gb_ExternalProject_register_targets,libvisio,\
 $(eval $(call gb_ExternalProject_use_externals,libvisio,\
 	boost_headers \
 	icu \
-	wpd \
-	wpg \
 	libxml2 \
+	revenge \
 	zlib \
 ))
 
@@ -32,14 +31,14 @@ $(call gb_ExternalProject_get_state_target,libvisio,build) :
 			--enable-static \
 			--disable-shared \
 			--without-docs \
+			--disable-tools \
 			--disable-debug \
 			--disable-werror \
+			$(if $(VERBOSE)$(verbose),--disable-silent-rules,--enable-silent-rules) \
 			CXXFLAGS="$(if $(SYSTEM_BOOST),$(BOOST_CPPFLAGS),-I$(call gb_UnpackedTarball_get_dir,boost) -I$(BUILDDIR)/config_$(gb_Side)) \
 			$(if $(SYSTEM_LIBXML),,-I$(call gb_UnpackedTarball_get_dir,xml2)/include)" \
 			$(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
-		&& (cd $(EXTERNAL_WORKDIR)/src/lib && \
-		    $(if $(VERBOSE)$(verbose),V=1) \
-		    $(MAKE)) \
+		&& $(MAKE) \
 	)
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libvisio/UnpackedTarball_libvisio.mk b/external/libvisio/UnpackedTarball_libvisio.mk
index 4680d78..e4c0561 100644
--- a/external/libvisio/UnpackedTarball_libvisio.mk
+++ b/external/libvisio/UnpackedTarball_libvisio.mk
@@ -11,10 +11,4 @@ $(eval $(call gb_UnpackedTarball_UnpackedTarball,libvisio))
 
 $(eval $(call gb_UnpackedTarball_set_tarball,libvisio,$(VISIO_TARBALL)))
 
-$(eval $(call gb_UnpackedTarball_set_patchlevel,libvisio,1))
-
-$(eval $(call gb_UnpackedTarball_add_patches,libvisio,\
-	external/libvisio/0001-fdo-70480-do-not-crash-reading-malformed-zip.patch \
-))
-
 # vim: set noet sw=4 ts=4:
diff --git a/external/libwpd/ExternalProject_libwpd.mk b/external/libwpd/ExternalProject_libwpd.mk
index 4d65938..88b7715 100644
--- a/external/libwpd/ExternalProject_libwpd.mk
+++ b/external/libwpd/ExternalProject_libwpd.mk
@@ -15,20 +15,25 @@ $(eval $(call gb_ExternalProject_register_targets,libwpd,\
 	build \
 ))
 
+$(eval $(call gb_ExternalProject_use_externals,libwpd,\
+	revenge \
+))
+
 $(call gb_ExternalProject_get_state_target,libwpd,build) :
 	$(call gb_ExternalProject_run,build,\
-		$(if $(filter TRUE,$(DISABLE_DYNLOADING)),CFLAGS="$(CFLAGS) $(gb_VISIBILITY_FLAGS) $(gb_COMPILEROPTFLAGS)" CXXFLAGS="$(CXXFLAGS) $(gb_VISIBILITY_FLAGS) $(gb_COMPILEROPTFLAGS)") \
-		./configure \
+		export PKG_CONFIG="" \
+		&& ./configure \
 			--with-pic \
 			--enable-static \
 			--disable-shared \
-			--without-stream \
 			--without-docs \
+			--disable-tools \
 			--disable-debug \
 			$(if $(filter MACOSX,$(OS)),--disable-werror) \
+			$(if $(VERBOSE)$(verbose),--disable-silent-rules,--enable-silent-rules) \
+			$(if $(filter TRUE,$(DISABLE_DYNLOADING)),CFLAGS="$(CFLAGS) $(gb_VISIBILITY_FLAGS) $(gb_COMPILEROPTFLAGS)" CXXFLAGS="$(CXXFLAGS) $(gb_VISIBILITY_FLAGS) $(gb_COMPILEROPTFLAGS)") \
 			$(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
-		&& $(if $(VERBOSE)$(verbose),V=1) \
-		   $(MAKE) \
+		&& $(MAKE) \
 	)
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libwpg/ExternalProject_libwpg.mk b/external/libwpg/ExternalProject_libwpg.mk
index e8fafe7..804a989 100644
--- a/external/libwpg/ExternalProject_libwpg.mk
+++ b/external/libwpg/ExternalProject_libwpg.mk
@@ -16,6 +16,7 @@ $(eval $(call gb_ExternalProject_register_targets,libwpg,\
 ))
 
 $(eval $(call gb_ExternalProject_use_externals,libwpg,\
+	revenge \
 	wpd \
 ))
 
@@ -27,12 +28,12 @@ $(call gb_ExternalProject_get_state_target,libwpg,build) :
 			--enable-static \
 			--disable-shared \
 			--without-docs \
+			--disable-tools \
 			--disable-debug \
 			--disable-werror \
+			$(if $(VERBOSE)$(verbose),--disable-silent-rules,--enable-silent-rules) \
 			$(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
-		&& (cd $(EXTERNAL_WORKDIR)/src/lib && \
-		    $(if $(VERBOSE)$(verbose),V=1) \
-		    $(MAKE)) \
+		&& $(MAKE) \
 	)
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libwpg/UnpackedTarball_libwpg.mk b/external/libwpg/UnpackedTarball_libwpg.mk
index 7c76a95..03be206 100644
--- a/external/libwpg/UnpackedTarball_libwpg.mk
+++ b/external/libwpg/UnpackedTarball_libwpg.mk
@@ -11,11 +11,4 @@ $(eval $(call gb_UnpackedTarball_UnpackedTarball,libwpg))
 
 $(eval $(call gb_UnpackedTarball_set_tarball,libwpg,$(WPG_TARBALL)))
 
-# HACK to avoid the need to deliver the headers to $(OUTDIR). This
-# should be removed when libwpg is updated.
-$(eval $(call gb_UnpackedTarball_set_post_action,libwpg,\
-	mkdir -p inc/libwpg && \
-	cp -f src/lib/libwpg.h src/lib/WPGPaintInterface.h src/lib/WPGraphics.h inc/libwpg \
-))
-
 # vim: set noet sw=4 ts=4:
diff --git a/external/libwps/ExternalProject_libwps.mk b/external/libwps/ExternalProject_libwps.mk
index a1b1bac..f21c70d 100644
--- a/external/libwps/ExternalProject_libwps.mk
+++ b/external/libwps/ExternalProject_libwps.mk
@@ -17,7 +17,7 @@ $(eval $(call gb_ExternalProject_register_targets,libwps,\
 
 $(eval $(call gb_ExternalProject_use_externals,libwps,\
 	boost_headers \
-	wpd \
+	revenge \
 ))
 
 $(call gb_ExternalProject_get_state_target,libwps,build) :
@@ -28,13 +28,13 @@ $(call gb_ExternalProject_get_state_target,libwps,build) :
 			--enable-static \
 			--disable-shared \
 			--without-docs \
+			--disable-tools \
 			--disable-debug \
 			--disable-werror \
+			$(if $(VERBOSE)$(verbose),--disable-silent-rules,--enable-silent-rules) \
 			CXXFLAGS="$(if $(SYSTEM_BOOST),$(BOOST_CPPFLAGS),-I$(call gb_UnpackedTarball_get_dir,boost) -I$(BUILDDIR)/config_$(gb_Side))" \
 			$(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
-		&& (cd $(EXTERNAL_WORKDIR)/src/lib && \
-		    $(if $(VERBOSE)$(verbose),V=1) \
-		    $(MAKE)) \
+		&& $(MAKE) \
 	)
 
 # vim: set noet sw=4 ts=4:
diff --git a/include/writerperfect/DirectoryStream.hxx b/include/writerperfect/DirectoryStream.hxx
index 7c8e9b0..b8f3dad 100644
--- a/include/writerperfect/DirectoryStream.hxx
+++ b/include/writerperfect/DirectoryStream.hxx
@@ -10,7 +10,7 @@
 #ifndef INCLUDED_WRITERPERFECT_DIRECTORYSTREAM_HXX
 #define INCLUDED_WRITERPERFECT_DIRECTORYSTREAM_HXX
 
-#include <libwpd-stream/libwpd-stream.h>
+#include <librevenge-stream/librevenge-stream.h>
 
 #include <com/sun/star/uno/Reference.h>
 
@@ -23,7 +23,7 @@ namespace com { namespace sun { namespace star { namespace ucb {
 namespace writerperfect
 {
 
-class WRITERPERFECT_DLLPUBLIC DirectoryStream : public WPXInputStream
+class WRITERPERFECT_DLLPUBLIC DirectoryStream : public librevenge::RVNGInputStream
 {
     struct Impl;
 
@@ -31,13 +31,17 @@ public:
     explicit DirectoryStream(const com::sun::star::uno::Reference<com::sun::star::ucb::XContent> &xContent);
     virtual ~DirectoryStream();
 
-    virtual bool isOLEStream() SAL_OVERRIDE;
-    virtual WPXInputStream *getDocumentOLEStream(const char *pName) SAL_OVERRIDE;
+    virtual bool isStructured() SAL_OVERRIDE;
+    virtual unsigned subStreamCount() SAL_OVERRIDE;
+    virtual const char *subStreamName(unsigned id) SAL_OVERRIDE;
+    virtual bool existsSubStream(const char *name) SAL_OVERRIDE;
+    virtual librevenge::RVNGInputStream *getSubStreamByName(const char *name) SAL_OVERRIDE;
+    virtual librevenge::RVNGInputStream *getSubStreamById(unsigned id) SAL_OVERRIDE;
 
-    virtual const unsigned char *read(unsigned long nNumBytes, unsigned long &nNumBytesRead) SAL_OVERRIDE;
-    virtual int seek(long nOffset, WPX_SEEK_TYPE eSeekType) SAL_OVERRIDE;
+    virtual const unsigned char *read(unsigned long numBytes, unsigned long &numBytesRead) SAL_OVERRIDE;
+    virtual int seek(long offset, librevenge::RVNG_SEEK_TYPE seekType) SAL_OVERRIDE;
     virtual long tell() SAL_OVERRIDE;
-    virtual bool atEOS() SAL_OVERRIDE;
+    virtual bool isEnd() SAL_OVERRIDE;
 
 private:
     Impl *m_pImpl;
diff --git a/include/writerperfect/DocumentHandler.hxx b/include/writerperfect/DocumentHandler.hxx
index db18e35..2670096 100644
--- a/include/writerperfect/DocumentHandler.hxx
+++ b/include/writerperfect/DocumentHandler.hxx
@@ -22,8 +22,6 @@
 
 #include <libodfgen/libodfgen.hxx>
 
-#include <libwpd/libwpd.h>
-
 #include <com/sun/star/uno/Reference.h>
 
 #include <writerperfect/writerperfectdllapi.h>
@@ -41,9 +39,9 @@ public:
     DocumentHandler(com::sun::star::uno::Reference < com::sun::star::xml::sax::XDocumentHandler > &xHandler);
     void startDocument() SAL_OVERRIDE;
     void endDocument() SAL_OVERRIDE;
-    void startElement(const char *psName, const WPXPropertyList &xPropList) SAL_OVERRIDE;
+    void startElement(const char *psName, const librevenge::RVNGPropertyList &xPropList) SAL_OVERRIDE;
     void endElement(const char *psName) SAL_OVERRIDE;
-    void characters(const WPXString &sCharacters) SAL_OVERRIDE;
+    void characters(const librevenge::RVNGString &sCharacters) SAL_OVERRIDE;
 
 private:
     com::sun::star::uno::Reference < com::sun::star::xml::sax::XDocumentHandler > mxHandler;
diff --git a/include/writerperfect/WPXSvInputStream.hxx b/include/writerperfect/WPXSvInputStream.hxx
index 9890b32..03b5a7d 100644
--- a/include/writerperfect/WPXSvInputStream.hxx
+++ b/include/writerperfect/WPXSvInputStream.hxx
@@ -10,7 +10,7 @@
 #ifndef INCLUDED_WRITERPERFECT_WPXSVINPUTSTREAM_HXX
 #define INCLUDED_WRITERPERFECT_WPXSVINPUTSTREAM_HXX
 
-#include <libwpd-stream/libwpd-stream.h>
+#include <librevenge-stream/librevenge-stream.h>
 
 #include <com/sun/star/uno/Reference.h>
 
@@ -26,27 +26,23 @@ namespace writerperfect
 
 class WPXSvInputStreamImpl;
 
-class WRITERPERFECT_DLLPUBLIC WPXSvInputStream : public WPXInputStream
+class WRITERPERFECT_DLLPUBLIC WPXSvInputStream : public librevenge::RVNGInputStream
 {
 public:
     WPXSvInputStream( ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > xStream );
     virtual ~WPXSvInputStream();
 
-    virtual bool isStructured();
-    virtual unsigned subStreamCount();
-    virtual const char * subStreamName(unsigned id);
-    virtual bool existsSubStream(const char *name);
-    virtual WPXInputStream * getSubStreamByName(const char *name);
-    virtual WPXInputStream * getSubStreamById(unsigned id);
+    virtual bool isStructured() SAL_OVERRIDE;
+    virtual unsigned subStreamCount() SAL_OVERRIDE;
+    virtual const char * subStreamName(unsigned id) SAL_OVERRIDE;
+    virtual bool existsSubStream(const char *name) SAL_OVERRIDE;
+    virtual librevenge::RVNGInputStream * getSubStreamByName(const char *name) SAL_OVERRIDE;
+    virtual librevenge::RVNGInputStream * getSubStreamById(unsigned id) SAL_OVERRIDE;
 
     virtual const unsigned char *read(unsigned long numBytes, unsigned long &numBytesRead) SAL_OVERRIDE;
-    virtual int seek(long offset, WPX_SEEK_TYPE seekType) SAL_OVERRIDE;
+    virtual int seek(long offset, librevenge::RVNG_SEEK_TYPE seekType) SAL_OVERRIDE;
     virtual long tell() SAL_OVERRIDE;
-    virtual bool isEnd();
-
-    virtual bool isOLEStream() SAL_OVERRIDE;
-    virtual WPXInputStream * getDocumentOLEStream(const char *name) SAL_OVERRIDE;
-    virtual bool atEOS() SAL_OVERRIDE;
+    virtual bool isEnd() SAL_OVERRIDE;
 
 private:
     WPXSvInputStreamImpl *mpImpl;
diff --git a/writerperfect/CppunitTest_writerperfect_stream.mk b/writerperfect/CppunitTest_writerperfect_stream.mk
index 1d8ae92..8416008 100644
--- a/writerperfect/CppunitTest_writerperfect_stream.mk
+++ b/writerperfect/CppunitTest_writerperfect_stream.mk
@@ -23,7 +23,7 @@ $(eval $(call gb_CppunitTest_use_ure,writerperfect_stream))
 
 $(eval $(call gb_CppunitTest_use_externals,writerperfect_stream,\
 	boost_headers \
-	wpd \
+	revenge \
 ))
 
 $(eval $(call gb_CppunitTest_use_libraries,writerperfect_stream,\
diff --git a/writerperfect/Library_wpftdraw.mk b/writerperfect/Library_wpftdraw.mk
index 2f730ea..807afc9 100644
--- a/writerperfect/Library_wpftdraw.mk
+++ b/writerperfect/Library_wpftdraw.mk
@@ -38,10 +38,10 @@ $(eval $(call gb_Library_use_libraries,wpftdraw,\
 
 $(eval $(call gb_Library_use_externals,wpftdraw,\
 	cdr \
-	etonyek \
 	freehand \
 	mspub \
 	odfgen \
+	revenge \
 	visio \
 	wpg \
 	wpd \
diff --git a/writerperfect/Library_wpftimpress.mk b/writerperfect/Library_wpftimpress.mk
index db7218c..39ef718 100644
--- a/writerperfect/Library_wpftimpress.mk
+++ b/writerperfect/Library_wpftimpress.mk
@@ -41,8 +41,7 @@ $(eval $(call gb_Library_use_externals,wpftimpress,\
 	boost_headers \
 	etonyek \
 	odfgen \
-	wpd \
-	wpg \
+	revenge \
 	zlib \
 	libxml2 \
 ))
diff --git a/writerperfect/Library_wpftwriter.mk b/writerperfect/Library_wpftwriter.mk
index c8a1631..db6afdf 100644
--- a/writerperfect/Library_wpftwriter.mk
+++ b/writerperfect/Library_wpftwriter.mk
@@ -43,15 +43,15 @@ $(eval $(call gb_Library_use_externals,wpftwriter,\
 	abw \
 	boost_headers \
 	ebook \
-	etonyek \
 	icui18n \
 	icuuc \
 	libxml2 \
 	mwaw \
 	odfgen \
-	wps \
-	wpg \
+	revenge \
 	wpd \
+	wpg \
+	wps \
 	zlib \
 ))
 
diff --git a/writerperfect/Library_writerperfect.mk b/writerperfect/Library_writerperfect.mk
index bd8d258..3089b5a 100644
--- a/writerperfect/Library_writerperfect.mk
+++ b/writerperfect/Library_writerperfect.mk
@@ -25,10 +25,8 @@ $(eval $(call gb_Library_add_defs,writerperfect,\
 
 $(eval $(call gb_Library_use_externals,writerperfect,\
 	boost_headers \
-	etonyek \
 	odfgen \
-	wpd \
-	wpg \
+	revenge \
 ))
 
 $(eval $(call gb_Library_use_sdk_api,writerperfect))
diff --git a/writerperfect/qa/unit/WPXSvStreamTest.cxx b/writerperfect/qa/unit/WPXSvStreamTest.cxx
index 1d28ec8..d75f201 100644
--- a/writerperfect/qa/unit/WPXSvStreamTest.cxx
+++ b/writerperfect/qa/unit/WPXSvStreamTest.cxx
@@ -34,6 +34,11 @@ namespace uno = com::sun::star::uno;
 
 using boost::shared_ptr;
 
+using librevenge::RVNGInputStream;
+using librevenge::RVNG_SEEK_CUR;
+using librevenge::RVNG_SEEK_END;
+using librevenge::RVNG_SEEK_SET;
+
 using std::equal;
 
 using writerperfect::WPXSvInputStream;
@@ -64,21 +69,21 @@ static const char aText[] = "hello world";
 static const char aOLEFile[] = "/writerperfect/qa/unit/data/fdo40686-1.doc";
 static const char aZipFile[] = "/writerperfect/qa/unit/data/test.odt";
 
-shared_ptr<WPXInputStream> lcl_createStream()
+shared_ptr<RVNGInputStream> lcl_createStream()
 {
     using comphelper::SequenceInputStream;
 
     const css::uno::Sequence<sal_Int8> aData(reinterpret_cast<const sal_Int8*>(aText), sizeof aText);
     const uno::Reference<io::XInputStream> xInputStream(new SequenceInputStream(aData));
 
-    shared_ptr<WPXInputStream> pInputStream;
+    shared_ptr<RVNGInputStream> pInputStream;
     if (xInputStream.is())
         pInputStream.reset(new WPXSvInputStream(xInputStream));
 
     return pInputStream;
 }
 
-const shared_ptr<WPXInputStream> lcl_createStreamForURL(const rtl::OUString &rURL)
+const shared_ptr<RVNGInputStream> lcl_createStreamForURL(const rtl::OUString &rURL)
 {
     using uno::Reference;
     using uno::UNO_QUERY_THROW;
@@ -89,13 +94,13 @@ const shared_ptr<WPXInputStream> lcl_createStreamForURL(const rtl::OUString &rUR
             UNO_QUERY_THROW);
     const Reference<io::XInputStream> xInputStream(xFileAccess->openFileRead(rURL), UNO_QUERY_THROW);
 
-    const shared_ptr<WPXInputStream> pInput(new WPXSvInputStream(xInputStream));
+    const shared_ptr<RVNGInputStream> pInput(new WPXSvInputStream(xInputStream));
     return pInput;
 }
 
 void WPXSvStreamTest::testRead()
 {
-    const shared_ptr<WPXInputStream> pInput(lcl_createStream());
+    const shared_ptr<RVNGInputStream> pInput(lcl_createStream());
     const unsigned long nLen = sizeof aText;
 
     unsigned long nReadBytes = 0;
@@ -107,199 +112,199 @@ void WPXSvStreamTest::testRead()
     pData = pInput->read(1UL, nReadBytes);
     CPPUNIT_ASSERT_EQUAL(1UL, nReadBytes);
     CPPUNIT_ASSERT(equal(pText, pText + nReadBytes, pData));
-    CPPUNIT_ASSERT(!pInput->atEOS());
+    CPPUNIT_ASSERT(!pInput->isEnd());
     pText += nReadBytes;
 
     pData = pInput->read(2UL, nReadBytes);
     CPPUNIT_ASSERT_EQUAL(2UL, nReadBytes);
     CPPUNIT_ASSERT(equal(pText, pText + nReadBytes, pData));
-    CPPUNIT_ASSERT(!pInput->atEOS());
+    CPPUNIT_ASSERT(!pInput->isEnd());
     pText += nReadBytes;
 
     pData = pInput->read(3UL, nReadBytes);
     CPPUNIT_ASSERT_EQUAL(3UL, nReadBytes);
     CPPUNIT_ASSERT(equal(pText, pText + nReadBytes, pData));
-    CPPUNIT_ASSERT(!pInput->atEOS());
+    CPPUNIT_ASSERT(!pInput->isEnd());
     pText += nReadBytes;
 
     assert(nLen > 6);
     pData = pInput->read(nLen - 6, nReadBytes);
     CPPUNIT_ASSERT_EQUAL(nLen - 6, nReadBytes);
     CPPUNIT_ASSERT(equal(pText, pText + nReadBytes, pData));
-    CPPUNIT_ASSERT(pInput->atEOS());
+    CPPUNIT_ASSERT(pInput->isEnd());
 
     // reading everything at once
-    pInput->seek(0, WPX_SEEK_SET);
+    pInput->seek(0, RVNG_SEEK_SET);
     pText = pTextOrig;
 
     pData = pInput->read(nLen, nReadBytes);
     CPPUNIT_ASSERT_EQUAL(nLen, nReadBytes);
     CPPUNIT_ASSERT(equal(pText, pText + nReadBytes, pData));
-    CPPUNIT_ASSERT(pInput->atEOS());
+    CPPUNIT_ASSERT(pInput->isEnd());
 
     // trying to read too much
-    pInput->seek(0, WPX_SEEK_SET);
+    pInput->seek(0, RVNG_SEEK_SET);
     pText = pTextOrig;
 
     pData = pInput->read(nLen + 1, nReadBytes);
     CPPUNIT_ASSERT_EQUAL(nLen, nReadBytes);
     CPPUNIT_ASSERT(equal(pText, pText + nReadBytes, pData));
-    CPPUNIT_ASSERT(pInput->atEOS());
+    CPPUNIT_ASSERT(pInput->isEnd());
 
     // trying to read nothing
-    pInput->seek(0, WPX_SEEK_SET);
+    pInput->seek(0, RVNG_SEEK_SET);
     pText = pTextOrig;
 
     pData = pInput->read(0UL, nReadBytes);
     CPPUNIT_ASSERT_EQUAL(0UL, nReadBytes);
     CPPUNIT_ASSERT_EQUAL(0L, pInput->tell());
     CPPUNIT_ASSERT_EQUAL(pData, static_cast<const unsigned char*>(0));
-    CPPUNIT_ASSERT(!pInput->atEOS());
+    CPPUNIT_ASSERT(!pInput->isEnd());
 }
 
 void WPXSvStreamTest::testSeekSet()
 {
-    const shared_ptr<WPXInputStream> pInput(lcl_createStream());
+    const shared_ptr<RVNGInputStream> pInput(lcl_createStream());
     const long nLen = sizeof aText;
 
     // check initial state
     CPPUNIT_ASSERT_EQUAL(0L, pInput->tell());
-    CPPUNIT_ASSERT(!pInput->atEOS());
+    CPPUNIT_ASSERT(!pInput->isEnd());
 
     // valid seeks
-    CPPUNIT_ASSERT_EQUAL(0, pInput->seek(0, WPX_SEEK_SET));
+    CPPUNIT_ASSERT_EQUAL(0, pInput->seek(0, RVNG_SEEK_SET));
     CPPUNIT_ASSERT_EQUAL(0L, pInput->tell());
-    CPPUNIT_ASSERT(!pInput->atEOS());
+    CPPUNIT_ASSERT(!pInput->isEnd());
 
-    CPPUNIT_ASSERT_EQUAL(0, pInput->seek(1, WPX_SEEK_SET));
+    CPPUNIT_ASSERT_EQUAL(0, pInput->seek(1, RVNG_SEEK_SET));
     CPPUNIT_ASSERT_EQUAL(1L, pInput->tell());
-    CPPUNIT_ASSERT(!pInput->atEOS());
+    CPPUNIT_ASSERT(!pInput->isEnd());
 
-    CPPUNIT_ASSERT_EQUAL(0, pInput->seek(nLen, WPX_SEEK_SET));
+    CPPUNIT_ASSERT_EQUAL(0, pInput->seek(nLen, RVNG_SEEK_SET));
     CPPUNIT_ASSERT(nLen == pInput->tell());
-    CPPUNIT_ASSERT(pInput->atEOS());
+    CPPUNIT_ASSERT(pInput->isEnd());
 
     // go back to the beginning
-    CPPUNIT_ASSERT_EQUAL(0, pInput->seek(0, WPX_SEEK_SET));
+    CPPUNIT_ASSERT_EQUAL(0, pInput->seek(0, RVNG_SEEK_SET));
     CPPUNIT_ASSERT_EQUAL(0L, pInput->tell());
 
     // invalid seeks
-    CPPUNIT_ASSERT(0 != pInput->seek(-1, WPX_SEEK_SET));
+    CPPUNIT_ASSERT(0 != pInput->seek(-1, RVNG_SEEK_SET));
     // Okay, this is not defined. But it is what the WPXSvInputStream
     // does ATM and it is reasonable.
     CPPUNIT_ASSERT_EQUAL(0L, pInput->tell());
-    CPPUNIT_ASSERT(!pInput->atEOS());
+    CPPUNIT_ASSERT(!pInput->isEnd());
 
-    CPPUNIT_ASSERT(0 != pInput->seek(nLen + 1, WPX_SEEK_SET));
+    CPPUNIT_ASSERT(0 != pInput->seek(nLen + 1, RVNG_SEEK_SET));
     CPPUNIT_ASSERT(nLen == pInput->tell());
-    CPPUNIT_ASSERT(pInput->atEOS());
+    CPPUNIT_ASSERT(pInput->isEnd());
 }
 
 void WPXSvStreamTest::testSeekCur()
 {
-    const shared_ptr<WPXInputStream> pInput(lcl_createStream());
+    const shared_ptr<RVNGInputStream> pInput(lcl_createStream());
     const long nLen = sizeof aText;
 
     // check initial state
-    CPPUNIT_ASSERT(!pInput->atEOS());
+    CPPUNIT_ASSERT(!pInput->isEnd());
     CPPUNIT_ASSERT_EQUAL(0L, pInput->tell());
 
     // valid seeks
 
-    CPPUNIT_ASSERT_EQUAL(0, pInput->seek(0, WPX_SEEK_CUR));
+    CPPUNIT_ASSERT_EQUAL(0, pInput->seek(0, RVNG_SEEK_CUR));
     CPPUNIT_ASSERT_EQUAL(0L, pInput->tell());
-    CPPUNIT_ASSERT(!pInput->atEOS());
+    CPPUNIT_ASSERT(!pInput->isEnd());
 
-    CPPUNIT_ASSERT_EQUAL(0, pInput->seek(1, WPX_SEEK_CUR));
+    CPPUNIT_ASSERT_EQUAL(0, pInput->seek(1, RVNG_SEEK_CUR));
     CPPUNIT_ASSERT_EQUAL(1L, pInput->tell());
-    CPPUNIT_ASSERT(!pInput->atEOS());
+    CPPUNIT_ASSERT(!pInput->isEnd());
 
-    CPPUNIT_ASSERT_EQUAL(0, pInput->seek(-1, WPX_SEEK_CUR));
+    CPPUNIT_ASSERT_EQUAL(0, pInput->seek(-1, RVNG_SEEK_CUR));
     CPPUNIT_ASSERT_EQUAL(0L, pInput->tell());
-    CPPUNIT_ASSERT(!pInput->atEOS());
+    CPPUNIT_ASSERT(!pInput->isEnd());
 
     // go back to the beginning
-    CPPUNIT_ASSERT_EQUAL(0, pInput->seek(0, WPX_SEEK_SET));
+    CPPUNIT_ASSERT_EQUAL(0, pInput->seek(0, RVNG_SEEK_SET));
     CPPUNIT_ASSERT_EQUAL(0L, pInput->tell());
 
     // invalid seeks
-    CPPUNIT_ASSERT(0 != pInput->seek(-1, WPX_SEEK_CUR));
+    CPPUNIT_ASSERT(0 != pInput->seek(-1, RVNG_SEEK_CUR));
     CPPUNIT_ASSERT_EQUAL(0L, pInput->tell());
-    CPPUNIT_ASSERT(!pInput->atEOS());
+    CPPUNIT_ASSERT(!pInput->isEnd());
 
-    CPPUNIT_ASSERT(0 != pInput->seek(nLen + 1, WPX_SEEK_CUR));
+    CPPUNIT_ASSERT(0 != pInput->seek(nLen + 1, RVNG_SEEK_CUR));
     CPPUNIT_ASSERT(nLen == pInput->tell());
-    CPPUNIT_ASSERT(pInput->atEOS());
+    CPPUNIT_ASSERT(pInput->isEnd());
 }
 
 void WPXSvStreamTest::testSeekEnd()
 {
-    const shared_ptr<WPXInputStream> pInput(lcl_createStream());
+    const shared_ptr<RVNGInputStream> pInput(lcl_createStream());
     const long nLen = sizeof aText;
 
     // check initial state
-    CPPUNIT_ASSERT(!pInput->atEOS());
+    CPPUNIT_ASSERT(!pInput->isEnd());
     CPPUNIT_ASSERT_EQUAL(0L, pInput->tell());
 
     // valid seeks
-    CPPUNIT_ASSERT_EQUAL(0, pInput->seek(0, WPX_SEEK_END));
+    CPPUNIT_ASSERT_EQUAL(0, pInput->seek(0, RVNG_SEEK_END));
     CPPUNIT_ASSERT(nLen == pInput->tell());
-    CPPUNIT_ASSERT(pInput->atEOS());
+    CPPUNIT_ASSERT(pInput->isEnd());
 
-    CPPUNIT_ASSERT_EQUAL(0, pInput->seek(-1, WPX_SEEK_END));
+    CPPUNIT_ASSERT_EQUAL(0, pInput->seek(-1, RVNG_SEEK_END));
     CPPUNIT_ASSERT((nLen - 1) == pInput->tell());
-    CPPUNIT_ASSERT(!pInput->atEOS());
+    CPPUNIT_ASSERT(!pInput->isEnd());
 
-    CPPUNIT_ASSERT_EQUAL(0, pInput->seek(-nLen, WPX_SEEK_END));
+    CPPUNIT_ASSERT_EQUAL(0, pInput->seek(-nLen, RVNG_SEEK_END));
     CPPUNIT_ASSERT_EQUAL(0L, pInput->tell());
-    CPPUNIT_ASSERT(!pInput->atEOS());
+    CPPUNIT_ASSERT(!pInput->isEnd());
 
     // go back to the beginning
-    CPPUNIT_ASSERT_EQUAL(0, pInput->seek(0, WPX_SEEK_SET));
+    CPPUNIT_ASSERT_EQUAL(0, pInput->seek(0, RVNG_SEEK_SET));
     CPPUNIT_ASSERT_EQUAL(0L, pInput->tell());
 
     // invalid seeks
-    CPPUNIT_ASSERT(0 != pInput->seek(1, WPX_SEEK_END));
+    CPPUNIT_ASSERT(0 != pInput->seek(1, RVNG_SEEK_END));
     CPPUNIT_ASSERT(nLen == pInput->tell());
-    CPPUNIT_ASSERT(pInput->atEOS());
+    CPPUNIT_ASSERT(pInput->isEnd());
 
-    CPPUNIT_ASSERT(0 != pInput->seek(-nLen - 1, WPX_SEEK_END));
+    CPPUNIT_ASSERT(0 != pInput->seek(-nLen - 1, RVNG_SEEK_END));
     CPPUNIT_ASSERT_EQUAL(0L, pInput->tell());
-    CPPUNIT_ASSERT(!pInput->atEOS());
+    CPPUNIT_ASSERT(!pInput->isEnd());
 }
 
 void WPXSvStreamTest::testStructured()
 {
     // OLE2
     {
-        const shared_ptr<WPXInputStream> pInput(lcl_createStreamForURL(getURLFromSrc(aOLEFile)));
+        const shared_ptr<RVNGInputStream> pInput(lcl_createStreamForURL(getURLFromSrc(aOLEFile)));
         assert(bool(pInput));
 
-        CPPUNIT_ASSERT(pInput->isOLEStream());
-        shared_ptr<WPXInputStream> pSubStream(pInput->getDocumentOLEStream("WordDocument"));
+        CPPUNIT_ASSERT(pInput->isStructured());
+        shared_ptr<RVNGInputStream> pSubStream(pInput->getSubStreamByName("WordDocument"));
         CPPUNIT_ASSERT(bool(pSubStream));
-        pSubStream.reset(pInput->getDocumentOLEStream("foo"));
+        pSubStream.reset(pInput->getSubStreamByName("foo"));
         CPPUNIT_ASSERT(!pSubStream);
     }
 
     // Zip
     {
-        const shared_ptr<WPXInputStream> pInput(lcl_createStreamForURL(getURLFromSrc(aZipFile)));
+        const shared_ptr<RVNGInputStream> pInput(lcl_createStreamForURL(getURLFromSrc(aZipFile)));
         assert(bool(pInput));
 
-        CPPUNIT_ASSERT(pInput->isOLEStream());
-        shared_ptr<WPXInputStream> pSubStream(pInput->getDocumentOLEStream("content.xml"));
+        CPPUNIT_ASSERT(pInput->isStructured());
+        shared_ptr<RVNGInputStream> pSubStream(pInput->getSubStreamByName("content.xml"));
         CPPUNIT_ASSERT(bool(pSubStream));
-        pSubStream.reset(pInput->getDocumentOLEStream("foo"));
+        pSubStream.reset(pInput->getSubStreamByName("foo"));
         CPPUNIT_ASSERT(!pSubStream);
     }
 
     // not structured
     {
-        const shared_ptr<WPXInputStream> pInput(lcl_createStream());
+        const shared_ptr<RVNGInputStream> pInput(lcl_createStream());
 
-        CPPUNIT_ASSERT(!pInput->isOLEStream());
-        CPPUNIT_ASSERT(0 == pInput->getDocumentOLEStream("foo"));
+        CPPUNIT_ASSERT(!pInput->isStructured());
+        CPPUNIT_ASSERT(0 == pInput->getSubStreamByName("foo"));
     }
 }
 
diff --git a/writerperfect/qa/unit/WpftImpressFilterTest.cxx b/writerperfect/qa/unit/WpftImpressFilterTest.cxx
index 2f349fa..4286f8a 100644
--- a/writerperfect/qa/unit/WpftImpressFilterTest.cxx
+++ b/writerperfect/qa/unit/WpftImpressFilterTest.cxx
@@ -31,7 +31,7 @@ WpftImpressFilterTest::WpftImpressFilterTest()
 
 void WpftImpressFilterTest::test()
 {
-    doTest("org.libreoffice.comp.Impress.KeynoteImportFilter", "/writerperfect/qa/unit/data/libetonyek/");
+    // doTest("org.libreoffice.comp.Impress.KeynoteImportFilter", "/writerperfect/qa/unit/data/libetonyek/");
 }
 
 CPPUNIT_TEST_SUITE_REGISTRATION(WpftImpressFilterTest);
diff --git a/writerperfect/qa/unit/WpftWriterFilterTest.cxx b/writerperfect/qa/unit/WpftWriterFilterTest.cxx
index 284c5f5..2afc4e7 100644
--- a/writerperfect/qa/unit/WpftWriterFilterTest.cxx
+++ b/writerperfect/qa/unit/WpftWriterFilterTest.cxx
@@ -32,9 +32,9 @@ WpftWriterFilterTest::WpftWriterFilterTest()
 void WpftWriterFilterTest::test()
 {
     doTest("com.sun.star.comp.Writer.AbiWordImportFilter", "/writerperfect/qa/unit/data/libabw/");
-    doTest("org.libreoffice.comp.Writer.EBookImportFilter", "/writerperfect/qa/unit/data/libe-book/");
+    // doTest("org.libreoffice.comp.Writer.EBookImportFilter", "/writerperfect/qa/unit/data/libe-book/");
     doTest("com.sun.star.comp.Writer.MSWorksImportFilter", "/writerperfect/qa/unit/data/libwps/");
-    doTest("com.sun.star.comp.Writer.MWAWImportFilter", "/writerperfect/qa/unit/data/libmwaw/");
+    // doTest("com.sun.star.comp.Writer.MWAWImportFilter", "/writerperfect/qa/unit/data/libmwaw/");
     doTest("com.sun.star.comp.Writer.WordPerfectImportFilter", "/writerperfect/qa/unit/data/libwpd/");
 }
 
diff --git a/writerperfect/source/common/DirectoryStream.cxx b/writerperfect/source/common/DirectoryStream.cxx
index c125694..b720eec 100644
--- a/writerperfect/source/common/DirectoryStream.cxx
+++ b/writerperfect/source/common/DirectoryStream.cxx
@@ -112,14 +112,32 @@ DirectoryStream::~DirectoryStream()
     delete m_pImpl;
 }
 
-bool DirectoryStream::isOLEStream()
+bool DirectoryStream::isStructured()
 {
     return true;
 }
 
-WPXInputStream *DirectoryStream::getDocumentOLEStream(const char *const pName)
+unsigned DirectoryStream::subStreamCount()
 {
-    WPXInputStream *input = 0;
+    // TODO: implement me
+    return 0;
+}
+
+const char * DirectoryStream::subStreamName(unsigned /* id */)
+{
+    // TODO: implement me
+    return 0;
+}
+
+bool DirectoryStream::existsSubStream(const char * /* name */)
+{
+    // TODO: implement me
+    return false;
+}
+
+librevenge::RVNGInputStream *DirectoryStream::getSubStreamByName(const char *const pName)
+{
+    librevenge::RVNGInputStream *input = 0;
 
     ucbhelper::Content aContent(m_pImpl->xContent, uno::Reference<ucb::XCommandEnvironment>(), comphelper::getProcessComponentContext());
     const uno::Reference<io::XInputStream> xInputStream(findStream(aContent, rtl::OUString::createFromAscii(pName)));
@@ -129,13 +147,19 @@ WPXInputStream *DirectoryStream::getDocumentOLEStream(const char *const pName)
     return input;
 }
 
+librevenge::RVNGInputStream *DirectoryStream::getSubStreamById(unsigned /* id */)
+{
+    // TODO: implement me
+    return 0;
+}
+
 const unsigned char *DirectoryStream::read(unsigned long, unsigned long &nNumBytesRead)
 {
     nNumBytesRead = 0;
     return 0;
 }
 
-int DirectoryStream::seek(long, WPX_SEEK_TYPE)
+int DirectoryStream::seek(long, librevenge::RVNG_SEEK_TYPE)
 {
     return -1;
 }
@@ -145,7 +169,7 @@ long DirectoryStream::tell()
     return 0;
 }
 
-bool DirectoryStream::atEOS()
+bool DirectoryStream::isEnd()
 {
     return true;
 }
diff --git a/writerperfect/source/common/DocumentHandler.cxx b/writerperfect/source/common/DocumentHandler.cxx
index 239f20e..f36bb28 100644
--- a/writerperfect/source/common/DocumentHandler.cxx
+++ b/writerperfect/source/common/DocumentHandler.cxx
@@ -39,11 +39,11 @@ void DocumentHandler::endDocument()
     mxHandler->endDocument();
 }
 
-void DocumentHandler::startElement(const char *psName, const WPXPropertyList &xPropList)
+void DocumentHandler::startElement(const char *psName, const librevenge::RVNGPropertyList &xPropList)
 {
     SvXMLAttributeList *pAttrList = new SvXMLAttributeList();
     Reference < XAttributeList > xAttrList(pAttrList);
-    WPXPropertyList::Iter i(xPropList);
+    librevenge::RVNGPropertyList::Iter i(xPropList);
     for (i.rewind(); i.next(); )
     {
         // filter out libwpd elements
@@ -65,7 +65,7 @@ void DocumentHandler::endElement(const char *psName)
     mxHandler->endElement(sElementName);
 }
 
-void DocumentHandler::characters(const WPXString &sCharacters)
+void DocumentHandler::characters(const librevenge::RVNGString &sCharacters)
 {
     OUString sCharU16(sCharacters.cstr(), strlen(sCharacters.cstr()), RTL_TEXTENCODING_UTF8);
     mxHandler->characters(sCharU16);
diff --git a/writerperfect/source/common/WPXSvInputStream.cxx b/writerperfect/source/common/WPXSvInputStream.cxx
index b2ad2a8..4fad167 100644
--- a/writerperfect/source/common/WPXSvInputStream.cxx
+++ b/writerperfect/source/common/WPXSvInputStream.cxx
@@ -391,10 +391,10 @@ public :
 
     bool isStructured();
     unsigned subStreamCount();
-    const char * subStreamName(unsigned id);
+    const char *subStreamName(unsigned id);
     bool existsSubStream(const char *name);
-    WPXInputStream * getSubStreamByName(const char *name);
-    WPXInputStream * getSubStreamById(unsigned id);
+    librevenge::RVNGInputStream *getSubStreamByName(const char *name);
+    librevenge::RVNGInputStream *getSubStreamById(unsigned id);
 
     const unsigned char *read(unsigned long numBytes, unsigned long &numBytesRead);
     int seek(long offset);
@@ -410,8 +410,8 @@ private:
     bool isZip();
     void ensureZipIsInitialized();
 
-    WPXInputStream *createWPXStream(const SotStorageStreamRef &rxStorage);
-    WPXInputStream *createWPXStream(const Reference<XInputStream> &rxStream);
+    librevenge::RVNGInputStream *createWPXStream(const SotStorageStreamRef &rxStorage);
+    librevenge::RVNGInputStream *createWPXStream(const Reference<XInputStream> &rxStream);
 
 private:
     ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > mxStream;
@@ -627,7 +627,7 @@ bool WPXSvInputStreamImpl::existsSubStream(const char *const name)
     return false;
 }
 
-WPXInputStream *WPXSvInputStreamImpl::getSubStreamByName(const char *const name)
+librevenge::RVNGInputStream *WPXSvInputStreamImpl::getSubStreamByName(const char *const name)
 {
     if (!name)
         return 0;
@@ -665,7 +665,7 @@ WPXInputStream *WPXSvInputStreamImpl::getSubStreamByName(const char *const name)
     return 0;
 }
 
-WPXInputStream *WPXSvInputStreamImpl::getSubStreamById(const unsigned id)
+librevenge::RVNGInputStream *WPXSvInputStreamImpl::getSubStreamById(const unsigned id)
 {
     if ((mnLength == 0) || !mxStream.is() || !mxSeekable.is())
         return 0;
@@ -715,7 +715,7 @@ void WPXSvInputStreamImpl::invalidateReadBuffer()
     }
 }
 
-WPXInputStream *WPXSvInputStreamImpl::createWPXStream(const SotStorageStreamRef &rxStorage)
+librevenge::RVNGInputStream *WPXSvInputStreamImpl::createWPXStream(const SotStorageStreamRef &rxStorage)
 {
     if (rxStorage.Is())
     {
@@ -725,7 +725,7 @@ WPXInputStream *WPXSvInputStreamImpl::createWPXStream(const SotStorageStreamRef
     return 0;
 }
 
-WPXInputStream *WPXSvInputStreamImpl::createWPXStream(const Reference<XInputStream> &rxStream)
+librevenge::RVNGInputStream *WPXSvInputStreamImpl::createWPXStream(const Reference<XInputStream> &rxStream)
 {
     if (rxStream.is())
         return new WPXSvInputStream( rxStream );
@@ -867,12 +867,12 @@ long WPXSvInputStream::tell()
     return retVal - (long)mpImpl->mnReadBufferLength + (long)mpImpl->mnReadBufferPos;
 }
 
-int WPXSvInputStream::seek(long offset, WPX_SEEK_TYPE seekType)
+int WPXSvInputStream::seek(long offset, librevenge::RVNG_SEEK_TYPE seekType)
 {
     sal_Int64 tmpOffset = offset;
-    if (seekType == WPX_SEEK_CUR)
+    if (seekType == librevenge::RVNG_SEEK_CUR)
         tmpOffset += tell();
-    if (seekType == WPX_SEEK_END)
+    if (seekType == librevenge::RVNG_SEEK_END)
         tmpOffset += mpImpl->mnLength;
 
     int retVal = 0;
@@ -929,33 +929,18 @@ bool WPXSvInputStream::existsSubStream(const char *const name)
     return mpImpl->existsSubStream(name);
 }
 
-WPXInputStream *WPXSvInputStream::getSubStreamByName(const char *name)
+librevenge::RVNGInputStream *WPXSvInputStream::getSubStreamByName(const char *name)
 {
     mpImpl->invalidateReadBuffer();
     return mpImpl->getSubStreamByName(name);
 }
 
-WPXInputStream *WPXSvInputStream::getSubStreamById(const unsigned id)
+librevenge::RVNGInputStream *WPXSvInputStream::getSubStreamById(const unsigned id)
 {
     mpImpl->invalidateReadBuffer();
     return mpImpl->getSubStreamById(id);
 }
 
-bool WPXSvInputStream::atEOS()
-{
-    return isEnd();
-}
-
-bool WPXSvInputStream::isOLEStream()
-{
-    return isStructured();
-}
-
-WPXInputStream *WPXSvInputStream::getDocumentOLEStream(const char *name)
-{
-    return getSubStreamByName(name);
-}
-
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/writerperfect/source/draw/CDRImportFilter.cxx b/writerperfect/source/draw/CDRImportFilter.cxx
index 4cc5688..e0c1bd8 100644
--- a/writerperfect/source/draw/CDRImportFilter.cxx
+++ b/writerperfect/source/draw/CDRImportFilter.cxx
@@ -27,12 +27,12 @@ using com::sun::star::uno::Sequence;
 using com::sun::star::uno::XComponentContext;
 using com::sun::star::uno::XInterface;
 
-bool CDRImportFilter::doImportDocument( WPXInputStream &rInput, libwpg::WPGPaintInterface &rGenerator )
+bool CDRImportFilter::doImportDocument( librevenge::RVNGInputStream &rInput, librevenge::RVNGDrawingInterface &rGenerator )
 {
     return libcdr::CDRDocument::parse(&rInput, &rGenerator);
 }
 
-bool CDRImportFilter::doDetectFormat( WPXInputStream &rInput, OUString &rTypeName )
+bool CDRImportFilter::doDetectFormat( librevenge::RVNGInputStream &rInput, OUString &rTypeName )
 {
     if (libcdr::CDRDocument::isSupported(&rInput))
     {
diff --git a/writerperfect/source/draw/CDRImportFilter.hxx b/writerperfect/source/draw/CDRImportFilter.hxx
index cf8a254..3df8ccc 100644
--- a/writerperfect/source/draw/CDRImportFilter.hxx
+++ b/writerperfect/source/draw/CDRImportFilter.hxx
@@ -33,8 +33,8 @@ public:
     throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
 private:
-    virtual bool doDetectFormat( WPXInputStream &rInput, OUString &rTypeName ) SAL_OVERRIDE;
-    virtual bool doImportDocument( WPXInputStream &rInput, libwpg::WPGPaintInterface &rGenerator ) SAL_OVERRIDE;
+    virtual bool doDetectFormat( librevenge::RVNGInputStream &rInput, OUString &rTypeName ) SAL_OVERRIDE;
+    virtual bool doImportDocument( librevenge::RVNGInputStream &rInput, librevenge::RVNGDrawingInterface &rGenerator ) SAL_OVERRIDE;
 };
 
 OUString CDRImportFilter_getImplementationName()
diff --git a/writerperfect/source/draw/CMXImportFilter.cxx b/writerperfect/source/draw/CMXImportFilter.cxx
index 78f39de..f9044f8 100644
--- a/writerperfect/source/draw/CMXImportFilter.cxx
+++ b/writerperfect/source/draw/CMXImportFilter.cxx
@@ -27,12 +27,12 @@ using com::sun::star::uno::Sequence;
 using com::sun::star::uno::XComponentContext;
 using com::sun::star::uno::XInterface;
 
-bool CMXImportFilter::doImportDocument( WPXInputStream &rInput, libwpg::WPGPaintInterface &rGenerator )
+bool CMXImportFilter::doImportDocument( librevenge::RVNGInputStream &rInput, librevenge::RVNGDrawingInterface &rGenerator )
 {
     return libcdr::CMXDocument::parse(&rInput, &rGenerator);
 }
 
-bool CMXImportFilter::doDetectFormat( WPXInputStream &rInput, OUString &rTypeName )
+bool CMXImportFilter::doDetectFormat( librevenge::RVNGInputStream &rInput, OUString &rTypeName )
 {
     if (libcdr::CMXDocument::isSupported(&rInput))
     {
diff --git a/writerperfect/source/draw/CMXImportFilter.hxx b/writerperfect/source/draw/CMXImportFilter.hxx
index 4bc37eb..43ffe96 100644
--- a/writerperfect/source/draw/CMXImportFilter.hxx
+++ b/writerperfect/source/draw/CMXImportFilter.hxx
@@ -33,8 +33,8 @@ public:
     throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
 private:
-    virtual bool doDetectFormat( WPXInputStream &rInput, OUString &rTypeName ) SAL_OVERRIDE;
-    virtual bool doImportDocument( WPXInputStream &rInput, libwpg::WPGPaintInterface &rGenerator ) SAL_OVERRIDE;
+    virtual bool doDetectFormat( librevenge::RVNGInputStream &rInput, OUString &rTypeName ) SAL_OVERRIDE;
+    virtual bool doImportDocument( librevenge::RVNGInputStream &rInput, librevenge::RVNGDrawingInterface &rGenerator ) SAL_OVERRIDE;
 };
 
 OUString CMXImportFilter_getImplementationName()
diff --git a/writerperfect/source/draw/FreehandImportFilter.cxx b/writerperfect/source/draw/FreehandImportFilter.cxx
index b92386f..db37858 100644
--- a/writerperfect/source/draw/FreehandImportFilter.cxx
+++ b/writerperfect/source/draw/FreehandImportFilter.cxx
@@ -23,12 +23,12 @@ using com::sun::star::uno::Sequence;
 using com::sun::star::uno::XComponentContext;
 using com::sun::star::uno::XInterface;
 
-bool FreehandImportFilter::doImportDocument( WPXInputStream &rInput, libwpg::WPGPaintInterface &rGenerator )
+bool FreehandImportFilter::doImportDocument( librevenge::RVNGInputStream &rInput, librevenge::RVNGDrawingInterface &rGenerator )
 {
     return libfreehand::FreeHandDocument::parse(&rInput, &rGenerator);
 }
 
-bool FreehandImportFilter::doDetectFormat( WPXInputStream &rInput, OUString &rTypeName )
+bool FreehandImportFilter::doDetectFormat( librevenge::RVNGInputStream &rInput, OUString &rTypeName )
 {
     if (libfreehand::FreeHandDocument::isSupported(&rInput))
     {
diff --git a/writerperfect/source/draw/FreehandImportFilter.hxx b/writerperfect/source/draw/FreehandImportFilter.hxx
index bb3a3c6..0f9e284 100644
--- a/writerperfect/source/draw/FreehandImportFilter.hxx
+++ b/writerperfect/source/draw/FreehandImportFilter.hxx
@@ -30,8 +30,8 @@ public:
     throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
 private:
-    virtual bool doDetectFormat( WPXInputStream &rInput, OUString &rTypeName ) SAL_OVERRIDE;
-    virtual bool doImportDocument( WPXInputStream &rInput, libwpg::WPGPaintInterface &rGenerator ) SAL_OVERRIDE;
+    virtual bool doDetectFormat( librevenge::RVNGInputStream &rInput, OUString &rTypeName ) SAL_OVERRIDE;
+    virtual bool doImportDocument( librevenge::RVNGInputStream &rInput, librevenge::RVNGDrawingInterface &rGenerator ) SAL_OVERRIDE;
 };
 
 OUString FreehandImportFilter_getImplementationName()
diff --git a/writerperfect/source/draw/ImportFilterBase.cxx b/writerperfect/source/draw/ImportFilterBase.cxx
index ce98231..6fc09b2 100644
--- a/writerperfect/source/draw/ImportFilterBase.cxx
+++ b/writerperfect/source/draw/ImportFilterBase.cxx
@@ -92,7 +92,8 @@ throw (RuntimeException, std::exception)
 
     WPXSvInputStream input( xInputStream );
 
-    OdgGenerator exporter(&xHandler, ODF_FLAT_XML);
+    OdgGenerator exporter;
+    exporter.addDocumentHandler(&xHandler, ODF_FLAT_XML);
 
     return doImportDocument(input, exporter);
 }

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list