Browse Source

Improvements and final ELIC intel-2020b

Pierre-Yves Barriat 4 years ago
parent
commit
2617b68450

+ 55 - 0
foss-2020b/Ghostscript-9.53.3_fix-freetype-callback.patch

@@ -0,0 +1,55 @@
+fix compilation error when building Ghostscript 9.53.3 on top of freetype 2.10.3:
+
+  error: expected declaration specifiers before FF_alloc
+
+see also https://bugs.ghostscript.com/show_bug.cgi?id=702985
+
+From 41ef9a0bc36b9db7115fbe9623f989bfb47bbade Mon Sep 17 00:00:00 2001
+From: Chris Liddell <chris.liddell@artifex.com>
+Date: Tue, 20 Oct 2020 09:49:45 +0100
+Subject: [PATCH] Bug 702985: drop use of FT_CALLBACK_DEF() def
+
+From 2.10.3, Freetype disappeared the FT_CALLBACK_DEF() macro, which is what
+we used when defining our callbacks from Freetype.
+
+No guidance forthcoming from the Freetype developer who made those changes,
+so change to explicitly declaring the callbacks file static.
+
+Should fix the reported build failures.
+---
+ base/fapi_ft.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/base/fapi_ft.c b/base/fapi_ft.c
+index 65fa6dcf4..21aef2f06 100644
+--- a/base/fapi_ft.c
++++ b/base/fapi_ft.c
+@@ -125,7 +125,7 @@ static void
+ delete_inc_int_info(gs_fapi_server * a_server,
+                     FT_IncrementalRec * a_inc_int_info);
+ 
+-FT_CALLBACK_DEF(void *)
++static void *
+ FF_alloc(FT_Memory memory, long size)
+ {
+     gs_memory_t *mem = (gs_memory_t *) memory->user;
+@@ -133,7 +133,7 @@ FF_alloc(FT_Memory memory, long size)
+     return (gs_malloc(mem, size, 1, "FF_alloc"));
+ }
+ 
+-FT_CALLBACK_DEF(void *)
++static void *
+     FF_realloc(FT_Memory memory, long cur_size, long new_size, void *block)
+ {
+     gs_memory_t *mem = (gs_memory_t *) memory->user;
+@@ -153,7 +153,7 @@ FT_CALLBACK_DEF(void *)
+     return (tmp);
+ }
+ 
+-FT_CALLBACK_DEF(void)
++static void
+     FF_free(FT_Memory memory, void *block)
+ {
+     gs_memory_t *mem = (gs_memory_t *) memory->user;
+-- 
+2.17.1

+ 21 - 0
foss-2020b/HWxtest-1.1.9_add-fcommon.patch

@@ -0,0 +1,21 @@
+fix "multiple definition" errors by adding -fcommon compiler options,
+see https://www.gnu.org/software/gcc/gcc-10/porting_to.html
+
+author: Kenneth Hoste (HPC-UGent)
+
+diff -ruN HWxtest.orig/MD5 HWxtest/MD5
+--- HWxtest.orig/MD5	2020-11-08 21:15:03.612622261 +0100
++++ HWxtest/MD5	2020-11-08 21:13:24.278691443 +0100
+@@ -40,6 +40,7 @@
+ 4657a2011dc5363ed1cfd1d29a7040d5 *src/HWmtest.c
+ 08ec52ea231752fbb2bb11a529107806 *src/HWxcount.c
+ 23598383650c211dd18d54bded68b9bd *src/HWxtest.c
++8b6d9aec8b8cef60d1b245e0f290bfed *src/Makevars
+ 886a6d855fb0b59e565b919a1ff69eb0 *vignettes/HWxtest.Rmd
+ fcf857c5f98963f740c5c2f95e33ccc9 *vignettes/HWxtest.md
+ b93f768037a75ec9edd60ca89fd4c1db *vignettes/bibHW.txt
+diff -ruN HWxtest.orig/src/Makevars HWxtest/src/Makevars
+--- HWxtest.orig/src/Makevars	1970-01-01 01:00:00.000000000 +0100
++++ HWxtest/src/Makevars	2020-11-08 21:15:51.340615023 +0100
+@@ -0,0 +1 @@
++PKG_CFLAGS = -fcommon

+ 25 - 0
foss-2020b/OpenSSL-1.1.1h-GCCcore-10.2.0.eb

@@ -0,0 +1,25 @@
+name = 'OpenSSL'
+version = '1.1.1h'
+
+homepage = 'https://www.openssl.org/'
+description = """The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured,
+ and Open Source toolchain implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) 
+ protocols as well as a full-strength general purpose cryptography library. """
+
+toolchain = {'name': 'GCCcore', 'version': '10.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://www.openssl.org/source/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['5c9ca8774bd7b03e5784f26ae9e9e6d749c9da2438545077e6b3d755a06595d9']
+
+dependencies = [('zlib', '1.2.11')]
+
+builddependencies = [
+    ('Perl', '5.32.0'),
+    ('binutils', '2.35'),
+]
+
+runtest = 'test'
+
+moduleclass = 'system'

+ 13 - 1
foss-2020b/R-4.0.3-foss-2020b.eb

@@ -48,7 +48,7 @@ dependencies = [
     # OS dependency should be preferred if the os version is more recent then
     # OS dependency should be preferred if the os version is more recent then
     # this version, it's nice to have an up to date openssl for security
     # this version, it's nice to have an up to date openssl for security
     # reasons
     # reasons
-    # ('OpenSSL', '1.1.1e'),
+    ('OpenSSL', '1.1.1h'),
 ]
 ]
 
 
 osdependencies = [OS_PKG_OPENSSL_DEV]
 osdependencies = [OS_PKG_OPENSSL_DEV]
@@ -2730,6 +2730,18 @@ exts_list = [
     ('DescTools', '0.99.38', {
     ('DescTools', '0.99.38', {
         'checksums': ['bd8edce64a8f9e295611959295b85cf8d7bbf915093158016169bd334e0e1104'],
         'checksums': ['bd8edce64a8f9e295611959295b85cf8d7bbf915093158016169bd334e0e1104'],
     }),
     }),
+    ('RcppParallel', '5.0.2', {
+        'checksums': ['8ca200908c6365aafb2063be1789f0894969adc03c0f523c6cc45434b8236f81'],
+    }),
+    ('CompQuadForm', '1.4.3', {
+        'checksums': ['042fc56c800dd8f5f47a017e2efa832caf74f0602824abf7099898d9708660c4'],
+    }),
+    ('nonnest2', '0.5-5', {
+        'checksums': ['027f510e322122fc75c936251a95ddd392f96047ac86e0fae6cf8f883ac7aab5'],
+    }),
+    ('blavaan', '0.3-12', {
+        'checksums': ['9a44a21343e1dcced0c65c3117edc5ab2412513c258f1422fd39852e4d9cd706'],
+    }),
 ]
 ]
 
 
 moduleclass = 'lang'
 moduleclass = 'lang'

