esoreflex and pipelines on macOS :: known issues
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.
- wxpython-4.0 fails to build
- esoreflex :: general problems with GUI display
- matplotlib-3.6.2 :: giraf GUIs crash
- cext fails to build (fixed by 2023 Public Release)
- molecfit_third_party fails to build (fixed by 2023 Public Release)
- matplotlib-3.7 :: molecfit GUIs crash (fixed by 2023 Public Release)
Current Release
wxpython-4.0 fails to build
[2024-01-12]: It seems that as of the most recent update to cython in MacPorts on 2023-12-26 (from ver 0.29.36 to 3.07), the MacPorts package pyXX-wxpython-4.0 fails to build. Note, for the moment, this only affects source builds. If you install binary packages then the current pyXX-wxpython-4.0 binary packages in the MacPorts repositories still install and ESO Pipelines should also continue to install successfully.
However if you need/want to make a source installation of the pyXX-wxpython-4.0 MacPorts package, it is likely (guaranteed?) to fail, thus preventing the installation of further packages.
Unfortunately it seems that binary packages are only available from the MacPorts repositories for macOS <=13.
On the otherhand, wxpython is 'only' required for running the esoreflex workflows, so you can still successfully install the recipe packages and run the pipeline via the esorex commandline interface.
As this is not a package maintained by ESO, we can not directly fix this problem. This problem has ben fixed in wxpython, but not yet included in a release version. The fix can therefore be applied as a patch in MacPorts, see https://trac.macports.org/ticket/69058#no2.
Public Release 2022
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 installations
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 installations
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.
Runtime: giraf python GUIs crash [for matplotlib version > 3.6]
These errors are caused by the molecfit workflow python scripts in the public version of the molecfit package being not compatible with matplotlib versions >= 3.6, as provided by MacPorts.
Workaround:
In a terminal:
bash
cd /tmp
curl https://ftp.eso.org/pub/usg/giraf/fix_giraf-2.16.11--2.16.11.39.tgz | tar -zxf -
cd fix_giraf-2.16.11--2.16.11.39
For a MacPorts installation...
sudo bash fix_giraf-2.16.11--2.16.11.39
For non MacPorts...
bash fix_giraf-2.16.11--2.16.11.39 <esoreflex_install_dir>
Installing: cext fails to build [since release of Xcode 14.3]
This is caused by a more strict handling of coding errors (what were previously warnings are now errors) by the latest version of the Apple's CLANG compiler (version 14.0.3).
Workaround:
sudo port selfupdate
sudo port upgrade outdated
cd /tmp
curl -O https://ftp.eso.org/pub/usg/esoreflex/fix_cext_1.2.4_9
sudo bash fix_cext_1.2.4_9
Then re-try installing whatever you were trying to install, e.g.:
sudo port install esopipe-xshoo-all
Installing: molecfit_third_party fails to build [since release of Xcode 14.3]
This is caused by a more strict handling of coding errors (what were previously warnings are now errors) by the latest version of the Apple's CLANG compiler (version 14.0.3).
Workaround:
sudo port selfupdate
sudo port upgrade outdated
sudo sed -i '' -e 's@FC=.*\}@& CC=${configure.cc}@' \
/opt/local/var/macports/sources/ftp.eso.org/pub/dfs/pipelines/repositories/stable/macports/ports/science/molecfit_third_party/Portfile
Then re-try installing whatever you were trying to install, e.g.:
sudo port install esopipe-xshoo-all
Runtime: Molecfit python GUIs crash [for matplotlib version >= 3.7] (fixed by 2023 Public Release)
These errors are caused by the molecfit workflow python scripts in the public version of the molecfit package being not compatible with matplotlib versions >= 3.7, as provided by MacPorts.
This issue was fixed with the version 4.3.1 release fo the 2023 Public Release (May 2023).
In the meantime there are two possible work arounds until the next public release is made:
- Install the Experimental Molecfit version, see the MOLECFIT Experimental version knowledgebase article.
- Configure esoreflex to use an alternative version of python (3.9 or higher) that has a matplotlib version < 3.7 (e.g. 3.5), in this case see the Using *conda to provide python dependencies for esoreflex knowledgebase article.
Add a comment
Please log in or register to submit a comment.