Skip to content

Commit

Permalink
Merge pull request easybuilders#22106 from Micket/20250102174552_new_…
Browse files Browse the repository at this point in the history
…pr_GMP630

{tools}[GCCcore/14.2.0] GMP v6.3.0, cURL v8.11.1, libarchive v3.7.7, ...
  • Loading branch information
branfosj authored Jan 3, 2025
2 parents e33ea2c + 68eace5 commit 0088d5e
Show file tree
Hide file tree
Showing 9 changed files with 316 additions and 0 deletions.
30 changes: 30 additions & 0 deletions easybuild/easyconfigs/c/CMake/CMake-3.31.3-GCCcore-14.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name = 'CMake'
version = '3.31.3'

homepage = 'https://www.cmake.org'

description = """
CMake, the cross-platform, open-source build system. CMake is a family of
tools designed to build, test and package software.
"""

toolchain = {'name': 'GCCcore', 'version': '14.2.0'}

source_urls = ['https://www.cmake.org/files/v%(version_major_minor)s']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['fac45bc6d410b49b3113ab866074888d6c9e9dc81a141874446eb239ac38cb87']

builddependencies = [
('binutils', '2.42'),
]

dependencies = [
('ncurses', '6.5'),
('zlib', '1.3.1'),
('bzip2', '1.0.8'),
('cURL', '8.11.1'),
('libarchive', '3.7.7'),
('OpenSSL', '3', '', SYSTEM),
]

moduleclass = 'devel'
45 changes: 45 additions & 0 deletions easybuild/easyconfigs/c/cURL/cURL-8.11.1-GCCcore-14.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
easyblock = 'ConfigureMake'

name = 'cURL'
version = '8.11.1'

homepage = 'https://curl.haxx.se'

description = """
libcurl is a free and easy-to-use client-side URL transfer library,
supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP,
LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP.
libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP
form based upload, proxies, cookies, user+password authentication (Basic,
Digest, NTLM, Negotiate, Kerberos), file transfer resume, http proxy tunneling
and more.
"""

toolchain = {'name': 'GCCcore', 'version': '14.2.0'}

source_urls = ['https://curl.haxx.se/download/']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['a889ac9dbba3644271bd9d1302b5c22a088893719b72be3487bc3d401e5c4e80']

builddependencies = [
('binutils', '2.42'),
('pkgconf', '2.3.0'),
]

dependencies = [
('zlib', '1.3.1'),
('libpsl', '0.21.5'),
('OpenSSL', '3', '', SYSTEM),
]

configopts = '--with-zlib '
configopts += '--with-ssl=$EBROOTOPENSSL '

modextravars = {'CURL_INCLUDES': '%(installdir)s/include'}

sanity_check_paths = {
'files': ['bin/curl', 'lib/libcurl.a', 'lib/libcurl.%s' % SHLIB_EXT],
'dirs': ['lib/pkgconfig', 'include/curl'],
}

moduleclass = 'tools'
40 changes: 40 additions & 0 deletions easybuild/easyconfigs/g/GMP/GMP-6.3.0-GCCcore-14.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
easyblock = 'ConfigureMake'

name = 'GMP'
version = '6.3.0'

homepage = 'https://gmplib.org/'
description = """
GMP is a free library for arbitrary precision arithmetic, operating on signed
integers, rational numbers, and floating point numbers.
"""

toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
toolchainopts = {'precise': True, 'pic': True}

source_urls = ['https://ftp.gnu.org/gnu/%(namelower)s']
sources = [SOURCELOWER_TAR_BZ2]
checksums = ['ac28211a7cfb609bae2e2c8d6058d66c8fe96434f740cf6fe2e47b000d1c20cb']

builddependencies = [
('Autotools', '20240712'),
('binutils', '2.42'),
]

# enable C++ interface
configopts = '--enable-cxx'

# copy libgmp.so* to <installdir>/lib to make sure that it is picked up by tests
# when EasyBuild is configured with --rpath, and clean up afterwards (let 'make install' do its job)
pretestopts = "mkdir -p %%(installdir)s/lib && cp -a .libs/libgmp.%s* %%(installdir)s/lib && " % SHLIB_EXT
testopts = " && rm -r %(installdir)s/lib"

runtest = 'check'

sanity_check_paths = {
'files': ['lib/lib%s.%s' % (x, e) for x in ['gmp', 'gmpxx'] for e in [SHLIB_EXT, 'a']] +
['include/gmp.h', 'include/gmpxx.h'],
'dirs': ['share'],
}

moduleclass = 'math'
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
easyblock = 'ConfigureMake'

name = 'libarchive'
version = '3.7.7'

homepage = 'https://www.libarchive.org/'

description = """
Multi-format archive and compression library
"""

toolchain = {'name': 'GCCcore', 'version': '14.2.0'}

source_urls = ['https://www.libarchive.org/downloads/']
sources = [SOURCE_TAR_GZ]
checksums = ['4cc540a3e9a1eebdefa1045d2e4184831100667e6d7d5b315bb1cbc951f8ddff']

builddependencies = [
('binutils', '2.42'),
]

dependencies = [
('zlib', '1.3.1'),
('XZ', '5.6.3'),
('OpenSSL', '3', '', SYSTEM),
]

sanity_check_paths = {
'files': ['include/archive.h', 'lib/libarchive.%s' % SHLIB_EXT],
'dirs': ['bin', 'share/man/man3'],
}

moduleclass = 'tools'
23 changes: 23 additions & 0 deletions easybuild/easyconfigs/l/libiconv/libiconv-1.18-GCCcore-14.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
easyblock = 'ConfigureMake'

name = 'libiconv'
version = '1.18'

homepage = 'https://www.gnu.org/software/libiconv'
description = "Libiconv converts from one character encoding to another through Unicode conversion"

