commit:     2d5affeb067f6f193c0718bc5a9cc8eb8eef44d5
Author:     David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Sat May  8 23:18:57 2021 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sat May  8 23:18:57 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2d5affeb

dev-libs/ucommon: Fix building under GCC 11

Closes: https://bugs.gentoo.org/730018
Closes: https://bugs.gentoo.org/787173
Package-Manager: Portage-3.0.18, Repoman-3.0.3
Signed-off-by: David Seifert <soap <AT> gentoo.org>

 ....0-c++17-dynamic-exception-specifications.patch | 502 +++++++++++++++++++++
 dev-libs/ucommon/ucommon-7.0.0.ebuild              |  55 ++-
 2 files changed, 529 insertions(+), 28 deletions(-)

diff --git 
a/dev-libs/ucommon/files/ucommon-7.0.0-c++17-dynamic-exception-specifications.patch
 
b/dev-libs/ucommon/files/ucommon-7.0.0-c++17-dynamic-exception-specifications.patch
new file mode 100644
index 00000000000..49e4b782897
--- /dev/null
+++ 
b/dev-libs/ucommon/files/ucommon-7.0.0-c++17-dynamic-exception-specifications.patch
@@ -0,0 +1,502 @@
+--- a/commoncpp/exception.cpp
++++ b/commoncpp/exception.cpp
+@@ -53,14 +53,14 @@
+ 
+ namespace ost {
+ 
+-Exception::Exception(const String& what_arg) throw():
++Exception::Exception(const String& what_arg) :
+ _what(what_arg)
+ {}
+ 
+-Exception::~Exception() throw()
++Exception::~Exception()
+ {}
+ 
+-const char *Exception::what() const throw()
++const char *Exception::what() const noexcept
+ {
+     return _what.c_str();
+ }
+@@ -70,22 +70,22 @@
+     return _what.c_str();
+ }
+ 
+-IOException::IOException(const String &what_arg, long systemError) throw() :
++IOException::IOException(const String &what_arg, long systemError) :
+     Exception(what_arg), _systemError(systemError),
+     _systemErrorString(NULL) {
+ }
+ 
+-IOException::~IOException() throw()
++IOException::~IOException()
+ {
+     delete [] _systemErrorString;
+ }
+ 
+-long IOException::getSystemError() const throw()
++long IOException::getSystemError() const
+ {
+     return _systemError;
+ }
+ 
+-const char* IOException::getSystemErrorString() const throw()
++const char* IOException::getSystemErrorString() const
+ {
+     const uint32_t errStrSize = 2048;
+     if ( !_systemErrorString )
+--- a/commoncpp/persist.cpp
++++ b/commoncpp/persist.cpp
+@@ -39,7 +39,7 @@
+     return _what;
+ }
+ 
+-PersistException::~PersistException() throw()
++PersistException::~PersistException()
+ {
+ }
+ 
+@@ -114,7 +114,7 @@
+     TypeManager::remove(myName.c_str());
+ }
+ 
+-PersistEngine::PersistEngine(std::iostream& stream, EngineMode mode) 
throw(PersistException) :
++PersistEngine::PersistEngine(std::iostream& stream, EngineMode mode) :
+ myUnderlyingStream(stream), myOperationalMode(mode)
+ {
+ }
+@@ -125,7 +125,7 @@
+         myUnderlyingStream.sync();
+ }
+ 
+-void PersistEngine::writeBinary(const uint8_t* data, const uint32_t size) 
throw(PersistException)
++void PersistEngine::writeBinary(const uint8_t* data, const uint32_t size)
+ {
+   if(myOperationalMode != modeWrite)
+     throw("Cannot write to an input Engine");
+@@ -133,14 +133,14 @@
+ }
+ 
+ 
+-void PersistEngine::readBinary(uint8_t* data, uint32_t size) 
throw(PersistException)
++void PersistEngine::readBinary(uint8_t* data, uint32_t size)
+ {
+   if(myOperationalMode != modeRead)
+     throw("Cannot read from an output Engine");
+   myUnderlyingStream.read((char *)data,size);
+ }
+ 
+-void PersistEngine::write(const PersistObject *object) throw(PersistException)
++void PersistEngine::write(const PersistObject *object)
+ {
+   // Pre-step, if object is NULL, then don't serialize it - serialize a
+   // marker to say that it is null.
+@@ -181,7 +181,7 @@
+   }
+ }
+ 
+-void PersistEngine::read(PersistObject &object) throw(PersistException)
++void PersistEngine::read(PersistObject &object)
+ {
+   uint32_t id = 0;
+   read(id);
+@@ -202,7 +202,7 @@
+   readObject(&object);
+ }
+ 
+-void PersistEngine::read(PersistObject *&object) throw(PersistException)
++void PersistEngine::read(PersistObject *&object)
+ {
+   uint32_t id = 0;
+   read(id);
+@@ -237,7 +237,7 @@
+     throw(PersistException(std::string("Unable to instantiate object of class 
")+className));
+ }
+ 
+-void PersistEngine::readObject(PersistObject* object) throw(PersistException)
++void PersistEngine::readObject(PersistObject* object)
+ {
+   // Okay then - we can make this object
+   myArchiveVector.push_back(object);
+@@ -251,7 +251,7 @@
+     throw( PersistException("Missing End-of-Object marker"));
+ }
+ 
+-const std::string PersistEngine::readClass() throw(PersistException)
++const std::string PersistEngine::readClass()
+ {
+   // Okay - read the identifier for the class in...
+   uint32_t classId = 0;
+@@ -269,14 +269,14 @@
+   return className;
+ }
+ 
+-void PersistEngine::write(const std::string& str) throw(PersistException)
++void PersistEngine::write(const std::string& str)
+ {
+   uint32_t len = (uint32_t)str.length();
+   write(len);
+   writeBinary((uint8_t*)str.c_str(),len);
+ }
+ 
+-void PersistEngine::read(std::string& str) throw(PersistException)
++void PersistEngine::read(std::string& str)
+ {
+   uint32_t len = 0;
+   read(len);
+--- a/commoncpp/tokenizer.cpp
++++ b/commoncpp/tokenizer.cpp
+@@ -70,7 +70,7 @@
+ }
+ 
+ 
+-StringTokenizer::iterator& StringTokenizer::iterator::operator ++ () THROWS 
(StringTokenizer::NoSuchElementException)
++StringTokenizer::iterator& StringTokenizer::iterator::operator ++ ()
+ {
+ 
+     // someone requested to read beyond the end .. tsts
+@@ -106,7 +106,7 @@
+  * if no one requests the token, no time is spent skipping the whitespaces
+  * or allocating memory.
+  */
+-const char * StringTokenizer::iterator::operator * () THROWS 
(StringTokenizer::NoSuchElementException)
++const char * StringTokenizer::iterator::operator * ()
+ {
+     // someone requested to read beyond the end .. tsts
+     if (endp == myTok->itEnd.endp)
+--- a/inc/commoncpp/exception.h
++++ b/inc/commoncpp/exception.h
+@@ -77,10 +77,10 @@
+     String _what;
+ 
+ public:
+-    Exception(const String& what_arg) throw();
+-    virtual ~Exception() throw();
++    Exception(const String& what_arg);
++    virtual ~Exception();
+     virtual const char *getString() const;
+-    virtual const char *what() const throw();
++    virtual const char *what() const noexcept;
+ };
+ 
+ /**
+@@ -96,11 +96,11 @@
+     mutable char* _systemErrorString;
+ 
+ public:
+-    IOException(const String &what_arg, long systemError = 0) throw();
+-    virtual ~IOException() throw();
++    IOException(const String &what_arg, long systemError = 0);
++    virtual ~IOException();
+ 
+-    virtual long getSystemError() const throw();
+-    virtual const char* getSystemErrorString() const throw();
++    virtual long getSystemError() const;
++    virtual const char* getSystemErrorString() const;
+ };
+ 
+ /**
+--- a/inc/commoncpp/persist.h
++++ b/inc/commoncpp/persist.h
+@@ -46,7 +46,7 @@
+     PersistException(const std::string& reason);
+     const std::string& getString() const;
+ 
+-    virtual ~PersistException() throw();
++    virtual ~PersistException();
+ 
+ protected:
+     std::string _what;
+@@ -210,7 +210,7 @@
+      * the given mode. The stream must be initialized properly prior
+      * to this call or problems will ensue.
+      */
+-    PersistEngine(std::iostream& stream, EngineMode mode) 
throw(PersistException);
++    PersistEngine(std::iostream& stream, EngineMode mode);
+ 
+     virtual ~PersistEngine();
+ 
+@@ -219,75 +219,75 @@
+     /**
+      * writes a PersistObject from a reference.
+      */
+-    inline void write(const PersistObject &object) throw(PersistException)
++    inline void write(const PersistObject &object)
+         {write(&object);}
+ 
+     /**
+      * writes a PersistObject from a pointer.
+      */
+-    void write(const PersistObject *object) throw(PersistException);
++    void write(const PersistObject *object);
+ 
+     // writes supported primitive types
+   // shortcut, to make the following more readable
+ #define CCXX_ENGINEWRITE_REF(valref) writeBinary((const 
uint8_t*)&valref,sizeof(valref))
+-    inline void write(int8_t i) throw(PersistException) { 
CCXX_ENGINEWRITE_REF(i); }
+-    inline void write(uint8_t i) throw(PersistException) { 
CCXX_ENGINEWRITE_REF(i); }
+-    inline void write(int16_t i)  throw(PersistException) { 
CCXX_ENGINEWRITE_REF(i); }
+-    inline void write(uint16_t i) throw(PersistException) { 
CCXX_ENGINEWRITE_REF(i); }
+-    inline void write(int32_t i)  throw(PersistException) { 
CCXX_ENGINEWRITE_REF(i); }
+-    inline void write(uint32_t i) throw(PersistException) { 
CCXX_ENGINEWRITE_REF(i); }
+-    inline void write(float i)  throw(PersistException) { 
CCXX_ENGINEWRITE_REF(i); }
+-    inline void write(double i) throw(PersistException) { 
CCXX_ENGINEWRITE_REF(i); }
+-    inline void write(bool i) throw(PersistException) { 
CCXX_ENGINEWRITE_REF(i); }
++    inline void write(int8_t i) { CCXX_ENGINEWRITE_REF(i); }
++    inline void write(uint8_t i) { CCXX_ENGINEWRITE_REF(i); }
++    inline void write(int16_t i) { CCXX_ENGINEWRITE_REF(i); }
++    inline void write(uint16_t i) { CCXX_ENGINEWRITE_REF(i); }
++    inline void write(int32_t i) { CCXX_ENGINEWRITE_REF(i); }
++    inline void write(uint32_t i) { CCXX_ENGINEWRITE_REF(i); }
++    inline void write(float i) { CCXX_ENGINEWRITE_REF(i); }
++    inline void write(double i) { CCXX_ENGINEWRITE_REF(i); }
++    inline void write(bool i) { CCXX_ENGINEWRITE_REF(i); }
+ #undef CCXX_ENGINEWRITE_REF
+ 
+-    void write(const std::string& str) throw(PersistException);
++    void write(const std::string& str);
+ 
+     // Every write operation boils down to one or more of these
+-    void writeBinary(const uint8_t* data, const uint32_t size) 
throw(PersistException);
++    void writeBinary(const uint8_t* data, const uint32_t size);
+ 
+     // Read Operations
+ 
+     /**
+      * reads a PersistObject into a reference overwriting the object.
+      */
+-    void read(PersistObject &object) throw(PersistException);
++    void read(PersistObject &object);
+ 
+     /**
+      * reads a PersistObject into a pointer allocating memory for the object 
if necessary.
+      */
+-    void read(PersistObject *&object) throw(PersistException);
++    void read(PersistObject *&object);
+ 
+     // reads supported primitive types
+   // shortcut, to make the following more readable
+ #define CCXX_ENGINEREAD_REF(valref) 
readBinary((uint8_t*)&valref,sizeof(valref))
+-    inline void read(int8_t& i) throw(PersistException) { 
CCXX_ENGINEREAD_REF(i); }
+-    inline void read(uint8_t& i) throw(PersistException) { 
CCXX_ENGINEREAD_REF(i); }
+-    inline void read(int16_t& i) throw(PersistException) { 
CCXX_ENGINEREAD_REF(i); }
+-    inline void read(uint16_t& i) throw(PersistException) { 
CCXX_ENGINEREAD_REF(i); }
+-    inline void read(int32_t& i) throw(PersistException) { 
CCXX_ENGINEREAD_REF(i); }
+-    inline void read(uint32_t& i) throw(PersistException) { 
CCXX_ENGINEREAD_REF(i); }
+-    inline void read(float& i)  throw(PersistException) { 
CCXX_ENGINEREAD_REF(i); }
+-    inline void read(double& i) throw(PersistException) { 
CCXX_ENGINEREAD_REF(i); }
+-    inline void read(bool &i) throw(PersistException) { 
CCXX_ENGINEREAD_REF(i); }
++    inline void read(int8_t& i) { CCXX_ENGINEREAD_REF(i); }
++    inline void read(uint8_t& i) { CCXX_ENGINEREAD_REF(i); }
++    inline void read(int16_t& i) { CCXX_ENGINEREAD_REF(i); }
++    inline void read(uint16_t& i) { CCXX_ENGINEREAD_REF(i); }
++    inline void read(int32_t& i) { CCXX_ENGINEREAD_REF(i); }
++    inline void read(uint32_t& i) { CCXX_ENGINEREAD_REF(i); }
++    inline void read(float& i) { CCXX_ENGINEREAD_REF(i); }
++    inline void read(double& i) { CCXX_ENGINEREAD_REF(i); }
++    inline void read(bool &i) { CCXX_ENGINEREAD_REF(i); }
+ #undef CCXX_ENGINEREAD_REF
+ 
+-    void read(std::string& str) throw(PersistException);
++    void read(std::string& str);
+ 
+     // Every read operation boiled down to one or more of these
+-    void readBinary(uint8_t* data, uint32_t size) throw(PersistException);
++    void readBinary(uint8_t* data, uint32_t size);
+ 
+ private:
+     /**
+      * reads the actual object data into a pre-instantiated object pointer
+      * by calling the read function of the derived class.
+      */
+-    void readObject(PersistObject* object) throw(PersistException);
++    void readObject(PersistObject* object);
+ 
+     /**
+      * reads in a class name, and caches it into the ClassMap.
+      */
+-    const std::string readClass() throw(PersistException);
++    const std::string readClass();
+ 
+ 
+     /**
+@@ -319,63 +319,63 @@
+ 
+ // Standard >> and << stream operators for PersistObject
+ /** @relates PersistEngine */
+-inline PersistEngine& operator >>( PersistEngine& ar, PersistObject &ob) 
throw(PersistException) {CCXX_RE(ar,ob);}
++inline PersistEngine& operator >>( PersistEngine& ar, PersistObject &ob) 
{CCXX_RE(ar,ob);}
+ /** @relates PersistEngine */
+-inline PersistEngine& operator >>( PersistEngine& ar, PersistObject *&ob) 
throw(PersistException) {CCXX_RE(ar,ob);}
++inline PersistEngine& operator >>( PersistEngine& ar, PersistObject *&ob) 
{CCXX_RE(ar,ob);}
+ /** @relates PersistEngine */
+-inline PersistEngine& operator <<( PersistEngine& ar, PersistObject const 
&ob) throw(PersistException) {CCXX_WE(ar,ob);}
++inline PersistEngine& operator <<( PersistEngine& ar, PersistObject const 
&ob) {CCXX_WE(ar,ob);}
+ /** @relates PersistEngine */
+-inline PersistEngine& operator <<( PersistEngine& ar, PersistObject const 
*ob) throw(PersistException) {CCXX_WE(ar,ob);}
++inline PersistEngine& operator <<( PersistEngine& ar, PersistObject const 
*ob) {CCXX_WE(ar,ob);}
+ 
+ /** @relates PersistEngine */
+-inline PersistEngine& operator >>( PersistEngine& ar, int8_t& ob) 
throw(PersistException) {CCXX_RE(ar,ob);}
++inline PersistEngine& operator >>( PersistEngine& ar, int8_t& ob) 
{CCXX_RE(ar,ob);}
+ /** @relates PersistEngine */
+-inline PersistEngine& operator <<( PersistEngine& ar, int8_t ob)  
throw(PersistException) {CCXX_WE(ar,ob);}
++inline PersistEngine& operator <<( PersistEngine& ar, int8_t ob) 
{CCXX_WE(ar,ob);}
+ 
+ /** @relates PersistEngine */
+-inline PersistEngine& operator >>( PersistEngine& ar, uint8_t& ob) 
throw(PersistException) {CCXX_RE(ar,ob);}
++inline PersistEngine& operator >>( PersistEngine& ar, uint8_t& ob) 
{CCXX_RE(ar,ob);}
+ /** @relates PersistEngine */
+-inline PersistEngine& operator <<( PersistEngine& ar, uint8_t ob)  
throw(PersistException) {CCXX_WE(ar,ob);}
++inline PersistEngine& operator <<( PersistEngine& ar, uint8_t ob) 
{CCXX_WE(ar,ob);}
+ 
+ /** @relates PersistEngine */
+-inline PersistEngine& operator >>( PersistEngine& ar, int16_t& ob) 
throw(PersistException) {CCXX_RE(ar,ob);}
++inline PersistEngine& operator >>( PersistEngine& ar, int16_t& ob) 
{CCXX_RE(ar,ob);}
+ /** @relates PersistEngine */
+-inline PersistEngine& operator <<( PersistEngine& ar, int16_t ob)  
throw(PersistException) {CCXX_WE(ar,ob);}
++inline PersistEngine& operator <<( PersistEngine& ar, int16_t ob) 
{CCXX_WE(ar,ob);}
+ 
+ /** @relates PersistEngine */
+-inline PersistEngine& operator >>( PersistEngine& ar, uint16_t& ob) 
throw(PersistException) {CCXX_RE(ar,ob);}
++inline PersistEngine& operator >>( PersistEngine& ar, uint16_t& ob) 
{CCXX_RE(ar,ob);}
+ /** @relates PersistEngine */
+-inline PersistEngine& operator <<( PersistEngine& ar, uint16_t ob)  
throw(PersistException) {CCXX_WE(ar,ob);}
++inline PersistEngine& operator <<( PersistEngine& ar, uint16_t ob) 
{CCXX_WE(ar,ob);}
+ 
+ /** @relates PersistEngine */
+-inline PersistEngine& operator >>( PersistEngine& ar, int32_t& ob) 
throw(PersistException) {CCXX_RE(ar,ob);}
++inline PersistEngine& operator >>( PersistEngine& ar, int32_t& ob) 
{CCXX_RE(ar,ob);}
+ /** @relates PersistEngine */
+-inline PersistEngine& operator <<( PersistEngine& ar, int32_t ob)  
throw(PersistException) {CCXX_WE(ar,ob);}
++inline PersistEngine& operator <<( PersistEngine& ar, int32_t ob) 
{CCXX_WE(ar,ob);}
+ 
+ /** @relates PersistEngine */
+-inline PersistEngine& operator >>( PersistEngine& ar, uint32_t& ob) 
throw(PersistException) {CCXX_RE(ar,ob);}
++inline PersistEngine& operator >>( PersistEngine& ar, uint32_t& ob) 
{CCXX_RE(ar,ob);}
+ /** @relates PersistEngine */
+-inline PersistEngine& operator <<( PersistEngine& ar, uint32_t ob)  
throw(PersistException) {CCXX_WE(ar,ob);}
++inline PersistEngine& operator <<( PersistEngine& ar, uint32_t ob) 
{CCXX_WE(ar,ob);}
+ 
+ /** @relates PersistEngine */
+-inline PersistEngine& operator >>( PersistEngine& ar, float& ob) 
throw(PersistException) {CCXX_RE(ar,ob);}
++inline PersistEngine& operator >>( PersistEngine& ar, float& ob) 
{CCXX_RE(ar,ob);}
+ /** @relates PersistEngine */
+-inline PersistEngine& operator <<( PersistEngine& ar, float ob)  
throw(PersistException) {CCXX_WE(ar,ob);}
++inline PersistEngine& operator <<( PersistEngine& ar, float ob) 
{CCXX_WE(ar,ob);}
+ 
+ /** @relates PersistEngine */
+-inline PersistEngine& operator >>( PersistEngine& ar, double& ob) 
throw(PersistException) {CCXX_RE(ar,ob);}
++inline PersistEngine& operator >>( PersistEngine& ar, double& ob) 
{CCXX_RE(ar,ob);}
+ /** @relates PersistEngine */
+-inline PersistEngine& operator <<( PersistEngine& ar, double ob) 
throw(PersistException) {CCXX_WE(ar,ob);}
++inline PersistEngine& operator <<( PersistEngine& ar, double ob) 
{CCXX_WE(ar,ob);}
+ 
+ /** @relates PersistEngine */
+-inline PersistEngine& operator >>( PersistEngine& ar, std::string& ob) 
throw(PersistException) {CCXX_RE(ar,ob);}
++inline PersistEngine& operator >>( PersistEngine& ar, std::string& ob) 
{CCXX_RE(ar,ob);}
+ /** @relates PersistEngine */
+-inline PersistEngine& operator <<( PersistEngine& ar, std::string ob) 
throw(PersistException) {CCXX_WE(ar,ob);}
++inline PersistEngine& operator <<( PersistEngine& ar, std::string ob) 
{CCXX_WE(ar,ob);}
+ 
+ /** @relates PersistEngine */
+-inline PersistEngine& operator >>( PersistEngine& ar, bool& ob) 
throw(PersistException) {CCXX_RE(ar,ob);}
++inline PersistEngine& operator >>( PersistEngine& ar, bool& ob) 
{CCXX_RE(ar,ob);}
+ /** @relates PersistEngine */
+-inline PersistEngine& operator <<( PersistEngine& ar, bool ob)  
throw(PersistException) {CCXX_WE(ar,ob);}
++inline PersistEngine& operator <<( PersistEngine& ar, bool ob) 
{CCXX_WE(ar,ob);}
+ 
+ #undef CCXX_RE
+ #undef CCXX_WE
+@@ -390,7 +390,7 @@
+  * the engine
+  */
+ template<class T>
+-PersistEngine& operator <<( PersistEngine& ar, typename std::vector<T> const& 
ob) throw(PersistException)
++PersistEngine& operator <<( PersistEngine& ar, typename std::vector<T> const& 
ob)
+ {
+     ar << (uint32_t)ob.size();
+     for(unsigned int i=0; i < ob.size(); ++i)
+@@ -404,7 +404,7 @@
+  * an engine.
+  */
+ template<class T>
+-PersistEngine& operator >>( PersistEngine& ar, typename std::vector<T>& ob) 
throw(PersistException)
++PersistEngine& operator >>( PersistEngine& ar, typename std::vector<T>& ob)
+ {
+     ob.clear();
+     uint32_t siz;
+@@ -421,7 +421,7 @@
+  * the engine
+  */
+ template<class T>
+-PersistEngine& operator <<( PersistEngine& ar, typename std::deque<T> const& 
ob) throw(PersistException)
++PersistEngine& operator <<( PersistEngine& ar, typename std::deque<T> const& 
ob)
+ {
+     ar << (uint32_t)ob.size();
+   for(typename std::deque<T>::const_iterator it=ob.begin(); it != ob.end(); 
++it)
+@@ -435,7 +435,7 @@
+  * an engine.
+  */
+ template<class T>
+-PersistEngine& operator >>( PersistEngine& ar, typename std::deque<T>& ob) 
throw(PersistException)
++PersistEngine& operator >>( PersistEngine& ar, typename std::deque<T>& ob)
+ {
+     ob.clear();
+     uint32_t siz;
+@@ -456,7 +456,7 @@
+  * to an engine.
+  */
+ template<class Key, class Value>
+-PersistEngine& operator <<( PersistEngine& ar, typename std::map<Key,Value> 
const & ob) throw(PersistException)
++PersistEngine& operator <<( PersistEngine& ar, typename std::map<Key,Value> 
const & ob)
+ {
+     ar << (uint32_t)ob.size();
+     for(typename std::map<Key,Value>::const_iterator it = ob.begin();it != 
ob.end();++it)
+@@ -470,7 +470,7 @@
+  * from an engine.
+  */
+ template<class Key, class Value>
+-PersistEngine& operator >>( PersistEngine& ar, typename std::map<Key,Value>& 
ob) throw(PersistException)
++PersistEngine& operator >>( PersistEngine& ar, typename std::map<Key,Value>& 
ob)
+ {
+     ob.clear();
+     uint32_t siz;
+@@ -488,7 +488,7 @@
+  * serialize a pair of some serializable content to the engine.
+  */
+ template<class x, class y>
+-PersistEngine& operator <<( PersistEngine& ar, std::pair<x,y> &ob) 
throw(PersistException)
++PersistEngine& operator <<( PersistEngine& ar, std::pair<x,y> &ob)
+ {
+     ar << ob.first << ob.second;
+     return ar;
+@@ -499,7 +499,7 @@
+  * deserialize a pair of some serializable content to the engine.
+  */
+ template<class x, class y>
+-PersistEngine& operator >>(PersistEngine& ar, std::pair<x, y> &ob) 
throw(PersistException)
++PersistEngine& operator >>(PersistEngine& ar, std::pair<x, y> &ob)
+ {
+     ar >> ob.first >> ob.second;
+     return ar;
+--- a/inc/commoncpp/tokenizer.h
++++ b/inc/commoncpp/tokenizer.h
+@@ -175,7 +175,7 @@
+         /**
+          * shifts this iterator to the next token in the string.
+          */
+-        iterator &operator++() THROWS (NoSuchElementException);
++        iterator &operator++();
+ 
+         /**
+          * returns the immutable string this iterator
+@@ -185,7 +185,7 @@
+          * invalidated for each iteration. If you need the token,
+          * copy it (e.g. with strdup());
+          */
+-        const char*  operator*() THROWS (NoSuchElementException);
++        const char*  operator*();
+ 
+         /**
+          * returns the next delimiter after the current token or

diff --git a/dev-libs/ucommon/ucommon-7.0.0.ebuild 
b/dev-libs/ucommon/ucommon-7.0.0.ebuild
index db1a90863ba..52f09366593 100644
--- a/dev-libs/ucommon/ucommon-7.0.0.ebuild
+++ b/dev-libs/ucommon/ucommon-7.0.0.ebuild
@@ -2,7 +2,8 @@
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
-inherit autotools
+
+inherit autotools flag-o-matic
 
 DESCRIPTION="Portable C++ runtime for threads and sockets"
 HOMEPAGE="https://www.gnu.org/software/commoncpp";
@@ -11,28 +12,21 @@ SRC_URI="mirror://gnu/commoncpp/${P}.tar.gz"
 LICENSE="LGPL-3"
 SLOT="0/8" # soname version
 KEYWORDS="amd64 ~ppc ~ppc64 x86 ~amd64-linux"
-IUSE="doc static-libs +cxx debug ssl gnutls"
+IUSE="doc +cxx debug ssl gnutls"
 
 RDEPEND="
        ssl? (
-               gnutls? (
-                       net-libs/gnutls:0=
-                       dev-libs/libgcrypt:0=
-               )
-               !gnutls? (
-                       dev-libs/openssl:0=
-               )
+               net-libs/gnutls:=
+               dev-libs/libgcrypt:=
        )"
-
-DEPEND="${RDEPEND}
+DEPEND="${RDEPEND}"
+BDEPEND="
        virtual/pkgconfig
-       doc? ( app-doc/doxygen )
-"
-
-DOCS=(README NEWS SUPPORT ChangeLog AUTHORS)
+       doc? ( app-doc/doxygen )"
 
 PATCHES=(
-       "${FILESDIR}/${PN}-6.0.3-install_gcrypt.m4_file.patch"
+       "${FILESDIR}"/${PN}-6.0.3-install_gcrypt.m4_file.patch
+       "${FILESDIR}"/${PN}-7.0.0-c++17-dynamic-exception-specifications.patch
 )
 
 src_prepare() {
@@ -49,28 +43,33 @@ src_prepare() {
 }
 
 src_configure() {
-       local myconf=""
-       if use ssl; then
-               myconf+=" --with-sslstack=$(usex gnutls gnu ssl) "
-       else
-               myconf+=" --with-sslstack=nossl ";
-       fi
+       # https://bugs.gentoo.org/730018
+       # need to link GCC's libatomic when compiling with clang
+       append-libs -latomic
 
        local myeconfargs=(
-               $(use_enable cxx stdcpp)
-               ${myconf}
-               --enable-atomics
+               --disable-static
                --with-pkg-config
+               # don't bother with openssl, incompatible with the 1.1 API
+               --with-sslstack=$(usex ssl gnu nossl)
+               $(use_enable cxx stdcpp)
        )
-       econf "${myeconfargs}"
+       econf "${myeconfargs[@]}"
 }
 
 src_compile() {
        default
-       use doc && emake doxy
+
+       if use doc; then
+               emake doxy
+               HTML_DOCS=( doc/html/. )
+       fi
 }
 
 src_install() {
-       use doc && HTML_DOCS="doc/html/*"
        default
+       dodoc SUPPORT
+
+       # no static archives
+       find "${ED}" -name '*.la' -delete || die
 }

Reply via email to