From f408535f2d77c857d6ce827b0ea3a8722720c5cd Mon Sep 17 00:00:00 2001 From: "Nichols A. Romero" Date: Fri, 20 Dec 2019 12:53:36 -0600 Subject: QE Update Dec 2019 (#14238) * Add QE 6.5 * Support for serial HDF5 case with serial (no mpi) QE is now supported but requires a patch for 6.4.1 and 6.5. * Add naromero77 as a maintainer. --- .../builtin/packages/quantum-espresso/package.py | 32 ++++++++++++++++------ 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/var/spack/repos/builtin/packages/quantum-espresso/package.py b/var/spack/repos/builtin/packages/quantum-espresso/package.py index ea43a61731..3dfc07b8ad 100644 --- a/var/spack/repos/builtin/packages/quantum-espresso/package.py +++ b/var/spack/repos/builtin/packages/quantum-espresso/package.py @@ -17,10 +17,13 @@ class QuantumEspresso(Package): """ homepage = 'http://quantum-espresso.org' - url = 'https://gitlab.com/QEF/q-e/-/archive/qe-6.4.1/q-e-qe-6.4.1.tar.gz' + url = 'https://gitlab.com/QEF/q-e/-/archive/qe-6.5/q-e-qe-6.5.tar.gz' git = 'https://gitlab.com/QEF/q-e.git' + maintainers = ['naromero77'] + version('develop', branch='develop') + version('6.5', sha256='258b2a8a6280e86dad779e5c56356d8b35dc96d12ff33dabeee914bc03d6d602') version('6.4.1', sha256='b0d7e9f617b848753ad923d8c6ca5490d5d82495f82b032b71a0ff2f2e9cfa08') version('6.4', sha256='781366d03da75516fdcf9100a1caadb26ccdd1dedd942a6f8595ff0edca74bfe') version('6.3', sha256='4067c8fffa957aabbd5cf2439e2fcb6cf3752325393c67a17d99fd09edf8689c') @@ -89,8 +92,9 @@ class QuantumEspresso(Package): # HDF5 support introduced in 6.1.0, but the configure had some limitations. # In recent tests (Oct 2019), GCC and Intel work with the HDF5 Spack # package for the default variant. This is only for hdf5=parallel variant. - # Support, for hdf5=serial was introduced later with some limitation. See - # the last conflict. + # Support, for hdf5=serial was introduced in 6.4.1 but required a patch + # for the serial (no MPI) case. This patch was to work around an issue + # that only manifested itself inside the Spack environment. conflicts( 'hdf5=parallel', when='@:6.0', @@ -109,12 +113,6 @@ class QuantumEspresso(Package): msg='parallel HDF5 requires MPI support' ) - conflicts( - 'hdf5=serial', - when='~mpi', - msg='serial HDF5 detection with serial QE is broken' - ) - # Elpa is formally supported by @:5.4.0, but QE configure searches # for it in the wrong folders (or tries to download it within # the build directory). Instead of patching Elpa to provide the @@ -158,6 +156,13 @@ class QuantumEspresso(Package): sha256='b776890d008e16cca28c31299c62f47de0ba606b900b17cbc27c041f45e564ca', when='@6.3:6.3.0') + # QE 6.4.1 patch to work around configure issues that only appear in the + # Spack environment. We now are able to support: + # `spack install qe~mpi~scalapack hdf5=serial` + patch('https://gitlab.com/QEF/q-e/commit/5fb1195b0844e1052b7601f18ab5c700f9cbe648.diff', + sha256='b1aa3179ee1c069964fb9c21f3b832aebeae54947ce8d3cc1a74e7b154c3c10f', + when='@6.4.1:6.5.0') + def install(self, spec, prefix): prefix_path = prefix.bin if '@:5.4.0' in spec else prefix @@ -245,6 +250,15 @@ class QuantumEspresso(Package): if spec.variants['hdf5'].value != 'none': options.append('--with-hdf5={0}'.format(spec['hdf5'].prefix)) + if '@6.4.1' or '@6.5' in spec: + options.extend([ + '--with-hdf5-include={0}'.format( + spec['hdf5'].headers.directories[0] + ), + '--with-hdf5-libs={0}'.format( + spec['hdf5:hl,fortran'].libs.ld_flags + ) + ]) configure(*options) -- cgit v1.2.3-60-g2f50