toolchain = {'name': 'GCCcore', 'version': '14.2.0'}

source_urls = [GNU_SOURCE]
sources = [SOURCE_TAR_GZ]
checksums = ['3b08f5f4f9b4eb82f151a7040bfd6fe6c6fb922efe4b1659c66ea933276965e8']

builddependencies = [('binutils', '2.42')]

sanity_check_paths = {
'files': ['bin/iconv', 'include/iconv.h', 'include/libcharset.h', 'include/localcharset.h',
'lib/libcharset.a', 'lib/libcharset.%s' % SHLIB_EXT, 'lib/libiconv.%s' % SHLIB_EXT],
'dirs': ['share'],
}

moduleclass = 'lib'
27 changes: 27 additions & 0 deletions easybuild/easyconfigs/l/libidn2/libidn2-2.3.7-GCCcore-14.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
easyblock = 'ConfigureMake'

name = 'libidn2'
version = '2.3.7'

homepage = 'http://www.gnu.org/software/%(name)s'
description = "Libidn2 implements the revised algorithm for internationalized domain names called IDNA2008/TR46."

toolchain = {'name': 'GCCcore', 'version': '14.2.0'}

source_urls = ['https://ftp.gnu.org/gnu/libidn/']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['4c21a791b610b9519b9d0e12b8097bf2f359b12f8dd92647611a929e6bfd7d64']

builddependencies = [
('binutils', '2.42'),
]


sanity_check_paths = {
'files': ['bin/idn2', 'lib/%s.%s' % (name, SHLIB_EXT)],
'dirs': ['include'],
}

sanity_check_commands = ['idn2 --help']

moduleclass = 'lib'
32 changes: 32 additions & 0 deletions easybuild/easyconfigs/l/libpsl/libpsl-0.21.5-GCCcore-14.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
easyblock = 'ConfigureMake'

name = 'libpsl'
version = '0.21.5'

homepage = 'https://rockdaboot.github.io/libpsl'
description = "C library for the Public Suffix List"

toolchain = {'name': 'GCCcore', 'version': '14.2.0'}

source_urls = ['https://github.com/rockdaboot/libpsl/releases/download/%(version)s']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['1dcc9ceae8b128f3c0b3f654decd0e1e891afc6ff81098f227ef260449dae208']

builddependencies = [
('binutils', '2.42'),
('Python', '3.13.1'),
]

dependencies = [
('libidn2', '2.3.7'),
('libunistring', '1.3'),
]

sanity_check_commands = [('psl --version')]

sanity_check_paths = {
'files': ['bin/psl', 'lib/libpsl.a'],
'dirs': []
}

moduleclass = 'lib'
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
easyblock = 'ConfigureMake'

name = 'libunistring'
version = '1.3'

homepage = 'https://www.gnu.org/software/libunistring/'

description = """This library provides functions for manipulating Unicode strings and for
manipulating C strings according to the Unicode standard."""

toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
toolchainopts = {'pic': True}

source_urls = [GNU_SOURCE]
sources = [SOURCELOWER_TAR_XZ]
checksums = ['f245786c831d25150f3dfb4317cda1acc5e3f79a5da4ad073ddca58886569527']

builddependencies = [
('binutils', '2.42'),
]

dependencies = [
('libiconv', '1.18'),
]

parallel = 1

sanity_check_paths = {
'files': ['lib/libunistring.a', 'lib/libunistring.%s' % SHLIB_EXT] +
['include/uni%s.h' % x for x in ['case', 'conv', 'ctype', 'lbrk', 'name', 'norm',
'stdio', 'str', 'types', 'wbrk', 'width']],
'dirs': ['include/unistring'],
}

moduleclass = 'lib'
51 changes: 51 additions & 0 deletions easybuild/easyconfigs/z/Z3/Z3-4.13.4-GCCcore-14.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
easyblock = 'PythonBundle'

name = 'Z3'
version = '4.13.4'

homepage = 'https://github.com/Z3Prover/z3'
description = """Z3 is a theorem prover from Microsoft Research with support for bitvectors,
booleans, arrays, floating point numbers, strings, and other data types. This
module includes z3-solver, the Python interface of Z3.
"""

toolchain = {'name': 'GCCcore', 'version': '14.2.0'}

builddependencies = [
('CMake', '3.31.3'),
('binutils', '2.42'),
]
dependencies = [
('Python', '3.13.1'),
('GMP', '6.3.0'),
]

use_pip = True


_fix_parallelism = """sed -i 's/str(multiprocessing.cpu_count())/"%(parallel)s"/' setup.py && """
_enable_gmp = """sed -i "s/Z3_USE_LIB_GMP.*/Z3_USE_LIB_GMP' : True,/" setup.py && """

exts_list = [
('z3_solver', version + '.0', {
'modulename': 'z3',
'checksums': ['66944689398d19f831f94524e95e99961d998afa27cfef1918a5a441029ea73f'],
'preinstallopts': _fix_parallelism + _enable_gmp,
}),
]

# make Z3 headers and libraries accessible in their usual location
local_z3_site_path = "lib/python%(pyshortver)s/site-packages/%(namelower)s"
postinstallcmds = [
'ln -s %s/include "%%(installdir)s/include"' % local_z3_site_path,
'cd "%%(installdir)s"; for lib in %s/lib/*; do ln -s ../$lib lib/$(basename $lib); done' % local_z3_site_path
]

sanity_pip_check = True

sanity_check_paths = {
'files': ['bin/z3', 'include/z3_api.h', 'lib/libz3.' + SHLIB_EXT],
'dirs': ['include', 'lib/python%(pyshortver)s/site-packages'],
}

moduleclass = 'tools'

0 comments on commit 0088d5e

Please sign in to comment.