summary refs log tree commit diff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
authorMarek Benc <merkur32@gmail.com>2014-09-09 13:54:38 +0200
committerLudovic Courtès <ludo@gnu.org>2014-09-09 13:55:20 +0200
commit698d228001a27017ced5a69abdfe3b977b116705 (patch)
treeb69b9f7ce7e56bafdadfb65142ac00d13d1d372a /gnu/packages/patches
parent52910ded6c36580d0d1f2be5a686f7cb1f9623b9 (diff)
downloadguix-698d228001a27017ced5a69abdfe3b977b116705.tar.gz
gnu: Add AbiWord.
* gnu/packages/patches/abiword-explictly-cast-bools.patch New file.
* gnu/packages/patches/abiword-link-plugins-against-backend.patch: New file.
* gnu/packages/patches/abiword-no-include-glib-internal-headers.patch: New file.
* gnu/packages/patches/abiword-pass-no-undefined-to-linker.patch
* gnu/packages/patches/abiword-use-proper-png-api.patch: New file.
* gnu/packages/patches/abiword-wmf-version-lookup-fix.patch: New file.
* gnu/packages/abiword.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add abiword.scm.
  (dist_patch_DATA): Add the 6 patches for abiword.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/packages/patches')
-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
6 files changed, 1556 insertions, 0 deletions
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" &&