[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: