]> git.pld-linux.org Git - packages/abiword.git/commitdiff
- added parallel patch (fixes parallel build with introspection) auto/th/abiword-3.0.1-8
authorJakub Bogusz <qboosh@pld-linux.org>
Mon, 16 May 2016 19:55:59 +0000 (21:55 +0200)
committerJakub Bogusz <qboosh@pld-linux.org>
Mon, 16 May 2016 19:55:59 +0000 (21:55 +0200)
- added tidy patch (adjusts libtidy headers path)
- added asio patch (use boost::asio instead of standalone, as boost is required anyway)
- updated dependencies
- release 8

abiword-asio.patch [new file with mode: 0644]
abiword-parallel.patch [new file with mode: 0644]
abiword-tidy.patch [new file with mode: 0644]
abiword.spec

diff --git a/abiword-asio.patch b/abiword-asio.patch
new file mode 100644 (file)
index 0000000..992daeb
--- /dev/null
@@ -0,0 +1,1090 @@
+--- abiword-3.0.1/plugins/collab/backends/service/xp/AsioRealmProtocol.h.orig  2012-05-25 18:12:56.000000000 +0200
++++ abiword-3.0.1/plugins/collab/backends/service/xp/AsioRealmProtocol.h       2016-05-15 18:45:59.357036926 +0200
+@@ -8,48 +8,48 @@ namespace realm {
+ namespace protocolv1 {
+       template <typename WriteHandler>
+-      static void send(const RoutingPacket& p, asio::ip::tcp::socket& socket, WriteHandler handler) {
+-              std::vector<asio::const_buffer> bufs(4);
+-              bufs.push_back(asio::buffer(&p.type(), 1));
+-              bufs.push_back(asio::buffer(&p.getPayloadSize(), 4)); // FIXME: not Big Endian safe!
+-              bufs.push_back(asio::buffer(&p.getAddressCount(), 1));
+-              bufs.push_back(asio::buffer(&(p.getConnectionIds()[0]), p.getConnectionIds().size()));
+-              bufs.push_back(asio::buffer(*p.getMessage()));
+-              asio::async_write(socket, bufs, handler);
++      static void send(const RoutingPacket& p, boost::asio::ip::tcp::socket& socket, WriteHandler handler) {
++              std::vector<boost::asio::const_buffer> bufs(4);
++              bufs.push_back(boost::asio::buffer(&p.type(), 1));
++              bufs.push_back(boost::asio::buffer(&p.getPayloadSize(), 4)); // FIXME: not Big Endian safe!
++              bufs.push_back(boost::asio::buffer(&p.getAddressCount(), 1));
++              bufs.push_back(boost::asio::buffer(&(p.getConnectionIds()[0]), p.getConnectionIds().size()));
++              bufs.push_back(boost::asio::buffer(*p.getMessage()));
++              boost::asio::async_write(socket, bufs, handler);
+       }
+       template <typename WriteHandler>
+-      static void send(const DeliverPacket& p, asio::ip::tcp::socket& socket, WriteHandler handler) {
+-              std::vector<asio::const_buffer> bufs(4);
+-              bufs.push_back(asio::buffer(&p.type(), 1));
+-              bufs.push_back(asio::buffer(&p.getPayloadSize(), 4)); // FIXME: not Big Endian safe!
+-              bufs.push_back(asio::buffer(&p.getConnectionId(), 1));
+-              bufs.push_back(asio::buffer(*p.getMessage()));
+-              asio::async_write(socket, bufs, handler);
++      static void send(const DeliverPacket& p, boost::asio::ip::tcp::socket& socket, WriteHandler handler) {
++              std::vector<boost::asio::const_buffer> bufs(4);
++              bufs.push_back(boost::asio::buffer(&p.type(), 1));
++              bufs.push_back(boost::asio::buffer(&p.getPayloadSize(), 4)); // FIXME: not Big Endian safe!
++              bufs.push_back(boost::asio::buffer(&p.getConnectionId(), 1));
++              bufs.push_back(boost::asio::buffer(*p.getMessage()));
++              boost::asio::async_write(socket, bufs, handler);
+       }
+       template <typename WriteHandler>
+-      static void send(const UserJoinedPacket& p, asio::ip::tcp::socket& socket, WriteHandler handler) {
+-              std::vector<asio::const_buffer> bufs(4);
+-              bufs.push_back(asio::buffer(&p.type(), 1));
+-              bufs.push_back(asio::buffer(&p.getPayloadSize(), 4)); // FIXME: not Big Endian safe!
+-              bufs.push_back(asio::buffer(&p.getConnectionId(), 1));
+-              bufs.push_back(asio::buffer(&p.isMaster(), 1));
+-              bufs.push_back(asio::buffer(*p.getUserInfo()));
+-              asio::async_write(socket, bufs, handler);
++      static void send(const UserJoinedPacket& p, boost::asio::ip::tcp::socket& socket, WriteHandler handler) {
++              std::vector<boost::asio::const_buffer> bufs(4);
++              bufs.push_back(boost::asio::buffer(&p.type(), 1));
++              bufs.push_back(boost::asio::buffer(&p.getPayloadSize(), 4)); // FIXME: not Big Endian safe!
++              bufs.push_back(boost::asio::buffer(&p.getConnectionId(), 1));
++              bufs.push_back(boost::asio::buffer(&p.isMaster(), 1));
++              bufs.push_back(boost::asio::buffer(*p.getUserInfo()));
++              boost::asio::async_write(socket, bufs, handler);
+       }
+       template <typename WriteHandler>
+-      static void send(const UserLeftPacket& p, asio::ip::tcp::socket& socket, WriteHandler handler) {
+-              std::vector<asio::const_buffer> bufs(2);
+-              bufs.push_back(asio::buffer(&p.type(), 1));
+-              bufs.push_back(asio::buffer(&p.getConnectionId(), 1));
+-              asio::async_write(socket, bufs, handler);
++      static void send(const UserLeftPacket& p, boost::asio::ip::tcp::socket& socket, WriteHandler handler) {
++              std::vector<boost::asio::const_buffer> bufs(2);
++              bufs.push_back(boost::asio::buffer(&p.type(), 1));
++              bufs.push_back(boost::asio::buffer(&p.getConnectionId(), 1));
++              boost::asio::async_write(socket, bufs, handler);
+       }
+       template <typename WriteHandler>
+-      static void send(const SessionTakeOverPacket& p, asio::ip::tcp::socket& socket, WriteHandler handler) {
+-              asio::async_write(socket, asio::buffer(&p.type(), 1), handler);
++      static void send(const SessionTakeOverPacket& p, boost::asio::ip::tcp::socket& socket, WriteHandler handler) {
++              boost::asio::async_write(socket, boost::asio::buffer(&p.type(), 1), handler);
+       }
+ }
+--- abiword-3.0.1/plugins/collab/backends/service/xp/AsyncWorker.h.orig        2013-04-07 15:53:03.000000000 +0200
++++ abiword-3.0.1/plugins/collab/backends/service/xp/AsyncWorker.h     2016-05-15 18:57:50.997154789 +0200
+@@ -19,7 +19,7 @@
+ #ifndef __ASYNC_WORKER__
+ #define __ASYNC_WORKER__
+-#include <asio.hpp>
++#include <boost/thread.hpp>
+ #include <boost/bind.hpp>
+ #include <boost/function.hpp>
+ #include <boost/noncopyable.hpp>
+@@ -50,7 +50,7 @@ public:
+               m_synchronizer.reset(new Synchronizer(boost::bind(&AsyncWorker<T>::_signal,
+                                                                                               boost::enable_shared_from_this<AsyncWorker<T> >::shared_from_this())));
+               m_thread_ptr.reset(
+-                              new asio::thread(
++                              new boost::thread(
+                                       boost::bind(&AsyncWorker::_thread_func,
+                                                               AsyncWorker<T>::shared_from_this())
+                               )
+@@ -75,7 +75,7 @@ private:
+       boost::function<T ()>                                   m_async_func;
+       boost::function<void (T)>                               m_async_callback;
+       boost::shared_ptr<Synchronizer>                 m_synchronizer;
+-      boost::shared_ptr<asio::thread>                 m_thread_ptr;
++      boost::shared_ptr<boost::thread>                        m_thread_ptr;
+       T                                                                               m_func_result;
+ };
+--- abiword-3.0.1/plugins/collab/backends/service/xp/RealmConnection.cpp.orig  2013-07-05 03:51:21.000000000 +0200
++++ abiword-3.0.1/plugins/collab/backends/service/xp/RealmConnection.cpp       2016-05-15 19:03:12.877133249 +0200
+@@ -19,6 +19,7 @@
+ #include <boost/function.hpp>
+ #include <boost/bind.hpp>
+ #include <boost/lexical_cast.hpp>
++#include <boost/thread.hpp>
+ #include "ut_assert.h"
+ #include "ut_debugmsg.h"
+ #include "ServiceAccountHandler.h"
+@@ -68,7 +69,7 @@ bool RealmConnection::connect()
+                       // setup our local TLS tunnel to the realm
+                       m_tls_tunnel_ptr.reset(new tls_tunnel::ClientProxy(m_address, m_port, m_ca_file, false));
+                       m_tls_tunnel_ptr->setup();
+-                      asio::thread thread(boost::bind(&tls_tunnel::ClientProxy::run, m_tls_tunnel_ptr));
++                      boost::thread thread(boost::bind(&tls_tunnel::ClientProxy::run, m_tls_tunnel_ptr));
+                       // make sure we connect to the tunnel, and not directly to the realm
+                       address = m_tls_tunnel_ptr->local_address();
+@@ -76,13 +77,13 @@ bool RealmConnection::connect()
+               }
+               // connect!
+-              asio::ip::tcp::resolver::query query(address, boost::lexical_cast<std::string>(port));
+-              asio::ip::tcp::resolver resolver(m_io_service);
+-              asio::ip::tcp::resolver::iterator iterator(resolver.resolve(query));
++              boost::asio::ip::tcp::resolver::query query(address, boost::lexical_cast<std::string>(port));
++              boost::asio::ip::tcp::resolver resolver(m_io_service);
++              boost::asio::ip::tcp::resolver::iterator iterator(resolver.resolve(query));
+               bool connected = false;
+-              asio::error_code error_code;
+-              while (iterator != asio::ip::tcp::resolver::iterator())
++              boost::system::error_code error_code;
++              while (iterator != boost::asio::ip::tcp::resolver::iterator())
+               {
+                       try
+                       {
+@@ -90,7 +91,7 @@ bool RealmConnection::connect()
+                               connected = true;
+                               break;
+                       }
+-                      catch (asio::system_error se)
++                      catch (boost::system::system_error se)
+                       {
+                               error_code = se.code();
+                               try { m_socket.close(); } catch(...) {}
+@@ -99,7 +100,7 @@ bool RealmConnection::connect()
+               }
+               if (!connected)
+               {
+-                      UT_DEBUGMSG(("Error connecting to realm: %s", asio::system_error(error_code).what()));
++                      UT_DEBUGMSG(("Error connecting to realm: %s", boost::system::system_error(error_code).what()));
+                       return false;
+               }
+       }
+@@ -108,7 +109,7 @@ bool RealmConnection::connect()
+               UT_DEBUGMSG(("tls_tunnel exception connecting to realm: %s\n", e.message().c_str()));
+               return false;
+       }
+-      catch (asio::system_error& se)
++      catch (boost::system::system_error& se)
+       {
+               UT_DEBUGMSG(("Error connecting to realm: %s\n", se.what()));
+               return false;
+@@ -131,7 +132,7 @@ bool RealmConnection::connect()
+       // start reading realm messages
+       _receive();     
+       
+-      m_thread_ptr.reset(new asio::thread(boost::bind(&asio::io_service::run, &m_io_service)));
++      m_thread_ptr.reset(new boost::thread(boost::bind(&boost::asio::io_service::run, &m_io_service)));
+       return true;
+ }
+@@ -145,8 +146,8 @@ void RealmConnection::disconnect()
+       // the complete disconnect
+       if (m_socket.is_open())
+       {
+-              asio::error_code ac;
+-              m_socket.shutdown(asio::ip::tcp::socket::shutdown_both, ac);
++              boost::system::error_code ac;
++              m_socket.shutdown(boost::asio::ip::tcp::socket::shutdown_both, ac);
+               m_socket.close(ac);
+       }
+ }
+@@ -217,8 +218,8 @@ void RealmConnection::_disconnect()
+       
+       if (m_socket.is_open())
+       {
+-              asio::error_code ac;
+-              m_socket.shutdown(asio::ip::tcp::socket::shutdown_both, ac);
++              boost::system::error_code ac;
++              m_socket.shutdown(boost::asio::ip::tcp::socket::shutdown_both, ac);
+               m_socket.close(ac);
+       }
+       
+@@ -266,13 +267,13 @@ bool RealmConnection::_login()
+       {
+               // send the login credententials
+               // TODO: we should check the number of bytes written
+-              asio::write(m_socket, asio::buffer(header));
++              boost::asio::write(m_socket, boost::asio::buffer(header));
+               
+               // read the login response
+               // TODO: we should check the number of bytes read
+-              asio::read(m_socket, asio::buffer(&response[0], response.size()));
++              boost::asio::read(m_socket, boost::asio::buffer(&response[0], response.size()));
+       }
+-      catch (asio::system_error e)
++      catch (boost::system::system_error e)
+       {
+               UT_DEBUGMSG(("Error while writing/writing protocol header: %s\n", e.what()));
+               return false;
+@@ -315,7 +316,7 @@ UserJoinedPacketPtr RealmConnection::_re
+ {
+       // receive the packet type
+       std::string msg(1, '\0');
+-      asio::read(m_socket, asio::buffer(&msg[0], msg.size()));
++      boost::asio::read(m_socket, boost::asio::buffer(&msg[0], msg.size()));
+       rpv1::packet_type packet_type = static_cast<rpv1::packet_type>(msg[0]);
+       if (packet_type != rpv1::PACKET_USERJOINED)
+               return UserJoinedPacketPtr();
+@@ -326,17 +327,17 @@ UserJoinedPacketPtr RealmConnection::_re
+               uint8_t conn_id = 0;
+               uint8_t m = 0;
+-              boost::array<asio::mutable_buffer, 3> buf = {{
+-                      asio::buffer(&payload_size, sizeof(payload_size)),
+-                      asio::buffer(&conn_id, sizeof(conn_id)),
+-                      asio::buffer(&m, sizeof(m)) }};
+-              asio::read(m_socket, buf);
++              boost::array<boost::asio::mutable_buffer, 3> buf = {{
++                      boost::asio::buffer(&payload_size, sizeof(payload_size)),
++                      boost::asio::buffer(&conn_id, sizeof(conn_id)),
++                      boost::asio::buffer(&m, sizeof(m)) }};
++              boost::asio::read(m_socket, buf);
+               boost::shared_ptr<std::string> userinfo_ptr(new std::string(payload_size - 2, '\0'));
+-              asio::read(m_socket, asio::buffer(&(*userinfo_ptr)[0], userinfo_ptr->size()));
++              boost::asio::read(m_socket, boost::asio::buffer(&(*userinfo_ptr)[0], userinfo_ptr->size()));
+               return UserJoinedPacketPtr(new rpv1::UserJoinedPacket(conn_id, static_cast<bool>(m), userinfo_ptr));
+-      } catch (asio::system_error se) {
++      } catch (boost::system::system_error se) {
+               return UserJoinedPacketPtr(); 
+       }
+ }
+@@ -346,12 +347,12 @@ void RealmConnection::_receive()
+       UT_DEBUGMSG(("RealmConnection::_receive()\n"));
+       m_buf.clear();
+       boost::shared_ptr<std::string> msg_ptr(new std::string(1, '\0'));
+-      asio::async_read(m_socket, asio::buffer(&(*msg_ptr)[0], msg_ptr->size()),
++      boost::asio::async_read(m_socket, boost::asio::buffer(&(*msg_ptr)[0], msg_ptr->size()),
+               boost::bind(&RealmConnection::_message, shared_from_this(),
+-                      asio::placeholders::error, asio::placeholders::bytes_transferred, msg_ptr));
++                      boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, msg_ptr));
+ }
+-void RealmConnection::_message(const asio::error_code& e, std::size_t /*bytes_transferred*/, boost::shared_ptr<std::string> msg_ptr)
++void RealmConnection::_message(const boost::system::error_code& e, std::size_t /*bytes_transferred*/, boost::shared_ptr<std::string> msg_ptr)
+ {
+       UT_DEBUGMSG(("RealmConnection::_message()\n"));
+       if (e)
+@@ -390,15 +391,15 @@ void RealmConnection::_complete_packet(r
+                       UT_DEBUGMSG(("Need more data (%d bytes) for this packet...\n", bytes_needed));
+                       // read the needed number of bytes
+                       char* ptr = m_buf.prepare(bytes_needed);
+-                      asio::async_read(m_socket, asio::buffer(ptr, bytes_needed),
++                      boost::asio::async_read(m_socket, boost::asio::buffer(ptr, bytes_needed),
+                                                       boost::bind(&RealmConnection::_complete, shared_from_this(),
+-                                                              asio::placeholders::error, asio::placeholders::bytes_transferred, packet_ptr)
++                                                              boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, packet_ptr)
+                                                       );
+                       break;
+       }
+ }
+-void RealmConnection::_complete(const asio::error_code& e, std::size_t bytes_transferred, realm::protocolv1::PacketPtr packet_ptr)
++void RealmConnection::_complete(const boost::system::error_code& e, std::size_t bytes_transferred, realm::protocolv1::PacketPtr packet_ptr)
+ {
+       UT_DEBUGMSG(("RealmConnection::_complete()\n"));
+       if (e)
+--- abiword-3.0.1/plugins/collab/backends/service/xp/RealmConnection.h.orig    2013-07-05 03:51:21.000000000 +0200
++++ abiword-3.0.1/plugins/collab/backends/service/xp/RealmConnection.h 2016-05-15 18:58:28.419089961 +0200
+@@ -21,7 +21,8 @@
+ #include <boost/shared_ptr.hpp>
+ #include <boost/enable_shared_from_this.hpp>
+-#include <asio.hpp>
++#include <boost/asio.hpp>
++#include <boost/thread.hpp>
+ #include <vector>
+ #include <string>
+ #include "ut_types.h"
+@@ -90,7 +91,7 @@ public:
+               { m_pDoc = pDoc; }
+       SynchronizedQueue<realm::protocolv1::PacketPtr>&                queue()
+               { return m_packet_queue; }
+-      asio::ip::tcp::socket&                          socket()
++      boost::asio::ip::tcp::socket&                           socket()
+               { return m_socket; }
+       void                                                            loadDocumentStart(AP_Dialog_GenericProgress* pDlg,
+@@ -113,21 +114,21 @@ private:
+       bool                                                            _login();
+       UserJoinedPacketPtr                                     _receiveUserJoinedPacket();
+       void                                                            _receive();
+-      void                                                            _message(const asio::error_code& e,
++      void                                                            _message(const boost::system::error_code& e,
+                                                                                               std::size_t bytes_transferred,
+                                                                                               boost::shared_ptr<std::string> msg_ptr);
+       void                                                            _complete_packet(realm::protocolv1::PacketPtr packet_ptr);
+-      void                                                            _complete(const asio::error_code& e, std::size_t bytes_transferred,
++      void                                                            _complete(const boost::system::error_code& e, std::size_t bytes_transferred,
+                                                                                               realm::protocolv1::PacketPtr packet_ptr);
+-      asio::io_service                                        m_io_service;
++      boost::asio::io_service                                 m_io_service;
+       std::string                                                     m_ca_file;
+       std::string                                                     m_address;
+       int                                                                     m_port;
+       int                                                                     m_tls;
+-      asio::ip::tcp::socket                           m_socket;
+-      boost::shared_ptr<asio::thread>         m_thread_ptr;
++      boost::asio::ip::tcp::socket                            m_socket;
++      boost::shared_ptr<boost::thread>                m_thread_ptr;
+       std::string                                                     m_cookie;
+       UT_uint64                                                       m_user_id; // only valid after login
+       UT_uint8                                                        m_connection_id; // only valid after login
+--- abiword-3.0.1/plugins/collab/backends/service/xp/RealmProtocol.h.orig      2012-05-25 18:12:56.000000000 +0200
++++ abiword-3.0.1/plugins/collab/backends/service/xp/RealmProtocol.h   2016-05-15 18:43:04.911353671 +0200
+@@ -9,7 +9,7 @@
+ #include <stdint.h>
+ #endif
+ #include <boost/shared_ptr.hpp>
+-#include <asio.hpp>
++#include <boost/asio.hpp>
+ namespace realm {
+@@ -29,7 +29,7 @@ namespace protocolv1 {
+ class Packet;
+ typedef boost::shared_ptr<Packet> PacketPtr;
+-typedef boost::shared_ptr<asio::streambuf> StreamPtr;
++typedef boost::shared_ptr<boost::asio::streambuf> StreamPtr;
+ // the packet type values must match up the corresponding body_size in
+ // RealmProtocol.cpp (ugly, but it's fast)!
+--- abiword-3.0.1/plugins/collab/backends/service/xp/ServiceAccountHandler.cpp.orig    2013-07-05 03:51:21.000000000 +0200
++++ abiword-3.0.1/plugins/collab/backends/service/xp/ServiceAccountHandler.cpp 2016-05-15 19:03:33.601538287 +0200
+@@ -437,7 +437,7 @@ bool ServiceAccountHandler::send(const P
+       return true;
+ }
+-void ServiceAccountHandler::_write_handler(const asio::error_code& e, std::size_t /*bytes_transferred*/,
++void ServiceAccountHandler::_write_handler(const boost::system::error_code& e, std::size_t /*bytes_transferred*/,
+                                                                                       boost::shared_ptr<const RealmBuddy> /*recipient*/, boost::shared_ptr<realm::protocolv1::Packet> packet)
+ {
+       if (e)
+@@ -453,7 +453,7 @@ void ServiceAccountHandler::_write_handl
+       }
+ }                                                                                
+-void ServiceAccountHandler::_write_result(const asio::error_code& e, std::size_t /*bytes_transferred*/,
++void ServiceAccountHandler::_write_result(const boost::system::error_code& e, std::size_t /*bytes_transferred*/,
+                                                                                                       ConnectionPtr /*connection*/, boost::shared_ptr<realm::protocolv1::Packet> packet)
+ {
+       if (e)
+@@ -1709,7 +1709,7 @@ void ServiceAccountHandler::_handleMessa
+                                                       boost::shared_ptr<rpv1::SessionTakeOverPacket> stop(new rpv1::SessionTakeOverPacket());
+                                                       rpv1::send(*stop, connection->socket(), 
+                                                                       boost::bind(&ServiceAccountHandler::_write_result, this,
+-                                                                              asio::placeholders::error, asio::placeholders::bytes_transferred, connection,
++                                                                              boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, connection,
+                                                                                       boost::static_pointer_cast<rpv1::Packet>(stop)) 
+                                                               );
+--- abiword-3.0.1/plugins/collab/backends/service/xp/ServiceAccountHandler.h.orig      2013-04-07 15:53:03.000000000 +0200
++++ abiword-3.0.1/plugins/collab/backends/service/xp/ServiceAccountHandler.h   2016-05-15 18:58:43.736548728 +0200
+@@ -149,14 +149,14 @@ private:
+       {
+               realm::protocolv1::send(*packet, recipient->connection()->socket(),
+                       boost::bind(&ServiceAccountHandler::_write_handler, this,
+-                                                      asio::placeholders::error, asio::placeholders::bytes_transferred, recipient,
++                                                      boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, recipient,
+                                                       boost::static_pointer_cast<rpv1::Packet>(packet)));
+       }
+-      void                                                                    _write_handler(const asio::error_code& e, std::size_t bytes_transferred,
++      void                                                                    _write_handler(const boost::system::error_code& e, std::size_t bytes_transferred,
+                                                                                                       boost::shared_ptr<const RealmBuddy> recipient, boost::shared_ptr<rpv1::Packet> packet);
+-      void                                                                    _write_result(const asio::error_code& e, std::size_t bytes_transferred,
++      void                                                                    _write_result(const boost::system::error_code& e, std::size_t bytes_transferred,
+                                                                                                       ConnectionPtr connection, boost::shared_ptr<rpv1::Packet> packet);
+       bool                                                                    _listDocuments(soa::function_call_ptr fc_ptr,
+--- abiword-3.0.1/plugins/collab/backends/service/xp/tls_tunnel.cpp.orig       2014-11-04 02:12:14.000000000 +0100
++++ abiword-3.0.1/plugins/collab/backends/service/xp/tls_tunnel.cpp    2016-05-15 19:12:18.015323548 +0200
+@@ -45,7 +45,7 @@ namespace tls_tunnel {
+ #define TLS_VERIFY_HOSTNAME_ERROR "Error verifying hostname"
+ #define TLS_CANT_GET_PEER_CERT_ERROR "Failed to get peer certificate"
+-typedef boost::shared_ptr<asio::ip::tcp::socket> socket_ptr_t;
++typedef boost::shared_ptr<boost::asio::ip::tcp::socket> socket_ptr_t;
+ typedef boost::shared_ptr<gnutls_session_t> session_ptr_t;
+ typedef boost::shared_ptr< std::vector<char> > buffer_ptr_t;
+@@ -79,12 +79,12 @@ public:
+       }
+ };
+-asio::io_service& Transport::io_service() {
++boost::asio::io_service& Transport::io_service() {
+       return io_service_;
+ }
+ void Transport::run() {
+-      asio::error_code ec;
++      boost::system::error_code ec;
+       io_service_.run(ec);
+ }
+@@ -112,17 +112,17 @@ ClientTransport::ClientTransport(const s
+ }
+ void ClientTransport::connect() {
+-      asio::ip::tcp::resolver resolver(io_service());
+-      asio::ip::tcp::resolver::query query(host_, boost::lexical_cast<std::string>(port_));
+-      asio::ip::tcp::resolver::iterator iterator(resolver.resolve(query));
+-      socket_ptr_t socket_ptr(new asio::ip::tcp::socket(io_service()));
++      boost::asio::ip::tcp::resolver resolver(io_service());
++      boost::asio::ip::tcp::resolver::query query(host_, boost::lexical_cast<std::string>(port_));
++      boost::asio::ip::tcp::resolver::iterator iterator(resolver.resolve(query));
++      socket_ptr_t socket_ptr(new boost::asio::ip::tcp::socket(io_service()));
+-      if (iterator == asio::ip::tcp::resolver::iterator())
+-              throw asio::system_error(asio::error::host_not_found);
++      if (iterator == boost::asio::ip::tcp::resolver::iterator())
++              throw boost::system::system_error(boost::asio::error::host_not_found);
+       bool connected = false;
+-      asio::error_code error_code;
+-      while (iterator != asio::ip::tcp::resolver::iterator())
++      boost::system::error_code error_code;
++      while (iterator != boost::asio::ip::tcp::resolver::iterator())
+       {
+               try
+               {
+@@ -130,7 +130,7 @@ void ClientTransport::connect() {
+                       connected = true;
+                       break;
+               }
+-              catch (asio::system_error se)
++              catch (boost::system::system_error se)
+               {
+                       error_code = se.code();
+                       try { socket_ptr->close(); } catch(...) {}
+@@ -138,24 +138,24 @@ void ClientTransport::connect() {
+               iterator++;
+       }
+       if (!connected)
+-              throw asio::system_error(error_code); // throw the last error on failure
++              throw boost::system::system_error(error_code); // throw the last error on failure
+       on_connect_(shared_from_this(), socket_ptr);
+ }
+ ServerTransport::ServerTransport(const std::string& ip, unsigned short port, 
+               boost::function<void (transport_ptr_t, socket_ptr_t)> on_connect) 
+       : Transport(),
+-      acceptor_(io_service(), asio::ip::tcp::endpoint(asio::ip::address_v4::from_string(ip), port)),
++      acceptor_(io_service(), boost::asio::ip::tcp::endpoint(boost::asio::ip::address_v4::from_string(ip), port)),
+       on_connect_(on_connect)
+ {
+ }
+ void ServerTransport::accept() {
+-      socket_ptr_t socket_ptr(new asio::ip::tcp::socket(io_service()));
+-      acceptor_.async_accept(*socket_ptr, boost::bind(&ServerTransport::on_accept, this, asio::placeholders::error, socket_ptr));
++      socket_ptr_t socket_ptr(new boost::asio::ip::tcp::socket(io_service()));
++      acceptor_.async_accept(*socket_ptr, boost::bind(&ServerTransport::on_accept, this, boost::asio::placeholders::error, socket_ptr));
+ }
+-void ServerTransport::on_accept(const asio::error_code& error, socket_ptr_t socket_ptr) {
++void ServerTransport::on_accept(const boost::system::error_code& error, socket_ptr_t socket_ptr) {
+       if (error) {
+               return;
+       }
+@@ -164,19 +164,19 @@ void ServerTransport::on_accept(const as
+ }
+ static ssize_t read(gnutls_transport_ptr_t ptr, void* buffer, size_t size) {
+-      asio::ip::tcp::socket* socket = reinterpret_cast<asio::ip::tcp::socket*>(ptr);
++      boost::asio::ip::tcp::socket* socket = reinterpret_cast<boost::asio::ip::tcp::socket*>(ptr);
+       try {
+-              return asio::read(*socket, asio::buffer(buffer, size));
+-      } catch (asio::system_error& /*se*/) {
++              return boost::asio::read(*socket, boost::asio::buffer(buffer, size));
++      } catch (boost::system::system_error& /*se*/) {
+               return -1;
+       }
+ }
+ static ssize_t write(gnutls_transport_ptr_t ptr, const void* buffer, size_t size) {
+-      asio::ip::tcp::socket* socket = reinterpret_cast<asio::ip::tcp::socket*>(ptr);
++      boost::asio::ip::tcp::socket* socket = reinterpret_cast<boost::asio::ip::tcp::socket*>(ptr);
+       try {
+-              return asio::write(*socket, asio::buffer(buffer, size));
+-      } catch (asio::system_error& /*se*/) {
++              return boost::asio::write(*socket, boost::asio::buffer(buffer, size));
++      } catch (boost::system::system_error& /*se*/) {
+               return -1;
+       }
+ }
+@@ -223,7 +223,7 @@ Proxy::Proxy(const std::string& ca_file)
+               throw Exception(TLS_SETUP_ERROR);
+ }
+-void Proxy::on_local_read(const asio::error_code& error, std::size_t bytes_transferred,
++void Proxy::on_local_read(const boost::system::error_code& error, std::size_t bytes_transferred,
+               transport_ptr_t transport_ptr, session_ptr_t session_ptr, socket_ptr_t local_socket_ptr, 
+               buffer_ptr_t local_buffer_ptr, socket_ptr_t remote_socket_ptr)
+ {
+@@ -240,8 +240,8 @@ void Proxy::on_local_read(const asio::er
+       }
+       local_socket_ptr->async_receive(
+-                      asio::buffer(&(*local_buffer_ptr)[0], local_buffer_ptr->size()),
+-                      boost::bind(&Proxy::on_local_read, this, asio::placeholders::error, asio::placeholders::bytes_transferred,
++                      boost::asio::buffer(&(*local_buffer_ptr)[0], local_buffer_ptr->size()),
++                      boost::bind(&Proxy::on_local_read, this, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred,
+                                       transport_ptr, session_ptr, local_socket_ptr, local_buffer_ptr, remote_socket_ptr)
+               );
+ }
+@@ -250,7 +250,7 @@ void Proxy::tunnel(transport_ptr_t trans
+               socket_ptr_t local_socket_ptr, socket_ptr_t remote_socket_ptr)
+ {
+       buffer_ptr_t local_buffer_ptr(new std::vector<char>(LOCAL_BUFFER_SIZE));
+-      t = new asio::thread(boost::bind(&Proxy::tunnel_, this, transport_ptr,
++      t = new boost::thread(boost::bind(&Proxy::tunnel_, this, transport_ptr,
+                                                       session_ptr, local_socket_ptr, local_buffer_ptr, remote_socket_ptr));
+ }
+@@ -262,14 +262,14 @@ void Proxy::disconnect_(transport_ptr_t
+               gnutls_bye(*session_ptr, GNUTLS_SHUT_RDWR);
+       // shutdown the sockets belonging to this tunnel
+-      asio::error_code ec;
++      boost::system::error_code ec;
+       if (local_socket_ptr && local_socket_ptr->is_open()) {
+-              local_socket_ptr->shutdown(asio::ip::tcp::socket::shutdown_both, ec);
++              local_socket_ptr->shutdown(boost::asio::ip::tcp::socket::shutdown_both, ec);
+               local_socket_ptr->close(ec);
+       }
+       if (remote_socket_ptr && remote_socket_ptr->is_open()) {        
+-              remote_socket_ptr->shutdown(asio::ip::tcp::socket::shutdown_both, ec);
++              remote_socket_ptr->shutdown(boost::asio::ip::tcp::socket::shutdown_both, ec);
+               remote_socket_ptr->close(ec);
+       }
+ }
+@@ -278,8 +278,8 @@ void Proxy::tunnel_(transport_ptr_t tran
+               buffer_ptr_t local_buffer_ptr, socket_ptr_t remote_socket_ptr)
+ {
+       local_socket_ptr->async_receive(
+-                      asio::buffer(&(*local_buffer_ptr)[0], local_buffer_ptr->size()),
+-                      boost::bind(&Proxy::on_local_read, this, asio::placeholders::error, asio::placeholders::bytes_transferred, 
++                      boost::asio::buffer(&(*local_buffer_ptr)[0], local_buffer_ptr->size()),
++                      boost::bind(&Proxy::on_local_read, this, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, 
+                                       transport_ptr, session_ptr, local_socket_ptr, local_buffer_ptr, remote_socket_ptr)
+               );
+       
+@@ -297,8 +297,8 @@ void Proxy::tunnel_(transport_ptr_t tran
+               
+               // forward the data over the local connection
+               try {
+-                      asio::write(*local_socket_ptr, asio::buffer(&tunnel_buffer[0], bytes_transferred));
+-              } catch (asio::system_error& /*se*/) {
++                      boost::asio::write(*local_socket_ptr, boost::asio::buffer(&tunnel_buffer[0], bytes_transferred));
++              } catch (boost::system::system_error& /*se*/) {
+                       break;
+               }
+       }
+@@ -333,15 +333,15 @@ void ClientProxy::setup()
+               for (unsigned short port = MIN_CLIENT_PORT; port <= MAX_CLIENT_PORT; port++) {
+                       try {
+                               acceptor_ptr.reset(
+-                                              new asio::ip::tcp::acceptor(transport_ptr_->io_service(),
+-                                                                                                              asio::ip::tcp::endpoint(asio::ip::address_v4::from_string(local_address_),
++                                              new boost::asio::ip::tcp::acceptor(transport_ptr_->io_service(),
++                                                                                                              boost::asio::ip::tcp::endpoint(boost::asio::ip::address_v4::from_string(local_address_),
+                                                                                                               port), false));
+                               local_port_ = port;
+                               break;
+-                      } catch (asio::system_error& se) {
++                      } catch (boost::system::system_error& se) {
+                               if (port == MAX_CLIENT_PORT)
+                                       throw se;
+-                              if (se.code() != asio::error::address_in_use)
++                              if (se.code() != boost::asio::error::address_in_use)
+                                       throw se;
+                               // this port is already in use, try another one
+                               continue;
+@@ -350,7 +350,7 @@ void ClientProxy::setup()
+               // connect the transport
+               boost::static_pointer_cast<ClientTransport>(transport_ptr_)->connect();
+-      } catch (asio::system_error& se) {
++      } catch (boost::system::system_error& se) {
+               throw Exception(std::string(TRANSPORT_ERROR) + se.what());
+       }       
+ }
+@@ -378,12 +378,12 @@ void ClientProxy::on_transport_connect(t
+       }
+       
+       // start accepting connections on the local socket
+-      socket_ptr_t local_socket_ptr(new asio::ip::tcp::socket(transport_ptr->io_service()));
++      socket_ptr_t local_socket_ptr(new boost::asio::ip::tcp::socket(transport_ptr->io_service()));
+       acceptor_ptr->async_accept(*local_socket_ptr, boost::bind(&ClientProxy::on_client_connect, this, 
+-                      asio::placeholders::error, transport_ptr, session_ptr, local_socket_ptr, remote_socket_ptr));
++                      boost::asio::placeholders::error, transport_ptr, session_ptr, local_socket_ptr, remote_socket_ptr));
+ }
+-void ClientProxy::on_client_connect(const asio::error_code& error, 
++void ClientProxy::on_client_connect(const boost::system::error_code& error, 
+               transport_ptr_t transport_ptr, session_ptr_t session_ptr,
+               socket_ptr_t local_socket_ptr, socket_ptr_t remote_socket_ptr) {
+       if (error) {
+@@ -456,7 +456,7 @@ try
+               throw Exception(TLS_SETUP_ERROR);
+       gnutls_certificate_set_dh_params(x509cred, dh_params);
+-} catch (asio::system_error& se) {
++} catch (boost::system::system_error& se) {
+       throw Exception(std::string(TRANSPORT_ERROR) + se.what());
+ }
+@@ -477,14 +477,14 @@ void ServerProxy::on_transport_connect(t
+               return;
+       }
+       
+-      socket_ptr_t local_socket_ptr(new asio::ip::tcp::socket(transport_ptr->io_service()));
++      socket_ptr_t local_socket_ptr(new boost::asio::ip::tcp::socket(transport_ptr->io_service()));
+       try {
+-              asio::ip::tcp::resolver resolver(transport_ptr->io_service());
+-              asio::ip::tcp::resolver::query query("127.0.0.1", boost::lexical_cast<std::string>(local_port_));
+-              asio::ip::tcp::resolver::iterator iterator(resolver.resolve(query));
++              boost::asio::ip::tcp::resolver resolver(transport_ptr->io_service());
++              boost::asio::ip::tcp::resolver::query query("127.0.0.1", boost::lexical_cast<std::string>(local_port_));
++              boost::asio::ip::tcp::resolver::iterator iterator(resolver.resolve(query));
+               bool connected = false;
+-              while (iterator != asio::ip::tcp::resolver::iterator())
++              while (iterator != boost::asio::ip::tcp::resolver::iterator())
+               {
+                       try
+                       {
+@@ -492,7 +492,7 @@ void ServerProxy::on_transport_connect(t
+                               connected = true;
+                               break;
+                       }
+-                      catch (asio::system_error /*se*/)
++                      catch (boost::system::system_error /*se*/)
+                       {
+                               // make sure we close the socket after a failed attempt, as it
+                               // may have been opened by the connect() call.
+@@ -505,7 +505,7 @@ void ServerProxy::on_transport_connect(t
+                       disconnect_(transport_ptr, session_ptr, local_socket_ptr, remote_socket_ptr);
+                       return;
+               }
+-      } catch (asio::system_error& /*se*/) {
++      } catch (boost::system::system_error& /*se*/) {
+               disconnect_(transport_ptr, session_ptr, local_socket_ptr, remote_socket_ptr);
+               return;
+       }
+--- abiword-3.0.1/plugins/collab/backends/service/xp/tls_tunnel.h.orig 2014-11-04 02:12:14.000000000 +0100
++++ abiword-3.0.1/plugins/collab/backends/service/xp/tls_tunnel.h      2016-05-15 18:59:24.148638527 +0200
+@@ -33,7 +33,8 @@
+ #include <boost/function.hpp>
+ #include <boost/lexical_cast.hpp>
+ #include <boost/enable_shared_from_this.hpp>
+-#include <asio.hpp>
++#include <boost/asio.hpp>
++#include <boost/thread.hpp>
+ #include <string>
+ #include <vector>
+ #ifdef _MSC_VER
+@@ -45,7 +46,7 @@ typedef int pid_t;
+ namespace tls_tunnel {
+-typedef boost::shared_ptr<asio::ip::tcp::socket> socket_ptr_t;
++typedef boost::shared_ptr<boost::asio::ip::tcp::socket> socket_ptr_t;
+ typedef boost::shared_ptr<gnutls_session_t> session_ptr_t;
+ typedef boost::shared_ptr< std::vector<char> > buffer_ptr_t;
+@@ -59,7 +60,7 @@ private:
+ class Transport : public boost::enable_shared_from_this<Transport> {
+ public:
+-      asio::io_service& io_service();
++      boost::asio::io_service& io_service();
+       void run();
+       void stop();
+@@ -68,8 +69,8 @@ protected:
+       virtual ~Transport();
+ private:
+-      asio::io_service io_service_;
+-      asio::io_service::work work_;
++      boost::asio::io_service io_service_;
++      boost::asio::io_service::work work_;
+ };
+ typedef boost::shared_ptr<Transport> transport_ptr_t;
+@@ -92,9 +93,9 @@ public:
+                       boost::function<void (transport_ptr_t, socket_ptr_t)> on_connect);
+       void accept();
+ private:
+-      void on_accept(const asio::error_code& error, socket_ptr_t socket_ptr);
++      void on_accept(const boost::system::error_code& error, socket_ptr_t socket_ptr);
+-      asio::ip::tcp::acceptor acceptor_;
++      boost::asio::ip::tcp::acceptor acceptor_;
+       boost::function<void (transport_ptr_t, socket_ptr_t)> on_connect_;
+ };
+@@ -110,7 +111,7 @@ public:
+ protected:
+       Proxy(const std::string& ca_file);
+-      void on_local_read(const asio::error_code& error, std::size_t bytes_transferred,
++      void on_local_read(const boost::system::error_code& error, std::size_t bytes_transferred,
+                       transport_ptr_t transport_ptr, session_ptr_t session_ptr, socket_ptr_t local_socket_ptr,
+                       buffer_ptr_t local_buffer_ptr, socket_ptr_t remote_socket_ptr);
+       void tunnel(transport_ptr_t transport_ptr, session_ptr_t session_ptr,
+@@ -127,7 +128,7 @@ private:
+                       socket_ptr_t local_socket_ptr, buffer_ptr_t local_buffer_ptr,
+                       socket_ptr_t remote_socket);
+-      asio::thread* t;
++      boost::thread* t;
+ };
+ // FIXME: this clientproxy can only handle 1 SSL connection at the same time
+@@ -144,7 +145,7 @@ public:
+ private:
+       void on_transport_connect(transport_ptr_t transport_ptr, socket_ptr_t remote_socket_ptr);
+-      void on_client_connect(const asio::error_code& error, transport_ptr_t transport_ptr,
++      void on_client_connect(const boost::system::error_code& error, transport_ptr_t transport_ptr,
+                       session_ptr_t session_ptr, socket_ptr_t local_socket_ptr, socket_ptr_t remote_socket_ptr);
+       session_ptr_t setup_tls_session(socket_ptr_t remote_socket_ptr);
+@@ -152,7 +153,7 @@ private:
+       unsigned short local_port_;
+       std::string connect_address_;
+       unsigned short connect_port_;
+-      boost::shared_ptr<asio::ip::tcp::acceptor> acceptor_ptr;
++      boost::shared_ptr<boost::asio::ip::tcp::acceptor> acceptor_ptr;
+       bool check_hostname_;
+ };
+--- abiword-3.0.1/plugin-configure.m4.orig     2014-12-23 06:13:14.000000000 +0100
++++ abiword-3.0.1/plugin-configure.m4  2016-05-15 19:15:04.470598705 +0200
+@@ -565,7 +565,7 @@
+       enable_collab_backend_tcp=$enableval
+       if test "$enable_collab_backend_tcp" != "no"; then
+               AC_LANG_PUSH(C++)
+-              AC_CHECK_HEADERS([asio.hpp], [], 
++              AC_CHECK_HEADERS([boost/asio.hpp], [], 
+               [
+                       AC_MSG_ERROR([collab plugin: asio is required for the collab plugin TCP backend, see http://think-async.com/])
+               ])
+@@ -573,7 +573,7 @@
+       fi
+ ], [
+       AC_LANG_PUSH(C++)
+-      AC_CHECK_HEADERS([asio.hpp], 
++      AC_CHECK_HEADERS([boost/asio.hpp], 
+       [
+               enable_collab_backend_tcp="yes"
+       ])
+@@ -604,7 +604,7 @@
+       enable_collab_backend_service=$enableval
+       if test "$enable_collab_backend_service" != "no"; then
+               AC_LANG_PUSH(C++)
+-              AC_CHECK_HEADERS([asio.hpp], [], 
++              AC_CHECK_HEADERS([boost/asio.hpp], [], 
+               [
+                       AC_MSG_ERROR([collab plugin: asio is required for the the abicollab.net backend, see http://think-async.com/])
+               ])
+@@ -612,7 +612,7 @@
+       fi
+ ], [
+       AC_LANG_PUSH(C++)
+-      AC_CHECK_HEADERS([asio.hpp],
++      AC_CHECK_HEADERS([boost/asio.hpp],
+       [
+               enable_collab_backend_service="yes"
+       ])
+--- abiword-3.0.1/plugins/collab/backends/tcp/xp/IOServerHandler.h.orig        2013-07-05 03:51:21.000000000 +0200
++++ abiword-3.0.1/plugins/collab/backends/tcp/xp/IOServerHandler.h     2016-05-16 18:14:49.934309134 +0200
+@@ -23,7 +23,7 @@
+ #include <boost/bind.hpp>
+ #include <boost/function.hpp>
+-#include <asio.hpp>
++#include <boost/asio.hpp>
+ #include <sync/xp/Synchronizer.h>
+ #include "Session.h"
+@@ -34,7 +34,7 @@ class IOServerHandler
+ {
+ public:
+       IOServerHandler(int port, boost::function<void (IOServerHandler*, boost::shared_ptr<Session>)> af,
+-                                      boost::function<void (boost::shared_ptr<Session>)> ef, asio::io_service& io_service_)
++                                      boost::function<void (boost::shared_ptr<Session>)> ef, boost::asio::io_service& io_service_)
+       :       accept_synchronizer(boost::bind(&IOServerHandler::_signal, this)),
+               io_service(io_service_),
+               m_pAcceptor(NULL),
+@@ -43,7 +43,7 @@ public:
+               m_ef(ef)
+       {
+               UT_DEBUGMSG(("IOServerHandler()\n"));
+-              m_pAcceptor = new asio::ip::tcp::acceptor(io_service, asio::ip::tcp::endpoint(asio::ip::tcp::v4(), port));
++              m_pAcceptor = new boost::asio::ip::tcp::acceptor(io_service, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), port));
+       }
+       virtual ~IOServerHandler()
+@@ -76,7 +76,7 @@ public:
+               session_ptr.reset(new Session(io_service, m_ef));
+               m_pAcceptor->async_accept(session_ptr->getSocket(),
+                       boost::bind(&IOServerHandler::handleAsyncAccept,
+-                              this, asio::placeholders::error));
++                              this, boost::asio::placeholders::error));
+       }
+ private:
+@@ -88,7 +88,7 @@ private:
+               m_af(this, session_ptr);
+       }
+-      void handleAsyncAccept(const asio::error_code& ec)
++      void handleAsyncAccept(const boost::system::error_code& ec)
+       {
+               UT_DEBUGMSG(("IOServerHandler::handleAsyncAccept()\n"));
+               if (ec)
+@@ -100,8 +100,8 @@ private:
+       }
+       Synchronizer                            accept_synchronizer;
+-      asio::io_service&                       io_service;
+-      asio::ip::tcp::acceptor*        m_pAcceptor;
++      boost::asio::io_service&                        io_service;
++      boost::asio::ip::tcp::acceptor* m_pAcceptor;
+       boost::shared_ptr<Session>      session_ptr;
+       boost::function<void (IOServerHandler*, boost::shared_ptr<Session>)> m_af;
+--- abiword-3.0.1/plugins/collab/backends/tcp/xp/Session.h.orig        2014-02-06 02:12:15.000000000 +0100
++++ abiword-3.0.1/plugins/collab/backends/tcp/xp/Session.h     2016-05-16 18:30:27.198273019 +0200
+@@ -35,7 +35,7 @@ class TCPAccountHandler;
+ class Session : public Synchronizer, public boost::noncopyable, public boost::enable_shared_from_this<Session>
+ {
+ public:
+-      Session(asio::io_service& io_service, boost::function<void (boost::shared_ptr<Session>)> ef)
++      Session(boost::asio::io_service& io_service, boost::function<void (boost::shared_ptr<Session>)> ef)
+               : Synchronizer(boost::bind(&Session::_signal, this)),
+               socket(io_service),
+               queue_protector(),
+@@ -43,13 +43,13 @@ public:
+       {
+       }
+-      void connect(asio::ip::tcp::resolver::iterator& iterator)
++      void connect(boost::asio::ip::tcp::resolver::iterator& iterator)
+       {
+               socket.connect(*iterator);
+       }
+       // TODO: don't expose this
+-      asio::ip::tcp::socket& getSocket()
++      boost::asio::ip::tcp::socket& getSocket()
+       {
+               return socket;
+       }
+@@ -94,9 +94,9 @@ public:
+       {
+               UT_DEBUGMSG(("Session::asyncReadHeader()\n"));
+               packet_data = 0; // just to be sure we'll never touch a datablock we might have read before
+-              asio::async_read(socket,
+-                      asio::buffer(&packet_size, 4),
+-                      boost::bind(&Session::asyncReadHeaderHandler, shared_from_this(), asio::placeholders::error, asio::placeholders::bytes_transferred));
++              boost::asio::async_read(socket,
++                      boost::asio::buffer(&packet_size, 4),
++                      boost::bind(&Session::asyncReadHeaderHandler, shared_from_this(), boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred));
+       }
+       void asyncWrite(int size, const char* data)
+@@ -115,9 +115,9 @@ public:
+                       packet_data_write = store_data;
+                       UT_DEBUGMSG(("sending datablock of length: %d\n", packet_size_write));
+-                      asio::async_write(socket,
+-                              asio::buffer(&packet_size_write, 4),
+-                              boost::bind(&Session::asyncWriteHeaderHandler, shared_from_this(), asio::placeholders::error));
++                      boost::asio::async_write(socket,
++                              boost::asio::buffer(&packet_size_write, 4),
++                              boost::bind(&Session::asyncWriteHeaderHandler, shared_from_this(), boost::asio::placeholders::error));
+               }
+       }
+@@ -134,12 +134,12 @@ public:
+               UT_DEBUGMSG(("Session::disconnect()\n"));
+               if (socket.is_open())
+               {
+-                      asio::error_code ecs;
+-                      socket.shutdown(asio::ip::tcp::socket::shutdown_both, ecs);
++                      boost::system::error_code ecs;
++                      socket.shutdown(boost::asio::ip::tcp::socket::shutdown_both, ecs);
+                       if (ecs) {
+                               UT_DEBUGMSG(("Error shutting down socket: %s\n", ecs.message().c_str()));
+                       }
+-                      asio::error_code ecc;
++                      boost::system::error_code ecc;
+                       socket.close(ecc);
+                       if (ecc) {
+                               UT_DEBUGMSG(("Error closing socket: %s\n", ecc.message().c_str()));
+@@ -156,7 +156,7 @@ private:
+               m_ef(shared_from_this());
+       }
+-      void asyncReadHeaderHandler(const asio::error_code& error,
++      void asyncReadHeaderHandler(const boost::system::error_code& error,
+               std::size_t bytes_transferred)
+       {
+               if (error)
+@@ -183,12 +183,12 @@ private:
+               UT_DEBUGMSG(("going to read datablock of length: %d\n", packet_size));
+               // now continue reading the packet data
+               packet_data = reinterpret_cast<char*>(g_malloc(packet_size));
+-              asio::async_read(socket,
+-                      asio::buffer(packet_data, packet_size),
+-                      boost::bind(&Session::asyncReadHandler, shared_from_this(), asio::placeholders::error, asio::placeholders::bytes_transferred));
++              boost::asio::async_read(socket,
++                      boost::asio::buffer(packet_data, packet_size),
++                      boost::bind(&Session::asyncReadHandler, shared_from_this(), boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred));
+       }
+-      void asyncReadHandler(const asio::error_code& error,
++      void asyncReadHandler(const boost::system::error_code& error,
+               std::size_t bytes_transferred)
+       {
+               if (error)
+@@ -210,7 +210,7 @@ private:
+               asyncReadHeader();
+       }
+-      void asyncWriteHeaderHandler(const asio::error_code& ec)
++      void asyncWriteHeaderHandler(const boost::system::error_code& ec)
+       {
+               UT_DEBUGMSG(("Session::asyncWriteHeaderHandler()\n"));
+               if (ec)
+@@ -221,12 +221,12 @@ private:
+               }
+               // write the packet body
+-              asio::async_write(socket,
+-                      asio::buffer(packet_data_write, packet_size_write),
+-                      boost::bind(&Session::asyncWriteHandler, shared_from_this(), asio::placeholders::error));
++              boost::asio::async_write(socket,
++                      boost::asio::buffer(packet_data_write, packet_size_write),
++                      boost::bind(&Session::asyncWriteHandler, shared_from_this(), boost::asio::placeholders::error));
+       }
+-      void asyncWriteHandler(const asio::error_code& ec)
++      void asyncWriteHandler(const boost::system::error_code& ec)
+       {
+               UT_DEBUGMSG(("Session::asyncWriteHandler()\n"));
+               FREEP(packet_data_write);
+@@ -247,13 +247,13 @@ private:
+                       UT_DEBUGMSG(("sending datablock of length: %d\n", packet_size_write));
+-                      asio::async_write(socket,
+-                              asio::buffer(&packet_size_write, 4),
+-                              boost::bind(&Session::asyncWriteHeaderHandler, shared_from_this(), asio::placeholders::error));
++                      boost::asio::async_write(socket,
++                              boost::asio::buffer(&packet_size_write, 4),
++                              boost::bind(&Session::asyncWriteHeaderHandler, shared_from_this(), boost::asio::placeholders::error));
+               }
+       }
+-      asio::ip::tcp::socket                                   socket;
++      boost::asio::ip::tcp::socket                                    socket;
+       abicollab::mutex                                                queue_protector;
+       std::deque< std::pair<int, char*> >             incoming;
+       std::deque< std::pair<int, char*> >             outgoing;
+--- abiword-3.0.1/plugins/collab/backends/tcp/xp/TCPAccountHandler.cpp.orig    2013-07-05 03:51:21.000000000 +0200
++++ abiword-3.0.1/plugins/collab/backends/tcp/xp/TCPAccountHandler.cpp 2016-05-16 18:39:44.224203554 +0200
+@@ -80,7 +80,7 @@ ConnectResult TCPAccountHandler::connect
+       UT_return_val_if_fail(!m_bConnected, CONNECT_ALREADY_CONNECTED);
+       UT_return_val_if_fail(!m_thread, CONNECT_INTERNAL_ERROR);
+       m_io_service.reset();
+-      m_thread = new asio::thread(boost::bind(&asio::io_service::run, &m_io_service));
++      m_thread = new boost::thread(boost::bind(&boost::asio::io_service::run, &m_io_service));
+       // set up the connection
+       if (getProperty("server") == "")
+@@ -97,7 +97,7 @@ ConnectResult TCPAccountHandler::connect
+                       m_bConnected = true; // todo: ask it to the acceptor
+                       pDelegator->run();
+               }
+-              catch (asio::system_error se)
++              catch (boost::system::system_error se)
+               {
+                       UT_DEBUGMSG(("Failed to start accepting connections: %s\n", se.what()));
+                       _teardownAndDestroyHandler();
+@@ -116,13 +116,13 @@ ConnectResult TCPAccountHandler::connect
+               try
+               {
+-                      asio::ip::tcp::resolver resolver(m_io_service);
+-                      asio::ip::tcp::resolver::query query(getProperty("server"), getProperty("port"));
+-                      asio::ip::tcp::resolver::iterator iterator(resolver.resolve(query));
++                      boost::asio::ip::tcp::resolver resolver(m_io_service);
++                      boost::asio::ip::tcp::resolver::query query(getProperty("server"), getProperty("port"));
++                      boost::asio::ip::tcp::resolver::iterator iterator(resolver.resolve(query));
+                       bool connected = false;
+                       boost::shared_ptr<Session> session_ptr(new Session(m_io_service, boost::bind(&TCPAccountHandler::handleEvent, this, _1)));
+-                      while (iterator != asio::ip::tcp::resolver::iterator())
++                      while (iterator != boost::asio::ip::tcp::resolver::iterator())
+                       {
+                               try
+                               {
+@@ -132,7 +132,7 @@ ConnectResult TCPAccountHandler::connect
+                                       connected = true;
+                                       break;
+                               }
+-                              catch (asio::system_error se)
++                              catch (boost::system::system_error se)
+                               {
+                                       UT_DEBUGMSG(("Connection attempt failed: %s\n", se.what()));
+                                       // make sure we close the socket after a failed attempt, as it
+@@ -158,7 +158,7 @@ ConnectResult TCPAccountHandler::connect
+                       addBuddy(pBuddy);
+                       m_clients.insert(std::pair<TCPBuddyPtr, boost::shared_ptr<Session> >(pBuddy, session_ptr));
+               }
+-              catch (asio::system_error se)
++              catch (boost::system::system_error se)
+               {
+                       UT_DEBUGMSG(("Failed to resolve %s:%d: %s\n", getProperty("server").c_str(), _getPort(getProperties()), se.what()));
+                       _teardownAndDestroyHandler();
+--- abiword-3.0.1/plugins/collab/backends/tcp/xp/TCPAccountHandler.h.orig      2013-04-07 15:53:03.000000000 +0200
++++ abiword-3.0.1/plugins/collab/backends/tcp/xp/TCPAccountHandler.h   2016-05-16 18:37:26.453612079 +0200
+@@ -20,6 +20,7 @@
+ #define __TCPACCOUNTHANDLER__
+ #include <boost/shared_ptr.hpp>
++#include <boost/thread.hpp>
+ #include <core/account/xp/AccountHandler.h>
+ #include "IOServerHandler.h"
+@@ -84,9 +85,9 @@ private:
+       virtual UT_sint32                                               _getPort(const PropertyMap& props);
+       void                                                                    _handleAccept(IOServerHandler* pHandler, boost::shared_ptr<Session> session);
+-      asio::io_service                                                m_io_service;
+-      asio::io_service::work                                  m_work;
+-      asio::thread*                                                   m_thread;
++      boost::asio::io_service                                         m_io_service;
++      boost::asio::io_service::work                                   m_work;
++      boost::thread*                                                  m_thread;
+       bool                                                                    m_bConnected; // TODO: drop this, ask the IO handler
+       IOServerHandler*                                                m_pDelegator;
diff --git a/abiword-parallel.patch b/abiword-parallel.patch
new file mode 100644 (file)
index 0000000..dd86e0f
--- /dev/null
@@ -0,0 +1,11 @@
+--- abiword-3.0.1/src/Makefile.am.orig 2016-05-15 17:46:25.779731460 +0200
++++ abiword-3.0.1/src/Makefile.am      2016-05-15 18:26:28.726615664 +0200
+@@ -168,7 +168,7 @@
+ INTROSPECTION_GIRS += Abi-@ABIWORD_SERIES@.gir
+-Abi_@ABIWORD_SERIES@.gir: $(INTROSPECTION_SCANNER) libabiword-@ABIWORD_SERIES@.la Makefile
++Abi-@ABIWORD_SERIES@.gir: $(INTROSPECTION_SCANNER) libabiword-@ABIWORD_SERIES@.la Makefile
+ Abi_@ABI_SUB_SERIES@_gir_INCLUDES = GObject-2.0 Gtk-3.0 Gsf-1
+ Abi_@ABI_SUB_SERIES@_gir_CFLAGS = $(libabiword_@ABIWORD_SERIES@_la_CPPFLAGS)
+ Abi_@ABI_SUB_SERIES@_gir_LIBS = libabiword-@ABIWORD_SERIES@.la
diff --git a/abiword-tidy.patch b/abiword-tidy.patch
new file mode 100644 (file)
index 0000000..f81d24b
--- /dev/null
@@ -0,0 +1,24 @@
+--- abiword-3.0.1/plugin-configure.m4.orig     2014-12-23 06:13:14.000000000 +0100
++++ abiword-3.0.1/plugin-configure.m4  2016-05-15 17:23:24.841565627 +0200
+@@ -1612,7 +1612,7 @@
+       inter7eps_found="no"
+ ])
+-AC_CHECK_HEADERS([tidy/tidy.h],
++AC_CHECK_HEADERS([tidy.h],
+ [
+       libtidy_found="yes"
+ ], [
+--- abiword-3.0.1/plugins/mht/xp/tidyReader.h.orig     2013-04-07 15:53:03.000000000 +0200
++++ abiword-3.0.1/plugins/mht/xp/tidyReader.h  2016-05-15 20:06:39.366549827 +0200
+@@ -24,8 +24,8 @@
+ #ifndef TIDYREADER_H
+ #define TIDYREADER_H
+-#include <tidy/tidy.h>
+-#include <tidy/buffio.h>
++#include <tidy.h>
++#include <buffio.h>
+ #include "ut_xml.h"
index 47effcf5808811e5b245d83d108b1f1dd7680bf2..6a7ba825da336bea89a9e35cdd699f0e81f20f23 100644 (file)
@@ -1,17 +1,26 @@
+# TODO: wordperfect support with libwpd 0.10, libwp[gs] 0.3
 #
-%bcond_with    gda             # libgda support
+%bcond_without evolution       # Evolution Data Server for contacts and calendar
+%bcond_without champlain       # champlain maps display support
+%bcond_with    gda             # libgda (1.x) support
 %bcond_without goffice         # without plugin-goffice
 %bcond_without gnome           # without GNOME libs
-%bcond_with    gnomevfs        # gnome-vfs support
-%bcond_with    ots             # try build plugin-ots (requires ots >= 0.5.0)
+%bcond_with    gnomevfs        # gnome-vfs support (GTK+ 2.x only)
+%bcond_with    gtk2            # GTK+ 2.x instead of 3.x
+%bcond_without introspection   # GObject introspection
+%bcond_without ots             # Open Text Summarizer plugin
+%bcond_without redland         # redland/raptor libraries
 #
 %define                mver    3.0
 #
+%if %{without gtk2}
+%undefine      with_gnomevfs
+%endif
 Summary:       Multi-platform word processor
 Summary(pl.UTF-8):     Wieloplatformowy procesor tekstu
 Name:          abiword
 Version:       3.0.1
-Release:       7
+Release:       8
 Epoch:         1
 License:       GPL v2+
 Group:         X11/Applications/Editors
@@ -22,71 +31,110 @@ Patch1:            %{name}-mht.patch
 Patch2:                %{name}-librevenge.patch
 Patch3:                %{name}-link-grammar-5.patch
 Patch4:                %{name}-link-grammar-5-second.patch
+Patch5:                %{name}-parallel.patch
+Patch6:                %{name}-tidy.patch
+Patch7:                %{name}-asio.patch
 URL:           http://www.abisource.com/
 BuildRequires: aiksaurus-gtk-devel >= 1.2.1
-BuildRequires: autoconf
-BuildRequires: automake
-BuildRequires: boost-devel >= 1.33.1
+BuildRequires: autoconf >= 2.50
+BuildRequires: automake >= 1:1.9
+BuildRequires: boost-devel >= 1.40.0
 BuildRequires: bzip2-devel
-BuildRequires: cairo-devel
+BuildRequires: cairo-devel >= 1.10
+BuildRequires: dbus-glib-devel >= 0.70
 BuildRequires: enchant-devel >= 1.2.6
 BuildRequires: eps-devel
-BuildRequires: evolution-data-server-devel
+%{?with_evolution:BuildRequires:       evolution-data-server-devel >= 3.6}
 BuildRequires: fontconfig-devel >= 1:2.3.95
 BuildRequires: fribidi-devel >= 0.10.4
 BuildRequires: glib2-devel >= 1:2.12.1
+BuildRequires: gnutls-devel
+%{?with_introspection:BuildRequires:   gobject-introspection-devel >= 1.0.0}
+%if %{with gtk2}
 BuildRequires: gtk+2-devel >= 2:2.12.0
+%else
+BuildRequires: gtk+3-devel >= 3.0.8
+%endif
 BuildRequires: gtkmathview-devel >= 0.7.6
-BuildRequires: gucharmap-devel >= 1.7.0
+# libchamplain-gtk compiler with matching GTK+ version
+%{?with_champlain:BuildRequires:       libchamplain-devel >= 0.12}
 %if %{with gda}
 BuildRequires: libgda-devel >= 1:1.2.4-16
 BuildRequires: libgnomedb-devel >= 1:1.2.0
-%else
-Obsoletes:     abiword-plugin-gda
 %endif
-BuildRequires: libgnomeui-devel >= 2.15.91
-%if %{with goffice}
-BuildRequires: libgoffice-devel >= 0.8.0
-%else
-Obsoletes:     abiword-plugin-goffice
-%endif
-BuildRequires: libgsf-devel >= 1.14.9
+%{?with_goffice:BuildRequires: libgoffice-devel >= 0.10.2}
+BuildRequires: libgcrypt-devel >= 1.4.5
+BuildRequires: libgsf-devel >= 1.14.18
+BuildRequires: libical-devel >= 0.46
 BuildRequires: libjpeg-devel
 BuildRequires: libpng-devel
 BuildRequires: librevenge-devel
 BuildRequires: librsvg-devel >= 1:2.16.0
-BuildRequires: libtool
+BuildRequires: libsoup-devel >= 2.4
+BuildRequires: libtool >= 2:1.5
 BuildRequires: libwmf-devel >= 2:0.2.8.4
 BuildRequires: libwpd-devel >= 0.9.0
 BuildRequires: libwpg-devel >= 0.2.0
 BuildRequires: libwps-devel >= 0.2.0
 BuildRequires: libxml2-devel >= 1:2.6.26
+BuildRequires: libxslt-devel
 BuildRequires: link-grammar-devel >= 4.2.1
-BuildRequires: loudmouth-devel >= 1.0.1
+BuildRequires: loudmouth-devel >= 1.3.2
 %{?with_ots:BuildRequires:     ots-devel >= 0.5.0}
 BuildRequires: pango-devel
 BuildRequires: perl-devel
-BuildRequires: pkgconfig >= 0.9.0
+BuildRequires: pkgconfig >= 1:0.9.0
 BuildRequires: popt-devel
 BuildRequires: psiconv-devel >= 0.9.6
+%{?with_introspection:BuildRequires:   python >= 2}
+%{?with_introspection:BuildRequires:   python-pygobject3 >= 3}
+%{?with_redland:BuildRequires: rasqal-devel >= 0.9.17}
 BuildRequires: readline-devel
+%{?with_redland:BuildRequires: redland-devel >= 1.0.10}
+BuildRequires: rpmbuild(macros) >= 1.219
 BuildRequires: sed >= 4.0
-BuildRequires: t1lib-devel
+BuildRequires: tidy-devel
+BuildRequires: telepathy-glib-devel >= 0.14.5
 BuildRequires: wv-devel >= 1.2.1
+BuildRequires: zlib-devel
 Requires(post,postun): desktop-file-utils
+Requires:      cairo >= 1.10
+Requires:      enchant >= 1.2.6
+%{?with_evolution:Requires:    evolution-data-server-libs >= 3.6}
+Requires:      fontconfig >= 1:2.3.95
+Requires:      fribidi >= 0.10.4
+Requires:      glib2 >= 1:2.12.1
+%if %{with gtk2}
+Requires:      gtk+2 >= 2:2.12.0
+%else
+Requires:      gtk+3 >= 3.0.8
+%endif
+%{?with_champlain:Requires:    libchamplain >= 0.12}
+Requires:      libgcrypt >= 1.4.5
+%{?with_goffice:Requires:      libgoffice >= 0.10.2}
+Requires:      libgsf >= 1.14.18
+Requires:      libical >= 0.46
+Requires:      librsvg >= 1:2.16.0
+Requires:      libxml2 >= 1:2.6.26
+%{?with_redland:Requires:      rasqal >= 0.9.17}
+%{?with_redland:Requires:      redland >= 1.0.10}
+Requires:      wv >= 1.2.1
 Obsoletes:     abiword-plugin-applix
 Obsoletes:     abiword-plugin-babelfish
 Obsoletes:     abiword-plugin-bmp
 Obsoletes:     abiword-plugin-bz2
 Obsoletes:     abiword-plugin-capi
 Obsoletes:     abiword-plugin-clarisworks
+Obsoletes:     abiword-plugin-coquille
 Obsoletes:     abiword-plugin-dash
 Obsoletes:     abiword-plugin-docbook
 Obsoletes:     abiword-plugin-eml
 Obsoletes:     abiword-plugin-freetranslation
+%{!?with_gda:Obsoletes:        abiword-plugin-gda}
 Obsoletes:     abiword-plugin-gdict
 Obsoletes:     abiword-plugin-gdkpixbuf
 Obsoletes:     abiword-plugin-gimp
+%{!?with_goffice:Obsoletes:    abiword-plugin-goffice}
 Obsoletes:     abiword-plugin-google
 Obsoletes:     abiword-plugin-gypsython
 Obsoletes:     abiword-plugin-hancom
@@ -138,12 +186,26 @@ Files for AbiWord plugins development.
 %description devel -l pl.UTF-8
 Pliki do tworzenia wtyczek dla AbiWorda.
 
+%package -n python-abiword
+Summary:       Python GObject binding for AbiWord library
+Summary(pl.UTF-8):     Wiązanie Pythona i GObject do biblioteki AbiWorda
+Group:         Libraries/Python
+Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      python-pygobject3 >= 3
+
+%description -n python-abiword
+Python GObject binding for AbiWord library.
+
+%description -n python-abiword -l pl.UTF-8
+Wiązanie Pythona i GObject do biblioteki AbiWorda.
+
 # plugins - tools
 %package plugin-aiksaurus
 Summary:       AbiWord Aiksaurus plugin
 Summary(pl.UTF-8):     Wtyczka AbiWorda Aiksaurus
 Group:         X11/Applications/Editors
 Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      aiksaurus-gtk >= 1.2.1
 
 %description plugin-aiksaurus
 Allows to use Aiksaurus thesaurus.
@@ -157,6 +219,9 @@ Summary:    Remote collaborate for AbiWord
 Summary(pl.UTF-8):     Zdalna współpraca dla AbiWorda
 Group:         X11/Applications/Editors
 Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      dbus-glib >= 0.70
+Requires:      loudmouth >= 1.3.2
+Requires:      telepathy-glib >= 0.14.5
 
 %description plugin-collab
 Allows to collaborate with a remote user.
@@ -182,6 +247,8 @@ Summary(pl.UTF-8):  Wtyczka AbiWorda dla GDA
 Group:         X11/Applications/Editors
 Requires:      %{name} = %{epoch}:%{version}-%{release}
 Requires:      gnome-database-access-properties >= 1:1.2.1
+Requires:      libgda >= 1:1.2.4-16
+Requires:      libgnomedb >= 1:1.2.0
 
 %description plugin-gda
 Allows access to any database provided by libgda.
@@ -195,6 +262,7 @@ Summary:    GNOME Office plugin
 Summary(pl.UTF-8):     Wtyczka GNOME Office
 Group:         X11/Applications/Editors
 Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      libgoffice >= 0.10.2
 
 %description plugin-goffice
 Allows to share GNOME Office objects between GOffice appplications.
@@ -208,6 +276,7 @@ Summary:    AbiWord MathView plugin
 Summary(pl.UTF-8):     Wtyczka MAthView dla AbiWorda
 Group:         X11/Applications/Editors
 Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      gtkmathview-devel >= 0.7.6
 
 %description plugin-mathview
 MathML or LaTeX style equation inserting and editing.
@@ -220,6 +289,7 @@ Summary:    AbiWord OTS plugin
 Summary(pl.UTF-8):     Wtyczka OTS dla Abiworda
 Group:         X11/Applications/Editors
 Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      ots >= 0.5.0
 
 %description plugin-ots
 Create document summaries.
@@ -228,18 +298,6 @@ Create document summaries.
 Wtyczka ta służy do tworzenia podsumowania dokumentu.
 
 # plugins import - export
-%package plugin-coquille
-Summary:       AbiWord Coquille plugin
-Summary(pl.UTF-8):     Wtyczka Coquille dla Abiworda
-Group:         X11/Applications/Editors
-Requires:      %{name} = %{epoch}:%{version}-%{release}
-
-%description plugin-coquille
-Docbook extensions.
-
-%description plugin-coquille -l pl.UTF-8
-Rozszerzenia Docbooka.
-
 %package plugin-latex
 Summary:       AbiWord LaTeX plugin
 Summary(pl.UTF-8):     Wtyczka LaTeX dla Abiworda
@@ -257,6 +315,7 @@ Summary:    AbiWord Link Grammar plugin
 Summary(pl.UTF-8):     Wtyczka Gramatyki dla Abiworda
 Group:         X11/Applications/Editors
 Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      link-grammar >= 4.2.1
 
 %description plugin-link-grammar
 AbiWord Link Grammar plugin.
@@ -269,6 +328,7 @@ Summary:    AbiWord Psion plugin
 Summary(pl.UTF-8):     Wtyczka Psion dla Abiworda
 Group:         X11/Applications/Editors
 Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      psiconv >= 0.9.6
 
 %description plugin-psion
 Import/export Psion files.
@@ -281,6 +341,7 @@ Summary:    AbiWord WMF plugin
 Summary(pl.UTF-8):     Wtyczka WMF dla Abiworda
 Group:         X11/Applications/Editors
 Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      libwmf >= 2:0.2.8.4
 
 %description plugin-wmf
 View Windows Metafiles.
@@ -320,18 +381,29 @@ Jest to teczka clipartów używanych przez AbiWorda.
 %patch2 -p0
 %patch3 -p1
 %patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
 
 %build
+%{__libtoolize}
 %{__aclocal} -I .
-%{__automake}
 %{__autoconf}
+%{__autoheader}
+%{__automake}
 %configure \
-       --with-gnomevfs=%{?with_gnomevfs:yes}%{!?with_gnomevfs:no} \
-       --with-goffice=%{?with_goffice:yes}%{!?with_goffice:no} \
+       --disable-silent-rules \
        --disable-static \
        --enable-clipart \
+       %{?with_introspection:--enable-introspection} \
        --enable-plugins=auto \
-       --enable-templates
+       --enable-templates \
+       --with-champlain%{!?with_champlain:=no} \
+       --with-evolution-data-server%{!?with_evolution:=no} \
+       --with-gnomevfs%{!?with_gnomevfs:=no} \
+       --with-goffice%{!?with_goffice:=no} \
+       %{?with_gtk2:--with-gtk2} \
+       --with-redland%{!?with_redland:=no}
 
 %{__make}
 
@@ -342,7 +414,13 @@ rm -rf $RPM_BUILD_ROOT
        DESTDIR=$RPM_BUILD_ROOT
 
 # Remove useless files
-%{__rm} -f $RPM_BUILD_ROOT%{_libdir}/abiword-%{mver}/plugins/*.la
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/abiword-%{mver}/plugins/*.la
+# obsoleted by pkg-config
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/lib*.la
+
+%if %{with introspection}
+%py_postclean
+%endif
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -357,22 +435,26 @@ rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/*
+%attr(755,root,root) %{_bindir}/abiword
 %attr(755,root,root) %{_libdir}/libabiword-%{mver}.so
+%if %{with introspection}
+%{_libdir}/girepository-1.0/Abi-%{mver}.typelib
+%endif
 %dir %{_libdir}/abiword-%{mver}
 %dir %{_libdir}/abiword-%{mver}/plugins
 %dir %{_datadir}/abiword-%{mver}
 %{_datadir}/abiword-%{mver}/Presentation.xml
 %{_datadir}/abiword-%{mver}/readme.abw
 %{_datadir}/abiword-%{mver}/readme.txt
-%{_datadir}/abiword-%{mver}/strings
 %{_datadir}/abiword-%{mver}/system.profile*
+%{_datadir}/abiword-%{mver}/certs
+%{_datadir}/abiword-%{mver}/mime-info
+%{_datadir}/abiword-%{mver}/omml_xslt
+%{_datadir}/abiword-%{mver}/strings
 %{_datadir}/abiword-%{mver}/templates
 %{_datadir}/abiword-%{mver}/ui
 %{_datadir}/abiword-%{mver}/xsltml
-%{_datadir}/abiword-%{mver}/mime-info
-%{_datadir}/abiword-%{mver}/omml_xslt
-%{_desktopdir}/*.desktop
+%{_desktopdir}/abiword.desktop
 %{_iconsdir}/hicolor/*/apps/abiword.*
 %{_mandir}/man1/abiword.1*
 %{_datadir}/dbus-1/services/org.freedesktop.Telepathy.Client.AbiCollab.service
@@ -419,10 +501,18 @@ rm -rf $RPM_BUILD_ROOT
 
 %files devel
 %defattr(644,root,root,755)
-%{_libdir}/libabiword-%{mver}.la
 %{_includedir}/abiword-%{mver}
+%if %{with introspection}
+%{_datadir}/gir-1.0/Abi-3.0.gir
+%endif
 %{_pkgconfigdir}/abiword-%{mver}.pc
 
+%if %{with introspection}
+%files -n python-abiword
+%defattr(644,root,root,755)
+%{py_sitedir}/gi/overrides/Abi.py[co]
+%endif
+
 %files plugin-aiksaurus
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/abiword-%{mver}/plugins/aiksaurus.so
This page took 0.14139 seconds and 4 git commands to generate.