diff --git a/.gitignore b/.gitignore index 1f0fb78..a5f0a51 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ /abiword-3.*.tar.gz /abiword-docs-3.*.tar.gz -/AbiWord-release-3.0.7.tar.bz2 diff --git a/abiword-3.0.0-librevenge.patch b/abiword-3.0.0-librevenge.patch deleted file mode 100644 index d85cb1e..0000000 --- a/abiword-3.0.0-librevenge.patch +++ /dev/null @@ -1,1185 +0,0 @@ -Index: plugins/wpg/xp/ie_impGraphic_WPG.cpp -=================================================================== ---- plugins/wpg/xp/ie_impGraphic_WPG.cpp (revision 34460) -+++ plugins/wpg/xp/ie_impGraphic_WPG.cpp (working copy) -@@ -31,7 +31,7 @@ - #include - #include - #include --#include -+#include - #include "xap_Module.h" - - using libwpg::WPGraphics; -@@ -38,30 +38,35 @@ - - ABI_PLUGIN_DECLARE("WPG") - --class AbiWordPerfectGraphicsInputStream : public WPXInputStream -+class AbiWordPerfectGraphicsInputStream : public librevenge::RVNGInputStream - { - public: - AbiWordPerfectGraphicsInputStream(GsfInput *input); - ~AbiWordPerfectGraphicsInputStream(); - -- virtual bool isOLEStream(); -- virtual WPXInputStream * getDocumentOLEStream(); -- virtual WPXInputStream * getDocumentOLEStream(const char * name); -+ virtual bool isStructured(); -+ virtual unsigned subStreamCount(); -+ virtual const char* subStreamName(unsigned); -+ bool existsSubStream(const char*); -+ virtual librevenge::RVNGInputStream* getSubStreamByName(const char*); -+ virtual librevenge::RVNGInputStream* getSubStreamById(unsigned); - virtual const unsigned char *read(unsigned long numBytes, unsigned long &numBytesRead); -- virtual int seek(long offset, WPX_SEEK_TYPE seekType); -+ virtual int seek(long offset, librevenge::RVNG_SEEK_TYPE seekType); - virtual long tell(); -- virtual bool atEOS(); -+ virtual bool isEnd(); - - private: - - GsfInput *m_input; - GsfInfile *m_ole; -+ std::map m_substreams; - }; - - AbiWordPerfectGraphicsInputStream::AbiWordPerfectGraphicsInputStream(GsfInput *input) : -- WPXInputStream(), -+ librevenge::RVNGInputStream(), - m_input(input), -- m_ole(NULL) -+ m_ole(NULL), -+ m_substreams() - { - g_object_ref(G_OBJECT(input)); - } -@@ -86,50 +91,120 @@ - return buf; - } - --int AbiWordPerfectGraphicsInputStream::seek(long offset, WPX_SEEK_TYPE seekType) -+int AbiWordPerfectGraphicsInputStream::seek(long offset, librevenge::RVNG_SEEK_TYPE seekType) - { - GSeekType gsfSeekType = G_SEEK_SET; - switch(seekType) - { -- case WPX_SEEK_CUR: -+ case librevenge::RVNG_SEEK_CUR: - gsfSeekType = G_SEEK_CUR; - break; -- case WPX_SEEK_SET: -+ case librevenge::RVNG_SEEK_SET: - gsfSeekType = G_SEEK_SET; - break; -+ case librevenge::RVNG_SEEK_END: -+ gsfSeekType = G_SEEK_END; -+ break; - } - - return gsf_input_seek(m_input, offset, gsfSeekType); - } - --bool AbiWordPerfectGraphicsInputStream::isOLEStream() -+bool AbiWordPerfectGraphicsInputStream::isStructured() - { - if (!m_ole) - m_ole = GSF_INFILE(gsf_infile_msole_new (m_input, NULL)); - -- if (m_ole != NULL) -+ if (!m_ole) -+ m_ole = GSF_INFILE(gsf_infile_zip_new (m_input, NULL)); -+ -+ if (m_ole) - return true; - - return false; - } - --WPXInputStream * AbiWordPerfectGraphicsInputStream::getDocumentOLEStream() -+unsigned AbiWordPerfectGraphicsInputStream::subStreamCount() - { -- return getDocumentOLEStream("PerfectOffice_MAIN"); -+ if (!m_ole) -+ m_ole = GSF_INFILE(gsf_infile_msole_new (m_input, NULL)); -+ -+ if (!m_ole) -+ m_ole = GSF_INFILE(gsf_infile_zip_new (m_input, NULL)); -+ -+ if (m_ole) -+ { -+ int numChildren = gsf_infile_num_children(m_ole); -+ if (numChildren > 0) -+ return numChildren; -+ return 0; -+ } -+ -+ return 0; - } - --WPXInputStream * AbiWordPerfectGraphicsInputStream::getDocumentOLEStream(const char * name) -+const char * AbiWordPerfectGraphicsInputStream::subStreamName(unsigned id) - { -- WPXInputStream *documentStream = NULL; -+ if (!m_ole) -+ m_ole = GSF_INFILE(gsf_infile_msole_new (m_input, NULL)); - - if (!m_ole) -+ m_ole = GSF_INFILE(gsf_infile_zip_new (m_input, NULL)); -+ -+ if (m_ole) -+ { -+ if ((int)id >= gsf_infile_num_children(m_ole)) -+ { -+ return 0; -+ } -+ std::map::iterator i = m_substreams.lower_bound(id); -+ if (i == m_substreams.end() || m_substreams.key_comp()(id, i->first)) -+ { -+ std::string name = gsf_infile_name_by_index(m_ole, (int)id); -+ i = m_substreams.insert(i, std::map::value_type(id, name)); -+ } -+ return i->second.c_str(); -+ } -+ -+ return 0; -+} -+ -+bool AbiWordPerfectGraphicsInputStream::existsSubStream(const char * name) -+{ -+ if (!m_ole) - m_ole = GSF_INFILE(gsf_infile_msole_new (m_input, NULL)); - -+ if (!m_ole) -+ m_ole = GSF_INFILE(gsf_infile_zip_new (m_input, NULL)); -+ - if (m_ole) - { - GsfInput *document = gsf_infile_child_by_name(m_ole, name); - if (document) - { -+ g_object_unref(G_OBJECT (document)); -+ return true; -+ } -+ } -+ -+ return false; -+} -+ -+librevenge::RVNGInputStream * AbiWordPerfectGraphicsInputStream::getSubStreamByName(const char * name) -+{ -+ librevenge::RVNGInputStream *documentStream = NULL; -+ -+ if (!m_ole) -+ m_ole = GSF_INFILE(gsf_infile_msole_new (m_input, NULL)); -+ -+ if (!m_ole) -+ m_ole = GSF_INFILE(gsf_infile_zip_new (m_input, NULL)); -+ -+ if (m_ole) -+ { -+ GsfInput *document = gsf_infile_child_by_name(m_ole, name); -+ if (document) -+ { - documentStream = new AbiWordPerfectGraphicsInputStream(document); - g_object_unref(G_OBJECT (document)); // the only reference should be encapsulated within the new stream - } -@@ -138,12 +213,35 @@ - return documentStream; - } - -+librevenge::RVNGInputStream * AbiWordPerfectGraphicsInputStream::getSubStreamById(unsigned id) -+{ -+ librevenge::RVNGInputStream *documentStream = NULL; -+ -+ if (!m_ole) -+ m_ole = GSF_INFILE(gsf_infile_msole_new (m_input, NULL)); -+ -+ if (!m_ole) -+ m_ole = GSF_INFILE(gsf_infile_zip_new (m_input, NULL)); -+ -+ if (m_ole) -+ { -+ GsfInput *document = gsf_infile_child_by_index(m_ole, (int)id); -+ if (document) -+ { -+ documentStream = new AbiWordPerfectGraphicsInputStream(document); -+ g_object_unref(G_OBJECT (document)); // the only reference should be encapsulated within the new stream -+ } -+ } -+ -+ return documentStream; -+} -+ - long AbiWordPerfectGraphicsInputStream::tell() - { - return gsf_input_tell(m_input); - } - --bool AbiWordPerfectGraphicsInputStream::atEOS() -+bool AbiWordPerfectGraphicsInputStream::isEnd() - { - return gsf_input_eof(m_input); - } -@@ -244,14 +342,24 @@ - UT_Error IE_Imp_WordPerfectGraphics::importGraphic(GsfInput *input, FG_Graphic **ppfg) - { - AbiWordPerfectGraphicsInputStream gsfInput(input); -- WPXString svgOutput; -- if (WPGraphics::generateSVG(&gsfInput, svgOutput)) -+ librevenge::RVNGString svgOutput; -+ librevenge::RVNGStringVector vec; -+ librevenge::RVNGSVGDrawingGenerator generator(vec, ""); -+ -+ if (!libwpg::WPGraphics::parse(&gsfInput, &generator) || vec.empty() || vec[0].empty()) - { -- GsfInput * svgInput = gsf_input_memory_new((const guint8*)svgOutput.cstr(), svgOutput.len(), false); -- UT_Error result = IE_ImpGraphic::loadGraphic(svgInput, IE_ImpGraphic::fileTypeForSuffix(".svg"), ppfg); -- g_object_unref(svgInput); -- return result; -+ return UT_ERROR; - } -- return UT_ERROR; -+ -+ svgOutput.append("\n"); -+ svgOutput.append("\n"); -+ svgOutput.append(vec[0]); -+ svgOutput.append("\n"); -+ -+ GsfInput * svgInput = gsf_input_memory_new((const guint8*)svgOutput.cstr(), svgOutput.len(), false); -+ UT_Error result = IE_ImpGraphic::loadGraphic(svgInput, IE_ImpGraphic::fileTypeForSuffix(".svg"), ppfg); -+ g_object_unref(svgInput); -+ return result; - } - -Index: plugins/wpg/plugin.m4 -=================================================================== ---- plugins/wpg/plugin.m4 (revision 34460) -+++ plugins/wpg/plugin.m4 (working copy) -@@ -1,5 +1,5 @@ - --wpg_pkgs="$gsf_req libwpg-0.2 >= 0.2.0 libwpd-0.9 >= 0.9.0 libwpd-stream-0.9 >= 0.9.0" -+wpg_pkgs="libwpg-0.3 $gsf_req" - wpg_deps="no" - - if test "$enable_wpg" != ""; then -Index: plugins/wordperfect/xp/ie_imp_WordPerfect.h -=================================================================== ---- plugins/wordperfect/xp/ie_imp_WordPerfect.h (revision 34460) -+++ plugins/wordperfect/xp/ie_imp_WordPerfect.h (working copy) -@@ -30,7 +30,7 @@ - #define IE_IMP_WP_H - - #include --#include -+#include - #include "ie_imp.h" - #include "ut_string.h" - #include "ut_string_class.h" -@@ -92,7 +92,7 @@ - IE_Imp ** ppie); - }; - --class IE_Imp_WordPerfect : public IE_Imp, public WPXDocumentInterface -+class IE_Imp_WordPerfect : public IE_Imp, public librevenge::RVNGTextInterface - { - public: - IE_Imp_WordPerfect(PD_Document * pDocument); -@@ -101,69 +101,83 @@ - virtual void pasteFromBuffer(PD_DocumentRange * pDocRange, - UT_uint8 * pData, UT_uint32 lenData, const char * szEncoding = 0); - -- virtual void setDocumentMetaData(const WPXPropertyList &propList); -+ virtual void setDocumentMetaData(const librevenge::RVNGPropertyList &propList); - -- virtual void startDocument(); -- virtual void endDocument(); -+ virtual void startDocument(const librevenge::RVNGPropertyList &propList); -+ virtual void endDocument(); - -- virtual void openPageSpan(const WPXPropertyList &propList); -- virtual void closePageSpan() {} -- virtual void openHeader(const WPXPropertyList &propList); -- virtual void closeHeader(); -- virtual void openFooter(const WPXPropertyList &propList); -- virtual void closeFooter(); -+ virtual void defineEmbeddedFont(const librevenge::RVNGPropertyList & /* propList */) {} - -- virtual void openParagraph(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops); -- virtual void closeParagraph() {} -+ virtual void definePageStyle(const librevenge::RVNGPropertyList &) {} -+ virtual void openPageSpan(const librevenge::RVNGPropertyList &propList); -+ virtual void closePageSpan() {} -+ virtual void openHeader(const librevenge::RVNGPropertyList &propList); -+ virtual void closeHeader(); -+ virtual void openFooter(const librevenge::RVNGPropertyList &propList); -+ virtual void closeFooter(); - -- virtual void openSpan(const WPXPropertyList &propList); -- virtual void closeSpan() {} -+ virtual void defineSectionStyle(const librevenge::RVNGPropertyList &) {} -+ virtual void openSection(const librevenge::RVNGPropertyList &propList); -+ virtual void closeSection() {} - -- virtual void openSection(const WPXPropertyList &propList, const WPXPropertyListVector &columns); -- virtual void closeSection() {} -+ virtual void defineParagraphStyle(const librevenge::RVNGPropertyList &) {} -+ virtual void openParagraph(const librevenge::RVNGPropertyList &propList); -+ virtual void closeParagraph() {} - -- virtual void insertTab(); -- virtual void insertText(const WPXString &text); -- virtual void insertLineBreak(); -+ virtual void defineCharacterStyle(const librevenge::RVNGPropertyList &) {} -+ virtual void openSpan(const librevenge::RVNGPropertyList &propList); -+ virtual void closeSpan() {} - -- virtual void defineOrderedListLevel(const WPXPropertyList &propList); -- virtual void defineUnorderedListLevel(const WPXPropertyList &propList); -- virtual void openOrderedListLevel(const WPXPropertyList &propList); -- virtual void openUnorderedListLevel(const WPXPropertyList &propList); -- virtual void closeOrderedListLevel(); -- virtual void closeUnorderedListLevel(); -- virtual void openListElement(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops); -- virtual void closeListElement() {} -+ virtual void openLink(const librevenge::RVNGPropertyList & /* propList */) {} -+ virtual void closeLink() {} - -- virtual void openFootnote(const WPXPropertyList &propList); -- virtual void closeFootnote(); -- virtual void openEndnote(const WPXPropertyList &propList); -- virtual void closeEndnote(); -+ virtual void insertTab(); -+ virtual void insertText(const librevenge::RVNGString &text); -+ virtual void insertSpace(); -+ virtual void insertLineBreak(); -+ virtual void insertField(const librevenge::RVNGPropertyList & /* propList */) {} - -- virtual void openTable(const WPXPropertyList &propList, const WPXPropertyListVector &columns); -- virtual void openTableRow(const WPXPropertyList &propList); -- virtual void closeTableRow() {} -- virtual void openTableCell(const WPXPropertyList &propList); -- virtual void closeTableCell() {} -- virtual void insertCoveredTableCell(const WPXPropertyList & /*propList*/) {} -- virtual void closeTable(); -+ virtual void openOrderedListLevel(const librevenge::RVNGPropertyList &propList); -+ virtual void openUnorderedListLevel(const librevenge::RVNGPropertyList &propList); -+ virtual void closeOrderedListLevel(); -+ virtual void closeUnorderedListLevel(); -+ virtual void openListElement(const librevenge::RVNGPropertyList &propList); -+ virtual void closeListElement() {} - -- virtual void definePageStyle(const WPXPropertyList&) {} -- virtual void defineParagraphStyle(const WPXPropertyList&, const WPXPropertyListVector&) {} -- virtual void defineCharacterStyle(const WPXPropertyList&) {} -- virtual void defineSectionStyle(const WPXPropertyList&, const WPXPropertyListVector&) {} -- virtual void insertSpace() {} -- virtual void insertField(const WPXString&, const WPXPropertyList&) {} -- virtual void openComment(const WPXPropertyList&) {} -- virtual void closeComment() {} -- virtual void openTextBox(const WPXPropertyList&) {} -- virtual void closeTextBox() {} -- virtual void openFrame(const WPXPropertyList&) {} -- virtual void closeFrame() {} -- virtual void insertBinaryObject(const WPXPropertyList&, const WPXBinaryData&) {} -- virtual void insertEquation(const WPXPropertyList&, const WPXString&) {} -+ virtual void openFootnote(const librevenge::RVNGPropertyList &propList); -+ virtual void closeFootnote(); -+ virtual void openEndnote(const librevenge::RVNGPropertyList &propList); -+ virtual void closeEndnote(); -+ virtual void openComment(const librevenge::RVNGPropertyList & /* propList */) {} -+ virtual void closeComment() {} -+ virtual void openTextBox(const librevenge::RVNGPropertyList & /* propList */) {} -+ virtual void closeTextBox() {} - -+ virtual void openTable(const librevenge::RVNGPropertyList &propList); -+ virtual void openTableRow(const librevenge::RVNGPropertyList &propList); -+ virtual void closeTableRow() {} -+ virtual void openTableCell(const librevenge::RVNGPropertyList &propList); -+ virtual void closeTableCell() {} -+ virtual void insertCoveredTableCell(const librevenge::RVNGPropertyList & /* propList */) {} -+ virtual void closeTable(); - -+ virtual void openFrame(const librevenge::RVNGPropertyList & /* propList */) {} -+ virtual void closeFrame() {} -+ -+ virtual void openGroup(const librevenge::RVNGPropertyList & /* propList */) {} -+ virtual void closeGroup() {} -+ -+ virtual void defineGraphicStyle(const librevenge::RVNGPropertyList & /* propList */) {} -+ virtual void drawRectangle(const librevenge::RVNGPropertyList & /* propList */) {} -+ virtual void drawEllipse(const librevenge::RVNGPropertyList & /* propList */) {} -+ virtual void drawPolygon(const librevenge::RVNGPropertyList & /* propList */) {} -+ virtual void drawPolyline(const librevenge::RVNGPropertyList & /* propList */) {} -+ virtual void drawPath(const librevenge::RVNGPropertyList & /* propList */) {} -+ virtual void drawConnector(const librevenge::RVNGPropertyList & /* propList */) {} -+ -+ virtual void insertBinaryObject(const librevenge::RVNGPropertyList & /* propList */) {} -+ virtual void insertEquation(const librevenge::RVNGPropertyList & /* propList */) {} -+ - protected: - virtual UT_Error _loadFile(GsfInput * input); - UT_Error _appendSection(int numColumns, const float, const float); -Index: plugins/wordperfect/xp/ie_impexp_WordPerfect.cpp -=================================================================== ---- plugins/wordperfect/xp/ie_impexp_WordPerfect.cpp (revision 34460) -+++ plugins/wordperfect/xp/ie_impexp_WordPerfect.cpp (working copy) -@@ -35,7 +35,6 @@ - ABI_PLUGIN_DECLARE("WordPerfect") - - static IE_Imp_WordPerfect_Sniffer * m_ImpSniffer = 0; --static IE_Exp_WordPerfect_Sniffer * m_ExpSniffer = 0; - - #ifdef HAVE_LIBWPS - static IE_Imp_MSWorks_Sniffer * m_MSWorks_ImpSniffer = 0; -@@ -49,13 +48,7 @@ - m_ImpSniffer = new IE_Imp_WordPerfect_Sniffer (); - } - -- if (!m_ExpSniffer) -- { -- m_ExpSniffer = new IE_Exp_WordPerfect_Sniffer (); -- } -- - UT_ASSERT (m_ImpSniffer); -- UT_ASSERT (m_ExpSniffer); - - #ifdef HAVE_LIBWPS - if (!m_MSWorks_ImpSniffer) -@@ -79,7 +72,7 @@ - mi->usage = "No Usage"; - - IE_Imp::registerImporter (m_ImpSniffer); -- //IE_Exp::registerExporter (m_ExpSniffer); -+ - return 1; - } - -@@ -93,18 +86,11 @@ - mi->usage = 0; - - UT_ASSERT (m_ImpSniffer); -- UT_ASSERT (m_ExpSniffer); - - IE_Imp::unregisterImporter (m_ImpSniffer); - delete m_ImpSniffer; - m_ImpSniffer = 0; - -- /* -- IE_Exp::unregisterExporter (m_ExpSniffer); -- delete m_ExpSniffer; -- m_ExpSniffer = 0; -- */ -- - #ifdef HAVE_LIBWPS - IE_Imp::unregisterImporter (m_MSWorks_ImpSniffer); - delete m_MSWorks_ImpSniffer; -Index: plugins/wordperfect/xp/ie_imp_WordPerfect.cpp -=================================================================== ---- plugins/wordperfect/xp/ie_imp_WordPerfect.cpp (revision 34460) -+++ plugins/wordperfect/xp/ie_imp_WordPerfect.cpp (working copy) -@@ -31,6 +31,8 @@ - #include - #include - #include -+#include -+#include - #include - #include - #include -@@ -60,42 +62,47 @@ - - // Stream class - --#include -+#include -+#include - - #include - #include - #include -+#include - - #ifdef HAVE_LIBWPS - #include - #endif - --class AbiWordperfectInputStream : public WPXInputStream -+class AbiWordperfectInputStream : public librevenge::RVNGInputStream - { - public: - AbiWordperfectInputStream(GsfInput *input); - ~AbiWordperfectInputStream(); - -- virtual bool isOLEStream(); -- virtual WPXInputStream * getDocumentOLEStream(); -- -- virtual WPXInputStream * getDocumentOLEStream(const char * name); -- -+ virtual bool isStructured(); -+ virtual unsigned subStreamCount(); -+ virtual const char* subStreamName(unsigned); -+ bool existsSubStream(const char*); -+ virtual librevenge::RVNGInputStream* getSubStreamByName(const char*); -+ virtual librevenge::RVNGInputStream* getSubStreamById(unsigned); - virtual const unsigned char *read(unsigned long numBytes, unsigned long &numBytesRead); -- virtual int seek(long offset, WPX_SEEK_TYPE seekType); -+ virtual int seek(long offset, librevenge::RVNG_SEEK_TYPE seekType); - virtual long tell(); -- virtual bool atEOS(); -+ virtual bool isEnd(); - - private: - - GsfInput *m_input; - GsfInfile *m_ole; -+ std::map m_substreams; - }; - - AbiWordperfectInputStream::AbiWordperfectInputStream(GsfInput *input) : -- WPXInputStream(), -+ librevenge::RVNGInputStream(), - m_input(input), -- m_ole(NULL) -+ m_ole(NULL), -+ m_substreams() - { - g_object_ref(G_OBJECT(input)); - } -@@ -120,50 +127,120 @@ - return buf; - } - --int AbiWordperfectInputStream::seek(long offset, WPX_SEEK_TYPE seekType) -+int AbiWordperfectInputStream::seek(long offset, librevenge::RVNG_SEEK_TYPE seekType) - { - GSeekType gsfSeekType = G_SEEK_SET; - switch(seekType) - { -- case WPX_SEEK_CUR: -+ case librevenge::RVNG_SEEK_CUR: - gsfSeekType = G_SEEK_CUR; - break; -- case WPX_SEEK_SET: -+ case librevenge::RVNG_SEEK_SET: - gsfSeekType = G_SEEK_SET; - break; -+ case librevenge::RVNG_SEEK_END: -+ gsfSeekType = G_SEEK_END; -+ break; - } - - return gsf_input_seek(m_input, offset, gsfSeekType); - } - --bool AbiWordperfectInputStream::isOLEStream() -+bool AbiWordperfectInputStream::isStructured() - { - if (!m_ole) - m_ole = GSF_INFILE(gsf_infile_msole_new (m_input, NULL)); - -- if (m_ole != NULL) -+ if (!m_ole) -+ m_ole = GSF_INFILE(gsf_infile_zip_new (m_input, NULL)); -+ -+ if (m_ole) - return true; - - return false; - } - --WPXInputStream * AbiWordperfectInputStream::getDocumentOLEStream() -+unsigned AbiWordperfectInputStream::subStreamCount() - { -- return getDocumentOLEStream("PerfectOffice_MAIN"); -+ if (!m_ole) -+ m_ole = GSF_INFILE(gsf_infile_msole_new (m_input, NULL)); -+ -+ if (!m_ole) -+ m_ole = GSF_INFILE(gsf_infile_zip_new (m_input, NULL)); -+ -+ if (m_ole) -+ { -+ int numChildren = gsf_infile_num_children(m_ole); -+ if (numChildren > 0) -+ return numChildren; -+ return 0; -+ } -+ -+ return 0; - } - --WPXInputStream * AbiWordperfectInputStream::getDocumentOLEStream(const char * name) -+const char * AbiWordperfectInputStream::subStreamName(unsigned id) - { -- WPXInputStream *documentStream = NULL; -+ if (!m_ole) -+ m_ole = GSF_INFILE(gsf_infile_msole_new (m_input, NULL)); - - if (!m_ole) -+ m_ole = GSF_INFILE(gsf_infile_zip_new (m_input, NULL)); -+ -+ if (m_ole) -+ { -+ if ((int)id >= gsf_infile_num_children(m_ole)) -+ { -+ return 0; -+ } -+ std::map::iterator i = m_substreams.lower_bound(id); -+ if (i == m_substreams.end() || m_substreams.key_comp()(id, i->first)) -+ { -+ std::string name = gsf_infile_name_by_index(m_ole, (int)id); -+ i = m_substreams.insert(i, std::map::value_type(id, name)); -+ } -+ return i->second.c_str(); -+ } -+ -+ return 0; -+} -+ -+bool AbiWordperfectInputStream::existsSubStream(const char * name) -+{ -+ if (!m_ole) - m_ole = GSF_INFILE(gsf_infile_msole_new (m_input, NULL)); - -+ if (!m_ole) -+ m_ole = GSF_INFILE(gsf_infile_zip_new (m_input, NULL)); -+ - if (m_ole) - { - GsfInput *document = gsf_infile_child_by_name(m_ole, name); - if (document) - { -+ g_object_unref(G_OBJECT (document)); -+ return true; -+ } -+ } -+ -+ return false; -+} -+ -+librevenge::RVNGInputStream * AbiWordperfectInputStream::getSubStreamByName(const char * name) -+{ -+ librevenge::RVNGInputStream *documentStream = NULL; -+ -+ if (!m_ole) -+ m_ole = GSF_INFILE(gsf_infile_msole_new (m_input, NULL)); -+ -+ if (!m_ole) -+ m_ole = GSF_INFILE(gsf_infile_zip_new (m_input, NULL)); -+ -+ if (m_ole) -+ { -+ GsfInput *document = gsf_infile_child_by_name(m_ole, name); -+ if (document) -+ { - documentStream = new AbiWordperfectInputStream(document); - g_object_unref(G_OBJECT (document)); // the only reference should be encapsulated within the new stream - } -@@ -172,12 +249,35 @@ - return documentStream; - } - -+librevenge::RVNGInputStream * AbiWordperfectInputStream::getSubStreamById(unsigned id) -+{ -+ librevenge::RVNGInputStream *documentStream = NULL; -+ -+ if (!m_ole) -+ m_ole = GSF_INFILE(gsf_infile_msole_new (m_input, NULL)); -+ -+ if (!m_ole) -+ m_ole = GSF_INFILE(gsf_infile_zip_new (m_input, NULL)); -+ -+ if (m_ole) -+ { -+ GsfInput *document = gsf_infile_child_by_index(m_ole, (int)id); -+ if (document) -+ { -+ documentStream = new AbiWordperfectInputStream(document); -+ g_object_unref(G_OBJECT (document)); // the only reference should be encapsulated within the new stream -+ } -+ } -+ -+ return documentStream; -+} -+ - long AbiWordperfectInputStream::tell() - { - return gsf_input_tell(m_input); - } - --bool AbiWordperfectInputStream::atEOS() -+bool AbiWordperfectInputStream::isEnd() - { - return gsf_input_eof(m_input); - } -@@ -247,13 +347,13 @@ - { - AbiWordperfectInputStream gsfInput(input); - -- WPDConfidence confidence = WPDocument::isFileFormatSupported(&gsfInput); -- -+ libwpd::WPDConfidence confidence = libwpd::WPDocument::isFileFormatSupported(&gsfInput); -+ - switch (confidence) - { -- case WPD_CONFIDENCE_NONE: -+ case libwpd::WPD_CONFIDENCE_NONE: - return UT_CONFIDENCE_ZILCH; -- case WPD_CONFIDENCE_EXCELLENT: -+ case libwpd::WPD_CONFIDENCE_EXCELLENT: - return UT_CONFIDENCE_PERFECT; - default: - return UT_CONFIDENCE_ZILCH; -@@ -312,9 +412,9 @@ - UT_Error IE_Imp_WordPerfect::_loadFile(GsfInput * input) - { - AbiWordperfectInputStream gsfInput(input); -- WPDResult error = WPDocument::parse(&gsfInput, static_cast(this), NULL); -+ libwpd::WPDResult error = libwpd::WPDocument::parse(&gsfInput, static_cast(this), NULL); - -- if (error != WPD_OK) -+ if (error != libwpd::WPD_OK) - { - UT_DEBUGMSG(("AbiWordPerfect: ERROR: %i!\n", (int)error)); - return UT_IE_IMPORTERROR; -@@ -329,7 +429,7 @@ - // nada - } - --void IE_Imp_WordPerfect::setDocumentMetaData(const WPXPropertyList &propList) -+void IE_Imp_WordPerfect::setDocumentMetaData(const librevenge::RVNGPropertyList &propList) - { - if (propList["dc:author"]) - getDoc()->setMetaDataProp(PD_META_KEY_CREATOR, propList["dc:author"]->getStr().cstr()); -@@ -339,15 +439,15 @@ - getDoc()->setMetaDataProp(PD_META_KEY_PUBLISHER, propList["dc:publisher"]->getStr().cstr()); - if (propList["dc:type"]) - getDoc()->setMetaDataProp(PD_META_KEY_TYPE, propList["dc:category"]->getStr().cstr()); -- if (propList["libwpd:keywords"]) -- getDoc()->setMetaDataProp(PD_META_KEY_KEYWORDS, propList["libwpd:keywords"]->getStr().cstr()); -+ if (propList["librevenge:keywords"]) -+ getDoc()->setMetaDataProp(PD_META_KEY_KEYWORDS, propList["librevenge:keywords"]->getStr().cstr()); - if (propList["dc:language"]) - getDoc()->setMetaDataProp(PD_META_KEY_LANGUAGE, propList["dc:language"]->getStr().cstr()); -- if (propList["libwpd:abstract"]) -- getDoc()->setMetaDataProp(PD_META_KEY_DESCRIPTION, propList["libwpd:abstract"]->getStr().cstr()); -+ if (propList["librevenge:abstract"]) -+ getDoc()->setMetaDataProp(PD_META_KEY_DESCRIPTION, propList["librevenge:abstract"]->getStr().cstr()); - } - --void IE_Imp_WordPerfect::startDocument() -+void IE_Imp_WordPerfect::startDocument(const librevenge::RVNGPropertyList & /* propList */) - { - UT_DEBUGMSG(("AbiWordPerfect: startDocument\n")); - } -@@ -357,7 +457,7 @@ - UT_DEBUGMSG(("AbiWordPerfect: endDocument\n")); - } - --void IE_Imp_WordPerfect::openPageSpan(const WPXPropertyList &propList) -+void IE_Imp_WordPerfect::openPageSpan(const librevenge::RVNGPropertyList &propList) - { - if (m_bHdrFtrOpenCount) return; // HACK - UT_DEBUGMSG(("AbiWordPerfect: openPageSpan\n")); -@@ -378,7 +478,7 @@ - - } - --void IE_Imp_WordPerfect::openHeader(const WPXPropertyList & /*propList*/) -+void IE_Imp_WordPerfect::openHeader(const librevenge::RVNGPropertyList & /*propList*/) - { - m_bHdrFtrOpenCount++; - -@@ -420,7 +520,7 @@ - */ - } - --void IE_Imp_WordPerfect::openFooter(const WPXPropertyList & /*propList*/) -+void IE_Imp_WordPerfect::openFooter(const librevenge::RVNGPropertyList & /*propList*/) - { - m_bHdrFtrOpenCount++; - // see above comments re: openHeader -@@ -432,7 +532,7 @@ - // see above comments re: closeHeader - } - --void IE_Imp_WordPerfect::openParagraph(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops) -+void IE_Imp_WordPerfect::openParagraph(const librevenge::RVNGPropertyList &propList) - { - if (m_bHdrFtrOpenCount) return; // HACK - UT_DEBUGMSG(("AbiWordPerfect: openParagraph()\n")); -@@ -478,13 +578,15 @@ - (int)(m_topMargin*72), (int)(m_bottomMargin*72), m_leftMarginOffset, m_rightMarginOffset, m_textIndent, lineSpacing); - propBuffer += tmpBuffer; - -- if (tabStops.count() > 0) // Append the tabstop information -+ const librevenge::RVNGPropertyListVector *tabStops = propList.child("style:tab-stops"); -+ -+ if (tabStops && tabStops->count()) // Append the tabstop information - { - propBuffer += "; tabstops:"; - tmpBuffer = ""; -- WPXPropertyListVector::Iter i(tabStops); -- for (i.rewind(); i.next();) -- { -+ librevenge::RVNGPropertyListVector::Iter i(*tabStops); -+ for (i.rewind(); i.next();) -+ { - propBuffer += tmpBuffer; - if (i()["style:position"]) - { -@@ -515,8 +617,8 @@ - propBuffer += "0"; - - tmpBuffer = ","; -- } -- } -+ } -+ } - - - -@@ -543,7 +645,7 @@ - } - } - --void IE_Imp_WordPerfect::openSpan(const WPXPropertyList &propList) -+void IE_Imp_WordPerfect::openSpan(const librevenge::RVNGPropertyList &propList) - { - if (m_bHdrFtrOpenCount) return; // HACK - UT_DEBUGMSG(("AbiWordPerfect: Appending current text properties\n")); -@@ -614,13 +716,14 @@ - X_CheckDocumentError(appendFmt(propsArray)); - } - --void IE_Imp_WordPerfect::openSection(const WPXPropertyList &propList, const WPXPropertyListVector &columns) -+void IE_Imp_WordPerfect::openSection(const librevenge::RVNGPropertyList &propList) - { - if (m_bHdrFtrOpenCount) return; // HACK - UT_DEBUGMSG(("AbiWordPerfect: openSection\n")); - - float marginLeft = 0.0f, marginRight = 0.0f; -- int columnsCount = ((columns.count() == 0) ? 1 : columns.count()); -+ const librevenge::RVNGPropertyListVector *columns = propList.child("style:columns"); -+ int columnsCount = ((!columns || !columns->count()) ? 1 : columns->count()); - - // TODO: support spaceAfter - if (propList["fo:start-indent"]) -@@ -647,7 +750,7 @@ - X_CheckDocumentError(appendSpan(&ucs,1)); - } - --void IE_Imp_WordPerfect::insertText(const WPXString &text) -+void IE_Imp_WordPerfect::insertText(const librevenge::RVNGString &text) - { - if (m_bHdrFtrOpenCount) return; // HACK - if (text.len()) -@@ -658,6 +761,15 @@ - } - } - -+void IE_Imp_WordPerfect::insertSpace() -+{ -+ if (m_bHdrFtrOpenCount) return; // HACK -+ UT_DEBUGMSG(("AbiWordPerfect: insertSpace\n")); -+ -+ UT_UCS4Char ucs = UCS_SPACE; -+ X_CheckDocumentError(appendSpan(&ucs,1)); -+} -+ - void IE_Imp_WordPerfect::insertLineBreak() - { - if (m_bHdrFtrOpenCount) return; // HACK -@@ -668,12 +780,11 @@ - } - - -- --void IE_Imp_WordPerfect::defineOrderedListLevel(const WPXPropertyList &propList) -+void IE_Imp_WordPerfect::openOrderedListLevel(const librevenge::RVNGPropertyList &propList) - { - if (m_bHdrFtrOpenCount) return; // HACK -- UT_DEBUGMSG(("AbiWordPerfect: defineOrderedListLevel\n")); -- -+ UT_DEBUGMSG(("AbiWordPerfect: openOrderedListLevel\n")); -+ - int listID = 0, startingNumber = 0, level = 1; - char listType = '1'; - UT_UTF8String textBeforeNumber, textAfterNumber; -@@ -680,12 +791,12 @@ - float listLeftOffset = 0.0f; - float listMinLabelWidth = 0.0f; - -- if (propList["libwpd:id"]) -- listID = propList["libwpd:id"]->getInt(); -+ if (propList["librevenge:id"]) -+ listID = propList["librevenge:id"]->getInt(); - if (propList["text:start-value"]) - startingNumber = propList["text:start-value"]->getInt(); -- if (propList["libwpd:level"]) -- level = propList["libwpd:level"]->getInt(); -+ if (propList["librevenge:level"]) -+ level = propList["librevenge:level"]->getInt(); - if (propList["style:num-prefix"]) - textBeforeNumber += propList["style:num-prefix"]->getStr().cstr(); - if (propList["style:num-suffix"]) -@@ -716,22 +827,38 @@ - m_pCurrentListDefinition->setListMinLabelWidth(level, listMinLabelWidth); - _updateDocumentOrderedListDefinition(m_pCurrentListDefinition, level, listType, textBeforeNumber, textAfterNumber, startingNumber); - } -+ -+ m_iCurrentListLevel++; - } - --void IE_Imp_WordPerfect::defineUnorderedListLevel(const WPXPropertyList &propList) -+void IE_Imp_WordPerfect::closeOrderedListLevel() - { - if (m_bHdrFtrOpenCount) return; // HACK -- UT_DEBUGMSG(("AbiWordPerfect: defineUnorderedListLevel\n")); -+ UT_DEBUGMSG(("AbiWordPerfect: closeOrderedListLevel (level: %i)\n", m_iCurrentListLevel)); -+ UT_ASSERT(m_iCurrentListLevel > 0); -+ -+ // every time we close a list level, the level above it is normally renumbered to start at "1" -+ // again. this code takes care of that. -+ if (m_iCurrentListLevel < (WP6_NUM_LIST_LEVELS-1)) -+ m_pCurrentListDefinition->setLevelNumber(m_iCurrentListLevel + 1, 0); -+ -+ m_iCurrentListLevel--; -+} - -+void IE_Imp_WordPerfect::openUnorderedListLevel(const librevenge::RVNGPropertyList &propList) -+{ -+ if (m_bHdrFtrOpenCount) return; // HACK -+ UT_DEBUGMSG(("AbiWordPerfect: openUNorderedListLevel\n")); -+ - int listID = 0, level = 1; -- WPXString textBeforeNumber, textAfterNumber; -+ librevenge::RVNGString textBeforeNumber, textAfterNumber; - float listLeftOffset = 0.0f; - float listMinLabelWidth = 0.0f; - -- if (propList["libwpd:id"]) -- listID = propList["libwpd:id"]->getInt(); -- if (propList["libwpd:level"]) -- level = propList["libwpd:level"]->getInt(); -+ if (propList["librevenge:id"]) -+ listID = propList["librevenge:id"]->getInt(); -+ if (propList["librevenge:level"]) -+ level = propList["librevenge:level"]->getInt(); - if (propList["text:space-before"]) - listLeftOffset = propList["text:space-before"]->getDouble(); - if (propList["text:min-label-width"]) -@@ -752,39 +879,10 @@ - m_pCurrentListDefinition->setListMinLabelWidth(level, listMinLabelWidth); - _updateDocumentUnorderedListDefinition(m_pCurrentListDefinition, level); - } --} - --//void IE_Imp_WordPerfect::openOrderedListLevel(const int listID) --void IE_Imp_WordPerfect::openOrderedListLevel(const WPXPropertyList & /*propList*/) --{ -- if (m_bHdrFtrOpenCount) return; // HACK -- UT_DEBUGMSG(("AbiWordPerfect: openOrderedListLevel\n")); -- - m_iCurrentListLevel++; - } - --void IE_Imp_WordPerfect::closeOrderedListLevel() --{ -- if (m_bHdrFtrOpenCount) return; // HACK -- UT_DEBUGMSG(("AbiWordPerfect: closeOrderedListLevel (level: %i)\n", m_iCurrentListLevel)); -- UT_ASSERT(m_iCurrentListLevel > 0); -- -- // every time we close a list level, the level above it is normally renumbered to start at "1" -- // again. this code takes care of that. -- if (m_iCurrentListLevel < (WP6_NUM_LIST_LEVELS-1)) -- m_pCurrentListDefinition->setLevelNumber(m_iCurrentListLevel + 1, 0); -- -- m_iCurrentListLevel--; --} -- --void IE_Imp_WordPerfect::openUnorderedListLevel(const WPXPropertyList & /*propList*/) --{ -- if (m_bHdrFtrOpenCount) return; // HACK -- UT_DEBUGMSG(("AbiWordPerfect: openUNorderedListLevel\n")); -- -- m_iCurrentListLevel++; --} -- - void IE_Imp_WordPerfect::closeUnorderedListLevel() - { - if (m_bHdrFtrOpenCount) return; // HACK -@@ -796,7 +894,7 @@ - - // ASSUMPTION: We assume that unordered lists will always pass a number of "0". unpredictable behaviour - // may result otherwise --void IE_Imp_WordPerfect::openListElement(const WPXPropertyList &propList, const WPXPropertyListVector & /*tabStops*/) -+void IE_Imp_WordPerfect::openListElement(const librevenge::RVNGPropertyList &propList) - { - if (m_bHdrFtrOpenCount) return; // HACK - UT_DEBUGMSG(("AbiWordPerfect: openListElement\n")); -@@ -885,7 +983,7 @@ - X_CheckDocumentError(appendSpan(&ucs,1)); - } - --void IE_Imp_WordPerfect::openFootnote(const WPXPropertyList & /*propList*/) -+void IE_Imp_WordPerfect::openFootnote(const librevenge::RVNGPropertyList & /*propList*/) - { - if (m_bHdrFtrOpenCount) return; // HACK - -@@ -934,7 +1032,7 @@ - X_CheckDocumentError(appendStrux(PTX_EndFootnote,NULL)); - } - --void IE_Imp_WordPerfect::openEndnote(const WPXPropertyList & /*propList*/) -+void IE_Imp_WordPerfect::openEndnote(const librevenge::RVNGPropertyList & /*propList*/) - { - if (m_bHdrFtrOpenCount) return; // HACK - const gchar** propsArray = NULL; -@@ -975,7 +1073,7 @@ - X_CheckDocumentError(appendStrux(PTX_EndEndnote,NULL)); - } - --void IE_Imp_WordPerfect::openTable(const WPXPropertyList &propList, const WPXPropertyListVector &columns) -+void IE_Imp_WordPerfect::openTable(const librevenge::RVNGPropertyList &propList) - { - if (m_bHdrFtrOpenCount) return; // HACK - // TODO: handle 'marginLeftOffset' and 'marginRightOffset' -@@ -1000,14 +1098,18 @@ - } - } - -- propBuffer += "table-column-props:"; -- WPXPropertyListVector::Iter i(columns); -- for (i.rewind(); i.next();) -+ const librevenge::RVNGPropertyListVector *columns = propList.child("librevenge:table-columns"); -+ if (columns) - { -- UT_String tmpBuffer; -- if (i()["style:column-width"]) -- UT_String_sprintf(tmpBuffer, "%s/", i()["style:column-width"]->getStr().cstr()); -- propBuffer += tmpBuffer; -+ propBuffer += "table-column-props:"; -+ librevenge::RVNGPropertyListVector::Iter i(*columns); -+ for (i.rewind(); i.next();) -+ { -+ UT_String tmpBuffer; -+ if (i()["style:column-width"]) -+ UT_String_sprintf(tmpBuffer, "%s/", i()["style:column-width"]->getStr().cstr()); -+ propBuffer += tmpBuffer; -+ } - } - - const gchar* propsArray[3]; -@@ -1018,7 +1120,7 @@ - X_CheckDocumentError(appendStrux(PTX_SectionTable, propsArray)); - } - --void IE_Imp_WordPerfect::openTableRow(const WPXPropertyList & /*propList*/) -+void IE_Imp_WordPerfect::openTableRow(const librevenge::RVNGPropertyList & /*propList*/) - { - if (m_bHdrFtrOpenCount) return; // HACK - UT_DEBUGMSG(("AbiWordPerfect: openRow\n")); -@@ -1030,14 +1132,14 @@ - m_bInCell = false; - } - --void IE_Imp_WordPerfect::openTableCell(const WPXPropertyList &propList) -+void IE_Imp_WordPerfect::openTableCell(const librevenge::RVNGPropertyList &propList) - { - if (m_bHdrFtrOpenCount) return; // HACK - int col =0, row = 0, colSpan = 0, rowSpan = 0; -- if (propList["libwpd:column"]) -- col = propList["libwpd:column"]->getInt(); -- if (propList["libwpd:row"]) -- row = propList["libwpd:row"]->getInt(); -+ if (propList["librevenge:column"]) -+ col = propList["librevenge:column"]->getInt(); -+ if (propList["librevenge:row"]) -+ row = propList["librevenge:row"]->getInt(); - if (propList["table:number-columns-spanned"]) - colSpan = propList["table:number-columns-spanned"]->getInt(); - if (propList["table:number-rows-spanned"]) -@@ -1247,9 +1349,9 @@ - virtual UT_Error _loadFile(GsfInput * input) - { - AbiWordperfectInputStream gsfInput(input); -- WPSResult error = WPSDocument::parse(&gsfInput, static_cast(this)); -+ libwps::WPSResult error = libwps::WPSDocument::parse(&gsfInput, static_cast(this)); - -- if (error != WPS_OK) -+ if (error != libwps::WPS_OK) - { - UT_DEBUGMSG(("AbiMSWorks: ERROR: %i!\n", (int)error)); - return UT_IE_IMPORTERROR; -@@ -1286,13 +1388,17 @@ - { - AbiWordperfectInputStream gsfInput(input); - -- WPSConfidence confidence = WPSDocument::isFileFormatSupported(&gsfInput); -+ libwps::WPSKind kind; -+ libwps::WPSConfidence confidence = libwps::WPSDocument::isFileFormatSupported(&gsfInput, kind); -+ -+ if (kind != libwps::WPS_TEXT) -+ confidence = libwps::WPS_CONFIDENCE_NONE; - - switch (confidence) - { -- case WPS_CONFIDENCE_NONE: -+ case libwps::WPS_CONFIDENCE_NONE: - return UT_CONFIDENCE_ZILCH; -- case WPS_CONFIDENCE_EXCELLENT: -+ case libwps::WPS_CONFIDENCE_EXCELLENT: - return UT_CONFIDENCE_PERFECT; - default: - return UT_CONFIDENCE_ZILCH; -Index: plugins/wordperfect/xp/Makefile.am -=================================================================== ---- plugins/wordperfect/xp/Makefile.am (revision 34460) -+++ plugins/wordperfect/xp/Makefile.am (working copy) -@@ -6,8 +6,6 @@ - -DABI_BUILD_VERSION=\"$(VERSION)\" - - libxp_la_SOURCES = \ -- ie_exp_WordPerfect.cpp \ -- ie_exp_WordPerfect.h \ - ie_impexp_WordPerfect.cpp \ - ie_impexp_WordPerfect.h \ - ie_imp_WordPerfect.cpp \ -Index: plugins/wordperfect/xp/ie_impexp_WordPerfect.h -=================================================================== ---- plugins/wordperfect/xp/ie_impexp_WordPerfect.h (revision 34460) -+++ plugins/wordperfect/xp/ie_impexp_WordPerfect.h (working copy) -@@ -24,7 +24,6 @@ - */ - - #include "ie_imp_WordPerfect.h" --#include "ie_exp_WordPerfect.h" - #include "xap_Module.h" - - #define IE_MIMETYPE_WP_51 "application/wordperfect5.1" -Index: plugins/wordperfect/plugin.m4 -=================================================================== ---- plugins/wordperfect/plugin.m4 (revision 34460) -+++ plugins/wordperfect/plugin.m4 (working copy) -@@ -1,6 +1,6 @@ - --wordperfect_pkgs="libwpg-0.2 >= 0.2.0 libwpd-0.9 >= 0.9.0 libwpd-stream-0.9 >= 0.9.0 $gsf_req" --wordperfect_wps_pkgs='libwps-0.2 >= 0.1.0' -+wordperfect_pkgs="libwpd-0.10 $gsf_req" -+wordperfect_wps_pkgs='libwps-0.3' - wordperfect_deps="no" - - WORDPERFECT_CFLAGS= -@@ -29,7 +29,7 @@ - - PKG_CHECK_EXISTS([ $wordperfect_wps_pkgs ], - [ -- wp_deps_pkgs="$wp_deps_pkgs $wordperfect_wps_pkgs" -+ wp_deps_pkgs="$wordperfect_wps_pkgs $wp_deps_pkgs" - WPS_DEFINE=" -DHAVE_LIBWPS" - ]) - diff --git a/abiword-3.0.2-explicit-python.patch b/abiword-3.0.2-explicit-python.patch deleted file mode 100644 index 49ff7b1..0000000 --- a/abiword-3.0.2-explicit-python.patch +++ /dev/null @@ -1,8 +0,0 @@ -Index: abiword-3.0.2/src/gi-overrides/Makefile.am -=================================================================== ---- abiword-3.0.2.orig/src/gi-overrides/Makefile.am -+++ abiword-3.0.2/src/gi-overrides/Makefile.am -@@ -1,2 +1,2 @@ --overridesdir = `python -c "import gi; print gi._overridesdir"` -+overridesdir = `$(PYTHON) -c "import gi; print(gi._overridesdir)"` - overrides_PYTHON = Abi.py diff --git a/abiword-3.0.4-pygobject.patch b/abiword-3.0.4-pygobject.patch deleted file mode 100644 index 0926131..0000000 --- a/abiword-3.0.4-pygobject.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 51787d61993cb3981c18e4cf174fc229734fba1e Mon Sep 17 00:00:00 2001 -From: Jean Brefort -Date: Sun, 6 Dec 2015 11:04:10 +0000 -Subject: [PATCH] Update python override code. Fixes #13745 and #13746, thanks - to David Gutteridge. - -git-svn-id: svn+ssh://svn.abisource.com/svnroot/abiword/trunk@35171 bcba8976-2d24-0410-9c9c-aab3bd5fdfd6 ---- - src/gi-overrides/Abi.py | 2 ++ - 2 files changed, 3 insertions(+), 1 deletion(-) - -diff --git a/src/gi-overrides/Abi.py b/src/gi-overrides/Abi.py -index 666fd61bf4..e3b61b9bf1 100644 ---- a/src/gi-overrides/Abi.py -+++ b/src/gi-overrides/Abi.py -@@ -1,4 +1,6 @@ - import sys -+import gi -+gi.require_version('Gtk', '3.0') - from gi.repository import Gtk - from ..overrides import override - from ..importer import modules diff --git a/abiword.spec b/abiword.spec index 58de5d6..8b2035c 100644 --- a/abiword.spec +++ b/abiword.spec @@ -1,37 +1,31 @@ -%define bigversion 3.0 +%define majorversion 3 +%define minorversion 0 +%define microversion 1 +%define svnver 0 -%global forgeurl https://gitlab.gnome.org/World/AbiWord - -Name: abiword -Version: 3.0.7 -Release: 3%{?dist} -%global tag release-%{version} -%forgemeta - -Epoch: 1 Summary: Word processing program -License: GPL-2.0-or-later -URL: %{forgeurl} +Name: abiword +Version: %{majorversion}.%{minorversion}.%{microversion} +Release: 1%{?dist} +Epoch: 1 +Group: Applications/Editors +License: GPLv2+ +URL: http://www.abisource.com/ -Source0: %{forgesource} +Source0: http://abisource.com/downloads/abiword/%{version}/source/abiword-%{version}.tar.gz +Source1: http://abisource.com/downloads/abiword/%{version}/source/abiword-docs-%{version}.tar.gz Source11: abiword.mime Source12: abiword.keys Source13: abiword.xml - -ExcludeArch: %{ix86} - Patch0: abiword-2.6.0-windowshelppaths.patch Patch1: abiword-2.8.3-desktop.patch Patch2: abiword-2.6.0-boolean.patch -Patch3: abiword-3.0.0-librevenge.patch -Patch4: abiword-3.0.2-explicit-python.patch -Patch5: abiword-3.0.4-pygobject.patch +BuildRequires: autoconf +BuildRequires: automake BuildRequires: aiksaurus-devel BuildRequires: aiksaurus-gtk-devel BuildRequires: asio-devel -# Needed while explicit-python.patch touches gi-overrides/Makefile.am -BuildRequires: automake autoconf libtool autoconf-archive BuildRequires: bison BuildRequires: boost-devel BuildRequires: bzip2-devel @@ -41,16 +35,12 @@ BuildRequires: desktop-file-utils BuildRequires: enchant-devel BuildRequires: flex BuildRequires: fribidi-devel -BuildRequires: gcc-c++ BuildRequires: gobject-introspection-devel BuildRequires: goffice-devel BuildRequires: gtk3-devel -# Probably because it's gtk2 based -#BuildRequires: gtkmathview-devel -BuildRequires: libgcrypt-devel +BuildRequires: gtkmathview-devel BuildRequires: libgsf-devel BuildRequires: libpng-devel -BuildRequires: librevenge-devel BuildRequires: librsvg2-devel BuildRequires: libsoup-devel BuildRequires: libwmf-devel @@ -60,23 +50,18 @@ BuildRequires: libxslt-devel BuildRequires: link-grammar-devel BuildRequires: loudmouth-devel BuildRequires: ots-devel -BuildRequires: pkgconf-pkg-config -BuildRequires: pkgconfig(libwps-0.4) BuildRequires: poppler-devel BuildRequires: popt-devel -BuildRequires: python3-gobject -BuildRequires: python3-devel -BuildRequires: python3-setuptools +BuildRequires: pygobject3 +BuildRequires: python2-devel +BuildRequires: python-setuptools BuildRequires: readline-devel BuildRequires: t1lib-devel BuildRequires: telepathy-glib-devel BuildRequires: wv-devel BuildRequires: zlib-devel -BuildRequires: make -BuildRequires: libappstream-glib Requires: libabiword = %{epoch}:%{version}-%{release} -Requires: python3-gobject-base %description AbiWord is a cross-platform Open Source word processor. It is full-featured, @@ -85,6 +70,7 @@ while still remaining lean. %package -n libabiword Summary: Library for developing applications based on AbiWord's core +Group: System Environment/Libraries %description -n libabiword Library for developing applications based on AbiWord's core. @@ -92,45 +78,61 @@ Library for developing applications based on AbiWord's core. %package -n libabiword-devel Summary: Files for developing with libabiword +Group: Development/Libraries Requires: libabiword = %{epoch}:%{version}-%{release} %description -n libabiword-devel Includes and definitions for developing with libabiword. -%package -n python3-abiword -%{?python_provide:%python_provide python3-abiword} +%package -n python-abiword Summary: Python bindings for developing with libabiword +Group: Development/Libraries Requires: libabiword = %{epoch}:%{version}-%{release} +Obsoletes: pyabiword <= 0.8.0 +Provides: pyabiword > 0.8.0 -%description -n python3-abiword +%description -n python-abiword Python bindings for developing with libabiword %prep # setup abiword -%setup -qn AbiWord-release-%{version} +%setup -q # patch abiword -%patch -P 1 -p1 -b .desktop -%patch -P 2 -p1 -b .boolean -%patch -P 3 -p0 -b .librevenge -%patch -P 4 -p1 -b .explicit_python -%patch -P 5 -p1 -b .pygo +%patch1 -p1 -b .desktop +%patch2 -p1 -b .boolean + +# setup abiword documentation +%setup -q -T -b 1 -n abiword-docs-%{version} +%patch0 -p1 -b .windowshelppaths %build -# Needed while explicit-python.patch touches gi-overrides/Makefile.am -./autogen.sh +aclocal +autoconf -export CXXFLAGS="-std=c++14 $RPM_OPT_FLAGS -DASIO_ENABLE_BOOST" -%configure \ - --enable-plugins --enable-clipart --enable-templates --enable-introspection \ - --with-gir-dir=%{_datadir}/gir-1.0 --with-typelib-dir=%{_libdir}/girepository-1.0 \ - --enable-maintainer-mode -%{make_build} V=1 +# build libabiword and abiword +cd $RPM_BUILD_DIR/abiword-%{version} +%configure --enable-plugins --enable-clipart --enable-templates --enable-introspection +# Build non SMP due to issues with gobject-introspection builds +# make %{?_smp_mflags} V=1 +make V=1 + +# build the documentation +cd $RPM_BUILD_DIR/abiword-docs-%{version} +ABI_DOC_PROG=$(pwd)/../%{name}-%{version}/src/abiword ./make-html.sh %install -%{make_install} overridesdir=%{python3_sitelib}/gi/overrides +cd $RPM_BUILD_DIR/abiword-%{version} +make install DESTDIR=%{buildroot} + +# install the documentation +cd $RPM_BUILD_DIR/abiword-docs-%{version} +mkdir -p $RPM_BUILD_ROOT/%{_datadir}/%{name}-%{majorversion}.%{minorversion}/AbiWord/help +cp -rp help/* $RPM_BUILD_ROOT/%{_datadir}/%{name}-%{majorversion}.%{minorversion}/AbiWord/help/ +# some of the help dirs have bad perms (#109261) +find $RPM_BUILD_ROOT/%{_datadir}/%{name}-%{majorversion}.%{minorversion}/AbiWord/help/ -type d -exec chmod -c o+rx {} \; install -p -m 0644 -D %{SOURCE11} $RPM_BUILD_ROOT%{_datadir}/mime-info/abiword.mime install -p -m 0644 -D %{SOURCE12} $RPM_BUILD_ROOT%{_datadir}/mime-info/abiword.keys @@ -140,253 +142,57 @@ install -p -m 0644 -D %{SOURCE13} $RPM_BUILD_ROOT%{_datadir}/mime/packages/abiwo find %{buildroot} -name '*.la' -delete find %{buildroot} -name '*.a' -delete -mv %{buildroot}%{_datadir}/applications/abiword.desktop %{buildroot}%{_datadir}/applications/com.abisource.AbiWord.desktop +%post +/bin/touch --no-create %{_datadir}/icons/hicolor &> /dev/null || : +/bin/touch --no-create %{_datadir}/mime/packages &> /dev/null || : +/usr/bin/update-desktop-database &> /dev/null || : -mkdir -p %{buildroot}%{_metainfodir}/ -mv %{buildroot}%{_datadir}/appdata/abiword.appdata.xml %{buildroot}%{_metainfodir}/ -appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/abiword.appdata.xml +%postun +/usr/bin/update-desktop-database &> /dev/null || : +if [ $1 -eq 0 ] ; then + /bin/touch --no-create %{_datadir}/icons/hicolor &> /dev/null || : + /bin/touch --no-create %{_datadir}/mime/packages &> /dev/null || : + /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &> /dev/null || : + /usr/bin/update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || : +fi -%ldconfig_scriptlets -n libabiword +%posttrans +/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &> /dev/null || : +/usr/bin/update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || : %files %{_bindir}/abiword -%{_metainfodir}/abiword.appdata.xml %{_datadir}/applications/*.desktop %{_datadir}/mime-info/abiword.mime %{_datadir}/mime-info/abiword.keys %{_datadir}/mime/packages/abiword.xml %{_datadir}/icons/hicolor/*/apps/abiword.png %{_datadir}/icons/hicolor/scalable/apps/abiword.svg -%{_mandir}/man1/abiword.1* +# Abiword help +%{_datadir}/%{name}-%{majorversion}.%{minorversion}/AbiWord +%{_mandir}/man1/abiword.1.gz %files -n libabiword -%license COPYING COPYRIGHT.TXT -%{_libdir}/libabiword-%{bigversion}.so +%doc $RPM_BUILD_DIR/%{name}-%{version}/COPYING $RPM_BUILD_DIR/%{name}-%{version}/COPYRIGHT.TXT +%{_libdir}/libabiword-%{majorversion}.%{minorversion}.so %{_libdir}/libAiksaurusGtk3* -%{_libdir}/%{name}-%{bigversion} +%{_libdir}/%{name}-%{majorversion}.%{minorversion} %{_libdir}/girepository-1.0/Abi-3.0.typelib -%{_datadir}/%{name}-%{bigversion} +%{_datadir}/%{name}-%{majorversion}.%{minorversion} %{_datadir}/dbus-1/services/org.freedesktop.Telepathy.Client.AbiCollab.service %{_datadir}/telepathy/clients/AbiCollab.client +# Abiword help - included in GUI app +%exclude %{_datadir}/%{name}-%{majorversion}.%{minorversion}/AbiWord %files -n libabiword-devel -%{_includedir}/%{name}-%{bigversion} -%{_libdir}/pkgconfig/%{name}-%{bigversion}.pc +%{_includedir}/%{name}-%{majorversion}.%{minorversion} +%{_libdir}/pkgconfig/%{name}-%{majorversion}.%{minorversion}.pc %{_datadir}/gir-1.0/Abi-3.0.gir -%files -n python3-abiword -%pycached %{python3_sitelib}/gi/overrides/Abi.py +%files -n python-abiword +%{python_sitearch}/* %changelog -* Fri Jan 16 2026 Fedora Release Engineering - 1:3.0.7-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild - -* Fri Sep 19 2025 Python Maint - 1:3.0.7-2 -- Rebuilt for Python 3.14.0rc3 bytecode - -* Wed Sep 03 2025 Gwyn Ciesla - 1:3.0.7-1 -- 3.0.7 - -* Fri Aug 15 2025 Python Maint - 1:3.0.5-21 -- Rebuilt for Python 3.14.0rc2 bytecode - -* Wed Jul 23 2025 Fedora Release Engineering - 1:3.0.5-20 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Tue Jun 03 2025 Python Maint - 1:3.0.5-19 -- Rebuilt for Python 3.14 - -* Thu Jan 16 2025 Fedora Release Engineering - 1:3.0.5-18 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Tue Oct 22 2024 Gwyn Ciesla - 1:3.0.5-17 -- Fix desktop filename - -* Tue Sep 24 2024 Gwyn Ciesla - 1:3.0.5-16 -- Fix metainfo - -* Sun Sep 08 2024 Alexander Ploumistos - 1:3.0.5-15 -- Rebuilt for goffice-0.10.57 - -* Wed Jul 17 2024 Fedora Release Engineering - 1:3.0.5-14 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Sat Jun 08 2024 Python Maint - 1:3.0.5-13 -- Rebuilt for Python 3.13 - -* Wed Jan 31 2024 Gwyn Ciesla - 1:3.0.5-12 -- Add missing include - -* Mon Jan 22 2024 Fedora Release Engineering - 1:3.0.5-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 19 2024 Fedora Release Engineering - 1:3.0.5-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sat Nov 04 2023 Gwyn Ciesla 1:3.0.5-9 -- Drop i386 on f40+ - -* Wed Jul 19 2023 Fedora Release Engineering - 1:3.0.5-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Thu Jun 15 2023 Python Maint - 1:3.0.5-7 -- Rebuilt for Python 3.12 - -* Wed Mar 08 2023 Gwyn Ciesla - 1:3.0.5-6 -- migrated to SPDX license - -* Wed Jan 18 2023 Fedora Release Engineering - 1:3.0.5-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Wed Jul 20 2022 Fedora Release Engineering - 1:3.0.5-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Mon Jun 13 2022 Python Maint - 1:3.0.5-3 -- Rebuilt for Python 3.11 - -* Wed Jan 19 2022 Fedora Release Engineering - 1:3.0.5-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Sat Oct 23 2021 Peter Robinson - 1:3.0.5-1 -- Update to 3.0.5 - -* Wed Jul 21 2021 Fedora Release Engineering - 1:3.0.4-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Fri Jun 04 2021 Python Maint - 1:3.0.4-10 -- Rebuilt for Python 3.10 - -* Mon Jan 25 2021 Fedora Release Engineering - 1:3.0.4-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Fri Jul 31 2020 Fedora Release Engineering - 1:3.0.4-8 -- Second attempt - Rebuilt for - https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Mon Jul 27 2020 Jeff Law - 1:3.0.4-7 -- Force C++14 as the code is not ready for C++17 - -* Mon Jul 27 2020 Fedora Release Engineering - 1:3.0.4-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Tue May 26 2020 Miro Hrončok - 1:3.0.4-5 -- Rebuilt for Python 3.9 - -* Sun Feb 2 2020 Peter Robinson 1:3.0.4-4 -- More packaging cleanups and fixes - -* Wed Jan 29 2020 Peter Robinson 1:3.0.4-3 -- Packaging cleanups and fixes - -* Tue Jan 28 2020 Fedora Release Engineering - 1:3.0.4-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Fri Nov 29 2019 Peter Robinson 1:3.0.4-1 -- Update to 3.0.4 -- Move to python3 gobject introspection bindings -- Disable gtkmathview plugins until requires issue is fixed - -* Wed Jul 24 2019 Fedora Release Engineering - 1:3.0.2-21 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Sun Feb 17 2019 Igor Gnatenko - 1:3.0.2-20 -- Rebuild for readline 8.0 - -* Fri Feb 01 2019 Caolán McNamara - 1:3.0.2-19 -- Rebuilt for fixed libwmf soname - -* Fri Feb 01 2019 Björn Esser - 1:3.0.2-18 -- Add patch to explicitly use python2 (#1671692) - -* Fri Feb 01 2019 Björn Esser - 1:3.0.2-17 -- Rebuilt for libwmf soname bump - -* Thu Jan 31 2019 Fedora Release Engineering - 1:3.0.2-16 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Tue Jul 17 2018 Miro Hrončok - 1:3.0.2-15 -- Update Python macros to new packaging standards - (See https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_package) - -* Thu Jul 12 2018 Fedora Release Engineering - 1:3.0.2-14 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Wed Feb 28 2018 Caolán McNamara - 1:3.0.2-13 -- rebuild for fribidi - -* Wed Feb 07 2018 Iryna Shcherbina - 1:3.0.2-12 -- Update Python 2 dependency declarations to new packaging standards - (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) - -* Wed Feb 07 2018 Fedora Release Engineering - 1:3.0.2-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Sun Jan 07 2018 Igor Gnatenko - 1:3.0.2-10 -- Remove obsolete scriptlets - -* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek - 1:3.0.2-9 -- Python 2 binary package renamed to python2-abiword - See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 - -* Wed Aug 02 2017 Fedora Release Engineering - 1:3.0.2-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Wed Jul 26 2017 Fedora Release Engineering - 1:3.0.2-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Mon May 15 2017 Fedora Release Engineering - 1:3.0.2-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild - -* Fri Feb 10 2017 Fedora Release Engineering - 1:3.0.2-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Thu Jan 12 2017 Igor Gnatenko - 1:3.0.2-4 -- Rebuild for readline 7.x - -* Wed Dec 7 2016 Peter Robinson 1:3.0.2-3 -- Fix the black drawing regression with Gtk3.22 - -* Tue Nov 29 2016 Peter Robinson 1:3.0.2-2 -- Run ldconfig for libabiword - -* Tue Nov 29 2016 Peter Robinson 1:3.0.2-1 -- Update to 3.0.2 stable - -* Tue Jul 19 2016 Fedora Release Engineering - 1:3.0.1-12 -- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages - -* Sun Apr 10 2016 Peter Robinson 1:3.0.1-11 -- fix parallel build (thanks yselkowi) rhbz 1214395 - -* Sun Apr 10 2016 Peter Robinson 1:3.0.1-10 -- Add patches to fix building with newer gnutls and gcc6 -- Add patch to fix Wordperfect support - -* Wed Feb 03 2016 Fedora Release Engineering - 1:3.0.1-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Wed Jul 29 2015 Fedora Release Engineering - 1:3.0.1-8 -- Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159 - -* Wed Jul 22 2015 David Tardon - 1:3.0.1-7 -- rebuild for Boost 1.58 - -* Tue Jun 16 2015 Fedora Release Engineering - 1:3.0.1-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Sat Jun 06 2015 David Tardon - 1:3.0.1-5 -- really enable WordPerfect import -- enable MS Works import - -* Sat May 02 2015 Kalev Lember - 1:3.0.1-4 -- Rebuilt for GCC 5 C++11 ABI change - -* Thu Mar 26 2015 Richard Hughes - 1:3.0.1-3 -- Add an AppData file for the software center - -* Tue Jan 27 2015 Petr Machata - 1:3.0.1-2 -- Rebuild for boost 1.57.0 - * Wed Dec 24 2014 Peter Robinson 1:3.0.1-1 - Update to 3.0.1 stable @@ -432,3 +238,108 @@ appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/abiword.appdat * Mon Oct 14 2013 Peter Robinson 1:3.0.0-1 - Update to 3.0.0 stable + +* Sat Aug 03 2013 Fedora Release Engineering - 1:2.8.6-24 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Tue Jul 30 2013 Petr Machata - 1:2.8.6-23 +- Rebuild for boost 1.54.0 + +* Sun Feb 17 2013 Christoph Wickert - 1:2.8.6-22 +- Make desktop file --vendor conditional +- Remove obsolete category 'Applications" from desktop file + +* Sat Feb 09 2013 Rahul Sundaram - 1:2.8.6-21 +- remove vendor tag from desktop file. https://fedorahosted.org/fpc/ticket/247 +- clean up spec to follow current guidelines +- remove obsolete and unapplied boolean patch + +* Fri Jan 18 2013 Adam Tkac - 1:2.8.6-20 +- rebuild due to "jpeg8-ABI" feature drop + +* Fri Dec 21 2012 Adam Tkac - 1:2.8.6-19 +- rebuild against new libjpeg + +* Wed Jul 18 2012 Fedora Release Engineering - 1:2.8.6-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Mon Feb 27 2012 Tom Callaway - 1:2.8.6-17 +- fix build against modern glib, libpng + +* Thu Jan 12 2012 Fedora Release Engineering - 1:2.8.6-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Tue Dec 06 2011 Adam Jackson - 1:2.8.6-15 +- Rebuild for new libpng + +* Tue Aug 9 2011 Peter Robinson - 1:2.8.6-14 +- rebuild with link-grammar now its back + +* Tue Aug 2 2011 Peter Robinson - 1:2.8.6-13 +- rebuild for new asio +- drop obsolete OLPC and ARM includes + +* Tue Aug 02 2011 Marc Maurer - 1:2.8.6-12 +- Fix a typo in the previous patch + +* Tue Aug 02 2011 Marc Maurer - 1:2.8.6-11 +- Fix BZ 716005: --no-undefined is a linker flag, not a g++ flag + +* Tue Aug 02 2011 Marc Maurer - 1:2.8.6-10 +- Mixed up the microversion and the release + +* Tue Aug 02 2011 Marc Maurer - 1:2.8.6-9 +- Remove link-grammar from the BR and R until it is revived + +* Thu May 05 2011 Chris Tyler - 1:2.8.6-8 +- Excluded asio-devel from ARM builds + +* Mon Feb 07 2011 Fedora Release Engineering - 1:2.8.6-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Thu Dec 30 2010 Peter Robinson - 1:2.8.6-6 +- Rebuild for library soname bumps + +* Wed Dec 8 2010 Caolán McNamara - 1:2.8.6-5 +- Rebuild for libwpd 0.9 + +* Wed Dec 8 2010 Peter Robinson - 1:2.8.6-4 +- Rebuild for library soname bumps + +* Wed Sep 29 2010 jkeating - 1:2.8.6-3 +- Rebuilt for gcc bug 634757 + +* Wed Sep 22 2010 Peter Robinson - 1:2.8.6-2 +- Move abiword gui help from the library to the app. Fixes 578596 + +* Sat Aug 14 2010 Marc Maurer - 1:2.8.6-1 +- New upstream release + +* Sat Jun 05 2010 Marc Maurer - 1:2.8.5-1 +- New upstream release + +* Fri Apr 16 2010 Marc Maurer - 1:2.8.4-1 +- New upstream release + +* Thu Apr 08 2010 Marc Maurer - 1:2.8.3-2 +- Update .desktop patch + +* Thu Apr 08 2010 Marc Maurer - 1:2.8.3-1 +- New upstream release + +* Tue Mar 02 2010 Marc Maurer - 1:2.8.2-1 +- New upstream release +- Package the man page + +* Wed Dec 23 2009 Rahul Sundaram -1:2.8.1-4 +- Rebuild again since the wv soname bump was accidental +- Remove superflous BuildRoot definitions and removals + +* Mon Dec 21 2009 Peter Robinson - 1:2.8.1-3 +- Rebuild against new libwv + +* Sun Nov 01 2009 Marc Maurer - 1:2.8.1-2 +- Rebuild + +* Sun Nov 01 2009 Marc Maurer - 1:2.8.1-1 +- New upstream release diff --git a/sources b/sources index 5450106..5be6e78 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ -SHA512 (AbiWord-release-3.0.7.tar.bz2) = 8cd75bcef936e8db1f859a8685e44c60b6f23a61a3bd702f320fa931dd645c85e9c2e671f870b7873ed57f37f75de71888f8a261cc6c97a58edf7af2114c26b7 +f3f8052e7b4979a43b75775a381e6cb8 abiword-3.0.1.tar.gz +c9b78cb5f9c415ed63ce1cf9874fa8a4 abiword-docs-3.0.1.tar.gz