From 811c08863307133fe74ce214b22075665dc36672 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Thu, 2 Jan 2025 17:45:54 +0000 Subject: [PATCH 1/3] adding easyconfigs: GMP-6.3.0-GCCcore-14.2.0.eb, cURL-8.11.1-GCCcore-14.2.0.eb, libarchive-3.7.7-GCCcore-14.2.0.eb, CMake-3.31.3-GCCcore-14.2.0.eb, Z3-4.13.4-GCCcore-14.2.0.eb --- .../c/CMake/CMake-3.31.3-GCCcore-14.2.0.eb | 30 ++++++++++++ .../c/cURL/cURL-8.11.1-GCCcore-14.2.0.eb | 43 +++++++++++++++++ .../g/GMP/GMP-6.3.0-GCCcore-14.2.0.eb | 40 ++++++++++++++++ .../libarchive-3.7.7-GCCcore-14.2.0.eb | 33 +++++++++++++ .../z/Z3/Z3-4.13.4-GCCcore-14.2.0.eb | 46 +++++++++++++++++++ 5 files changed, 192 insertions(+) create mode 100644 easybuild/easyconfigs/c/CMake/CMake-3.31.3-GCCcore-14.2.0.eb create mode 100644 easybuild/easyconfigs/c/cURL/cURL-8.11.1-GCCcore-14.2.0.eb create mode 100644 easybuild/easyconfigs/g/GMP/GMP-6.3.0-GCCcore-14.2.0.eb create mode 100644 easybuild/easyconfigs/l/libarchive/libarchive-3.7.7-GCCcore-14.2.0.eb create mode 100644 easybuild/easyconfigs/z/Z3/Z3-4.13.4-GCCcore-14.2.0.eb diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.31.3-GCCcore-14.2.0.eb b/easybuild/easyconfigs/c/CMake/CMake-3.31.3-GCCcore-14.2.0.eb new file mode 100644 index 00000000000..85d409561a1 --- /dev/null +++ b/easybuild/easyconfigs/c/CMake/CMake-3.31.3-GCCcore-14.2.0.eb @@ -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' diff --git a/easybuild/easyconfigs/c/cURL/cURL-8.11.1-GCCcore-14.2.0.eb b/easybuild/easyconfigs/c/cURL/cURL-8.11.1-GCCcore-14.2.0.eb new file mode 100644 index 00000000000..f723318f3a1 --- /dev/null +++ b/easybuild/easyconfigs/c/cURL/cURL-8.11.1-GCCcore-14.2.0.eb @@ -0,0 +1,43 @@ +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'), +] + +dependencies = [ + ('zlib', '1.3.1'), + ('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' diff --git a/easybuild/easyconfigs/g/GMP/GMP-6.3.0-GCCcore-14.2.0.eb b/easybuild/easyconfigs/g/GMP/GMP-6.3.0-GCCcore-14.2.0.eb new file mode 100644 index 00000000000..99aa882e75c --- /dev/null +++ b/easybuild/easyconfigs/g/GMP/GMP-6.3.0-GCCcore-14.2.0.eb @@ -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 /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' diff --git a/easybuild/easyconfigs/l/libarchive/libarchive-3.7.7-GCCcore-14.2.0.eb b/easybuild/easyconfigs/l/libarchive/libarchive-3.7.7-GCCcore-14.2.0.eb new file mode 100644 index 00000000000..c7a0cf103f0 --- /dev/null +++ b/easybuild/easyconfigs/l/libarchive/libarchive-3.7.7-GCCcore-14.2.0.eb @@ -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' diff --git a/easybuild/easyconfigs/z/Z3/Z3-4.13.4-GCCcore-14.2.0.eb b/easybuild/easyconfigs/z/Z3/Z3-4.13.4-GCCcore-14.2.0.eb new file mode 100644 index 00000000000..a42ca9017d9 --- /dev/null +++ b/easybuild/easyconfigs/z/Z3/Z3-4.13.4-GCCcore-14.2.0.eb @@ -0,0 +1,46 @@ +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'), +] + +_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_check_paths = { + 'files': ['bin/z3', 'include/z3_api.h', 'lib/libz3.' + SHLIB_EXT], + 'dirs': ['include', 'lib/python%(pyshortver)s/site-packages'], +} + +moduleclass = 'tools' From 01ec5b75df0d2e1f0666a259e0f1a1313cf64424 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Thu, 2 Jan 2025 18:13:08 +0000 Subject: [PATCH 2/3] Add bunch of cURL deps --- .../c/cURL/cURL-8.11.1-GCCcore-14.2.0.eb | 2 ++ .../libiconv/libiconv-1.18-GCCcore-14.2.0.eb | 23 ++++++++++++ .../l/libidn2/libidn2-2.3.7-GCCcore-14.2.0.eb | 27 ++++++++++++++ .../l/libpsl/libpsl-0.21.5-GCCcore-14.2.0.eb | 32 +++++++++++++++++ .../libunistring-1.3-GCCcore-14.2.0.eb | 35 +++++++++++++++++++ 5 files changed, 119 insertions(+) create mode 100644 easybuild/easyconfigs/l/libiconv/libiconv-1.18-GCCcore-14.2.0.eb create mode 100644 easybuild/easyconfigs/l/libidn2/libidn2-2.3.7-GCCcore-14.2.0.eb create mode 100644 easybuild/easyconfigs/l/libpsl/libpsl-0.21.5-GCCcore-14.2.0.eb create mode 100644 easybuild/easyconfigs/l/libunistring/libunistring-1.3-GCCcore-14.2.0.eb diff --git a/easybuild/easyconfigs/c/cURL/cURL-8.11.1-GCCcore-14.2.0.eb b/easybuild/easyconfigs/c/cURL/cURL-8.11.1-GCCcore-14.2.0.eb index f723318f3a1..3255b4e3113 100644 --- a/easybuild/easyconfigs/c/cURL/cURL-8.11.1-GCCcore-14.2.0.eb +++ b/easybuild/easyconfigs/c/cURL/cURL-8.11.1-GCCcore-14.2.0.eb @@ -23,10 +23,12 @@ checksums = ['a889ac9dbba3644271bd9d1302b5c22a088893719b72be3487bc3d401e5c4e80'] builddependencies = [ ('binutils', '2.42'), + ('pkgconf', '2.3.0'), ] dependencies = [ ('zlib', '1.3.1'), + ('libpsl', '0.21.5'), ('OpenSSL', '3', '', SYSTEM), ] diff --git a/easybuild/easyconfigs/l/libiconv/libiconv-1.18-GCCcore-14.2.0.eb b/easybuild/easyconfigs/l/libiconv/libiconv-1.18-GCCcore-14.2.0.eb new file mode 100644 index 00000000000..2cb9ee7b456 --- /dev/null +++ b/easybuild/easyconfigs/l/libiconv/libiconv-1.18-GCCcore-14.2.0.eb @@ -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' diff --git a/easybuild/easyconfigs/l/libidn2/libidn2-2.3.7-GCCcore-14.2.0.eb b/easybuild/easyconfigs/l/libidn2/libidn2-2.3.7-GCCcore-14.2.0.eb new file mode 100644 index 00000000000..ff72132f5ee --- /dev/null +++ b/easybuild/easyconfigs/l/libidn2/libidn2-2.3.7-GCCcore-14.2.0.eb @@ -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' diff --git a/easybuild/easyconfigs/l/libpsl/libpsl-0.21.5-GCCcore-14.2.0.eb b/easybuild/easyconfigs/l/libpsl/libpsl-0.21.5-GCCcore-14.2.0.eb new file mode 100644 index 00000000000..0e079f84f8e --- /dev/null +++ b/easybuild/easyconfigs/l/libpsl/libpsl-0.21.5-GCCcore-14.2.0.eb @@ -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' diff --git a/easybuild/easyconfigs/l/libunistring/libunistring-1.3-GCCcore-14.2.0.eb b/easybuild/easyconfigs/l/libunistring/libunistring-1.3-GCCcore-14.2.0.eb new file mode 100644 index 00000000000..2f81c97f028 --- /dev/null +++ b/easybuild/easyconfigs/l/libunistring/libunistring-1.3-GCCcore-14.2.0.eb @@ -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' From 68eace5ca3b69b78c3fa686bba490fc19485777a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Fri, 3 Jan 2025 12:23:41 +0000 Subject: [PATCH 3/3] Use 4.9 options for pythonpackage --- easybuild/easyconfigs/z/Z3/Z3-4.13.4-GCCcore-14.2.0.eb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/easybuild/easyconfigs/z/Z3/Z3-4.13.4-GCCcore-14.2.0.eb b/easybuild/easyconfigs/z/Z3/Z3-4.13.4-GCCcore-14.2.0.eb index a42ca9017d9..60a4b16d6f3 100644 --- a/easybuild/easyconfigs/z/Z3/Z3-4.13.4-GCCcore-14.2.0.eb +++ b/easybuild/easyconfigs/z/Z3/Z3-4.13.4-GCCcore-14.2.0.eb @@ -20,6 +20,9 @@ dependencies = [ ('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 && """ @@ -38,6 +41,8 @@ postinstallcmds = [ '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'],