Hi,
Some time ago I wrote an EasyBuild config file for the software package SGA:
https://github.com/jts/sga
A user has now pointed out that the Python file sga-preqc-report.py is
missing:
https://github.com/jts/sga/wiki/Preqc
https://github.com/jts/sga/blob/master/src/bin/sga-preqc-report.py
and he is right. My problem now is that the "make install" command
apparently is broken, as it only installs 4 files from the bin
directory, even though there are several more files there. The file that
the user needs is one of the files that are not copied and I therefore
now have to explicitly specify that these files must also be copied. I
have attached a "work-in-progress" version of the EasyBuild config file
to this e-mail.
My problem is: there is no files_to_copy defined for ConfigureMake and
when I then use "buildopts" or "installopts" for copying the missing
files to the installation directory then these options are also used
when installing the two Python packages, where the commands don't make
sense. I have also tried "configopts", but that did not work either.
How do I copy the missing files to the installation directory?
Best regards,
Henrik
easyblock = 'ConfigureMake'
name = 'SGA'
version = '190808'
versionsuffix = '-Python-%(pyver)s'
homepage = 'https://omictools.com/sga-tool'
description = """Assembles large genomes from high coverage short read data."""
toolchain = {'name': 'foss', 'version': '2018b'}
sources = ['%(namelower)s-%(version)s.tar.gz']
patches = ['%(namelower)s-%(version)s_fix-cpp-standard.patch']
dependencies = [
('Python', '3.6.6'),
('sparsehash', '2.0.3'),
('BamTools', '2.5.1'),
('SAMtools', '1.9'),
('zlib', '1.2.11'),
('jemalloc', '5.1.0'),
]
configopts = '--with-bamtools=$EBROOTBAMTOOLS --with-jemalloc=$EBROOTJEMALLOC '
exts_defaultclass = 'PythonPackage'
exts_list = [
('pysam', '0.15.3', {
'source_tmpl': 'pysam-%(version)s.tar.gz',
'source_urls':
['https://files.pythonhosted.org/packages/15/e7/2dab8bb0ac739555e69586f1492f0ff6bc4a1f8312992a83001d3deb77ac'],
'checksums':
['a98dd0a164aa664b1ab30a36f653752f00e93c13deeb66868597f4b2a30f7265'],
}),
('ruffus', '2.8.3', {
'source_tmpl': 'ruffus-%(version)s.tar.gz',
'source_urls':
['https://files.pythonhosted.org/packages/a1/73/cc66b80cfd495d6ce1e26292776d8f6bb67281bde4f47826b6cb20aa9c87'],
'checksums':
['cf12f5ea6648fd60b046416619a26d9d3237cd555b29b92b5efc7a6f69e3e676'],
})
]
# make install is broken. It does not install all that users need.
# These two lines cannot be in installopts, because then they also get used for
the extensions
buildopts = ' && cp -p %(builddir)s/%(namelower)s-%(version)s/bin/sga*
%(installdir)s/bin'
buildopts += ' && cp -pr %(builddir)s/%(namelower)s-%(version)s/examples
%(installdir)s'
sanity_check_paths = {
'files': ['bin/sga', 'bin/sga-preqc-report.py'],
'dirs': ['bin', 'lib', 'examples'],
}
modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']}
moduleclass = 'bio'