Skip to main content

Known issues :: esoreflex and pipelines on macOS - Knowledgebase / Data processing and analysis software resources - ESO Operations Helpdesk

Known issues :: esoreflex and pipelines on macOS

Authors list

esoreflex and pipelines on macOS :: known issuesCopy link to esoreflex and pipelines on macOS :: known issues to clipboard

Because the ESO pipelines are managed on a yearly release cycle but MacPorts is subject to continuous evolution, it happens that some issues can arise during installation and or execution of the pipelines, usually because the pipeline software is not compatible with the newer versions of software packages provided by MacPorts.

Here we attempt to keep track of such issues, and provide workarounds where possible.

Current ReleaseCopy link to Current Release to clipboard

wxpython-4.0 fails to build

[2024-10-28]: the Macports package [py3XX-wxpython-4.0 @4.2.1] fails to build for Xcode-16. Xcode-16 is the only version of Xcode compatible with macOS Sequoia. It can also be installed on macOS Sonoma, though on macOS Sonoma one can also install Xcode-15 which py3XX-wxpython-4.0 will compile against.

There is a newer release of wxpython-4.0, version 4.2.2, but a "simple" update of the MacPorts py3XX-wxpython-4.0 does not solve the problem, so probably this issue is not yet fixed upstream in wxpyhton, even in version 4.2.2. In addition the py3XX-wxpython-4.0 MacPorts package currently has no maintainer, so it is not clear when this issue will be resolved.

A work aorund to allow installation of esoreflex and ESO pipelije s and workflows is to remove the dependency of esoreflex on py3XX-wxpython-4.0 and then use a *conda python environment to provide the required python environment for esoreflex (of course other python virtual environments can be used, but this is left as an exercise for "expert users"...).

bash
repo_dir=/opt/local/var/macports/sources/ftp.eso.org/pub/dfs/pipelines/repositories/stable/macports/ports
sudo sed -i '' -e 's@port:py3..-wxpython-4.0@@' ${repo_dir}/science/*/Portfile
sudo port install esopipe-<inst>-all

Obviously replace <inst> with the relevant instrument name. This should result in the installation of esoreflex and the relevant packages of the specified instrument, and all required dependencies, except py3XX-wxpython-4.0. If you have any problems at this stage, please create a ticket (and don't forget to attach the main.log file indicated in the error message from MacPorts).

Then follow the instructions on the Using *conda to provide python dependencies for esoreflex knowledgebase article to install a *conda virtual environment for esoreflex and configure esoreflex to use it.

Since Public Release 2022 and still in the Current Release...Copy link to Since Public Release 2022 and still in the Current Release... to clipboard

Runtime: general problems with GUI displays [for matplotlib version >= ~3.6]

esoreflex seems to be becoming less and less compatible with each new version of the Python package matplotlib. The main problems are:

  • the Interactive Navigation bar disappears
  • the display and various "sizing and alignment problems" in the Recipe Parameters panel on the right side of GUI windows

see screenshots:

No matplotlib Navigation bar in the top left corner and no problems with the Recipe Parameter fields.

The matplotlib Navigation bar in the top left corner has been re-enabled and the Recipe Parameter fields in the right-hand side of the window are correctly (or at least better) presented.

While we work on a permanent fix for this, the following workarounds are available for MacPorts and install-script installations:

MacPorts installationsCopy link to MacPorts installations to clipboard

Execute the following commands:

bash
cd /tmp
curl https://ftp.eso.org/pub/usg/esoreflex/fix_esoreflex.tgz | tar -zxvf -
cd fix_esoreflex-*
sudo bash ./reinstall_esoreflex 

install-script installationsCopy link to install-script installations to clipboard

Execute the following commands:

bash
cd <esoreflex_install_dir>
cd esoreflex*
curl https://ftp.eso.org/pub/usg/esoreflex/fix_esoreflex.tgz | tar -zxf -  
bash
for P in fix_esoreflex/files/* ; do patch -p0 < $P  ; done 

where <esoreflex_install_dir> is the install subdirectory of the directory where you ran the install_esoreflex script.