Package: fmit Version: 1.0.0-1 Severity: important Tags: patch User: debian-gl...@lists.debian.org Usertags: 2.27
fmit 1.0.0-1 fails to build with glibc 2.27 (2.27-0experimental0 from experimental): | cd /<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/libs/Music && /usr/bin/c++ -DCAPTURE_ALSA -DCAPTURE_JACK -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_OPENGL_LIB -isystem /usr/include/qt4 -isystem /usr/include/qt4/QtOpenGL -isystem /usr/include/qt4/QtGui -isystem /usr/include/qt4/QtCore -I/<<PKGBUILDDIR>>/libs/Music/../../libs -I/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/libs/Music -Wall -DPREFIX=\"/usr\" -DPACKAGE_NAME=\"fmit\" -DPACKAGE_VERSION=\"1.0.0\" -o CMakeFiles/Music.dir/Algorithm.o -c /<<PKGBUILDDIR>>/libs/Music/Algorithm.cpp | In file included from /<<PKGBUILDDIR>>/libs/Music/Algorithm.h:28:0, | from /<<PKGBUILDDIR>>/libs/Music/Algorithm.cpp:20: | /<<PKGBUILDDIR>>/libs/Music/Music.h: In function 'double Music::invlp(double)': | /<<PKGBUILDDIR>>/libs/Music/Music.h:288:16: error: 'pow10' was not declared in this scope | return pow10(value/20.0); | ^~~~~ | /<<PKGBUILDDIR>>/libs/Music/Music.h:288:16: note: suggested alternative: 'powl' | return pow10(value/20.0); | ^~~~~ | powl | libs/Music/CMakeFiles/Music.dir/build.make:65: recipe for target 'libs/Music/CMakeFiles/Music.dir/Algorithm.o' failed | make[3]: *** [libs/Music/CMakeFiles/Music.dir/Algorithm.o] Error 1 | make[3]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu' | CMakeFiles/Makefile2:88: recipe for target 'libs/Music/CMakeFiles/Music.dir/all' failed | make[2]: *** [libs/Music/CMakeFiles/Music.dir/all] Error 2 | make[2]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu' | Makefile:154: recipe for target 'all' failed | make[1]: *** [all] Error 2 | make[1]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu' | dh_auto_build: cd obj-x86_64-linux-gnu && make -j1 returned exit code 2 | debian/rules:11: recipe for target 'build-arch' failed | make: *** [build-arch] Error 2 | dpkg-buildpackage: error: debian/rules build-arch subprocess returned exit status 2cd /<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/libs/Music && /usr/bin/c++ -DCAPTURE_ALSA -DCAPTURE_JACK -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_OPENGL_LIB -isystem /usr/include/qt4 -isystem /usr/include/qt4/QtOpenGL -isystem /usr/include/qt4/QtGui -isystem /usr/include/qt4/QtCore -I/<<PKGBUILDDIR>>/libs/Music/../../libs -I/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/libs/Music -Wall -DPREFIX=\"/usr\" -DPACKAGE_NAME=\"fmit\" -DPACKAGE_VERSION=\"1.0.0\" -o CMakeFiles/Music.dir/Algorithm.o -c /<<PKGBUILDDIR>>/libs/Music/Algorithm.cpp | In file included from /<<PKGBUILDDIR>>/libs/Music/Algorithm.h:28:0, | from /<<PKGBUILDDIR>>/libs/Music/Algorithm.cpp:20: | /<<PKGBUILDDIR>>/libs/Music/Music.h: In function 'double Music::invlp(double)': | /<<PKGBUILDDIR>>/libs/Music/Music.h:288:16: error: 'pow10' was not declared in this scope | return pow10(value/20.0); | ^~~~~ | /<<PKGBUILDDIR>>/libs/Music/Music.h:288:16: note: suggested alternative: 'powl' | return pow10(value/20.0); | ^~~~~ | powl | libs/Music/CMakeFiles/Music.dir/build.make:65: recipe for target 'libs/Music/CMakeFiles/Music.dir/Algorithm.o' failed | make[3]: *** [libs/Music/CMakeFiles/Music.dir/Algorithm.o] Error 1 | make[3]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu' | CMakeFiles/Makefile2:88: recipe for target 'libs/Music/CMakeFiles/Music.dir/all' failed | make[2]: *** [libs/Music/CMakeFiles/Music.dir/all] Error 2 | make[2]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu' | Makefile:154: recipe for target 'all' failed | make[1]: *** [all] Error 2 | make[1]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu' | dh_auto_build: cd obj-x86_64-linux-gnu && make -j1 returned exit code 2 | debian/rules:11: recipe for target 'build-arch' failed | make: *** [build-arch] Error 2 | dpkg-buildpackage: error: debian/rules build-arch subprocess returned exit status 2 A full build logs is available there: http://aws-logs.debian.net/2018/02/07/glibc-exp/fmit_1.0.0-1_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.
diff -Nru fmit-1.0.0/debian/patches/pow10.patch fmit-1.0.0/debian/patches/pow10.patch --- fmit-1.0.0/debian/patches/pow10.patch +++ fmit-1.0.0/debian/patches/pow10.patch @@ -0,0 +1,15 @@ +Description: Replace deprecated pow10 by exp10. +Author: Aurelien Jarno <aure...@debian.org> +Forwarded: no + +--- fmit-1.0.0.orig/libs/Music/Music.h ++++ fmit-1.0.0/libs/Music/Music.h +@@ -285,7 +285,7 @@ namespace Music + // TODO cannot create a template so easily because the pow10 is not defined for all types + inline double invlp(double value) + { +- return pow10(value/20.0); ++ return exp10(value/20.0); + // return pow(TYPE(10), value/TYPE(20)); + } + diff -Nru fmit-1.0.0/debian/patches/series fmit-1.0.0/debian/patches/series --- fmit-1.0.0/debian/patches/series +++ fmit-1.0.0/debian/patches/series @@ -0,0 +1 @@ +pow10.patch