Re: How to be with SINA that has non-free dependency
Hi Andreas,
I think I can devote some time to this now. What do you need from me to proceed?
SINA uses three things from ARB (as far as I remember):
- The database (libarbdb.so and libcore.so)
- The PT server client (PROBE_COM/client.a)
- Some Code for parsing secondary structure (SL/HELIX/HELIX.a)
The database lib is required.
If I didn’t already, I can modify the build system to allow not using the two static libraries. That will lead to reduced feature set though. But for typical cases should be ok.
Elmar
> On Sep 24, 2020, at 7:50 AM, Andreas Tille <andreas@an3as.eu> wrote:
>
> Hi Elmar,
>
> are you interested that we are working together on Sina packaging for
> Debian. It was more than one year ago that I was working really hard to
> extract the part from arb that could be a future libarb. I'm waiting
> for confirmation that this is all code that is sufficient to build Sina.
> It would even help if you confirm that you are overworked / not
> interested so we would stop waiting and start doing something again.
>
> Please let me know if you need further information.
>
> Kind regards
>
> Andreas.
>
>> On Thu, Nov 14, 2019 at 09:13:03AM +0100, Andreas Tille wrote:
>> Hi again,
>>
>> I wonder whether you understood that we are waiting for some signal of
>> yours whether the attempt to package libarb works with sina. So far we
>> are running into trouble and I'm just waiting for your input how to get
>> sina build with libarb. Further work on the libarb package is stalled
>> until you will answer the mail below.
>>
>> Kind regards
>>
>> Andreas.
>>
>>> On Wed, Jul 31, 2019 at 02:25:36PM +0200, Andreas Tille wrote:
>>> Ping again.
>>> I do not see any sense to continue with libarb packaging as long
>>> as there is no way to build sina smoothly with what we have.
>>>
>>> So can you please comment (in public on list) about the issue
>>>
>>> /usr/bin/ld: src/sina.o: undefined reference to symbol '_ZN5boost15program_options29options_description_easy_initclEPKcS3_'
>>> /usr/bin/ld: //usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.67.0: error adding symbols: DSO missing from command line
>>>
>>> Kind regards
>>> Andreas.
>>>
>>> On Wed, Jul 10, 2019 at 10:25:54PM +0200, Andreas Tille wrote:
>>>> Ping?
>>>>
>>>> On Thu, Jun 20, 2019 at 10:19:34PM +0200, Andreas Tille wrote:
>>>>> Hi Elmar,
>>>>>
>>>>> On Thu, Jun 20, 2019 at 10:41:10AM -0600, Elmar Pruesse wrote:
>>>>>>>>> make lib/arb_tcp.dat
>>>>>>>> This target does not exist.
>>>>>>
>>>>>> Just
>>>>>>
>>>>>> cp $SRCDIR/lib/arb_tcp_org.dat $DESTDIR/.../lib/arb_tcp.dat
>>>>>>
>>>>>> The Makefile in lib/ just does a cp as well. No processsing.
>>>>>
>>>>> Sure. My point was that before I repackaged the libarb tarball not even
>>>>> lib/arb_tcp_org.dat was included. But now I changed the Files-Excluded
>>>>> rules and its now not removed any more. So that's a solved problem.
>>>>>
>>>>>> Alternatively, just put this data into the file:
>>>>>>
>>>>>>
>>>>>> ----
>>>>>>
>>>>>> ARB_TCP_DAT_VERSION 2
>>>>>> ARB_DB_SERVER :/tmp/arb_db_$(USER)_$(ARB_PID)
>>>>>> ARB_NAME_SERVER localhost:3020 arb_name_server
>>>>>> -d$(ARBHOME)/lib/nas/names.dat
>>>>>> ARB_NAME_SERVER_START localhost:3021 arb_name_server
>>>>>> -d$(ARBHOME)/lib/nas/names_start.dat -fstart=1
>>>>>>
>>>>>> ARB_PT_SERVER0 :$(HOME)/.arb_pts/$(USER)1.socket arb_pt_server
>>>>>> -D$(HOME)/.arb_pts/$(USER)1.arb
>>>>>>
>>>>>> ARB_PT_SERVER1 :$(HOME)/.arb_pts/$(USER)1.socket arb_pt_server
>>>>>> -D$(HOME)/.arb_pts/$(USER)2.arb
>>>>>>
>>>>>> ARB_PT_SERVER2 :$(HOME)/.arb_pts/$(USER)1.socket arb_pt_server
>>>>>> -D$(HOME)/.arb_pts/$(USER)3.arb ----
>>>>>> ----
>>>>>
>>>>> I'll keep this hint in Debian Med mailing list archive in case there
>>>>> will be issues with the license from ARB upstream.
>>>>>
>>>>>>>>> arb-pt-server.install:
>>>>>>>>>
>>>>>>>>> bin/arb_pt_server usr/bin
>>>>>>>>>
>>>>>>>>> lib/arb_tcp.dat /etc/arb
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> arb-pt-server.links:
>>>>>>>>>
>>>>>>>>> etc/arb/arb_tcp.dat usr/lib/${DEB_HOST_MULTIARCH}/arb
>>>>>>>> Do you think this link is only needed inside the arb-pt-server package
>>>>>>>> or is it better in libarb package? (I implemented the latter in the
>>>>>>>> latest packages.)
>>>>>>
>>>>>> It is needed for arb_pt_server and arb_name_server. It is parsed by libARBDB
>>>>>> and the stuff in SERVERCONTROL. Could go in either.
>>>>>
>>>>> OK, may be I'll leave it in libarb.
>>>>>
>>>>>> Since I'd prefer as much as possible tests I added the package.
>>>>>>>> Regarding SINA packaging: Do you think a Recommends: arb-pt-server or a
>>>>>>>> Suggests would be appropriate?
>>>>>>
>>>>>> Yes, sounds good. Either will do. Guess 'suggests' is enough. Mostly, you'd
>>>>>> want it constrained to the right version if it does get installed by the
>>>>>> user.
>>>>>
>>>>> I added it as Suggests. What would be the "right version"?
>>>>> (Feel free to commit what you consider correct - that's probably faster than
>>>>> you explain here in detail and I do it according to your advise.)
>>>>>
>>>>>>>> when using the Debian packaged spdlog (version 1.3.1). In the packaging
>>>>>>>> we have removed the spdlog code copy (as per Debian policy) and try to
>>>>>>>> link against the Debian packaged version. In several other projects I
>>>>>>>> realised problems with this approach and it seems spdlog is a moving
>>>>>>>> target. Do you think you can adapt SINA to latest spdlog or should we
>>>>>>>> rather stick to the code copy?
>>>>>>
>>>>>> Use the vendored one if that is permissible. I have patched it to include a
>>>>>> progress monitor, but the patch was rejected upstream. See
>>>>>> https://github.com/gabime/spdlog/issues/1030#issuecomment-499979592. I will
>>>>>> have to turn it into a separate package. Problem is that I would want/need
>>>>>> to have an API change in the upstream spdlog, so I'll have to do some copy
>>>>>> paste coding, sadly, to do the separate package. I'm planning to, and I
>>>>>> could expedite it if Debian policy requires it, but it would take me a week
>>>>>> or so to fit it in.
>>>>>
>>>>> Well, "require" is to much - there are packages in the pool which do
>>>>> conflict with this rule (and some of these are actually pinned to some
>>>>> spdlog versions :-(). For the moment I re-included spdlog into the Git
>>>>> repository since we want to make some progress to test linking against
>>>>> libarb. Until this is sorted out and all licensing issues which I
>>>>> expect due to the additional files we need to build libarb are solved we
>>>>> have time to sort out the spdlog issue. If you could somehow settle with
>>>>> the official code that would be helpful in any case.
>>>>>
>>>>> With the latest push of the sina packaging I get:
>>>>>
>>>>> ...
>>>>> libtool: link: (cd "src/.libs" && rm -f "libsina.so.0" && ln -s "libsina.so.0.0.0" "libsina.so.0")
>>>>> libtool: link: (cd "src/.libs" && rm -f "libsina.so" && ln -s "libsina.so.0.0.0" "libsina.so")
>>>>> libtool: link: ar cru src/.libs/libsina.a src/align.o src/aligned_base.o src/alignment_stats.o src/cseq.o src/cseq_comparator.o src/famfinder.o src/mseq.o src/pseq.o src/query_arb.o src/query_pt.o src/rw_fasta.o src/rw_arb.o src/log.o src/search.o src/search_filter.o src/tray.o src/kmer_search.o
>>>>> ar: `u' modifier ignored since `D' is the default (see `U')
>>>>> libtool: link: ranlib src/.libs/libsina.a
>>>>> libtool: link: ( cd "src/.libs" && rm -f "libsina.la" && ln -s "../libsina.la" "libsina.la" )
>>>>> /bin/bash ./libtool --tag=CXX --mode=link g++ -g -O2 -fdebug-prefix-map=/build/sina-1.6.0=. -fstack-protector-strong -Wformat -Werror=format-security -g -O2 -fdebug-prefix-map=/build/sina-1.6.0=. -fstack-protector-strong -Wformat -Werror=format-security -W -L/usr/lib/x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu/arb/lib -Wl,-rpath -Wl,/usr/lib/x86_64-linux-gnu/arb/lib -Wl,-z,relro -o src/sina src/sina.o src/libsina.la /usr/lib/x86_64-linux-gnu/arb/PROBE_COM/client.a /usr/lib/x86_64-linux-gnu/arb/PROBE_COM/common.a -lARBDB -lCORE -lglib-2.0 /usr/lib/x86_64-linux-gnu/arb/SL/HELIX/HELIX.a -lARBDB -lCORE -lglib-2.0 -lARBDB -lCORE -lglib-2.0 -ldl -lrt
>>>>> libtool: link: g++ -g -O2 -fdebug-prefix-map=/build/sina-1.6.0=. -fstack-protector-strong -Wformat -Werror=format-security -g -O2 -fdebug-prefix-map=/build/sina-1.6.0=. -fstack-protector-strong -Wformat -Werror=format-security -W -Wl,-rpath -Wl,/usr/lib/x86_64-linux-gnu/arb/lib -Wl,-z -Wl,relro -o src/.libs/sina src/sina.o -L/usr/lib/x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu/arb/lib src/.libs/libsina.so /usr/lib/x86_64-linux-gnu/arb/PROBE_COM/client.a /usr/lib/x86_64-linux-gnu/arb/PROBE_COM/common.a /usr/lib/x86_64-linux-gnu/arb/SL/HELIX/HELIX.a -lARBDB -lCORE -lglib-2.0 -ldl -lrt
>>>>> /usr/bin/ld: src/sina.o: undefined reference to symbol '_ZN5boost15program_options29options_description_easy_initclEPKcS3_'
>>>>> /usr/bin/ld: //usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.67.0: error adding symbols: DSO missing from command line
>>>>> collect2: error: ld returned 1 exit status
>>>>> make[2]: *** [Makefile:1120: src/sina] Error 1
>>>>>
>>>>>
>>>>> Any idea how to fix this?
>>>>>
>>>>> Kind regards
>>>>>
>>>>> Andreas.
>>>>>
>>>>> --
>>>>> http://fam-tille.de
>>>>>
>>>>>
>>>>
>>>> --
>>>> http://fam-tille.de
>>>
>>> --
>>> http://fam-tille.de
>>
>> --
>> http://fam-tille.de
>>
>>
>
> --
> http://fam-tille.de
Reply to: