Print

Print


OK, I took a deeper look at this, and I've realised that the build chain is a lot more complicated than I expected. The sdist on PyPI is a "pseudo package" that has [its own `setup.py`](https://github.com/xrootd/xrootd/blob/master/packaging/wheel/setup.py), which launches a [separate build step](https://github.com/xrootd/xrootd/blob/master/packaging/wheel/install.sh) for [the bindings](https://github.com/xrootd/xrootd/blob/master/bindings/python/setup.py.in).

I first tested on Scientific Linux (Python 3.6), and it seems that here `RPATH` is set, whereas on Debian I'm only seeing `RUNPATH`, which has a lower precedence (but functionally still works). What _is_ strange to me initially is that in the Debian image, it has `@origin/lib` which does not exist in the installed layout. 

@matthewfeickert knows a lot more about what is going on here than I do, but I wonder if this layout is intentional? In the Dockerfile above, nothing seems wrong, because we set `$LD_LIBRARY_PATH` (and also installed xrootd into system paths found by `ldconfig`). But, in my case (on ubuntu) `xrootd` is I assume that the user _doesn't_ need xrootd to be installed, because the client library should contain everything they need to talk with a remote server? If so, the install here isn't behaving properly, but I'll wait on @matthewfeickert to help me understand the details further :)

<details>
```Dockerfile
ARG BASE_IMAGE=ubuntu:20.04
FROM ${BASE_IMAGE} as base

SHELL [ "/bin/bash", "-c" ]

ENV PATH=/usr/local/venv/bin:"${PATH}"
RUN apt-get update && \
    DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
        g++ \
        git \
        cmake \
        uuid-dev \
        dpkg-dev \
        libssl-dev \
        libx11-dev \
        libxml2-dev \
        libkrb5-dev \
        libgsl0-dev \
        pkg-config \
        python3 \
        python3-pip \
        python3-venv \
        python3-dev && \
    apt-get autoclean -y && \
    python3 -m pip --no-cache-dir install --upgrade pip setuptools wheel && \
    python3 -m pip list

WORKDIR /
RUN useradd -m user 
USER user
# Show --user even though I don't recommend it just to show it works
RUN python3 -m pip --no-cache-dir install --user --upgrade pip setuptools wheel && \
    python3 -m pip install --user --verbose 'xrootd==5.4.2' && \
    python3 -m pip list
RUN python3 -c "import XRootD.client"
WORKDIR /

CMD ["/bin/bash"]
```
</details>

-- 
Reply to this email directly or view it on GitHub:
https://github.com/xrootd/xrootd/issues/1668#issuecomment-1088553092
You are receiving this because you are subscribed to this thread.

Message ID: <[log in to unmask]>

########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1