git: 0a696a982663 - main - editors/abiword: update to 3.0.8
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 18 Mar 2026 07:10:06 UTC
The branch main has been updated by truckman:
URL: https://cgit.FreeBSD.org/ports/commit/?id=0a696a98266334a8df7cec74431f1cbd3f7e53e5
commit 0a696a98266334a8df7cec74431f1cbd3f7e53e5
Author: Olivier Duchateau <duchateau.olivier@gmail.com>
AuthorDate: 2026-03-18 06:00:25 +0000
Commit: Don Lewis <truckman@FreeBSD.org>
CommitDate: 2026-03-18 07:08:15 +0000
editors/abiword: update to 3.0.8
Update to 3.0.8:
3.0.8 - 2026/02/17
- Fix memory leaks with a collab Telepathy error.
- Fix paste of images from Firefox.
- Fix memory leaks in styles dialog, Gtk text input.
- Fix use after free and memory leak with list numbering.
- Fix memory leak with text drag and drop.
- Fix memory leak in OpenXML importer/exporter.
- Remove babelfish and freetranslation plugins.
- Fix appstream for newer flathub requirements.
- Properly remember the recent files even if AbiWord crashes.
- wordperfect: Use the more recent version of libwpd libwpg and
libwps. This upgrade the dependencies:
- libwpd-0.10
- libwps-0.4
- libwpg-0.3
3.0.7 - 2025/07/30
- Fix memory leaks in Styles, Font Chooser, Borders, List, Clip Art,
Replace, Tabs and Table dialogs.
- Fix memory leaks in XHTML import.
- Fix memory leaks in cut and paste.
- Fix memory leaks in the ODF exporter.
- Fix memory leaks in the GdkPixbuf importer.
- Fix crash when editing lists.
- Fix crash when inserting a JPEG image.
- Restored icons from page setup dialog (Removed XPM in 3.0.6).
- Minor spacing adjustement in the status bar.
3.0.6 - 2024/11/03
- Removed XPM icons and moved the PNG to gresources (backported)
This is necessary due to a break in the GNOME platform where XPM
is not longer supported causing many icons to be missing.
- Fix build with recent libxml2. Some headers are now explicitly
required.
- Fix build of mathview plugin with recent gcc.
https://gitlab.gnome.org/World/AbiWord/-/issues/27
- Fixes to the AppStream file for validation.
https://gitlab.gnome.org/World/AbiWord/-/issues/16
- Fix to the table widget in the toolbar.
- Fix build with glib
https://gitlab.gnome.org/World/AbiWord/-/issues/15
- Disable "Install new plugin" on flatpak. Require
`CPPFLAGS=-DFLATPAK_BUILD`. Bug #13927
- Fix a crash loading files under some condition.
Fix LICENSE
Adjust dependencies
Remove unneeded patches
Remove MATHVIEW, PSION, COLLAB options because these libraries are no
longer maintained or developed
Drop NLS option, otherwise we have warning during configure stage
Add WMF option, because it requires graphics/libwmf
Add upstream patch, in order to build against textproc/enchant2
Sort plugins
Remove substitutions directives in post-patch target because
configure.ac script contains these changes
add gmodule-2.0 in configure script
fix textproc/enchant2
Adjust dependencies to clean up stage-qa. popt appears to be unneeded.
Boost is only needed to supply includes for the build. The boost
library is not needed. (truckman)
Enable WMF by default, since disabling it saves very little. libwmf is
already pulled in by the mandatory libwv. Then even if the plugin is
disabled, we still link to libwmf. Perhaps libwv could be made optional.
(truckman)
Pet portclippy. (truckman)
PR: 293692
---
editors/abiword/Makefile | 158 ++---
editors/abiword/distinfo | 8 +-
editors/abiword/files/patch-configure | 40 --
editors/abiword/files/patch-configure.ac | 19 +
...git-01-2a06be6a10a0718f8a3d8e00c317f5042c99a467 | 29 -
.../patch-plugins_collab_backends_tcp_xp_Session.h | 11 -
...plugins_collab_core_sync_xp_SynchronizedQueue.h | 11 -
.../files/patch-plugins_wordperfect_plugin.m4 | 20 -
.../files/patch-plugins_wordperfect_xp_Makefile.am | 11 -
.../files/patch-plugins_wordperfect_xp_Makefile.in | 11 -
...plugins_wordperfect_xp_ie__imp__WordPerfect.cpp | 652 ---------------------
...h-plugins_wordperfect_xp_ie__imp__WordPerfect.h | 162 -----
...gins_wordperfect_xp_ie__impexp__WordPerfect.cpp | 52 --
...lugins_wordperfect_xp_ie__impexp__WordPerfect.h | 10 -
editors/abiword/files/patch-plugins_wpg_plugin.m4 | 9 -
.../patch-plugins_wpg_xp_ie__impGraphic__WPG.cpp | 249 --------
.../files/patch-src_wp_ap_xp_ap__Dialog__Goto.cpp | 21 -
editors/abiword/pkg-plist | 26 +-
18 files changed, 80 insertions(+), 1419 deletions(-)
diff --git a/editors/abiword/Makefile b/editors/abiword/Makefile
index 0812db903a62..271da70a9f5b 100644
--- a/editors/abiword/Makefile
+++ b/editors/abiword/Makefile
@@ -1,159 +1,105 @@
PORTNAME= abiword
-PORTVERSION= 3.0.5
-PORTREVISION= 15
+DISTVERSIONPREFIX= release-
+DISTVERSION= 3.0.8
CATEGORIES= editors
-MASTER_SITES= https://dev.alpinelinux.org/archive/${PORTNAME}/
DIST_SUBDIR= AbiWord
+PATCH_SITES= https://gitlab.gnome.org/World/AbiWord/-/commit/
+PATCHFILES= ae05e92d.patch:-p1
+
MAINTAINER= gnome@FreeBSD.org
-COMMENT= Open-source, cross-platform WYSIWYG word processor
+COMMENT= Full-featured, efficient word processing application
WWW= https://gitlab.gnome.org/World/AbiWord
-LICENSE= GPLv2
+LICENSE= GPLv2+
LICENSE_FILE= ${WRKSRC}/COPYING
-LIB_DEPENDS= libboost_thread.so:devel/boost-libs \
- libpopt.so:devel/popt \
- libpng.so:graphics/png \
- libwv.so:textproc/wv \
- libfribidi.so:converters/fribidi \
- libgoffice-0.10.so:devel/goffice
+BUILD_DEPENDS= autoconf-archive>0:devel/autoconf-archive \
+ ${LOCALBASE}/include/boost/shared_ptr.hpp:devel/boost-libs
+LIB_DEPENDS= libfribidi.so:converters/fribidi \
+ libpng16.so:graphics/png \
+ libgoffice-0.10.so:devel/goffice \
+ libfreetype.so:print/freetype2 \
+ libgcrypt.so:security/libgcrypt \
+ libgpg-error.so:security/libgpg-error \
+ libexpat.so:textproc/expat2 \
+ libwv-1.2.so.4:textproc/wv \
+ libfontconfig.so:x11-fonts/fontconfig
RUN_DEPENDS= ${LOCALBASE}/share/fonts/dejavu/DejaVuSerif.ttf:x11-fonts/dejavu
-USES= compiler:c++11-lang cpe desktop-file-utils gmake gnome iconv jpeg \
- libtool localbase:ldflags pathfix pkgconfig
+USES= autoreconf bison compiler:c++11-lang cpe desktop-file-utils \
+ gettext-tools gmake gnome iconv jpeg libtool localbase:ldflags \
+ pathfix perl5 pkgconfig python:build readline shebangfix xorg
CPE_VENDOR= abisource
-USE_GNOME= libxml2 gtk30 librsvg2 libxslt
+USE_GITLAB= yes
+GL_SITE= https://gitlab.gnome.org
+GL_ACCOUNT= World
+GL_PROJECT= AbiWord
+USE_GNOME= glib20 gtk30 introspection:build libgsf libxml2 librsvg2 \
+ libxslt
USE_LDCONFIG= yes
+USE_PERL5= build
+USE_XORG= x11
+SHEBANG_FILES= tools/cdump/xp/*.pl \
+ tools/rtfgen/*.pl \
+ po/*.pl
GNU_CONFIGURE= yes
-GNU_CONFIGURE_MANPREFIX=${PREFIX}/share
CONFIGURE_ARGS= --without-gnomevfs --enable-plugins="${ABIWORD_PLUGINS}" \
- --enable-shared="yes" --enable-static="no"
+ --enable-shared=yes --enable-static=no \
+ --enable-introspection=yes
INSTALL_TARGET= install-strip
PLIST_SUB+= ABIVERSION=3.0
-OPTIONS_DEFINE= CLIPART DEBUG MATHVIEW NLS PSION \
- TEMPLATES WP
-OPTIONS_DEFAULT=CLIPART COLSUGAR SPELLCHECK TEMPLATES
-OPTIONS_GROUP= DICT COLLAB
-OPTIONS_GROUP_COLLAB= COLFAKE COLSERVICE COLSIP COLSUGAR COLTCP COLTELEPATHY COLXMPP
+OPTIONS_DEFINE= CLIPART DEBUG TEMPLATES WMF WP
+OPTIONS_DEFAULT=CLIPART SPELLCHECK TEMPLATES WMF
+OPTIONS_GROUP= DICT
OPTIONS_GROUP_DICT= GRAMMAR SPELLCHECK
OPTIONS_SUB= yes
CLIPART_DESC= Include clipart
-COLFAKE_DESC= Fake collaboration for debugging purposes only
-COLLAB_DESC= Collaboration backend
-COLSERVICE_DESC= Collaborate with AbiCollab.net webservice
-COLSIP_DESC= Collaborate with the SIP/SIMPLE backend
-COLSUGAR_DESC= Collaborate with the Sugar/OLPC environment
-COLTCP_DESC= Collaborate with direct TCP peer to peer connections
-COLTELEPATHY_DESC= Collaborate with the Telepathy backend (experimental)
-COLXMPP_DESC= Collaborate with the Jabber/XMPP backend
DICT_DESC= Spelling and grammar checking
GRAMMAR_DESC= Grammar checking plugin
-MATHVIEW_DESC= MathML render plugin
-PSION_DESC= Psion 5(MX) files convertion plugin
SPELLCHECK_DESC= Spell checking support
TEMPLATES_DESC= Include additional templates
+WMF_DESC= Windows Metafile plugin
WP_DESC= WordPerfect img/doc import/export plugin
# check configure for ALL_PLUGINS for complete list
-ABIWORD_PLUGINS= garble loadbindings opml xslfo bmp iscii sdw babelfish \
- paint command latex pdf wikipedia hrtext openxml \
- goffice wmf kword mif wml s5 freetranslation gdict mht \
- applix t602 docbook google eml hancom presentation \
- clarisworks pdb urldict openwriter mswrite gimp \
- passepartout eml
-
-# opendocument enabled by default, rsvg plugin isn't needed on unix.
-# Plugins we don't support:
-# gda
+ABIWORD_PLUGINS= applix bmp clarisworks command docbook eml epub \
+ garble gimp goffice hancom hrtext iscii latex \
+ loadbindings mif mswrite openwriter opml paint \
+ passepartout pdb pdf presentation s5 sdw t602 \
+ wml wikipedia xslfo
CLIPART_CONFIGURE_ENABLE= clipart
-COLFAKE_CONFIGURE_ENABLE= collab-backend-fake
-
-COLSERVICE_BROKEN= Does not build with asio from system
-COLSERVICE_BUILD_DEPENDS= ${LOCALBASE}/include/asio.hpp:net/asio
-COLSERVICE_LIB_DEPENDS= libsoup-2.4.so:devel/libsoup \
- libgnutls.so:security/gnutls
-COLSERVICE_RUN_DEPENDS= ${LOCALBASE}/include/asio.hpp:net/asio
-COLSERVICE_CONFIGURE_ENABLE= collab-backend-service
-
-COLSIP_CONFIGURE_ENABLE= collab-backend-sip
-
-COLSUGAR_LIB_DEPENDS= libdbus-glib-1.so:devel/dbus-glib
-COLSUGAR_CONFIGURE_ENABLE= collab-backend-sugar
-
-COLTCP_BROKEN= Does not build with asio from system
-COLTCP_BUILD_DEPENDS= ${LOCALBASE}/include/asio.hpp:net/asio
-COLTCP_RUN_DEPENDS= ${LOCALBASE}/include/asio.hpp:net/asio
-COLTCP_CONFIGURE_ENABLE= collab-backend-tcp
-
-COLTELEPATHY_LIB_DEPENDS= libtelepathy-glib.so:net-im/telepathy-glib
-COLTELEPATHY_CONFIGURE_ENABLE= collab-backend-telepathy
-
-COLXMPP_LIB_DEPENDS= libloudmouth-1.so:net-im/loudmouth
-COLXMPP_CONFIGURE_ENABLE= collab-backend-xmpp
-
DEBUG_CONFIGURE_ENABLE= debug
GRAMMAR_IMPLIES= SPELLCHECK
GRAMMAR_LIB_DEPENDS= liblink-grammar.so:textproc/link-grammar
GRAMMAR_VARS= ABIWORD_PLUGINS+=grammar
-MATHVIEW_LIB_DEPENDS= libmathview.so:x11-toolkits/gtkmathview
-MATHVIEW_USES= bison
-MATHVIEW_VARS= ABIWORD_PLUGINS+=mathview
-
-NLS_USES= gettext
-NLS_CONFIGURE_ENABLE= nls
-
-PSION_LIB_DEPENDS= libpsiconv.so:converters/psiconv
-PSION_VARS= ABIWORD_PLUGINS+=psion
-
-SPELLCHECK_LIB_DEPENDS= libenchant.so:textproc/enchant
+SPELLCHECK_LIB_DEPENDS= libenchant-2.so:textproc/enchant2
SPELLCHECK_CONFIGURE_ENABLE= spell
TEMPLATES_CONFIGURE_ENABLE= templates
+WMF_LIB_DEPENDS= libwmf-0.2.so.7:graphics/libwmf
+WMF_VARS= ABIWORD_PLUGINS+=wmf
+
WP_LIB_DEPENDS= libwpg-0.3.so:graphics/libwpg03 \
libwpd-0.10.so:textproc/libwpd010 \
libwps-0.4.so:textproc/libwps
-WP_USE= gnome=libgsf
WP_VARS= ABIWORD_PLUGINS+="wpg wordperfect"
-.include <bsd.port.options.mk>
-
-.if ${PORT_OPTIONS:MCOL*}
-ABIWORD_PLUGINS+= collab
-PLIST_SUB+= COLLAB=""
-.else
-PLIST_SUB+= COLLAB="@comment "
-.endif
-
post-patch:
- @${REINPLACE_CMD} -e 's|glib/.*\.h>|glib.h>|g' \
- ${WRKSRC}/goffice-bits/goffice/app/goffice-app.h \
- ${WRKSRC}/src/af/util/xp/ut_go_file.h
-# The following substitutions ensure that plugins are linked with libabiword
-# from the work or stage directory instead of a previously installed library.
-# In pseudo code:
-# s,PLUGIN_LIBS="$PLUGIN_LIBS -Lsrc -labiword",
-# PLUGIN_LIBS="src/libabiword.la $PLUGIN_LIBS",
-# s,foo_LIBS="$foo_LIBS $PLUGIN_LIBS",
-# foo_LIBS="$PLUGIN_LIBS $foo_LIBS",
-# The initial value of PLUGIN_LIBS may contain -L/usr/local/lib so it would
-# have to come after -Lsrc, but -Lsrc is not correct when libtool relinks
-# plugins during staging so use src/libabiword.la and let libtool figure out
-# what flags are needed. Secondly, switch around foo_LIBS and PLUGIN_LIBS
-# because foo_LIBS may contain -L/usr/local/lib.
- @${REINPLACE_CMD} \
- -e "s,\$$PLUGIN_LIBS \"'-L\$${top_builddir}/src'\" -labiword-\$$ABIWORD_SERIES,\\\\\$${top_builddir}/src/libabiword-\$$ABIWORD_SERIES.la \$$PLUGIN_LIBS," \
- -e "/_LIBS=/s,\"\\(.*\\)\"\\('\$${PLUGIN_LIBS}.*'\\),\\2\" \\1\"," \
- -e 's|" == "|" = "|g' ${WRKSRC}/configure
+ ${REINPLACE_CMD} -i "" -e 's|com\.abisource\.AbiWord|${PORTNAME}|' \
+ ${WRKSRC}/abiword.appdata.xml
+
+pre-configure:
+ cd ${WRKSRC} && ${SETENV} ${SH} ./autogen-common.sh
.include <bsd.port.mk>
diff --git a/editors/abiword/distinfo b/editors/abiword/distinfo
index 96efd33e6943..0056353f5dba 100644
--- a/editors/abiword/distinfo
+++ b/editors/abiword/distinfo
@@ -1,3 +1,5 @@
-TIMESTAMP = 1630554026
-SHA256 (AbiWord/abiword-3.0.5.tar.gz) = 1257247e9970508d6d1456d3e330cd1909c4b42b25e0f0a1bc32526d6f3a21b4
-SIZE (AbiWord/abiword-3.0.5.tar.gz) = 11084159
+TIMESTAMP = 1772390992
+SHA256 (AbiWord/AbiWord-release-3.0.8.tar.bz2) = ef2fdc2cb66a54a58185e7008bd349ce858e59648e18571913d5a3e2b43abf37
+SIZE (AbiWord/AbiWord-release-3.0.8.tar.bz2) = 7884596
+SHA256 (AbiWord/ae05e92d.patch) = b1681d56056b216ae250d442bd6f3eadd161b7f5b7705ec53c0d8221449bd457
+SIZE (AbiWord/ae05e92d.patch) = 1876
diff --git a/editors/abiword/files/patch-configure b/editors/abiword/files/patch-configure
deleted file mode 100644
index 294944d6ce3a..000000000000
--- a/editors/abiword/files/patch-configure
+++ /dev/null
@@ -1,40 +0,0 @@
---- configure.orig 2021-07-03 15:48:11 UTC
-+++ configure
-@@ -23069,7 +23069,7 @@ fi
-
-
-
--wpg_pkgs="$gsf_req libwpg-0.2 >= 0.2.0 libwpd-0.9 >= 0.9.0 libwpd-stream-0.9 >= 0.9.0"
-+wpg_pkgs="libwpg-0.3 $gsf_req"
- wpg_deps="no"
-
- if test "$enable_wpg" != ""; then
-@@ -23820,7 +23820,7 @@ fi
- test "$enable_collab" = "auto" && PLUGINS="$PLUGINS collab"
-
- COLLAB_CFLAGS="$COLLAB_CFLAGS "'${PLUGIN_CFLAGS}'
--COLLAB_LIBS="$COLLAB_LIBS "'${PLUGIN_LIBS}'
-+COLLAB_LIBS='${PLUGIN_LIBS}'" $COLLAB_LIBS "
-
- fi # plugin conditional
-
-@@ -26311,8 +26311,8 @@ fi
-
-
-
--wordperfect_pkgs="libwpg-0.2 >= 0.2.0 libwpd-0.9 >= 0.9.0 libwpd-stream-0.9 >= 0.9.0 $gsf_req"
--wordperfect_wps_pkgs='libwps-0.2 >= 0.1.0'
-+wordperfect_pkgs="libwpd-0.10 $gsf_req"
-+wordperfect_wps_pkgs='libwps-0.4'
- wordperfect_deps="no"
-
- WORDPERFECT_CFLAGS=
-@@ -26355,7 +26355,7 @@ if test -n "$PKG_CONFIG" && \
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
-
-- wp_deps_pkgs="$wp_deps_pkgs $wordperfect_wps_pkgs"
-+ wp_deps_pkgs="$wordperfect_wps_pkgs $wp_deps_pkgs"
- WPS_DEFINE=" -DHAVE_LIBWPS"
-
- fi
diff --git a/editors/abiword/files/patch-configure.ac b/editors/abiword/files/patch-configure.ac
new file mode 100644
index 000000000000..f623cb769b63
--- /dev/null
+++ b/editors/abiword/files/patch-configure.ac
@@ -0,0 +1,19 @@
+--- configure.ac.orig 2026-02-18 03:16:18 UTC
++++ configure.ac
+@@ -80,7 +80,7 @@ fribidi_req='fribidi >= 0.10.4'
+
+ # cross platform deps
+ fribidi_req='fribidi >= 0.10.4'
+-glib_req='glib-2.0 >= 2.6.0 gthread-2.0 >= 2.6.0 gobject-2.0 >= 2.6.0'
++glib_req='glib-2.0 >= 2.6.0 gthread-2.0 >= 2.6.0 gobject-2.0 >= 2.6.0 gmodule-2.0 >= 2.6.0'
+ gsf_req='libgsf-1 >= 1.14.18'
+ gsf_gio_req='libgsf-1 >= 1.14.9'
+ wv_req='wv-1.0 >= 1.2.0'
+@@ -644,7 +644,6 @@ if test "$GCC" = "yes"; then
+ if test "$GCC" = "yes"; then
+ for option in -Wall -Wextra -Wsign-compare -Wpointer-arith \
+ -Wchar-subscripts -Wwrite-strings -Wmissing-noreturn \
+- -Wformat-overflow=2 \
+ -Wunused -Wpointer-arith -Wshadow; do
+ SAVE_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $option"
diff --git a/editors/abiword/files/patch-git-01-2a06be6a10a0718f8a3d8e00c317f5042c99a467 b/editors/abiword/files/patch-git-01-2a06be6a10a0718f8a3d8e00c317f5042c99a467
deleted file mode 100644
index 4945803e3391..000000000000
--- a/editors/abiword/files/patch-git-01-2a06be6a10a0718f8a3d8e00c317f5042c99a467
+++ /dev/null
@@ -1,29 +0,0 @@
-From 2a06be6a10a0718f8a3d8e00c317f5042c99a467 Mon Sep 17 00:00:00 2001
-From: Jan Tojnar <jtojnar@gmail.com>
-Date: Mon, 11 Dec 2023 01:55:53 +0100
-Subject: [PATCH] Fix build with libxml2 2.12
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-libxml 2.12.0 restructured headers so that xmlFree is no longer in the scope.
-Let’s add the correct include.
----
- src/af/util/xp/ut_stringbuf.cpp | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/af/util/xp/ut_stringbuf.cpp b/src/af/util/xp/ut_stringbuf.cpp
-index f1e8d9078..88488ad67 100644
---- src/af/util/xp/ut_stringbuf.cpp
-+++ src/af/util/xp/ut_stringbuf.cpp
-@@ -26,6 +26,7 @@
- #include <algorithm>
-
- #include <libxml/uri.h>
-+#include <libxml/xmlmemory.h>
-
- #include <glib.h>
-
---
-GitLab
-
diff --git a/editors/abiword/files/patch-plugins_collab_backends_tcp_xp_Session.h b/editors/abiword/files/patch-plugins_collab_backends_tcp_xp_Session.h
deleted file mode 100644
index f75772088bea..000000000000
--- a/editors/abiword/files/patch-plugins_collab_backends_tcp_xp_Session.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./plugins/collab/backends/tcp/xp/Session.h.orig 2014-12-05 21:51:55.334456277 +0100
-+++ ./plugins/collab/backends/tcp/xp/Session.h 2014-12-05 21:51:31.075459132 +0100
-@@ -31,7 +31,7 @@
-
- class TCPAccountHandler;
-
--class Session : public Synchronizer, public boost::noncopyable, public boost::enable_shared_from_this<Session>
-+class Session : public Synchronizer, public asio::noncopyable, public boost::enable_shared_from_this<Session>
- {
- public:
- Session(asio::io_service& io_service, boost::function<void (boost::shared_ptr<Session>)> ef)
diff --git a/editors/abiword/files/patch-plugins_collab_core_sync_xp_SynchronizedQueue.h b/editors/abiword/files/patch-plugins_collab_core_sync_xp_SynchronizedQueue.h
deleted file mode 100644
index cd481ded8ea4..000000000000
--- a/editors/abiword/files/patch-plugins_collab_core_sync_xp_SynchronizedQueue.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./plugins/collab/core/sync/xp/SynchronizedQueue.h.orig 2014-12-05 21:45:41.710482488 +0100
-+++ ./plugins/collab/core/sync/xp/SynchronizedQueue.h 2014-12-05 21:46:02.610480585 +0100
-@@ -28,7 +28,7 @@
- class EmptyQueueException {};
-
- template <typename T>
--class SynchronizedQueue : public Synchronizer, public boost::noncopyable
-+class SynchronizedQueue : public Synchronizer, public asio::noncopyable
- {
- public:
- SynchronizedQueue(boost::function<void (SynchronizedQueue&)> sig)
diff --git a/editors/abiword/files/patch-plugins_wordperfect_plugin.m4 b/editors/abiword/files/patch-plugins_wordperfect_plugin.m4
deleted file mode 100644
index 4fabbcf679ef..000000000000
--- a/editors/abiword/files/patch-plugins_wordperfect_plugin.m4
+++ /dev/null
@@ -1,20 +0,0 @@
---- plugins/wordperfect/plugin.m4.orig 2010-11-08 13:01:58.000000000 +0100
-+++ plugins/wordperfect/plugin.m4 2016-01-26 21:13:45.479525000 +0100
-@@ -1,6 +1,6 @@
-
--wordperfect_pkgs="libwpg-0.2 >= 0.2.0 libwpd-0.9 >= 0.9.0 libwpd-stream-0.9 >= 0.9.0 $gsf_req"
--wordperfect_wps_pkgs='libwps-0.2 >= 0.1.0'
-+wordperfect_pkgs="libwpd-0.10 $gsf_req"
-+wordperfect_wps_pkgs='libwps-0.4'
- wordperfect_deps="no"
-
- WORDPERFECT_CFLAGS=
-@@ -29,7 +29,7 @@
-
- PKG_CHECK_EXISTS([ $wordperfect_wps_pkgs ],
- [
-- wp_deps_pkgs="$wp_deps_pkgs $wordperfect_wps_pkgs"
-+ wp_deps_pkgs="$wordperfect_wps_pkgs $wp_deps_pkgs"
- WPS_DEFINE=" -DHAVE_LIBWPS"
- ])
-
diff --git a/editors/abiword/files/patch-plugins_wordperfect_xp_Makefile.am b/editors/abiword/files/patch-plugins_wordperfect_xp_Makefile.am
deleted file mode 100644
index 166772a38195..000000000000
--- a/editors/abiword/files/patch-plugins_wordperfect_xp_Makefile.am
+++ /dev/null
@@ -1,11 +0,0 @@
---- plugins/wordperfect/xp/Makefile.am.orig 2008-05-08 15:12:53.000000000 +0200
-+++ plugins/wordperfect/xp/Makefile.am 2016-01-26 20:42:39.161783000 +0100
-@@ -6,8 +6,6 @@
- -DABI_BUILD_VERSION=\"$(VERSION)\"
-
- libxp_la_SOURCES = \
-- ie_exp_WordPerfect.cpp \
-- ie_exp_WordPerfect.h \
- ie_impexp_WordPerfect.cpp \
- ie_impexp_WordPerfect.h \
- ie_imp_WordPerfect.cpp \
diff --git a/editors/abiword/files/patch-plugins_wordperfect_xp_Makefile.in b/editors/abiword/files/patch-plugins_wordperfect_xp_Makefile.in
deleted file mode 100644
index 48b433aedd33..000000000000
--- a/editors/abiword/files/patch-plugins_wordperfect_xp_Makefile.in
+++ /dev/null
@@ -1,11 +0,0 @@
---- plugins/wordperfect/xp/Makefile.in.orig 2016-01-26 22:09:46.402022000 +0100
-+++ plugins/wordperfect/xp/Makefile.in 2016-01-26 22:12:18.203941000 +0100
-@@ -492,8 +492,6 @@
- -DABI_BUILD_VERSION=\"$(VERSION)\"
-
- libxp_la_SOURCES = \
-- ie_exp_WordPerfect.cpp \
-- ie_exp_WordPerfect.h \
- ie_impexp_WordPerfect.cpp \
- ie_impexp_WordPerfect.h \
- ie_imp_WordPerfect.cpp \
diff --git a/editors/abiword/files/patch-plugins_wordperfect_xp_ie__imp__WordPerfect.cpp b/editors/abiword/files/patch-plugins_wordperfect_xp_ie__imp__WordPerfect.cpp
deleted file mode 100644
index cb670a79dd19..000000000000
--- a/editors/abiword/files/patch-plugins_wordperfect_xp_ie__imp__WordPerfect.cpp
+++ /dev/null
@@ -1,652 +0,0 @@
---- plugins/wordperfect/xp/ie_imp_WordPerfect.cpp.orig 2013-04-07 15:53:03.000000000 +0200
-+++ plugins/wordperfect/xp/ie_imp_WordPerfect.cpp 2016-01-26 21:47:24.995046000 +0100
-@@ -31,6 +31,8 @@
- #include <stdlib.h>
- #include <string.h>
- #include <math.h>
-+#include <map>
-+#include <string>
- #include <gsf/gsf-utils.h>
- #include <gsf/gsf-input-memory.h>
- #include <gsf/gsf-input-stdio.h>
-@@ -60,42 +62,47 @@
-
- // Stream class
-
--#include <libwpd-stream/libwpd-stream.h>
-+#include <librevenge-stream/librevenge-stream.h>
-+#include <libwpd/libwpd.h>
-
- #include <gsf/gsf-input.h>
- #include <gsf/gsf-infile.h>
- #include <gsf/gsf-infile-msole.h>
-+#include <gsf/gsf-infile-zip.h>
-
- #ifdef HAVE_LIBWPS
- #include <libwps/libwps.h>
- #endif
-
--class AbiWordperfectInputStream : public WPXInputStream
-+class AbiWordperfectInputStream : public librevenge::RVNGInputStream
- {
- public:
- AbiWordperfectInputStream(GsfInput *input);
- ~AbiWordperfectInputStream();
-
-- virtual bool isOLEStream();
-- virtual WPXInputStream * getDocumentOLEStream();
--
-- virtual WPXInputStream * getDocumentOLEStream(const char * name);
--
-+ virtual bool isStructured();
-+ virtual unsigned subStreamCount();
-+ virtual const char* subStreamName(unsigned);
-+ bool existsSubStream(const char*);
-+ virtual librevenge::RVNGInputStream* getSubStreamByName(const char*);
-+ virtual librevenge::RVNGInputStream* getSubStreamById(unsigned);
- virtual const unsigned char *read(unsigned long numBytes, unsigned long &numBytesRead);
-- virtual int seek(long offset, WPX_SEEK_TYPE seekType);
-+ virtual int seek(long offset, librevenge::RVNG_SEEK_TYPE seekType);
- virtual long tell();
-- virtual bool atEOS();
-+ virtual bool isEnd();
-
- private:
-
- GsfInput *m_input;
- GsfInfile *m_ole;
-+ std::map<unsigned, std::string> m_substreams;
- };
-
- AbiWordperfectInputStream::AbiWordperfectInputStream(GsfInput *input) :
-- WPXInputStream(),
-+ librevenge::RVNGInputStream(),
- m_input(input),
-- m_ole(NULL)
-+ m_ole(NULL),
-+ m_substreams()
- {
- g_object_ref(G_OBJECT(input));
- }
-@@ -120,45 +127,115 @@ const unsigned char * AbiWordperfectInpu
- return buf;
- }
-
--int AbiWordperfectInputStream::seek(long offset, WPX_SEEK_TYPE seekType)
-+int AbiWordperfectInputStream::seek(long offset, librevenge::RVNG_SEEK_TYPE seekType)
- {
- GSeekType gsfSeekType = G_SEEK_SET;
- switch(seekType)
- {
-- case WPX_SEEK_CUR:
-+ case librevenge::RVNG_SEEK_CUR:
- gsfSeekType = G_SEEK_CUR;
- break;
-- case WPX_SEEK_SET:
-+ case librevenge::RVNG_SEEK_SET:
- gsfSeekType = G_SEEK_SET;
- break;
-+ case librevenge::RVNG_SEEK_END:
-+ gsfSeekType = G_SEEK_END;
-+ break;
- }
-
- return gsf_input_seek(m_input, offset, gsfSeekType);
- }
-
--bool AbiWordperfectInputStream::isOLEStream()
-+bool AbiWordperfectInputStream::isStructured()
- {
- if (!m_ole)
- m_ole = GSF_INFILE(gsf_infile_msole_new (m_input, NULL));
-
-- if (m_ole != NULL)
-+ if (!m_ole)
-+ m_ole = GSF_INFILE(gsf_infile_zip_new (m_input, NULL));
-+
-+ if (m_ole)
- return true;
-
- return false;
- }
-
--WPXInputStream * AbiWordperfectInputStream::getDocumentOLEStream()
-+unsigned AbiWordperfectInputStream::subStreamCount()
- {
-- return getDocumentOLEStream("PerfectOffice_MAIN");
-+ if (!m_ole)
-+ m_ole = GSF_INFILE(gsf_infile_msole_new (m_input, NULL));
-+
-+ if (!m_ole)
-+ m_ole = GSF_INFILE(gsf_infile_zip_new (m_input, NULL));
-+
-+ if (m_ole)
-+ {
-+ int numChildren = gsf_infile_num_children(m_ole);
-+ if (numChildren > 0)
-+ return numChildren;
-+ return 0;
-+ }
-+
-+ return 0;
- }
-
--WPXInputStream * AbiWordperfectInputStream::getDocumentOLEStream(const char * name)
-+const char * AbiWordperfectInputStream::subStreamName(unsigned id)
- {
-- WPXInputStream *documentStream = NULL;
-+ if (!m_ole)
-+ m_ole = GSF_INFILE(gsf_infile_msole_new (m_input, NULL));
-
- if (!m_ole)
-+ m_ole = GSF_INFILE(gsf_infile_zip_new (m_input, NULL));
-+
-+ if (m_ole)
-+ {
-+ if ((int)id >= gsf_infile_num_children(m_ole))
-+ {
-+ return 0;
-+ }
-+ std::map<unsigned, std::string>::iterator i = m_substreams.lower_bound(id);
-+ if (i == m_substreams.end() || m_substreams.key_comp()(id, i->first))
-+ {
-+ std::string name = gsf_infile_name_by_index(m_ole, (int)id);
-+ i = m_substreams.insert(i, std::map<unsigned, std::string>::value_type(id, name));
-+ }
-+ return i->second.c_str();
-+ }
-+
-+ return 0;
-+}
-+
-+bool AbiWordperfectInputStream::existsSubStream(const char * name)
-+{
-+ if (!m_ole)
- m_ole = GSF_INFILE(gsf_infile_msole_new (m_input, NULL));
-
-+ if (!m_ole)
-+ m_ole = GSF_INFILE(gsf_infile_zip_new (m_input, NULL));
-+
-+ if (m_ole)
-+ {
-+ GsfInput *document = gsf_infile_child_by_name(m_ole, name);
-+ if (document)
-+ {
-+ g_object_unref(G_OBJECT (document));
-+ return true;
-+ }
-+ }
-+
-+ return false;
-+}
-+
-+librevenge::RVNGInputStream * AbiWordperfectInputStream::getSubStreamByName(const char * name)
-+{
-+ librevenge::RVNGInputStream *documentStream = NULL;
-+
-+ if (!m_ole)
-+ m_ole = GSF_INFILE(gsf_infile_msole_new (m_input, NULL));
-+
-+ if (!m_ole)
-+ m_ole = GSF_INFILE(gsf_infile_zip_new (m_input, NULL));
-+
- if (m_ole)
- {
- GsfInput *document = gsf_infile_child_by_name(m_ole, name);
-@@ -172,12 +249,35 @@ WPXInputStream * AbiWordperfectInputStre
- return documentStream;
- }
-
-+librevenge::RVNGInputStream * AbiWordperfectInputStream::getSubStreamById(unsigned id)
-+{
-+ librevenge::RVNGInputStream *documentStream = NULL;
-+
-+ if (!m_ole)
-+ m_ole = GSF_INFILE(gsf_infile_msole_new (m_input, NULL));
-+
-+ if (!m_ole)
-+ m_ole = GSF_INFILE(gsf_infile_zip_new (m_input, NULL));
-+
-+ if (m_ole)
-+ {
-+ GsfInput *document = gsf_infile_child_by_index(m_ole, (int)id);
-+ if (document)
-+ {
-+ documentStream = new AbiWordperfectInputStream(document);
-+ g_object_unref(G_OBJECT (document)); // the only reference should be encapsulated within the new stream
-+ }
-+ }
-+
-+ return documentStream;
-+}
-+
- long AbiWordperfectInputStream::tell()
- {
- return gsf_input_tell(m_input);
- }
-
--bool AbiWordperfectInputStream::atEOS()
-+bool AbiWordperfectInputStream::isEnd()
- {
- return gsf_input_eof(m_input);
- }
-@@ -247,13 +347,13 @@ UT_Confidence_t IE_Imp_WordPerfect_Sniff
- {
- AbiWordperfectInputStream gsfInput(input);
-
-- WPDConfidence confidence = WPDocument::isFileFormatSupported(&gsfInput);
--
-+ libwpd::WPDConfidence confidence = libwpd::WPDocument::isFileFormatSupported(&gsfInput);
-+
- switch (confidence)
- {
-- case WPD_CONFIDENCE_NONE:
-+ case libwpd::WPD_CONFIDENCE_NONE:
- return UT_CONFIDENCE_ZILCH;
-- case WPD_CONFIDENCE_EXCELLENT:
-+ case libwpd::WPD_CONFIDENCE_EXCELLENT:
- return UT_CONFIDENCE_PERFECT;
- default:
- return UT_CONFIDENCE_ZILCH;
-@@ -312,9 +412,9 @@ IE_Imp_WordPerfect::~IE_Imp_WordPerfect(
- UT_Error IE_Imp_WordPerfect::_loadFile(GsfInput * input)
- {
- AbiWordperfectInputStream gsfInput(input);
-- WPDResult error = WPDocument::parse(&gsfInput, static_cast<WPXDocumentInterface *>(this), NULL);
-+ libwpd::WPDResult error = libwpd::WPDocument::parse(&gsfInput, static_cast<librevenge::RVNGTextInterface *>(this), NULL);
-
-- if (error != WPD_OK)
-+ if (error != libwpd::WPD_OK)
- {
- UT_DEBUGMSG(("AbiWordPerfect: ERROR: %i!\n", (int)error));
- return UT_IE_IMPORTERROR;
-@@ -329,7 +429,7 @@ void IE_Imp_WordPerfect::pasteFromBuffer
- // nada
- }
-
--void IE_Imp_WordPerfect::setDocumentMetaData(const WPXPropertyList &propList)
-+void IE_Imp_WordPerfect::setDocumentMetaData(const librevenge::RVNGPropertyList &propList)
- {
- if (propList["dc:author"])
- getDoc()->setMetaDataProp(PD_META_KEY_CREATOR, propList["dc:author"]->getStr().cstr());
-@@ -339,15 +439,15 @@ void IE_Imp_WordPerfect::setDocumentMeta
- getDoc()->setMetaDataProp(PD_META_KEY_PUBLISHER, propList["dc:publisher"]->getStr().cstr());
- if (propList["dc:type"])
- getDoc()->setMetaDataProp(PD_META_KEY_TYPE, propList["dc:category"]->getStr().cstr());
-- if (propList["libwpd:keywords"])
-- getDoc()->setMetaDataProp(PD_META_KEY_KEYWORDS, propList["libwpd:keywords"]->getStr().cstr());
-+ if (propList["librevenge:keywords"])
-+ getDoc()->setMetaDataProp(PD_META_KEY_KEYWORDS, propList["librevenge:keywords"]->getStr().cstr());
- if (propList["dc:language"])
- getDoc()->setMetaDataProp(PD_META_KEY_LANGUAGE, propList["dc:language"]->getStr().cstr());
-- if (propList["libwpd:abstract"])
-- getDoc()->setMetaDataProp(PD_META_KEY_DESCRIPTION, propList["libwpd:abstract"]->getStr().cstr());
-+ if (propList["librevenge:abstract"])
-+ getDoc()->setMetaDataProp(PD_META_KEY_DESCRIPTION, propList["librevenge:abstract"]->getStr().cstr());
- }
-
--void IE_Imp_WordPerfect::startDocument()
-+void IE_Imp_WordPerfect::startDocument(const librevenge::RVNGPropertyList & /* propList */)
- {
- UT_DEBUGMSG(("AbiWordPerfect: startDocument\n"));
- }
-@@ -357,7 +457,7 @@ void IE_Imp_WordPerfect::endDocument()
- UT_DEBUGMSG(("AbiWordPerfect: endDocument\n"));
- }
-
--void IE_Imp_WordPerfect::openPageSpan(const WPXPropertyList &propList)
-+void IE_Imp_WordPerfect::openPageSpan(const librevenge::RVNGPropertyList &propList)
- {
- if (m_bHdrFtrOpenCount) return; // HACK
- UT_DEBUGMSG(("AbiWordPerfect: openPageSpan\n"));
-@@ -378,7 +478,7 @@ void IE_Imp_WordPerfect::openPageSpan(co
-
- }
-
--void IE_Imp_WordPerfect::openHeader(const WPXPropertyList & /*propList*/)
-+void IE_Imp_WordPerfect::openHeader(const librevenge::RVNGPropertyList & /*propList*/)
- {
- m_bHdrFtrOpenCount++;
-
-@@ -420,7 +520,7 @@ void IE_Imp_WordPerfect::closeHeader()
- */
- }
-
--void IE_Imp_WordPerfect::openFooter(const WPXPropertyList & /*propList*/)
-+void IE_Imp_WordPerfect::openFooter(const librevenge::RVNGPropertyList & /*propList*/)
- {
- m_bHdrFtrOpenCount++;
- // see above comments re: openHeader
-@@ -432,7 +532,7 @@ void IE_Imp_WordPerfect::closeFooter()
- // see above comments re: closeHeader
- }
-
--void IE_Imp_WordPerfect::openParagraph(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops)
-+void IE_Imp_WordPerfect::openParagraph(const librevenge::RVNGPropertyList &propList)
- {
- if (m_bHdrFtrOpenCount) return; // HACK
- UT_DEBUGMSG(("AbiWordPerfect: openParagraph()\n"));
-@@ -478,13 +578,15 @@ void IE_Imp_WordPerfect::openParagraph(c
- (int)(m_topMargin*72), (int)(m_bottomMargin*72), m_leftMarginOffset, m_rightMarginOffset, m_textIndent, lineSpacing);
- propBuffer += tmpBuffer;
-
-- if (tabStops.count() > 0) // Append the tabstop information
-+ const librevenge::RVNGPropertyListVector *tabStops = propList.child("style:tab-stops");
-+
-+ if (tabStops && tabStops->count()) // Append the tabstop information
- {
- propBuffer += "; tabstops:";
- tmpBuffer = "";
-- WPXPropertyListVector::Iter i(tabStops);
-- for (i.rewind(); i.next();)
-- {
-+ librevenge::RVNGPropertyListVector::Iter i(*tabStops);
-+ for (i.rewind(); i.next();)
-+ {
- propBuffer += tmpBuffer;
- if (i()["style:position"])
- {
-@@ -515,8 +617,8 @@ void IE_Imp_WordPerfect::openParagraph(c
- propBuffer += "0";
-
- tmpBuffer = ",";
-- }
-- }
-+ }
-+ }
-
-
-
-@@ -543,7 +645,7 @@ void IE_Imp_WordPerfect::openParagraph(c
- }
- }
-
--void IE_Imp_WordPerfect::openSpan(const WPXPropertyList &propList)
-+void IE_Imp_WordPerfect::openSpan(const librevenge::RVNGPropertyList &propList)
- {
- if (m_bHdrFtrOpenCount) return; // HACK
- UT_DEBUGMSG(("AbiWordPerfect: Appending current text properties\n"));
-@@ -614,13 +716,14 @@ void IE_Imp_WordPerfect::openSpan(const
- X_CheckDocumentError(appendFmt(propsArray));
- }
-
--void IE_Imp_WordPerfect::openSection(const WPXPropertyList &propList, const WPXPropertyListVector &columns)
-+void IE_Imp_WordPerfect::openSection(const librevenge::RVNGPropertyList &propList)
- {
- if (m_bHdrFtrOpenCount) return; // HACK
- UT_DEBUGMSG(("AbiWordPerfect: openSection\n"));
-
- float marginLeft = 0.0f, marginRight = 0.0f;
-- int columnsCount = ((columns.count() == 0) ? 1 : columns.count());
-+ const librevenge::RVNGPropertyListVector *columns = propList.child("style:columns");
-+ int columnsCount = ((!columns || !columns->count()) ? 1 : columns->count());
-
- // TODO: support spaceAfter
- if (propList["fo:start-indent"])
-@@ -647,7 +750,7 @@ void IE_Imp_WordPerfect::insertTab()
- X_CheckDocumentError(appendSpan(&ucs,1));
- }
-
--void IE_Imp_WordPerfect::insertText(const WPXString &text)
-+void IE_Imp_WordPerfect::insertText(const librevenge::RVNGString &text)
- {
- if (m_bHdrFtrOpenCount) return; // HACK
- if (text.len())
-@@ -658,6 +761,15 @@ void IE_Imp_WordPerfect::insertText(cons
- }
- }
-
-+void IE_Imp_WordPerfect::insertSpace()
-+{
-+ if (m_bHdrFtrOpenCount) return; // HACK
-+ UT_DEBUGMSG(("AbiWordPerfect: insertSpace\n"));
-+
-+ UT_UCS4Char ucs = UCS_SPACE;
-+ X_CheckDocumentError(appendSpan(&ucs,1));
-+}
-+
- void IE_Imp_WordPerfect::insertLineBreak()
- {
- if (m_bHdrFtrOpenCount) return; // HACK
-@@ -668,24 +780,23 @@ void IE_Imp_WordPerfect::insertLineBreak
- }
-
-
--
--void IE_Imp_WordPerfect::defineOrderedListLevel(const WPXPropertyList &propList)
-+void IE_Imp_WordPerfect::openOrderedListLevel(const librevenge::RVNGPropertyList &propList)
- {
- if (m_bHdrFtrOpenCount) return; // HACK
-- UT_DEBUGMSG(("AbiWordPerfect: defineOrderedListLevel\n"));
--
-+ UT_DEBUGMSG(("AbiWordPerfect: openOrderedListLevel\n"));
-+
- int listID = 0, startingNumber = 0, level = 1;
- char listType = '1';
- UT_UTF8String textBeforeNumber, textAfterNumber;
- float listLeftOffset = 0.0f;
- float listMinLabelWidth = 0.0f;
-
-- if (propList["libwpd:id"])
-- listID = propList["libwpd:id"]->getInt();
-+ if (propList["librevenge:id"])
-+ listID = propList["librevenge:id"]->getInt();
- if (propList["text:start-value"])
- startingNumber = propList["text:start-value"]->getInt();
-- if (propList["libwpd:level"])
-- level = propList["libwpd:level"]->getInt();
-+ if (propList["librevenge:level"])
-+ level = propList["librevenge:level"]->getInt();
*** 845 LINES SKIPPED ***