+ 5 - 3
intel-2020b/UDUNITS-1.12.11-iimpi-2020b.eb → foss-2020b/UDUNITS-1.12.11-GCCcore-10.2.0.eb

@@ -9,16 +9,18 @@ homepage = 'http://www.unidata.ucar.edu/software/udunits/'
 description = """UDUNITS supports conversion of unit specifications between formatted and binary forms,
 description = """UDUNITS supports conversion of unit specifications between formatted and binary forms,
  arithmetic manipulation of units, and conversion of values between compatible scales of measurement."""
  arithmetic manipulation of units, and conversion of values between compatible scales of measurement."""
 
 
-toolchain = {'name': 'iimpi', 'version': '2020b'}
+toolchain = {'name': 'GCCcore', 'version': '10.2.0'}
 toolchainopts = {'pic': True}
 toolchainopts = {'pic': True}
 
 
 source_urls = ['ftp://ftp.unidata.ucar.edu/pub/udunits']
 source_urls = ['ftp://ftp.unidata.ucar.edu/pub/udunits']
 sources = [SOURCELOWER_TAR_GZ]
 sources = [SOURCELOWER_TAR_GZ]
+patches = ['UDUNITS-1_yacc.patch']
 
 
-buildopts = 'CFLAGS="-Df2cFortran -fPIC"'
+buildopts = 'CFLAGS="$CFLAGS -Df2cFortran" '
 
 
 builddependencies = [
 builddependencies = [
-    ('Bison', '3.7.1'),
+    ('binutils', '2.35'),
+    ('Bison', '3.7.1'), 
     ('Perl', '5.32.0'),
     ('Perl', '5.32.0'),
 ]
 ]
 
 

