On 23 August 2018 at 15:30, Steve Langasek wrote:
| On Thu, Aug 23, 2018 at 05:15:48PM -0500, Dirk Eddelbuettel wrote:
| > | In Ubuntu, I noticed that pscan-tfbs was failing to build due to 
unresolved
| > | symbols in libgsl.so.  I don't know if the specific build failure is
| > | reproducible in Debian, but I can confirm that libgsl.so.23 is also
| > | underlinked in Debian resulting in unresolved symbols, which is not 
supposed
| > | to be the case for shared libraries:
| 
| > Any reason why? This particular scheme (of not assigning a major the
| > auxiliary library libgslcblas) has been in place for a decade+.  Could it be
| > that my recent attempts of getting majors into package (where I was sloppy)
| > caused this?
| 
| I haven't looked closely enough at the issue to root cause it, but I do see
| that the problem is present even in libgsl.so.19 from gsl 2.1+dfsg-2.  It's
| possible that before now every reverse-dependency of gsl happened to pass
| -lgsl -lgslcblas options in the correct order to not trigger a failure at
| build time (with the Ubuntu toolchain, which is more strict than Debian's).
| pscan-tfbs is a new package and passes -lgslcblas -lgsl which is the wrong
| order, so that is /also/ a bug, but only one of the two bugs needs to be
| fixed in order to let pscan-tfbs build.

Quite likely.
 
| > | Please consider applying the attached patch to the gsl package in Debian. 
 I
| > | have uploaded it to Ubuntu to fix the build failure of the reverse
| > | dependency.
| 
| > | Corresponding changelog entries for these changes:
| 
| > |   * debian/patches/gsl-cblas-linkage.patch: add missing linkage on
| > |     libgslcblas to libgsl.so.
| > |   * specify AUTOMAKE and ACLOCAL to dh_autoreconf, to work around upstream
| > |     hard-coding of automake-1.13.
| 
| > Sounds good to me. I think I'll build with this evening.
| 
| > Now it is time to confess that I am an utter noob when it comes to libtool,
| > so I am not sure I fully grok what your patch does, besides "reintroducing"
| > these two sibbling libraries to each other.
| 
| The net effect is that when libgsl.so is being built, it's built with a
| -lgslcblas linker option.
| 
| Effectively, you could also drop the manual dependency from libgsl23 to
| libgslcblas23, since dh_shlibdeps will now generate the correct dependency
| for you.

The fun bit that there is only ever libgslcblas0 -- it never changes:

edd@rob:~$ dpkg -L libgslcblas0 | grep "\.so"
/usr/lib/x86_64-linux-gnu/libgslcblas.so.0.0.0
/usr/lib/x86_64-linux-gnu/libgslcblas.so.0
edd@rob:~$ dpkg -L libgsl23 | grep "\.so"
/usr/lib/x86_64-linux-gnu/libgsl.so.23.0.0
/usr/lib/x86_64-linux-gnu/libgsl.so.23
edd@rob:~$ 
 
| > Lastly, how strong do you feel about the patch? Should we talk to upstream
| > about it?
| 
| I'm happy to advocate for this patch to upstream (with your guidance how to
| do this), as I believe it's per se correct and worth having there to not
| need to carry a delta.

Let's plan on this. I'll build a gsl package, let's see how it does and we
can then propose this.

Dirk

-- 
http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org

Reply via email to