Skip to content

Commit

Permalink
Merge pull request #21346 from SebastianAchilles/20240906223527_new_p…
Browse files Browse the repository at this point in the history
…r_git-annex1020240731

{compiler,devel,tools}[system/system] git-annex v10.20240731, GHC v9.10.1, Stack v3.1.1 w/ x86_64
  • Loading branch information
smoors authored Sep 8, 2024
2 parents 5b0ff68 + 434a699 commit dc37260
Show file tree
Hide file tree
Showing 3 changed files with 156 additions and 0 deletions.
82 changes: 82 additions & 0 deletions easybuild/easyconfigs/g/GHC/GHC-9.10.1-x86_64.eb
Original file line number Diff line number Diff line change
@@ -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 -std=c++14' && ",
'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'
Original file line number Diff line number Diff line change
@@ -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'
26 changes: 26 additions & 0 deletions easybuild/easyconfigs/s/Stack/Stack-3.1.1-x86_64.eb
Original file line number Diff line number Diff line change
@@ -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'

0 comments on commit dc37260

Please sign in to comment.