Package: sslsniff
Version: 0.8-8
Severity: wishlist
Tags: patch
User: team+bo...@tracker.debian.org
Usertags: boost1.71

Dear Maintainer,

your package fails to build with boost1.71. You can find a build log
attached. If you want to attempt the build yourself, an updated version
of boost-defaults which brings in boost1.71 dependencies can be found
adding this line to your sources.list file:

  deb https://people.debian.org/~gio/reprepro gio main

This bug has severity whishlist for the moment, but it will raised to RC
as soon as version 1.71 of Boost is promoted to default.

More specifically, your package fails building because it uses some
retired API from Boost.Asio. The attached patch should fix the bug.

Thanks and all the best, Giovanni.
-- 
Giovanni Mascellani <g.mascell...@gmail.com>
Postdoc researcher - Université Libre de Bruxelles
From a53724afc0bb86f3551f981e386576eb060d8c78 Mon Sep 17 00:00:00 2001
From: Giovanni Mascellani <g...@debian.org>
Date: Sat, 2 May 2020 11:25:41 +0200
Subject: [PATCH] Fix FTBFS with Boost 1.71.

---
 debian/changelog                              |   7 +
 .../patches/Fix-FTBFS-with-Boost-1.71.patch   | 181 ++++++++++++++++++
 debian/patches/series                         |   1 +
 3 files changed, 189 insertions(+)
 create mode 100644 debian/patches/Fix-FTBFS-with-Boost-1.71.patch

