given the legacy build chain I am inclined to assume that the issue lies there rather than in a Python packaging platform-dependency, but I could be wrong!
I only looked at this superficially, but upon closer inspection it looks as though it's the
setuptools
version that's leading to the failingeasy_install
moreover setuptools 59.6.0 is the last one to work on python 3.6 so we will have to take into account different behaviors (depending on platform + python version)
Issue #1579 and PR #1586 were meant to address most of this, and in CI we can see that they are working as expected. Though these focused on CMake builds, and the only builds that test the install purely from the sdist are for CentOS 7.
Though this seems to be an issue with what is actually getting packaged and put up on PyPI (which if you look is just a tarfile of the whole repo, and not a normal sdist). There is something wrong with the PyPI version, as compare the following builds on Ubuntu where you install from PyPI
ARG BASE_IMAGE=ubuntu:20.04
FROM ${BASE_IMAGE} as base
SHELL [ "/bin/bash", "-c" ]
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 \
tree \
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 /
# Set PATH to pickup virtualenv by default
ENV PATH=/usr/local/venv/bin:"${PATH}"
ENV LD_LIBRARY_PATH="/usr/local/venv/lib/python3.8/site-packages/pyxrootd/lib:${LD_LIBRARY_PATH}"
RUN python3 -m venv /usr/local/venv && \
. /usr/local/venv/bin/activate && \
python3 -m pip --no-cache-dir install --upgrade pip setuptools wheel && \
python3 -m pip install --verbose 'xrootd==5.4.2' && \
python3 -m pip list
RUN python3 -m pip list && \
python3 -m pip show xrootd && \
python3 -c 'import XRootD; print(XRootD)' && \
python3 -c 'import pyxrootd; print(pyxrootd)' && \
python3 -c 'from XRootD import client; print(client.FileSystem("root://someserver:1094"))'
WORKDIR /
CMD ["/bin/bash"]
root@486091e0fdac:/# ls /usr/local/venv/lib/python3.8/site-packages/
_distutils_hack pip pkg_resources-0.0.0.dist-info setuptools-62.0.0.dist-info xrootd-5.4.2-py3.8-linux-x86_64.egg
distutils-precedence.pth pip-22.0.4.dist-info pyxrootd wheel
easy-install.pth pkg_resources setuptools wheel-0.37.1.dist-info
and where you install from the tarball you make with the publish.sh
script.
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 \
tree \
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
# Set PATH to pickup virtualenv by default
ENV PATH=/usr/local/venv/bin:"${PATH}"
RUN python3 -m venv /usr/local/venv && \
. /usr/local/venv/bin/activate
WORKDIR /code
RUN git clone https://github.com/xrootd/xrootd \
--branch v5.4.2 \
--single-branch && \
cd xrootd && \
cp packaging/wheel/* . && \
./publish.sh && \
cd .. && \
python3 -m pip --verbose install xrootd/dist/xrootd-*.tar.gz && \
python3 -m pip list
RUN python3 -m pip list && \
python3 -m pip show xrootd && \
python3 -c 'import XRootD; print(XRootD)' && \
python3 -c 'import pyxrootd; print(pyxrootd)' && \
python3 -c 'from XRootD import client; print(client.FileSystem("root://someserver:1094"))'
WORKDIR /code
CMD ["/bin/bash"]
root@257f1f5fa793:~# ls /usr/local/venv/lib/python3.8/site-packages/
XRootD packaging pip-20.0.2.dist-info pyxrootd wheel
__pycache__ packaging-21.3.dist-info pkg_resources setuptools wheel-0.37.1.dist-info
build pep517 pkg_resources-0.0.0.dist-info setuptools-44.0.0.dist-info xrootd-5.4.2_.dist-info
build-0.7.0.dist-info pep517-0.12.0.dist-info pyparsing tomli
easy_install.py pip
root@257f1f5fa793:~# tree /usr/local/venv/lib/python3.8/site-packages/xrootd-5.4.2_.dist-info/
/usr/local/venv/lib/python3.8/site-packages/xrootd-5.4.2_.dist-info/
|-- METADATA
|-- RECORD
`-- WHEEL
0 directories, 3 files
root@257f1f5fa793:~# tree /usr/local/venv/lib/python3.8/site-packages/XRootD/
/usr/local/venv/lib/python3.8/site-packages/XRootD/
|-- __init__.py
|-- __pycache__
| `-- __init__.cpython-38.pyc
`-- client
|-- __init__.py
|-- __pycache__
| |-- __init__.cpython-38.pyc
| |-- _version.cpython-38.pyc
| |-- copyprocess.cpython-38.pyc
| |-- env.cpython-38.pyc
| |-- file.cpython-38.pyc
| |-- filesystem.cpython-38.pyc
| |-- finalize.cpython-38.pyc
| |-- flags.cpython-38.pyc
| |-- glob_funcs.cpython-38.pyc
| |-- responses.cpython-38.pyc
| |-- url.cpython-38.pyc
| `-- utils.cpython-38.pyc
|-- _version.py
|-- copyprocess.py
|-- env.py
|-- file.py
|-- filesystem.py
|-- finalize.py
|-- flags.py
|-- glob_funcs.py
|-- responses.py
|-- url.py
`-- utils.py
3 directories, 26 files
root@257f1f5fa793:~# tree /usr/local/venv/lib/python3.8/site-packages/pyxrootd/
/usr/local/venv/lib/python3.8/site-packages/pyxrootd/
|-- __init__.py
|-- __pycache__
| `-- __init__.cpython-38.pyc
|-- client.cpython-38-x86_64-linux-gnu.so
|-- include
| `-- xrootd
| |-- XProtocol
| | |-- XProtocol.hh
| | `-- XPtypes.hh
| |-- Xrd
| | |-- XrdBuffer.hh
| | |-- XrdJob.hh
| | |-- XrdLink.hh
| | |-- XrdLinkMatch.hh
| | |-- XrdProtocol.hh
| | |-- XrdScheduler.hh
| | `-- XrdTcpMonPin.hh
| |-- XrdCl
| | |-- XrdClAnyObject.hh
| | |-- XrdClBuffer.hh
| | |-- XrdClConstants.hh
| | |-- XrdClCopyProcess.hh
| | |-- XrdClDefaultEnv.hh
| | |-- XrdClEnv.hh
| | |-- XrdClFile.hh
| | |-- XrdClFileSystem.hh
| | |-- XrdClFileSystemUtils.hh
| | |-- XrdClLog.hh
| | |-- XrdClMonitor.hh
| | |-- XrdClOptional.hh
| | |-- XrdClPlugInInterface.hh
| | |-- XrdClPlugInManager.hh
| | |-- XrdClPropertyList.hh
| | |-- XrdClStatus.hh
| | |-- XrdClURL.hh
| | `-- XrdClXRootDResponses.hh
| |-- XrdHttp
| | `-- XrdHttpSecXtractor.hh
| |-- XrdNet
| | |-- XrdNet.hh
| | |-- XrdNetAddr.hh
| | |-- XrdNetAddrInfo.hh
| | |-- XrdNetCmsNotify.hh
| | |-- XrdNetConnect.hh
| | |-- XrdNetOpts.hh
| | |-- XrdNetSockAddr.hh
| | |-- XrdNetSocket.hh
| | `-- XrdNetUtils.hh
| |-- XrdOuc
| | |-- XrdOucBuffer.hh
| | |-- XrdOucCRC.hh
| | |-- XrdOucCacheCM.hh
| | |-- XrdOucCacheStats.hh
| | |-- XrdOucCallBack.hh
| | |-- XrdOucChain.hh
| | |-- XrdOucCompiler.hh
| | |-- XrdOucDLlist.hh
| | |-- XrdOucEnum.hh
| | |-- XrdOucEnv.hh
| | |-- XrdOucErrInfo.hh
| | |-- XrdOucGMap.hh
| | |-- XrdOucHash.hh
| | |-- XrdOucHash.icc
| | |-- XrdOucIOVec.hh
| | |-- XrdOucLock.hh
| | |-- XrdOucName2Name.hh
| | |-- XrdOucPinObject.hh
| | |-- XrdOucPinPath.hh
| | |-- XrdOucRash.hh
| | |-- XrdOucRash.icc
| | |-- XrdOucSFVec.hh
| | |-- XrdOucStream.hh
| | |-- XrdOucString.hh
| | |-- XrdOucTList.hh
| | |-- XrdOucTable.hh
| | |-- XrdOucTokenizer.hh
| | |-- XrdOucTrace.hh
| | |-- XrdOucUtils.hh
| | `-- XrdOuca2x.hh
| |-- XrdSec
| | |-- XrdSecAttr.hh
| | |-- XrdSecEntity.hh
| | |-- XrdSecEntityAttr.hh
| | |-- XrdSecEntityPin.hh
| | `-- XrdSecInterface.hh
| |-- XrdSys
| | |-- XrdSysAtomics.hh
| | |-- XrdSysError.hh
| | |-- XrdSysFD.hh
| | |-- XrdSysHeaders.hh
| | |-- XrdSysLogPI.hh
| | |-- XrdSysLogger.hh
| | |-- XrdSysPageSize.hh
| | |-- XrdSysPlatform.hh
| | |-- XrdSysPlugin.hh
| | |-- XrdSysPthread.hh
| | |-- XrdSysSemWait.hh
| | |-- XrdSysTimer.hh
| | |-- XrdSysXAttr.hh
| | `-- XrdSysXSLock.hh
| |-- XrdVersion.hh
| |-- XrdXml
| | `-- XrdXmlReader.hh
| |-- XrdXrootd
| | |-- XrdXrootdBridge.hh
| | |-- XrdXrootdGStream.hh
| | `-- XrdXrootdMonData.hh
| `-- private
| |-- Xrd
| | `-- XrdPoll.hh
| |-- XrdCl
| | |-- XrdClArg.hh
| | |-- XrdClCtx.hh
| | |-- XrdClFileOperations.hh
| | |-- XrdClFileSystemOperations.hh
| | |-- XrdClFinalOperation.hh
| | |-- XrdClFwd.hh
| | |-- XrdClMessage.hh
| | |-- XrdClOperationHandlers.hh
| | |-- XrdClOperationTimeout.hh
| | |-- XrdClOperations.hh
| | |-- XrdClParallelOperation.hh
| | |-- XrdClPostMaster.hh
| | |-- XrdClPostMasterInterfaces.hh
| | |-- XrdClResponseJob.hh
| | |-- XrdClTransportManager.hh
| | |-- XrdClZipArchive.hh
| | |-- XrdClZipCache.hh
| | `-- XrdClZipOperations.hh
| |-- XrdNet
| | |-- XrdNetBuffer.hh
| | |-- XrdNetIF.hh
| | `-- XrdNetPeer.hh
| |-- XrdOuc
| | |-- XrdOucExport.hh
| | |-- XrdOucGatherConf.hh
| | |-- XrdOucN2NLoader.hh
| | `-- XrdOucPList.hh
| |-- XrdPosix
| | `-- XrdPosixMap.hh
| |-- XrdSecsss
| | `-- XrdSecsssID.hh
| |-- XrdSys
| | `-- XrdSysPriv.hh
| `-- XrdZip
| |-- XrdZipCDFH.hh
| |-- XrdZipEOCD.hh
| |-- XrdZipExtra.hh
| |-- XrdZipLFH.hh
| |-- XrdZipUtils.hh
| |-- XrdZipZIP64EOCD.hh
| `-- XrdZipZIP64EOCDL.hh
|-- lib
| |-- libXrdAppUtils.so -> libXrdAppUtils.so.2
| |-- libXrdAppUtils.so.2 -> libXrdAppUtils.so.2.0.0
| |-- libXrdAppUtils.so.2.0.0
| |-- libXrdCl.so -> libXrdCl.so.3
| |-- libXrdCl.so.3 -> libXrdCl.so.3.0.0
| |-- libXrdCl.so.3.0.0
| |-- libXrdClProxyPlugin-5.so
| |-- libXrdCrypto.so -> libXrdCrypto.so.2
| |-- libXrdCrypto.so.2 -> libXrdCrypto.so.2.0.0
| |-- libXrdCrypto.so.2.0.0
| |-- libXrdCryptoLite.so -> libXrdCryptoLite.so.2
| |-- libXrdCryptoLite.so.2 -> libXrdCryptoLite.so.2.0.0
| |-- libXrdCryptoLite.so.2.0.0
| |-- libXrdCryptossl-5.so
| |-- libXrdSec-5.so
| |-- libXrdSecProt-5.so
| |-- libXrdSecgsi-5.so
| |-- libXrdSecgsiAUTHZVO-5.so
| |-- libXrdSecgsiGMAPDN-5.so
| |-- libXrdSeckrb5-5.so
| |-- libXrdSecpwd-5.so
| |-- libXrdSecsss-5.so
| |-- libXrdSecunix-5.so
| |-- libXrdUtils.so -> libXrdUtils.so.3
| |-- libXrdUtils.so.3 -> libXrdUtils.so.3.0.0
| |-- libXrdUtils.so.3.0.0
| |-- libXrdXml.so -> libXrdXml.so.3
| |-- libXrdXml.so.3 -> libXrdXml.so.3.0.0
| `-- libXrdXml.so.3.0.0
`-- share
`-- man
|-- man1
| `-- xrdadler32.1
`-- man8
`-- mpxstats.8
27 directories, 161 files
root@257f1f5fa793:~#
So for debugging I'd suggest not trying to use the files on PyPI given that they are somehow different from what the publish.sh script builds.
(To be clear, this should all be redone, but to make sure we're testing against the thing that matters (the source we can control now)).
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.
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