+ 16 - 0
foss-2020b/UDUNITS-1_yacc.patch

@@ -0,0 +1,16 @@
+--- UDUNITS/1.12.11/GCCcore-10.2.0/udunits-1.12.11/src/lib/Makefile.in.orig	2020-12-09 13:16:13.732167939 +0100
++++ UDUNITS/1.12.11/GCCcore-10.2.0/udunits-1.12.11/src/lib/Makefile.in		2020-12-09 13:14:48.085498580 +0100
+@@ -60,11 +60,11 @@
+ # with other parsers).
+ #
+ utparse.c:	utparse.y
+-	yacc -b utparse -d -p ut utparse.y
++	yacc -b utparse -d -p ut utparse.y -Wconflicts-sr -Wcounterexamples
+ 	cat utparse.tab.c > $@
+ 	rm utparse.tab.c
+ 	cat utparse.tab.h > utparse.h
+-	rm utparse.tab.h
++#	rm utparse.tab.h
+ 
+ #	case `uname -s` in \
+ #	OSF1) \

+ 1 - 1
intel-2020b/CDO-1.9.9-intel-2020b.eb

@@ -17,7 +17,7 @@ dependencies = [
     ('Python', '3.8.6'),
     ('Python', '3.8.6'),
     ('HDF5', '1.10.7'),
     ('HDF5', '1.10.7'),
     ('netCDF', '4.7.4'),
     ('netCDF', '4.7.4'),
-    ('YAXT', '0.6.2'),
+    ('YAXT', '0.9.0'),
     ('ecCodes', '2.19.1'),
     ('ecCodes', '2.19.1'),
     ('PROJ', '7.2.0'),
     ('PROJ', '7.2.0'),
 ]
 ]

+ 1 - 1
intel-2020b/ELIC_Python-1-intel-2020b-Python-3.8.6.eb

