conda-forge / conda-forge/julia-feedstock
libz.so.1 dependency of libLLVM-15jl.so missing from expected directory
- Dominant language
- Shell
- Stars
- 25
- Forks
- 33
- Avg merge
- 12h 47m
- Merged PRs (30d)
- 4
Description
### Solution to issue cannot be found in the documentation.
- [X] I checked the documentation.
### Issue
Hi,
Apologies if the below is based on my misunderstanding.
It appears that all julia conda-forge Linux packages >v1.8.5 are missing `libz.so.1` in the directory expected by `libLLVM-15jl.so` (or `libLLVM-14jl.so` for julia 1.9.x), that is, `path_to_conda_environment/lib/julia`. Instead, these packages rely on the `libz.so.1` being present in a standard system search path (e.g. `/lib/x86_64-linux-gnu/` on my machine). When this library isn't present in a standard system search path, running julia produces the error e.g.:
```
Unable to load dependent library /usr/local/bin/../lib/julia/libjulia-codegen.so.1.10
Message: libz.so.1: cannot open shared object file: No such file or directory
```
I think the relevant shared library dependency hierarchy is:
`libjulia-codegen.so.1.10` depends on `libLLVM-15jl.so` depends on `libz.so.1`.
`libLLVM-15jl.so` is located at `path_to_conda_environment/lib/julia/libLLVM-15jl.so`, and has `Library runpath: [$ORIGIN]` (as output by `readelf -d `). However, for the conda-forge julia install`libz.so.1` is located a directory higher at `path_to_conda_environment/lib`, and so it isn't found by `libLLVM-15jl.so`.
In the conda-forge julia v1.8.5 install, the `libLLVM-13jl.so` library has `Library rpath: [$ORIGIN:$ORIGIN/..]`, and so it finds `libz.so.1` at path `path_to_conda_environment/lib`.
For julia v1.10.4 downloaded directly from https://julialang.org/downloads/#current_stable_release (Generic Linux on x86, glibc binaries), `libLLVM-15jl.so` also only has `Library runpath: [$ORIGIN]`, but `libz.so.1` _is_ present in `lib/julia/`, so it's not an issue.
This is all described in a bit more detail in the issue thread [here](https://github.com/chrisjackson-pellicle/ParaGone/issues/8), if it's useful.
If my understanding of the issues above is correct, would it be possible to fix this?
Thanks for any help!
Cheers,
Chris
### Installed packages
```shell
# packages in environment at /home/cjackson/.conda/envs/julia:
#
# Name Version Build Channel
_libgcc_mutex 0.1 conda_forge conda-forge
_openmp_mutex 4.5 2_gnu conda-forge
arpack 3.9.1 nompi_h77f6705_101 conda-forge
bzip2 1.0.8 hd590300_5 conda-forge
c-ares 1.32.0 h4ab18f5_0 conda-forge
ca-certificates 2024.7.4 hbcca054_0 conda-forge
curl 8.8.0 he654da7_1 conda-forge
git 2.45.2 pl5321ha099dd3_1 conda-forge
gmp 6.3.0 hac33072_2 conda-forge
icu 73.2 h59595ed_0 conda-forge
julia 1.10.4 hf18f99d_1 conda-forge
keyutils 1.6.1 h166bdaf_0 conda-forge
krb5 1.21.3 h659f571_0 conda-forge
libblas 3.9.0 22_linux64_openblas conda-forge
libcblas 3.9.0 22_linux64_openblas conda-forge
libcurl 8.8.0 hca28451_1 conda-forge
libedit 3.1.20191231 he28a2e2_2 conda-forge
libev 4.33 hd590300_2 conda-forge
libexpat 2.6.2 h59595ed_0 conda-forge
libgcc-ng 14.1.0 h77fa898_0 conda-forge
libgfortran-ng 14.1.0 h69a702a_0 conda-forge
libgfortran5 14.1.0 hc5f4f2c_0 conda-forge
libgit2 1.8.1 he8d1d4c_1 conda-forge
libgomp 14.1.0 h77fa898_0 conda-forge
libhwloc 2.11.0 default_h5622ce7_1000 conda-forge
libiconv 1.17 hd590300_2 conda-forge
liblapack 3.9.0 22_linux64_openblas conda-forge
libnghttp2 1.58.0 h47da74e_1 conda-forge
libopenblas 0.3.27 pthreads_hac2b453_1 conda-forge
libopenblas-ilp64 0.3.27 pthreads_h0afdb33_1 conda-forge
libopenlibm4 0.8.1 hd590300_1 conda-forge
libssh2 1.11.0 h0841786_0 conda-forge
libstdcxx-ng 14.1.0 hc0a3c3a_0 conda-forge
libunwind 1.6.2 h9c3ff4c_0 conda-forge
libutf8proc 2.8.0 h166bdaf_0 conda-forge
libxcrypt 4.4.36 hd590300_1 conda-forge
libxml2 2.12.7 hc051c1a_1 conda-forge
libzlib 1.3.1 h4ab18f5_1 conda-forge
mbedtls 3.5.1 h59595ed_0 conda-forge
metis 5.1.0 h59595ed_1007 conda-forge
mpfr 4.2.1 h9458935_1 conda-forge
ncurses 6.5 h59595ed_0 conda-forge
openblas-ilp64 0.3.27 pthreads_h3d04fff_1 conda-forge
openlibm 0.8.1 hd590300_1 conda-forge
openssl 3.3.1 h4ab18f5_1 conda-forge
p7zip 16.02 h9c3ff4c_1001 conda-forge
pcre2 10.44 h0f59acf_0 conda-forge
perl 5.32.1 7_hd590300_perl5 conda-forge
suitesparse 7.7.0 hf4753ba_1 conda-forge
tbb 2021.12.0 h434a139_2 conda-forge
xz 5.2.6 h166bdaf_0 conda-forge
zlib 1.3.1 h4ab18f5_1 conda-forge
zstd 1.5.6 ha6fb4c9_0 conda-forge
```
### Environment info
```shell
active environment : julia
active env location : /home/cjackson/.conda/envs/julia
shell level : 2
user config file : /home/cjackson/.condarc
populated config files : /home/cjackson/.condarc
conda version : 24.5.0
conda-build version : 24.5.0
python version : 3.12.2.final.0
solver : libmamba (default)
virtual packages : __archspec=1=zen
__conda=24.5.0=0
__glibc=2.28=0
__linux=4.18.0=0
__unix=0=0
base environment : /opt/miniconda3 (read only)
conda av data dir : /opt/miniconda3/etc/conda
conda av metadata url : None
channel URLs : https://conda.anaconda.org/conda-forge/linux-64
https://conda.anaconda.org/conda-forge/noarch
https://conda.anaconda.org/bioconda/linux-64
https://conda.anaconda.org/bioconda/noarch
https://repo.anaconda.com/pkgs/main/linux-64
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/r/linux-64
https://repo.anaconda.com/pkgs/r/noarch
package cache : /home/cjackson/.conda/pkgs
envs directories : /home/cjackson/.conda/envs
/opt/miniconda3/envs
platform : linux-64
user-agent : conda/24.5.0 requests/2.31.0 CPython/3.12.2 Linux/4.18.0-25-generic ubuntu/18.10 glibc/2.28 solver/libmamba conda-libmamba-solver/24.1.0 libmambapy/1.5.8 aau/0.4.4 c/. s/. e/.
UID:GID : 1001:1002
netrc file : None
offline mode : False
```
Contributor guide
Assessment
This issue has not been assessed yet.