Discussion:
Processed: Re: Bug#849589: ardour: undefined symbol: fftwf_make_planner_thread_safe
Add Reply
Debian Bug Tracking System
2016-12-29 00:40:02 UTC
Reply
Permalink
Raw Message
severity -1 serious
Bug #849589 [ardour] ardour: undefined symbol: fftwf_make_planner_thread_safe
Severity set to 'serious' from 'important'
clone -1 -2
Bug #849589 [ardour] ardour: undefined symbol: fftwf_make_planner_thread_safe
Bug 849589 cloned as bug 849593
reassign -2 libfftw3-single3 3.3.5-1
Bug #849593 [ardour] ardour: undefined symbol: fftwf_make_planner_thread_safe
Bug reassigned from package 'ardour' to 'libfftw3-single3'.
No longer marked as found in versions ardour/1:5.5.0~dfsg-1.
Ignoring request to alter fixed versions of bug #849593 to the same values previously set
Bug #849593 [libfftw3-single3] ardour: undefined symbol: fftwf_make_planner_thread_safe
Marked as found in versions fftw3/3.3.5-1.
block -1 by -2
Bug #849589 [ardour] ardour: undefined symbol: fftwf_make_planner_thread_safe
849589 was not blocked by any bugs.
849589 was not blocking any bugs.
Added blocking bug(s) of 849589: 849593
retitle -2 libfftw3-single3: dependencies in shlibs file not tight enough
Bug #849593 [libfftw3-single3] ardour: undefined symbol: fftwf_make_planner_thread_safe
Changed Bug title to 'libfftw3-single3: dependencies in shlibs file not tight enough' from 'ardour: undefined symbol: fftwf_make_planner_thread_safe'.
--
849589: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=849589
849593: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=849593
Debian Bug Tracking System
Contact ***@bugs.debian.org with problems
James Cowgill
2017-01-05 17:50:02 UTC
Reply
Permalink
Raw Message
Hi,

Please CC me, I only just saw this email when I checked on the bugreport.
CC'd to d-science,
Post by Debian Bug Tracking System
Package: ardour
Version: 1:5.5.0~dfsg-1
Severity: important
bash# ardour5
fftwf_make_planner_thread_safe
[...]
[...]
ii libfftw3-single3 3.3.4-2
How come? Both testing and unstable have 3.3.5-1.
I don't think that matters. Partial upgrades should work (and
derivatives may rely on it).
Next time, it would be nice to explain upfront that the new version of
ardour you are trying to build may *conditionally* use new features
https://github.com/Ardour/ardour/search?utf8=%E2%9C%93&q=fftwf_make_planner_thread_safe&type=Code
OK, but I don't think the conditionally part is relevant here. Any
package which uses the new function from FFTW 3.3.5 - conditionally or
not - has the potential to be broken by this bug. Since the condition is
evaluated at compile time, it will always be true in the ardour Debian
package in stretch/sid.
Post by Debian Bug Tracking System
This package is the problem. The fftwf_make_planner_thread_safe
function is only present in fftw3 3.3.5 (so upgrading your package
would fix this). fftw3 should generate a stricter dependency so that
this doesn't happen.
libfftw3-dev depends on libfftw3_single3 (=${binary:Version}).
How is that not strict enough?
I'm talking about the dependency from ardour to libfftw3_single3. The
dependency from libfftw3-dev doesn't matter here.
Maybe this could be *temporarily* fixed on ardour's end by requiring
libfftw3-dev (>= 3.3.5) as a b-dep no?
No, changing the build-dependencies has no effect on the runtime
dependencies (well for the majority of packages at least).

The temporary fix would be to add a "Depends: libfftw3-single3 (>=
3.3.5)" to ardour, but that won't fix anyone else who wants to use
features from 3.3.5.
Post by Debian Bug Tracking System
fftw3 maintainers: to fix this you either need to provide a symbols
file, or pass a suitable -V option to dh_makeshlibs so the shlibs file
contains a stricter dependency.
Please be more explicit about the expected outcome (i.e. the stricter
dependency you keep mentioning).
Please read policy 8.6 which describes most of this more fully.
The goal is for dpkg-shlibdeps to generate a dependency like
"libfftw3-single3 (>= 3.3.5)" for any package which uses
fftwf_make_planner_thread_safe. This is needed otherwise you may get a
linker error like ardour does, and it's is done by using the symbols or
shlibs systems as described in policy 8.6.
I am personally not familiar with the symbols stuff, so it would be up
to somewhat from the team or yourself to provide a patch for this issue.
This is my attempt at fixing it the shlibs way (completely untested
however). A symbols file would be a lot more work but with more accurate
dependencies.

diff -ur a/debian/rules b/debian/rules
--- a/debian/rules 2016-10-03 17:12:31.000000000 +0100
+++ b/debian/rules 2017-01-05 17:35:18.123168915 +0000
@@ -168,7 +168,11 @@
dh_strip --dbg-package=libfftw3-dbg -a
dh_compress -a
dh_fixperms -a
- dh_makeshlibs -a
+ dh_makeshlibs -plibfftw3-single3 -V'libfftw3-single3 (>= 3.3.5)'
+ dh_makeshlibs -plibfftw3-double3 -V'libfftw3-double3 (>= 3.3.5)'
+ dh_makeshlibs -plibfftw3-long3 -V'libfftw3-long3 (>= 3.3.5)'
+ dh_makeshlibs -plibfftw3-quad3 -V'libfftw3-quad3 (>= 3.3.5)'
+ dh_makeshlibs -a --remaining-packages
dh_installdeb -a
dh_shlibdeps -a
dh_gencontrol -a

Thanks,
James

Loading...