@@ -19,7 +19,7 @@ dependencies = [
     ('matplotlib', '3.3.3', versionsuffix),
     ('matplotlib', '3.3.3', versionsuffix),
     ('GDAL', '3.2.0', versionsuffix),
     ('GDAL', '3.2.0', versionsuffix),
     ('NCL', '6.6.2'),
     ('NCL', '6.6.2'),
-    ('CDO', '1.9.9'),
+    #('CDO', '1.9.9'),
     ('NCO', '4.9.5'),
     ('NCO', '4.9.5'),
     ('ncview', '2.1.7'),
     ('ncview', '2.1.7'),
     ('libmo_unpack', '3.1.2'),
     ('libmo_unpack', '3.1.2'),

+ 7 - 4
intel-2020b/GDAL-3.2.0-intel-2020b-Python-3.8.6.eb

@@ -15,7 +15,10 @@ toolchainopts = {'usempi': True}
 
 
 source_urls = ['https://download.osgeo.org/gdal/%(version)s/']
 source_urls = ['https://download.osgeo.org/gdal/%(version)s/']
 sources = [SOURCELOWER_TAR_XZ]
 sources = [SOURCELOWER_TAR_XZ]
-patches = ['GDAL-3.0.0_fix-python-CC-CXX.patch']
+patches = [
+    'GDAL-3.0.0_fix-python-CC-CXX.patch',
+    'GDAL-3.2.0_fix-default_constructor.patch',
+]
 
 
 dependencies = [
 dependencies = [
     ('Python', '3.8.6'),
     ('Python', '3.8.6'),
@@ -33,14 +36,14 @@ dependencies = [
     ('PCRE', '8.44'),
     ('PCRE', '8.44'),
     ('PROJ', '7.2.0'),
     ('PROJ', '7.2.0'),
     ('libgeotiff', '1.6.0'),
     ('libgeotiff', '1.6.0'),
-    ('SciPy-bundle', '2020.11', versionsuffix),
+    ('SciPy-bundle', '2020.11'),
     ('HDF5', '1.10.7'),
     ('HDF5', '1.10.7'),
 ]
 ]
 
 
 preconfigopts = "sed -e 's/-llapack/\$LIBLAPACK/g' -i.eb configure && "
 preconfigopts = "sed -e 's/-llapack/\$LIBLAPACK/g' -i.eb configure && "
 configopts = '--with-expat=$EBROOTEXPAT --with-libz=$EBROOTLIBZ'
 configopts = '--with-expat=$EBROOTEXPAT --with-libz=$EBROOTLIBZ'
 configopts += ' --without-hdf4 --with-hdf5=$EBROOTHDF5 --with-netcdf=$EBROOTNETCDF'
 configopts += ' --without-hdf4 --with-hdf5=$EBROOTHDF5 --with-netcdf=$EBROOTNETCDF'
-configopts += ' --with-xml2=$EBROOTLIBXML2 --with-geos=$EBROOTGEOS/bin/geos-config --with-jpeg=$EBROOTLIBJPEGMINTURBO'
+configopts += ' --with-xml2=yes --with-geos=$EBROOTGEOS/bin/geos-config --with-jpeg=$EBROOTLIBJPEGMINTURBO'
 configopts += ' --with-png=$EBROOTLIBPNG --with-sqlite3=$EBROOTSQLITE --with-jasper=$EBROOTJASPER'
 configopts += ' --with-png=$EBROOTLIBPNG --with-sqlite3=$EBROOTSQLITE --with-jasper=$EBROOTJASPER'
 configopts += ' --with-libtiff=$EBROOTLIBTIFF --with-pcre=$EBROOTPCRE --with-python=$EBROOTPYTHON/bin/python'
 configopts += ' --with-libtiff=$EBROOTLIBTIFF --with-pcre=$EBROOTPCRE --with-python=$EBROOTPYTHON/bin/python'
 configopts += ' --with-libgeotiff=$EBROOTLIBGEOTIFF'
 configopts += ' --with-libgeotiff=$EBROOTLIBGEOTIFF'
@@ -54,6 +57,6 @@ sanity_check_paths = {
     'dirs': ['bin', 'include', 'lib/python%(pyshortver)s/site-packages']
     'dirs': ['bin', 'include', 'lib/python%(pyshortver)s/site-packages']
 }
 }
 
 
-sanity_check_commands = ["python -c 'import gdal'"]
+sanity_check_commands = ["python -c 'from osgeo import gdal'"]
 
 
 moduleclass = 'data'
 moduleclass = 'data'

+ 11 - 0
intel-2020b/GDAL-3.2.0_fix-default_constructor.patch

@@ -0,0 +1,11 @@
+--- gdal-3.2.0/port/cpl_vsil_curl_class.h.orig	2020-12-08 09:28:41.814826746 +0100
++++ gdal-3.2.0/port/cpl_vsil_curl_class.h 	2020-12-08 09:24:43.183792310 +0100
+@@ -677,6 +677,8 @@
+ 
+     struct Stats
+     {
++        Stats() {}       
++ 
+         Counters counters{};
+         std::map<ContextPathItem, Stats> children{};
+ 

+ 11 - 6
intel-2020b/SciPy-bundle-2020.11-intel-2020b-Python-3.8.6.eb → intel-2020b/SciPy-bundle-2020.11-intel-2020b.eb

@@ -2,7 +2,6 @@ easyblock = 'PythonBundle'
 
 
 name = 'SciPy-bundle'
 name = 'SciPy-bundle'
 version = '2020.11'
 version = '2020.11'
-versionsuffix = '-Python-3.8.2'
 
 
 homepage = 'https://python.org/'
 homepage = 'https://python.org/'
 description = "Bundle of Python packages for scientific software"
 description = "Bundle of Python packages for scientific software"
@@ -12,7 +11,7 @@ toolchainopts = {'pic': True, 'lowopt': True}
 
 
 dependencies = [
 dependencies = [
     ('Python', '3.8.6'),
     ('Python', '3.8.6'),
-    ('pybind11', '2.6.0', versionsuffix),  # required by scipy
+    ('pybind11', '2.6.0'),  # required by scipy
 ]
 ]
 
 
 use_pip = True
 use_pip = True
@@ -25,17 +24,23 @@ exts_list = [
         'checksums': ['06776c245b5eb25011040f94779fda6bbfa9def72074672af2e79a5e6bce8b38'],
         'checksums': ['06776c245b5eb25011040f94779fda6bbfa9def72074672af2e79a5e6bce8b38'],
     }),
     }),
     ('numpy', '1.19.4', {
     ('numpy', '1.19.4', {
+        'patches': ['numpy-1.18.2-mkl.patch'], 
         'source_tmpl': '%(name)s-%(version)s.zip',
         'source_tmpl': '%(name)s-%(version)s.zip',
-        'checksums': ['141ec3a3300ab89c7f2b0775289954d193cc8edb621ea05f99db9cb181530512'],
+        'checksums': [
+            '141ec3a3300ab89c7f2b0775289954d193cc8edb621ea05f99db9cb181530512',
+            'ea25ad5c0148c1398d282f0424e642fb9815a1a80f4512659b018e2adc378bcf',  # numpy-1.18.2-mkl.patch
+        ],
     }),
     }),
     ('scipy', '1.5.4', {
     ('scipy', '1.5.4', {
-        'checksums': ['4a453d5e5689de62e5d38edf40af3f17560bfd63c9c5bd228c18c1f99afa155b'],
+        'checksums': [
+            '4a453d5e5689de62e5d38edf40af3f17560bfd63c9c5bd228c18c1f99afa155b',
+        ],
     }),
     }),
     ('mpi4py', '3.0.3', {
     ('mpi4py', '3.0.3', {
         'checksums': ['012d716c8b9ed1e513fcc4b18e5af16a8791f51e6d1716baccf988ad355c5a1f'],
         'checksums': ['012d716c8b9ed1e513fcc4b18e5af16a8791f51e6d1716baccf988ad355c5a1f'],
     }),
     }),
