conda-forge / pip-feedstock

A conda-smithy repository for pip.
BSD 3-Clause "New" or "Revised" License
2 stars 21 forks source link

pip does not set RPATH correctly with $ORIGIN #116

Open galaxy001 opened 9 months ago

galaxy001 commented 9 months ago

Solution to issue cannot be found in the documentation.

Issue

pyarrow 14.0.2 installed with pip, and pandas installed from conda-forge.

$ pip3 list -v|egrep '^(pyarrow|pandas)'
pandas                               2.0.3               /share/home/uuu/micromamba/envs/n311/lib/python3.11/site-packages conda
pyarrow                              14.0.2              /share/home/uuu/micromamba/envs/n311/lib/python3.11/site-packages pip

$ micromamba list|grep pandas
  pandas                                2.0.3            py311h320fe9a_1           conda-forge

$ readelf -d /share/home/uuu/micromamba/envs/n311/lib/python3.11/site-packages/pyarrow/libarrow.so.1400
Dynamic section at offset 0x289a528 contains 33 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libdl.so.2]
 0x0000000000000001 (NEEDED)             Shared library: [librt.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libpthread.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libstdc++.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libm.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libgcc_s.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [ld-linux-x86-64.so.2]
 0x000000000000000e (SONAME)             Library soname: [libarrow.so.1400]
 0x000000000000001d (RUNPATH)            Library runpath: [$ORIGIN]

$ readelf -d /share/home/uuu/micromamba/envs/n311/lib/python3.11/site-packages/pandas/_libs/window/aggregations.cpython-311-x86_64-linux-gnu.so

Dynamic section at offset 0x50778 contains 28 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libstdc++.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libm.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libgcc_s.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000f (RPATH)              Library rpath: [$ORIGIN/../../../../..]

So pip does not set rpath correctly. It should be better to modify its default behavior.

Installed packages

  python                                3.11.7           hab00c5b_1_cpython        conda-forge
  python_abi                            3.11             4_cp311                   conda-forge
  pip                                   23.3.2           pyhd8ed1ab_0              conda-forge
  pandas                                2.0.3            py311h320fe9a_1           conda-forge
  libstdcxx-devel_linux-64              13.2.0           ha9c7c90_103              conda-forge
  libstdcxx-ng                          13.2.0           h7e041cc_3                conda-forge
  libsystemd0                           255              h3516f8a_0                conda-forge
  gcc                                   13.2.0           h574f8da_2                conda-forge
  gcc_impl_linux-64                     13.2.0           h338b0a0_3                conda-forge

... ...

Environment info

libmamba version : 1.5.5
     micromamba version : 1.5.5
           curl version : libcurl/8.5.0 OpenSSL/3.2.0 zlib/1.2.13 zstd/1.5.5 libssh2/1.11.0 nghttp2/1.58.0
     libarchive version : libarchive 3.7.2 zlib/1.2.13 bz2lib/1.0.8 libzstd/1.5.5
       envs directories : /share/home/uuu/micromamba/envs
          package cache : /share/home/uuu/micromamba/pkgs
                          /share/home/uuu/.mamba/pkgs
            environment : n311 (active)
           env location : /share/home/uuu/micromamba/envs/n311
      user config files : /share/home/uuu/.mambarc
 populated config files : /share/home/uuu/.condarc
       virtual packages : __unix=0=0
                          __linux=4.18.0=0
                          __glibc=2.28=0
                          __archspec=1=x86_64-v4
               channels : 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://conda.anaconda.org/nodefaults/linux-64
                          https://conda.anaconda.org/nodefaults/noarch
                          https://conda.anaconda.org/pytorch/linux-64
                          https://conda.anaconda.org/pytorch/noarch
                          https://conda.anaconda.org/nvidia/linux-64
                          https://conda.anaconda.org/nvidia/noarch
                          https://conda.anaconda.org/intel/linux-64
                          https://conda.anaconda.org/intel/noarch
       base environment : /share/home/uuu/micromamba
               platform : linux-64