summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--var/spack/repos/builtin/packages/r-hdf5r/configure.patch98
-rw-r--r--var/spack/repos/builtin/packages/r-hdf5r/package.py24
2 files changed, 110 insertions, 12 deletions
diff --git a/var/spack/repos/builtin/packages/r-hdf5r/configure.patch b/var/spack/repos/builtin/packages/r-hdf5r/configure.patch
new file mode 100644
index 0000000000..3997edd0b2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-hdf5r/configure.patch
@@ -0,0 +1,98 @@
+diff -ru a/configure b/configure
+--- a/configure 2021-11-15 13:13:34.000000000 -0600
++++ b/configure 2021-12-07 15:08:23.118115118 -0600
+@@ -3673,43 +3673,15 @@
+ with_hdf5="no"
+ with_hdf5_fortran="no"
+ else
+- HDF5_SHOW=$(eval $H5CC -show)
+
+- HDF5_CC=$(eval $H5CC -show | $AWK '{print $1}')
+- if test "$HDF5_CC" = "ccache"; then
+- HDF5_CC=$(eval $H5CC -show | $AWK '{print $2}')
+- fi
+-
+-
+- HDF5_VERSION=$(eval $H5CC -showconfig | $GREP 'HDF5 Version:' \
+- | $AWK '{print $3}')
++ HDF5_VERSION=$(eval pkg-config --modversion hdf5)
+ HDF5_MAJOR_VERSION=$(echo $HDF5_VERSION | $AWK -F \. '{print $1}')
+ HDF5_MINOR_VERSION=$(echo $HDF5_VERSION | $AWK -F \. {'print $2'})
+ HDF5_REVISION_VERSION=$(echo $HDF5_VERSION | $AWK -F \. {'print $3'})
+
+- HDF5_tmp_flags=$(eval $H5CC -showconfig \
+- | $GREP 'FLAGS\|Extra libraries:' \
+- | $AWK -F: '{printf("%s "), $2}' )
+-
+- HDF5_tmp_inst=$(eval $H5CC -showconfig \
+- | $GREP 'Installation point:' \
+- | $AWK '{print $NF}' )
+-
+- HDF5_CPPFLAGS="-I${HDF5_tmp_inst}/include"
+-
+- for arg in $HDF5_SHOW $HDF5_tmp_flags ; do
+- case "$arg" in
+- -I*) echo $HDF5_CPPFLAGS | $GREP -e "$arg" 2>&1 >/dev/null \
+- || HDF5_CPPFLAGS="$arg $HDF5_CPPFLAGS"
+- ;;
+- -L*) echo $HDF5_LDFLAGS | $GREP -e "$arg" 2>&1 >/dev/null \
+- || HDF5_LDFLAGS="$arg $HDF5_LDFLAGS"
+- ;;
+- -l*) echo $HDF5_LIBS | $GREP -e "$arg" 2>&1 >/dev/null \
+- || HDF5_LIBS="$arg $HDF5_LIBS"
+- ;;
+- esac
+- done
++
++ HDF5_CPPFLAGS=$(eval pkg-config --cflags hdf5)
++ HDF5_LDFLAGS=$(eval pkg-config --libs hdf5)
+
+ HDF5_LIBS="$HDF5_LIBS -lhdf5"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (version $HDF5_VERSION)" >&5
+@@ -3725,7 +3697,6 @@
+ ax_lib_hdf5_save_CPPFLAGS=$CPPFLAGS
+ ax_lib_hdf5_save_LIBS=$LIBS
+ ax_lib_hdf5_save_LDFLAGS=$LDFLAGS
+- CC=$HDF5_CC
+ CPPFLAGS=$HDF5_CPPFLAGS
+ LIBS=$HDF5_LIBS
+ LDFLAGS=$HDF5_LDFLAGS
+@@ -3893,20 +3864,6 @@
+ with_hdf5_fortran="yes"
+
+
+- for arg in `$H5FC -show`
+- do
+- case "$arg" in #(
+- -I*) echo $HDF5_FFLAGS | $GREP -e "$arg" >/dev/null \
+- || HDF5_FFLAGS="$arg $HDF5_FFLAGS"
+- ;;#(
+- -L*) echo $HDF5_FFLAGS | $GREP -e "$arg" >/dev/null \
+- || HDF5_FFLAGS="$arg $HDF5_FFLAGS"
+- echo $HDF5_FFLAGS | $GREP -e "-I${arg#-L}" >/dev/null \
+- || HDF5_FFLAGS="-I${arg#-L} $HDF5_FFLAGS"
+- ;;
+- esac
+- done
+-
+ for arg in $HDF5_LIBS
+ do
+ case "$arg" in #(
+@@ -4384,8 +4341,6 @@
+ as_fn_error $? "${GREP} does not support option -o" "$LINENO" 5
+ fi
+
+- LIBS=`${H5CC} -show | ${GREP} -o " \-[lL][^[:space:]]\+" | tr "\n" " "`
+-
+
+ HDF5R_LIBS="${LIBS} -L. -lhdf5_hl -lhdf5 -lz -lm"
+
+@@ -4447,8 +4402,6 @@
+
+
+
+- HDF5R_CPPFLAGS=`${H5CC} -show -c myconftest.c | ${GREP} -o "\-I[^[:space:]]\+" | tr "\n" " "`
+-
+ rm -f myconftest.c
+ fi
+
diff --git a/var/spack/repos/builtin/packages/r-hdf5r/package.py b/var/spack/repos/builtin/packages/r-hdf5r/package.py
index 860270bafe..d0bb6ff8d6 100644
--- a/var/spack/repos/builtin/packages/r-hdf5r/package.py
+++ b/var/spack/repos/builtin/packages/r-hdf5r/package.py
@@ -20,21 +20,21 @@ class RHdf5r(RPackage):
url = "https://cloud.r-project.org/src/contrib/hdf5r_1.2.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/hdf5r"
+ version('1.3.5',
+ sha256='87b75173ab226a9fbaa5b28289349f3c56b638629560a172994b8f9323c1622f')
version('1.3.3', sha256='a0f83cbf21563e81dbd1a1bd8379623ed0c9c4df4e094c75013abfd7a5271545')
version('1.2.0', sha256='58813e334fd3f9040038345a7186e5cb02090898883ac192477a76a5b8b4fe81')
depends_on('r@3.2.2:', type=('build', 'run'))
depends_on('r-r6', type=('build', 'run'))
depends_on('r-bit64', type=('build', 'run'))
- depends_on('hdf5@1.8.13:')
-
- def configure_args(self):
- if 'mpi' in self.spec:
- args = [
- '--with-hdf5={0}/h5pcc'.format(self.spec['hdf5'].prefix.bin),
- ]
- else:
- args = [
- '--with-hdf5={0}/h5cc'.format(self.spec['hdf5'].prefix.bin),
- ]
- return args
+ depends_on('hdf5@1.8.13:+hl')
+ depends_on('pkgconfig', type='build')
+
+ # The configure script in the package uses the hdf5 h5cc compiler wrapper
+ # in the PATH to configure hdf5. That works fine if hdf5 was built with
+ # autotools but the hdf5 package in Spack is built with cmake. The compiler
+ # wrapper built with cmake does not support the '-show' or '-showconfig'
+ # flags. The following patch replaces those commands in the configure
+ # script with pkg-config commands.
+ patch('configure.patch')