commit:     688d9675782dfc162d4e6cff04c668f7516118d0
Author:     Mike Frysinger <vapier <AT> chromium <DOT> org>
AuthorDate: Wed Jan 31 15:55:37 2018 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Wed Jan 31 15:55:53 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=688d9675

app-test/opensp: fix builds w/newer clang

Bug: https://crbug.com/806958

 app-text/opensp/files/opensp-1.5.2-c11-using.patch | 77 ++++++++++++++++++++++
 app-text/opensp/opensp-1.5.2-r6.ebuild             |  1 +
 2 files changed, 78 insertions(+)

diff --git a/app-text/opensp/files/opensp-1.5.2-c11-using.patch 
b/app-text/opensp/files/opensp-1.5.2-c11-using.patch
new file mode 100644
index 00000000000..a12bf9a9b55
--- /dev/null
+++ b/app-text/opensp/files/opensp-1.5.2-c11-using.patch
@@ -0,0 +1,77 @@
+Fix build issues due to access declarations: https://crbug.com/806958
+  ISO C++11 does not allow access declarations; use using declarations instead.
+
+The link to "Bug Tracker" on http://openjade.sourceforge.net/bugs.html
+is not working. Sent a mail containing bug report to the Openjade-devel@
+address on that page.
+
+Patch by Rahul Chaudhry <[email protected]>
+
+--- a/include/IList.h
++++ b/include/IList.h
+@@ -26,8 +26,8 @@ public:
+   void swap(IList<T> &list) { IListBase::swap(list); }
+   T *head() const { return (T *)IListBase::head(); }
+   T *get() { return (T *)IListBase::get(); }
+-  IListBase::clear;
+-  IListBase::empty;
++  using IListBase::clear;
++  using IListBase::empty;
+ friend class IListIter<T>;
+ private:
+   IList(const IList<T> &);    // undefined
+--- a/include/IListIter.h
++++ b/include/IListIter.h
+@@ -17,8 +17,8 @@ public:
+   IListIter(const IList<T> &list) : IListIterBase(list) { }
+   T *cur() const { return (T *)IListIterBase::cur(); }
+   
+-  IListIterBase::next;
+-  IListIterBase::done;
++  using IListIterBase::next;
++  using IListIterBase::done;
+ };
+ 
+ #ifdef SP_NAMESPACE
+--- a/include/Ptr.h
++++ b/include/Ptr.h
+@@ -69,8 +69,8 @@ public:
+   const T *operator->() const { return Ptr<T>::pointer(); }
+   const T &operator*() const { return *Ptr<T>::pointer(); }
+   void swap(ConstPtr<T> &p) { Ptr<T>::swap(p); }
+-  Ptr<T>::isNull;
+-  Ptr<T>::clear;
++  using Ptr<T>::isNull;
++  using Ptr<T>::clear;
+   Boolean operator==(const Ptr<T> &p) const { return Ptr<T>::operator==(p); }
+   Boolean operator!=(const Ptr<T> &p) const { return Ptr<T>::operator!=(p); }
+   Boolean operator==(const ConstPtr<T> &p) const {
+--- a/lib/Parser.h
++++ b/lib/Parser.h
+@@ -62,16 +62,16 @@ public:
+   Parser(const SgmlParser::Params &);
+   Event *nextEvent();
+   void parseAll(EventHandler &, const volatile sig_atomic_t *cancelPtr);
+-  ParserState::sdPointer;
+-  ParserState::instanceSyntaxPointer;
+-  ParserState::prologSyntaxPointer;
+-  ParserState::activateLinkType;
+-  ParserState::allLinkTypesActivated;
+-  ParserState::entityManager;
+-  ParserState::entityCatalog;
+-  ParserState::baseDtd;
+-  ParserState::options;
+-  ParserState::instantiateDtd;
++  using ParserState::sdPointer;
++  using ParserState::instanceSyntaxPointer;
++  using ParserState::prologSyntaxPointer;
++  using ParserState::activateLinkType;
++  using ParserState::allLinkTypesActivated;
++  using ParserState::entityManager;
++  using ParserState::entityCatalog;
++  using ParserState::baseDtd;
++  using ParserState::options;
++  using ParserState::instantiateDtd;
+   friend class PiAttspecParser;
+ private:
+   Parser(const Parser &);     // undefined

diff --git a/app-text/opensp/opensp-1.5.2-r6.ebuild 
b/app-text/opensp/opensp-1.5.2-r6.ebuild
index bb6d63be113..738ed37fc6b 100644
--- a/app-text/opensp/opensp-1.5.2-r6.ebuild
+++ b/app-text/opensp/opensp-1.5.2-r6.ebuild
@@ -34,6 +34,7 @@ S=${WORKDIR}/${MY_P}
 
 src_prepare() {
        epatch "${FILESDIR}"/${P}-fix-segfault.patch
+       epatch "${FILESDIR}"/${P}-c11-using.patch
        use prefix && eautoreconf
 }
 

Reply via email to