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