Dear William,
It's indeed a little bit too aggressive their with using the %(version)s
template in the generated easyconfig file...
Whenever %(version)s is used when installing an extension, it indeed
uses the version of the extension, rather than the "parent", which is
where this goes horribly wrong.
This is a bug, do you mind opening an issue for this at
https://github.com/easybuilders/easybuild-framework/issues, so we don't
lose track of it?
regards,
Kenneth
On 20/11/2019 17:05, William Brown wrote:
I have hit a problem building with EasyBuild 4.0.0
The issue looks to be the reverse substitution of %(version)s in the
source_urls, where the version picked up is not that of the main package
but of an extension from exts_list.
$ eb --buildpath=/ichec/home/users/brownwdl --job-cores=12
--optarch=march=skylake-avx512 --try-toolchain "foss,2019b" --dry-run
R-bundle-Bioconductor-3.9-foss-2019a-R-3.6.0.eb -r
I am trying to use an updated toolchain (because I have it already
built) so a temporary easyconfig has been created on-the-fly. This
re-orders the items in the easyconfig and seems to have
reverse-substituted the specified version ‘3.9’ with %(version) .
The original easyconfig for
R-bundle-Bioconductor-3.9-foss-2019a-R-3.6.0.eb has this:
easyblock = 'Bundle'
name = 'R-bundle-Bioconductor'
version = '3.9'
versionsuffix = '-R-%(rver)s'
.
.
exts_default_options = {
'source_urls': [
'https://bioconductor.org/packages/3.9/bioc/src/contrib/',
'https://bioconductor.org/packages/3.9/bioc/src/contrib/Archive/%(name)s',
'https://bioconductor.org/packages/3.9/data/annotation/src/contrib/',
'https://bioconductor.org/packages/3.9/data/experiment/src/contrib/',
'https://cran.r-project.org/src/contrib/Archive/%(name)s', #
package archive
'https://cran.r-project.org/src/contrib/', # current version
of packages
'https://cran.freestatistics.org/src/contrib', # mirror
alternative for current packages
],
'source_tmpl': '%(name)s_%(version)s.tar.gz'
}
The version is explicitly written as ‘3.9’. The ‘tweaked’ easyconfig
that is created for --try-toolchain "foss,2019b" has this:
easyblock = 'Bundle'
name = 'R-bundle-Bioconductor'
version = '3.9'
versionsuffix = '-R-%(rver)s'
.
.
exts_default_options = {
'source_tmpl': '%(name)s_%(version)s.tar.gz',
'source_urls':
['https://bioconductor.org/packages/%(version)s/bioc/src/contrib/',
'https://bioconductor.org/packages/%(version)s/bioc/src/contrib/Archive/%(name)s',
'https://bioconductor.org/packages/%(version)s/data/annotation/src/contrib/',
'https://bioconductor.org/packages/%(version)s/data/experiment/src/contrib/',
'https://cran.r-project.org/src/contrib/Archive/%(name)s',
'https://cran.r-project.org/src/contrib/',
'https://cran.freestatistics.org/src/contrib'],
}
When in the build process it gets to the BiocGenerics extension:
exts_list = [
('readr', '1.3.1', {
'checksums':
['33f94de39bb7f2a342fbb2bd4e5afcfec08798eac39672ee18042ac0b349e4f3'],
}),
('BiocGenerics', '0.30.0', {
'checksums':
['2e6d2fa6ed389cfae6fd75713379ba7dcd164a8161f37f1bbed596b70c3207d9'],
}),
It fails. It works for the first extension ‘readr’ but I think that it
had successfully downloaded that source on an earlier date (quite
possibly with an earlier version of EasyBuild).
== 2019-11-20 14:31:14,022 filetools.py:404 INFO Command eb found at
/ichec/work/rcsi01/packages/easybuild/software/EasyBuild/4.0.0/bin/eb
== 2019-11-20 14:31:14,044 easyblock.py:668 INFO Found file
readr_1.3.1.tar.gz at
/ichec/work/rcsi01/packages/easybuild/sources/r/R-bundle-Bioconductor/extensions/readr_1.3.1.tar.gz
== 2019-11-20 14:31:14,101 easyblock.py:528 INFO md5 checksum for
/ichec/work/rcsi01/packages/easybuild/sources/r/R-bundle-Bioconductor/extensions/readr_1.3.1.tar.gz:
b41b0e9251c19b1c54c032e1f55be9d0
== 2019-11-20 14:31:14,104 easyblock.py:528 INFO sha256 checksum for
/ichec/work/rcsi01/packages/easybuild/sources/r/R-bundle-Bioconductor/extensions/readr_1.3.1.tar.gz:
33f94de39bb7f2a342fbb2bd4e5afcfec08798eac39672ee18042ac0b349e4f3
== 2019-11-20 14:31:14,108 easyblock.py:534 INFO Checksum for extension
source readr_1.3.1.tar.gz verified
== 2019-11-20 14:31:14,108 easyblock.py:456 INFO Fetched extension
patches: []
== 2019-11-20 14:31:14,109 filetools.py:404 INFO Command eb found at
/ichec/work/rcsi01/packages/easybuild/software/EasyBuild/4.0.0/bin/eb
== 2019-11-20 14:31:14,555 filetools.py:559 WARNING URL
https://bioconductor.org/packages/0.30.0/bioc/src/contrib/BiocGenerics_0.30.0.tar.gz
was not found (HTTP response code 404), not trying again
== 2019-11-20 14:31:14,555 filetools.py:585 WARNING Download of
https://bioconductor.org/packages/0.30.0/bioc/src/contrib/BiocGenerics_0.30.0.tar.gz
to
/ichec/work/rcsi01/packages/easybuild/sources/r/R-bundle-Bioconductor/extensions/BiocGenerics_0.30.0.tar.gz
failed, done trying
It has substituted the %(version) from the version of the **extension**,
not the main package, and that cannot work.
I am not sure whether I have tried to do something incorrectly but I
would not expect the ‘source_urls’ to be edited in this way.
William Brown
*William Brown*
Systems Administrator
*RCSI* Information Technology
Royal College of Surgeons in Ireland
Building 121 St Stephens Green, IT dept
*T: *015720012
*E: *[email protected] *W: *www.rcsi.com <http://www.rcsi.com/>
/Transforming Healthcare Education, Research and Service: RCSI Strategic
Plan 2018-2022 <http://www.rcsi.ie/strategy2018>/