iqbal-lab-org / make_prg

Code to create a PRG from a Multiple Sequence Alignment file
Other
21 stars 7 forks source link

Precompiled binary issue #54

Closed mbhall88 closed 1 year ago

mbhall88 commented 1 year ago

When I try and execute the (v0.4.0) precomiled binary on codon I get the following error

$ /hps/nobackup/iqbal/mbhall/drprg/src/ext/make_prg from_msa -h
[1880013] Error loading Python lib '/hps/scratch/lsf_tmpdir/hl-codon-44-04/_MEIXP3fLm/libpython3.10.so.1.0': dlopen: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /hps/scratch/lsf_tmpdir/hl-codon-44-04/_MEIXP3fLm/libpython3.10.so.1.0)
mbhall88 commented 1 year ago

I just noticed codon has glibc v 2.28

$ ldd --version
ldd (GNU libc) 2.28
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
$ which ldd
/usr/bin/ldd
mbhall88 commented 1 year ago

I think I read somewhere that you should compile on the earliest OS you expect to support. I couldn't find the Dockerfile you used to check to OS @leoisl

It works in my drprg container which uses Debian 11 (Bullseye)

leoisl commented 1 year ago

I actually use the container built with the root Dockerfile to build the binary... Will have to change this line: https://github.com/iqbal-lab-org/make_prg/blob/c2c7ff0f40dabc5034e2bfad7d6c2229e5649b09/Dockerfile#L3 ... I will check which glibc version we get with 3.8

leoisl commented 1 year ago

Sorry, never got back to you... with py3.8, glibc is still 2.29 and too recent for the cluster...

[1147084] Error loading Python lib '/hps/nobackup/iqbal/leandro/temp/_MEIM0u2Za/libpython3.8.so.1.0': dlopen: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /hps/nobackup/iqbal/leandro/temp/_MEIM0u2Za/libpython3.8.so.1.0)
leoisl commented 1 year ago

It works in my drprg container which uses Debian 11 (Bullseye)

I get this on bullseye, which is even more updated: ldd (Debian GLIBC 2.31-13+deb11u6) 2.31

leoisl commented 1 year ago

Debian 10 and Ubuntu 18.10 are the most recent versions of these distros with glibc 2.28, the same as in the cluster. It would be possible to create a precompiled binary using a container of these distros that would run on the cluster. However, I am getting installation issues with these distros (i.e. python3.7+, just, etc). With the options of installing it through pip, conda or using a container, I think there is no need to chase this and we can close. Only recent distros can run the precompiled binary. I updated this in the readme: https://github.com/iqbal-lab-org/make_prg/commit/80aca37937969b1e7db9551a64f953d8cca1e7d9