From 51560e74b820a67720e1b66205ff1f720d10287e Mon Sep 17 00:00:00 2001 From: Sebastian Achilles Date: Fri, 6 Sep 2024 22:35:29 +0200 Subject: [PATCH 1/2] adding easyconfigs: git-annex-10.20240731-GCCcore-13.3.0.eb, GHC-9.10.1-x86_64.eb, Stack-3.1.1-x86_64.eb --- .../easyconfigs/g/GHC/GHC-9.10.1-x86_64.eb | 82 +++++++++++++++++++ .../git-annex-10.20240731-GCCcore-13.3.0.eb | 48 +++++++++++ .../easyconfigs/s/Stack/Stack-3.1.1-x86_64.eb | 26 ++++++ 3 files changed, 156 insertions(+) create mode 100644 easybuild/easyconfigs/g/GHC/GHC-9.10.1-x86_64.eb create mode 100644 easybuild/easyconfigs/g/git-annex/git-annex-10.20240731-GCCcore-13.3.0.eb create mode 100644 easybuild/easyconfigs/s/Stack/Stack-3.1.1-x86_64.eb diff --git a/easybuild/easyconfigs/g/GHC/GHC-9.10.1-x86_64.eb b/easybuild/easyconfigs/g/GHC/GHC-9.10.1-x86_64.eb new file mode 100644 index 00000000000..d50730bb1b2 --- /dev/null +++ b/easybuild/easyconfigs/g/GHC/GHC-9.10.1-x86_64.eb @@ -0,0 +1,82 @@ +# This is a binary install that requires a './configure' and 'make install' steps for GHC. +# We pull the centos7 binary tarball as is the one built against oldest system libs, +# making it upwards compatible with newer distros. +# +# To get a functional 'ghc' binary on the SYSTEM toolchain we need +# gmp headers and ncurses libtinfo.so.5, to avoid requiring extra OS deps for them +# we include them in this bundle. +# Binaries obtained with ghc do not require them, so it should be possible to use this bundle +# just as builddep among different toolchains. +# +# For details, see the PR discussion: +# https://github.com/easybuilders/easybuild-easyconfigs/pull/11310 + +easyblock = 'Bundle' + +name = 'GHC' +version = '9.10.1' +versionsuffix = '-x86_64' + +homepage = 'https://haskell.org/ghc/' +description = """The Glorious/Glasgow Haskell Compiler""" + +toolchain = SYSTEM + +builddependencies = [ + ('binutils', '2.42'), + ('M4', '1.4.19'), +] + +default_easyblock = 'ConfigureMake' + +local_distro_tarball = 'centos7' + +components = [ + ('GMP', '6.3.0', { + 'source_urls': [GNU_SOURCE], + 'sources': [SOURCELOWER_TAR_BZ2], + 'checksums': ['ac28211a7cfb609bae2e2c8d6058d66c8fe96434f740cf6fe2e47b000d1c20cb'], + 'configopts': ' --enable-cxx', + 'start_dir': '%(namelower)s-%(version)s', + }), + ('ncurses', '5.9', { + 'source_urls': [GNU_SOURCE], + 'sources': [SOURCE_TAR_GZ], + 'patches': [ + 'ncurses-%(version)s_configure_darwin.patch', + 'ncurses-%(version)s_fix-missing-const.patch', + ], + 'checksums': [ + '9046298fb440324c9d4135ecea7879ffed8546dd1b58e59430ea07a4633f563b', + '8c471fc2b1961a6e6e5981b7f7b3512e7fe58fcb04461aa4520157d4c1159998', + '027f7bd5876b761b48db624ddbdd106fa1c535dfb2752ef5a0eddeb2a8896cfd', + ], + 'preconfigopts': "export CPPFLAGS='-P' && ", + 'configopts': ' --with-shared --enable-overwrite --with-termlib=tinfo', + 'start_dir': '%(namelower)s-%(version)s', + }), + (name, version, { + 'source_urls': ['https://downloads.haskell.org/~ghc/%(version)s/'], + 'sources': ['%%(namelower)s-%%(version)s-x86_64-%s-linux.tar.xz' % local_distro_tarball], + 'checksums': ['fab143f10f845629cb1b373309b5680667cbaab298cf49827e383ee8a9ddf683'], + # ghc-8.6.5-x86_64-centos7-linux.tar.xz + 'skipsteps': ['build'], + 'preinstallopts': 'LD_LIBRARY_PATH="%(installdir)s/lib:$LD_LIBRARY_PATH" ', + 'start_dir': '%(namelower)s-%(version)s-x86_64-unknown-linux', + }), +] + +local_ncurses_libs = ["form", "menu", "ncurses", "panel", "tinfo"] + +sanity_check_paths = { + 'files': ['lib/lib%s.%s' % (x, y) for x in ['gmp', 'gmpxx'] for y in [SHLIB_EXT, 'a']] + + ['include/gmp.h', 'include/gmpxx.h'] + + ['lib/lib%s%s.a' % (x, y) for x in local_ncurses_libs for y in ['', '_g']] + + ['lib/lib%s.%s' % (x, y) for x in local_ncurses_libs for y in [SHLIB_EXT]] + + ['bin/ghc', 'bin/ghci', 'bin/ghc-pkg', 'bin/runghc', 'bin/runhaskell'], + 'dirs': ['bin', 'lib', 'share', 'include'], +} + +sanity_check_commands = ['ghc --version'] + +moduleclass = 'compiler' diff --git a/easybuild/easyconfigs/g/git-annex/git-annex-10.20240731-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/git-annex/git-annex-10.20240731-GCCcore-13.3.0.eb new file mode 100644 index 00000000000..89c70af2f45 --- /dev/null +++ b/easybuild/easyconfigs/g/git-annex/git-annex-10.20240731-GCCcore-13.3.0.eb @@ -0,0 +1,48 @@ +easyblock = 'MakeCp' + +name = 'git-annex' +version = '10.20240731' + +homepage = 'https://git-annex.branchable.com' +description = """git-annex allows managing large files with git, without storing the file contents in git. It can sync, +backup, and archive your data, offline and online. Checksums and encryption keep your data safe and secure. Bring the +power and distributed nature of git to bear on your large files with git-annex.""" + +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} + +builddependencies = [ + ('binutils', '2.42') +] + +dependencies = [ + ('GHC', '9.10.1', '-x86_64', SYSTEM), + ('Stack', '3.1.1', '-x86_64', SYSTEM), + ('git', '2.45.1'), +] + +sources = [{ + 'git_config': {'url': 'git://git-annex.branchable.com', + 'repo_name': '%(name)s', + 'tag': '%(version)s', + 'clone_into': '%(name)s-%(version)s', + }, + 'filename': '%(name)s-%(version)s.tar.gz', +}] + +checksums = [None] + +prebuildopts = "stack setup && stack build && " +buildopts = "install-bins BUILDER=stack PREFIX=%(builddir)s" + +files_to_copy = [ + (['git-annex', 'git-annex-shell'], 'bin'), +] + +sanity_check_paths = { + 'files': ['bin/git-annex', 'bin/git-annex-shell'], + 'dirs': [], +} + +sanity_check_commands = ['git-annex version'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/Stack/Stack-3.1.1-x86_64.eb b/easybuild/easyconfigs/s/Stack/Stack-3.1.1-x86_64.eb new file mode 100644 index 00000000000..0a822a69cbd --- /dev/null +++ b/easybuild/easyconfigs/s/Stack/Stack-3.1.1-x86_64.eb @@ -0,0 +1,26 @@ +easyblock = 'Tarball' + +name = 'Stack' +version = '3.1.1' +versionsuffix = '-x86_64' + +homepage = 'https://docs.haskellstack.org' +description = """Stack is a cross-platform program for developing Haskell projects. +It is intended for Haskellers both new and experienced.""" + +toolchain = SYSTEM + +source_urls = ['https://github.com/commercialhaskell/stack/releases/download/v%(version)s/'] +sources = ['%(namelower)s-%(version)s-linux-x86_64.tar.gz'] +checksums = ['d096125ea3d987a55d17f7d4f8599ee2fd96bd2d0f033566e28ddfe248f730f9'] + +modextrapaths = {'PATH': ''} + +sanity_check_paths = { + 'files': ['stack'], + 'dirs': ['doc'], +} + +sanity_check_commands = ['stack --help'] + +moduleclass = 'devel' From 434a6998a91e11948fbe4dd050394c325b96f9e4 Mon Sep 17 00:00:00 2001 From: Sebastian Achilles Date: Fri, 6 Sep 2024 23:01:33 +0200 Subject: [PATCH 2/2] update easyconfig: GHC-9.10.1-x86_64.eb --- easybuild/easyconfigs/g/GHC/GHC-9.10.1-x86_64.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/g/GHC/GHC-9.10.1-x86_64.eb b/easybuild/easyconfigs/g/GHC/GHC-9.10.1-x86_64.eb index d50730bb1b2..2074b920ebd 100644 --- a/easybuild/easyconfigs/g/GHC/GHC-9.10.1-x86_64.eb +++ b/easybuild/easyconfigs/g/GHC/GHC-9.10.1-x86_64.eb @@ -51,7 +51,7 @@ components = [ '8c471fc2b1961a6e6e5981b7f7b3512e7fe58fcb04461aa4520157d4c1159998', '027f7bd5876b761b48db624ddbdd106fa1c535dfb2752ef5a0eddeb2a8896cfd', ], - 'preconfigopts': "export CPPFLAGS='-P' && ", + 'preconfigopts': "export CPPFLAGS='-P -std=c++14' && ", 'configopts': ' --with-shared --enable-overwrite --with-termlib=tinfo', 'start_dir': '%(namelower)s-%(version)s', }),