Update build for ubuntu 22.04 - #937
Conversation
|
There is an issue with Gadgetron or dcmtk and GCC? https://github.com/SyneRBI/SIRF-SuperBuild/actions/runs/13265453075/job/37031643450?pr=937 This is the error on my docker instance, potentially I haven't redirected stderr so the output seems incomplete. |
|
There is. gadgetron/gadgetron#1277. However, this shouldn't occur on ubuntu 22.04. Does it say somewhere what version of dcmtk is being used? |
|
Good spot! My docker image says it's 24.04 I suppose the base docker image has upgraded to 24.04 more or less recently without us noticying. Line 2 in 5f1a7f4 We hit a similar issue but for a too old image with CIL. |
|
On my docker instance with the |
| sed -r -i -e '/^\s*- (cil|ccpi-regulariser).*/d' /opt/scripts/requirements.yml; \ | ||
| sed -r -i -e '/^\s*- (cil|ccpi-regulariser|h5py|dxchange).*/d' /opt/scripts/requirements.yml; \ | ||
| else \ | ||
| sed -r -i -e '/^\s*- (h5py|dxchange|cil|ccpi-regulariser|pillow|olefile|pywavelets|cil-data|tqdm|numba|zenodo_get).*/d' /opt/scripts/requirements.yml; \ |
There was a problem hiding this comment.
I think SIRF-exercises do need numba and tqdm, zenodo_get would be useful as well
|
Why did you move the python setup later on GHA? GHA is using the system python and pip. This doesn't have anything to do with conda discussions/problems on docker. By the way, why not pin the hdf5 version (both conda and pip I guess to be the same as the system one. Then it wouldn't matter which one is picked up. For conda, I suppose we'd still need to install cxx-compiler to avoid what we saw at #935 (comment) |
|
Let's try to install hdf5 from conda/pip of the same version of the system one to minimise incompatibilities. |
| - uses: actions/setup-python@v5 | ||
| with: | ||
| python-version: '${{ steps.deps.outputs.python-version }}' | ||
| cache: pip | ||
| - name: pip install | ||
| working-directory: docker | ||
| run: PYTHON_EXECUTABLE=python3 PYTHON_INSTALL_DIR="$HOME/virtualenv" ./user_python-ubuntu.sh | ||
| - uses: hendrikmuhs/ccache-action@v1 | ||
| with: | ||
| key: ${{ matrix.os }}-${{ env.COMPILER }}-${{ matrix.compiler_version }}-${{ env.BUILD_TYPE }}-${{ github.ref_name }}-${{ github.run_id }} | ||
| restore-keys: | | ||
| ${{ matrix.os }}-${{ env.COMPILER }}-${{ matrix.compiler_version }}-${{ env.BUILD_TYPE }}-${{ github.ref_name }} | ||
| ${{ matrix.os }}-${{ env.COMPILER }}-${{ matrix.compiler_version }}-${{ env.BUILD_TYPE }} | ||
| append-timestamp: false |
There was a problem hiding this comment.
let's revert this once the same version of HDF5 that is in the system is installed via pip/conda.
KrisThielemans
left a comment
There was a problem hiding this comment.
- GHA and the VM re-use the docker scripts, so they are broken now.
- I think you will need
cxx-compilersfor CMake - Logically speaking, it seems now to make more sense to add armadillo as a conda-forge package https://anaconda.org/conda-forge/armadillo, For pip, there seems to be
pyarmahttps://pyarma.sourceforge.io/, which might be ok.
Seems we're on a long path here...
| - tqdm # cil | ||
| - numba # cil | ||
| - h5py # gadgetron and CIL | ||
| - hdf5 # gadgetron and CIL |
There was a problem hiding this comment.
I meant, hdf5 is needed by STIR
| COPY docker/requirements.yml /opt/scripts/ | ||
| # https://jupyter-docker-stacks.readthedocs.io/en/latest/using/common.html#conda-environments | ||
| # https://github.com/TomographicImaging/CIL/blob/master/Dockerfile | ||
| # First remove the CIL run-dependencies from requirements.yml as they install hdf5 and CMake gets confused |
There was a problem hiding this comment.
no longer correct comment?
There was a problem hiding this comment.
not correct indeed, but it's still not passing unittests!
|
I tried armadillo from Yes, as usual this is a long and painful road. |
|
I get the following error on Gadgetron configuration. Indeed the system boost is 1.78.0.3 on Ubuntu 22.04 |
|
The Gadgetron boost error will be because you update Gadgetron (which I told you to do). Let's keep it at the original version for now to get this through and see. |
|
Downgrade gadgetron! Note that I successfully built Gadgetron via conda packages now. Update on https://github.com/SyneRBI/SIRF/wiki/Building-SIRF-and-CIL-with-conda. |
| - cxx-compiler # compiler which built hdf5 from conda-forge | ||
| - libstdcxx-ng # Gadgetron | ||
| - libgcc-ng # Gadgetron | ||
| - dcmtk # Gadgetron |
There was a problem hiding this comment.
| - dcmtk # Gadgetron | |
| - dcmtk=3.6.1 # Gadgetron |
seems I forgot that on the wiki
| libfftw3-dev \ | ||
| libhdf5-serial-dev \ | ||
| hdf5-helpers \ | ||
| libfftw3-dev \ |
There was a problem hiding this comment.
shouldn't this be in the if USE_UBUNTU_SYSTEM_LIBRARIES
| pkg-config \ | ||
| golang | ||
|
|
||
| if USE_UBUNTU_SYSTEM_LIBRARIES=1; then |
There was a problem hiding this comment.
surely missing $ here (and below)
| libxml2-dev \ | ||
| libfreetype6-dev \ | ||
| libxslt-dev \ |
There was a problem hiding this comment.
these don't seem to be required anymore.
| h5utils \ | ||
| jq \ | ||
| hdf5-tools \ | ||
| libopenblas-dev \ |
There was a problem hiding this comment.
this should be in the USE_UBUNTU_SYSTEM_LIBRARIES
| liblapack-dev \ | ||
| liblapacke-dev \ | ||
| libplplot-dev \ |
There was a problem hiding this comment.
this should be in the USE_UBUNTU_SYSTEM_LIBRARIES
|
Not 100% sure what we do with this now, but surely we urgently need the diff |
| @@ -1,5 +1,5 @@ | |||
| # syntax=docker/dockerfile:1 | |||
| ARG BASE_CONTAINER=quay.io/jupyter/scipy-notebook:latest | |||
| ARG BASE_CONTAINER=quay.io/jupyter/scipy-notebook:ubuntu-22.04 | |||
|
Hash before rebase 40605c7 |
|
Currently encountering a weird error. If building with SB the build fails because of link errors with ISMRMRD. If just configuring with SB and commenting out the build line and then launching the image and executing bash within the container, ISMRMRD builds nicely. It boils down to the incomplete environment in the case of the docker run build, despite we seem to source the same environment file the environments look completely different and the docker one lacks
Thanks @casperdcl for pair investigation |
Defers the installation of CIL run requirements which confuse CMake.