Closed Stikus closed 3 years ago
After vcflib
installation (mentioned in https://github.com/vcflib/vcflib/issues/303) tests problem fixed:
root@74947168eb24:/soft/freebayes-1.3.3-src/build# ninja test
[0/1] Running all tests.
1/5 T00 OK 0.23s
2/5 T01 OK 19.29s
3/5 T01b OK 9.91s
4/5 T02 OK 0.28s
5/5 T03 OK 0.13s
Ok: 5
Expected Fail: 0
Fail: 0
Unexpected Pass: 0
Skipped: 0
Timeout: 0
Just for info.
Thanks, we should add it to the docs
Note that in 3c92c0f15d422169f0a8ec5967f19e587e8b150c I removed bzip2_dep from meson.build altogether as it was not used.
I also have these missing library dependencies. I have htslib, vcflib, and tabix all installed. How do I tell ninja where these libraries are?
Run-time dependency htslib found: NO (tried pkgconfig and cmake)
Library tabixpp found: NO
Run-time dependency libvcflib found: NO (tried pkgconfig and cmake)
Run-time dependency libseqlib found: NO (tried pkgconfig and cmake)
@BJWiley233 Are you using the latest tree right now? And are you on Debian?
And what does
pkg-config --list-all
say?
I am running on my schools server. It is "Centos V7" on Linux. I do not have admin rights so I just install everything locally if I need an update. It's not the best model but my admins don't really do anything to help add stuff. I have htslib installed in a tools directory in my $HOME which contains tabix and also bcftools and vcflib all installed in my home directory and I usually link them when compiling other programs with cmake
and make
. This is my output from pkg-config --list-all
. Maybe I should just use the pre-compiled binary? Does this binary have the fix for the QA and QS float issue?
zlib zlib - zlib compression library
xfixes Xfixes - X Fixes Library
xf86dgaproto XF86DGAProto - XF86DGA extension headers
kdb kdb - Kerberos database access libraries
xcb-composite XCB Composite - XCB Composite Extension
randrproto RandrProto - Randr extension headers
libpng15 libpng - Loads and saves PNG files
menu menu - ncurses 5.9 add-on library
xcb-xevie XCB Xevie - XCB Xevie Extension
libva-glx libva-glx - Userspace Video Acceleration (VA) glx interface
libselinux libselinux - SELinux utility library
tbbmalloc_proxy Threading Building Blocks Scallable Malloc Proxy - Implementation of proxy that redirects memory allocation calls to TBB Scalable Memory Allocator
fontsproto FontsProto - Fonts extension headers
xau Xau - X authorization file management libary
dmxproto DMXProto - DMX extension headers
xcb-damage XCB Damage - XCB Damage Extension
libyami libyami - Intel open source media infrastructure base on libva.
libpcre2-16 libpcre2-16 - PCRE2 - Perl compatible regular expressions C library (2nd API) with 16 bit character support
uuid uuid - Universally unique id library
xcb-xvmc XCB XvMC - XCB XvMC Extension
xf86miscproto XF86MiscProto - XF86Misc extension headers
libdrm libdrm - Userspace interface to kernel DRM services
panelw panelw - ncurses 5.9 add-on library
presentproto PresentProto - Present extension headers
xproxymngproto XProxyManagementProtocol - X Proxy Management Protocol headers
fontutil FontUtil - Font utilities dirs
glproto GLProto - GL extension headers
wayland-client Wayland Client - Wayland client side library
libpcrecpp libpcrecpp - PCRECPP - C++ wrapper for PCRE
libsepol libsepol - SELinux policy library
libffi libffi - Library supporting Foreign Function Interfaces
libdrm_nouveau libdrm_nouveau - Userspace interface to nouveau kernel DRM services
xrender Xrender - X Render Library
libva libva - Userspace Video Acceleration (VA) core interface
wayland-server Wayland Server - Server side implementation of the Wayland protocol
krb5 krb5 - An implementation of Kerberos network authentication
bigreqsproto BigReqsProto - BigReqs extension headers
icu-io icu-io - International Components for Unicode: Stream and I/O Library
xproto Xproto - Xproto headers
liblzma liblzma - General purpose data compression library
xext Xext - Misc X Extension Library
xcb XCB - X-protocol C Binding
libRmath libRmath - The Rmath function library
xcb-record XCB Record - XCB Record Extension
pthread-stubs pthread stubs - Stubs missing from libc for standard pthread functions
xcb-xtest XCB XTEST - XCB XTEST Extension
videoproto VideoProto - Video extension headers
python-2.7 Python - Python library
xcb-randr XCB RandR - XCB RandR Extension
renderproto RenderProto - Render extension headers
systemd systemd - systemd System and Service Manager
xcb-present XCB Present - XCB Present Extension
menuw menuw - ncurses 5.9 add-on library
libssl OpenSSL-libssl - Secure Sockets Layer and cryptography libraries
gnome-keybindings gnome-keybindings - Keybindings configuration for GNOME applications
libpcre2-32 libpcre2-32 - PCRE2 - Perl compatible regular expressions C library (2nd API) with 32 bit character support
openssl OpenSSL - Secure Sockets Layer and cryptography libraries and tools
libxml-2.0 libXML - libXML library version2.
fixesproto FixesProto - X Fixes extension headers
dracut dracut - dracut
xcb-sync XCB Sync - XCB Sync Extension
egl egl - Mesa EGL library
ncurses ncurses - ncurses 5.9 library
python Python - Python library
expat expat - expat XML parser
xcb-xv XCB Xv - XCB Xv Extension
xcb-shm XCB Shm - XCB Shm Extension
x11-xcb X11 XCB - X Library XCB interface
xcb-shape XCB Shape - XCB Shape Extension
wayland-egl-backend wayland-egl-backend - Backend wayland-egl interface
xcb-xkb XCB XKB - XCB Keyboard Extension (EXPERIMENTAL)
dri3proto DRI3Proto - DRI3 extension headers
damageproto DamageProto - Damage extension headers
libR libR - R as a library
krb5-gssapi krb5-gssapi - Kerberos implementation of the GSSAPI
x11 X11 - X Library
xdamage Xdamage - X Damage Library
usbutils usbutils - USB device database
tinfo tinfo - ncurses 5.9 terminal interface library
sqlite3 SQLite - SQL database engine
kbproto KBProto - KB extension headers
xcb-xinput XCB XInput - XCB XInput Extension (EXPERIMENTAL)
xcb-dri2 XCB DRI2 - XCB DRI2 Extension
xcb-dri3 XCB DRI3 - XCB DRI3 Extension
xcb-xinerama XCB Xinerama - XCB Xinerama Extension
ncurses++w ncurses++w - ncurses 5.9 add-on library
compositeproto CompositeExt - Composite extension headers
xf86driproto XF86DRIProto - XF86DRI extension headers
libpcre2-8 libpcre2-8 - PCRE2 - Perl compatible regular expressions C library (2nd API) with 8 bit character support
xcb-xselinux XCB SELinux - XCB SELinux Extension
libdrm_amdgpu libdrm_amdgpu - Userspace interface to kernel DRM services for amdgpu
dri2proto DRI2Proto - DRI2 extension headers
tbbmalloc Threading Building Blocks Scalable Allocator - Implementation of Scalable Memory Allocator of Threading Building Blocks
xxf86vm Xxf86vm - XFree86 Video Mode Extension Library
icu-le icu-le - International Components for Unicode: Layout library
libpcre16 libpcre16 - PCRE - Perl compatible regular expressions C library with 16 bit character support
mit-krb5-gssapi mit-krb5-gssapi - Kerberos implementation of the GSSAPI
inputproto InputProto - Input extension headers
resourceproto ResourceProto - Resource extension headers
libdrm_radeon libdrm_radeon - Userspace interface to kernel DRM services for radeon
xextproto XExtProto - XExt extension headers
bash-completion bash-completion - programmable completion for the bash shell
libpng libpng - Loads and saves PNG files
xcb-dpms XCB DPMS - XCB DPMS Extension
fontconfig Fontconfig - Font configuration and customization library
libva-egl libva-egl - Userspace Video Acceleration (VA) egl interface
ncurses++ ncurses++ - ncurses 5.9 add-on library
libcrypto OpenSSL-libcrypto - OpenSSL cryptography library
python2 Python - Python library
form form - ncurses 5.9 add-on library
com_err com_err - Common error description library
icu-lx icu-lx - International Components for Unicode: Paragraph Layout library
libpcreposix libpcreposix - PCREPosix - Posix compatible interface to libpcre
libcurl libcurl - Library to transfer files with ftp, http, etc.
wayland-cursor Wayland Cursor - Wayland cursor helper library
tic tic - ncurses 5.9 add-on library
xf86vidmodeproto XF86VidModeProto - XF86VidMode extension headers
wayland-scanner Wayland Scanner - Wayland scanner
xcb-res XCB Res - XCB X-Resource Extension
xcmiscproto XCMiscProto - XCMisc extension headers
scrnsaverproto ScrnSaverProto - ScrnSaver extension headers
xft Xft - X FreeType library
libdrm_intel libdrm_intel - Userspace interface to intel kernel DRM services
libpcre2-posix libpcre2-posix - Posix compatible interface to libpcre2-8
ruby Ruby - Object Oriented Script Language
libva-x11 libva-x11 - Userspace Video Acceleration (VA) x11 interface
xineramaproto XineramaProto - Xinerama extension headers
wayland-egl wayland-egl - Frontend wayland-egl library
libva-drm libva-drm - Userspace Video Acceleration (VA) drm interface
icu-uc icu-uc - International Components for Unicode: Common and Data libraries
tbb Threading Building Blocks - The Threading Building Blocks library abstracts low-level threading details
shared-mime-info shared-mime-info - Freedesktop common MIME database
ncursesw ncursesw - ncurses 5.9 library
xf86bigfontproto XF86BigFontProto - XF86BigFont extension headers
recordproto RecordProto - Record extension headers
xcb-render XCB Render - XCB Render Extension
kadm-client kadm-client - Kerberos administration client library
icu-i18n icu-i18n - International Components for Unicode: Internationalization library
libsqlite3x sqlite3x - A C++ Wrapper for the SQLite3 embeddable SQL database engine
panel panel - ncurses 5.9 add-on library
libpcre libpcre - PCRE - Perl compatible regular expressions C library with 8 bit character support
libpcre32 libpcre32 - PCRE - Perl compatible regular expressions C library with 32 bit character support
libkms libkms - Library that abstract aways the different mm interface for kernel drivers
libglvnd libglvnd - Vendor-neutral OpenGL dispatch library vendor interface
freetype2 FreeType 2 - A free, high-quality, and portable font engine.
xcb-xf86dri XCB XFree86-DRI - XCB XFree86-DRI Extension
gssrpc gssrpc - GSSAPI RPC implementation
formw formw - ncurses 5.9 add-on library
libverto libverto - Event loop abstraction interface
mit-krb5 mit-krb5 - An implementation of Kerberos network authentication
xcb-screensaver XCB Screensaver - XCB Screensaver Extension
tre TRE - TRE regexp matching library
libva-tpi libva-tpi - Userspace Video Acceleration (VA) 3rd party interface
evieproto EvIEExt - EvIE extension headers
xcb-xfixes XCB XFixes - XCB XFixes Extension
xcb-glx XCB GLX - XCB GLX Extension
kadm-server kadm-server - Kerberos administration server library
udev udev - udev
libva-wayland libva-wayland - Userspace Video Acceleration (VA) wayland interface
pkg-config does most of the finding, so it is not surprising it is not working. You can, indeed, use the supplied binary. It is the latest version.
Oh wait, there is no binary. Sorry about that because I need to compile a static one and have not succeeded so far. How urgent is this, we could try to fix this together.
Not that urgent. I will actually talk to my PI about doing some phasing and I thought it could be beneficial to use "gvcfs" for tumour data. I am pretty new at phasing so not sure if that is even something that is done, phasing "gvcf" data.
OK, we have two options. I create a static binary or we try to build on your system by supplying arguments to meson/ninja. If you want to help send me an email pjotr dot public 13 at thebird.nl so we can communicate a bit easier.
Sounds good. I would love to learn how to add static libraries to meson/ninja. Ill send email now. I may not reply until later as I work overnight so going to sleep soon.
I think it should build correclty if you do a full git recursive checkout of the repository.
The code in meson.build looks good. It finds sets htlib dependency fine but not sure why tabixpp, libvcflib, and libseqlib still are not found.
Run-time dependency htslib found: YES @-PACKAGE_VERSION@
Library tabixpp found: NO
Found CMake: /export/home/bwiley4/bin/cmake (3.18.3)
Run-time dependency libvcflib found: NO (tried pkgconfig and cmake)
Run-time dependency libseqlib found: NO (tried pkgconfig and cmake)
tabixpp
is not tabix
. Look here - maybe you have the same problem: https://github.com/vcflib/vcflib/issues/303
Can this be installed locally and linked? I don't have admin rights on my server.
According to last line: https://github.com/vcflib/vcflib/issues/303#issuecomment-750409535 I think yes. But @pjotrp for sure can help more than me.
The code in meson.build looks good. It finds sets htlib dependency fine but not sure why tabixpp, libvcflib, and libseqlib still are not found.
You need to ignore the big fat NO in this case.
Move on to the ninja step (cd build && ninja
or simply ninja -C build/
) where ninja is supposed to compile the missing libraries using the git submodules that are provided with freebayes git checkout.
Ah I knew I should have posted that output initially above. So when I run ninja
I get:
FAILED: libcustom_seqlib.a.p/contrib_SeqLib_src_ssw.c.o
cc -Ilibcustom_seqlib.a.p -I. -I.. -I../vcflib/src -I../vcflib/smithwaterman -I../vcflib/multichoose -I../vcflib/filevercmp -I../vcflib/fastahack -I../contrib -I../contrib/SeqLib -pipe -D_FILE_OFFSET_BITS=64 -g -fPIC -MD -MQ libcustom_seqlib.a.p/contrib_SeqLib_src_ssw.c.o -MF libcustom_seqlib.a.p/contrib_SeqLib_src_ssw.c.o.d -o libcustom_seqlib.a.p/contrib_SeqLib_src_ssw.c.o -c ../contrib/SeqLib/src/ssw.c
In file included from ../vcflib/src/simde/x86/sse2.h:35:0,
from ../contrib/SeqLib/src/ssw.c:39:
...some more compile lines with some Warnings no errors
ninja: build stopped: subcommand failed.
The cc
on my server is old:
cc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
I installed newer gcc
version 9.3 but that is only when command gcc
is used to compile and not cc
Does that make any difference?
Please don't use an old compiler ;)
You can override the paths by setting CXX and CC. See https://github.com/freebayes/freebayes#compilation
Thanks I set CC to path of GCC-9.3.0/bin/gcc. Got to step 47/48 and saw failing of "Linking target". I am hoping I can solve by setting LD_LIBRARY_PATH?
[47/48] Linking target bamleftalign
FAILED: bamleftalign
c++ -o bamleftalign bamleftalign.p/src_bamleftalign.cpp.o -Wl,--as-needed -Wl,--no-undefined -Wl,--start-group libfreebayes_common.a libcustom_tabixpp.a libcustom_vcflib.a libcustom_seqlib.a /usr/lib64/libz.so /usr/lib64/liblzma.so -pthread /export/home/bwiley4/tools/htslib/libhts.so -Wl,--end-group -Wl,-rpath,/export/home/bwiley4/tools/htslib -Wl,-rpath-link,/export/home/bwiley4/tools/htslib
libcustom_seqlib.a(contrib_SeqLib_src_BamReader.cpp.o): In function `SeqLib::_Bam::open_BAM_for_reading(SeqLib::ThreadPool)':
/export/home/bwiley4/tools/freebayes/build/../contrib/SeqLib/src/BamReader.cpp:216: undefined reference to `bam_hdr_destroy'
libcustom_seqlib.a(contrib_SeqLib_src_BamHeader.cpp.o): In function `SeqLib::BamHeader::BamHeader(std::vector<SeqLib::HeaderSequence, std::allocator<SeqLib::HeaderSequence> > const&)':
/export/home/bwiley4/tools/freebayes/build/../contrib/SeqLib/src/BamHeader.cpp:14: undefined reference to `bam_hdr_init'
libcustom_seqlib.a(contrib_SeqLib_src_BamHeader.cpp.o): In function `SeqLib::BamHeader::BamHeader(bam_hdr_t const*)':
/export/home/bwiley4/tools/freebayes/build/../contrib/SeqLib/src/BamHeader.cpp:72: undefined reference to `bam_hdr_dup'
libcustom_seqlib.a(contrib_SeqLib_src_BamHeader.cpp.o): In function `bam_hdr_delete::operator()(bam_hdr_t*)':
/export/home/bwiley4/tools/freebayes/build/../contrib/SeqLib/SeqLib/BamWalker.h:34: undefined reference to `bam_hdr_destroy'
collect2: error: ld returned 1 exit status
Oh wait, that error is actually related to htslib. The problem is that SeqLib uses a different include file. Are you using the latest git checkout of freebayes? There are two htslibs in view. htslib already installed on your system but Seqlib is not using its include files. If you confirm you are using the latest freebayes git repo I can have a look.
Yea i noticed it used my own htslib which was weird. Yes I checked the latest.
Can you email me the full output log of the build? It is in your build directory. Is your intention to build with the htslib on the system or the one in contrib/htslib? I may need to add a switch for the latter when the system says it has htslib.
I will email. Most people use system install of htslib or with programs that use make/cmake I just just -I and -L flags to CFLAGS and CXXFLAGS
Ok I got ninja to finish. I mistakenly actually set my PKG_CONFIG_PATH to htslib library. I do see a familiar error when I run freebayes now:
./freebayes: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./freebayes)
./freebayes: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by ./freebayes)
./freebayes: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by ./freebayes)
./freebayes: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by ./freebayes)
./freebayes: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./freebayes)
Ok this is the familiar Anaconda environment and LD_PATH issue that I solved before. High-5! I got it installed. Time for bed :)
Woot! Mission accomplished.
@jnumm if someone wants to override the system/distro pkg-config htslib for the one in ./config/htslib submodule what would be the best way to tell meson? I can see this happen when htslib is really old on the underlying system. With autotools it would be a configure switch. I can also imagine adding a pkg-config .pc file in ./contrib/htslib.pc that is added to the PKG_CONFIG_PATH.
What would be the most elegant way to handle that?
Hello, I'm trying to switch from
Cmake
tomeson
build system and found several problems:I have missing dependencies - again - same as you:
But I have both installed in my system:
I've found way to point
meson
tohtslib
- I've added its path toPKG_CONFIG_PATH
:Cmake
should findBZip2
:But it's not, and I cannot find any way to fix it. Additional proof that
Cmake
should findbz2
- part ofvcflib
install log in same container:Here are some links:
Should this be changed to something like:
bzip2_dep = meson.get_compiler('c').find_library('bz2', required : false)
or I'm wrong?