Bug#890634: eq10q: FTBFS with glibc 2.27: error: 'pow10' was not declared in this scope

Aurelien Jarno aurel32 at debian.org
Fri Feb 16 23:48:03 GMT 2018


Package: eq10q
Version: 2.2~repack0-2
Severity: important
Tags: patch
User: debian-glibc at lists.debian.org
Usertags: 2.27

eq10q 2.2~repack0-2 fails to build with glibc 2.27 (2.27-0experimental0 from
experimental):

| /<<PKGBUILDDIR>>/gui/widgets/bodeplot.cpp: In member function 'virtual void PlotEQCurve::resetCenterSpan()':
| /<<PKGBUILDDIR>>/gui/widgets/bodeplot.cpp:197:31: error: 'pow10' was not declared in this scope
|    double cn = MIN_FREQ * sqrt(pow10(sp));
|                                ^~~~~
| /<<PKGBUILDDIR>>/gui/widgets/bodeplot.cpp:197:31: note: suggested alternative: 'powl'
|    double cn = MIN_FREQ * sqrt(pow10(sp));
|                                ^~~~~
|                                powl
| /<<PKGBUILDDIR>>/gui/widgets/bodeplot.cpp: In member function 'virtual void PlotEQCurve::setCenterSpan(double, double)':
| /<<PKGBUILDDIR>>/gui/widgets/bodeplot.cpp:203:29: error: 'pow10' was not declared in this scope
|    m_minFreq = center / sqrt(pow10(span));
|                              ^~~~~
| /<<PKGBUILDDIR>>/gui/widgets/bodeplot.cpp:203:29: note: suggested alternative: 'powl'
|    m_minFreq = center / sqrt(pow10(span));
|                              ^~~~~
|                              powl
| /<<PKGBUILDDIR>>/gui/widgets/bodeplot.cpp: In member function 'virtual void PlotEQCurve::setCenter(double)':
| /<<PKGBUILDDIR>>/gui/widgets/bodeplot.cpp:249:33: error: 'pow10' was not declared in this scope
|    double cmin = MIN_FREQ * sqrt(pow10(sp));
|                                  ^~~~~
| /<<PKGBUILDDIR>>/gui/widgets/bodeplot.cpp:249:33: note: suggested alternative: 'powl'
|    double cmin = MIN_FREQ * sqrt(pow10(sp));
|                                  ^~~~~
|                                  powl
| /<<PKGBUILDDIR>>/gui/widgets/bodeplot.cpp: In member function 'virtual void PlotEQCurve::setSpan(double)':
| /<<PKGBUILDDIR>>/gui/widgets/bodeplot.cpp:262:32: error: 'pow10' was not declared in this scope
|    double cn = m_minFreq * sqrt(pow10(sp_act));
|                                 ^~~~~
| /<<PKGBUILDDIR>>/gui/widgets/bodeplot.cpp:262:32: note: suggested alternative: 'powl'
|    double cn = m_minFreq * sqrt(pow10(sp_act));
|                                 ^~~~~
|                                 powl
| /<<PKGBUILDDIR>>/gui/widgets/bodeplot.cpp: In member function 'void PlotEQCurve::recomputeCenterFreq(double)':
| /<<PKGBUILDDIR>>/gui/widgets/bodeplot.cpp:309:27: error: 'pow10' was not declared in this scope
|    double cn = fmin * sqrt(pow10(sp_act));
|                            ^~~~~
| /<<PKGBUILDDIR>>/gui/widgets/bodeplot.cpp:309:27: note: suggested alternative: 'powl'
|    double cn = fmin * sqrt(pow10(sp_act));
|                            ^~~~~
|                            powl
| make[3]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu'
| [ 87%] Built target bassup_gui
| gui/widgets/CMakeFiles/eqwin.dir/build.make:257: recipe for target 'gui/widgets/CMakeFiles/eqwin.dir/bodeplot.cpp.o' failed
| make[3]: *** [gui/widgets/CMakeFiles/eqwin.dir/bodeplot.cpp.o] Error 1

A full build logs is available there:
http://aws-logs.debian.net/2018/02/07/glibc-exp/eq10q_2.2~repack0-2_unstable_glibc-exp.log

