Skip to content

[cURL] [package list]

cURL/8.3.0-cpeAMD-24.03 (cURL-8.3.0-cpeAMD-24.03.eb)

To access module help and find out for which stacks and partitions the module is installed, use module spider cURL/8.3.0-cpeAMD-24.03.

EasyConfig:

# NOTE: Can use the LDAP libraries which would give it extra features
# NOTE: Checks for idn2.h/libidn2 (IDN support)
# NOTE: Should we be worried that it does not find libpsl?
easyblock = 'ConfigureMake'

local_zlib_version =         '1.3.1'         # https://zlib.net/
local_Brotli_version =       '1.1.0'         # https://github.com/google/brotli/releases
local_libpsl_version =       '0.21.5'        # https://github.com/rockdaboot/libpsl/releases

local_cURL_version =         '8.3.0'         # https://curl.haxx.se/download/

name =    'cURL'
version = local_cURL_version

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

whatis = [
    'Description: Command line tool and library for transferring data with URLs.',
    'This module contains the command line tool and static and shared libraries.',
    'Keywords: DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet, TFTP',
]

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.
"""

usage = """
Load the cURL module to view the man pages or check the web-based documentation
which includes a tutoriali page with plenty of examples.
"""

docurls = [
    'Web-based documentation: https://curl.haxx.se/docs/',
    'Man pages for the curl and curl-config commands (section 1) and the library functions (section 3)',
]

software_license_urls = [
    'https://raw.githubusercontent.com/curl/curl/curl-%s/COPYING' % '_'.join(version.split('.')),
]

toolchain = {'name': 'cpeAMD', 'version': '24.03'}
toolchainopts = {'pic': True}

sources =     [SOURCELOWER_TAR_XZ]
source_urls = ['http://curl.haxx.se/download/']
checksums =   ['376d627767d6c4f05105ab6d497b0d9aba7111770dd9d995225478209c37ea63']

builddependencies = [ # Create a reproducible build environment.
    ('buildtools', '%(toolchain_version)s', '', True),
]

dependencies = [
    ('zlib',   local_zlib_version),
    ('Brotli', local_Brotli_version),
    ('libpsl', local_libpsl_version),
]

osdependencies = [
    ('openssl-devel', 'libssl-dev', 'libopenssl-devel'),
#    ('libssh2-devel'),
]

# dependencies = [('OpenSSL', '1.1.0e')]

# Doesn't need MPI, ROCm or BLAS, and module unload never fails so this is safe.
preconfigopts = 'module unload cray-libsci cray-mpich rocm xpmem && '
prebuildopts = preconfigopts

# configopts = "--with-ssl=$EBROOTOPENSSL"
configopts  = "--with-zlib=$EBROOTZLIB --with-openssl"
#configopts += '--with-nghttp2 '           # Does not yet work at UAntwerp, requires an external library
#configopts += '--with-ssh2 '              # Does not yet work at UAntwerp

postinstallcmds = [
    'mkdir -p %(installdir)s/share/licenses/%(name)s',
    'cp CHANGES COPYING README RELEASE-NOTES %(installdir)s/share/licenses/%(name)s',   
]

sanity_check_paths = {
    'files': ['bin/curl', 'lib/libcurl.a', 'lib/libcurl.%s' % SHLIB_EXT, f'share/licenses/{name}/COPYING'],
    'dirs':  ['lib/pkgconfig'],
}

sanity_check_commands = [
    '%(namelower)s --version',
    'curl-config --version',
    'pkg-config --libs libcurl',
]

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

moduleclass = 'tools'

[cURL] [package list]