Update WPS, WRF, MET, and METviewer with latest code tags
Closed this issue · 9 comments
the METviewer Dockerfile does not work as-is due to the alpha versions of METcalpy abd METplotpy being removed. Suggest switching to METviewer v4.0.0, METcalpy v1.0.0 and METplotpy v1.0.0.
I replicated this error as well.
MET compiles and runs successfully with v10.0.0, but it does have warnings related to shared object files. @JohnHalleyGotway -- can you take a look at this? I have these mods in feature/update_versions. Snippet of warning message below:
Configuring met-v10.0.0 and writing log file /comsoftware/met/met-v10.0.0/met/configure.log
Compiling met-v10.0.0 and writing log file /comsoftware/met/met-v10.0.0/met/make_install.log
/comsoftware/met/met-v10.0.0/met/src/basic/vx_config/config.tab.yy: warning: 1 shift/reduce conflict [-Wconflicts-sr]
/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/ld: warning: libgfortran.so.3, needed by //usr/lib64/atlas/libsatlas.so.3, may conflict with libgfortran.so.5
/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/ld: warning: libgfortran.so.3, needed by //usr/lib64/atlas/libsatlas.so.3, may conflict with libgfortran.so.5
/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/ld: warning: libgfortran.so.3, needed by //usr/lib64/atlas/libsatlas.so.3, may conflict with libgfortran.so.5
/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/ld: warning: libgfortran.so.3, needed by //usr/lib64/atlas/libsatlas.so.3, may conflict with libgfortran.so.5
/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/ld: warning: libgfortran.so.3, needed by //usr/lib64/atlas/libsatlas.so.3, may conflict with libgfortran.so.5
/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/ld: warning: libgfortran.so.3, needed by //usr/lib64/atlas/libsatlas.so.3, may conflict with libgfortran.so.5
/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/ld: warning: libgfortran.so.3, needed by //usr/lib64/atlas/libsatlas.so.3, may conflict with libgfortran.so.5
I was able to replicate these warning messages when building the MET image. Here are the shared object files that are triggering these warnings:
[comuser@32726d2bc26d met]$ ldd /usr/lib64/atlas/libsatlas.so.3 | grep gfortran
libgfortran.so.3 => /lib64/libgfortran.so.3 (0x00007f69675af000)
Thanks for confirming, John. I admit shared object files aren't my area of expertise. Do you think this stems from some incompatibility between something in our base image and something in the MET Dockerfile? MET runs successfully, but if there is a way to get past this warning what would be preferred!
So the base image has both libgfortran.so.3 and libgfortran.so.5:
docker run -it --rm dtcenter/base_image /bin/bash
Starting with UID : 9999
[comuser@7b09a752a689 home]$ ls /usr/lib64/libgfortran.so*
/usr/lib64/libgfortran.so.3 /usr/lib64/libgfortran.so.3.0.0 /usr/lib64/libgfortran.so.5 /usr/lib64/libgfortran.so.5.0.0
And stepping back, so too does the common-community-container:
docker run -it --rm dtcenter/common-community-container:1.0 /bin/bash
bash-4.2$ ls /usr/lib64/libgfortran*
/usr/lib64/libgfortran.so.3 /usr/lib64/libgfortran.so.3.0.0 /usr/lib64/libgfortran.so.5 /usr/lib64/libgfortran.so.5.0.0
For comparison, checking a recent build of MET by DockerHub, it only has libgfortran.so.3:
docker run -it --rm dtcenter/met:develop /bin/bash
[root@642c112b95d1 met]# ls /usr/lib64/libgfortran*
/usr/lib64/libgfortran.so.3 /usr/lib64/libgfortran.so.3.0.0
Looking in the dtcenter/common-community-container, installing gcc adds the standard dependency of libgfortran.so.3. And installing devtoolset-8 adds the libgfortran.so.5 dependency... which leads to the linker warning from MET.
Recommend that we:
- Confirm the need for the installation of the devtoolset-8 packages... but presumably they're there for a good reason. @mkavulich can you confirm?
- Potentially modify the MET Dockerfile to uninstall the devtoolset-8 packages from the environment... but I've never UNINSTALLED anything in a Dockerfile before!
@michelleharrold how would you like me to proceed?
I tried updating the MET Dockerfile to remove the default gfortran library with:
RUN yum remove -y gcc-gfortran libgfortran
That command is successful and does remove /usr/lib64/libgfortran.so.6. However, installing cairo/freetype on a subsequent line adds it back in!
--> Processing Dependency: pkgconfig(egl) for package: cairo-devel-1.15.12-4.el7.x86_64
---> Package freetype-devel.x86_64 0:2.8-14.el7_9.1 will be installed
---> Package gcc-gfortran.x86_64 0:4.8.5-44.el7 will be installed
--> Processing Dependency: libgfortran = 4.8.5-44.el7 for package: gcc-gfortran-4.8.5-44.el7.x86_64
--> Processing Dependency: libgfortran.so.3()(64bit) for package: gcc-gfortran-4.8.5-44.el7.x86_64
My advice is that we do not fix those linker warnings for MET. In order to do so, we'd need to manually compile cairo/freetype using GCC8, which seems like a waste of time. That time would be better spent seeing if we can upgrade the CCC from centos7 to centos8 hoping that would provide a more stable build environment.
@JohnHalleyGotway -- thanks for diving into this. I agree with your assessment. Thanks!
@michelleharrold - Can this issue be closed now?
Oh yeah, I thought I closed it, but apparently not! Thanks!