-    ('pandas', '1.1.4', {
-        'checksums': ['a979d0404b135c63954dea79e6246c45dd45371a88631cdbb4877d844e6de3b6'],
+    ('pandas', '1.0.3', {
+        'checksums': ['32f42e322fb903d0e189a4c10b75ba70d90958cc4f66a1781ed027f1a1d14586'],
     }),
     }),
     ('mpmath', '1.1.0', {
     ('mpmath', '1.1.0', {
         'checksums': ['fc17abe05fbab3382b61a123c398508183406fa132e0223874578e20946499f6'],
         'checksums': ['fc17abe05fbab3382b61a123c398508183406fa132e0223874578e20946499f6'],

+ 6 - 5
intel-2020b/YAXT-0.6.2-iimpi-2020b.eb → intel-2020b/YAXT-0.9.0-iimpi-2020b.eb

@@ -1,19 +1,20 @@
 easyblock = 'ConfigureMake'
 easyblock = 'ConfigureMake'
 
 
 name = 'YAXT'
 name = 'YAXT'
-version = '0.6.2'
+version = '0.9.0'
 
 
 homepage = 'https://www.dkrz.de/redmine/projects/yaxt'
 homepage = 'https://www.dkrz.de/redmine/projects/yaxt'
 description = "Yet Another eXchange Tool"
 description = "Yet Another eXchange Tool"
 
 
 toolchain = {'name': 'iimpi', 'version': '2020b'}
 toolchain = {'name': 'iimpi', 'version': '2020b'}
-toolchainopts = {'usempi': True}
+toolchainopts = {'pic': True, 'usempi': True, 'lowopt': True}
+#toolchainopts = {'usempi': True}
 
 
-source_urls = ['https://www.dkrz.de/redmine/attachments/download/492/']
+source_urls = ['https://www.dkrz.de/redmine/attachments/download/498/']
 sources = [SOURCELOWER_TAR_GZ]
 sources = [SOURCELOWER_TAR_GZ]
-checksums = ['7fc9b3e5dd2e0d3d5846f389a01c935aa40528eb09d82162b76c061b496a3c5b']
 
 
-configopts = 'FC="$F90" FCFLAGS="$F90FLAGS -cpp"'
+configopts = 'FC="$F90" FCFLAGS="$F90FLAGS -cpp" UCX_TLS="ud,sm,self" '
+#configopts = 'FC="$F90" FCFLAGS="$F90FLAGS -cpp" '
 
 
 sanity_check_paths = {
 sanity_check_paths = {
     'files': ['include/yaxt.h', 'include/yaxt.mod', 'lib/libyaxt.a', 'lib/libyaxt.%s' % SHLIB_EXT],
     'files': ['include/yaxt.h', 'include/yaxt.mod', 'lib/libyaxt.a', 'lib/libyaxt.%s' % SHLIB_EXT],

+ 25 - 0
intel-2020b/libmo_unpack-3.1.2-intel-2020b.eb

@@ -0,0 +1,25 @@
+easyblock = 'CMakeMake'
+
+name = 'libmo_unpack'
+version = '3.1.2'
+
+homepage = "https://github.com/SciTools/libmo_unpack"
+description = "A library for handling the WGDOS and RLE compression schemes used in UM files."
+
+toolchain = {'name': 'intel', 'version': '2020b'}
+
+source_urls = ['https://github.com/SciTools/libmo_unpack/archive']
+sources = ['v%(version)s.tar.gz']
+
+builddependencies = [('CMake', '3.18.4')]
+
+separate_build_dir = True
+
+configopts = '-DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS -lsubunit"'
+
+sanity_check_paths = {
+    'files': ['lib/libmo_unpack.%s' % SHLIB_EXT],
+    'dirs': [],
+}
+
+moduleclass = 'tools'

+ 10 - 4
intel-2020b/matplotlib-3.3.3-intel-2020b-Python-3.8.6.eb

@@ -17,10 +17,14 @@ builddependencies = [
 
 
 dependencies = [
 dependencies = [
     ('Python', '3.8.6'),
     ('Python', '3.8.6'),
-    ('SciPy-bundle', '2020.11', versionsuffix),
+    ('libjpeg-turbo', '2.0.5'),
+    ('SciPy-bundle', '2020.11'),
     ('libpng', '1.6.37'),
     ('libpng', '1.6.37'),
+    ('zlib', '1.2.11'),
+    ('LibTIFF', '4.1.0'),
     ('freetype', '2.10.3'),
     ('freetype', '2.10.3'),
     ('Tkinter', '%(pyver)s'),
     ('Tkinter', '%(pyver)s'),
+    ('Pillow', '8.0.1', versionsuffix),
 ]
 ]
 
 
 use_pip = True
 use_pip = True
@@ -32,20 +36,22 @@ exts_list = [
         'modulename': 'cycler',
         'modulename': 'cycler',
         'source_tmpl': 'cycler-%(version)s.tar.gz',
         'source_tmpl': 'cycler-%(version)s.tar.gz',
         'source_urls': ['https://pypi.python.org/packages/source/C/Cycler'],
         'source_urls': ['https://pypi.python.org/packages/source/C/Cycler'],
-        'checksums': ['cd7b2d1018258d7247a71425e9f26463dfb444d411c39569972f4ce586b0c9d8'],
     }),
     }),
     ('kiwisolver', '1.1.0', {
     ('kiwisolver', '1.1.0', {
         'source_urls': ['https://pypi.python.org/packages/source/k/kiwisolver'],
         'source_urls': ['https://pypi.python.org/packages/source/k/kiwisolver'],
-        'checksums': ['53eaed412477c836e1b9522c19858a8557d6e595077830146182225613b11a75'],
     }),
     }),
     (name, version, {
     (name, version, {
         'prebuildopts': "export CPLUS_INCLUDE_PATH=$EBROOTFREETYPE/include/freetype2:${CPLUS_INCLUDE_PATH} && ",
         'prebuildopts': "export CPLUS_INCLUDE_PATH=$EBROOTFREETYPE/include/freetype2:${CPLUS_INCLUDE_PATH} && ",
         'preinstallopts': "export CPLUS_INCLUDE_PATH=$EBROOTFREETYPE/include/freetype2:${CPLUS_INCLUDE_PATH} && ",
         'preinstallopts': "export CPLUS_INCLUDE_PATH=$EBROOTFREETYPE/include/freetype2:${CPLUS_INCLUDE_PATH} && ",
         'source_urls': ['https://pypi.python.org/packages/source/m/matplotlib'],
         'source_urls': ['https://pypi.python.org/packages/source/m/matplotlib'],
-        'checksums': ['ffe2f9cdcea1086fc414e82f42271ecf1976700b8edd16ca9d376189c6d93aee'],
     }),
     }),
 ]
 ]
 
 
+postinstallcmds = [
+    "cd %(installdir)s && " +
+    'python3 -m pip install --upgrade Pillow '
+]
+
 sanity_check_commands = [
 sanity_check_commands = [
     """python -c 'import matplotlib; matplotlib.use("Agg"); import matplotlib.pyplot' """,
     """python -c 'import matplotlib; matplotlib.use("Agg"); import matplotlib.pyplot' """,
     "python -c 'from mpl_toolkits.mplot3d import Axes3D'",
     "python -c 'from mpl_toolkits.mplot3d import Axes3D'",

+ 25 - 0
intel-2020b/netCDF-C++4-4.3.1-iimpi-2020b.eb

@@ -0,0 +1,25 @@
+easyblock = 'ConfigureMake'
+
+name = 'netCDF-C++4'
+version = '4.3.1'
+
+homepage = 'https://www.unidata.ucar.edu/software/netcdf/'
+description = """NetCDF (network Common Data Form) is a set of software libraries
+ and machine-independent data formats that support the creation, access, and sharing of array-oriented
+ scientific data."""
+
+toolchain = {'name': 'iimpi', 'version': '2020b'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/Unidata/netcdf-cxx4/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['e3fe3d2ec06c1c2772555bf1208d220aab5fee186d04bd265219b0bc7a978edc']
+
+dependencies = [('netCDF', '4.7.4')]
+
+sanity_check_paths = {
+    'files': ['include/netcdf', 'lib/libnetcdf_c++4.a', 'lib/libnetcdf_c++4.%s' % SHLIB_EXT],
+    'dirs': [],
+}
+
+moduleclass = 'data'