Coder Social home page Coder Social logo

Missing requirements about octopus HOT 8 CLOSED

luntergroup avatar luntergroup commented on June 17, 2024
Missing requirements

from octopus.

Comments (8)

dancooke avatar dancooke commented on June 17, 2024

Sure. Although these are really requirements of htslib rather than octopus per se. I'll update the docs for the next release in any case.

from octopus.

jbedo avatar jbedo commented on June 17, 2024

You're right, it was only cmake that used these extra dependencies. Octopus compiled fine after this patch and without the extra dependencies.

rem-deps.patch.gz

from octopus.

dancooke avatar dancooke commented on June 17, 2024

This patch causes a bunch of link errors if using htslib 1.4 or greater on OSX and Linux. In fact, I remember this is why I added these now in commits 5e50a22 and a0408c7.

from octopus.

jbedo avatar jbedo commented on June 17, 2024

Sounds like a linking problem with your htslib, it should be linking in its dependencies implicitly. I'm using linux and my htslib v1.6 is appropriately linked. Could be some bugs possible if explicitly linking against a different version to what htslib is compiled against? Not sure.

from octopus.

dancooke avatar dancooke commented on June 17, 2024

Do you recall how you installed htslib? I just installed the latest develop version manually and continue to encounter link errors when installing octopus without explicitly finding htslib's dependencies. I agree it's weird, and shouldn't be necessary.

from octopus.

dancooke avatar dancooke commented on June 17, 2024

Although this guide on writing CMake find modules suggests library dependencies should explicitly be found themselves...

from octopus.

jbedo avatar jbedo commented on June 17, 2024

Strange, what does ldd say on your library? I'm compiling using nix, which doesn't do anything special (the build expression is here). My ldd shows the library correctly linked against its dependencies:

[nix-shell:~]$ ldd /nix/store/cgj7cxnnl8jmp2qppsaxnrbwa57wv657-htslib-1.6/lib/libhts.so.2
ldd: warning: you do not have execution permission for `/nix/store/cgj7cxnnl8jmp2qppsaxnrbwa57wv657-htslib-1.6/lib/libhts.so.2'
        linux-vdso.so.1 (0x00007fff02bbc000)
        liblzma.so.5 => /nix/store/8b6gq3ay5i968i5jxzdk6x0jazxg508g-xz-5.2.3/lib/liblzma.so.5 (0x00007f175fdad000)
        libbz2.so.1 => /nix/store/m9fm5ls687zxwc2299acrw9i5k3vi0n8-bzip2-1.0.6.0.1/lib/libbz2.so.1 (0x00007f175fb9d000)
        libz.so.1 => /nix/store/qwihrwyc72qd57grhqmfzkvvpd8611yf-zlib-1.2.11/lib/libz.so.1 (0x00007f175f986000)
        libm.so.6 => /nix/store/9g2xkgiaqqzvajgb8d4hv5yqg2n96flr-glibc-2.26-75/lib/libm.so.6 (0x00007f175f63a000)
        libcurl.so.4 => /nix/store/78nh8kaacpcka6w6x0fpirlaxidyy0qa-curl-7.57.0/lib/libcurl.so.4 (0x00007f175f3bc000)
        libcrypto.so.1.0.0 => /nix/store/6dvn6wjy79yxsbz05sgcm8xplbidq5s6-openssl-1.0.2n/lib/libcrypto.so.1.0.0 (0x00007f175ef81000)
        libpthread.so.0 => /nix/store/9g2xkgiaqqzvajgb8d4hv5yqg2n96flr-glibc-2.26-75/lib/libpthread.so.0 (0x00007f175ed63000)
        libc.so.6 => /nix/store/9g2xkgiaqqzvajgb8d4hv5yqg2n96flr-glibc-2.26-75/lib/libc.so.6 (0x00007f175e9b0000)
        /nix/store/9g2xkgiaqqzvajgb8d4hv5yqg2n96flr-glibc-2.26-75/lib64/ld-linux-x86-64.so.2 (0x00007f1760280000)
        libnghttp2.so.14 => /nix/store/lc45jlqa3ra7y34nz148bmdiv8jaw0qm-nghttp2-1.24.0-lib/lib/libnghttp2.so.14 (0x00007f175e78a000)
        libssh2.so.1 => /nix/store/4plv316zazflkbnz1yv92il3v5sjjk2i-libssh2-1.8.0/lib/libssh2.so.1 (0x00007f175e55c000)
        libssl.so.1.0.0 => /nix/store/6dvn6wjy79yxsbz05sgcm8xplbidq5s6-openssl-1.0.2n/lib/libssl.so.1.0.0 (0x00007f175e2ee000)
        libdl.so.2 => /nix/store/9g2xkgiaqqzvajgb8d4hv5yqg2n96flr-glibc-2.26-75/lib/libdl.so.2 (0x00007f175e0ea000)

I also just tried compiling htslib quickly on a fresh ubuntu image (./configure && make) and that also seemed to link correctly:

root@7a77cbe15932:/tmp/htslib-1.6# ldd libhts.so
        linux-vdso.so.1 =>  (0x00007ffeb30ea000)
        liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f5c24c30000)
        libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007f5c24a20000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f5c24806000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f5c244fd000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f5c242e0000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5c23f16000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f5c23d12000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f5c250fa000)

from octopus.

dancooke avatar dancooke commented on June 17, 2024

Sorry for the delayed response. I found the problem. It was because on my system, the static htslib version (libhts.a) was being used, which requires dependencies be explicitly linked otherwise there are unresolved symbols. On your system, the dynamic version (libhts.so) was being selected, so no need to link the dependencies. I've modified the installation process to default to always find the dynamic version, in which case CMake won't try to find the dependencies. There is still the option to statically link (--static) command to install.py. These changes are available in v0.3.3-alpha.

from octopus.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.