commit:     b4f25602d999f03cf7ac5c936971ac145f4226f8
Author:     David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Sat Oct 29 17:40:38 2016 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sat Oct 29 18:10:01 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b4f25602

sci-visualization/xds-viewer: Allow for compiling with GCC 6

Gentoo-bug: 598126
* EAPI=6
* Add missing sub-slot operators

Package-Manager: portage-2.3.2

 .../files/xds-viewer-0.6-fix-c++14.patch           | 66 ++++++++++++++++++++++
 ...-viewer-0.6.ebuild => xds-viewer-0.6-r1.ebuild} | 12 ++--
 2 files changed, 72 insertions(+), 6 deletions(-)

diff --git a/sci-visualization/xds-viewer/files/xds-viewer-0.6-fix-c++14.patch 
b/sci-visualization/xds-viewer/files/xds-viewer-0.6-fix-c++14.patch
new file mode 100644
index 00000000..612b503
--- /dev/null
+++ b/sci-visualization/xds-viewer/files/xds-viewer-0.6-fix-c++14.patch
@@ -0,0 +1,66 @@
+Fix building with C++14, caused by invalid implicit T* -> bool conversions.
+See also: https://bugs.gentoo.org/show_bug.cgi?id=598126
+
+--- a/src/CbfReader.cpp
++++ b/src/CbfReader.cpp
+@@ -315,12 +315,12 @@
+ 
+       for ( int i = 0;i < nx*ny;i++ )
+       {
+-              if ( tapin.get( sc ) == 0 )return -4;
++              if ( !tapin.get( sc ) )return -4;
+               diff = sc;
+               if ( diff == -128 )
+               {
+-                      if ( tapin.get( uc0 ) == 0 )return -4;
+-                      if ( tapin.get( uc1 ) == 0 )return -4;
++                      if ( !tapin.get( uc0 ) )return -4;
++                      if ( !tapin.get( uc1 ) )return -4;
+                       tmp0 = uc0;
+                       if ( uc0 < 0 ) tmp0 += 256; // converting signed to 
unsigned char
+                       diff = uc1;
+@@ -329,15 +329,15 @@
+                       if ( diff > 32767 )diff -= 65536;
+                       if ( diff == -32768 )
+                       {
+-                              if ( tapin.get( uc0 ) == 0 )return -4;
+-                              if ( tapin.get( uc1 ) == 0 )return -4;
++                              if ( !tapin.get( uc0 ) )return -4;
++                              if ( !tapin.get( uc1 ) )return -4;
+                               tmp0 = uc0;
+                               if ( tmp0 < 0 ) tmp0 += 256; // converting 
signed to unsigned char
+                               tmp1 = uc1;
+                               if ( tmp1 < 0 ) tmp1 += 256; // converting 
signed to unsigned char
+                               diff = tmp0 + 256 * tmp1;
+-                              if ( tapin.get( uc0 ) == 0 )return -4;
+-                              if ( tapin.get( uc1 ) == 0 )return -4;
++                              if ( !tapin.get( uc0 ) )return -4;
++                              if ( !tapin.get( uc1 ) )return -4;
+                               tmp0 = uc0;
+                               if ( tmp0 < 0 ) tmp0 += 256; // converting 
signed to unsigned char
+                               tmp1 = uc1;
+@@ -359,7 +359,7 @@
+ {
+       std::ifstream::pos_type streamPos = tapin.tellg();
+ 
+-      char binaryMarker[5] = {12, 26, 4, 213, '\0'};
++      char binaryMarker[5] = {12, 26, 4, (char)213, '\0'};
+       char buffer[5] = {0, 0, 0, 0, '\0'};
+ 
+       bool equal = true;
+@@ -448,13 +448,13 @@
+ 
+ int CbfReader::checkImageFormat( std::ifstream& tapin )
+ {
+-      if ( tapin == 0 )return -2; // Cannot open image file
++      if ( !tapin )return -2; // Cannot open image file
+ 
+       { // Check image file format
+               std::string s( "###CBF: " );
+               char label[9];
+               for ( int i = 0;i < 8;i++ )
+-                      if ( tapin.get( label[i] ) == false )return -4; // 
Cannot read image file
++                      if ( !tapin.get( label[i] ) )return -4; // Cannot read 
image file
+               label[8] = '\0';
+               std::string sLabel = ( std::string )label;
+ 

diff --git a/sci-visualization/xds-viewer/xds-viewer-0.6.ebuild 
b/sci-visualization/xds-viewer/xds-viewer-0.6-r1.ebuild
similarity index 59%
rename from sci-visualization/xds-viewer/xds-viewer-0.6.ebuild
rename to sci-visualization/xds-viewer/xds-viewer-0.6-r1.ebuild
index 6a79a58..3d4b78c 100644
--- a/sci-visualization/xds-viewer/xds-viewer-0.6.ebuild
+++ b/sci-visualization/xds-viewer/xds-viewer-0.6-r1.ebuild
@@ -1,12 +1,12 @@
-# Copyright 1999-2013 Gentoo Foundation
+# Copyright 1999-2016 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
-EAPI=4
+EAPI=6
 
 inherit cmake-utils
 
-DESCRIPTION="Viewing X-ray diffraction and control images in the context of 
data processing by the XDS"
+DESCRIPTION="X-ray diffraction/control image viewer in the context of data 
processing by XDS"
 HOMEPAGE="http://xds-viewer.sourceforge.net/";
 SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
 
@@ -17,9 +17,9 @@ IUSE=""
 
 RDEPEND="
        dev-libs/glib:2
-       media-libs/libpng
+       media-libs/libpng:0=
        dev-qt/qtgui:4"
 DEPEND="${RDEPEND}"
 
-DOCS="README"
-HTML_DOCS="src/doc/*"
+HTML_DOCS=( src/doc/. )
+PATCHES=( "${FILESDIR}"/${P}-fix-c++14.patch )

Reply via email to