Skip to content

[git] [package list]

git/2.37.0 (git-2.37.0.eb)

This software is archived in the LUMI-SoftwareStack GitHub repository as easybuild/easyconfigs/__archive__/g/git/git-2.37.0.eb. The corresponding module would be git/2.37.0.

##
# Author:    Robert Mijakovic <robert.mijakovic@lxp.lu>
# Reworked by Kurt Lust (kurt.lust@uantwerpen.be) for LUMI.
##
easyblock = 'ConfigureMake'

import os as local_os

# The first line below is a dirty trick not very much loved by the EasyBuild developers but
# it helps to make this EasyConfig indpendent of the LUMI software stack version as there is
# no other reference to that version in the file that we can use since it relies on the
# SYSTEM toolchain.
local_LUMI_version = local_os.environ['LUMI_STACK_CPE_VERSION']

name =    'git'
version = '2.37.0'
#versionsuffix = '-nodocs'

homepage = 'https://git-scm.com/'

whatis = [
    'Description: Git is a free and open source distributed version control system',
    'NOTE: Docs are still missing from this module'
]

description = """
Git is a free and open source distributed version control system designed
to handle everything from small to very large projects with speed and efficiency.

Git is easy to learn and has a tiny footprint with lightning fast performance.
It outclasses SCM tools like Subversion, CVS, Perforce, and ClearCase with
features like cheap local branching, convenient staging areas, and multiple
workflows.

Note that git in this module comes without manpages due to difficulties in
generating those pages in the software management frameworks typically used on
HPC systems. Any manual page you may see for git is for a system-installed version
of git and not necessarily for this module.
"""

docurls = [
    'Web-based documentation for git at https://git-scm.com/doc',
]

toolchain = SYSTEM

sources = {
    'download_filename': 'v%(version)s.tar.gz',
    'filename':          SOURCELOWER_TAR_GZ,
    'source_urls':       ['https://github.com/git/git/archive']
}
checksums =   ['17733eb8bc7de35e2e399ac6577df0aa856faaf0a2ef1e55e90a4978dcf9caa1']

builddependencies = [
    ('buildtools', local_LUMI_version),
    ('syslibs',    local_LUMI_version, '-static'), # for zlib, expat and PCRE2.
]

dependencies = [
]

osdependencies = [
    ('glibc-headers-x86', 'glibc-devel'),                # libintl.h, iconv.h
#    ('zlib-devel'),                                      # zlib.h
#    ('libexpat-devel'),                                  # exoat.h, not yet available on LUMI.
    ('libcurl-devel'),                                   # curl.h
    ('openssl-devel', 'libssl-dev', 'libopenssl-devel'),
]

preconfigopts = 'make configure && CFLAGS="-O2 -march=znver1" CXXFLAGS="-O2 -march=znver1" '
# Work around git build system bug.  If LIBS contains -lpthread, then configure
# will not append -lpthread to LDFLAGS, but Makefile ignores LIBS.
configopts = "--with-openssl --with-libpcre2 --without-tcltk --with-curl --with-expat --enable-pthreads='-lpthread'"
# Other options to specify paths: --with-perl --with-python --with-zlib

#
# The system by default does not contain the tools needed to build the documentation for git.
#
#buildopts = 'all doc info'
#installopts = 'install install-doc install-info'

sanity_check_paths = {
    'files': ['bin/git'],
    'dirs':  ['libexec/git-core', 'share'],
}

sanity_check_commands = [
    'git --version',
    'git-cvsserver --version',
]

moduleclass = 'tools'

[git] [package list]