#8105 closed defect (fixed)
ChimeraX/lib not on library path
| Reported by: | Tristan Croll | Owned by: | Zach Pearson |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Build System | Version: | |
| Keywords: | Cc: | chimerax-programmers | |
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
The following bug report has been submitted:
Platform: Linux-5.15.0-56-generic-x86_64-with-glibc2.35
ChimeraX Version: 1.6.dev202211300249 (2022-11-30 02:49:47 UTC)
Description
Building ISOLDE against the 1.6 daily builds in Linux fails because ChimeraX/lib is no longer in the library path:
c++ -pthread -pipe -fPIC -std=gnu99 -fdebug-prefix-map=/tmp/chx-develop.qAG1Ud/build=. -fstack-protector-strong -I/tmp/chx-develop.qAG1Ud/build/include -L/tmp/chx-develop.qAG1Ud/build/lib -DUSE_DYLD_GLOBAL_NAMESPACE -pthread -shared -O3 -Wall -Wextra -D_FORTIFY=2 build/temp.linux-x86_64-cpython-39/src/deps/lbfgs/src/lbfgs.o build/temp.linux-x86_64-cpython-39/src/openmm/minimize.o build/temp.linux-x86_64-cpython-39/src/openmm/openmm_interface.o -L/usr/lib -L/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-packages/chimerax/core/lib -L/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-packages/chimerax/atomic_lib/lib -L/usr/libexec/UCSF-ChimeraX-daily/lib/python3.9/site-packages/chimerax/arrays/lib -L/tmp/chx-develop.qAG1Ud/build/lib -lOpenMM -o build/lib.linux-x86_64-cpython-39/chimerax/isolde/_openmm_async.cpython-39-x86_64-linux-gnu.so -Wl,-rpath,$ORIGIN
/opt/rh/gcc-toolset-10/root/usr/bin/ld: cannot find -lOpenMM
collect2: error: ld returned 1 exit status
error: command '/opt/rh/gcc-toolset-10/root/usr/bin/c++' failed with exit code 1
make: *** [Makefile:91: wheel] Error 1
Can hack around it for now in bundle_info.xml:
<LibraryDir platform="linux">/usr/libexec/UCSF-ChimeraX-daily/lib</LibraryDir>
The Altos software eng team have promised to lend a contractor to the OpenMM team soon to help them with their migration to PyPI, so hopefully this fiddliness should be behind us soon.
OpenGL version: 3.3.0 NVIDIA 515.86.01
OpenGL renderer: NVIDIA GeForce RTX 3070/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Python: 3.9.11
Locale: en_GB.UTF-8
Qt version: PyQt6 6.3.1, Qt 6.3.1
Qt runtime version: 6.3.2
Qt platform: xcb
XDG_SESSION_TYPE=x11
DESKTOP_SESSION=ubuntu
XDG_SESSION_DESKTOP=ubuntu
XDG_CURRENT_DESKTOP=ubuntu:GNOME
DISPLAY=:1
Manufacturer: Dell Inc.
Model: XPS 8950
OS: Ubuntu 22.04 Jammy Jellyfish
Architecture: 64bit ELF
Virtual Machine: none
CPU: 20 12th Gen Intel(R) Core(TM) i7-12700
Cache Size: 25600 KB
Memory:
total used free shared buff/cache available
Mem: 31Gi 5.5Gi 13Gi 535Mi 12Gi 24Gi
Swap: 2.0Gi 0B 2.0Gi
Graphics:
0000:01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA104 [GeForce RTX 3070 Lite Hash Rate] [10de:2488] (rev a1)
Subsystem: Dell GA104 [GeForce RTX 3070 Lite Hash Rate] [1028:c903]
Kernel driver in use: nvidia
Installed Packages:
alabaster: 0.7.12
appdirs: 1.4.4
asttokens: 2.2.0
Babel: 2.11.0
backcall: 0.2.0
blockdiag: 3.0.0
build: 0.8.0
certifi: 2022.9.24
cftime: 1.6.2
charset-normalizer: 2.1.1
ChimeraX-AddCharge: 1.5.7
ChimeraX-AddH: 2.2.3
ChimeraX-AlignmentAlgorithms: 2.0
ChimeraX-AlignmentHdrs: 3.3.1
ChimeraX-AlignmentMatrices: 2.1
ChimeraX-Alignments: 2.8
ChimeraX-AlphaFold: 1.0
ChimeraX-AltlocExplorer: 1.0.3
ChimeraX-AmberInfo: 1.0
ChimeraX-Arrays: 1.0
ChimeraX-Atomic: 1.43.4
ChimeraX-AtomicLibrary: 8.0.4
ChimeraX-AtomSearch: 2.0.1
ChimeraX-AxesPlanes: 2.3
ChimeraX-BasicActions: 1.1.2
ChimeraX-BILD: 1.0
ChimeraX-BlastProtein: 2.1.2
ChimeraX-BondRot: 2.0.1
ChimeraX-BugReporter: 1.0.1
ChimeraX-BuildStructure: 2.7.1
ChimeraX-Bumps: 1.0
ChimeraX-BundleBuilder: 1.2
ChimeraX-ButtonPanel: 1.0.1
ChimeraX-CageBuilder: 1.0.1
ChimeraX-CellPack: 1.0
ChimeraX-Centroids: 1.3.1
ChimeraX-ChangeChains: 1.0.2
ChimeraX-CheckWaters: 1.3
ChimeraX-ChemGroup: 2.0
ChimeraX-Clashes: 2.2.4
ChimeraX-Clipper: 0.20.0
ChimeraX-ColorActions: 1.0.3
ChimeraX-ColorGlobe: 1.0
ChimeraX-ColorKey: 1.5.2
ChimeraX-CommandLine: 1.2.5
ChimeraX-ConnectStructure: 2.0.1
ChimeraX-Contacts: 1.0.1
ChimeraX-Core: 1.6.dev202211300249
ChimeraX-CoreFormats: 1.1
ChimeraX-coulombic: 1.4.1
ChimeraX-Crosslinks: 1.0
ChimeraX-Crystal: 1.0
ChimeraX-CrystalContacts: 1.0.1
ChimeraX-DataFormats: 1.2.2
ChimeraX-Dicom: 1.1
ChimeraX-DistMonitor: 1.3
ChimeraX-DockPrep: 1.0.1
ChimeraX-Dssp: 2.0
ChimeraX-EMDB-SFF: 1.0
ChimeraX-ESMFold: 1.0
ChimeraX-ExperimentalCommands: 1.0
ChimeraX-FileHistory: 1.0.1
ChimeraX-FunctionKey: 1.0.1
ChimeraX-Geometry: 1.2
ChimeraX-gltf: 1.0
ChimeraX-Graphics: 1.1
ChimeraX-Hbonds: 2.4
ChimeraX-Help: 1.2.1
ChimeraX-HKCage: 1.3
ChimeraX-IHM: 1.1
ChimeraX-ImageFormats: 1.2
ChimeraX-IMOD: 1.0
ChimeraX-IO: 1.0.1
ChimeraX-ItemsInspection: 1.0.1
ChimeraX-Label: 1.1.7
ChimeraX-LinuxSupport: 1.0.1
ChimeraX-ListInfo: 1.1.1
ChimeraX-Log: 1.1.5
ChimeraX-LookingGlass: 1.1
ChimeraX-Maestro: 1.8.2
ChimeraX-Map: 1.1.2
ChimeraX-MapData: 2.0
ChimeraX-MapEraser: 1.0.1
ChimeraX-MapFilter: 2.0
ChimeraX-MapFit: 2.0
ChimeraX-MapSeries: 2.1.1
ChimeraX-Markers: 1.0.1
ChimeraX-Mask: 1.0.1
ChimeraX-MatchMaker: 2.0.9
ChimeraX-MDcrds: 2.6
ChimeraX-MedicalToolbar: 1.0.2
ChimeraX-Meeting: 1.0.1
ChimeraX-MLP: 1.1
ChimeraX-mmCIF: 2.9
ChimeraX-MMTF: 2.2
ChimeraX-Modeller: 1.5.7
ChimeraX-ModelPanel: 1.3.6
ChimeraX-ModelSeries: 1.0.1
ChimeraX-Mol2: 2.0
ChimeraX-Mole: 1.0
ChimeraX-Morph: 1.0.1
ChimeraX-MouseModes: 1.1.1
ChimeraX-Movie: 1.0
ChimeraX-Neuron: 1.0
ChimeraX-Nucleotides: 2.0.3
ChimeraX-OpenCommand: 1.9.3
ChimeraX-PDB: 2.6.9
ChimeraX-PDBBio: 1.0
ChimeraX-PDBLibrary: 1.0.2
ChimeraX-PDBMatrices: 1.0
ChimeraX-PickBlobs: 1.0.1
ChimeraX-Positions: 1.0
ChimeraX-PresetMgr: 1.1
ChimeraX-PubChem: 2.1
ChimeraX-ReadPbonds: 1.0.1
ChimeraX-Registration: 1.1.1
ChimeraX-RemoteControl: 1.0
ChimeraX-RenderByAttr: 1.0
ChimeraX-RenumberResidues: 1.1
ChimeraX-ResidueFit: 1.0.1
ChimeraX-RestServer: 1.1
ChimeraX-RNALayout: 1.0
ChimeraX-RotamerLibMgr: 2.0.1
ChimeraX-RotamerLibsDunbrack: 2.0
ChimeraX-RotamerLibsDynameomics: 2.0
ChimeraX-RotamerLibsRichardson: 2.0
ChimeraX-SaveCommand: 1.5.1
ChimeraX-SchemeMgr: 1.0
ChimeraX-SDF: 2.0.1
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0
ChimeraX-SelInspector: 1.0
ChimeraX-SeqView: 2.8
ChimeraX-Shape: 1.0.1
ChimeraX-Shell: 1.0.1
ChimeraX-Shortcuts: 1.1.1
ChimeraX-ShowSequences: 1.0.1
ChimeraX-SideView: 1.0.1
ChimeraX-Smiles: 2.1
ChimeraX-SmoothLines: 1.0
ChimeraX-SpaceNavigator: 1.0
ChimeraX-StdCommands: 1.10.1
ChimeraX-STL: 1.0
ChimeraX-Storm: 1.0
ChimeraX-StructMeasure: 1.1
ChimeraX-Struts: 1.0.1
ChimeraX-Surface: 1.0
ChimeraX-SwapAA: 2.0.1
ChimeraX-SwapRes: 2.1.3
ChimeraX-TapeMeasure: 1.0
ChimeraX-Test: 1.0
ChimeraX-Toolbar: 1.1.2
ChimeraX-ToolshedUtils: 1.2.1
ChimeraX-Topography: 1.0
ChimeraX-Tug: 1.0.1
ChimeraX-UI: 1.25.2
ChimeraX-uniprot: 2.2.1
ChimeraX-UnitCell: 1.0.1
ChimeraX-ViewDockX: 1.1.6
ChimeraX-VIPERdb: 1.0
ChimeraX-Vive: 1.1
ChimeraX-VolumeMenu: 1.0.1
ChimeraX-VTK: 1.0
ChimeraX-WavefrontOBJ: 1.0
ChimeraX-WebCam: 1.0.1
ChimeraX-WebServices: 1.1.0
ChimeraX-Zone: 1.0.1
colorama: 0.4.5
cxservices: 1.2
cycler: 0.11.0
Cython: 0.29.32
debugpy: 1.6.4
decorator: 5.1.1
distro: 1.7.0
docutils: 0.19
entrypoints: 0.4
executing: 1.2.0
filelock: 3.7.1
fonttools: 4.38.0
funcparserlib: 1.0.1
grako: 3.16.5
h5py: 3.7.0
html2text: 2020.1.16
idna: 3.4
ihm: 0.33
imagecodecs: 2022.7.31
imagesize: 1.4.1
importlib-metadata: 5.1.0
ipykernel: 6.15.3
ipython: 8.4.0
ipython-genutils: 0.2.0
jedi: 0.18.1
Jinja2: 3.1.2
jupyter-client: 7.3.4
jupyter-core: 5.1.0
kiwisolver: 1.4.4
line-profiler: 3.5.1
lxml: 4.9.1
lz4: 4.0.2
MarkupSafe: 2.1.1
matplotlib: 3.5.2
matplotlib-inline: 0.1.6
msgpack: 1.0.4
nest-asyncio: 1.5.6
netCDF4: 1.6.0
networkx: 2.8.5
numexpr: 2.8.4
numpy: 1.23.1
openvr: 1.23.701
packaging: 21.3
ParmEd: 3.4.3
parso: 0.8.3
pep517: 0.13.0
pexpect: 4.8.0
pickleshare: 0.7.5
Pillow: 9.2.0
pip: 22.2.2
pkginfo: 1.8.3
platformdirs: 2.5.4
prompt-toolkit: 3.0.33
psutil: 5.9.1
ptyprocess: 0.7.0
pure-eval: 0.2.2
pycollada: 0.7.2
pydicom: 2.3.0
Pygments: 2.12.0
PyOpenGL: 3.1.5
PyOpenGL-accelerate: 3.1.5
pyparsing: 3.0.9
PyQt6-commercial: 6.3.1
PyQt6-Qt6: 6.3.2
PyQt6-sip: 13.4.0
PyQt6-WebEngine-commercial: 6.3.1
PyQt6-WebEngine-Qt6: 6.3.2
python-dateutil: 2.8.2
pytz: 2022.6
pyzmq: 24.0.1
qtconsole: 5.3.1
QtPy: 2.3.0
RandomWords: 0.4.0
requests: 2.28.1
scipy: 1.9.0
setuptools: 65.1.1
sfftk-rw: 0.7.2
six: 1.16.0
snowballstemmer: 2.2.0
sortedcontainers: 2.4.0
Sphinx: 5.1.1
sphinx-autodoc-typehints: 1.19.1
sphinxcontrib-applehelp: 1.0.2
sphinxcontrib-blockdiag: 3.0.0
sphinxcontrib-devhelp: 1.0.2
sphinxcontrib-htmlhelp: 2.0.0
sphinxcontrib-jsmath: 1.0.1
sphinxcontrib-qthelp: 1.0.3
sphinxcontrib-serializinghtml: 1.1.5
stack-data: 0.6.2
tables: 3.7.0
tifffile: 2022.7.31
tinyarray: 1.2.4
tomli: 2.0.1
tornado: 6.2
traitlets: 5.3.0
urllib3: 1.26.13
wcwidth: 0.2.5
webcolors: 1.12
wheel: 0.37.1
wheel-filename: 1.4.1
zipp: 3.11.0
Change History (8)
comment:1 by , 3 years ago
| Cc: | added |
|---|---|
| Component: | Unassigned → Build System |
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → ChimeraX/lib not on library path |
comment:2 by , 3 years ago
| Status: | assigned → feedback |
|---|
follow-up: 3 comment:3 by , 3 years ago
Will check tomorrow. On the off chance it makes a difference, my actual builds happen in a CentOS 8 Singularity container. On Wed, 18 Jan 2023 at 21:07, ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu> wrote:
comment:4 by , 3 years ago
Still failing today, I'm afraid. By the looks of the command, what should be the -I.../ChimeraX/include and -L.../ChimeraX/lib directories are still pointing to the temp directories that were used to build ChimeraX:
c++ -pipe -fPIC -std=gnu99 -fdebug-prefix-map=/tmp/chx-develop.1QlzKh/build=. -fstack-protector-strong -I/tmp/chx-develop.1QlzKh/build/include -L/tmp/chx-develop.1QlzKh/build/lib -DUSE_DYLD_GLOBAL_NAMESPACE -shared -O3 -Wall -Wextra -D_FORTIFY=2 build/temp.linux-x86_64-cpython-39/src/deps/lbfgs/src/lbfgs.o build/temp.linux-x86_64-cpython-39/src/openmm/minimize.o build/temp.linux-x86_64-cpython-39/src/openmm/openmm_interface.o -L/usr/lib -L/usr/lib/ucsf-chimerax-daily/lib/python3.9/site-packages/chimerax/core/lib -L/usr/lib/ucsf-chimerax-daily/lib/python3.9/site-packages/chimerax/atomic_lib/lib -L/usr/lib/ucsf-chimerax-daily/lib/python3.9/site-packages/chimerax/arrays/lib -L/tmp/chx-develop.1QlzKh/build/lib -lOpenMM -o build/lib.linux-x86_64-cpython-39/chimerax/isolde/_openmm_async.cpython-39-x86_64-linux-gnu.so -Wl,-rpath,$ORIGIN
Here's the Singularity recipe I use to make the build environment:
Bootstrap: docker
From: rockylinux:8
%help
RHEL 8 compatible containter that can build ChimeraX
%labels
Maintainer "Chimera Staff <chimera-staff@cgl.ucsf.edu>"
org.label-schema.schema-version "1.0"
org.label-scheme.description "This image has the right compiler environment to run ChimeraX"
%files
./chimerax-daily.rpm ./chimerax-daily.rpm
%post
yum --releasever=8 -y update
yum -y install epel-release dnf-plugins-core
yum config-manager --set-enabled powertools
yum -y --setopt=exclude='*.i?86' --nobest group install "Development Tools"
yum -y --setopt=exclude='*.i?86' --nobest install \
gcc-toolset-10 \
gcc-toolset-10-binutils-devel gcc-toolset-10-elfutils-devel gcc-toolset-10-valgrind-devel \
tcsh python2 \
chrpath patch openssh-clients rsync ca-certificates \
autoconf automake libtool pkgconfig \
flex bison yasm unzip tar gzip bzip2 xz p7zip \
rpm-build rpmdevtools rpmlint \
ImageMagick \
alsa-lib-devel \
atk-devel \
bzip2-devel \
cairo-devel \
cairo-gobject-devel \
cups-devel \
dbus-libs \
expat-devel \
fftw-devel \
fontconfig-devel \
freetype-devel \
gdk-pixbuf2-devel \
glib2-devel \
glibc-devel \
gtk3-devel \
hdf5-devel \
libdrm-devel \
libgcc \
libstdc++ \
libX11-devel \
libxcb-devel \
libXcomposite-devel \
libXcursor-devel \
libXdamage-devel \
libXext-devel \
libffi-devel \
libXfixes-devel \
libXi-devel \
libXrandr-devel \
libXrender-devel \
libXtst-devel \
mesa-libEGL \
mesa-libGL-devel \
mesa-libGLU-devel \
mesa-libOSMesa-devel \
mysql-libs \
nspr-devel \
nss-devel \
nss-util-devel \
openssl \
openssl-devel \
pango-devel \
pulseaudio-libs-devel \
sqlite-devel \
xdg-utils \
xz-devel \
zlib-devel \
texlive
dnf install -y ./chimerax-daily.rpm
alternatives --set python /usr/bin/python2
%environment
export PATH=/usr/bin:/usr/sbin:/bin:/sbin
export SHELL=/bin/bash
export LANG=en_US.UTF-8
source /opt/rh/gcc-toolset-10/enable
Built into an image (after copying the latest RedHat 8 chimerax-daily into the working directory) with:
singularity build --fakeroot rhel-8-chimerax-1_6_daily.img ./rhel-8.def
... and invoked from the bundle root directory with:
singularity exec --bind $(pwd) --pwd $(pwd) /path/to/rhel-8.img make $@
comment:5 by , 3 years ago
OK, thanks for double checking. I'll make a container from your definition and get those directories back in the path.
comment:6 by , 3 years ago
Building arrays with today's daily build on bare metal Ubuntu 22.04, I see temp directories but I also see -L/usr/lib/ucsf-chimerax-daily/lib
Does this still reproduce on a recent daily build?
comment:7 by , 3 years ago
| Resolution: | → fixed |
|---|---|
| Status: | feedback → closed |
I found it! On Rocky, the executable in /usr/bin is a symbolic link to the executable in /usr/libexec/UCSF-ChimeraX-daily -- we were detecting the root relative to the symlink with sys.executable as opposed to the real executable at os.path.realpath(sys.executable), and since we set our library path relative to the executable you can see how this would lead to a ficticious path making it into lib_dirs.
I've pushed a fix for tomorrow's daily build.
follow-up: 8 comment:8 by , 3 years ago
Thanks for tracking this down - sounds like it was a bit painful! :) On Thu, Mar 16, 2023 at 10:07 PM ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu> wrote:
I wasn't able to reproduce this on Ubuntu 22.04 -- the bundle builder code still puts ChimeraX/lib in the library path. I built clipper using the workaround from #8266 then ISOLDE. If you decide the proposed fix in #8266 is satisfactory, try a newer daily build.