Starting with glibc 2.27, the libm function pow10 is no longer
supported for. The standard exp10 (from TS 18661-4:2015) should be used
instead. The attached patch fixes that.
-------------- next part --------------
diff -Nru eq10q-2.2~repack0/debian/patches/05-pow10.patch eq10q-2.2~repack0/debian/patches/05-pow10.patch
--- eq10q-2.2~repack0/debian/patches/05-pow10.patch
+++ eq10q-2.2~repack0/debian/patches/05-pow10.patch
@@ -0,0 +1,73 @@
+Description: Replace deprecated pow10 by exp10.
+Author: Aurelien Jarno <aurel32 at debian.org>
+Forwarded: no
+
+--- eq10q-2.2~repack0.orig/gui/widgets/bandctl.cpp
++++ eq10q-2.2~repack0/gui/widgets/bandctl.cpp
+@@ -949,7 +949,7 @@ bool BandCtl::parseBtnString(BandCtl::Bu
+   if(str_k.length() > 0)
+   {
+     val_k = atof(str_k.c_str()) * 1e3;
+-    val *= pow10(3.0 - str.length());
++    val *= exp10(3.0 - str.length());
+     if(str.length() > 3)
+     {
+       //throw an error, imposible to match str > 3 with k
+@@ -960,7 +960,7 @@ bool BandCtl::parseBtnString(BandCtl::Bu
+   }
+   if(str_d.length() > 0)
+   {
+-    val_d = atof(str_d.c_str())/ pow10((double)str_d.length());
++    val_d = atof(str_d.c_str())/ exp10((double)str_d.length());
+   }
+    
+   btn->value = val + val_k + val_d;
+--- eq10q-2.2~repack0.orig/gui/widgets/bodeplot.cpp
++++ eq10q-2.2~repack0/gui/widgets/bodeplot.cpp
+@@ -194,14 +194,14 @@ void PlotEQCurve::resetCenterSpan()
+ {
+   //Compute center and span for the full range spectrum
+   double sp = log10(MAX_FREQ/MIN_FREQ);
+-  double cn = MIN_FREQ * sqrt(pow10(sp));
++  double cn = MIN_FREQ * sqrt(exp10(sp));
+   setCenterSpan(cn, sp);
+ }
+ 
+ void PlotEQCurve::setCenterSpan(double center, double span)
+ { 
+-  m_minFreq = center / sqrt(pow10(span));
+-  m_maxFreq = center * sqrt(pow10(span));
++  m_minFreq = center / sqrt(exp10(span));
++  m_maxFreq = center * sqrt(exp10(span));
+     
+   //Initalize the grid
+   const double f_grid[GRID_VERTICAL_LINES] = {20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0,
+@@ -246,8 +246,8 @@ void PlotEQCurve::setCenter(double cente
+ {
+   //Limit center to the possible range according the current span
+   double sp = log10(m_maxFreq/m_minFreq);
+-  double cmin = MIN_FREQ * sqrt(pow10(sp));
+-  double cmax = MAX_FREQ / sqrt(pow10(sp));
++  double cmin = MIN_FREQ * sqrt(exp10(sp));
++  double cmax = MAX_FREQ / sqrt(exp10(sp));
+   
+   double cn = center;
+   cn = cn > cmax ? cmax : cn;
+@@ -259,7 +259,7 @@ void PlotEQCurve::setSpan(double span)
+ {
+   //Limit center to the possible range according the current span
+   double sp_act = log10(m_maxFreq/m_minFreq);
+-  double cn = m_minFreq * sqrt(pow10(sp_act));
++  double cn = m_minFreq * sqrt(exp10(sp_act));
+   double smax1 = 2.0*log10(cn/MIN_FREQ);
+   double smax2= 2.0*log10(MAX_FREQ/cn);
+   double smax = smax1 < smax2 ? smax1 : smax2;
+@@ -306,7 +306,7 @@ void PlotEQCurve::recomputeCenterFreq(do
+   double fmax = MIN_FREQ*pow((MAX_FREQ/MIN_FREQ),((local_x2 + 3.5)/((double)m_zoom_surface_ptr->get_width())));
+   
+   double sp_act = log10(fmax/fmin);
+-  double cn = fmin * sqrt(pow10(sp_act));
++  double cn = fmin * sqrt(exp10(sp_act));
+   setCenter(cn);
+ }
+ 
diff -Nru eq10q-2.2~repack0/debian/patches/series eq10q-2.2~repack0/debian/patches/series
--- eq10q-2.2~repack0/debian/patches/series
+++ eq10q-2.2~repack0/debian/patches/series
@@ -2,3 +2,4 @@
 02-remove_sse_flags.patch
 03-fix_flags.patch
 04-spelling.patch
+05-pow10.patch


More information about the pkg-multimedia-maintainers mailing list