From 3471de1db6939cbb6075a37f68b63e016d3cdce8 Mon Sep 17 00:00:00 2001 From: Gerald Manipon Date: Wed, 17 Apr 2019 11:21:27 -0700 Subject: [PATCH 1/4] link to system version of libuuid and libgfortran --- .circleci/config.yml | 12 +++++++++++- docker/Dockerfile | 27 +++++++++++++++++++++++++++ docker/SConfigISCE | 3 --- 3 files changed, 38 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 74dacb1..5e4cff4 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -25,6 +25,17 @@ jobs: conda install --yes cython gdal h5py libgdal pytest numpy fftw scipy basemap scons opencv hdf4 hdf5 netcdf4 libgcc libstdcxx-ng cmake yum install -y uuid-devel x11-devel motif-devel jq ln -s /opt/conda/bin/cython /opt/conda/bin/cython3 + cd /opt/conda/lib + unlink libuuid.so + unlink libuuid.so.1 + ln -s /lib64/libuuid.so.1.3.0 libuuid.so + ln -s /lib64/libuuid.so.1.3.0 libuuid.so.1 + yum install -y gcc-gfortran + cd /opt/conda/lib + unlink libgfortran.so + unlink libgfortran.so.4 + ln -s /lib64/libgfortran.so.3.0.0 libgfortran.so + ln -s /lib64/libgfortran.so.3.0.0 libgfortran.so.4 mkdir config build install - run: @@ -46,7 +57,6 @@ jobs: echo "MOTIFINCPATH = /usr/include" >> SConfigISCE echo "X11INCPATH = /usr/include" >> SConfigISCE echo "RPATH = /opt/conda/lib /usr/lib64 /usr/lib" >> SConfigISCE - echo "LINKFLAGS = -luuid" >> SConfigISCE cat SConfigISCE - run: diff --git a/docker/Dockerfile b/docker/Dockerfile index cfd75ec..252f2f2 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -42,6 +42,23 @@ RUN set -ex \ && yum install -y uuid-devel x11-devel motif-devel jq \ && ln -sf /opt/conda/bin/cython /opt/conda/bin/cython3 +# link system libuuid +RUN set -ex \ + && cd /opt/conda/lib \ + && unlink libuuid.so \ + && unlink libuuid.so.1 \ + && ln -s /lib64/libuuid.so.1.3.0 libuuid.so \ + && ln -s /lib64/libuuid.so.1.3.0 libuuid.so.1 + +# install libgfortran.so.3 +RUN set -ex \ + && yum install -y gcc-gfortran \ + && cd /opt/conda/lib \ + && unlink libgfortran.so \ + && unlink libgfortran.so.4 \ + && ln -s /lib64/libgfortran.so.3.0.0 libgfortran.so \ + && ln -s /lib64/libgfortran.so.3.0.0 libgfortran.so.4 + # copy repo COPY . /root/isce2 @@ -91,6 +108,16 @@ RUN set -ex \ netcdf4 \ && sudo yum update -y \ && sudo yum install -y uuid-devel x11-devel motif-devel \ + && cd /opt/conda/lib \ + && sudo unlink libuuid.so \ + && sudo unlink libuuid.so.1 \ + && sudo ln -s /lib64/libuuid.so.1.3.0 libuuid.so \ + && sudo ln -s /lib64/libuuid.so.1.3.0 libuuid.so.1 \ + && sudo yum install -y gcc-gfortran \ + && sudo unlink libgfortran.so \ + && sudo unlink libgfortran.so.4 \ + && sudo ln -s /lib64/libgfortran.so.3.0.0 libgfortran.so \ + && sudo ln -s /lib64/libgfortran.so.3.0.0 libgfortran.so.4 \ && sudo yum install -y /tmp/isce-2.0-1.x86_64.rpm \ && sudo yum clean all \ && sudo rm -rf /var/cache/yum \ diff --git a/docker/SConfigISCE b/docker/SConfigISCE index 33aa38e..8db9971 100644 --- a/docker/SConfigISCE +++ b/docker/SConfigISCE @@ -36,9 +36,6 @@ X11INCPATH = /usr/include # path to location of the X11 directory # list of paths to search for shared libraries when running programs RPATH = /opt/conda/lib /usr/lib64 /usr/lib -# additional linker flags -LINKFLAGS = -luuid - #Explicitly enable cuda if needed ENABLE_CUDA = True #CUDA_TOOLKIT_PATH = $YOUR_CUDA_INSTALLATION #/usr/local/cuda From 12071e118a18bb59e93c585d16765649f3d0769a Mon Sep 17 00:00:00 2001 From: Gerald Manipon Date: Wed, 17 Apr 2019 12:09:03 -0700 Subject: [PATCH 2/4] fix directory creation --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 5e4cff4..b59462c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -21,6 +21,7 @@ jobs: command: | set -ex pwd + mkdir config build install . /opt/conda/bin/activate root conda install --yes cython gdal h5py libgdal pytest numpy fftw scipy basemap scons opencv hdf4 hdf5 netcdf4 libgcc libstdcxx-ng cmake yum install -y uuid-devel x11-devel motif-devel jq @@ -36,7 +37,6 @@ jobs: unlink libgfortran.so.4 ln -s /lib64/libgfortran.so.3.0.0 libgfortran.so ln -s /lib64/libgfortran.so.3.0.0 libgfortran.so.4 - mkdir config build install - run: name: Build SConfigISCE and setup dirs From ec27ebb12995b3e41aa3af2b0e1e3f6c7951939b Mon Sep 17 00:00:00 2001 From: Gerald Manipon Date: Wed, 17 Apr 2019 12:24:37 -0700 Subject: [PATCH 3/4] try alternate method of linking to system-installed libgfortran --- .circleci/config.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index b59462c..d6aeb15 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -32,11 +32,6 @@ jobs: ln -s /lib64/libuuid.so.1.3.0 libuuid.so ln -s /lib64/libuuid.so.1.3.0 libuuid.so.1 yum install -y gcc-gfortran - cd /opt/conda/lib - unlink libgfortran.so - unlink libgfortran.so.4 - ln -s /lib64/libgfortran.so.3.0.0 libgfortran.so - ln -s /lib64/libgfortran.so.3.0.0 libgfortran.so.4 - run: name: Build SConfigISCE and setup dirs @@ -57,6 +52,7 @@ jobs: echo "MOTIFINCPATH = /usr/include" >> SConfigISCE echo "X11INCPATH = /usr/include" >> SConfigISCE echo "RPATH = /opt/conda/lib /usr/lib64 /usr/lib" >> SConfigISCE + echo "LINKFLAGS = -L/lib64 -lgfortran" >> SConfigISCE cat SConfigISCE - run: From 359ab771bac742f48ba7fa26c32b234aa176c04f Mon Sep 17 00:00:00 2001 From: Gerald Manipon Date: Wed, 17 Apr 2019 15:12:25 -0700 Subject: [PATCH 4/4] actual issue is missing libgfortran.so link in /lib64 --- .circleci/config.yml | 6 +++--- docker/Dockerfile | 18 ++++++------------ 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d6aeb15..7732dd4 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -24,14 +24,15 @@ jobs: mkdir config build install . /opt/conda/bin/activate root conda install --yes cython gdal h5py libgdal pytest numpy fftw scipy basemap scons opencv hdf4 hdf5 netcdf4 libgcc libstdcxx-ng cmake - yum install -y uuid-devel x11-devel motif-devel jq + yum install -y uuid-devel x11-devel motif-devel jq gcc-gfortran ln -s /opt/conda/bin/cython /opt/conda/bin/cython3 cd /opt/conda/lib unlink libuuid.so unlink libuuid.so.1 ln -s /lib64/libuuid.so.1.3.0 libuuid.so ln -s /lib64/libuuid.so.1.3.0 libuuid.so.1 - yum install -y gcc-gfortran + cd /lib64 + test -f libgfortran.so || ln -sv libgfortran.so.*.* libgfortran.so - run: name: Build SConfigISCE and setup dirs @@ -52,7 +53,6 @@ jobs: echo "MOTIFINCPATH = /usr/include" >> SConfigISCE echo "X11INCPATH = /usr/include" >> SConfigISCE echo "RPATH = /opt/conda/lib /usr/lib64 /usr/lib" >> SConfigISCE - echo "LINKFLAGS = -L/lib64 -lgfortran" >> SConfigISCE cat SConfigISCE - run: diff --git a/docker/Dockerfile b/docker/Dockerfile index 252f2f2..7b9c0a8 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -50,14 +50,11 @@ RUN set -ex \ && ln -s /lib64/libuuid.so.1.3.0 libuuid.so \ && ln -s /lib64/libuuid.so.1.3.0 libuuid.so.1 -# install libgfortran.so.3 +# install libgfortran.so.3 and create missing link RUN set -ex \ && yum install -y gcc-gfortran \ - && cd /opt/conda/lib \ - && unlink libgfortran.so \ - && unlink libgfortran.so.4 \ - && ln -s /lib64/libgfortran.so.3.0.0 libgfortran.so \ - && ln -s /lib64/libgfortran.so.3.0.0 libgfortran.so.4 + && cd /lib64 \ + && ( test -f libgfortran.so || ln -sv libgfortran.so.*.* libgfortran.so ) # copy repo COPY . /root/isce2 @@ -107,17 +104,14 @@ RUN set -ex \ hdf5 \ netcdf4 \ && sudo yum update -y \ - && sudo yum install -y uuid-devel x11-devel motif-devel \ + && sudo yum install -y uuid-devel x11-devel motif-devel gcc-gfortran \ && cd /opt/conda/lib \ && sudo unlink libuuid.so \ && sudo unlink libuuid.so.1 \ && sudo ln -s /lib64/libuuid.so.1.3.0 libuuid.so \ && sudo ln -s /lib64/libuuid.so.1.3.0 libuuid.so.1 \ - && sudo yum install -y gcc-gfortran \ - && sudo unlink libgfortran.so \ - && sudo unlink libgfortran.so.4 \ - && sudo ln -s /lib64/libgfortran.so.3.0.0 libgfortran.so \ - && sudo ln -s /lib64/libgfortran.so.3.0.0 libgfortran.so.4 \ + && cd /lib64 \ + && ( test -f libgfortran.so || sudo ln -sv libgfortran.so.*.* libgfortran.so ) \ && sudo yum install -y /tmp/isce-2.0-1.x86_64.rpm \ && sudo yum clean all \ && sudo rm -rf /var/cache/yum \