Bug#650708: phonon: FTBFS: error: 'pow' was not declared in this scope
Source: phonon
Version: 4:4.6.0really4.5.0-5
Severity: serious
Tags: patch
Justification: fails to build from source (but built successfully in the past)
User: debian-s390@lists.debian.org
Usertags: s390x
phonon fails to build from source with the following error (the build
log is from s390x, but reproducible on other architectures):
| [ 54%] Building CXX object phonon/CMakeFiles/phonon.dir/pulsestream.cpp.o
| cd phonon && /usr/bin/c++ -DMAKE_PHONON_LIB -D_BSD_SOURCE -DHAVE_PULSEAUDIO -DHAVE_PULSEAUDIO_DEVICE_MANAGER -DHAVE_QZEITGEIST -DPHONON_LIBRARY_PATH=\"/usr/lib/qt4/plugins\" -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-exceptions -DQT_NO_EXCEPTIONS -fno-check-new -fno-common -Woverloaded-virtual -fno-threadsafe-statics -fvisibility=hidden -fvisibility-inlines-hidden -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-check-new -fno-common -fPIC -I. -I../../phonon -I../.. -I../../includes -I/usr/include/qt4/QtXmlPatterns -I/usr/include/qt4/QtHelp -I/usr/include/qt4/QtDBus -I/usr/include/qt4/QtTest -I/usr/include/qt4/QtUiTools -I/usr/include/qt4/QtScript -I/usr/include/qt4/QtSvg -I/usr/include/qt4/QtXml -I/usr/include/
qt4/QtSql -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtDesigner -I/usr/include/qt4/Qt3Support -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtCore -I/usr/include/qt4/Qt -I/usr/share/qt4/mkspecs/default -I/usr/include/qt4 -I/usr/include/glib-2.0 -I/usr/lib/s390x-linux-gnu/glib-2.0/include -I/usr/include/QtZeitgeist -o CMakeFiles/phonon.dir/pulsestream.cpp.o -c ../../phonon/pulsestream.cpp
| ../../phonon/pulsestream.cpp: In member function 'void Phonon::PulseStream::setVolume(const pa_cvolume*)':
| ../../phonon/pulsestream.cpp:84:65: error: 'pow' was not declared in this scope
| make[4]: *** [phonon/CMakeFiles/phonon.dir/pulsestream.cpp.o] Error 1
| make[4]: *** Waiting for unfinished jobs....
| make[3]: *** [phonon/CMakeFiles/phonon.dir/all] Error 2
| make[4]: Leaving directory `/build/buildd-phonon_4.6.0really4.5.0-5-s390x-HR53D5/phonon-4.6.0really4.5.0/obj-s390x-linux-gnu'
| make[3]: Leaving directory `/build/buildd-phonon_4.6.0really4.5.0-5-s390x-HR53D5/phonon-4.6.0really4.5.0/obj-s390x-linux-gnu'
| make[2]: *** [all] Error 2
| dh_auto_build: make -j2 returned exit code 2
| make[1]: *** [pre_build_dh_auto_build] Error 2
| make[2]: Leaving directory `/build/buildd-phonon_4.6.0really4.5.0-5-s390x-HR53D5/phonon-4.6.0really4.5.0/obj-s390x-linux-gnu'
| make: make[1]: Leaving directory `/build/buildd-phonon_4.6.0really4.5.0-5-s390x-HR53D5/phonon-4.6.0really4.5.0'
| *** [debian/dhmk_build] Error 2
The problem is that pow is used without including <cmath>, that said
upstream has choosen a different solution and use the Qt function
instead, as shown in the patch below.
This package will block the s390x bootstrapping soon, so it would be
nice if the fix can be uploaded shortly. Thanks in advance.
commit 436d5379abe83c53c652d8a251f7ab504a1523df
Author: Colin Guthrie <colin@mageia.org>
Date: Thu Aug 4 16:55:47 2011 +0100
pulse: Use qPow() as pow() is sometimes not found.
diff --git a/phonon/pulsestream.cpp b/phonon/pulsestream.cpp
index d1e6711..e129f1b 100644
--- a/phonon/pulsestream.cpp
+++ b/phonon/pulsestream.cpp
@@ -21,6 +21,7 @@
*/
#include "pulsestream_p.h"
+#include <QtCore/qmath.h>
QT_BEGIN_NAMESPACE
@@ -81,7 +82,7 @@ void PulseStream::setVolume(const pa_cvolume *volume)
// AudioOutput expects the "backend" to supply values that have been
// adjusted for Stephens' law, so we need to fudge them accordingly
// so that the %ages match up in KMix/the application's own slider.
- emit volumeChanged(pow(vol, VOLTAGE_TO_LOUDNESS_EXPONENT));
+ emit volumeChanged(qPow(vol, VOLTAGE_TO_LOUDNESS_EXPONENT));
}
}
-- System Information:
Debian Release: wheezy/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: s390x
Kernel: Linux 3.1.0-1-s390x (SMP w/2 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Reply to: