Selaa lähdekoodia

Improvements and final ELIC intel-2020b

Pierre-Yves Barriat 4 vuotta sitten
vanhempi
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
     # this version, it's nice to have an up to date openssl for security
     # reasons
-    # ('OpenSSL', '1.1.1e'),
+    ('OpenSSL', '1.1.1h'),
 ]
 
 osdependencies = [OS_PKG_OPENSSL_DEV]
@@ -2730,6 +2730,18 @@ exts_list = [
     ('DescTools', '0.99.38', {
         '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'

+ 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,
  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}
 
 source_urls = ['ftp://ftp.unidata.ucar.edu/pub/udunits']
 sources = [SOURCELOWER_TAR_GZ]
+patches = ['UDUNITS-1_yacc.patch']
 
-buildopts = 'CFLAGS="-Df2cFortran -fPIC"'
+buildopts = 'CFLAGS="$CFLAGS -Df2cFortran" '
 
 builddependencies = [
-    ('Bison', '3.7.1'),
+    ('binutils', '2.35'),
+    ('Bison', '3.7.1'), 
     ('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'),
     ('HDF5', '1.10.7'),
     ('netCDF', '4.7.4'),
-    ('YAXT', '0.6.2'),
+    ('YAXT', '0.9.0'),
     ('ecCodes', '2.19.1'),
     ('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),
     ('GDAL', '3.2.0', versionsuffix),
     ('NCL', '6.6.2'),
-    ('CDO', '1.9.9'),
+    #('CDO', '1.9.9'),
     ('NCO', '4.9.5'),
     ('ncview', '2.1.7'),
     ('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/']
 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 = [
     ('Python', '3.8.6'),
@@ -33,14 +36,14 @@ dependencies = [
     ('PCRE', '8.44'),
     ('PROJ', '7.2.0'),
     ('libgeotiff', '1.6.0'),
-    ('SciPy-bundle', '2020.11', versionsuffix),
+    ('SciPy-bundle', '2020.11'),
     ('HDF5', '1.10.7'),
 ]
 
 preconfigopts = "sed -e 's/-llapack/\$LIBLAPACK/g' -i.eb configure && "
 configopts = '--with-expat=$EBROOTEXPAT --with-libz=$EBROOTLIBZ'
 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-libtiff=$EBROOTLIBTIFF --with-pcre=$EBROOTPCRE --with-python=$EBROOTPYTHON/bin/python'
 configopts += ' --with-libgeotiff=$EBROOTLIBGEOTIFF'
@@ -54,6 +57,6 @@ sanity_check_paths = {
     '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'

+ 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'
 version = '2020.11'
-versionsuffix = '-Python-3.8.2'
 
 homepage = 'https://python.org/'
 description = "Bundle of Python packages for scientific software"
@@ -12,7 +11,7 @@ toolchainopts = {'pic': True, 'lowopt': True}
 
 dependencies = [
     ('Python', '3.8.6'),
-    ('pybind11', '2.6.0', versionsuffix),  # required by scipy
+    ('pybind11', '2.6.0'),  # required by scipy
 ]
 
 use_pip = True
@@ -25,17 +24,23 @@ exts_list = [
         'checksums': ['06776c245b5eb25011040f94779fda6bbfa9def72074672af2e79a5e6bce8b38'],
     }),
     ('numpy', '1.19.4', {
+        'patches': ['numpy-1.18.2-mkl.patch'], 
         'source_tmpl': '%(name)s-%(version)s.zip',
-        'checksums': ['141ec3a3300ab89c7f2b0775289954d193cc8edb621ea05f99db9cb181530512'],
+        'checksums': [
+            '141ec3a3300ab89c7f2b0775289954d193cc8edb621ea05f99db9cb181530512',
+            'ea25ad5c0148c1398d282f0424e642fb9815a1a80f4512659b018e2adc378bcf',  # numpy-1.18.2-mkl.patch
+        ],
     }),
     ('scipy', '1.5.4', {
-        'checksums': ['4a453d5e5689de62e5d38edf40af3f17560bfd63c9c5bd228c18c1f99afa155b'],
+        'checksums': [
+            '4a453d5e5689de62e5d38edf40af3f17560bfd63c9c5bd228c18c1f99afa155b',
+        ],
     }),
     ('mpi4py', '3.0.3', {
         'checksums': ['012d716c8b9ed1e513fcc4b18e5af16a8791f51e6d1716baccf988ad355c5a1f'],
     }),
-    ('pandas', '1.1.4', {
-        'checksums': ['a979d0404b135c63954dea79e6246c45dd45371a88631cdbb4877d844e6de3b6'],
+    ('pandas', '1.0.3', {
+        'checksums': ['32f42e322fb903d0e189a4c10b75ba70d90958cc4f66a1781ed027f1a1d14586'],
     }),
     ('mpmath', '1.1.0', {
         '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'
 
 name = 'YAXT'
-version = '0.6.2'
+version = '0.9.0'
 
 homepage = 'https://www.dkrz.de/redmine/projects/yaxt'
 description = "Yet Another eXchange Tool"
 
 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]
-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 = {
     '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 = [
     ('Python', '3.8.6'),
-    ('SciPy-bundle', '2020.11', versionsuffix),
+    ('libjpeg-turbo', '2.0.5'),
+    ('SciPy-bundle', '2020.11'),
     ('libpng', '1.6.37'),
+    ('zlib', '1.2.11'),
+    ('LibTIFF', '4.1.0'),
     ('freetype', '2.10.3'),
     ('Tkinter', '%(pyver)s'),
+    ('Pillow', '8.0.1', versionsuffix),
 ]
 
 use_pip = True
@@ -32,20 +36,22 @@ exts_list = [
         'modulename': 'cycler',
         'source_tmpl': 'cycler-%(version)s.tar.gz',
         'source_urls': ['https://pypi.python.org/packages/source/C/Cycler'],
-        'checksums': ['cd7b2d1018258d7247a71425e9f26463dfb444d411c39569972f4ce586b0c9d8'],
     }),
     ('kiwisolver', '1.1.0', {
         'source_urls': ['https://pypi.python.org/packages/source/k/kiwisolver'],
-        'checksums': ['53eaed412477c836e1b9522c19858a8557d6e595077830146182225613b11a75'],
     }),
     (name, version, {
         'prebuildopts': "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'],
-        'checksums': ['ffe2f9cdcea1086fc414e82f42271ecf1976700b8edd16ca9d376189c6d93aee'],
     }),
 ]
 
+postinstallcmds = [
+    "cd %(installdir)s && " +
+    'python3 -m pip install --upgrade Pillow '
+]
+
 sanity_check_commands = [
     """python -c 'import matplotlib; matplotlib.use("Agg"); import matplotlib.pyplot' """,
     "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'