SRA tools is a toolkit for using data in the INSDC Sequence Read Archives. SRAs operated by International Nucleotide Sequence Database Collaboration houses sequence reads and alignments generated by "next-gen" sequencers. SRA tools allows conversion of SRA files, which INSDC SRAs maintain, from/to other formats that the sequenecers generate including fastq, sff, etc. The source codes are available in 3 components, ngs, ncbi-vdb, and sra-tools, to which the ports basically correspond. biology/ngs-sdk: C++ front-end API and others (a part of GitHub repo ncbi/ngs) biology/ncbi-vdb: virtualized back-end engine library (GitHub repo ncbi/ncbi-vdb) biology/sra-tools: executables (GitHub repo ncbi/sra-tools) However, separation and dependencies among them are somewhat strange: * ncbi-vdb depends on the source code of ngs-sdk * sra-tools depends on the build results of ncbi-vdb as well as ngs-sdk library Java- and Python-related libraries are excluded from the ports, since they are not necessary for building sra-tools executables and thus out of popular demand, I believe; somebody can make separate ports. Other changes * to modify the build system to adapt FreeBSD * to respect CC, CXX, CFLAGS, LDFLAGS, etc. * to use system or locally installed libraries rather than bundled one Note: Building of sra-tools is successful on i386; however, resultant binary produces somewhat strange outputs. The upstream says "[...] we can look at providing support for an x32 build, although since we can't guarantee that it works." https://github.com/ncbi/ncbi-vdb/issues/8 So I dare to mark BROKEN_i386. On the other hand, amd64 binary seems OK.
Created attachment 187512 [details] svn diff for biology/ngs-sdk PASSED: poudriere testport (amd64/i386 10.4) & make test (amd64/i386 10.4)
Created attachment 187513 [details] svn diff for biology/ncbi-vdb PASSED: poudriere testport (amd64/i386 10.4) with network-related difficulties for performing make test (amd64/i386 10.4) (but it seems almost OK)
Created attachment 187514 [details] svn diff for biology/sra-tools PASSED: poudriere testport (amd64/i386 10.4) & make test (amd64/i386 10.4) with i386 binary of fastq-dump makes strange output
Created attachment 187515 [details] poudriere testport logs on 10.4R amd64
Created attachment 187516 [details] poudriere testport logs on 10.4R i386
Hi, Why are they ONLY_FOR_ARCHS=amd64 i386? There should be the reason next to ONLY_FOR_ARCHS statement. Yuri
(In reply to Yuri Victorovich from comment #6) For ncbi-vdb & sra-tools, it's already there. For ngs-sdk, it doesn't have ONLY_FOR_ARCHS although the configure & build infrastructure will rejects archs other than i386/amd64. Of course, it is probably possible to build ngs-sdk on other archs; however, ngs-sdk does not have popular demand other than sra-tools, AND the upstream may switch to CMake or GNU configure https://github.com/ncbi/ngs/issues/14 so tweaking the infrastructure furthermore will be waste of effort.
Thanks for having put these ports together. For what it's worth I built them and tested fastq-dump, which seems to work fine. Could the ports be committed?
Hitting this one one of our systems, with or without MAKE_JOBS_UNSAFE. Everything built fine on my laptop, but failed here. I'd guess that the configure script is sensitive to something. c++ -o /usr/ports/wip/sra-tools/work/sra-tools-2.8.2-3/amd64-portbld-freebsd11.2/sra-tools/bsd/clang/x86_64/rel/bin/ngs-pileup.2.8.2 -fstack-protector -DNDEBUG -m64 -L/usr/local/lib -L/usr/local/lib -L/usr/local/lib -DNDEBUG -m64 -L/usr/local/lib -L/usr/local/lib -L/usr/local/lib ngs-pileup.o main.o -L/usr/ports/wip/sra-tools/work/sra-tools-2.8.2-3/amd64-portbld-freebsd11.2/sra-tools/bsd/clang/x86_64/rel/lib -L/usr/ports/wip/sra-tools/work/sra-tools-2.8.2-3/amd64-portbld-freebsd11.2/sra-tools/bsd/clang/x86_64/rel/ilib -L/usr/local/lib -L/usr/ports/wip/ncbi-vdb/work/ncbi-vdb-2.8.2-2/amd64-portbld-freebsd11.2/ncbi-vdb/bsd/clang/x86_64/rel/lib -L/usr/ports/wip/ncbi-vdb/work/ncbi-vdb-2.8.2-2/amd64-portbld-freebsd11.2/ncbi-vdb/bsd/clang/x86_64/rel/ilib -Wl,-Bstatic -lkapp -lncbi-ngs-c++ -lncbi-vdb-static -lngs-c++ -ltk-version -Wl,-Bdynamic -lz -lbz2 -lmbedtls -lmbedcrypto -lmbedx509 -lpthread -L/usr/local/lib -lxml2 -Wl,-Bdynamic -lm /usr/bin/ld: /usr/local/lib/libngs-c++.a(ReadCollection.pic.o): no group info for section .data.DW.ref.__gxx_personality_v0 ngs-pileup.o: In function `NGS_Pileup::Run() const': ngs-pileup.cpp:(.text+0xe1): undefined reference to `ngs::ReadCollectionItf::getReferences() const' ngs-pileup.cpp:(.text+0xf4): undefined reference to `ngs::ReferenceIterator::ReferenceIterator(ngs::ReferenceItf*)' ngs-pileup.cpp:(.text+0x10e): undefined reference to `ngs::ReferenceItf::nextReference()' ngs-pileup.cpp:(.text+0x12d): undefined reference to `ngs::ReferenceItf::getCommonName() const' ngs-pileup.cpp:(.text+0x138): undefined reference to `ngs::StringRef::StringRef(ngs::StringItf*)' ngs-pileup.cpp:(.text+0x144): undefined reference to `ngs::StringRef::toString() const' ngs-pileup.cpp:(.text+0x14c): undefined reference to `ngs::StringRef::~StringRef()' ngs-pileup.cpp:(.text+0x165): undefined reference to `ngs::ReadCollectionItf::getReference(char const*) const' ngs-pileup.cpp:(.text+0x177): undefined reference to `ngs::Reference::Reference(ngs::ReferenceItf*)' ngs-pileup.cpp:(.text+0x1a5): undefined reference to `ngs::ReferenceItf::getCanonicalName() const' ngs-pileup.cpp:(.text+0x1b0): undefined reference to `ngs::StringRef::StringRef(ngs::StringItf*)' ngs-pileup.cpp:(.text+0x1bc): undefined reference to `ngs::StringRef::toString() const' ngs-pileup.cpp:(.text+0x1c4): undefined reference to `ngs::StringRef::~StringRef()' ngs-pileup.cpp:(.text+0x285): undefined reference to `ngs::ReferenceItf::getCommonName() const' ngs-pileup.cpp:(.text+0x290): undefined reference to `ngs::StringRef::StringRef(ngs::StringItf*)' ngs-pileup.cpp:(.text+0x29b): undefined reference to `ngs::StringRef::toString() const' ngs-pileup.cpp:(.text+0x2a3): undefined reference to `ngs::StringRef::~StringRef()' ngs-pileup.cpp:(.text+0x3a6): undefined reference to `ngs::ReferenceItf::getCommonName() const' ngs-pileup.cpp:(.text+0x3b1): undefined reference to `ngs::StringRef::StringRef(ngs::StringItf*)' ngs-pileup.cpp:(.text+0x3bd): undefined reference to `ngs::StringRef::toString() const' ngs-pileup.cpp:(.text+0x3c5): undefined reference to `ngs::StringRef::~StringRef()' ngs-pileup.cpp:(.text+0x3de): undefined reference to `ngs::ReadCollectionItf::getReference(char const*) const' ngs-pileup.cpp:(.text+0x3f0): undefined reference to `ngs::Reference::Reference(ngs::ReferenceItf*)' ngs-pileup.cpp:(.text+0x404): undefined reference to `ngs::Reference::~Reference()' ngs-pileup.cpp:(.text+0x41c): undefined reference to `ngs::ReferenceIterator::~ReferenceIterator()' ngs-pileup.cpp:(.text+0x428): undefined reference to `ngs::ReadCollection::~ReadCollection()' ngs-pileup.cpp:(.text+0x507): undefined reference to `ngs::StringRef::~StringRef()' ngs-pileup.cpp:(.text+0x53e): undefined reference to `ngs::Reference::~Reference()' ngs-pileup.cpp:(.text+0x577): undefined reference to `ngs::StringRef::~StringRef()' ngs-pileup.cpp:(.text+0x5e3): undefined reference to `ngs::StringRef::~StringRef()' ngs-pileup.cpp:(.text+0x627): undefined reference to `ngs::StringRef::~StringRef()' ngs-pileup.cpp:(.text+0x640): undefined reference to `ngs::ReferenceIterator::~ReferenceIterator()' ngs-pileup.cpp:(.text+0x649): undefined reference to `ngs::ReadCollection::~ReadCollection()' ngs-pileup.o: In function `GCC_except_table1': ngs-pileup.cpp:(.gcc_except_table+0x17c): undefined reference to `typeinfo for ngs::ErrorMsg' ngs-pileup.o: In function `GCC_except_table2': ngs-pileup.cpp:(.gcc_except_table+0x214): undefined reference to `typeinfo for ngs::ErrorMsg' ngs-pileup.o: In function `GCC_except_table3': ngs-pileup.cpp:(.gcc_except_table+0x28c): undefined reference to `typeinfo for ngs::ErrorMsg' ngs-pileup.o: In function `GCC_except_table9': ngs-pileup.cpp:(.gcc_except_table+0x3b0): undefined reference to `typeinfo for ngs::ErrorMsg' ngs-pileup.o: In function `NGS_Pileup::TargetReferences::AddComplete(ngs::Reference)': ngs-pileup.cpp:(.text._ZN10NGS_Pileup16TargetReferences11AddCompleteEN3ngs9ReferenceE[_ZN10NGS_Pileup16TargetReferences11AddCompleteEN3ngs9ReferenceE]+0x1e): undefined reference to `ngs::ReferenceItf::getCanonicalName() const' ngs-pileup.cpp:(.text._ZN10NGS_Pileup16TargetReferences11AddCompleteEN3ngs9ReferenceE[_ZN10NGS_Pileup16TargetReferences11AddCompleteEN3ngs9ReferenceE]+0x34): undefined reference to `ngs::StringRef::StringRef(ngs::StringItf*)' ngs-pileup.cpp:(.text._ZN10NGS_Pileup16TargetReferences11AddCompleteEN3ngs9ReferenceE[_ZN10NGS_Pileup16TargetReferences11AddCompleteEN3ngs9ReferenceE]+0x40): undefined reference to `ngs::StringRef::toString() const' ngs-pileup.cpp:(.text._ZN10NGS_Pileup16TargetReferences11AddCompleteEN3ngs9ReferenceE[_ZN10NGS_Pileup16TargetReferences11AddCompleteEN3ngs9ReferenceE]+0x4c): undefined reference to `ngs::StringRef::~StringRef()' ngs-pileup.cpp:(.text._ZN10NGS_Pileup16TargetReferences11AddCompleteEN3ngs9ReferenceE[_ZN10NGS_Pileup16TargetReferences11AddCompleteEN3ngs9ReferenceE]+0xf6): undefined reference to `ngs::Reference::Reference(ngs::Reference const&)' ngs-pileup.cpp:(.text._ZN10NGS_Pileup16TargetReferences11AddCompleteEN3ngs9ReferenceE[_ZN10NGS_Pileup16TargetReferences11AddCompleteEN3ngs9ReferenceE]+0x130): undefined reference to `ngs::Reference::Reference(ngs::Reference const&)' ngs-pileup.cpp:(.text._ZN10NGS_Pileup16TargetReferences11AddCompleteEN3ngs9ReferenceE[_ZN10NGS_Pileup16TargetReferences11AddCompleteEN3ngs9ReferenceE]+0x143): undefined reference to `ngs::Reference::Reference(ngs::Reference const&)' ngs-pileup.cpp:(.text._ZN10NGS_Pileup16TargetReferences11AddCompleteEN3ngs9ReferenceE[_ZN10NGS_Pileup16TargetReferences11AddCompleteEN3ngs9ReferenceE]+0x184): undefined reference to `ngs::Reference::~Reference()' ngs-pileup.cpp:(.text._ZN10NGS_Pileup16TargetReferences11AddCompleteEN3ngs9ReferenceE[_ZN10NGS_Pileup16TargetReferences11AddCompleteEN3ngs9ReferenceE]+0x1cd): undefined reference to `ngs::Reference::~Reference()' ngs-pileup.cpp:(.text._ZN10NGS_Pileup16TargetReferences11AddCompleteEN3ngs9ReferenceE[_ZN10NGS_Pileup16TargetReferences11AddCompleteEN3ngs9ReferenceE]+0x201): undefined reference to `ngs::StringRef::~StringRef()' ngs-pileup.o: In function `NGS_Pileup::TargetReference::Process(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)': ngs-pileup.cpp:(.text._ZN10NGS_Pileup15TargetReference7ProcessERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE[_ZN10NGS_Pileup15TargetReference7ProcessERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE]+0x20): undefined reference to `ngs::ReferenceItf::getLength() const' ngs-pileup.cpp:(.text._ZN10NGS_Pileup15TargetReference7ProcessERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE[_ZN10NGS_Pileup15TargetReference7ProcessERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE]+0x49): undefined reference to `ngs::ReferenceItf::getPileups(unsigned int) const' ngs-pileup.cpp:(.text._ZN10NGS_Pileup15TargetReference7ProcessERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE[_ZN10NGS_Pileup15TargetReference7ProcessERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE]+0x54): undefined reference to `ngs::PileupIterator::PileupIterator(ngs::PileupEventItf*)' ngs-pileup.cpp:(.text._ZN10NGS_Pileup15TargetReference7ProcessERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE[_ZN10NGS_Pileup15TargetReference7ProcessERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE]+0x66): undefined reference to `ngs::PileupIterator::PileupIterator(ngs::PileupIterator const&)' ngs-pileup.cpp:(.text._ZN10NGS_Pileup15TargetReference7ProcessERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE[_ZN10NGS_Pileup15TargetReference7ProcessERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE]+0x8f): undefined reference to `ngs::PileupIterator::~PileupIterator()' ngs-pileup.cpp:(.text._ZN10NGS_Pileup15TargetReference7ProcessERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE[_ZN10NGS_Pileup15TargetReference7ProcessERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE]+0xd4): undefined reference to `ngs::PileupItf::nextPileup()' ngs-pileup.cpp:(.text._ZN10NGS_Pileup15TargetReference7ProcessERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE[_ZN10NGS_Pileup15TargetReference7ProcessERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE]+0xdc): undefined reference to `ngs::PileupItf::getPileupDepth() const' ngs-pileup.cpp:(.text._ZN10NGS_Pileup15TargetReference7ProcessERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE[_ZN10NGS_Pileup15TargetReference7ProcessERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE]+0x218): undefined reference to `ngs::PileupIterator::~PileupIterator()' ngs-pileup.o: In function `NGS_Pileup::TargetReference::TargetReference(ngs::Reference)': ngs-pileup.cpp:(.text._ZN10NGS_Pileup15TargetReferenceC2EN3ngs9ReferenceE[_ZN10NGS_Pileup15TargetReferenceC2EN3ngs9ReferenceE]+0x1b): undefined reference to `ngs::ReferenceItf::getCanonicalName() const' ngs-pileup.cpp:(.text._ZN10NGS_Pileup15TargetReferenceC2EN3ngs9ReferenceE[_ZN10NGS_Pileup15TargetReferenceC2EN3ngs9ReferenceE]+0x2a): undefined reference to `ngs::StringRef::StringRef(ngs::StringItf*)' ngs-pileup.cpp:(.text._ZN10NGS_Pileup15TargetReferenceC2EN3ngs9ReferenceE[_ZN10NGS_Pileup15TargetReferenceC2EN3ngs9ReferenceE]+0x35): undefined reference to `ngs::StringRef::toString() const' ngs-pileup.cpp:(.text._ZN10NGS_Pileup15TargetReferenceC2EN3ngs9ReferenceE[_ZN10NGS_Pileup15TargetReferenceC2EN3ngs9ReferenceE]+0x3e): undefined reference to `ngs::StringRef::~StringRef()' ngs-pileup.cpp:(.text._ZN10NGS_Pileup15TargetReferenceC2EN3ngs9ReferenceE[_ZN10NGS_Pileup15TargetReferenceC2EN3ngs9ReferenceE]+0x77): undefined reference to `ngs::Reference::Reference(ngs::Reference const&)' ngs-pileup.cpp:(.text._ZN10NGS_Pileup15TargetReferenceC2EN3ngs9ReferenceE[_ZN10NGS_Pileup15TargetReferenceC2EN3ngs9ReferenceE]+0x8a): undefined reference to `ngs::Reference::Reference(ngs::Reference const&)' ngs-pileup.cpp:(.text._ZN10NGS_Pileup15TargetReferenceC2EN3ngs9ReferenceE[_ZN10NGS_Pileup15TargetReferenceC2EN3ngs9ReferenceE]+0xa6): undefined reference to `ngs::Reference::~Reference()' ngs-pileup.cpp:(.text._ZN10NGS_Pileup15TargetReferenceC2EN3ngs9ReferenceE[_ZN10NGS_Pileup15TargetReferenceC2EN3ngs9ReferenceE]+0xc2): undefined reference to `ngs::Reference::~Reference()' ngs-pileup.cpp:(.text._ZN10NGS_Pileup15TargetReferenceC2EN3ngs9ReferenceE[_ZN10NGS_Pileup15TargetReferenceC2EN3ngs9ReferenceE]+0xec): undefined reference to `ngs::PileupIterator::~PileupIterator()' ngs-pileup.cpp:(.text._ZN10NGS_Pileup15TargetReferenceC2EN3ngs9ReferenceE[_ZN10NGS_Pileup15TargetReferenceC2EN3ngs9ReferenceE]+0x134): undefined reference to `ngs::Reference::~Reference()' ngs-pileup.cpp:(.text._ZN10NGS_Pileup15TargetReferenceC2EN3ngs9ReferenceE[_ZN10NGS_Pileup15TargetReferenceC2EN3ngs9ReferenceE]+0x186): undefined reference to `ngs::StringRef::~StringRef()' ngs-pileup.o: In function `NGS_Pileup::TargetReference::~TargetReference()': ngs-pileup.cpp:(.text._ZN10NGS_Pileup15TargetReferenceD2Ev[_ZN10NGS_Pileup15TargetReferenceD2Ev]+0x34): undefined reference to `ngs::PileupIterator::~PileupIterator()' ngs-pileup.cpp:(.text._ZN10NGS_Pileup15TargetReferenceD2Ev[_ZN10NGS_Pileup15TargetReferenceD2Ev]+0x74): undefined reference to `ngs::Reference::~Reference()' ngs-pileup.o: In function `_ZNSt3__16vectorIN3ngs9ReferenceENS_9allocatorIS2_EEE21__push_back_slow_pathIRKS2_EEvOT_': ngs-pileup.cpp:(.text._ZNSt3__16vectorIN3ngs9ReferenceENS_9allocatorIS2_EEE21__push_back_slow_pathIRKS2_EEvOT_[_ZNSt3__16vectorIN3ngs9ReferenceENS_9allocatorIS2_EEE21__push_back_slow_pathIRKS2_EEvOT_]+0xd0): undefined reference to `ngs::Reference::Reference(ngs::Reference const&)' ngs-pileup.cpp:(.text._ZNSt3__16vectorIN3ngs9ReferenceENS_9allocatorIS2_EEE21__push_back_slow_pathIRKS2_EEvOT_[_ZNSt3__16vectorIN3ngs9ReferenceENS_9allocatorIS2_EEE21__push_back_slow_pathIRKS2_EEvOT_]+0x10b): undefined reference to `ngs::Reference::Reference(ngs::Reference const&)' ngs-pileup.cpp:(.text._ZNSt3__16vectorIN3ngs9ReferenceENS_9allocatorIS2_EEE21__push_back_slow_pathIRKS2_EEvOT_[_ZNSt3__16vectorIN3ngs9ReferenceENS_9allocatorIS2_EEE21__push_back_slow_pathIRKS2_EEvOT_]+0x164): undefined reference to `ngs::Reference::~Reference()' ngs-pileup.cpp:(.text._ZNSt3__16vectorIN3ngs9ReferenceENS_9allocatorIS2_EEE21__push_back_slow_pathIRKS2_EEvOT_[_ZNSt3__16vectorIN3ngs9ReferenceENS_9allocatorIS2_EEE21__push_back_slow_pathIRKS2_EEvOT_]+0x1f4): undefined reference to `ngs::Reference::~Reference()' ngs-pileup.o: In function `NGS_Pileup::TargetReference::TargetReference(NGS_Pileup::TargetReference const&)': ngs-pileup.cpp:(.text._ZN10NGS_Pileup15TargetReferenceC2ERKS0_[_ZN10NGS_Pileup15TargetReferenceC2ERKS0_]+0x1f4): undefined reference to `ngs::Reference::~Reference()' ngs-pileup.o: In function `std::__1::vector<ngs::Reference, std::__1::allocator<ngs::Reference> >::vector(std::__1::vector<ngs::Reference, std::__1::allocator<ngs::Reference> > const&)': ngs-pileup.cpp:(.text._ZNSt3__16vectorIN3ngs9ReferenceENS_9allocatorIS2_EEEC2ERKS5_[_ZNSt3__16vectorIN3ngs9ReferenceENS_9allocatorIS2_EEEC2ERKS5_]+0x74): undefined reference to `ngs::Reference::Reference(ngs::Reference const&)' ngs-pileup.cpp:(.text._ZNSt3__16vectorIN3ngs9ReferenceENS_9allocatorIS2_EEEC2ERKS5_[_ZNSt3__16vectorIN3ngs9ReferenceENS_9allocatorIS2_EEEC2ERKS5_]+0xd4): undefined reference to `ngs::Reference::~Reference()' ngs-pileup.o: In function `std::__1::vector<ngs::PileupIterator, std::__1::allocator<ngs::PileupIterator> >::vector(std::__1::vector<ngs::PileupIterator, std::__1::allocator<ngs::PileupIterator> > const&)': ngs-pileup.cpp:(.text._ZNSt3__16vectorIN3ngs14PileupIteratorENS_9allocatorIS2_EEEC2ERKS5_[_ZNSt3__16vectorIN3ngs14PileupIteratorENS_9allocatorIS2_EEEC2ERKS5_]+0x74): undefined reference to `ngs::PileupIterator::PileupIterator(ngs::PileupIterator const&)' ngs-pileup.cpp:(.text._ZNSt3__16vectorIN3ngs14PileupIteratorENS_9allocatorIS2_EEEC2ERKS5_[_ZNSt3__16vectorIN3ngs14PileupIteratorENS_9allocatorIS2_EEEC2ERKS5_]+0xd4): undefined reference to `ngs::PileupIterator::~PileupIterator()' ngs-pileup.o: In function `_ZNSt3__16vectorIN3ngs14PileupIteratorENS_9allocatorIS2_EEE21__push_back_slow_pathIS2_EEvOT_': ngs-pileup.cpp:(.text._ZNSt3__16vectorIN3ngs14PileupIteratorENS_9allocatorIS2_EEE21__push_back_slow_pathIS2_EEvOT_[_ZNSt3__16vectorIN3ngs14PileupIteratorENS_9allocatorIS2_EEE21__push_back_slow_pathIS2_EEvOT_]+0xd0): undefined reference to `ngs::PileupIterator::PileupIterator(ngs::PileupIterator const&)' ngs-pileup.cpp:(.text._ZNSt3__16vectorIN3ngs14PileupIteratorENS_9allocatorIS2_EEE21__push_back_slow_pathIS2_EEvOT_[_ZNSt3__16vectorIN3ngs14PileupIteratorENS_9allocatorIS2_EEE21__push_back_slow_pathIS2_EEvOT_]+0x10b): undefined reference to `ngs::PileupIterator::PileupIterator(ngs::PileupIterator const&)' ngs-pileup.cpp:(.text._ZNSt3__16vectorIN3ngs14PileupIteratorENS_9allocatorIS2_EEE21__push_back_slow_pathIS2_EEvOT_[_ZNSt3__16vectorIN3ngs14PileupIteratorENS_9allocatorIS2_EEE21__push_back_slow_pathIS2_EEvOT_]+0x164): undefined reference to `ngs::PileupIterator::~PileupIterator()' ngs-pileup.cpp:(.text._ZNSt3__16vectorIN3ngs14PileupIteratorENS_9allocatorIS2_EEE21__push_back_slow_pathIS2_EEvOT_[_ZNSt3__16vectorIN3ngs14PileupIteratorENS_9allocatorIS2_EEE21__push_back_slow_pathIS2_EEvOT_]+0x1f4): undefined reference to `ngs::PileupIterator::~PileupIterator()' main.o: In function `KMain': main.cpp:(.text+0x4ee): undefined reference to `ngs::ErrorMsg::ErrorMsg(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)' main.cpp:(.text+0x4f3): undefined reference to `typeinfo for ngs::ErrorMsg' main.cpp:(.text+0x4f8): undefined reference to `ngs::ErrorMsg::~ErrorMsg()' main.cpp:(.text+0x575): undefined reference to `ngs::ErrorMsg::ErrorMsg(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)' main.cpp:(.text+0x57a): undefined reference to `typeinfo for ngs::ErrorMsg' main.cpp:(.text+0x57f): undefined reference to `ngs::ErrorMsg::~ErrorMsg()' main.cpp:(.text+0x61d): undefined reference to `ngs::ErrorMsg::ErrorMsg(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)' main.cpp:(.text+0x622): undefined reference to `typeinfo for ngs::ErrorMsg' main.cpp:(.text+0x627): undefined reference to `ngs::ErrorMsg::~ErrorMsg()' main.cpp:(.text+0x67e): undefined reference to `ngs::ErrorMsg::ErrorMsg(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)' main.cpp:(.text+0x683): undefined reference to `typeinfo for ngs::ErrorMsg' main.cpp:(.text+0x688): undefined reference to `ngs::ErrorMsg::~ErrorMsg()' main.o: In function `GCC_except_table2': main.cpp:(.gcc_except_table+0x1cc): undefined reference to `typeinfo for ngs::ErrorMsg' /usr/ports/wip/ncbi-vdb/work/ncbi-vdb-2.8.2-2/amd64-portbld-freebsd11.2/ncbi-vdb/bsd/clang/x86_64/rel/lib/libncbi-ngs-c++.a(NCBI-NGS.pic.o): In function `ncbi::NGS::openReadCollection(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)': NCBI-NGS.cpp:(.text+0x158): undefined reference to `ngs::ErrBlock::Throw() const' NCBI-NGS.cpp:(.text+0x163): undefined reference to `ngs::ReadCollection::ReadCollection(ngs::ReadCollectionItf*)' /usr/ports/wip/ncbi-vdb/work/ncbi-vdb-2.8.2-2/amd64-portbld-freebsd11.2/ncbi-vdb/bsd/clang/x86_64/rel/lib/libncbi-ngs-c++.a(NCBI-NGS.pic.o): In function `ncbi::NGS::openReferenceSequence(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)': NCBI-NGS.cpp:(.text+0x298): undefined reference to `ngs::ErrBlock::Throw() const' NCBI-NGS.cpp:(.text+0x2a3): undefined reference to `ngs::ReferenceSequence::ReferenceSequence(ngs::ReferenceSequenceItf*)' /usr/ports/wip/ncbi-vdb/work/ncbi-vdb-2.8.2-2/amd64-portbld-freebsd11.2/ncbi-vdb/bsd/clang/x86_64/rel/lib/libncbi-ngs-c++.a(NCBI-NGS.pic.o):(.data+0x0): undefined reference to `typeinfo for ngs::ErrorMsg' c++: error: linker command failed with exit code 1 (use -v to see invocation) gmake[5]: *** [/usr/ports/wip/sra-tools/work/sra-tools-2.8.2-3/tools/ngs-pileup/Makefile:81: /usr/ports/wip/sra-tools/work/sra-tools-2.8.2-3/amd64-portbld-freebsd11.2/sra-tools/bsd/clang/x86_64/rel/bin/ngs-pileup] Error 1 gmake[5]: Leaving directory '/usr/ports/wip/sra-tools/work/sra-tools-2.8.2-3/amd64-portbld-freebsd11.2/sra-tools/bsd/clang/x86_64/rel/obj/tools/ngs-pileup' gmake[4]: *** [Makefile:47: all] Error 2 gmake[4]: Leaving directory '/usr/ports/wip/sra-tools/work/sra-tools-2.8.2-3/tools/ngs-pileup' gmake[3]: *** [/usr/ports/wip/sra-tools/work/sra-tools-2.8.2-3/build/Makefile.targets:54: ngs-pileup_all] Error 2 gmake[3]: Leaving directory '/usr/ports/wip/sra-tools/work/sra-tools-2.8.2-3/tools' gmake[2]: *** [/usr/ports/wip/sra-tools/work/sra-tools-2.8.2-3/build/Makefile.targets:54: tools_all] Error 2 gmake[2]: Leaving directory '/usr/ports/wip/sra-tools/work/sra-tools-2.8.2-3' *** Error code 1 Stop. make[1]: stopped in /usr/ports/wip/sra-tools *** Error code 1 Stop. make: stopped in /usr/ports/wip/sra-tools root@unixdev1:/usr/ports/wip/sra-tools #
(In reply to Jason W. Bacon from comment #9) Where does ngs::StringRef come from? Is this the case of missing LDFLAGS -lngs-sdk or similar?
I think this was caused by having ngs-sdk-2.9.3 preinstalled. The port depends on 1.3.0. After removing it and allowing sra-tools to install the correct port as a dep, I'm getting a different error, which I'll try to track down.
Created attachment 199150 [details] Patch to set MAKE_JOBS_UNSAFE Consistently fails to build on a 16-core / 32-ht system unless using MAKE_JOBS_UNSAFE. I've seen this a few times before with esoteric build systems. Builds fine on my 4-core systems, though. Would be nice if we could limit make jobs rather than completely disable them in cases like this.
Created attachment 199206 [details] Add MAKE_JOBS_NUMBER_LIMIT Found time to dig a little deeper and setting MAKE_JOBS_NUMBER_LIMIT to 16 or less seems to do the trick. At 32 it fails.
I was looking into ncbi-vdb. There are several problems with it: * It isn't at the latest version * TEST option needs to be removed - tests should be run through the test target I'll look at this again when I have time.
Thanks for your efforts on this... FYI, the MAKE_JOBS_NUMBER_LIMIT is just informative, not a suggestion of how we should commit the port. In fact, I saw intermittent failures building on our 12-core Opteron cluster nodes until I reduced it to 4. Using MAKE_JOBS_UNSAFE might be best.
Are you still working on this? If not, I can take over and bring everything up to the latest release.
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=d55fba431adf6bc61c3553dd91625a4b16115cf6 commit d55fba431adf6bc61c3553dd91625a4b16115cf6 Author: Yuri Victorovich <yuri@FreeBSD.org> AuthorDate: 2021-04-12 09:29:15 +0000 Commit: Yuri Victorovich <yuri@FreeBSD.org> CommitDate: 2021-04-12 09:29:42 +0000 New port: biology/ncbi-vdb: NCBI's virtualized back-end for accessing Sequence Read Archive PR: 223273 Submitted by: Motomichi Matsuzaki <mzaki@niid.go.jp> (original version) biology/Makefile | 1 + biology/ncbi-vdb/Makefile (new) | 64 ++++++ biology/ncbi-vdb/distinfo (new) | 5 + biology/ncbi-vdb/files/Makefile.bsd (new) | 72 ++++++ .../files/patch-build_Makefile.clang (new) | 30 +++ .../ncbi-vdb/files/patch-build_Makefile.env (new) | 28 +++ .../ncbi-vdb/files/patch-build_Makefile.gcc (new) | 35 +++ .../files/patch-build_Makefile.install (new) | 11 + .../files/patch-build_Makefile.shell (new) | 31 +++ .../files/patch-build_ld.bsd.dlib.sh (new) | 22 ++ .../ncbi-vdb/files/patch-build_ld.bsd.exe.sh (new) | 22 ++ biology/ncbi-vdb/files/patch-build_ld.sh (new) | 49 ++++ biology/ncbi-vdb/files/patch-libs_Makefile (new) | 12 + .../ncbi-vdb/files/patch-libs_kfg_config.c (new) | 20 ++ .../files/patch-libs_klib_unix_systime.c (new) | 11 + .../ncbi-vdb/files/patch-libs_kns_Makefile (new) | 13 ++ .../files/patch-libs_kns_linux_syspoll.c (new) | 11 + .../files/patch-libs_kns_unix_syssock.c (new) | 10 + .../files/patch-libs_ncbi-vdb_Makefile (new) | 40 ++++ .../files/patch-libs_search_Makefile (new) | 12 + .../files/patch-setup_konfigure.perl (new) | 253 +++++++++++++++++++++ .../ncbi-vdb/files/patch-setup_os-arch.prl (new) | 20 ++ .../ncbi-vdb/files/patch-setup_package.prl (new) | 26 +++ .../files/patch-test_kapp_run-sig-core.sh (new) | 49 ++++ .../files/patch-test_kfg_kfgtest.cpp (new) | 11 + .../files/patch-test_klib_printf-test.c (new) | 11 + .../ncbi-vdb/files/patch-test_kns_Makefile (new) | 32 +++ .../patch-test_vdb_test-dependencies.cpp (new) | 11 + ...rect-rejected-names-cgi-http-to-https.cpp (new) | 11 + biology/ncbi-vdb/pkg-descr (new) | 7 + biology/ncbi-vdb/pkg-plist (new) | 17 ++ 31 files changed, 947 insertions(+)
(In reply to commit-hook from comment #17) This is great, thanks! Builds cleanly for me on AMD64. I'll test on PPC64 after the 13.0 release. Are you planning to upstream the patches soon? I spot checked and most of them look pretty straightforward. I'd suggest adding the following to Makefile.clang, as was done with Makefile.gcc: CCNAME ?= clang CXXNAME ?= clang++ Then upstream maybe be able to accept it without modification.
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=353678f54b5fcc1821077ab3f84fe389a1ef2b9b commit 353678f54b5fcc1821077ab3f84fe389a1ef2b9b Author: Yuri Victorovich <yuri@FreeBSD.org> AuthorDate: 2021-04-12 18:03:14 +0000 Commit: Yuri Victorovich <yuri@FreeBSD.org> CommitDate: 2021-04-12 18:03:14 +0000 biology/ncbi-vdb: Restore static libs installed with symlinks as shared libs are usually installed Symlinks like this libxx.a->libxx.a.N.N.N first looked broken but it turned out that this is intentional. PR: 223273 biology/ncbi-vdb/Makefile | 6 +++--- biology/ncbi-vdb/pkg-plist | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-)
(In reply to Jason W. Bacon from comment #18) Hi Jason, > Are you planning to upstream the patches soon? I spot checked and most of them look pretty straightforward. > > I'd suggest adding the following to Makefile.clang, as was done with Makefile.gcc: > > CCNAME ?= clang > CXXNAME ?= clang++ I upstreamed most of the patches with some additional modifications that include your suggestion: https://github.com/ncbi/ncbi-vdb/pull/37 Yuri
Will commit biology/sra-tools soon.
(In reply to Yuri Victorovich from comment #21) Fantastic, thanks again! I'm working on the few remaining Biostar handbook tools in the meantime.
Created attachment 224490 [details] wip-sra-tools-2.11.0.patch
Created attachment 224529 [details] Fix / work around some of the remaining build errors I added a FreeBSD byteswap.h and a few other patches to work around some build errors. We can review these and find better solutions for some. The utf8proc patch is just temporary to silence the missing .so error. I think the static lib will suffice for the moment. Patch attached and latest always available here: https://github.com/outpaddling/freebsd-ports-wip/tree/master/sra-tools Now it's failing with /usr/local/bin/ld: /usr/ports/biology/ncbi-vdb/work/ncbi-vdb-2.11.0/amd64-portbld-freebsd12.2/ncbi-vdb/bsd/clang/x86_64/rel/lib/libncbi-vdb.so: undefined reference to `vdb_mbedtls_aes_setkey_enc'
This was completed some time ago. Just forgot to close the PR.