Date: Wed, 18 Mar 2026 07:10:06 +0000 From: Don Lewis <truckman@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Cc: Olivier Duchateau <duchateau.olivier@gmail.com> Subject: git: 0a696a982663 - main - editors/abiword: update to 3.0.8 Message-ID: <69ba4fce.3a06f.7b9a2d27@gitrepo.freebsd.org>
index | next in thread | raw e-mail
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 ***home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69ba4fce.3a06f.7b9a2d27>
