Bug#795344: [Debian-med-packaging] Bug#795344: libmems-1.6-1: not properly linked to its dependencies

2015-08-17 Thread Gert Wollny


all changes pushed.
The new boost.m4 solved my problem, but adding the libraries in the link 
dependencies was still needed.


The package builds and the boost libraries are also linked. BTW it was 
_LIBS not _LIB, so no AC_SUBST needed.


However, building a package I got another error

  devlibs error: There is no package matching [libGenome-1.3-0-dev] and 
noone provides it,   please report bug to d-shlibs maintainer
  devlibs error: There is no package matching [libMUSCLE-3.7-1-dev] and 
noone provides it, please report bug to d-shlibs maintainer


never seen this one before. t seems this d_shlibs expects the soversion 
in the dev-package name.


I left another patch in the git history that deals with a conflict 
between boost::make_tuple and std::make_tuple of c++11. I would have 
left it in the build, but somehow I didn't get the patch to have the 
right line endings. Since C++11 is not enabled by default, this is 
currently not a problem.


Best,
Gert



Bug#795344: libmems-1.6-1: not properly linked to its dependencies

2015-08-17 Thread Andreas Tille
On Mon, Aug 17, 2015 at 12:11:23AM +0200, Gert Wollny wrote:
 
 On 13.08.2015 18:17, Andreas Tille wrote:
 I confirm that this at least has some effect - unfortunately not the wanted
 one sinde the
 
  @BOOST_FILESYSTEM_LIB@ @BOOST_IOSTREAMS_LIB@ @BOOST_SYSTEM_LIB@
 
 placeholders remain unresolved and the $(DEPS_LIBS) variable remains
 empty. :_(
 
 
 After digging through m4/boost.m4 I'm quite confident that it is indeed the
 AC_SUBST that is missing,
 because with BOOST_FLYEIGHT they do it but not with BOOST_FILESYSTEM.
 However,  I an not confirm this, because for some reason for me configure
 fails with
 
configure: error: invalid value: boost_major_version=

I wonder whether there is some boost.m4 we could steal somewhere.

Kind regards

 Andreas.

-- 
http://fam-tille.de



Bug#795344: libmems-1.6-1: not properly linked to its dependencies

2015-08-17 Thread Tobias Frost
Am Montag, den 17.08.2015, 00:11 +0200 schrieb Gert Wollny:
 On 13.08.2015 18:17, Andreas Tille wrote:
  I confirm that this at least has some effect - unfortunately not 
  the wanted
  one sinde the
  
   @BOOST_FILESYSTEM_LIB@ @BOOST_IOSTREAMS_LIB@ 
  @BOOST_SYSTEM_LIB@
  
  placeholders remain unresolved and the $(DEPS_LIBS) variable 
  remains
  empty. :_(
  
 
 After digging through m4/boost.m4 I'm quite confident that it is 
 indeed 
 the AC_SUBST that is missing,
 because with BOOST_FLYEIGHT they do it but not with BOOST_FILESYSTEM. 
 
 However,  I an not confirm this, because for some reason for me 
 configure  fails with
 
 configure: error: invalid value: boost_major_version=
 
 Best
 
 

I had this too one time, and in may case it has been an outdated
boost.m4.


-- tobi



Bug#795344: [Debian-med-packaging] Bug#795344: libmems-1.6-1: not properly linked to its dependencies

2015-08-17 Thread Gert Wollny



On 17.08.2015 09:14, Andreas Tille wrote:
I wonder whether there is some boost.m4 we could steal somewhere. Kind 
regards Andreas. 

Well, there is upstream

   https://github.com/tsuna/boost.m4

I will now try with this one. Andreas, I you didn't push your changes, 
right?




Bug#795344: [Debian-med-packaging] Bug#795344: libmems-1.6-1: not properly linked to its dependencies

2015-08-17 Thread Andreas Tille
On Mon, Aug 17, 2015 at 10:20:53AM +0200, Gert Wollny wrote:
 
 
 On 17.08.2015 09:14, Andreas Tille wrote:
 I wonder whether there is some boost.m4 we could steal somewhere. Kind
 regards Andreas.
 Well, there is upstream
 
https://github.com/tsuna/boost.m4
 
 I will now try with this one.

Cool.

 Andreas, I you didn't push your changes,
 right?

I have not any helpful commit.  That's my last one:

commit c5973e8409a029a76cfbf65219b2ca83c1b66100
Author: Andreas Tille ti...@debian.org
Date:   Wed Aug 12 16:47:46 2015 +0200

Try gcc-5 transition but can not build for the moment due to boost 
transition issue


All other stuff was non-helpful poking in the dark.

Kind regards

Andreas. 

-- 
http://fam-tille.de



Bug#795344: libmems-1.6-1: not properly linked to its dependencies

2015-08-16 Thread Gert Wollny


On 13.08.2015 18:17, Andreas Tille wrote:

I confirm that this at least has some effect - unfortunately not the wanted
one sinde the

 @BOOST_FILESYSTEM_LIB@ @BOOST_IOSTREAMS_LIB@ @BOOST_SYSTEM_LIB@

placeholders remain unresolved and the $(DEPS_LIBS) variable remains
empty. :_(



After digging through m4/boost.m4 I'm quite confident that it is indeed 
the AC_SUBST that is missing,
because with BOOST_FLYEIGHT they do it but not with BOOST_FILESYSTEM. 
However,  I an not confirm this, because for some reason for me 
configure  fails with


   configure: error: invalid value: boost_major_version=

Best



Bug#795344: libmems-1.6-1: not properly linked to its dependencies

2015-08-13 Thread Simon McVittie
Package: libmems-1.6-1
Version: 1.6.0+4725-1
Severity: serious
Justification: Policy 10.2

From the i386 buildd log:

   dh_shlibdeps -a
dpkg-shlibdeps: warning: symbol _ZN6muscle4QuitEPKcz used by 
debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 found in none 
of the libraries
dpkg-shlibdeps: warning: symbol _ZNK6genome10gnSequence6subseqEyy used by 
debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 found in none 
of the libraries
dpkg-shlibdeps: warning: symbol _ZN6muscle8DistFunc8SetCountEj used by 
debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 found in none 
of the libraries
dpkg-shlibdeps: warning: symbol _ZN6muscle10RefineVertERNS_3MSAERKNS_4TreeEj 
used by debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 found 
in none of the libraries
dpkg-shlibdeps: warning: symbol _ZNK5boost9iostreams18mapped_file_source4dataEv 
used by debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 found 
in none of the libraries
dpkg-shlibdeps: warning: symbol 
_ZN5boost10filesystem4path27m_erase_redundant_separatorEj used by 
debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 found in none 
of the libraries
dpkg-shlibdeps: warning: symbol _ZN6muscle18SetSeqWeightMethodENS_9SEQWEIGHTE 
used by debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 found 
in none of the libraries
dpkg-shlibdeps: warning: symbol _ZN6muscle8TextFileC1EPKcb used by 
debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 found in none 
of the libraries
dpkg-shlibdeps: warning: symbol _ZN6genome10gnSequence13setContigNameEjRKSs 
used by debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 found 
in none of the libraries
dpkg-shlibdeps: warning: symbol _ZNK6muscle3MSA11GetSeqIndexEj used by 
debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 found in none 
of the libraries
dpkg-shlibdeps: warning: 79 other similar warnings have been skipped (use -v to 
see them all)

Among other things, this causes libmems to not show up properly in the
https://release.debian.org/transitions/html/auto-libgenome.html transition
tracker, so the release team will not schedule the necessary binNMUs for it.

Regards,
S



Bug#795344: libmems-1.6-1: not properly linked to its dependencies

2015-08-13 Thread Andreas Tille
Hi Simon,

thanks for your bug report.  Yesterday I noticed that libmems needs a
transition but it needs to wait for boost libs first.

However, from your mail it seems that there is some issue with libmuscle
which I do not understand and where I have no idea how to fix.  Could
you be so kind to give some more detailed hint how this can be fixed and
why the package is hidden from the transition tracker?

Kind regards

   Andreas.

On Thu, Aug 13, 2015 at 09:45:48AM +0100, Simon McVittie wrote:
 From the i386 buildd log:
 
dh_shlibdeps -a
 dpkg-shlibdeps: warning: symbol _ZN6muscle4QuitEPKcz used by 
 debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 found in 
 none of the libraries
 dpkg-shlibdeps: warning: symbol _ZNK6genome10gnSequence6subseqEyy used by 
 debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 found in 
 none of the libraries
 dpkg-shlibdeps: warning: symbol _ZN6muscle8DistFunc8SetCountEj used by 
 debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 found in 
 none of the libraries
 dpkg-shlibdeps: warning: symbol _ZN6muscle10RefineVertERNS_3MSAERKNS_4TreeEj 
 used by debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 
 found in none of the libraries
 dpkg-shlibdeps: warning: symbol 
 _ZNK5boost9iostreams18mapped_file_source4dataEv used by 
 debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 found in 
 none of the libraries
 dpkg-shlibdeps: warning: symbol 
 _ZN5boost10filesystem4path27m_erase_redundant_separatorEj used by 
 debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 found in 
 none of the libraries
 ...
-- 
http://fam-tille.de



Bug#795344: libmems-1.6-1: not properly linked to its dependencies

2015-08-13 Thread Simon McVittie
On 13/08/15 10:44, Andreas Tille wrote:
 However, from your mail it seems that there is some issue with libmuscle
 which I do not understand and where I have no idea how to fix.  Could
 you be so kind to give some more detailed hint how this can be fixed and
 why the package is hidden from the transition tracker?

The package is not in the transition trackers *because* of the linking
issue I reported: its dependencies are wrong.

 dpkg-shlibdeps: warning: symbol _ZN6muscle4QuitEPKcz used by 
 debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 found in 
 none of the libraries
 dpkg-shlibdeps: warning: symbol _ZNK6genome10gnSequence6subseqEyy used by 
 debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 found in 
 none of the libraries
 dpkg-shlibdeps: warning: symbol _ZN6muscle8DistFunc8SetCountEj used by 
 debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 found in 
 none of the libraries
 dpkg-shlibdeps: warning: symbol _ZN6muscle10RefineVertERNS_3MSAERKNS_4TreeEj 
 used by debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 
 found in none of the libraries
 dpkg-shlibdeps: warning: symbol 
 _ZNK5boost9iostreams18mapped_file_source4dataEv used by 
 debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 found in 
 none of the libraries
 dpkg-shlibdeps: warning: symbol 
 _ZN5boost10filesystem4path27m_erase_redundant_separatorEj used by 
 debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 found in 
 none of the libraries

libMems-1.6.so.1.0.0 should have been linked to the libraries it depends
on, something like

gcc -o libMems-1.6.so.1.0.0 something.o someother.o \
-lmuscle -lgenome -lboost-filesystem

(those library names are just guesses and probably wrong, but hopefully
you get the general idea), but in fact it was linked without specifying
the libraries it depends on, more like

gcc -o libMems-1.6.so.1.0.0 something.o someother.o

As a result, the .so does not have the correct DT_NEEDED headers
describing the libraries that it depends on (use objdump -Tx to see
those). As a result of that, dpkg-shlibdeps produces those warnings, and
does not generate the dependencies that it should.

It does not appear in the transition trackers because each transition
tracker uses dependencies to find the packages that depend on the
transitioning library. At the moment, libmems-1.6-1 only depends on
libc, libgcc and libstdc++, and there is nothing in its metadata to
indicate that it should be involved in the boost or libgenome transitions.

The solution is something like this in the Makefile.am:

libMems_1_6_la_LIBADD = $(DEPS_LIBS)

You might also need to append $(BOOST_LIBS) or -lboost-filesystem or
something, I don't know how Boost is meant to work. There might also be
additional libraries among the more warnings that dpkg-shlibdeps
suppressed. The general principle is to keep adding libraries until
dpkg-shlibdeps stops producing found in none of the libraries warnings :-)

If you add -no-undefined to the LDFLAGS, the linker will fail hard
(FTBFS) when it encounters missing dependencies, instead of continuing
to link a partially broken library. This flag is usually a good idea
where possible; it can be used for executables and most shared
libraries, but cannot be used for some loadable modules (e.g. Python
extensions) or for circularly dependent libraries.

S



Bug#795344: libmems-1.6-1: not properly linked to its dependencies

2015-08-13 Thread Andreas Tille
Hi mentors,

I have some problem with automake configuration to link library
symbols properly.

On Thu, Aug 13, 2015 at 11:31:02AM +0100, Simon McVittie wrote:
 On 13/08/15 10:44, Andreas Tille wrote:
  However, from your mail it seems that there is some issue with libmuscle
  which I do not understand and where I have no idea how to fix.  Could
  you be so kind to give some more detailed hint how this can be fixed and
  why the package is hidden from the transition tracker?
 
 The package is not in the transition trackers *because* of the linking
 issue I reported: its dependencies are wrong.
 
  dpkg-shlibdeps: warning: symbol _ZN6muscle4QuitEPKcz used by 
  debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 found in 
  none of the libraries
  dpkg-shlibdeps: warning: symbol _ZNK6genome10gnSequence6subseqEyy used by 
  debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 found in 
  none of the libraries
  dpkg-shlibdeps: warning: symbol _ZN6muscle8DistFunc8SetCountEj used by 
  debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 found in 
  none of the libraries
  dpkg-shlibdeps: warning: symbol 
  _ZN6muscle10RefineVertERNS_3MSAERKNS_4TreeEj used by 
  debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 found in 
  none of the libraries
  dpkg-shlibdeps: warning: symbol 
  _ZNK5boost9iostreams18mapped_file_source4dataEv used by 
  debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 found in 
  none of the libraries
  dpkg-shlibdeps: warning: symbol 
  _ZN5boost10filesystem4path27m_erase_redundant_separatorEj used by 
  debian/libmems-1.6-1/usr/lib/i386-linux-gnu/libMems-1.6.so.1.0.0 found in 
  none of the libraries
 
 libMems-1.6.so.1.0.0 should have been linked to the libraries it depends
 on, something like
 
 gcc -o libMems-1.6.so.1.0.0 something.o someother.o \
 -lmuscle -lgenome -lboost-filesystem
 
 (those library names are just guesses and probably wrong, but hopefully
 you get the general idea),

I confirm that the idea is understood.

 but in fact it was linked without specifying
 the libraries it depends on, more like
 
 gcc -o libMems-1.6.so.1.0.0 something.o someother.o
 
 As a result, the .so does not have the correct DT_NEEDED headers
 describing the libraries that it depends on (use objdump -Tx to see
 those). As a result of that, dpkg-shlibdeps produces those warnings, and
 does not generate the dependencies that it should.
 
 It does not appear in the transition trackers because each transition
 tracker uses dependencies to find the packages that depend on the
 transitioning library. At the moment, libmems-1.6-1 only depends on
 libc, libgcc and libstdc++, and there is nothing in its metadata to
 indicate that it should be involved in the boost or libgenome transitions.
 
 The solution is something like this in the Makefile.am:
 
 libMems_1_6_la_LIBADD = $(DEPS_LIBS)
 
 You might also need to append $(BOOST_LIBS) or -lboost-filesystem or
 something, I don't know how Boost is meant to work. There might also be
 additional libraries among the more warnings that dpkg-shlibdeps
 suppressed. The general principle is to keep adding libraries until
 dpkg-shlibdeps stops producing found in none of the libraries warnings :-)

I have tried the following quilt patch


--- a/Makefile.am
+++ b/Makefile.am
@@ -10,5 +10,7 @@ projects/libMems.vcproj
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = libMems-@GENERIC_API_VERSION@.pc

+libMems_la_LIBADD = $(DEPS_LIBS) @BOOST_FILESYSTEM_LIB@ @BOOST_IOSTREAMS_LIB@ 
@BOOST_SYSTEM_LIB@
+
 SUBDIRS = libMems

--- a/configure.ac
+++ b/configure.ac
@@ -97,6 +97,7 @@ BOOST_IOSTREAMS
 dnl Get location of libGenome Headers
 PKG_CHECK_MODULES(DEPS, libGenome-1.3 = 1.3.1  libMUSCLE-3.7 = 1.0.0)
 AC_SUBST(DEPS_CFLAGS)
+AC_SUBST(DEPS_LIBS)

 dnl Check for OpenMP
 #AX_OPENMP()



with no visible change in the build (I also tried the versioned
libMems_1_6_la_LIBADD with the same zero effect).  I suspect that also
libMems-1.6.pc.in might need some love but I have no idea how.
 
 If you add -no-undefined to the LDFLAGS, the linker will fail hard
 (FTBFS) when it encounters missing dependencies, instead of continuing
 to link a partially broken library. This flag is usually a good idea
 where possible; it can be used for executables and most shared
 libraries, but cannot be used for some loadable modules (e.g. Python
 extensions) or for circularly dependent libraries.

I'll add this but would like to fix this first that way.
 
Kind regards

   Andreas.

-- 
http://fam-tille.de



Bug#795344: libmems-1.6-1: not properly linked to its dependencies

2015-08-13 Thread Simon McVittie
On 13/08/15 15:06, Andreas Tille wrote:
 +libMems_la_LIBADD = $(DEPS_LIBS) @BOOST_FILESYSTEM_LIB@ 
 @BOOST_IOSTREAMS_LIB@ @BOOST_SYSTEM_LIB@
 +
  SUBDIRS = libMems

Move this from /Makefile.am into /libMems/Makefile.am, where libMems.la
is built and the rest of the libMems_la_WHATEVER variables appear.

S



Bug#795344: libmems-1.6-1: not properly linked to its dependencies

2015-08-13 Thread Andreas Tille
On Thu, Aug 13, 2015 at 03:40:21PM +0100, Simon McVittie wrote:
 On 13/08/15 15:06, Andreas Tille wrote:
  +libMems_la_LIBADD = $(DEPS_LIBS) @BOOST_FILESYSTEM_LIB@ 
  @BOOST_IOSTREAMS_LIB@ @BOOST_SYSTEM_LIB@
  +
   SUBDIRS = libMems
 
 Move this from /Makefile.am into /libMems/Makefile.am, where libMems.la
 is built and the rest of the libMems_la_WHATEVER variables appear.

I confirm that this at least has some effect - unfortunately not the wanted
one sinde the 

@BOOST_FILESYSTEM_LIB@ @BOOST_IOSTREAMS_LIB@ @BOOST_SYSTEM_LIB@

placeholders remain unresolved and the $(DEPS_LIBS) variable remains
empty. :_(

Kind regards

 Andreas.

-- 
http://fam-tille.de