[Debian-med-packaging] Bug#893352: libzeep: please update for g++7 + boost 1.65 compatibility

Steve Langasek steve.langasek at canonical.com
Sun Mar 18 08:09:25 UTC 2018


Package: libzeep
Version: 3.0.2-5
Severity: normal
Tags: patch
User: ubuntu-devel at lists.ubuntu.com
Usertags: origin-ubuntu bionic ubuntu-patch

Dear maintainers,

libzeep has been failing to build in Ubuntu bionic, which now has boost 1.65
as default.  While Debian has not yet started this transition, the
appropriate fix is to replace certain boost headers with their equivalents
that are now part of the standard C++ headers from g++7.

I have applied the attached patch in Ubuntu to let libzeep build again. 
Please consider applying it in Debian as well.

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek at ubuntu.com                                     vorlon at debian.org
-------------- next part --------------
diff -Nru libzeep-3.0.2/debian/patches/boost-1.65-compat.patch libzeep-3.0.2/debian/patches/boost-1.65-compat.patch
--- libzeep-3.0.2/debian/patches/boost-1.65-compat.patch	1969-12-31 16:00:00.000000000 -0800
+++ libzeep-3.0.2/debian/patches/boost-1.65-compat.patch	2018-03-18 00:30:13.000000000 -0700
@@ -0,0 +1,245 @@
+Description: fix compatibility with boost 1.65
+ Boost 1.65 no longer provides tr1/ headers, which are now provided instead
+ by g++7 directly.  Adjust our includes accordingly.
+Author: Steve Langasek <steve.langasek at ubuntu.com>
+Last-Modified: 2018-03-18
+
+Index: libzeep-3.0.2/src/doctype.cpp
+===================================================================
+--- libzeep-3.0.2.orig/src/doctype.cpp
++++ libzeep-3.0.2/src/doctype.cpp
+@@ -9,8 +9,8 @@
+ #include <typeinfo>
+ #include <numeric>
+ 
+-#include <boost/tr1/tuple.hpp>
+-#include <boost/tr1/memory.hpp>
++#include <tr1/tuple>
++#include <tr1/memory>
+ #include <boost/algorithm/string.hpp>
+ #include <boost/foreach.hpp>
+ #define foreach BOOST_FOREACH
+@@ -132,7 +132,7 @@
+ 	switch (m_state)
+ 	{
+ 		case state_Start:
+-		        boost::fusion::tie(result, done) = m_sub->allow(name);
++		        std::tr1::tie(result, done) = m_sub->allow(name);
+ 			if (result == true)
+ 				m_state = state_Loop;
+ 			else
+@@ -140,7 +140,7 @@
+ 			break;
+ 		
+ 		case state_Loop:
+-			boost::fusion::tie(result, done) = m_sub->allow(name);
++			std::tr1::tie(result, done) = m_sub->allow(name);
+ 			if (result == false and done)
+ 				done = true;
+ 			break;
+@@ -172,7 +172,7 @@
+ 	switch (m_state)
+ 	{
+ 		case state_Start:
+-			boost::fusion::tie(result, done) = m_sub->allow(name);
++			std::tr1::tie(result, done) = m_sub->allow(name);
+ 			if (result == true)
+ 				m_state = state_Loop;
+ 			else
+@@ -180,11 +180,11 @@
+ 			break;
+ 		
+ 		case state_Loop:
+-			boost::fusion::tie(result, done) = m_sub->allow(name);
++			std::tr1::tie(result, done) = m_sub->allow(name);
+ 			if (result == false and done)
+ 			{
+ 				m_sub->reset();
+-				boost::fusion::tie(result, done) = m_sub->allow(name);
++				std::tr1::tie(result, done) = m_sub->allow(name);
+ 				if (result == false)
+ 					done = true;
+ 			}
+@@ -218,28 +218,28 @@
+ 	switch (m_state)
+ 	{
+ 		case state_Start:
+-			boost::fusion::tie(result, done) = m_sub->allow(name);
++			std::tr1::tie(result, done) = m_sub->allow(name);
+ 			if (result == true)
+ 				m_state = state_FirstLoop;
+ 			break;
+ 		
+ 		case state_FirstLoop:
+-			boost::fusion::tie(result, done) = m_sub->allow(name);
++			std::tr1::tie(result, done) = m_sub->allow(name);
+ 			if (result == false and done)
+ 			{
+ 				m_sub->reset();
+-				boost::fusion::tie(result, done) = m_sub->allow(name);
++				std::tr1::tie(result, done) = m_sub->allow(name);
+ 				if (result == true)
+ 					m_state = state_NextLoop;
+ 			}
+ 			break;
+ 
+ 		case state_NextLoop:
+-			boost::fusion::tie(result, done) = m_sub->allow(name);
++			std::tr1::tie(result, done) = m_sub->allow(name);
+ 			if (result == false and done)
+ 			{
+ 				m_sub->reset();
+-				boost::fusion::tie(result, done) = m_sub->allow(name);
++				std::tr1::tie(result, done) = m_sub->allow(name);
+ 				if (result == false)
+ 					done = true;
+ 			}
+@@ -319,7 +319,7 @@
+ 			// fall through
+ 		
+ 		case state_Element:
+-			boost::fusion::tie(result, done) = (*m_next)->allow(name);
++			std::tr1::tie(result, done) = (*m_next)->allow(name);
+ 			while (result == false and done)
+ 			{
+ 				++m_next;
+@@ -330,7 +330,7 @@
+ 					break;
+ 				}
+ 
+-				boost::fusion::tie(result, done) = (*m_next)->allow(name);
++				std::tr1::tie(result, done) = (*m_next)->allow(name);
+ 			}
+ 			break;
+ 	}
+@@ -404,7 +404,7 @@
+ 		case state_Start:
+ 			for (list<state_ptr>::iterator choice = m_states.begin(); choice != m_states.end(); ++choice)
+ 			{
+-				boost::fusion::tie(result, done) = (*choice)->allow(name);
++				std::tr1::tie(result, done) = (*choice)->allow(name);
+ 				if (result == true)
+ 				{
+ 					m_sub = *choice;
+@@ -415,7 +415,7 @@
+ 			break;
+ 
+ 		case state_Choice:
+-			boost::fusion::tie(result, done) = m_sub->allow(name);
++			std::tr1::tie(result, done) = m_sub->allow(name);
+ 			break;
+ 	}
+ 	
+@@ -490,7 +490,7 @@
+ bool validator::allow(const string& name)
+ {
+ 	bool result;
+-	boost::fusion::tie(result, m_done) = m_state->allow(name);
++	std::tr1::tie(result, m_done) = m_state->allow(name);
+ 	return result;
+ }
+ 
+Index: libzeep-3.0.2/src/document-expat.cpp
+===================================================================
+--- libzeep-3.0.2.orig/src/document-expat.cpp
++++ libzeep-3.0.2/src/document-expat.cpp
+@@ -12,7 +12,7 @@
+ #include <vector>
+ #include <stack>
+ 
+-#include <boost/tr1/memory.hpp>
++#include <tr1/memory>
+ #include <boost/algorithm/string.hpp>
+ #include <boost/filesystem/operations.hpp>
+ #include <boost/filesystem/fstream.hpp>
+Index: libzeep-3.0.2/src/document-libxml2.cpp
+===================================================================
+--- libzeep-3.0.2.orig/src/document-libxml2.cpp
++++ libzeep-3.0.2/src/document-libxml2.cpp
+@@ -10,7 +10,7 @@
+ #include <deque>
+ #include <map>
+ 
+-#include <boost/tr1/memory.hpp>
++#include <tr1/memory>
+ #include <boost/algorithm/string.hpp>
+ #include <boost/function.hpp>
+ #include <boost/bind.hpp>
+Index: libzeep-3.0.2/src/document.cpp
+===================================================================
+--- libzeep-3.0.2.orig/src/document.cpp
++++ libzeep-3.0.2/src/document.cpp
+@@ -10,7 +10,7 @@
+ #include <deque>
+ #include <map>
+ 
+-#include <boost/tr1/memory.hpp>
++#include <tr1/memory>
+ #include <boost/algorithm/string.hpp>
+ #include <boost/function.hpp>
+ #include <boost/bind.hpp>
+Index: libzeep-3.0.2/src/parser.cpp
+===================================================================
+--- libzeep-3.0.2.orig/src/parser.cpp
++++ libzeep-3.0.2/src/parser.cpp
+@@ -6,7 +6,7 @@
+ #include <iostream>
+ #include <map>
+ 
+-#include <boost/tr1/memory.hpp>
++#include <tr1/memory>
+ #include <boost/algorithm/string.hpp>
+ #include <boost/bind.hpp>
+ #include <boost/lexical_cast.hpp>
+Index: libzeep-3.0.2/src/preforked-http-server.cpp
+===================================================================
+--- libzeep-3.0.2.orig/src/preforked-http-server.cpp
++++ libzeep-3.0.2/src/preforked-http-server.cpp
+@@ -16,7 +16,7 @@
+ #include <zeep/http/connection.hpp>
+ #include <zeep/exception.hpp>
+ 
+-#include <boost/tr1/memory.hpp>
++#include <tr1/memory>
+ #include <boost/date_time/posix_time/posix_time.hpp>
+ #include <boost/thread.hpp>
+ #include <boost/bind.hpp>
+Index: libzeep-3.0.2/src/webapp-el.cpp
+===================================================================
+--- libzeep-3.0.2.orig/src/webapp-el.cpp
++++ libzeep-3.0.2/src/webapp-el.cpp
+@@ -14,7 +14,7 @@
+ #include <boost/foreach.hpp>
+ #define foreach BOOST_FOREACH
+ #include <boost/algorithm/string.hpp>
+-#include <boost/tr1/cmath.hpp>
++#include <tr1/cmath>
+ 
+ #include <zeep/http/webapp.hpp>
+ #include <zeep/http/webapp/el.hpp>
+Index: libzeep-3.0.2/src/xpath.cpp
+===================================================================
+--- libzeep-3.0.2.orig/src/xpath.cpp
++++ libzeep-3.0.2/src/xpath.cpp
+@@ -12,7 +12,7 @@
+ #include <cmath>
+ #include <map>
+ 
+-#include <boost/tr1/cmath.hpp>
++#include <tr1/cmath>
+ #include <boost/function.hpp>
+ #include <boost/bind.hpp>
+ #include <boost/foreach.hpp>
+Index: libzeep-3.0.2/zeep/http/reply.hpp
+===================================================================
+--- libzeep-3.0.2.orig/zeep/http/reply.hpp
++++ libzeep-3.0.2/zeep/http/reply.hpp
+@@ -8,7 +8,7 @@
+ 
+ #include <vector>
+ 
+-#include <boost/tr1/memory.hpp>
++#include <tr1/memory>
+ #include <boost/asio/buffer.hpp>
+ 
+ #include <zeep/http/header.hpp>
diff -Nru libzeep-3.0.2/debian/patches/series libzeep-3.0.2/debian/patches/series
--- libzeep-3.0.2/debian/patches/series	2017-11-27 23:39:17.000000000 -0800
+++ libzeep-3.0.2/debian/patches/series	2018-03-18 00:27:16.000000000 -0700
@@ -3,3 +3,4 @@
 linking-order.diff
 libzeep-3.0-g++6-boost1.60.patch
 spelling.patch
+boost-1.65-compat.patch


More information about the Debian-med-packaging mailing list