aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu-system.am7
-rw-r--r--gnu/packages/abiword.scm107
-rw-r--r--gnu/packages/patches/abiword-explictly-cast-bools.patch93
-rw-r--r--gnu/packages/patches/abiword-link-plugins-against-backend.patch639
-rw-r--r--gnu/packages/patches/abiword-no-include-glib-internal-headers.patch13
-rw-r--r--gnu/packages/patches/abiword-pass-no-undefined-to-linker.patch608
-rw-r--r--gnu/packages/patches/abiword-use-proper-png-api.patch175
-rw-r--r--gnu/packages/patches/abiword-wmf-version-lookup-fix.patch28
8 files changed, 1670 insertions, 0 deletions
diff --git a/gnu-system.am b/gnu-system.am
index d610aeae11..f09b4d64b9 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -24,6 +24,7 @@
GNU_SYSTEM_MODULES = \
gnu.scm \
gnu/packages.scm \
+ gnu/packages/abiword.scm \
gnu/packages/acct.scm \
gnu/packages/acl.scm \
gnu/packages/admin.scm \
@@ -290,6 +291,12 @@ GNU_SYSTEM_MODULES = \
patchdir = $(guilemoduledir)/gnu/packages/patches
dist_patch_DATA = \
+ gnu/packages/patches/abiword-explictly-cast-bools.patch \
+ gnu/packages/patches/abiword-link-plugins-against-backend.patch \
+ gnu/packages/patches/abiword-no-include-glib-internal-headers.patch \
+ gnu/packages/patches/abiword-pass-no-undefined-to-linker.patch \
+ gnu/packages/patches/abiword-use-proper-png-api.patch \
+ gnu/packages/patches/abiword-wmf-version-lookup-fix.patch \
gnu/packages/patches/alsa-lib-mips-atomic-fix.patch \
gnu/packages/patches/apr-skip-getservbyname-test.patch \
gnu/packages/patches/automake-skip-amhello-tests.patch \
diff --git a/gnu/packages/abiword.scm b/gnu/packages/abiword.scm
new file mode 100644
index 0000000000..7d9b82b78d
--- /dev/null
+++ b/gnu/packages/abiword.scm
@@ -0,0 +1,107 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Marek Benc <merkur32@gmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages abiword)
+ #:use-module ((guix licenses)
+ #:renamer (symbol-prefix-proc 'license:))
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix build-system gnu)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages boost)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages enchant)
+ #:use-module (gnu packages fribidi)
+ #:use-module (gnu packages fontutils)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages gnome)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages image)
+ #:use-module (gnu packages ots)
+ #:use-module (gnu packages popt)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages readline)
+ #:use-module (gnu packages wvware)
+ #:use-module (gnu packages xml))
+
+(define-public abiword
+ (package
+ (name "abiword")
+ (version "2.8.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "http://abisource.org/downloads/" name "/" version
+ "/source/" name "-" version ".tar.gz"))
+ (sha256
+ (base32 "059sd2apxdmcacc4pll880i7vm18h0kyjsq299m1mz3c7ak8k46r"))
+ (patches
+ (list
+ (search-patch "abiword-wmf-version-lookup-fix.patch")
+ (search-patch "abiword-no-include-glib-internal-headers.patch")
+ (search-patch "abiword-explictly-cast-bools.patch")
+ (search-patch "abiword-use-proper-png-api.patch")
+ (search-patch "abiword-pass-no-undefined-to-linker.patch")
+ (search-patch "abiword-link-plugins-against-backend.patch")))))
+
+ (build-system gnu-build-system)
+ (arguments ;; NOTE: rsvg is disabled, since Abiword
+ `(#:configure-flags ;; supports it directly, and its BS is broken.
+ (list
+ "--enable-clipart" ;; TODO: The following plugins have unresolved
+ "--enable-templates" ;; dependencies: aiksaurus, grammar, wpg, gda,
+ (string-append ;; wordperfect, psion, mathview, goffice.
+ "--enable-plugins="
+ "applix " "babelfish " "bmp " "clarisworks " "collab " "command "
+ "docbook " "eml " "freetranslation " "garble " "gdict " "gimp "
+ "google " "hancom " "hrtext " "iscii " "kword " "latex "
+ "loadbindings " "mht " "mif " "mswrite " "opendocument "
+ "openwriter " "openxml " "opml " "ots " "paint " "passepartout "
+ "pdb " "pdf " "presentation " "s5 " "sdw " "t602 " "urldict "
+ "wikipedia " "wmf " "wml " "xslfo"))))
+ (inputs
+ `(("boost" ,boost)
+ ("enchant" ,enchant)
+ ("fontconfig" ,fontconfig)
+ ("fribidi" ,fribidi)
+ ("glib" ,glib)
+ ("gtk+" ,gtk+-2)
+ ("libglade" ,libglade)
+ ("libgsf" ,libgsf)
+ ("libjpeg" ,libjpeg)
+ ("libpng" ,libpng)
+ ("librsvg" ,librsvg)
+ ("libwmf" ,libwmf)
+ ("libxml2" ,libxml2)
+ ("ots" ,ots)
+ ("popt" ,popt)
+ ("readline" ,readline)
+ ("wvware" ,wvware)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("intltool" ,intltool)
+ ("glib:bin" ,glib "bin")
+ ("pkg-config" ,pkg-config)))
+ (home-page "http://abisource.org/")
+ (synopsis "Word processing program")
+ (description
+ "AbiWord is a word processing program. It is rapidly becoming a state
+of the art word processor, with lots of features useful for your daily work,
+personal needs, or for just some good old typing fun.")
+ (license license:gpl2+)))
diff --git a/gnu/packages/patches/abiword-explictly-cast-bools.patch b/gnu/packages/patches/abiword-explictly-cast-bools.patch
new file mode 100644
index 0000000000..7927a180ba
--- /dev/null
+++ b/gnu/packages/patches/abiword-explictly-cast-bools.patch
@@ -0,0 +1,93 @@
+As of JPEG-9, the type 'boolean' is an enumeration, but since glib defines
+TRUE and FALSE as numeric constants and this is C++, they need to be explicitly
+casted.
+
+--- a/src/af/util/xp/ut_jpeg.cpp 2009-07-08 19:33:53.000000000 +0200
++++ b/src/af/util/xp/ut_jpeg.cpp 2014-09-06 19:55:55.876997404 +0200
+@@ -102,7 +102,7 @@
+ src->pub.next_input_byte = src->sourceBuf->getPointer (src->pos);
+ src->pub.bytes_in_buffer = src->sourceBuf->getLength ();
+
+- return TRUE;
++ return (boolean)TRUE;
+ }
+
+ /*
+@@ -161,7 +161,7 @@
+ /* set the data source */
+ _JPEG_ByteBufSrc (&cinfo, pBB);
+
+- jpeg_read_header(&cinfo, TRUE);
++ jpeg_read_header(&cinfo, (boolean)TRUE);
+ jpeg_start_decompress(&cinfo);
+ iImageWidth = cinfo.output_width;
+ iImageHeight = cinfo.output_height;
+@@ -189,7 +189,7 @@
+ /* set the data source */
+ _JPEG_ByteBufSrc (&cinfo, pBB);
+
+- jpeg_read_header(&cinfo, TRUE);
++ jpeg_read_header(&cinfo, (boolean)TRUE);
+ jpeg_start_decompress(&cinfo);
+
+ int row_stride = cinfo.output_width * cinfo.output_components;
+
+
+In the following file, we also need to reverse header include order: JPEG needs
+to be included before Glib, which is included by "abiword-garble.h" for this fix
+to work.
+
+The JPEG header needs the types FILE and size_t, we can get them from cstdio.
+
+--- a/plugins/garble/xp/abiword-garble-jpeg.cpp 2009-09-05 17:49:53.000000000 +0200
++++ b/plugins/garble/xp/abiword-garble-jpeg.cpp 2014-09-07 21:28:49.364008571 +0200
+@@ -20,12 +20,14 @@
+ * 02111-1307, USA.
+ */
+
+-#include "abiword-garble.h"
++#include <cstdio>
+
+ extern "C" {
+ #include <jpeglib.h>
+ }
+
++#include "abiword-garble.h"
++
+ //-----------------------------------------------------------------------------
+ typedef struct {
+ struct jpeg_destination_mgr pub;
+@@ -49,7 +51,7 @@
+ mem_dest_ptr dest = (mem_dest_ptr) cinfo->dest;
+ dest->pub.next_output_byte = dest->buf;
+ dest->pub.free_in_buffer = dest->bufsize;
+- return FALSE;
++ return (boolean)FALSE;
+ }
+
+ //-----------------------------------------------------------------------------
+@@ -96,7 +98,7 @@
+ cinfo.image_width = (JDIMENSION) w;
+ cinfo.image_height = (JDIMENSION) h;
+ jpeg_set_defaults (&cinfo);
+- jpeg_set_quality ( &cinfo, 50, TRUE );
++ jpeg_set_quality ( &cinfo, 50, (boolean)TRUE );
+ cinfo.dest = (struct jpeg_destination_mgr *) (*cinfo.mem->alloc_small)((j_common_ptr)&cinfo, JPOOL_PERMANENT, sizeof(mem_destination_mgr));
+ dest = (mem_dest_ptr) cinfo.dest;
+ dest->pub.init_destination = _jpeg_init_destination;
+@@ -105,7 +107,7 @@
+ dest->buf = (JOCTET*)data;
+ dest->bufsize = length;
+ dest->jpegsize = 0;
+- jpeg_start_compress (&cinfo, TRUE);
++ jpeg_start_compress (&cinfo, (boolean)TRUE);
+
+ // write data
+ for (int i=0; i<h; ++i)
+@@ -121,4 +123,4 @@
+ free( dib[i] );
+ free( dib );
+ return true;
+-}
+\ No newline at end of file
++}
diff --git a/gnu/packages/patches/abiword-link-plugins-against-backend.patch b/gnu/packages/patches/abiword-link-plugins-against-backend.patch
new file mode 100644
index 0000000000..fb8fbfc98b
--- /dev/null
+++ b/gnu/packages/patches/abiword-link-plugins-against-backend.patch
@@ -0,0 +1,639 @@
+Link plugins against libabiword. This is because --no-undefined is passed to
+the linker when linking and without libabiword, it would fail.
+
+--- a/plugins/aiksaurus/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/aiksaurus/Makefile.in 2014-09-06 14:58:36.480413350 +0200
+@@ -422,7 +422,8 @@
+ plugin_LTLIBRARIES = aiksaurus.la
+ aiksaurus_la_LIBADD = \
+ $(platform_lib) \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ aiksaurus_la_LDFLAGS = \
+ $(AIKSAURUS_LIBS) \
+
+--- a/plugins/applix/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/applix/Makefile.in 2014-09-06 14:58:54.416413938 +0200
+@@ -425,7 +425,8 @@
+ @APPLIX_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @APPLIX_BUILTIN_FALSE@plugin_LTLIBRARIES = applix.la
+ applix_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ applix_la_LDFLAGS = \
+ $(APPLIX_LIBS) \
+
+--- a/plugins/babelfish/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/babelfish/Makefile.in 2014-09-06 14:59:09.220414422 +0200
+@@ -425,7 +425,8 @@
+ @BABELFISH_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @BABELFISH_BUILTIN_FALSE@plugin_LTLIBRARIES = babelfish.la
+ babelfish_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ babelfish_la_LDFLAGS = \
+ $(BABELFISH_LIBS) \
+
+--- a/plugins/bmp/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/bmp/Makefile.in 2014-09-06 14:59:53.928415886 +0200
+@@ -425,7 +425,8 @@
+ @BMP_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @BMP_BUILTIN_FALSE@plugin_LTLIBRARIES = bmp.la
+ bmp_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ bmp_la_LDFLAGS = \
+ $(BMP_LIBS) \
+
+--- a/plugins/clarisworks/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/clarisworks/Makefile.in 2014-09-06 15:00:06.148416286 +0200
+@@ -427,7 +427,8 @@
+ @CLARISWORKS_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @CLARISWORKS_BUILTIN_FALSE@plugin_LTLIBRARIES = clarisworks.la
+ clarisworks_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ clarisworks_la_LDFLAGS = \
+ $(CLARISWORKS_LIBS) \
+
+--- a/plugins/collab/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/collab/Makefile.in 2014-09-06 15:02:04.000420145 +0200
+@@ -428,7 +428,8 @@
+ @TOOLKIT_COCOA_FALSE@plugin_LTLIBRARIES = collab.la
+ @TOOLKIT_COCOA_FALSE@collab_la_LIBADD = \
+ @TOOLKIT_COCOA_FALSE@ backends/libbackends.la \
+-@TOOLKIT_COCOA_FALSE@ core/libcore.la
++@TOOLKIT_COCOA_FALSE@ core/libcore.la \
++@TOOLKIT_COCOA_FALSE@ @top_builddir@/src/libabiword-2.8.la
+
+ @TOOLKIT_COCOA_FALSE@collab_la_LDFLAGS = \
+ @TOOLKIT_COCOA_FALSE@ $(COLLAB_LIBS) \
+
+--- a/plugins/command/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/command/Makefile.in 2014-09-06 15:02:41.208421363 +0200
+@@ -420,7 +420,8 @@
+ @TOOLKIT_COCOA_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @TOOLKIT_COCOA_FALSE@plugin_LTLIBRARIES = command.la
+ @TOOLKIT_COCOA_FALSE@command_la_LIBADD = \
+-@TOOLKIT_COCOA_FALSE@ xp/libxp.la
++@TOOLKIT_COCOA_FALSE@ xp/libxp.la \
++@TOOLKIT_COCOA_FALSE@ @top_builddir@/src/libabiword-2.8.la
+
+ @TOOLKIT_COCOA_FALSE@command_la_LDFLAGS = \
+ @TOOLKIT_COCOA_FALSE@ $(COMMAND_LIBS) \
+
+--- a/plugins/docbook/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/docbook/Makefile.in 2014-09-06 15:02:52.128421720 +0200
+@@ -425,7 +425,8 @@
+ @DOCBOOK_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @DOCBOOK_BUILTIN_FALSE@plugin_LTLIBRARIES = docbook.la
+ docbook_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ docbook_la_LDFLAGS = \
+ $(DOCBOOK_LIBS) \
+
+--- a/plugins/eml/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/eml/Makefile.in 2014-09-06 15:03:02.760422068 +0200
+@@ -425,7 +425,8 @@
+ @EML_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @EML_BUILTIN_FALSE@plugin_LTLIBRARIES = eml.la
+ eml_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ eml_la_LDFLAGS = \
+ $(EML_LIBS) \
+
+--- a/plugins/freetranslation/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/freetranslation/Makefile.in 2014-09-06 15:03:17.656422556 +0200
+@@ -427,7 +427,8 @@
+ @FREETRANSLATION_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @FREETRANSLATION_BUILTIN_FALSE@plugin_LTLIBRARIES = freetranslation.la
+ freetranslation_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ freetranslation_la_LDFLAGS = \
+ $(FREETRANSLATION_LIBS) \
+
+--- a/plugins/garble/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/garble/Makefile.in 2014-09-06 15:03:48.192423556 +0200
+@@ -427,7 +427,8 @@
+ @TOOLKIT_COCOA_FALSE@plugin_LTLIBRARIES = garble.la
+ @TOOLKIT_COCOA_FALSE@garble_la_LIBADD = \
+ @TOOLKIT_COCOA_FALSE@ xp/libxp.la \
+-@TOOLKIT_COCOA_FALSE@ $(GARBLE_LIBS) $(PNG_LIBS) -ljpeg
++@TOOLKIT_COCOA_FALSE@ $(GARBLE_LIBS) $(PNG_LIBS) -ljpeg \
++@TOOLKIT_COCOA_FALSE@ @top_builddir@/src/libabiword-2.8.la
+
+ @TOOLKIT_COCOA_FALSE@garble_la_LDFLAGS = \
+ @TOOLKIT_COCOA_FALSE@ $(GARBLE_LIBS) \
+
+--- a/plugins/gda/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/gda/Makefile.in 2014-09-06 15:04:08.012424205 +0200
+@@ -419,7 +419,8 @@
+ plugindir = $(ABIWORD_PLUGINSDIR)
+ plugin_LTLIBRARIES = gda.la
+ gda_la_LIBADD = \
+- unix/libunix.la
++ unix/libunix.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ gda_la_LDFLAGS = \
+ $(GDA_LIBS) \
+
+--- a/plugins/gdict/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/gdict/Makefile.in 2014-09-06 15:04:37.888425183 +0200
+@@ -423,7 +423,8 @@
+ @GDICT_BUILTIN_FALSE@@TOOLKIT_GTK_TRUE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @GDICT_BUILTIN_FALSE@@TOOLKIT_GTK_TRUE@plugin_LTLIBRARIES = gdict.la
+ @TOOLKIT_GTK_TRUE@gdict_la_LIBADD = \
+-@TOOLKIT_GTK_TRUE@ unix/libunix.la
++@TOOLKIT_GTK_TRUE@ unix/libunix.la \
++@TOOLKIT_GTK_TRUE@ @top_builddir@/src/libabiword-2.8.la
+
+ @TOOLKIT_GTK_TRUE@gdict_la_LDFLAGS = \
+ @TOOLKIT_GTK_TRUE@ $(GDICT_LIBS) \
+
+--- a/plugins/gimp/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/gimp/Makefile.in 2014-09-06 15:04:47.380425494 +0200
+@@ -425,7 +425,8 @@
+ @GIMP_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @GIMP_BUILTIN_FALSE@plugin_LTLIBRARIES = gimp.la
+ gimp_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ gimp_la_LDFLAGS = \
+ $(GIMP_LIBS) \
+
+--- a/plugins/goffice/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/goffice/Makefile.in 2014-09-06 15:04:57.660425830 +0200
+@@ -419,7 +419,8 @@
+ plugindir = $(ABIWORD_PLUGINSDIR)
+ plugin_LTLIBRARIES = goffice.la
+ goffice_la_LIBADD = \
+- unix/libunix.la
++ unix/libunix.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ goffice_la_LDFLAGS = \
+ $(GOFFICE_LIBS) \
+
+--- a/plugins/google/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/google/Makefile.in 2014-09-06 15:05:06.852426131 +0200
+@@ -425,7 +425,8 @@
+ @GOOGLE_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @GOOGLE_BUILTIN_FALSE@plugin_LTLIBRARIES = google.la
+ google_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ google_la_LDFLAGS = \
+ $(GOOGLE_LIBS) \
+
+--- a/plugins/grammar/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/grammar/Makefile.in 2014-09-06 15:05:19.840426556 +0200
+@@ -424,7 +424,8 @@
+ plugin_LTLIBRARIES = grammar.la
+ grammar_la_LIBADD = \
+ linkgrammarwrap/liblinkgrammarwrap.la \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ grammar_la_LDFLAGS = \
+ $(GRAMMAR_LIBS) \
+
+--- a/plugins/hancom/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/hancom/Makefile.in 2014-09-06 15:05:29.684426879 +0200
+@@ -425,7 +425,8 @@
+ @HANCOM_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @HANCOM_BUILTIN_FALSE@plugin_LTLIBRARIES = hancom.la
+ hancom_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ hancom_la_LDFLAGS = \
+ $(HANCOM_LIBS) \
+
+--- a/plugins/hrtext/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/hrtext/Makefile.in 2014-09-06 15:05:41.244427257 +0200
+@@ -425,7 +425,8 @@
+ @HRTEXT_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @HRTEXT_BUILTIN_FALSE@plugin_LTLIBRARIES = hrtext.la
+ hrtext_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ hrtext_la_LDFLAGS = \
+ $(HRTEXT_LIBS) \
+
+--- a/plugins/iscii/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/iscii/Makefile.in 2014-09-06 15:05:52.660427631 +0200
+@@ -425,7 +425,8 @@
+ @ISCII_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @ISCII_BUILTIN_FALSE@plugin_LTLIBRARIES = iscii.la
+ iscii_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ iscii_la_LDFLAGS = \
+ $(ISCII_LIBS) \
+
+--- a/plugins/kword/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/kword/Makefile.in 2014-09-06 15:06:01.260427912 +0200
+@@ -425,7 +425,8 @@
+ @KWORD_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @KWORD_BUILTIN_FALSE@plugin_LTLIBRARIES = kword.la
+ kword_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ kword_la_LDFLAGS = \
+ $(KWORD_LIBS) \
+
+--- a/plugins/latex/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/latex/Makefile.in 2014-09-06 15:06:13.212428304 +0200
+@@ -426,7 +426,8 @@
+ @LATEX_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @LATEX_BUILTIN_FALSE@plugin_LTLIBRARIES = latex.la
+ latex_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ latex_la_LDFLAGS = \
+ $(LATEX_LIBS) \
+
+--- a/plugins/loadbindings/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/loadbindings/Makefile.in 2014-09-06 15:06:27.340428766 +0200
+@@ -427,7 +427,8 @@
+ @LOADBINDINGS_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @LOADBINDINGS_BUILTIN_FALSE@plugin_LTLIBRARIES = loadbindings.la
+ loadbindings_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ loadbindings_la_LDFLAGS = \
+ $(LOADBINDINGS_LIBS) \
+
+--- a/plugins/mathview/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/mathview/Makefile.in 2014-09-06 15:06:35.428429031 +0200
+@@ -423,7 +423,8 @@
+ plugin_LTLIBRARIES = mathview.la
+ mathview_la_LIBADD = \
+ itex2mml/libitex2mml.la \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ mathview_la_LDFLAGS = \
+ $(MATHVIEW_LIBS) \
+
+--- a/plugins/mht/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/mht/Makefile.in 2014-09-06 15:06:47.516429427 +0200
+@@ -422,7 +422,8 @@
+ plugindir = $(ABIWORD_PLUGINSDIR)
+ plugin_LTLIBRARIES = mht.la
+ mht_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ mht_la_LDFLAGS = \
+ $(MHT_LIBS) \
+
+--- a/plugins/mif/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/mif/Makefile.in 2014-09-06 15:07:03.496429950 +0200
+@@ -425,7 +425,8 @@
+ @MIF_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @MIF_BUILTIN_FALSE@plugin_LTLIBRARIES = mif.la
+ mif_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ mif_la_LDFLAGS = \
+ $(MIF_LIBS) \
+
+--- a/plugins/mswrite/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/mswrite/Makefile.in 2014-09-06 15:07:15.700430349 +0200
+@@ -425,7 +425,8 @@
+ @MSWRITE_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @MSWRITE_BUILTIN_FALSE@plugin_LTLIBRARIES = mswrite.la
+ mswrite_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ mswrite_la_LDFLAGS = \
+ $(MSWRITE_LIBS) \
+
+--- a/plugins/opendocument/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/opendocument/Makefile.in 2014-09-06 15:07:26.668430709 +0200
+@@ -430,7 +430,8 @@
+ opendocument_la_LIBADD = \
+ common/libcommon.la \
+ exp/libexp.la \
+- imp/libimp.la
++ imp/libimp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ opendocument_la_LDFLAGS = \
+ $(OPENDOCUMENT_LIBS) \
+
+--- a/plugins/openwriter/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/openwriter/Makefile.in 2014-09-06 15:07:40.272431154 +0200
+@@ -426,7 +426,8 @@
+ @OPENWRITER_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @OPENWRITER_BUILTIN_FALSE@plugin_LTLIBRARIES = openwriter.la
+ openwriter_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ openwriter_la_LDFLAGS = \
+ $(OPENWRITER_LIBS) \
+
+--- a/plugins/openxml/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/openxml/Makefile.in 2014-09-06 15:08:44.312433251 +0200
+@@ -428,7 +428,8 @@
+ openxml_la_LIBADD = \
+ common/libcommon.la \
+ imp/libimp.la \
+- exp/libexp.la
++ exp/libexp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ openxml_la_LDFLAGS = \
+ $(OPENXML_LIBS) \
+
+--- a/plugins/opml/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/opml/Makefile.in 2014-09-06 15:08:58.424433713 +0200
+@@ -425,7 +425,8 @@
+ @OPML_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @OPML_BUILTIN_FALSE@plugin_LTLIBRARIES = opml.la
+ opml_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ opml_la_LDFLAGS = \
+ $(OPML_LIBS) \
+
+--- a/plugins/ots/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/ots/Makefile.in 2014-09-06 15:09:08.164434031 +0200
+@@ -419,7 +419,8 @@
+ plugindir = $(ABIWORD_PLUGINSDIR)
+ plugin_LTLIBRARIES = ots.la
+ ots_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ ots_la_LDFLAGS = \
+ $(OTS_LIBS) \
+
+--- a/plugins/paint/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/paint/Makefile.in 2014-09-06 15:09:38.912435038 +0200
+@@ -426,7 +426,8 @@
+ @PAINT_BUILTIN_FALSE@plugin_LTLIBRARIES = paint.la
+ paint_la_LIBADD = \
+ @PLATFORM@/lib@PLATFORM@.la \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ paint_la_LDFLAGS = \
+ $(PAINT_LIBS) \
+
+--- a/plugins/passepartout/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/passepartout/Makefile.in 2014-09-06 15:09:46.744435295 +0200
+@@ -427,7 +427,8 @@
+ @PASSEPARTOUT_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @PASSEPARTOUT_BUILTIN_FALSE@plugin_LTLIBRARIES = passepartout.la
+ passepartout_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ passepartout_la_LDFLAGS = \
+ $(PASSEPARTOUT_LIBS) \
+
+--- a/plugins/pdb/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/pdb/Makefile.in 2014-09-06 15:09:54.484435548 +0200
+@@ -425,7 +425,8 @@
+ @PDB_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @PDB_BUILTIN_FALSE@plugin_LTLIBRARIES = pdb.la
+ pdb_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ pdb_la_LDFLAGS = \
+ $(PDB_LIBS) \
+
+--- a/plugins/pdf/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/pdf/Makefile.in 2014-09-06 15:10:04.444435874 +0200
+@@ -425,7 +425,8 @@
+ @PDF_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @PDF_BUILTIN_FALSE@plugin_LTLIBRARIES = pdf.la
+ pdf_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ pdf_la_LDFLAGS = \
+ $(PDF_LIBS) \
+
+--- a/plugins/presentation/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/presentation/Makefile.in 2014-09-06 15:10:13.112436158 +0200
+@@ -427,7 +427,8 @@
+ @PRESENTATION_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @PRESENTATION_BUILTIN_FALSE@plugin_LTLIBRARIES = presentation.la
+ presentation_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ presentation_la_LDFLAGS = \
+ $(PRESENTATION_LIBS) \
+
+--- a/plugins/psion/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/psion/Makefile.in 2014-09-06 15:10:22.176436455 +0200
+@@ -421,7 +421,8 @@
+ plugindir = $(ABIWORD_PLUGINSDIR)
+ plugin_LTLIBRARIES = psion.la
+ psion_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ psion_la_LDFLAGS = \
+ $(PSION_LIBS) \
+
+--- a/plugins/rsvg/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/rsvg/Makefile.in 2014-09-06 15:10:37.632436961 +0200
+@@ -425,7 +425,8 @@
+ plugin_LTLIBRARIES = rsvg.la
+ rsvg_la_LIBADD = \
+ xp/libxp.la \
+- $(RSVG_LIBS) $(PNG_LIBS)
++ $(RSVG_LIBS) $(PNG_LIBS) \
++ @top_builddir@/src/libabiword-2.8.la
+
+ rsvg_la_LDFLAGS = \
+ -avoid-version \
+
+--- a/plugins/s5/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/s5/Makefile.in 2014-09-06 15:10:46.652437256 +0200
+@@ -425,7 +425,8 @@
+ @S5_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @S5_BUILTIN_FALSE@plugin_LTLIBRARIES = s5.la
+ s5_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ s5_la_LDFLAGS = \
+ $(S5_LIBS) \
+
+--- a/plugins/sdw/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/sdw/Makefile.in 2014-09-06 15:10:58.072437630 +0200
+@@ -425,7 +425,8 @@
+ @SDW_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @SDW_BUILTIN_FALSE@plugin_LTLIBRARIES = sdw.la
+ sdw_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ sdw_la_LDFLAGS = \
+ $(SDW_LIBS) \
+
+--- a/plugins/t602/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/t602/Makefile.in 2014-09-06 15:11:06.224437897 +0200
+@@ -425,7 +425,8 @@
+ @T602_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @T602_BUILTIN_FALSE@plugin_LTLIBRARIES = t602.la
+ t602_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ t602_la_LDFLAGS = \
+ $(T602_LIBS) \
+
+--- a/plugins/urldict/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/urldict/Makefile.in 2014-09-06 15:11:14.404438165 +0200
+@@ -425,7 +425,8 @@
+ @URLDICT_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @URLDICT_BUILTIN_FALSE@plugin_LTLIBRARIES = urldict.la
+ urldict_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ urldict_la_LDFLAGS = \
+ $(URLDICT_LIBS) \
+
+--- a/plugins/wikipedia/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/wikipedia/Makefile.in 2014-09-06 15:11:22.064438415 +0200
+@@ -425,7 +425,8 @@
+ @WIKIPEDIA_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @WIKIPEDIA_BUILTIN_FALSE@plugin_LTLIBRARIES = wikipedia.la
+ wikipedia_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ wikipedia_la_LDFLAGS = \
+ $(WIKIPEDIA_LIBS) \
+
+--- a/plugins/wmf/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/wmf/Makefile.in 2014-09-06 15:11:31.348438719 +0200
+@@ -422,7 +422,8 @@
+ plugindir = $(ABIWORD_PLUGINSDIR)
+ plugin_LTLIBRARIES = wmf.la
+ wmf_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ wmf_la_LDFLAGS = \
+ $(WMF_LIBS) \
+
+--- a/plugins/wml/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/wml/Makefile.in 2014-09-06 15:11:40.168439008 +0200
+@@ -425,7 +425,8 @@
+ @WML_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @WML_BUILTIN_FALSE@plugin_LTLIBRARIES = wml.la
+ wml_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ wml_la_LDFLAGS = \
+ $(WML_LIBS) \
+
+--- a/plugins/wordperfect/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/wordperfect/Makefile.in 2014-09-06 15:11:50.336439341 +0200
+@@ -423,7 +423,8 @@
+ plugindir = $(ABIWORD_PLUGINSDIR)
+ plugin_LTLIBRARIES = wordperfect.la
+ wordperfect_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ wordperfect_la_LDFLAGS = \
+ $(WORDPERFECT_LIBS) \
+
+--- a/plugins/wpg/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/wpg/Makefile.in 2014-09-06 15:12:11.328440028 +0200
+@@ -422,7 +422,8 @@
+ plugindir = $(ABIWORD_PLUGINSDIR)
+ plugin_LTLIBRARIES = wpg.la
+ wpg_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ wpg_la_LDFLAGS = \
+ $(WPG_LIBS) \
+
+--- a/plugins/xslfo/Makefile.in 2014-09-06 11:25:35.000000000 +0200
++++ b/plugins/xslfo/Makefile.in 2014-09-06 15:12:44.984441130 +0200
+@@ -425,7 +425,8 @@
+ @XSLFO_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR)
+ @XSLFO_BUILTIN_FALSE@plugin_LTLIBRARIES = xslfo.la
+ xslfo_la_LIBADD = \
+- xp/libxp.la
++ xp/libxp.la \
++ @top_builddir@/src/libabiword-2.8.la
+
+ xslfo_la_LDFLAGS = \
+ $(XSLFO_LIBS) \
diff --git a/gnu/packages/patches/abiword-no-include-glib-internal-headers.patch b/gnu/packages/patches/abiword-no-include-glib-internal-headers.patch
new file mode 100644
index 0000000000..60a74920fb
--- /dev/null
+++ b/gnu/packages/patches/abiword-no-include-glib-internal-headers.patch
@@ -0,0 +1,13 @@
+Include glib.h instead of an internal header.
+
+--- a/goffice-bits/goffice/app/goffice-app.h 2007-01-17 00:17:27.000000000 +0100
++++ b/goffice-bits/goffice/app/goffice-app.h 2014-09-05 19:02:59.402064713 +0200
+@@ -22,7 +22,7 @@
+ #ifndef GOFFICE_APP_H
+ #define GOFFICE_APP_H
+
+-#include <glib/gmacros.h>
++#include <glib.h>
+
+ G_BEGIN_DECLS
+
diff --git a/gnu/packages/patches/abiword-pass-no-undefined-to-linker.patch b/gnu/packages/patches/abiword-pass-no-undefined-to-linker.patch
new file mode 100644
index 0000000000..a17d465edb
--- /dev/null
+++ b/gnu/packages/patches/abiword-pass-no-undefined-to-linker.patch
@@ -0,0 +1,608 @@
+gcc/g++ chokes on --no-undefined, so instead pass it directly to the linker.
+
+--- a/plugins/loadbindings/Makefile.in 2010-06-13 23:17:48.000000000 +0200
++++ b/plugins/loadbindings/Makefile.in 2014-09-06 11:03:21.151951221 +0200
+@@ -433,7 +433,7 @@
+ $(LOADBINDINGS_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ loadbindings_la_SOURCES =
+ nodist_EXTRA_loadbindings_la_SOURCES = dummy.cpp
+
+--- a/plugins/pdf/Makefile.in 2010-06-13 23:17:53.000000000 +0200
++++ b/plugins/pdf/Makefile.in 2014-09-06 11:03:21.207951223 +0200
+@@ -431,7 +431,7 @@
+ $(PDF_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ pdf_la_SOURCES =
+ nodist_EXTRA_pdf_la_SOURCES = dummy.cpp
+
+--- a/plugins/xslfo/Makefile.in 2010-06-13 23:17:55.000000000 +0200
++++ b/plugins/xslfo/Makefile.in 2014-09-06 11:03:21.227951224 +0200
+@@ -431,7 +431,7 @@
+ $(XSLFO_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ xslfo_la_SOURCES =
+ nodist_EXTRA_xslfo_la_SOURCES = dummy.cpp
+
+--- a/plugins/gda/Makefile.in 2010-06-13 23:17:45.000000000 +0200
++++ b/plugins/gda/Makefile.in 2014-09-06 11:03:21.251951225 +0200
+@@ -425,7 +425,7 @@
+ $(GDA_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ gda_la_SOURCES =
+ EXTRA_DIST = \
+
+--- a/plugins/wikipedia/Makefile.in 2010-06-13 23:17:54.000000000 +0200
++++ b/plugins/wikipedia/Makefile.in 2014-09-06 11:03:21.271951225 +0200
+@@ -431,7 +431,7 @@
+ $(WIKIPEDIA_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ wikipedia_la_SOURCES =
+ nodist_EXTRA_wikipedia_la_SOURCES = dummy.cpp
+
+--- a/plugins/collab/Makefile.in 2010-06-13 23:17:41.000000000 +0200
++++ b/plugins/collab/Makefile.in 2014-09-06 11:03:21.291951226 +0200
+@@ -435,7 +435,7 @@
+ @TOOLKIT_COCOA_FALSE@ $(SYSTEM_LIBS) \
+ @TOOLKIT_COCOA_FALSE@ -avoid-version \
+ @TOOLKIT_COCOA_FALSE@ -module \
+-@TOOLKIT_COCOA_FALSE@ -no-undefined
++@TOOLKIT_COCOA_FALSE@ -Wl,--no-undefined
+
+ @TOOLKIT_COCOA_FALSE@collab_la_SOURCES =
+ @TOOLKIT_COCOA_FALSE@nodist_EXTRA_collab_la_SOURCES = dummy.cpp
+
+--- a/plugins/paint/Makefile.in 2010-06-13 23:17:52.000000000 +0200
++++ b/plugins/paint/Makefile.in 2014-09-06 11:03:21.315951227 +0200
+@@ -432,7 +432,7 @@
+ $(PAINT_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ paint_la_SOURCES =
+ nodist_EXTRA_paint_la_SOURCES = dummy.cpp
+
+--- a/plugins/garble/Makefile.in 2010-06-13 23:17:45.000000000 +0200
++++ b/plugins/garble/Makefile.in 2014-09-06 11:03:21.335951227 +0200
+@@ -433,7 +433,7 @@
+ @TOOLKIT_COCOA_FALSE@ $(GARBLE_LIBS) \
+ @TOOLKIT_COCOA_FALSE@ -avoid-version \
+ @TOOLKIT_COCOA_FALSE@ -module \
+-@TOOLKIT_COCOA_FALSE@ -no-undefined
++@TOOLKIT_COCOA_FALSE@ -Wl,--no-undefined
+
+ @TOOLKIT_COCOA_FALSE@garble_la_SOURCES =
+ @TOOLKIT_COCOA_FALSE@nodist_EXTRA_garble_la_SOURCES = dummy.cpp
+
+--- a/plugins/latex/Makefile.in 2010-06-13 23:17:48.000000000 +0200
++++ b/plugins/latex/Makefile.in 2014-09-06 11:03:21.359951228 +0200
+@@ -432,7 +432,7 @@
+ $(LATEX_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ latex_la_SOURCES =
+ nodist_EXTRA_latex_la_SOURCES = dummy.cpp
+
+--- a/plugins/mht/Makefile.in 2010-06-13 23:17:49.000000000 +0200
++++ b/plugins/mht/Makefile.in 2014-09-06 11:03:21.379951229 +0200
+@@ -428,7 +428,7 @@
+ $(MHT_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ mht_la_SOURCES =
+ nodist_EXTRA_mht_la_SOURCES = dummy.cpp
+
+--- a/plugins/google/Makefile.in 2010-06-13 23:17:46.000000000 +0200
++++ b/plugins/google/Makefile.in 2014-09-06 11:03:21.399951230 +0200
+@@ -431,7 +431,7 @@
+ $(GOOGLE_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ google_la_SOURCES =
+ nodist_EXTRA_google_la_SOURCES = dummy.cpp
+
+--- a/plugins/babelfish/Makefile.in 2010-06-13 23:17:40.000000000 +0200
++++ b/plugins/babelfish/Makefile.in 2014-09-06 11:03:21.419951230 +0200
+@@ -431,7 +431,7 @@
+ $(BABELFISH_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ babelfish_la_SOURCES =
+ nodist_EXTRA_babelfish_la_SOURCES = dummy.cpp
+
+--- a/plugins/opendocument/Makefile.in 2010-06-13 23:17:50.000000000 +0200
++++ b/plugins/opendocument/Makefile.in 2014-09-06 11:03:21.443951231 +0200
+@@ -436,7 +436,7 @@
+ $(OPENDOCUMENT_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ opendocument_la_SOURCES =
+
+--- a/plugins/opml/Makefile.in 2010-06-13 23:17:51.000000000 +0200
++++ b/plugins/opml/Makefile.in 2014-09-06 11:03:21.463951232 +0200
+@@ -431,7 +431,7 @@
+ $(OPML_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ opml_la_SOURCES =
+ nodist_EXTRA_opml_la_SOURCES = dummy.cpp
+
+--- a/plugins/gimp/Makefile.in 2010-06-13 23:17:46.000000000 +0200
++++ b/plugins/gimp/Makefile.in 2014-09-06 11:03:21.483951232 +0200
+@@ -431,7 +431,7 @@
+ $(GIMP_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ gimp_la_SOURCES =
+ nodist_EXTRA_gimp_la_SOURCES = dummy.cpp
+
+--- a/plugins/mswrite/Makefile.in 2010-06-13 23:17:49.000000000 +0200
++++ b/plugins/mswrite/Makefile.in 2014-09-06 11:03:21.507951233 +0200
+@@ -431,7 +431,7 @@
+ $(MSWRITE_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ mswrite_la_SOURCES =
+ nodist_EXTRA_mswrite_la_SOURCES = dummy.cpp
+
+--- a/plugins/wordperfect/Makefile.in 2010-06-13 23:17:55.000000000 +0200
++++ b/plugins/wordperfect/Makefile.in 2014-09-06 11:03:21.527951234 +0200
+@@ -429,7 +429,7 @@
+ $(WORDPERFECT_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ wordperfect_la_SOURCES =
+ nodist_EXTRA_wordperfect_la_SOURCES = dummy.cpp
+
+--- a/plugins/pdb/Makefile.in 2010-06-13 23:17:53.000000000 +0200
++++ b/plugins/pdb/Makefile.in 2014-09-06 11:03:21.547951234 +0200
+@@ -431,7 +431,7 @@
+ $(PDB_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ pdb_la_SOURCES =
+ nodist_EXTRA_pdb_la_SOURCES = dummy.cpp
+
+--- a/plugins/ots/Makefile.in 2010-06-13 23:17:52.000000000 +0200
++++ b/plugins/ots/Makefile.in 2014-09-06 11:03:21.571951235 +0200
+@@ -425,7 +425,7 @@
+ $(OTS_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ ots_la_SOURCES =
+ EXTRA_DIST = \
+
+--- a/plugins/wml/Makefile.in 2010-06-13 23:17:55.000000000 +0200
++++ b/plugins/wml/Makefile.in 2014-09-06 11:03:21.591951236 +0200
+@@ -431,7 +431,7 @@
+ $(WML_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ wml_la_SOURCES =
+ nodist_EXTRA_wml_la_SOURCES = dummy.cpp
+
+--- a/plugins/bmp/Makefile.in 2010-06-13 23:17:40.000000000 +0200
++++ b/plugins/bmp/Makefile.in 2014-09-06 11:03:21.615951237 +0200
+@@ -431,7 +431,7 @@
+ $(BMP_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ bmp_la_SOURCES =
+ nodist_EXTRA_bmp_la_SOURCES = dummy.cpp
+
+--- a/plugins/applix/Makefile.in 2010-06-13 23:17:40.000000000 +0200
++++ b/plugins/applix/Makefile.in 2014-09-06 11:03:21.635951237 +0200
+@@ -431,7 +431,7 @@
+ $(APPLIX_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ applix_la_SOURCES =
+
+--- a/plugins/iscii/Makefile.in 2010-06-13 23:17:47.000000000 +0200
++++ b/plugins/iscii/Makefile.in 2014-09-06 11:03:21.659951238 +0200
+@@ -431,7 +431,7 @@
+ $(ISCII_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ iscii_la_SOURCES =
+ nodist_EXTRA_iscii_la_SOURCES = dummy.cpp
+
+--- a/plugins/gdict/Makefile.in 2010-06-13 23:17:46.000000000 +0200
++++ b/plugins/gdict/Makefile.in 2014-09-06 11:03:21.679951239 +0200
+@@ -429,7 +429,7 @@
+ @TOOLKIT_GTK_TRUE@ $(GDICT_LIBS) \
+ @TOOLKIT_GTK_TRUE@ -avoid-version \
+ @TOOLKIT_GTK_TRUE@ -module \
+-@TOOLKIT_GTK_TRUE@ -no-undefined
++@TOOLKIT_GTK_TRUE@ -Wl,--no-undefined
+
+ @TOOLKIT_GTK_TRUE@gdict_la_SOURCES =
+ @TOOLKIT_GTK_TRUE@EXTRA_DIST = \
+
+--- a/plugins/openwriter/Makefile.in 2010-06-13 23:17:50.000000000 +0200
++++ b/plugins/openwriter/Makefile.in 2014-09-06 11:03:21.699951239 +0200
+@@ -432,7 +432,7 @@
+ $(OPENWRITER_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ openwriter_la_SOURCES =
+ nodist_EXTRA_openwriter_la_SOURCES = dummy.cpp
+
+--- a/plugins/sdw/Makefile.in 2010-06-13 23:17:54.000000000 +0200
++++ b/plugins/sdw/Makefile.in 2014-09-06 11:03:21.723951240 +0200
+@@ -431,7 +431,7 @@
+ $(SDW_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ sdw_la_SOURCES =
+ nodist_EXTRA_sdw_la_SOURCES = dummy.cpp
+
+--- a/plugins/grammar/Makefile.in 2010-06-13 23:17:47.000000000 +0200
++++ b/plugins/grammar/Makefile.in 2014-09-06 11:03:21.747951241 +0200
+@@ -430,7 +430,7 @@
+ $(GRAMMAR_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ nodist_EXTRA_grammar_la_SOURCES = dummy.cpp
+ grammar_la_SOURCES =
+
+--- a/plugins/urldict/Makefile.in 2010-06-13 23:17:54.000000000 +0200
++++ b/plugins/urldict/Makefile.in 2014-09-06 11:03:21.779951242 +0200
+@@ -431,7 +431,7 @@
+ $(URLDICT_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ urldict_la_SOURCES =
+ nodist_EXTRA_urldict_la_SOURCES = dummy.cpp
+
+--- a/plugins/wmf/Makefile.in 2010-06-13 23:17:55.000000000 +0200
++++ b/plugins/wmf/Makefile.in 2014-09-06 11:03:21.799951243 +0200
+@@ -428,7 +428,7 @@
+ $(WMF_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ wmf_la_SOURCES =
+ nodist_EXTRA_wmf_la_SOURCES = dummy.cpp
+
+--- a/plugins/mif/Makefile.in 2010-06-13 23:17:49.000000000 +0200
++++ b/plugins/mif/Makefile.in 2014-09-06 11:03:21.819951243 +0200
+@@ -431,7 +431,7 @@
+ $(MIF_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ mif_la_SOURCES =
+ nodist_EXTRA_mif_la_SOURCES = dummy.cpp
+
+--- a/plugins/eml/Makefile.in 2010-06-13 23:17:45.000000000 +0200
++++ b/plugins/eml/Makefile.in 2014-09-06 11:03:21.843951244 +0200
+@@ -431,7 +431,7 @@
+ $(EML_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ eml_la_SOURCES =
+ nodist_EXTRA_eml_la_SOURCES = dummy.cpp
+
+--- a/plugins/openxml/Makefile.in 2010-06-13 23:17:51.000000000 +0200
++++ b/plugins/openxml/Makefile.in 2014-09-06 11:03:21.863951245 +0200
+@@ -434,7 +434,7 @@
+ $(OPENXML_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ openxml_la_SOURCES =
+ nodist_EXTRA_openxml_la_SOURCES = dummy.cpp
+
+--- a/plugins/goffice/Makefile.in 2010-06-13 23:17:46.000000000 +0200
++++ b/plugins/goffice/Makefile.in 2014-09-06 11:03:21.883951245 +0200
+@@ -425,7 +425,7 @@
+ $(GOFFICE_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ goffice_la_SOURCES =
+ EXTRA_DIST = \
+
+--- a/plugins/passepartout/Makefile.in 2010-06-13 23:17:52.000000000 +0200
++++ b/plugins/passepartout/Makefile.in 2014-09-06 11:03:21.907951246 +0200
+@@ -433,7 +433,7 @@
+ $(PASSEPARTOUT_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ passepartout_la_SOURCES =
+ nodist_EXTRA_passepartout_la_SOURCES = dummy.cpp
+
+--- a/plugins/clarisworks/Makefile.in 2010-06-13 23:17:41.000000000 +0200
++++ b/plugins/clarisworks/Makefile.in 2014-09-06 11:03:21.927951247 +0200
+@@ -433,7 +433,7 @@
+ $(CLARISWORKS_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ clarisworks_la_SOURCES =
+ nodist_EXTRA_clarisworks_la_SOURCES = dummy.cpp
+
+--- a/plugins/command/Makefile.in 2010-06-13 23:17:44.000000000 +0200
++++ b/plugins/command/Makefile.in 2014-09-06 11:03:21.947951247 +0200
+@@ -426,7 +426,7 @@
+ @TOOLKIT_COCOA_FALSE@ $(COMMAND_LIBS) \
+ @TOOLKIT_COCOA_FALSE@ -avoid-version \
+ @TOOLKIT_COCOA_FALSE@ -module \
+-@TOOLKIT_COCOA_FALSE@ -no-undefined
++@TOOLKIT_COCOA_FALSE@ -Wl,--no-undefined
+
+ @TOOLKIT_COCOA_FALSE@command_la_SOURCES =
+ all: all-recursive
+
+--- a/plugins/presentation/Makefile.in 2010-06-13 23:17:53.000000000 +0200
++++ b/plugins/presentation/Makefile.in 2014-09-06 11:03:21.971951248 +0200
+@@ -433,7 +433,7 @@
+ $(PRESENTATION_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ presentation_la_SOURCES =
+ nodist_EXTRA_presentation_la_SOURCES = dummy.cpp
+
+--- a/plugins/psion/Makefile.in 2010-06-13 23:17:53.000000000 +0200
++++ b/plugins/psion/Makefile.in 2014-09-06 11:03:21.991951249 +0200
+@@ -427,7 +427,7 @@
+ $(PSION_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ psion_la_SOURCES =
+ EXTRA_DIST = \
+
+--- a/plugins/rsvg/Makefile.in 2010-06-13 23:17:53.000000000 +0200
++++ b/plugins/rsvg/Makefile.in 2014-09-06 11:03:22.011951250 +0200
+@@ -430,7 +430,7 @@
+ rsvg_la_LDFLAGS = \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ rsvg_la_SOURCES =
+ nodist_EXTRA_rsvg_la_SOURCES = dummy.cpp
+
+--- a/plugins/wpg/Makefile.in 2010-06-13 23:17:55.000000000 +0200
++++ b/plugins/wpg/Makefile.in 2014-09-06 11:03:22.035951250 +0200
+@@ -428,7 +428,7 @@
+ $(WPG_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ wpg_la_SOURCES =
+ nodist_EXTRA_wpg_la_SOURCES = dummy.cpp
+
+--- a/plugins/t602/Makefile.in 2010-06-13 23:17:54.000000000 +0200
++++ b/plugins/t602/Makefile.in 2014-09-06 11:03:22.055951251 +0200
+@@ -431,7 +431,7 @@
+ $(T602_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ t602_la_SOURCES =
+ nodist_EXTRA_t602_la_SOURCES = dummy.cpp
+
+--- a/plugins/docbook/Makefile.in 2010-06-13 23:17:44.000000000 +0200
++++ b/plugins/docbook/Makefile.in 2014-09-06 11:03:22.075951252 +0200
+@@ -431,7 +431,7 @@
+ $(DOCBOOK_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ docbook_la_SOURCES =
+ nodist_EXTRA_docbook_la_SOURCES = dummy.cpp
+
+--- a/plugins/hrtext/Makefile.in 2010-06-13 23:17:47.000000000 +0200
++++ b/plugins/hrtext/Makefile.in 2014-09-06 11:03:22.099951252 +0200
+@@ -431,7 +431,7 @@
+ $(HRTEXT_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ hrtext_la_SOURCES =
+ nodist_EXTRA_hrtext_la_SOURCES = dummy.cpp
+
+--- a/plugins/s5/Makefile.in 2010-06-13 23:17:54.000000000 +0200
++++ b/plugins/s5/Makefile.in 2014-09-06 11:03:22.119951253 +0200
+@@ -431,7 +431,7 @@
+ $(S5_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ s5_la_SOURCES =
+ nodist_EXTRA_s5_la_SOURCES = dummy.cpp
+
+--- a/plugins/hancom/Makefile.in 2010-06-13 23:17:47.000000000 +0200
++++ b/plugins/hancom/Makefile.in 2014-09-06 11:03:22.143951254 +0200
+@@ -431,7 +431,7 @@
+ $(HANCOM_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ hancom_la_SOURCES =
+ nodist_EXTRA_hancom_la_SOURCES = dummy.cpp
+
+--- a/plugins/aiksaurus/Makefile.in 2010-06-13 23:17:40.000000000 +0200
++++ b/plugins/aiksaurus/Makefile.in 2014-09-06 11:03:22.163951255 +0200
+@@ -428,7 +428,7 @@
+ $(AIKSAURUS_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ aiksaurus_la_SOURCES =
+ all: all-recursive
+
+--- a/plugins/kword/Makefile.in 2010-06-13 23:17:48.000000000 +0200
++++ b/plugins/kword/Makefile.in 2014-09-06 11:03:22.183951255 +0200
+@@ -431,7 +431,7 @@
+ $(KWORD_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ kword_la_SOURCES =
+ nodist_EXTRA_kword_la_SOURCES = dummy.cpp
+
+--- a/plugins/freetranslation/Makefile.in 2010-06-13 23:17:45.000000000 +0200
++++ b/plugins/freetranslation/Makefile.in 2014-09-06 11:03:22.207951256 +0200
+@@ -433,7 +433,7 @@
+ $(FREETRANSLATION_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ freetranslation_la_SOURCES =
+ nodist_EXTRA_freetranslation_la_SOURCES = dummy.cpp
+
+--- a/plugins/mathview/Makefile.in 2010-06-13 23:17:48.000000000 +0200
++++ b/plugins/mathview/Makefile.in 2014-09-06 11:03:22.227951257 +0200
+@@ -429,7 +429,7 @@
+ $(MATHVIEW_LIBS) \
+ -avoid-version \
+ -module \
+- -no-undefined
++ -Wl,--no-undefined
+
+ nodist_EXTRA_mathview_la_SOURCES = dummy.cpp
+ mathview_la_SOURCES =
+
+--- a/src/Makefile.in 2014-09-06 08:42:45.000000000 +0200
++++ b/src/Makefile.in 2014-09-06 11:17:48.287979611 +0200
+@@ -538,7 +538,7 @@
+
+ @TOOLKIT_COCOA_TRUE@AbiWord_LDFLAGS = \
+ @TOOLKIT_COCOA_TRUE@ $(DEPS_LIBS) \
+-@TOOLKIT_COCOA_TRUE@ --no-undefined \
++@TOOLKIT_COCOA_TRUE@ -Wl,--no-undefined \
+ @TOOLKIT_COCOA_TRUE@ -avoid-version \
+ @TOOLKIT_COCOA_TRUE@ -export-dynamic \
+ @TOOLKIT_COCOA_TRUE@ -headerpad_max_install_names
+@@ -554,7 +554,7 @@
+
+ @TOOLKIT_COCOA_FALSE@abiword_LDFLAGS = \
+ @TOOLKIT_COCOA_FALSE@ $(platform_ldflags) \
+-@TOOLKIT_COCOA_FALSE@ --no-undefined \
++@TOOLKIT_COCOA_FALSE@ -Wl,--no-undefined \
+ @TOOLKIT_COCOA_FALSE@ -avoid-version \
+ @TOOLKIT_COCOA_FALSE@ -export-dynamic
+
diff --git a/gnu/packages/patches/abiword-use-proper-png-api.patch b/gnu/packages/patches/abiword-use-proper-png-api.patch
new file mode 100644
index 0000000000..e8ce02899d
--- /dev/null
+++ b/gnu/packages/patches/abiword-use-proper-png-api.patch
@@ -0,0 +1,175 @@
+Do not directly access the fields of png_struct and png_info.
+
+--- a/plugins/mswrite/xp/ie_imp_MSWrite.cpp 2010-05-30 21:20:53.000000000 +0200
++++ b/plugins/mswrite/xp/ie_imp_MSWrite.cpp 2014-09-07 06:58:04.162298089 +0200
+@@ -891,7 +891,7 @@
+ info_ptr = png_create_info_struct (png_ptr);
+ if (!info_ptr) goto err;
+
+- if (setjmp (png_ptr->jmpbuf) ) {
++ if (setjmp (png_jmpbuf(png_ptr)) ) {
+ png_destroy_write_struct (&png_ptr, &info_ptr);
+ goto err;
+ }
+
+--- a/src/af/gr/win/gr_Win32Image.cpp 2009-07-08 19:33:53.000000000 +0200
++++ b/src/af/gr/win/gr_Win32Image.cpp 2014-09-07 06:58:04.198298090 +0200
+@@ -148,7 +148,7 @@
+ info_ptr = png_create_info_struct(png_ptr);
+
+ // libpng will longjmp back to here if a fatal error occurs
+- if (setjmp(png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(png_ptr)))
+ {
+ /* If we get here, we had a problem reading the file */
+ png_destroy_write_struct(&png_ptr, (png_infopp)NULL);
+@@ -547,7 +547,7 @@
+ * the normal method of doing things with libpng). REQUIRED unless you
+ * set up your own error handlers in the png_create_read_struct() earlier.
+ */
+- if (setjmp(png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(png_ptr)))
+ {
+ /* Free all of the memory associated with the png_ptr and info_ptr */
+ png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);
+
+--- a/src/af/util/xp/ut_png.cpp 2008-02-24 04:33:07.000000000 +0100
++++ b/src/af/util/xp/ut_png.cpp 2014-09-07 06:58:04.230298091 +0200
+@@ -71,7 +71,7 @@
+ * the normal method of doing things with libpng). REQUIRED unless you
+ * set up your own error handlers in the png_create_read_struct() earlier.
+ */
+- if (setjmp(png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(png_ptr)))
+ {
+ /* Free all of the memory associated with the png_ptr and info_ptr */
+ png_destroy_read_struct(&png_ptr, &info_ptr, static_cast<png_infopp>(NULL));
+
+--- a/plugins/bmp/xp/ie_impGraphic_BMP.cpp 2009-06-25 06:02:06.000000000 +0200
++++ b/plugins/bmp/xp/ie_impGraphic_BMP.cpp 2014-09-07 06:59:08.814300205 +0200
+@@ -313,7 +313,7 @@
+ * the normal method of doing things with libpng). REQUIRED unless you
+ * set up your own error handlers in the png_create_read_struct() earlier.
+ */
+- if (setjmp(m_pPNG->jmpbuf))
++ if (setjmp(png_jmpbuf(m_pPNG)))
+ {
+ /* Free all of the memory associated with the png_ptr and info_ptr */
+ png_destroy_write_struct(&m_pPNG, &m_pPNGInfo);
+@@ -332,7 +332,7 @@
+ UT_Error IE_ImpGraphic_BMP::Convert_BMP_Pallet(UT_ByteBuf* pBB)
+ {
+ /* Reset error handling for libpng */
+- if (setjmp(m_pPNG->jmpbuf))
++ if (setjmp(png_jmpbuf(m_pPNG)))
+ {
+ png_destroy_write_struct(&m_pPNG, &m_pPNGInfo);
+ return UT_ERROR;
+@@ -372,7 +372,7 @@
+ UT_Error IE_ImpGraphic_BMP::Convert_BMP(UT_ByteBuf* pBB)
+ {
+ /* Reset error handling for libpng */
+- if (setjmp(m_pPNG->jmpbuf))
++ if (setjmp(png_jmpbuf(m_pPNG)))
+ {
+ png_destroy_write_struct(&m_pPNG, &m_pPNGInfo);
+ return UT_ERROR;
+
+--- a/plugins/rsvg/xp/AbiRSVG.cpp 2009-06-25 06:02:06.000000000 +0200
++++ b/plugins/rsvg/xp/AbiRSVG.cpp 2014-09-07 06:59:08.914300209 +0200
+@@ -145,7 +145,7 @@
+ return error;
+ }
+
+- if (setjmp(m_pPNG->jmpbuf))
++ if (setjmp(png_jmpbuf(m_pPNG)))
+ {
+ g_object_unref(G_OBJECT(pixbuf));
+ png_destroy_write_struct(&m_pPNG, &m_pPNGInfo);
+@@ -234,7 +234,7 @@
+ * the normal method of doing things with libpng). REQUIRED unless you
+ * set up your own error handlers in the png_create_read_struct() earlier.
+ */
+- if (setjmp(m_pPNG->jmpbuf))
++ if (setjmp(png_jmpbuf(m_pPNG)))
+ {
+ /* Free all of the memory associated with the png_ptr and info_ptr */
+ png_destroy_write_struct(&m_pPNG, &m_pPNGInfo);
+
+--- a/src/wp/impexp/win/ie_impGraphic_Win32Native.cpp 2009-07-07 18:50:18.000000000 +0200
++++ b/src/wp/impexp/win/ie_impGraphic_Win32Native.cpp 2014-09-07 06:59:09.018300212 +0200
+@@ -501,7 +501,7 @@
+ * the normal method of doing things with libpng). REQUIRED unless you
+ * set up your own error handlers in the png_create_read_struct() earlier.
+ */
+- if (setjmp(m_pPNG->jmpbuf))
++ if (setjmp(png_jmpbuf(m_pPNG)))
+ {
+ /* Free all of the memory associated with the png_ptr and info_ptr */
+ png_destroy_write_struct(&m_pPNG, &m_pPNGInfo);
+@@ -520,7 +520,7 @@
+ UT_Error IE_ImpGraphic_Win32Native::Convert_BMP_Palette(UT_ByteBuf* pBB)
+ {
+ /* Reset error handling for libpng */
+- if (setjmp(m_pPNG->jmpbuf))
++ if (setjmp(png_jmpbuf(m_pPNG)))
+ {
+ png_destroy_write_struct(&m_pPNG, &m_pPNGInfo);
+ return UT_ERROR;
+@@ -560,7 +560,7 @@
+ UT_Error IE_ImpGraphic_Win32Native::Convert_BMP(UT_ByteBuf* pBB)
+ {
+ /* Reset error handling for libpng */
+- if (setjmp(m_pPNG->jmpbuf))
++ if (setjmp(png_jmpbuf(m_pPNG)))
+ {
+ png_destroy_write_struct(&m_pPNG, &m_pPNGInfo);
+ return UT_ERROR;
+
+--- a/src/wp/impexp/gtk/ie_impGraphic_GdkPixbuf.cpp 2009-07-01 06:02:04.000000000 +0200
++++ b/src/wp/impexp/gtk/ie_impGraphic_GdkPixbuf.cpp 2014-09-07 06:59:09.138300216 +0200
+@@ -185,7 +185,7 @@
+ /** needed for the stejmp context */
+ UT_Error IE_ImpGraphic_GdkPixbuf::_png_write(GdkPixbuf * pixbuf)
+ {
+- if (setjmp(m_pPNG->jmpbuf))
++ if (setjmp(png_jmpbuf(m_pPNG)))
+ {
+ DELETEP(m_pPngBB);
+ png_destroy_write_struct(&m_pPNG, &m_pPNGInfo);
+@@ -446,7 +446,7 @@
+ * the normal method of doing things with libpng). REQUIRED unless you
+ * set up your own error handlers in the png_create_read_struct() earlier.
+ */
+- if (setjmp(m_pPNG->jmpbuf))
++ if (setjmp(png_jmpbuf(m_pPNG)))
+ {
+ /* Free all of the memory associated with the png_ptr and info_ptr */
+ png_destroy_write_struct(&m_pPNG, &m_pPNGInfo);
+
+--- a/plugins/bmp/xp/ie_impGraphic_BMP.cpp 2014-09-07 07:03:02.000000000 +0200
++++ b/plugins/bmp/xp/ie_impGraphic_BMP.cpp 2014-09-07 12:35:33.306961036 +0200
+@@ -191,7 +191,11 @@
+
+ /* Clean Up Memory Used */
+
+- FREEP(m_pPNGInfo->palette);
++
++ png_colorp palette;
++ int ignored_placeholder;
++ png_get_PLTE(m_pPNG, m_pPNGInfo, &palette, &ignored_placeholder);
++ FREEP(palette);
+ DELETEP(pBB);
+ png_destroy_write_struct(&m_pPNG, &m_pPNGInfo);
+
+--- a/plugins/garble/xp/abiword-garble-png.cpp 2009-09-05 17:34:44.000000000 +0200
++++ b/plugins/garble/xp/abiword-garble-png.cpp 2014-09-08 00:15:04.508335153 +0200
+@@ -79,7 +79,7 @@
+ png_set_strip_alpha( png_ptr );
+ png_set_interlace_handling( png_ptr );
+ png_set_bgr( png_ptr );
+- rowbytes = info_ptr->rowbytes;
++ rowbytes = png_get_rowbytes( png_ptr, info_ptr );
+ png_destroy_read_struct( &png_ptr, &info_ptr, NULL );
+ }
+
diff --git a/gnu/packages/patches/abiword-wmf-version-lookup-fix.patch b/gnu/packages/patches/abiword-wmf-version-lookup-fix.patch
new file mode 100644
index 0000000000..f27f32f30b
--- /dev/null
+++ b/gnu/packages/patches/abiword-wmf-version-lookup-fix.patch
@@ -0,0 +1,28 @@
+The way the configure script determines the version of libwmf is by temporarily
+making dots separator characters, but since the file name of the program which
+returns the version contains dots in Guix (the version in the store entry name),
+doing it this way will always fail.
+
+This is a simple guix-specific fix for the problem.
+
+--- a/configure 2010-06-13 23:17:37.000000000 +0200
++++ b/configure 2014-09-08 17:31:52.102371800 +0200
+@@ -21140,13 +21140,11 @@
+ $as_echo "$as_me: WARNING: wmf plugin: program libwmf-config not found in path" >&2;}
+ fi
+ else
+- IFS_old="$IFS"
+- IFS='.'
+- set -- `$libwmfconfig --version`
+- libwmf_major_found="${1}"
+- libwmf_minor_found="${2}"
+- libwmf_micro_found="${3}"
+- IFS="$IFS_old"
++ libwmf_fullver_found=`$libwmfconfig --version`
++ libwmf_major_found=$(echo $libwmf_fullver_found | cut -d . -f 1)
++ libwmf_minor_found=$(echo $libwmf_fullver_found | cut -d . -f 2)
++ libwmf_micro_found=$(echo $libwmf_fullver_found | cut -d . -f 3)
++
+ if test "$libwmf_major_found" -gt "$libwmf_major_req"; then
+ wmf_deps="yes"
+ elif test "$libwmf_major_found" -eq "$libwmf_major_req" &&