Commit c754a44a authored by Stepan Nassyr's avatar Stepan Nassyr
Browse files

armlinux 21.1, more packages and fixes

parent c4cff956
# This file is part of JSC's public easybuild repository (https://github.com/easybuilders/jsc)
easyblock = 'ConfigureMake'
name = 'APR-util'
version = '1.6.1'
homepage = 'http://apr.apache.org/'
description = """
Apache Portable Runtime (APR) util libraries.
"""
toolchain = {'name': 'armlinux', 'version': '21.1'}
source_urls = ['http://archive.apache.org/dist/apr/']
sources = [SOURCELOWER_TAR_GZ]
builddependencies = [
('binutils', '2.36.1'),
]
dependencies = [
('APR', '1.7.0'),
('SQLite', '3.35.3'),
('expat', '2.4.2'),
]
configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config --with-sqlite3=$EBROOTSQLITE --with-expat=$EBROOTEXPAT "
sanity_check_paths = {
'files': ["bin/apu-1-config", "lib/libaprutil-1.%s" % SHLIB_EXT, "lib/libaprutil-1.a"],
'dirs': ["include/apr-1"],
}
parallel = 1
moduleclass = 'tools'
# This file is part of JSC's public easybuild repository (https://github.com/easybuilders/jsc)
easyblock = 'ConfigureMake'
name = 'APR'
version = '1.7.0'
homepage = 'http://apr.apache.org/'
description = """
Apache Portable Runtime (APR) libraries.
"""
toolchain = {'name': 'armlinux', 'version': '21.1'}
source_urls = ['http://archive.apache.org/dist/apr/']
sources = [SOURCELOWER_TAR_GZ]
builddependencies = [
('binutils', '2.36.1')
]
sanity_check_paths = {
'files': ["bin/apr-1-config", "lib/libapr-1.%s" % SHLIB_EXT, "lib/libapr-1.a"],
'dirs': ["include/apr-1"],
}
moduleclass = 'tools'
# This file is part of JSC's public easybuild repository (https://github.com/easybuilders/jsc)
easyblock = 'MesonNinja'
name = 'AT-SPI2-ATK'
version = '2.38.0'
homepage = 'https://developer.gnome.org/ATK/stable/'
description = """
ATK provides the set of accessibility interfaces that are implemented by other
toolkits and applications. Using the ATK interfaces, accessibility tools have
full access to view and control running applications.
"""
toolchain = {'name': 'armlinux', 'version': '21.1'}
source_urls = [FTPGNOME_SOURCE]
sources = [SOURCELOWER_TAR_XZ]
checksums = ['cfa008a5af822b36ae6287f18182c40c91dd699c55faa38605881ed175ca464f']
builddependencies = [
('binutils', '2.36.1'),
('GObject-Introspection', '1.68.0'),
('Meson', '0.57.1', '-Python-3.9.4'),
('Ninja', '1.10.2'),
('pkg-config', '0.29.2'),
]
dependencies = [
('DBus', '1.13.18'),
('ATK', '2.36.0'),
('AT-SPI2-core', '2.40.0')
]
modextrapaths = {
'XDG_DATA_DIRS': 'share',
}
sanity_check_paths = {
'files': ['lib/libatk-bridge-2.0.%s' % SHLIB_EXT],
'dirs': [],
}
moduleclass = 'vis'
# This file is part of JSC's public easybuild repository (https://github.com/easybuilders/jsc)
easyblock = 'MesonNinja'
name = 'AT-SPI2-core'
version = '2.40.0'
homepage = 'https://developer.gnome.org/ATK/stable/'
description = """
ATK provides the set of accessibility interfaces that are implemented by other
toolkits and applications. Using the ATK interfaces, accessibility tools have
full access to view and control running applications.
"""
toolchain = {'name': 'armlinux', 'version': '21.1'}
source_urls = [FTPGNOME_SOURCE]
sources = [SOURCELOWER_TAR_XZ]
checksums = ['4196a7d30a0051e52a67b8ce4283fe79ae5e4e14a725719934565adf1d333429']
# See https://gitlab.gnome.org/GNOME/at-spi2-core/merge_requests/9/diffs
# patches = ['atspi_meson_fullpath.patch']
builddependencies = [
('binutils', '2.36.1'),
('GObject-Introspection', '1.68.0'),
('Meson', '0.57.1', '-Python-3.9.4'),
('Ninja', '1.10.2'),
('pkg-config', '0.29.2'),
]
dependencies = [
('DBus', '1.13.18'),
('intltool', '0.51.0', '-Perl-5.32.1'),
('X11', '20210331'),
]
# without this, pkg-config can't find gio-2.0, because libselinux.pc is not found at the end of the dependency chain
preconfigopts = 'PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib64/pkgconfig '
modextrapaths = {
'GI_TYPELIB_PATH': 'lib64/girepository-1.0',
'XDG_DATA_DIRS': 'share',
}
sanity_check_paths = {
'files': ['lib64/libatspi.%s' % SHLIB_EXT],
'dirs': [],
}
moduleclass = 'vis'
# This file is part of JSC's public easybuild repository (https://github.com/easybuilders/jsc)
easyblock = 'MesonNinja'
name = 'ATK'
version = '2.36.0'
homepage = 'https://developer.gnome.org/ATK/stable/'
description = """
ATK provides the set of accessibility interfaces that are implemented by other
toolkits and applications. Using the ATK interfaces, accessibility tools have
full access to view and control running applications.
"""
toolchain = {'name': 'armlinux', 'version': '21.1'}
source_urls = [FTPGNOME_SOURCE]
sources = [SOURCELOWER_TAR_XZ]
checksums = ['fb76247e369402be23f1f5c65d38a9639c1164d934e40f6a9cf3c9e96b652788']
builddependencies = [
('binutils', '2.36.1'),
('GObject-Introspection', '1.68.0'),
('Meson', '0.57.1', '-Python-3.9.4'),
('Ninja', '1.10.2')
]
dependencies = [
('GLib', '2.68.0'),
]
modextrapaths = {
'GI_TYPELIB_PATH': 'lib64/girepository-1.0',
'XDG_DATA_DIRS': 'share',
}
sanity_check_paths = {
'files': ['lib64/libatk-1.0.%s' % SHLIB_EXT],
'dirs': [],
}
moduleclass = 'vis'
# This is a thin wrapper that depends on Modules already being installed and in the MODULEPATH
import os as local_os
easyblock = 'Bundle'
name = 'ArmBLAS'
version = '21.1'
homepage = 'http://www.arm.com'
description = """
ARM performance libraries as BLAS and LAPACK libraries
"""
toolchain = {'version': version, 'name': 'armlinux'}
altroot = 'armpl'
dependencies = [
('armpl-AArch64/%s.0' % version, EXTERNAL_MODULE)
]
moduleclass = 'numlib'
# This is a thin wrapper that depends on Modules already being installed and in the MODULEPATH
import os as local_os
easyblock = 'Bundle'
name = 'ArmFFT'
version = '21.1'
homepage = 'http://www.arm.com'
description = """
ARM performance libraries as FFT library
"""
toolchain = {'version': version, 'name': 'armlinux'}
altroot = 'armpl'
dependencies = [
('armpl-AArch64/%s.0' % version, EXTERNAL_MODULE)
]
moduleclass = 'numlib'
# This file is part of JSC's public easybuild repository (https://github.com/easybuilders/jsc)
easyblock = 'ConfigureMake'
name = 'Autoconf'
version = '2.71'
homepage = 'http://www.gnu.org/software/autoconf/'
description = """Autoconf is an extensible package of M4 macros that produce shell scripts
to automatically configure software source code packages. These scripts can adapt the
packages to many kinds of UNIX-like systems without manual user intervention. Autoconf
creates a configuration script for a package from a template file that lists the
operating system features that the package can use, in the form of M4 macro calls.
"""
toolchain = {'name': 'armlinux', 'version': '21.1'}
source_urls = [GNU_SOURCE]
sources = [SOURCELOWER_TAR_GZ]
checksums = ['431075ad0bf529ef13cb41e9042c542381103e80015686222b8a9d4abef42a1c']
builddependencies = [
('binutils', '2.36.1')
]
dependencies = [
('M4', '1.4.18'),
]
sanity_check_paths = {
'files': ["bin/%s" % x for x in ["autoconf", "autoheader", "autom4te", "autoreconf", "autoscan",
"autoupdate", "ifnames"]],
'dirs': [],
}
moduleclass = 'devel'
# This file is part of JSC's public easybuild repository (https://github.com/easybuilders/jsc)
##
# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild
#
# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA
# Authors:: Fotis Georgatos <fotis@cern.ch>
# License:: MIT/GPL
# $Id$
#
# This work implements a part of the HPCBIOS project and is a component of the policy:
# http://hpcbios.readthedocs.org/en/latest/
##
easyblock = 'ConfigureMake'
name = 'Automake'
version = "1.16.3"
homepage = 'http://www.gnu.org/software/automake/automake.html'
description = """
Automake: GNU Standards-compliant Makefile generator
"""
toolchain = {'name': 'armlinux', 'version': '21.1'}
source_urls = [GNU_SOURCE]
sources = [SOURCELOWER_TAR_GZ]
checksums = ['ce010788b51f64511a1e9bb2a1ec626037c6d0e7ede32c1c103611b9d3cba65f']
builddependencies = [('binutils', '2.36.1')]
dependencies = [('Autoconf', '2.71')]
sanity_check_paths = {
'files': ['bin/automake', 'bin/aclocal'],
'dirs': []
}
moduleclass = 'devel'
# This file is part of JSC's public easybuild repository (https://github.com/easybuilders/jsc)
easyblock = 'Bundle'
name = 'Autotools'
version = '20210330' # date of the most recent change
homepage = 'http://autotools.io'
description = """
This bundle collect the standard GNU build tools: Autoconf, Automake and libtool
"""
toolchain = {'name': 'armlinux', 'version': '21.1'}
dependencies = [
('Autoconf', '2.71'), # 20120424
('Automake', '1.16.3'), # 20180311
('libtool', '2.4.6'), # 20150215
]
moduleclass = 'devel'
easyblock = 'CMakeNinja'
name = 'abseil-cpp'
version = '20210324.1'
homepage = 'https://abseil.io/'
description = "Abseil is an open source collection of C++ libraries drawn from the most fundamental pieces of Google’s internal codebase."
toolchain = {'name': 'armlinux', 'version': '21.1'}
toolchainopts = {'pic' : True}
github_account = 'abseil'
source_urls = [GITHUB_SOURCE]
sources = ['%(version)s.tar.gz']
checksums = ['441db7c09a0565376ecacf0085b2d4c2bbedde6115d7773551bc116212c2a8d6']
builddependencies = [
('binutils', '2.36.1'),
('CMake', '3.20.0'),
('Ninja', '1.10.2'),
]
configopts = "-DABSL_ENABLE_INSTALL=ON "
# Only check a subset of the files
sanity_check_paths = {
'files': ['include/absl/base/%s.h' % x for x in ['attributes','call_once','casts','config','const_init','dynamic_annotations','log_severity','macros','optimization','options','policy_checks','port','thread_annotations']]+
['lib/libabsl_%s.a' % x for x in ['base','city','flags','hash','log_severity','raw_hash_set','status','strings','time']]+
['lib/pkgconfig/absl_%s.pc' % x for x in ['any','base','config','flags','hash','log_severity','strings','time']]+
['lib/cmake/absl/absl%s.cmake' % x for x in ['Config','ConfigVersion','Targets','Targets-release']],
'dirs': ['include/absl/%s' % x for x in ['algorithm','base','cleanup','container','debugging','flags','functional','hash','memory','meta','numeric','random','status','strings','synchronization','time','types','utility']]
}
moduleclass = 'lib'
easyblock = "Toolchain"
name = 'alompi'
version = '21.1'
homepage = '(none)'
description = """ARM compiler for HPC based compiler toolchain,
including OpenMPI for MPI support.
"""
toolchain = SYSTEM
dependencies = [
('armlinux', version),
('OpenMPI', '4.1.2', '', ('armlinux', version)),
]
moduleclass = 'toolchain'
easyblock = 'Toolchain'
name = 'alplompi'
version = '21.1'
homepage = 'https://developer.arm.com/tools-and-software/server-and-hpc/arm-architecture-tools/arm-allinea-studio/download'
description = """ARM compiler for Linux based compiler toolchain, including
OpenMPI for MPI support, and ARM Performance Libraries."""
toolchain = SYSTEM
dependencies = [
('armlinux', version),
('OpenMPI', '4.1.2', '', ('armlinux', version)),
('ArmBLAS', version, '', ('armlinux', version)),
('ArmFFT', version, '', ('armlinux', version)),
('ScaLAPACK', '2.1.0', '-ArmBLAS-%s' % version, ('alompi', '21.1')),
]
moduleclass = 'toolchain'
# Installs the Arm Linux compiler. The installed modulefiles are then loaded by armlinux
easyblock = 'Binary'
name = 'armlinux-install'
version = '21.1'
homepage = 'http://www.arm.com'
description = """
ARM Compiler for Linux (armclang, armclang++, armflang)
"""
toolchain = SYSTEM
sources = [{
'source_urls' : ['https://developer.arm.com/-/media/Files/downloads/hpc/arm-allinea-studio/%s/ACfL/' % version.replace('.','-')],
'filename' : 'arm-compiler-for-linux_%(version)s_RHEL-8_%(arch)s.tar'
},
{
'filename' : 'armlinux-module-fix-dependencies-for-lmod.patch',
'extract_cmd' : 'cp %s %(builddir)s'
}
]
#patches = []
# Don't patch sources, patch as postinstallcmd instead
#skipsteps=['patch']
extract_sources = True
install_cmd = '%(builddir)s/arm-compiler-for-linux_%(version)s_RHEL-8/arm-compiler-for-linux_%(version)s_RHEL-8.sh -a -i %(installdir)s'
# Patch modulefiles so they work with LMod
postinstallcmds = [
'cd %(installdir)s/modulefiles && patch -p1 < %(builddir)s/armlinux-module-fix-dependencies-for-lmod.patch'
]
sanity_check_paths = {
'files' : ['arm-linux-compiler-%%(version)s_Generic-AArch64_RHEL-8_%%(arch)s-linux/bin/%s' % bin for bin in ['armclang','armclang++','armflang']],
'dirs' : [
'arm-linux-compiler-%(version)s_Generic-AArch64_RHEL-8_%(arch)s-linux',
'armpl-%(version)s.0_AArch64_RHEL-8_arm-linux-compiler_%(arch)s-linux',
'modulefiles',
]
}
modextrapaths = {
'MODULEPATH' : 'modulefiles'
}
moduleclass = 'compiler'
diff -urN modulefiles-unpatched/arm21/21.1 modulefiles/arm21/21.1
--- modulefiles-unpatched/arm21/21.1 2022-02-09 14:34:38.930433653 +0000
+++ modulefiles/arm21/21.1 2022-02-09 14:35:39.140823675 +0000
@@ -45,11 +45,7 @@
# Pull in some utility functions
source $module_prefix/moduleglobals/compiler_functions/21.1
-# Load modules on which this module depends
-set dependencies [list \
- binutils/10.2.0 \
- ]
-depends-on $dependencies
+depends-on binutils/10.2.0
# Install directory of this package
set package_prefix $install_prefix/arm-linux-compiler-21.1_Generic-AArch64_RHEL-8_aarch64-linux
diff -urN modulefiles-unpatched/gnu10/10.2.0 modulefiles/gnu10/10.2.0
--- modulefiles-unpatched/gnu10/10.2.0 2022-02-09 14:34:38.930433653 +0000
+++ modulefiles/gnu10/10.2.0 2022-02-09 14:36:13.701047544 +0000
@@ -46,10 +46,7 @@
source $module_prefix/moduleglobals/gcc_functions/10.2.0
# Load modules on which this module depends
-set dependencies [list \
- binutils/10.2.0 \
- ]
-depends-on $dependencies
+depends-on binutils/10.2.0
# Install directory of this package
set package_prefix $install_prefix/gcc-10.2.0_Generic-AArch64_RHEL-8_aarch64-linux
# Shim Easyconfig loading the actual modules
easyblock = 'Bundle'
name = 'armlinux'
version = '21.1'
homepage = 'http://www.arm.com'
description = """
ARM Compiler for Linux (armclang, armclang++, armflang)
"""
toolchain = SYSTEM
dependencies = [
('armlinux-install', version),
('arm21/%(version)s', EXTERNAL_MODULE)
]
moduleclass = 'compiler'
# This file is part of JSC's public easybuild repository (https://github.com/easybuilders/jsc)
easyblock = 'ConfigureMake'
name = 'Bison'
version = '3.7.6'
homepage = 'http://www.gnu.org/software/bison'
description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar
into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.
"""
toolchain = {'name': 'armlinux', 'version': '21.1'}
source_urls = [GNU_SOURCE]
sources = [SOURCELOWER_TAR_GZ]
checksums = ['69dc0bb46ea8fc307d4ca1e0b61c8c355eb207d0b0c69f4f8462328e74d7b9ea']
builddependencies = [
('M4', '1.4.18'),
# use same binutils version that was used when building GCCcore toolchain
('binutils', '2.36.1', '', True),
]
sanity_check_paths = {
'files': ["bin/%s" % x for x in ["bison", "yacc"]] + ["lib/liby.a"],
'dirs': [],
}
moduleclass = 'lang'
# This file is part of JSC's public easybuild repository (https://github.com/easybuilders/jsc)
name = 'Boost'
version = '1.75.0'
versionsuffix = '-Python-%(pyver)s'
homepage = 'http://www.boost.org/'
description = """Boost provides free peer-reviewed portable C++ source libraries."""
toolchain = {'name': 'alplompi', 'version': '21.1'}
toolchainopts = {'pic': True, 'usempi': True}
source_urls = ["https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/"]
sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))]
patches = [
# No 'm' for 3.8.0
# 'Boost-1.65.1_fix-Python3.patch',
'Boost-1.75.0_fix-armclang.patch'
]
checksums = ['aeb26f80e80945e82ee93e5939baebdca47b9dee80a07d3144be1e1a6a66dd6a']
dependencies = [
('bzip2', '1.0.8'),
('zlib', '1.2.11'),
('Python', '3.9.4'),
('ICU', '68.2'),
]
toolset='clang'
# also build boost_mpi
boost_mpi = True
moduleclass = 'devel'
diff --color -urN boost_1_75_0-unpatched/tools/build/src/tools/common.jam boost_1_75_0/tools/build/src/tools/common.jam
--- boost_1_75_0-unpatched/tools/build/src/tools/common.jam 2022-02-11 14:59:09.805527528 +0000
+++ boost_1_75_0/tools/build/src/tools/common.jam 2022-02-11 15:00:22.315977660 +0000
@@ -974,16 +974,16 @@
}
# From GCC 5, versioning changes and minor becomes patch
- if ( $(tag) = gcc || $(tag) = mgw ) && $(version[1]) && [ numbers.less 4 $(version[1]) ]
- {
- version = $(version[1]) ;