diff options
author | David Seifert <soap@gentoo.org> | 2016-09-29 19:04:12 +0200 |
---|---|---|
committer | David Seifert <soap@gentoo.org> | 2016-09-29 19:09:09 +0200 |
commit | 61ea105c86d379360ce4ddc1d975ab6caaa3d8a9 (patch) | |
tree | a8dc453fd723294d016eeb0a67dd1ad9b8cd49b1 /sci-libs/coinor-os | |
parent | kde-plasma/kde-cli-tools: backport patch from upstream to resolve CVE-2016-7787 (diff) | |
download | gentoo-61ea105c86d379360ce4ddc1d975ab6caaa3d8a9.tar.gz gentoo-61ea105c86d379360ce4ddc1d975ab6caaa3d8a9.tar.bz2 gentoo-61ea105c86d379360ce4ddc1d975ab6caaa3d8a9.zip |
sci-libs/coinor-os: Allow for compiling with GCC 6
Gentoo-bug: 594180
* EAPI=6
* Delete .la files unconditionally
Package-Manager: portage-2.3.1
Diffstat (limited to 'sci-libs/coinor-os')
-rw-r--r-- | sci-libs/coinor-os/Manifest | 1 | ||||
-rw-r--r-- | sci-libs/coinor-os/coinor-os-2.10.1.ebuild | 62 | ||||
-rw-r--r-- | sci-libs/coinor-os/files/coinor-os-2.10.1-fix-c++14.patch | 100 |
3 files changed, 163 insertions, 0 deletions
diff --git a/sci-libs/coinor-os/Manifest b/sci-libs/coinor-os/Manifest index d5a01cd3bc78..f6678ca1059f 100644 --- a/sci-libs/coinor-os/Manifest +++ b/sci-libs/coinor-os/Manifest @@ -1 +1,2 @@ +DIST OS-2.10.1.tgz 37106742 SHA256 3db70a66f4b764e3ec7d43a58982098d80d5d7470825ff9dc029da1806c59b05 SHA512 bfc0af075e0db2160db694ec1e6f69c36cd52b29449fcbd689c809db01a9cf5f6a8a59edb7fb7269db5757faa14da5cd9fef34dffc73de7b2953b35fc2b710f0 WHIRLPOOL bd8f0ad49097ed7816ea24aa86db2d28df29734dbf7a8bacc9d4254f3ea52520a4010079d554f4bc500a9dcba468b470e0fe19c27b20c844e5bf7fde7774f89d DIST OS-2.8.3.tgz 36046350 SHA256 45dbedbaf0db850a62d50351e1b855c529edcb627ed4ddea0011afbfc72e4da3 SHA512 33812e4ae12862bb44d0cb7e2210d418ce8fe705988364ee0622fc5aef04491e6675447bcac379a16add15ec4d123d853a5940ce1244a5767f1587c09b435078 WHIRLPOOL 8e802db5d0faf17e11cc11e5768c581b5b686fdea0db9668c6631a3a90aa9d71eb9f684bcfbba8dbdcc66d88ebf9367b8ce86e6c139cd640faf6d90673ab8d6e diff --git a/sci-libs/coinor-os/coinor-os-2.10.1.ebuild b/sci-libs/coinor-os/coinor-os-2.10.1.ebuild new file mode 100644 index 000000000000..40efe07d1a39 --- /dev/null +++ b/sci-libs/coinor-os/coinor-os-2.10.1.ebuild @@ -0,0 +1,62 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +inherit flag-o-matic + +MY_PN=OS + +DESCRIPTION="COIN-OR Optimization Services" +HOMEPAGE="https://projects.coin-or.org/OS/" +SRC_URI="http://www.coin-or.org/download/source/${MY_PN}/${MY_PN}-${PV}.tgz" + +LICENSE="EPL-1.0" +SLOT="0/6" +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" +IUSE="doc examples static-libs test" + +RDEPEND=" + sci-libs/coinor-bcp:= + sci-libs/coinor-bonmin:= + sci-libs/coinor-couenne:= + sci-libs/coinor-clp:= + sci-libs/coinor-dylp:= + sci-libs/coinor-symphony:= + sci-libs/coinor-utils:= + sci-libs/coinor-vol:= + sci-libs/ipopt:=" +DEPEND="${RDEPEND} + virtual/pkgconfig + doc? ( app-doc/doxygen[dot] ) + test? ( sci-libs/coinor-sample )" + +S="${WORKDIR}/${MY_PN}-${PV}/${MY_PN}" + +PATCHES=( "${FILESDIR}/${PN}-2.10.1-fix-c++14.patch" ) + +src_prepare() { + default + + # needed for the --with-coin-instdir + dodir /usr +} + +src_configure() { + append-cppflags -DNDEBUG + + econf \ + --enable-shared \ + $(use_enable static-libs static) \ + --enable-dependency-linking \ + --with-coin-instdir="${ED%/}"/usr +} + +src_install() { + default + use doc && dodoc doc/*.pdf + + # package provides .pc files + find "${D}" -name '*.la' -delete || die +} diff --git a/sci-libs/coinor-os/files/coinor-os-2.10.1-fix-c++14.patch b/sci-libs/coinor-os/files/coinor-os-2.10.1-fix-c++14.patch new file mode 100644 index 000000000000..a788646abfe1 --- /dev/null +++ b/sci-libs/coinor-os/files/coinor-os-2.10.1-fix-c++14.patch @@ -0,0 +1,100 @@ +Fix building with C++14, which errors out due to bool -> T* conversions +and changed semantics caught by -Werror=terminate. + +See also: https://bugs.gentoo.org/show_bug.cgi?id=594180 +Patch partially taken from: https://projects.coin-or.org/OS/changeset/5137/ + +--- a/src/OSCommonInterfaces/OSInstance.cpp ++++ b/src/OSCommonInterfaces/OSInstance.cpp +@@ -165,6 +165,9 @@ + }
+
+ OSInstance::~OSInstance()
++#if __cplusplus >= 201103L
++ noexcept(false)
++#endif
+ {
+ std::ostringstream outStr;
+
+--- a/src/OSCommonInterfaces/OSInstance.h ++++ b/src/OSCommonInterfaces/OSInstance.h +@@ -2267,7 +2267,11 @@ + OSInstance();
+
+ /** The OSInstance class destructor */
+- ~OSInstance();
++ ~OSInstance()
++#if __cplusplus >= 201103L
++ noexcept(false)
++#endif
++ ;
+
+ /** the instanceHeader is implemented as a general file header object
+ * to allow sharing of classes between schemas
+--- a/src/OSCommonInterfaces/OSMatrix.cpp ++++ b/src/OSCommonInterfaces/OSMatrix.cpp +@@ -2297,7 +2297,7 @@ + + if (!processBlocks(rowPartition, rowPartitionSize, + colPartition, colPartitionSize, false, symmetry)) +- return false; ++ return NULL; + return ExpandedMatrixByBlocks.back(); + }// end of MatrixType::getBlocks + +--- a/src/OSParsers/OSParseosil.tab.cpp ++++ b/src/OSParsers/OSParseosil.tab.cpp +@@ -180,7 +180,7 @@ + + #define GETATTRIBUTETEXT \ + for(; ISWHITESPACE( *ch) || isnewline( *ch, osillineno); ch++ ) ; \ +- if( *ch != '=') { osilerror_wrapper( ch, osillineno, "found an attribute not defined"); return false;} \ ++ if( *ch != '=') { osilerror_wrapper( ch, osillineno, "found an attribute not defined"); return NULL;} \ + ch++; \ + for(; ISWHITESPACE( *ch) || isnewline( *ch, osillineno); ch++ ) ; \ + if(*ch == '\"'){ \ +@@ -196,7 +196,7 @@ + *p = ch; \ + for( ; *ch != '\''; ch++); \ + } \ +- else { osilerror_wrapper( ch, osillineno,"missing quote on attribute"); return false;} \ ++ else { osilerror_wrapper( ch, osillineno,"missing quote on attribute"); return NULL;} \ + }\ + numChar = ch - *p; \ + attText = new char[numChar + 1]; \ +@@ -11070,7 +11070,7 @@ + // eat the white space + for( ; ISWHITESPACE( *ch) || isnewline( *ch, osillineno); ch++ ) ; + for(i = 0; sizeOf[i] == *ch; i++, ch++); +- if(i != 6) { osilerror_wrapper( ch,osillineno,"incorrect sizeOf attribute in <base64BinaryData> element"); return false;} ++ if(i != 6) { osilerror_wrapper( ch,osillineno,"incorrect sizeOf attribute in <base64BinaryData> element"); return NULL;} + // ch should be pointing to the first character after sizeOf + GETATTRIBUTETEXT; + ch++; +@@ -11080,7 +11080,7 @@ + // eat the white space + for( ; ISWHITESPACE( *ch) || isnewline( *ch, osillineno); ch++ ) ; + // better have an > sign or not valid +- if(*ch != '>' ) { osilerror_wrapper( ch,osillineno,"<base64BinaryData> element does not have a proper closing >"); return false;} ++ if(*ch != '>' ) { osilerror_wrapper( ch,osillineno,"<base64BinaryData> element does not have a proper closing >"); return NULL;} + ch++; + // we are now pointing start of the data + const char *b64textstart = ch; +@@ -11089,7 +11089,7 @@ + const char *b64textend = ch; + // we should be pointing to </base64BinaryData> + for(i = 0; endBase64BinaryData[i] == *ch; i++, ch++); +- if(i != 18) { osilerror_wrapper( ch,osillineno," problem with <base64BinaryData> element"); return false;} ++ if(i != 18) { osilerror_wrapper( ch,osillineno," problem with <base64BinaryData> element"); return NULL;} + int b64len = b64textend - b64textstart; + b64string = new char[ b64len + 1]; + for(ki = 0; ki < b64len; ki++) b64string[ki] = b64textstart[ ki]; +@@ -11097,7 +11097,7 @@ + // burn the white space + for( ; ISWHITESPACE( *ch) || isnewline( *ch, osillineno); ch++ ) ; + // better have an > sign or not valid +- if(*ch != '>' ) { osilerror_wrapper( ch,osillineno,"</base64BinaryData> element does not have a proper closing >"); return false;} ++ if(*ch != '>' ) { osilerror_wrapper( ch,osillineno,"</base64BinaryData> element does not have a proper closing >"); return NULL;} + ch++; + for( ; ISWHITESPACE( *ch) || isnewline( *ch, osillineno); ch++ ) ; + *p = ch; |