Hi, Please CC me, I only just saw this email when I checked on the bugreport.
On 30/12/16 17:17, Ghislain Vaillant wrote: > CC'd to d-science, > > On Fri, 30 Dec 2016 01:24:07 +0000 James Cowgill <jcowg...@debian.org> wrote: >> On 30/12/16 00:50, Ghislain Vaillant wrote: >> > On Thu, 29 Dec 2016 00:30:58 +0000 James Cowgill <jcowg...@debian.org> >> > wrote: >> >> On 29/12/16 00:02, Oleksandr Gavenko wrote: >> >>> Package: ardour >> >>> Version: 1:5.5.0~dfsg-1 >> >>> Severity: important >> >>> >> >>> Application is being crashing constantly with: >> >>> >> >>> bash# ardour5 >> >>> /usr/lib/ardour5/ardour-5.5.0: symbol lookup error: >> /usr/lib/ardour5/ardour-5.5.0: undefined symbol: >> fftwf_make_planner_thread_safe >> >> [...] >> >>> Versions of packages ardour depends on: >> >> [...] >> >>> 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 > introduced by FFTW 3.5: > > 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. >> >> 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. >> >> 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
signature.asc
Description: OpenPGP digital signature