Hi, 

The libksysguard-5.5.4 package fails to build and from the error log it 
looks like it is down to glibc-2.23...


In file included from /tmp/kf5-plasma/libksysguard
plasma/libksysguard-5.5.4/signalplotter/kgraphicssignalplotter.cpp:25:0:
/tmp/kf5-plasma/libksysguard-5.5.4/signalplotter/ksignalplotter.cpp: In 
member function 'QString
KGraphicsSignalPlotter::valueAsString(qreal, int) const':
/tmp/kf5-plasma/libksysguard
plasma/libksysguard-5.5.4/signalplotter/ksignalplotter.cpp:1053:19: 
error: 'isnan' was not declared in this
scope
     if(isnan(value))
                   ^
/tmp/kf5-plasma/libksysguard
plasma/libksysguard-5.5.4/signalplotter/ksignalplotter.cpp:1053:19: note: s
suggested alternative:
In file included from /usr/include/c++/5.3.0/random:38:0,
                 from /usr/include/c++/5.3.0/bits/stl_algo.h:66,
                 from /usr/include/c++/5.3.0/algorithm:62,
                 from /opt/qt5/include/QtCore/qglobal.h:85,
                 from /opt/qt5/include/QtCore/qalgorithms.h:37,
                 from /opt/qt5/include/QtCore/qlist.h:37,
                 from /opt/qt5/include/QtCore/QList:1,
                 from /tmp/kf5-plasma/libksysguard
plasma/libksysguard-5.5.4/signalplotter/kgraphicssignalplotter.h:27,
                 from /tmp/kf5-plasma/libksysguard
plasma/libksysguard-5.5.4/signalplotter/ksignalplotter.cpp:25,
                 from /tmp/kf5-plasma/libksysguard
plasma/libksysguard-5.5.4/signalplotter/kgraphicssignalplotter.cpp:25:
/usr/include/c++/5.3.0/cmath:641:5: note:   'std::isnan'
     isnan(_Tp __x)


The following patch will fix it though...

--- ksignalplotter.cpp.orig     2016-02-28 22:19:49.330612122 +0000
+++ ksignalplotter.cpp  2016-02-28 22:20:29.997607566 +0000
@@ -32,7 +32,6 @@
 #include "ksignalplotter_p.h"
 #include "processcore/processcore_debug.h"
 
-#include <math.h>  //For floor, ceil, log10 etc for calculating ranges
 #include <QPainter>
 #include <QPixmap>
 #include <QPainterPath>
@@ -48,7 +47,7 @@
 
 #include <klocalizedstring.h>
 #include <kiconloader.h>
-#include <math.h>
+#include <cmath>
 #include <limits>
 
 #ifdef SVG_SUPPORT
@@ -484,20 +483,20 @@
         qreal value=0;
         for(int i = sampleBuf.count()-1; i>= 0; i--) {
             qreal newValue = sampleBuf[i];
-            if( !isinf(newValue) && !isnan(newValue) )
+            if( !std::isinf(newValue) && !std::isnan(newValue) )
                 value += newValue;
         }
-        if(isnan(mMinValue) || mMinValue > value) mMinValue = value;
-        if(isnan(mMaxValue) || mMaxValue < value) mMaxValue = value;
+        if(std::isnan(mMinValue) || mMinValue > value) mMinValue = value;
+        if(std::isnan(mMaxValue) || mMaxValue < value) mMaxValue = value;
         if(value > 0.7*mMaxValue)
             mRescaleTime = time;
     } else {
         qreal value;
         for(int i = sampleBuf.count()-1; i>= 0; i--) {
             value = sampleBuf[i];
-            if( !isinf(value) && !isnan(value) ) {
-                if(isnan(mMinValue) || mMinValue > value) mMinValue = v
value;
-                if(isnan(mMaxValue) || mMaxValue < value) mMaxValue = v
value;
+            if( !std::isinf(value) && !std::isnan(value) ) {
+                if(std::isnan(mMinValue) || mMinValue > value) mMinValue = v
value;
+                if(std::isnan(mMaxValue) || mMaxValue < value) mMaxValue = v
value;
                 if(value > 0.7*mMaxValue)
                     mRescaleTime = time;
             }
@@ -788,9 +787,9 @@
     qreal max = mUserMaxValue;
     qreal min = mUserMinValue;
     if( mUseAutoRange ) {
-        if(!isnan(mMaxValue) && mMaxValue * 0.99 > max)  //Allow max value t
to go very slightly over the given max, for rounding reasons
+        if(!std::isnan(mMaxValue) && mMaxValue * 0.99 > max)  //Allow max v
value to go very slightly over the given max, for rounding reasons
             max = mMaxValue;
-        if(!isnan(mMinValue) && mMinValue * 0.99 < min) {
+        if(!std::isnan(mMinValue) && mMinValue * 0.99 < min) {
             min = mMinValue;
         }
     }
@@ -919,23 +918,23 @@
     bool firstLine = true;
     for (int j = 0; j < count; ++j) {
         qreal point0 = datapoints[j];
-        if( isnan(point0) )
+        if( std::isnan(point0) )
             continue; //Just do not draw points with nans. skip them
 
         qreal point1 = prev_datapoints[j];
         qreal point2 = prev_prev_datapoints[j];
 
-        if(isnan(point1))
+        if(std::isnan(point1))
             point1 = point0;
-        else if(mSmoothGraph && !isinf(point1)) {
+        else if(mSmoothGraph && !std::isinf(point1)) {
             // Apply a weighted average just to smooth the graph out a bit
             // Do not try to smooth infinities or nans
             point0 = (2*point0 + point1)/3;
-            if(!isnan(point2) && !isinf(point2))
+            if(!std::isnan(point2) && !std::isinf(point2))
                 point1 = (2*point1 + point2)/3;
             // We don't bother to average out y2.  This will introduce sl
slight inaccuracies in the gradients, but they aren't really noticeable.
         }
-        if(isnan(point2))
+        if(std::isnan(point2))
             point2 = point1;
 
         if (mStackBeams) {
@@ -1045,12 +1044,12 @@
 }
 QString KSignalPlotter::lastValueAsString( int i, int precision) const
 {
-    if(d->mBeamData.isEmpty() || d->mBeamData.first().size() <= i || isnan(d
(d->mBeamData.first().at(i))) return QString();
+    if(d->mBeamData.isEmpty() || d->mBeamData.first().size() <= i || std
std::isnan(d->mBeamData.first().at(i))) return QString();
     return valueAsString(d->mBeamData.first().at(i), pr
precision); //retrieve the newest value for this beam
 }
 QString KSignalPlotter::valueAsString( qreal value, int precision) const
 {
-    if(isnan(value))
+    if(std::isnan(value))
         return QString();
     value = value / d->mScaleDownBy; // scale the value.  E.g. from Bytes 
to KiB
     return d->scaledValueAsString(value, precision);


Regards, Lee.



-- 
http://lists.linuxfromscratch.org/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to