diff --git a/debian/changelog b/debian/changelog
index 123d278..196c6b4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+sslsniff (0.8-8.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix FTBFS with Boost 1.71.
+
+ -- Giovanni Mascellani <g...@debian.org>  Sat, 02 May 2020 11:25:51 +0200
+
 sslsniff (0.8-8) unstable; urgency=medium
 
   * Fix build with wl,asneeded (Closes: #849695)
diff --git a/debian/patches/Fix-FTBFS-with-Boost-1.71.patch b/debian/patches/Fix-FTBFS-with-Boost-1.71.patch
new file mode 100644
index 0000000..80cba0d
--- /dev/null
+++ b/debian/patches/Fix-FTBFS-with-Boost-1.71.patch
@@ -0,0 +1,181 @@
+From: Giovanni Mascellani <g...@debian.org>
+Date: Sat, 2 May 2020 11:24:55 +0200
+Subject: Fix FTBFS with Boost 1.71.
+
+---
+ RawBridge.hpp                  | 21 +++++++++++++++++++++
+ SSLConnectionManager.cpp       |  6 +++---
+ http/HttpBridge.hpp            | 25 +++++++++++++++++++++++++
+ http/HttpConnectionManager.cpp |  4 ++--
+ 4 files changed, 51 insertions(+), 5 deletions(-)
+
+diff --git a/RawBridge.hpp b/RawBridge.hpp
+index 9206faa..7a1255e 100644
+--- a/RawBridge.hpp
++++ b/RawBridge.hpp
+@@ -36,6 +36,16 @@ private:
+   ip::tcp::socket serverSocket;
+   ip::tcp::endpoint destination;
+ 
++#if BOOST_VERSION >= 107000
++  const boost::asio::executor &executor;
++
++  RawBridge(boost::shared_ptr<ip::tcp::socket> clientSocket,
++	    ip::tcp::endpoint& destination,
++	    const boost::asio::executor & executor) :
++    clientSocket(clientSocket), serverSocket(executor),
++    executor(executor), destination(destination), closed(0)
++  {}
++#else
+   boost::asio::io_service &io_service;
+ 
+   RawBridge(boost::shared_ptr<ip::tcp::socket> clientSocket,
+@@ -44,6 +54,7 @@ private:
+     clientSocket(clientSocket), serverSocket(io_service), 
+     io_service(io_service), destination(destination), closed(0)
+   {}
++#endif
+ 
+   void handleConnect(Bridge::ptr bridge, const boost::system::error_code &error) {
+     if (!error) Bridge::shuttle(&(*clientSocket), &serverSocket);
+@@ -55,6 +66,15 @@ protected:
+ 
+ public:
+ 
++#if BOOST_VERSION >= 107000
++  static ptr create(boost::shared_ptr<ip::tcp::socket> clientSocket,
++		    ip::tcp::endpoint& destination,
++		    const boost::asio::executor & executor)
++
++  {
++    return ptr(new RawBridge(clientSocket, destination, executor));
++  }
++#else
+   static ptr create(boost::shared_ptr<ip::tcp::socket> clientSocket,
+ 		    ip::tcp::endpoint& destination,
+ 		    boost::asio::io_service & io_service)
+@@ -62,6 +82,7 @@ public:
+   {
+     return ptr(new RawBridge(clientSocket, destination, io_service));    
+   }
++#endif
+ 
+   virtual ip::tcp::socket& getClientSocket() {
+     return *clientSocket;
+diff --git a/SSLConnectionManager.cpp b/SSLConnectionManager.cpp
+index 9beed10..6087f65 100644
+--- a/SSLConnectionManager.cpp
++++ b/SSLConnectionManager.cpp
+@@ -44,7 +44,7 @@ SSLConnectionManager::SSLConnectionManager(io_service &io_service,
+ }
+ 
+ void SSLConnectionManager::acceptIncomingConnection() {
+-  boost::shared_ptr<ip::tcp::socket> socket(new ip::tcp::socket(acceptor.get_io_service()));
++  boost::shared_ptr<ip::tcp::socket> socket(new ip::tcp::socket(acceptor.get_executor()));
+ 
+   acceptor.async_accept(*socket, boost::bind(&SSLConnectionManager::handleClientConnection,
+ 					     this, socket, placeholders::error));
+@@ -76,7 +76,7 @@ void SSLConnectionManager::shuttleConnection(boost::shared_ptr<ip::tcp::socket>
+ 					     ip::tcp::endpoint &destination)
+ 
+ {
+-  Bridge::ptr bridge = RawBridge::create(clientSocket, destination, acceptor.get_io_service());
++  Bridge::ptr bridge = RawBridge::create(clientSocket, destination, acceptor.get_executor());
+   bridge->shuttle();
+ }
+ 
+@@ -134,7 +134,7 @@ void SSLConnectionManager::interceptSSL(boost::shared_ptr<ip::tcp::socket> clien
+ 					ip::tcp::endpoint &destination,
+ 					bool wildcardOK)
+ {
+-  ip::tcp::socket serverSocket(acceptor.get_io_service());
++  ip::tcp::socket serverSocket(acceptor.get_executor());
+   boost::system::error_code error;
+   serverSocket.connect(destination, error);
+ 
+diff --git a/http/HttpBridge.hpp b/http/HttpBridge.hpp
+index 863db21..edcffa1 100644
+--- a/http/HttpBridge.hpp
++++ b/http/HttpBridge.hpp
+@@ -40,12 +40,21 @@ class HttpBridge : public Bridge {
+ 
+ public:
+ 
++#if BOOST_VERSION >= 107000
++  static ptr create(boost::shared_ptr<ip::tcp::socket> clientSocket,
++		    const executor& executor, 
++		    HttpBridgeListener *listener) 
++  {
++    return ptr(new HttpBridge(clientSocket, executor, listener));
++  }
++#else
+   static ptr create(boost::shared_ptr<ip::tcp::socket> clientSocket,
+ 		    io_service& io_service, 
+ 		    HttpBridgeListener *listener) 
+   {
+     return ptr(new HttpBridge(clientSocket, io_service, listener));
+   }
++#endif
+ 
+   virtual ip::tcp::socket& getClientSocket() {
+     return *clientSocket;
+@@ -63,7 +72,11 @@ protected:
+ 
+ private:
+   int closed;
++#if BOOST_VERSION >= 107000
++  const executor& executor_;
++#else
+   io_service& io_service_;
++#endif
+   boost::shared_ptr<ip::tcp::socket> clientSocket;
+   ip::tcp::socket serverSocket;
+   
+@@ -71,6 +84,17 @@ private:
+   HttpHeaders headers;
+   HttpBridgeListener *listener;
+ 
++#if BOOST_VERSION >= 107000
++  HttpBridge(boost::shared_ptr<ip::tcp::socket> clientSocket,
++	     const executor& executor, HttpBridgeListener *listener)
++    : clientSocket(clientSocket),
++      serverSocket(executor),
++      executor_(executor),
++      state(READING_HEADERS) 
++  {
++    this->listener = listener;
++  }
++#else
+   HttpBridge(boost::shared_ptr<ip::tcp::socket> clientSocket,
+ 	     io_service& io_service, HttpBridgeListener *listener)
+     : clientSocket(clientSocket),
+@@ -80,6 +104,7 @@ private:
+   {
+     this->listener = listener;
+   }
++#endif
+ 
+   void setFinishedWithHeaders();  
+ };
+diff --git a/http/HttpConnectionManager.cpp b/http/HttpConnectionManager.cpp
+index 9b1066c..8768bc8 100644
+--- a/http/HttpConnectionManager.cpp
++++ b/http/HttpConnectionManager.cpp
+@@ -53,7 +53,7 @@ HttpConnectionManager::HttpConnectionManager(io_service& io_service, int port,
+ }
+ 
+ void HttpConnectionManager::acceptIncomingConnection() {
+-  boost::shared_ptr<ip::tcp::socket> socket(new ip::tcp::socket(acceptor_.get_io_service()));
++  boost::shared_ptr<ip::tcp::socket> socket(new ip::tcp::socket(acceptor_.get_executor()));
+ 
+   acceptor_.async_accept(*socket, boost::bind(&HttpConnectionManager::handleClientConnection,
+ 					      this, socket, placeholders::error));
+@@ -63,7 +63,7 @@ void HttpConnectionManager::acceptIncomingConnection() {
+ void HttpConnectionManager::bridgeHttpRequest(boost::shared_ptr<ip::tcp::socket> socket,
+ 					      ip::tcp::endpoint destination)
+ {
+-  Bridge::ptr bridge = HttpBridge::create(socket, acceptor_.get_io_service(), 
++  Bridge::ptr bridge = HttpBridge::create(socket, acceptor_.get_executor(),
+ 					  FingerprintManager::getInstance());
+   
+   bridge->getServerSocket().
diff --git a/debian/patches/series b/debian/patches/series
index 49e4c06..335a0b0 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -3,3 +3,4 @@
 Add-missing-libraries-at-link-time.patch
 Fix-OpenSSL-1.1-FTBFS.patch
 boost-1.67.patch
+Fix-FTBFS-with-Boost-1.71.patch
-- 
2.26.2

Attachment: sslsniff.log.gz
Description: application/gzip

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to