# IT4Innovations 2019

easyblock = 'ConfigureMake'

name = 'Singularity'
version = '3.3.0'

homepage = 'https://github.com/sylabs/singularity'
description = "Singularity is an open source container platform designed to be simple, fast, and secure. Singularity is optimized for EPC and HPC workloads, allowing untrusted users to run untrusted containers in a trusted way."

toolchain = {'name': 'system', 'version': ''}

source_urls = ['https://github.com/sylabs/singularity/releases/download/v%s/' % version]
sources = ['singularity-%(version)s.tar.gz']
checksums = ['070530a472e7e78492f1f142c8d4b77c64de4626c4973b0589f0d18e1fcf5b4f']

builddependencies = [
        ('Go', '1.12.7'),
]

dependencies = [
        ('squashfs-tools', '4.3'),
]

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

skipsteps = ['configure']
#prebuildopts = 'export GOPATH=$(pwd):$GOPATH && '
skipsteps = ['configure']
prebuildopts = 'mkdir -p src/github.com/sylabs && '
prebuildopts += 'ln -sf %(builddir)s/singularity src/github.com/sylabs/singularity && '
prebuildopts += './mconfig -p %(installdir)s -b build && '
prebuildopts += 'cd build && '
preinstallopts = 'cd build && '


postinstallcmds = [
        'echo "mksquashfs path = /apps/all/squashfs-tools/4.3/bin" >> %(installdir)s/etc/singularity/singularity.conf',
]

# next steps after installation
# INSTALLATION_PATH=your_installation_path
# chown root:root $INSTALLATION_PATH/Singularity/*/etc/singularity/singularity.conf
# chown root:root $INSTALLATION_PATH/Singularity/*/etc/singularity/capability.json
# chown root:root $INSTALLATION_PATH/Singularity/*/etc/singularity/ecl.toml
# chown root:root $INSTALLATION_PATH/Singularity/*/libexec/singularity/bin/*-suid
# chmod 4755 $INSTALLATION_PATH/Singularity/*/libexec/singularity/bin/*-suid
# chmod +s $INSTALLATION_PATH/Singularity/*/libexec/singularity/bin/*-suid

sanity_check_paths = {
    'files': ['bin/singularity'],
    'dirs': ['bin', 'etc', 'libexec', 'var'],
}

moduleclass = 'tools'
