[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: C++ help needed for psortb



Hi Christian,

On Tue, Apr 18, 2017 at 11:07:03PM +0200, Christian Seiler wrote:
> > 
> > which is probably due to the fact that I did not changed hmmer2 to
> > create a shared rather than a static library and lhmmer is not compiled
> > with -fPIC.  What might be the less stressful way to solve this?  I
> > think the optimal solution would be to craft configure.ac and
> > Makefile.am for hmmer2 (which only ships configure and Makefile.in) and
> > by doing so create a shared library.  However, I do not consider this
> > as a very fruitful way to spent someones time on orphaned software so
> > a cheaper solution would be welcome.
> 
> Well, you could compile the static library with -fPIC anyway. Linking
> a static library into a shared library is not a problem in and by
> itself (the code will be copied into the shared library just like it
> would be copied into an executable), the only problem here is the
> missing -fPIC.
> 
> So if you shoe-horn -fPIC into the compiler flags of the static
> library, linking that into a dynamic library later should work.

OK, I'll try that.
 
> (That said: I'm not a huge fan of this approach, Debian prefers to
> use shared libraries for a reason. OTOH, if I understand you
> correctly your second pacakge is the only reverse dependency, so
> it's not that big of a deal in this case.)

Psortb[1] was using header files from biosquid[2] and hmmer2[3] but did
not shipped the according library code.  No idea how this might have
worked - I assume most users just took the compiled binaries and did not
noticed.  Biosquid and hmmer2 development is discontinued.  There is
hmmer 3.x but several users rely on hmmer2.  The latter contained
another copy of biosquid which I removed inside the package in
experimental by dynamically linking against biosquid.  The biosquid
package in experimental was also overhauled with newly written automake
stuff to enable dynamic libraries which were not available before.

In other words: The biosquid library is used by two packages (hmmer2 and
psortb - possibly more code copies around which will be removed later)
but as far as I know hmmer2 was creating the library only to link its
own executables.  While I'd prefer a dynamic library for the same
reasons as you specified above the effort to realise this is higher and
the use less than for biosquid (but I would not stop anybody to invest
some time into low popcon orphaned code which is not bad in principle).

Kind regards

       Andreas.

[1] https://anonscm.debian.org/git/debian-med/psortb.git
[2] https://anonscm.debian.org/git/debian-med/biosquid.git
[3] https://anonscm.debian.org/git/debian-med/hmmer2.git

-- 
http://fam-tille.de


Reply to: