diff options
author | Aurélien DESBRIÈRES <aurelien@hackers.camp> | 2014-06-17 15:22:38 +0200 |
---|---|---|
committer | Aurélien DESBRIÈRES <aurelien@hackers.camp> | 2014-06-17 15:22:38 +0200 |
commit | 743cef327818e999039e9acdd05e4a29d9c7657b (patch) | |
tree | e373db6133e26fcfbfa2bf002ec2130aa88dbe4a /libre | |
parent | 86be8715c24416657bfae0bc906b6d47f1ff3fde (diff) | |
parent | 9f678240c9b9134bbc9b20f309f3edde0fda8067 (diff) | |
download | abslibre-743cef327818e999039e9acdd05e4a29d9c7657b.tar.gz abslibre-743cef327818e999039e9acdd05e4a29d9c7657b.tar.bz2 abslibre-743cef327818e999039e9acdd05e4a29d9c7657b.zip |
Merge branch 'master' of ssh://parabola-git/srv/git/abslibre/abslibre
Diffstat (limited to 'libre')
-rw-r--r-- | libre/abiword-libre/PKGBUILD | 25 | ||||
-rw-r--r-- | libre/abiword-libre/abiword-3.0.0-librevenge.patch | 1186 | ||||
-rw-r--r-- | libre/iceweasel-l10n/PKGBUILD | 166 | ||||
-rw-r--r-- | libre/iceweasel-libre/PKGBUILD | 4 | ||||
-rw-r--r-- | libre/kdelibs-libre/PKGBUILD | 4 | ||||
-rw-r--r-- | libre/mplayer-libre/PKGBUILD | 24 | ||||
-rw-r--r-- | libre/mplayer-libre/giflib51.patch | 24 | ||||
-rw-r--r-- | libre/mplayer-libre/revert-icl-fixes.patch | 66 | ||||
-rw-r--r-- | libre/parabolaweb-utils/PKGBUILD | 10 | ||||
-rw-r--r-- | libre/paxd-libre/PKGBUILD | 2 |
10 files changed, 1404 insertions, 107 deletions
diff --git a/libre/abiword-libre/PKGBUILD b/libre/abiword-libre/PKGBUILD index b49c27a84..4d48bf983 100644 --- a/libre/abiword-libre/PKGBUILD +++ b/libre/abiword-libre/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 209913 2014-04-08 14:24:40Z andyrtr $ +# $Id: PKGBUILD 215017 2014-06-11 14:14:55Z jgc $ # Contributor (Arch): Giovanni Scafora <giovanni@archlinux.org> # Contributor (Arch): Maël Lavault <moimael@neuf.fr> # Maintainer: André Silva <emulatorman@parabola.nu> @@ -7,7 +7,7 @@ _pkgbase=abiword pkgbase=abiword-libre pkgname=('abiword-libre' 'abiword-libre-plugins') pkgver=3.0.0 -pkgrel=2 +pkgrel=3 arch=('i686' 'x86_64' 'mips64el') license=('GPL') url='http://www.abisource.com' @@ -18,18 +18,34 @@ makedepends=('pkgconfig' 'asio' 'boost' 'fribidi' 'goffice' 'libwmf' 'wv' options=('!makeflags') source=(http://abisource.com/downloads/$_pkgbase/$pkgver/source/$_pkgbase-$pkgver.tar.gz fix_crash_saving_pdf.patch + abiword-3.0.0-librevenge.patch liberation-fonts.patch) md5sums=('8d9c41cff3a8fbef8d0c835c65600e65' 'c3336f5ac7d227ff755c7e42459f20e1' + '6fc2d653d3b814bbfd9b0d71c69c4796' 'e7ef4d436469ae4b24b0f784b09ab023') prepare() { cd $_pkgbase-$pkgver - # Replace nonfree fonts support to liberation fonts + # fix FS#39652 - http://bugzilla.abisource.com/show_bug.cgi?id=13586#c2 + patch -Np2 -i ${srcdir}/fix_crash_saving_pdf.patch + + # fix build with librevenge based import filters + patch -Np0 -i ${srcdir}/abiword-3.0.0-librevenge.patch + + # replace nonfree fonts support to liberation fonts patch -Np1 -i "${srcdir}/liberation-fonts.patch" + + find plugins -name plugin.m4 | xargs cat > plugin-configure.m4 + + #aclocal -I m4 --install + #autoconf + libtoolize --force + autoreconf -fi } + build() { cd $_pkgbase-$pkgver @@ -50,9 +66,6 @@ build() { #./../../../backends/tcp/xp/Session.h:34:63: error: expected class-name before ',' token # class Session : public Synchronizer, public boost::noncopyable, public boost::enable_shared_from_this<Session> - # fix FS#39652 - http://bugzilla.abisource.com/show_bug.cgi?id=13586#c2 - patch -Np2 -i ${srcdir}/fix_crash_saving_pdf.patch - ./configure --prefix=/usr \ --enable-shared \ --disable-static \ diff --git a/libre/abiword-libre/abiword-3.0.0-librevenge.patch b/libre/abiword-libre/abiword-3.0.0-librevenge.patch new file mode 100644 index 000000000..9ff7aea24 --- /dev/null +++ b/libre/abiword-libre/abiword-3.0.0-librevenge.patch @@ -0,0 +1,1186 @@ +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 <gsf/gsf-input-memory.h> + #include <gsf/gsf-input-stdio.h> + #include <gsf/gsf-infile-msole.h> +-#include <libwpd-stream/libwpd-stream.h> ++#include <librevenge-stream/librevenge-stream.h> + #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<unsigned, std::string> 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<unsigned, std::string>::iterator i = m_substreams.lower_bound(id); ++ if (i == m_substreams.end() || m_substreams.key_comp()(id, i->first)) ++ { ++ std::string name = gsf_infile_name_by_index(m_ole, (int)id); ++ i = m_substreams.insert(i, std::map<unsigned, std::string>::value_type(id, name)); ++ } ++ return i->second.c_str(); ++ } ++ ++ return 0; ++} ++ ++bool 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("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n"); ++ svgOutput.append("<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\""); ++ svgOutput.append(" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\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 <stdio.h> +-#include <libwpd/libwpd.h> ++#include <librevenge/librevenge.h> + #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 <stdlib.h> + #include <string.h> + #include <math.h> ++#include <map> ++#include <string> + #include <gsf/gsf-utils.h> + #include <gsf/gsf-input-memory.h> + #include <gsf/gsf-input-stdio.h> +@@ -60,42 +62,47 @@ + + // Stream class + +-#include <libwpd-stream/libwpd-stream.h> ++#include <librevenge-stream/librevenge-stream.h> ++#include <libwpd/libwpd.h> + + #include <gsf/gsf-input.h> + #include <gsf/gsf-infile.h> + #include <gsf/gsf-infile-msole.h> ++#include <gsf/gsf-infile-zip.h> + + #ifdef HAVE_LIBWPS + #include <libwps/libwps.h> + #endif + +-class AbiWordperfectInputStream : public WPXInputStream ++class AbiWordperfectInputStream : public librevenge::RVNGInputStream + { + public: + AbiWordperfectInputStream(GsfInput *input); + ~AbiWordperfectInputStream(); + +- virtual bool isOLEStream(); +- virtual WPXInputStream * getDocumentOLEStream(); +- +- virtual WPXInputStream * getDocumentOLEStream(const char * name); +- ++ virtual bool isStructured(); ++ virtual unsigned subStreamCount(); ++ virtual const char* subStreamName(unsigned); ++ bool existsSubStream(const char*); ++ virtual librevenge::RVNGInputStream* getSubStreamByName(const char*); ++ virtual librevenge::RVNGInputStream* getSubStreamById(unsigned); + virtual const unsigned char *read(unsigned long numBytes, unsigned long &numBytesRead); +- virtual int seek(long offset, WPX_SEEK_TYPE seekType); ++ virtual int seek(long offset, librevenge::RVNG_SEEK_TYPE seekType); + virtual long tell(); +- virtual bool atEOS(); ++ virtual bool isEnd(); + + private: + + GsfInput *m_input; + GsfInfile *m_ole; ++ std::map<unsigned, std::string> m_substreams; + }; + + AbiWordperfectInputStream::AbiWordperfectInputStream(GsfInput *input) : +- WPXInputStream(), ++ librevenge::RVNGInputStream(), + m_input(input), +- m_ole(NULL) ++ m_ole(NULL), ++ m_substreams() + { + g_object_ref(G_OBJECT(input)); + } +@@ -120,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<unsigned, std::string>::iterator i = m_substreams.lower_bound(id); ++ if (i == m_substreams.end() || m_substreams.key_comp()(id, i->first)) ++ { ++ std::string name = gsf_infile_name_by_index(m_ole, (int)id); ++ i = m_substreams.insert(i, std::map<unsigned, std::string>::value_type(id, name)); ++ } ++ return i->second.c_str(); ++ } ++ ++ return 0; ++} ++ ++bool AbiWordperfectInputStream::existsSubStream(const char * name) ++{ ++ if (!m_ole) + m_ole = GSF_INFILE(gsf_infile_msole_new (m_input, NULL)); + ++ if (!m_ole) ++ m_ole = GSF_INFILE(gsf_infile_zip_new (m_input, NULL)); ++ + if (m_ole) + { + GsfInput *document = gsf_infile_child_by_name(m_ole, name); + if (document) + { ++ g_object_unref(G_OBJECT (document)); ++ return true; ++ } ++ } ++ ++ return false; ++} ++ ++librevenge::RVNGInputStream * AbiWordperfectInputStream::getSubStreamByName(const char * name) ++{ ++ librevenge::RVNGInputStream *documentStream = NULL; ++ ++ if (!m_ole) ++ m_ole = GSF_INFILE(gsf_infile_msole_new (m_input, NULL)); ++ ++ if (!m_ole) ++ m_ole = GSF_INFILE(gsf_infile_zip_new (m_input, NULL)); ++ ++ if (m_ole) ++ { ++ GsfInput *document = gsf_infile_child_by_name(m_ole, name); ++ 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<WPXDocumentInterface *>(this), NULL); ++ libwpd::WPDResult error = libwpd::WPDocument::parse(&gsfInput, static_cast<librevenge::RVNGTextInterface *>(this), NULL); + +- if (error != WPD_OK) ++ if (error != libwpd::WPD_OK) + { + UT_DEBUGMSG(("AbiWordPerfect: ERROR: %i!\n", (int)error)); + return UT_IE_IMPORTERROR; +@@ -329,7 +429,7 @@ + // 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<WPXDocumentInterface *>(this)); ++ libwps::WPSResult error = libwps::WPSDocument::parse(&gsfInput, static_cast<librevenge::RVNGTextInterface *>(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/libre/iceweasel-l10n/PKGBUILD b/libre/iceweasel-l10n/PKGBUILD index 4c43612d0..a3e7887a5 100644 --- a/libre/iceweasel-l10n/PKGBUILD +++ b/libre/iceweasel-l10n/PKGBUILD @@ -7,7 +7,7 @@ _debname=iceweasel _debver=30.0 -_debrel=deb1 +_debrel=deb2 _debrepo=http://ftp.debian.org/debian/pool/main/ debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; } @@ -71,85 +71,85 @@ for lang in ${_langpacks[@]}; do done md5sums=('a4593936bf1c7a9ec9368ff249f9cc56' - 'a4ebadbcd3792d8df1d9d781ed71de01' - 'd808ad3e592e61d0b9bc221600f083ee' - '5d337f816a8b0a66764226b490b5e2c8' - '09d45c5b359b83065276ed38e70b96fb' - '2fbbe3cf20242b703d4435204d558bdf' - '41dd62eda1522717e640db9300fa8219' - '7a5c03ecaae02beb41400d7903af771e' - '24cf8ff52b7f7568735910f2272809d4' - '5a0e6ca6b4c3eebf2c13b0897c535168' - '0c997d23e45f3aa8d906c7fefd149950' - 'f3b756e5afdf6bc5ce22e229ef9d810f' - '57a1e272e720b93988a6159c6865d61f' - 'bf16f137b99e9ef816c78e5e4eded227' - 'c503e483e5ab38e7d5fd0b4972fcbc33' - '765e13734512f2e0eb21305dfc8d4159' - '11450005daf415910863362606244dc9' - '2fddb79e2d9ed989313a3ef26600fdac' - 'c89513012b9ebcd635d1d3d0af21c894' - '7100396629a2051ef04112c785a2659c' - 'd239601f870a8d2d21b12fe7b498d0e5' - 'dd0f09e577c528e259ef1cf5d5891f1c' - 'f571a129430b6b86143ac672733e98ba' - '7048e50f5dfd348337c46aae445bdd38' - '1dccd98c3a34cd95c0a11ee49bd68f31' - '086c5270c7cead2207922da4d15295ab' - '5ddb9ac3ae4202aa619cf6c459735d3f' - '60cfabd429c222056a837bd7e0fed2ba' - 'f276e31c1c9381c99c2b193c2fdeb07b' - '97fa118868effc7aef1099404c44d1c7' - '60acbd8824d0e880108c91e9c1ac1fd2' - '74bab6b82f4cfc053b3c3bcc6bd9ad32' - '577cf1c5abc7eafcd089484efba3ca73' - 'e3c478dbc1be5dad585270de58aaa8cd' - '9448c177eeb1a601e540e3eb34061c8d' - '54238a4ddd14929278365282562b8f17' - '9748cdc9ac6d2f24040c7cd671952110' - '38154e8181ceea36939e1b2d1e9332f8' - '85a1bf8e27d54efccb2db596c860db38' - 'a16e4e09c9cec0e4222aff9631605a6f' - 'd7c50c99ccc20cf2e804d68043cbc82b' - '0d696d728e376fc49f04c871dab48b94' - '16fc03a3e98ea4a075394af4ff9380b3' - '895c82fed083616ac88f1f9b49469d7f' - '1619509e3c27400f0350b264c0002f1e' - 'ba65d345b0ac2fbf057eccf27e8f37a0' - '0e3d9acc4be099621a63d48e29516e1b' - 'c12ecc9ae543b59a8ca84f4a39ebc650' - 'e5ab76e0f6d7a26755aff3a4719e6d23' - 'b2e0be67e9e1d6b4791fde0fb0fb9214' - '1a8a299cf4b325f92d6724e8db440ce5' - '42674ca5e2dba846c4f9aafe17f746ef' - '52b261a801eac3690444282c0ce775ce' - '814508f80b8ee14c75f246d12f949c9f' - '287ac8a6e330e74e9da9da0afdb8d143' - 'afaf98af1617be4063ac02522c4781ac' - '1b54b35778cd45c35e970a68dccd8b49' - '26ba16c8126f033e87e066a617a94aec' - '1c7b8f635357d12f79309957f521f6f1' - '5675466e6e11505e7fbddf1b3a7aabd2' - '53c439be649253fb58ae5cd0458d2c4d' - '622509371083bf62233d3489d0709360' - '2e2dbfd3573a8ccf3614bf9ac0619edc' - 'be1f3d3d4aac76fe19be373dd1046859' - 'd01fee3c62ca34fc5c06295a0401eb58' - 'ddf3acdaecfbbe8f8828d66b1f055c51' - '6f21301b43463b19a4f7e73c2d0fd05b' - '8825499cf0120b8cf9a58693644e7b54' - 'd07f0ca31a841317b36c6aa00c7d51b6' - '41435530531cea6b067c69041007ba51' - '3f091773b50248ec33c12e177c4073ef' - 'd5c52bd0cb774ec9afe267d3c38aa994' - 'c5514c3eee68b19969676b73c7c3ea42' - '44a311210e2e3f4b51d134498da0d0bf' - 'e92bb2a8677c7ec8a50fa7ba35d4805f' - '1205b6b370499e2e0c7ef428bc4d2a3f' - '50297f4fda05fb09516345788938f6dc' - '20fe5a27307f924d5c8b4130fa34e18e' - '4629cdcfedd802f7d5d2b7cd0929db8a' - 'ce4a5c30aea9212cd71af9e990e95638' - 'd4b642858a1d8297d33223141a95199e' - '149b2070f4fc5116093221957bba3dfb' - '27b23f1040f2bfface3a13e1152a3d1a') + '965517a22a33d3dd776bb9269760bf29' + '2de2c307a6b97abfd2c640d0ae86af69' + 'f0717b835779da2f23e02f809da9a402' + 'fde3d27aef7eef499e72fbdd4efd4f21' + '1090d3363b922fb18a66d6c5b2765cda' + '8dacb1a977444356b2257efa8d95fb57' + '0c50988938b4baed3c70db15772f54cb' + '5d57ace62b675fc5e00d965757636d54' + '96acc3aa961ed063e736f420ffe3ace5' + '3abd8d53cbf600a55151f61ba29023eb' + 'f1b8990585cc38424179029200f90e6f' + '20c08eb3bb556aeb57646a56e2c18edc' + '6e339c71e0a1cbe251909fda58b9eecd' + '0a961c33c8735f2626d442bc339c63fe' + '42f0772a437b505dc5f08cebadf91ed3' + 'e0388aadb712046bc813d81fd0fb6f23' + 'ffa75eac4eb444679e0d72b8795ec25b' + 'bb94cc114d10464a537b8a6c0da3d60c' + '6d72d505cbb42f7bccf8bcd235954678' + 'bb036da744d6d52265c9d2ff07b103b0' + 'fbb2dfa21bee4903ab6d545c9264fd47' + '6b9e11d83c454b50aa5f553ce7931cc1' + '03925a4739923fd780ba90154ab01286' + 'bc0fad2d33d95873726ef7ad8f9ec950' + 'e3877e5ebce800185b805ba54b25fe8f' + 'a17cb2a49e9c79ca0a39fd35479bffc3' + '541391df4bc318ccfe1d3ec53495156a' + 'dcc2ac605ff105f183fa9af7881bfe09' + 'b1c91b3ec5e3e3fb34c3afee241008d7' + 'e41667013be9c1391b85dc3b827e1cf7' + '4125c70075ddcda52d23bd8a5f4bcee9' + '08747c160024e193966e9657057bf4b0' + '08cbe0da8e910c3604f4890a901a96b6' + '64ba23641d821ce7f6091bd436261db5' + '770b25b3bd27d258d225735a62dafdb5' + '0edd07d71d2d50654e79dae9f74bbef7' + '52c44a14ad34a18a0663bce7eb61ccb3' + '6ebe7d948cedfc02927546b2ca977cc5' + '43d14d9203034d7a5863bf6d018c2a0d' + '2c177ed97ccce6e053d3893d857d2a43' + '88da0bb2d3cbf394228dc2d6e6d5cc4a' + 'e5ffd37edaa6c9e49e8253bab3e6697a' + '3e399c07b8244b2512c26bd5d5ff5b3f' + '6e0827a2f200b296de847dad8a79b84c' + '739371fb8c7b87d1eeb8acb8a47a3072' + '19aab2a3149001fc712e87e3d17fd0bb' + '5de6c26d4cabdae5af1eef61e2d5dbf3' + '904eb446d53dae81c365cd926f15e8f7' + 'bac5b743c8a74fd03a3bea54c0c39c79' + 'dc068a59d132cec02d5da4453bb24f25' + 'e50eeb38628864c847c23a1cec48c69c' + '1620d6efb0282850123563c9300da701' + '3c98c7884409052c3183076755bbc128' + '51b7ebf980ac22ff59b30b80e2405e7a' + 'fced1c2d22766eef7d8b273e074b57ca' + '7a9f95c70a470305315f7fcc3c7f8d5c' + 'de30611e5adbacb6b50839d536ebdbae' + 'de0acdcb55f1b323ea53eb793c6bd22e' + '752925be6bfdea1219aa2ce2ceef1f81' + 'bf1dcc0ebf8c10496dab621d44dbf30b' + 'bcd8b7e226bbf7d4a711054eb62fbb4d' + '12038d77e2b2f7f862e3bc0fb2aea920' + 'a6f046879f21e5450147c79eeafa8bba' + '17fc76ddef536181a6476e781e39ecc1' + 'e6270250d2e60cbcd01272d5edce3c9a' + 'fc957096d6d6c94a644d9d29432ec89c' + '31e90c898f024f646985652332fbff01' + '229b0182a9f0d37ac7afe1e4ad6ce4fa' + 'd3ad21e240b1a598b817d44e91f0f847' + 'f444d1bdf23288c7af5e1d5229924345' + 'e24238099f61353a9e199763adb88b0e' + '67b04085ce9e26848484e2267bf3af4e' + '614aa27dfff48669440544b6880a5624' + '217506f972f355a33d4bd81958f81cdd' + '771a6b03f97250bfe1d5e15555b7b048' + '22e6c03c178516c1c6987cc769362c01' + '0cf860d0b3f9b6932ebf17cd9a9d9702' + '0905bf728cced438a4897af2999ec3dc' + '197f4f3683a5d47ff4b850953a71883e' + 'b3c3daf487c11e7d4a80024cb58ae951' + 'dade69a6bb4075fb36e757a2acc44615' + 'af1b12ef7847d4297388f4ffbcf66783') diff --git a/libre/iceweasel-libre/PKGBUILD b/libre/iceweasel-libre/PKGBUILD index 0a4127d60..30449be72 100644 --- a/libre/iceweasel-libre/PKGBUILD +++ b/libre/iceweasel-libre/PKGBUILD @@ -15,7 +15,7 @@ _pgo=true # We're getting this from Debian Sid _debname=iceweasel _debver=30.0 -_debrel=deb1 +_debrel=deb2 _debrepo=http://ftp.debian.org/debian/pool/main/ debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; } @@ -56,7 +56,7 @@ source=("$_debrepo/`debfile $_debname`_$_debver.orig.tar.bz2" vendor.js iceweasel-20.0.1-fixed-loading-icon.png) md5sums=('3a603dbbfc9c7e56a8e58cede90a9b0b' - '89e7b2ed2e84fdefcc1eca7d076b72c2' + 'a459c3970169f1f68269cf8c5b4af513' '2f5cb3df42b09fbfeaee5e72e5433ab9' 'df08eaa1ac3bc6c2356be4fbf8ec8932' '21d3ffb77ea84ce897016bc713b52ef4' diff --git a/libre/kdelibs-libre/PKGBUILD b/libre/kdelibs-libre/PKGBUILD index 60f17de47..b3208d956 100644 --- a/libre/kdelibs-libre/PKGBUILD +++ b/libre/kdelibs-libre/PKGBUILD @@ -6,7 +6,7 @@ _pkgname=kdelibs pkgname=kdelibs-libre pkgver=4.13.2 -pkgrel=1 +pkgrel=2 pkgdesc="KDE Core Libraries, without nonfree plugins recommendation support" arch=('i686' 'x86_64' 'mips64el') url='https://projects.kde.org/projects/kde/kdelibs' @@ -33,6 +33,8 @@ prepare() { patch -p1 -i "${srcdir}"/kde-applications-menu.patch # qmake refers to Qt5 patch -p1 -i "${srcdir}"/qt4.patch + # fix build with giflib 5.1.0 + sed -i "/DGifCloseFile/s:file:&, NULL:g" khtml/imload/decoders/gifloader.cpp # don't ask the user to download a plugin, it's probably nonfree. patch -p1 -i "${srcdir}"/khtml-fsdg.diff } diff --git a/libre/mplayer-libre/PKGBUILD b/libre/mplayer-libre/PKGBUILD index 5be143165..9756aab54 100644 --- a/libre/mplayer-libre/PKGBUILD +++ b/libre/mplayer-libre/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 208941 2014-03-28 21:27:08Z bpiotrowski $ +# $Id: PKGBUILD 214992 2014-06-11 10:58:11Z jgc $ # Maintainer (Arch): Ionut Biru <ibiru@archlinux.org> # Maintainer (Arch): Bartłomiej Piotrowski <bpiotrowski@archlinux.org> # Contributor (Arch): Hugo Doria <hugo@archlinux.org> @@ -8,13 +8,13 @@ _pkgbase=mplayer pkgbase=mplayer-libre pkgname=('mplayer-libre' 'mencoder-libre') -pkgver=37051 -pkgrel=2.1 +pkgver=37224 +pkgrel=1 arch=('i686' 'x86_64') makedepends=( 'libxxf86dga' 'libxxf86vm' 'libmad' 'libxinerama' 'sdl' 'lame' 'libtheora' 'xvidcore' 'libmng' 'libxss' 'libgl' 'smbclient' 'aalib' 'jack' 'libcaca' - 'x264' 'faad2' 'lirc-utils' 'libxvmc' 'enca' 'libvdpau' 'opencore-amr' + 'x264-dev' 'faad2' 'lirc-utils' 'libxvmc' 'enca' 'libvdpau' 'opencore-amr' 'libdca' 'a52dec' 'schroedinger' 'libvpx' 'libpulse' 'fribidi' 'unzip' 'mesa' 'live-media' 'yasm' 'git' 'fontconfig' 'mpg123' 'ladspa' 'libass' 'libbluray' 'libcdio-paranoia' 'opus' 'subversion' @@ -23,15 +23,19 @@ license=('GPL') url='http://www.mplayerhq.hu/' options=('!buildflags' '!emptydirs') source=($_pkgbase-$pkgver::svn://svn.mplayerhq.hu/mplayer/trunk#revision=$pkgver - http://ffmpeg.org/releases/ffmpeg-2.2.tar.bz2 + http://ffmpeg.org/releases/ffmpeg-2.2.3.tar.bz2 mplayer.desktop cdio-includes.patch - include-samba-4.0.patch) + include-samba-4.0.patch + giflib51.patch + revert-icl-fixes.patch) md5sums=('SKIP' - '744febca199548c9393b1f1ed05ccdd8' + 'dbb5b6b69bd010916f17df0ae596e0b1' '62f44a58f072b2b1a3c3d3e4976d64b3' '7b5be7191aafbea64218dc4916343bbc' - '868a92bdef148df7f38bfa992b26ce9d') + '868a92bdef148df7f38bfa992b26ce9d' + '14461fb94b7aa5dda091ba4f737df2d9' + '3579402002b7302fdf2d146639333efd') pkgver() { cd $_pkgbase-$pkgver @@ -40,10 +44,12 @@ pkgver() { prepare() { cd $_pkgbase-$pkgver - mv ../ffmpeg-2.2 ./ffmpeg + mv ../ffmpeg-2.2.3 ./ffmpeg patch -p0 -i ../cdio-includes.patch patch -p1 -i ../include-samba-4.0.patch + patch -Np0 -i ../giflib51.patch + patch -Np0 -i ../revert-icl-fixes.patch ./version.sh } diff --git a/libre/mplayer-libre/giflib51.patch b/libre/mplayer-libre/giflib51.patch new file mode 100644 index 000000000..e884b39f1 --- /dev/null +++ b/libre/mplayer-libre/giflib51.patch @@ -0,0 +1,24 @@ +--- libvo/vo_gif89a.c.orig 2014-06-11 10:06:29.243216331 +0000 ++++ libvo/vo_gif89a.c 2014-06-11 10:08:37.346078847 +0000 +@@ -75,6 +75,9 @@ + #define MakeMapObject GifMakeMapObject + #define FreeMapObject GifFreeMapObject + #define QuantizeBuffer GifQuantizeBuffer ++#if defined GIFLIB_MINOR && GIFLIB_MINOR >= 1 ++#define EGifCloseFile(a) EGifCloseFile(a, NULL) ++#endif + #endif + + // how many frames per second we are aiming for during output. +--- libmpdemux/demux_gif.c.orig 2014-06-11 10:46:48.120883788 +0000 ++++ libmpdemux/demux_gif.c 2014-06-11 10:47:28.290732272 +0000 +@@ -50,6 +50,9 @@ + #define DGifOpenFileHandle(a) DGifOpenFileHandle(a, NULL) + #define GifError() (gif ? gif->Error : 0) + #define GifErrorString() GifErrorString(gif->Error) ++#if defined GIFLIB_MINOR && GIFLIB_MINOR >= 1 ++#define DGifCloseFile(a) DGifCloseFile(a, NULL) ++#endif + #endif + + /* >= 4.2 prior GIFLIB did not have MAJOR/MINOR defines */ diff --git a/libre/mplayer-libre/revert-icl-fixes.patch b/libre/mplayer-libre/revert-icl-fixes.patch new file mode 100644 index 000000000..e5f049ff5 --- /dev/null +++ b/libre/mplayer-libre/revert-icl-fixes.patch @@ -0,0 +1,66 @@ +Index: libmpcodecs/vf_fspp.c +=================================================================== +--- libmpcodecs/vf_fspp.c (revision 37183) ++++ libmpcodecs/vf_fspp.c (revision 37181) +@@ -1598,10 +1598,6 @@ + + : "+S"(data), "+D"(output), "+c"(cnt), "=o"(temps) + : "d"(thr_adr) +- NAMED_CONSTRAINTS_ADD(ff_MM_FIX_0_707106781,MM_2,MM_FIX_1_414213562_A,MM_FIX_1_414213562,MM_FIX_0_382683433, +- ff_MM_FIX_0_541196100,MM_FIX_1_306562965,MM_FIX_0_847759065) +- NAMED_CONSTRAINTS_ADD(MM_FIX_0_566454497,MM_FIX_0_198912367,MM_FIX_2_613125930,MM_FIX_1_847759065, +- MM_FIX_1_082392200) + : "%"REG_a + ); + } +@@ -1871,8 +1867,6 @@ + + : "+S"(workspace), "+D"(output_adr), "+c"(cnt), "=o"(temps) + : "a"(output_stride*sizeof(short)) +- NAMED_CONSTRAINTS_ADD(MM_FIX_1_414213562_A,MM_FIX_2_613125930,MM_FIX_1_847759065,MM_FIX_1_082392200, +- MM_FIX_1_414213562,MM_DESCALE_RND) + : "%"REG_d + ); + } +@@ -1980,10 +1974,10 @@ + "movd (%%"REG_S",%%"REG_a",2), %%mm3 \n\t" //5 + "paddw %%mm4, %%mm1 \n\t" + +- "movq %%mm5, %3 \n\t" //t7 ++ "movq %%mm5, 0*8+%3 \n\t" //t7 + "punpcklbw %%mm7, %%mm3 \n\t" + +- "movq %%mm6, %4 \n\t" //t6 ++ "movq %%mm6, 1*8+%3 \n\t" //t6 + "movq %%mm2, %%mm4 \n\t" + + "movd (%%"REG_S"), %%mm5 \n\t" //3 +@@ -2029,7 +2023,7 @@ + "psubw %%mm1, %%mm5 \n\t" //d1 + "movq %%mm0, %%mm6 \n\t" + +- "movq %4, %%mm1 \n\t" ++ "movq 1*8+%3, %%mm1 \n\t" + "punpcklwd %%mm5, %%mm0 \n\t" + + "punpckhwd %%mm5, %%mm6 \n\t" +@@ -2053,7 +2047,7 @@ + "movq %%mm7, "DCTSIZE_S"*3*2(%%"REG_D") \n\t" + "psllw $2, %%mm3 \n\t" //t10 + +- "movq %3, %%mm2 \n\t" ++ "movq 0*8+%3, %%mm2 \n\t" + "psllw $2, %%mm4 \n\t" //t11 + + "pmulhw "MANGLE(MM_FIX_0_707106781)", %%mm4 \n\t" //z3 +@@ -2116,9 +2110,8 @@ + "dec %%"REG_c" \n\t" + "jnz 6b \n\t" + +- : "+S"(pixels), "+D"(data), "+c"(cnt), "=o"(temps), "=o"(temps[1]) ++ : "+S"(pixels), "+D"(data), "+c"(cnt), "=o"(temps) + : "a"(line_size) +- NAMED_CONSTRAINTS_ADD(ff_MM_FIX_0_707106781,ff_MM_FIX_0_541196100,MM_FIX_0_382683433,MM_FIX_1_306562965) + : "%"REG_d); + } + diff --git a/libre/parabolaweb-utils/PKGBUILD b/libre/parabolaweb-utils/PKGBUILD index cd81c83de..25cfeb421 100644 --- a/libre/parabolaweb-utils/PKGBUILD +++ b/libre/parabolaweb-utils/PKGBUILD @@ -1,8 +1,8 @@ # Maintainer: Luke Shumaker <lukeshu@sbcglobal.net> pkgname=(parabolaweb-utils parabolaweb-dev) -pkgver=20140117 -pkgdesc="Utilities for managing the parabolaweb website application" +pkgver=20140616 +pkgdesc="Utilities for managing the ParabolaWeb website application" url="https://projects.parabolagnulinux.org/packages/parabolaweb-utils.git/" license=('GPL2') @@ -10,7 +10,7 @@ license=('GPL2') # Bump pkgrel instead of pkgver if updating this is the only change _parabolaweb_commit=724f8c309c97aa9af7f963687342e8f37e682204 -pkgrel=2 +pkgrel=1 epoch=1 arch=('any') @@ -18,7 +18,7 @@ source=( "https://projects.parabolagnulinux.org/packages/$pkgname.git/snapshot/$pkgname-$pkgver.tar.bz2" "requirements_prod-${_parabolaweb_commit}.txt::https://projects.parabolagnulinux.org/parabolaweb.git/plain/requirements_prod.txt?id=${_parabolaweb_commit}" ) -md5sums=('4543e360c0f5ecbfa3a4a51b2bd9131d' +md5sums=('a3a5c128161a2560368281700bd2c4f7' '8bf17af4e66f552864bfdc0fd1d472f1') build() { @@ -35,6 +35,6 @@ package_parabolaweb-utils() { package_parabolaweb-dev() { cd "$srcdir/$pkgbase-$pkgver" - pkgdesc="Depends on packages needed to develop parabolaweb" + pkgdesc="Depends on packages needed to develop ParabolaWeb" depends=($(sed -r -e 's/\s*#.*//' depends_make.txt)) } diff --git a/libre/paxd-libre/PKGBUILD b/libre/paxd-libre/PKGBUILD index f4f9cda1f..9d41246ca 100644 --- a/libre/paxd-libre/PKGBUILD +++ b/libre/paxd-libre/PKGBUILD @@ -4,7 +4,7 @@ _pkgname=paxd pkgname=paxd-libre -pkgver=1.0.1.0 +pkgver=1.1 pkgrel=1 pkgdesc='PaX exception daemon (a libre fork of paxd)' arch=(i686 x86_64) |