Hi guix-devel,
this is a patch to add the GCTP library. It seems the library is no
longer maintained separately (“official” sources are gone), so this
package downloads the HDF-EOS5 source, which contains GCTP, and
patches the build to only build and install GCTP. (I'm packaging
HDF-EOS5 later on)
It's not very elegant... An alternative solution would be to get the
source package from, e.g. Debian, and build that (might involve less
patching).
Thomas
* gnu/packages/maths.cm (gctp): New variable
* guix/packages.scm (decompression-type): Modify by adding ".Z" suffix
for gzipped files.
* gnu/packages/patches/gct-build-shared.patch: patch build system for
shared builds.
* gnu/packages/patches/gctp-remove-hdf-eos5.patch: don't build the
hdf-eos5 library contained in the same archive.
* gnu/packages/patches/gctp-fix-soname.patch: use a lower case soname.
---
gnu/packages/maths.scm | 39 ++
gnu/packages/patches/gctp-build-shared.patch | 84 +++++
gnu/packages/patches/gctp-fix-soname.patch | 31 ++
gnu/packages/patches/gctp-remove-hdf-eos5.patch | 482 ++++++++++++++++++++++++
guix/packages.scm | 1 +
5 files changed, 637 insertions(+)
create mode 100644 gnu/packages/patches/gctp-build-shared.patch
create mode 100644 gnu/packages/patches/gctp-fix-soname.patch
create mode 100644 gnu/packages/patches/gctp-remove-hdf-eos5.patch
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 3b860a9..9cd0554 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -42,6 +42,8 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system r)
#:use-module (gnu packages algebra)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages base)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
@@ -408,6 +410,43 @@ plotting engine by third-party applications like Octave.")
(license (license:fsf-free
"http://gnuplot.cvs.sourceforge.net/gnuplot/gnuplot/Copyright"))))
+(define-public gctp
+ (package
+ (name "gctp")
+ (version "1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "ftp://edhs1.gsfc.nasa.gov/edhs/hdfeos5/latest_release/HDF-EOS5.1.15.tar.Z"))
+ (sha256
+ (base32
+ "1p83333nzzy8rn5chxlm0hrkjjnhh2w1ji8ac0f9q4xzg838i58i"))
+ (patches (search-patches "gctp-build-shared.patch" "gctp-remove-hdf-eos5.patch" "gctp-fix-soname.patch"))
+ ))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("coreutils" ,coreutils)))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags '("--enable-install-include")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before
+ 'configure 'autogen
+ (lambda _
+ (and (zero? (system* "chmod" "-R" "u+w" ".")) ; archive is read-only...
+ (zero? (system* "autoreconf" "--install")))))))) ; configure.ac was patched
+ (synopsis "General Cartographic Transformation Package (GCTP)")
+ (description
+ "The General Cartographic Transformation Package (GCTP) is a system of
+software routines designed to permit the transformation of coordinate pairs
+from one map projection to another. The GCTP is the standard computer
+software used by the National Mapping Division for map projection
+computations.")
+ (home-page "http://gcmd.nasa.gov/records/USGS-GCTP.html")
+ (license (license:bsd-style "http://gcmd.nasa.gov/records/USGS-GCTP.html"))))
+
(define-public hdf5
(package
(name "hdf5")
diff --git a/gnu/packages/patches/gctp-build-shared.patch b/gnu/packages/patches/gctp-build-shared.patch
new file mode 100644
index 0000000..1139fbb
--- /dev/null
+++ b/gnu/packages/patches/gctp-build-shared.patch
@@ -0,0 +1,84 @@
+Allow shared build.
+
+---
+ Makefile.am | 6 ------
+ configure.ac | 12 ------------
+ include/HE5_HdfEosDef.h | 1 +
+ src/Makefile.am | 3 ++-
+ 4 files changed, 3 insertions(+), 19 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 363bcfb..01ed024 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -3,13 +3,7 @@
+ # Include boilerplate
+ include $(top_srcdir)/config/include.am
+
+-# List of subdirectories.
+-# Only build the testdrivers directory if configure detected that it's present.
+-if TESTDRIVERS_CONDITIONAL
+-TESTDRIVERS=testdrivers
+-else
+ TESTDRIVERS=
+-endif
+
+ if INSTALL_INCLUDE_CONDITIONAL
+ INCLUDE=include
+diff --git a/configure.ac b/configure.ac
+index 5d48b43..cfa9d4e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -13,9 +13,6 @@ AC_CONFIG_AUX_DIR([config])
+ AM_INIT_AUTOMAKE([foreign])
+ AM_MAINTAINER_MODE
+
+-# Disable shared libraries (for now)
+-AC_DISABLE_SHARED
+-
+ AM_PROG_LIBTOOL
+
+ dnl ----------------------------------------------------------------------
+@@ -597,13 +594,4 @@ AC_CONFIG_FILES([Makefile
+ gctp/src/Makefile
+ samples/Makefile])
+
+-if test "X$TESTDRIVERS_DIR" = "Xyes"; then
+- AC_CONFIG_FILES([ testdrivers/Makefile
+- testdrivers/grid/Makefile
+- testdrivers/point/Makefile
+- testdrivers/swath/Makefile
+- testdrivers/threads/Makefile
+- testdrivers/za/Makefile])
+-fi
+-
+ AC_OUTPUT
+diff --git a/include/HE5_HdfEosDef.h b/include/HE5_HdfEosDef.h
+index 9ed7881..abf0a90 100755
+--- a/include/HE5_HdfEosDef.h
++++ b/include/HE5_HdfEosDef.h
+@@ -24,6 +24,7 @@
+ #ifndef HE5_HDFEOSDEF_H_
+ #define HE5_HDFEOSDEF_H_
+
++#define H5_USE_16_API 1
+ #include <hdf5.h>
+
+ #ifdef H5_USE_16_API
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 76b1d4c..daf7ad8 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -10,7 +10,8 @@ INCLUDES=-I$(top_srcdir)/include/
+
+ # Set LDFLAGS to allow the HDF-EOS library to use extern variables from
+ # HDF5
+-LDFLAGS=-Wl,-single_module
++LDFLAGS+= -shrext .so
++LIBS+= -lhdf5_hl -lhdf5 -lm
+
+ # Build HDF-EOS5
+ lib_LTLIBRARIES=libhe5_hdfeos.la
+--
+2.5.0
+
diff --git a/gnu/packages/patches/gctp-fix-soname.patch b/gnu/packages/patches/gctp-fix-soname.patch
new file mode 100644
index 0000000..5a32970
--- /dev/null
+++ b/gnu/packages/patches/gctp-fix-soname.patch
@@ -0,0 +1,31 @@
+Make library name all-lowercase.
+
+---
+ gctp/src/Makefile.am | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/gctp/src/Makefile.am b/gctp/src/Makefile.am
+index 76ecf1c..97c2438 100755
+--- a/gctp/src/Makefile.am
++++ b/gctp/src/Makefile.am
+@@ -4,7 +4,7 @@
+ include $(top_srcdir)/config/include.am
+
+ # Library to build
+-lib_LTLIBRARIES = libGctp.la
++lib_LTLIBRARIES = libgctp.la
+
+ ## Normally DEFAULT_INCLUDES is supplied by Automake, but one of the
+ ## directories included by default is $(top_builddir)/include, which
+@@ -17,7 +17,7 @@ DEFAULT_INCLUDES = -I. -I$(srcdir)
+ INCLUDES=-I$(srcdir)/../include/
+
+ # Library source files
+-libGctp_la_SOURCES = gctp.c alberfor.c alberinv.c alconfor.c alconinv.c \
++libgctp_la_SOURCES = gctp.c alberfor.c alberinv.c alconfor.c alconinv.c \
+ azimfor.c aziminv.c bceafor.c bceainv.c br_gctp.c ceafor.c \
+ ceainv.c cproj.c eqconfor.c eqconinv.c equifor.c equiinv.c \
+ for_init.c gnomfor.c gnominv.c goodfor.c goodinv.c gvnspfor.c \
+--
+2.5.0
+
diff --git a/gnu/packages/patches/gctp-remove-hdf-eos5.patch b/gnu/packages/patches/gctp-remove-hdf-eos5.patch
new file mode 100644
index 0000000..4601c5f
--- /dev/null
+++ b/gnu/packages/patches/gctp-remove-hdf-eos5.patch
@@ -0,0 +1,482 @@
+From c206a99fc4692ef9ea48a11bbb9de8a7dd44a7f8 Mon Sep 17 00:00:00 2001
+From: Thomas Danckaert <thomas.dancka...@gmail.com>
+Date: Fri, 17 Jun 2016 07:55:58 +0200
+Subject: [PATCH 1/2] Build only GCTP.
+
+---
+ Makefile.am | 2 +-
+ configure.ac | 430 +----------------------------------------------------------
+ 2 files changed, 2 insertions(+), 430 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 01ed024..335cf1a 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -11,5 +11,5 @@ else
+ INCLUDE=
+ endif
+
+-SUBDIRS=gctp src $(INCLUDE) samples $(TESTDRIVERS)
++SUBDIRS=gctp
+
+diff --git a/configure.ac b/configure.ac
+index cfa9d4e..2b531e4 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -22,80 +22,6 @@ AC_PREFIX_DEFAULT([`pwd`/hdfeos5])
+ # Check for the math library that HDF5 needs
+ AC_CHECK_LIB([m], [ceil])
+
+-# Check whether zlib is enabled.
+-# HDF-EOS5 doesn't use zlib, but HDF5 might. If HDF5 does, it needs
+-# to be given to the linker or there will be undefined symbols in HDF5.
+-# Using h5cc avoids the need to specify zlib at configure time.
+-AC_ARG_WITH([zlib],
+- [AC_HELP_STRING([--with-zlib=DIR],
+- [Specify path to external zlib library.
+- Linker must be able to find zlib if HDF5
+- was built with zlib.
+- [default=yes]])],,
+- withval=yes)
+-
+-case $withval in
+- yes)
+- HAVE_ZLIB="yes"
+- AC_CHECK_HEADERS([zlib.h],)
+- AC_CHECK_LIB([z], [compress2],, [unset HAVE_ZLIB])
+-
+- if test -z "$HAVE_ZLIB"; then
+- AC_MSG_ERROR([couldn't find zlib library])
+- fi
+- ;;
+- no)
+- HAVE_ZLIB="no"
+- AC_MSG_CHECKING([for GNU zlib])
+- AC_MSG_RESULT([suppressed])
+- ;;
+- *)
+- HAVE_ZLIB="yes"
+- case "$withval" in
+- *,*)
+- zlib_inc="`echo $withval |cut -f1 -d,`"
+- zlib_lib="`echo $withval |cut -f2 -d, -s`"
+- ;;
+- *)
+- if test -n "$withval"; then
+- zlib_inc="$withval/include"
+- zlib_lib="$withval/lib"
+- fi
+- ;;
+- esac
+-
+- dnl Trying to include -I/usr/include and -L/usr/lib is redundant and
+- dnl can mess some compilers up.
+- if test "X$zlib_inc" = "X/usr/include"; then
+- zlib_inc=""
+- fi
+- if test "X$zlib_lib" = "X/usr/lib"; then
+- zlib_lib=""
+- fi
+-
+- saved_CPPFLAGS="$CPPFLAGS"
+- saved_LDFLAGS="$LDFLAGS"
+-
+- if test -n "$zlib_inc"; then
+- CPPFLAGS="$CPPFLAGS -I$zlib_inc"
+- fi
+-
+- AC_CHECK_HEADERS([zlib.h], ,
+- [CPPFLAGS="$saved_CPPFLAGS"])
+-
+- if test -n "$zlib_lib"; then
+- LDFLAGS="$LDFLAGS -L$zlib_lib"
+- fi
+-
+- AC_CHECK_LIB([z], [compress2],,
+- [LDFLAGS="$saved_LDFLAGS"; unset HAVE_ZLIB])
+-
+- if test -z "$HAVE_ZLIB"; then
+- AC_MSG_ERROR([couldn't find zlib library])
+- fi
+- ;;
+-esac
+-
+ dnl --------------------------------------------------
+ dnl Check if -Df2cFortran is specified
+ dnl Running only the preprocessor may not be a good idea
+@@ -172,356 +98,6 @@ if test ${he5_cv_f2cFortran_defined} = "yes"; then
+ fi
+ fi
+
+-# Check whether szlib (szip) is enabled.
+-# HDF-EOS5 doesn't use szlib, but HDF5 might. If HDF5 does, it needs
+-# to be given to the linker or there will be undefined symbols in HDF5.
+-# Using h5cc should avoid the need to specify szlib at configure time.
+-AC_ARG_WITH([szlib],
+- [AC_HELP_STRING([--with-szlib=DIR],
+- [Use szlib library for external szlib I/O
+- filter. Linker must be able to find szlib
+- if HDF5 was build with szip. [default=no]])],,
+- withval=no)
+-
+-case $withval in
+- yes)
+- HAVE_SZLIB="yes"
+- AC_CHECK_HEADERS([szlib.h], [HAVE_SZLIB_H="yes"])
+- AC_CHECK_LIB([sz], [SZ_BufftoBuffCompress],, [unset HAVE_SZLIB])
+-
+- if test -z "$HAVE_SZLIB"; then
+- AC_MSG_ERROR([couldn't find szlib library, you may need to specify szip library path])
+- fi
+- ;;
+- no)
+- HAVE_SZLIB="no"
+- AC_MSG_CHECKING([for szlib])
+- AC_MSG_RESULT([suppressed])
+- ;;
+- *)
+- HAVE_SZLIB="yes"
+- case "$withval" in
+- *,*)
+- szlib_inc="`echo $withval |cut -f1 -d,`"
+- szlib_lib="`echo $withval |cut -f2 -d, -s`"
+- ;;
+- *)
+- if test -n "$withval"; then
+- szlib_inc="$withval/include"
+- szlib_lib="$withval/lib"
+- fi
+- ;;
+- esac
+-
+- dnl Check if szlib.h exists. We cannot use AC_CHECK_HEADERS here
+- dnl because it will use preprocessor. Preprocessor always succeeds in
+- dnl finding szlib.h because h4cc provides the path to szlib.h.
+- AC_CHECK_FILE($szlib_inc/szlib.h, , [unset HAVE_SZLIB])
+- if test -z "$HAVE_SZLIB"; then
+- AC_MSG_ERROR([couldn't find szlib.h, check szip library path])
+- fi
+-
+- dnl Trying to include -I/usr/include and -L/usr/lib is redundant and
+- dnl can mess some compilers up.
+- if test "X$szlib_inc" = "X/usr/include"; then
+- szlib_inc=""
+- fi
+- if test "X$szlib_lib" = "X/usr/lib"; then
+- szlib_lib=""
+- fi
+-
+- saved_CPPFLAGS="$CPPFLAGS"
+- saved_LDFLAGS="$LDFLAGS"
+-
+- if test -n "$szlib_inc"; then
+- CPPFLAGS="$CPPFLAGS -I$szlib_inc"
+- fi
+-
+- AC_CHECK_HEADERS([szlib.h],
+- [HAVE_SZLIB_H="yes"],
+- [CPPFLAGS="$saved_CPPFLAGS"])
+-
+- if test -n "$szlib_lib"; then
+- LDFLAGS="$LDFLAGS -L$szlib_lib"
+- fi
+-
+- AC_CHECK_LIB([sz], [SZ_BufftoBuffCompress],,
+- [LDFLAGS="$saved_LDFLAGS"; unset HAVE_SZLIB])
+-
+- if test -z "$HAVE_SZLIB" -a -n "$HDF5_CONFIG_ABORT"; then
+- AC_MSG_ERROR([couldn't find szlib library, check if szip library is valid])
+- fi
+- ;;
+-esac
+-
+-
+-if test "X$HAVE_SZLIB" = "Xyes"; then
+- dnl SZLIB library is available. Check if it can encode
+-
+- dnl Given that user specifies h5cc, LDFLAGS in h5cc should be overriden; otherwise,
+- dnl the encoding test will be performed on the SZIP library linked with HDF5, not
+- dnl the SZIP library user specifies. To suppress the SZIP library linked with HDF5,
+- dnl we prepend the user-specified SZIP library path to LDFLAGS in h5cc by using awk.
+-
+- AC_PROG_AWK
+-
+- AC_MSG_CHECKING([for h5cc])
+- PURE_CC=""
+- if ($CC -show &> /dev/null); then
+- dnl Since CC can be "h5cc -Df2cFortran", arguments should be removed
+- PURE_CC=`echo "$CC" | $AWK '{ split($1, array, " ") ; printf array[[1]] }'`
+- AC_MSG_RESULT([$PURE_CC])
+- else
+- AC_MSG_RESULT([$CC])
+- AC_MSG_ERROR([CC is not h5cc])
+- fi
+-
+- SZIP_CC=szip_cc
+- cat $PURE_CC | $AWK '{ if ( $0 ~ /^LDFLAGS=\"(.*)/ ) { print substr($0, 1, 9) " -L'$szlib_lib' " substr($0, 10) } else { print } } ' > $SZIP_CC
+- chmod 755 $SZIP_CC
+- saved_CC="$CC"
+- CC=./$SZIP_CC
+-
+- AC_MSG_CHECKING([for szlib encoder])
+-
+- AC_CACHE_VAL([he5_cv_szlib_functional],
+- [AC_TRY_RUN([
+- #include <stddef.h>
+- #include <szlib.h>
+-
+- int main(void)
+- {
+- SZ_encoder_enabled();
+- exit(0);
+- }
+- ], [he5_cv_szlib_functional=yes], [he5_cv_szlib_functional=no],)])
+-
+- AC_CACHE_VAL([he5_cv_szlib_can_encode],
+- [AC_TRY_RUN([
+- #include <stddef.h>
+- #include <szlib.h>
+-
+- int main(void)
+- {
+- /* SZ_encoder_enabled returns 1 if encoder is present */
+- if(SZ_encoder_enabled() == 1)
+- exit(0);
+- else
+- exit(1);
+- }
+- ], [he5_cv_szlib_can_encode=yes], [he5_cv_szlib_can_encode=no],)])
+-
+- CC="$saved_CC"
+- rm -f $SZIP_CC
+-
+- if test ${he5_cv_szlib_functional} = "no"; then
+- he5_cv_szlib_can_encode=broken
+- else
+- AC_DEFINE(HAVE_FILTER_SZIP, 1,
+- [Define if support for szip filter is enabled])
+- USE_FILTER_SZIP="yes"
+- fi
+-
+- if test ${he5_cv_szlib_can_encode} = "yes"; then
+- AC_DEFINE(HAVE_FILTER_SZIP_ENCODER, 1,
+- [Define if support for szip encoder filter is enabled])
+- USE_SZIP_ENCODER="yes"
+- AC_MSG_RESULT([yes])
+- fi
+- if test ${he5_cv_szlib_can_encode} = "no"; then
+- AC_MSG_RESULT([no])
+- fi
+- if test ${he5_cv_szlib_can_encode} = "broken"; then
+- AC_MSG_RESULT([shared szlib doesn't work. disabling szip.])
+- fi
+-
+- dnl Add "szip" to external filter list
+- if test ${he5_cv_szlib_can_encode} = "yes"; then
+- if test "X$EXTERNAL_FILTERS" != "X"; then
+- EXTERNAL_FILTERS="${EXTERNAL_FILTERS},"
+- fi
+- EXTERNAL_FILTERS="${EXTERNAL_FILTERS}szip(encoder)"
+- fi
+- if test ${he5_cv_szlib_can_encode} = "no"; then
+- if test "X$EXTERNAL_FILTERS" != "X"; then
+- EXTERNAL_FILTERS="${EXTERNAL_FILTERS},"
+- fi
+- EXTERNAL_FILTERS="${EXTERNAL_FILTERS}szip(no encoder)"
+- fi
+-fi
+-
+-# Check for the HDF5 library using the --with argument
+-# Of course HDF5 is required, but the user may be using h5cc, in which case
+-# they don't need to specify --with-hdf5. They can also use
+-# --with-hdf5=/path/to/hdf5 to give a specific path.
+-HAVE_HDF5="yes"
+-AC_ARG_WITH([hdf5],
+- [AC_HELP_STRING([--with-hdf5=DIR],
+- [Specify path to HDF5 library to use while building
+- [default=yes]])],,
+- withval=yes)
+-
+-case $withval in
+- yes)
+- ;;
+- no)
+- AC_MSG_ERROR([HDF5 disabled in confugre, but is required to build HDF-EOS5.])
+- ;;
+- *)
+- case "$withval" in
+- *,*)
+- hdf5_inc="`echo $withval |cut -f1 -d,`"
+- hdf5_lib="`echo $withval |cut -f2 -d, -s`"
+- ;;
+- *)
+- if test -n "$withval"; then
+- hdf5_inc="$withval/include"
+- hdf5_lib="$withval/lib"
+- fi
+- ;;
+- esac
+-
+- dnl Trying to include -I/usr/include and -L/usr/lib is redundant and
+- dnl can mess some compilers up.
+- if test "X$hdf5_inc" = "X/usr/include"; then
+- hdf5_inc=""
+- fi
+- if test "X$hdf5_lib" = "X/usr/lib"; then
+- hdf5_lib=""
+- fi
+-
+- if test -n "$hdf5_inc"; then
+- CPPFLAGS="$CPPFLAGS -I$hdf5_inc"
+- CFLAGS="$CFLAGS -I$hdf5_inc"
+- fi
+-
+- if test -n "$hdf5_lib"; then
+- LDFLAGS="$LDFLAGS -L$hdf5_lib"
+- fi
+- ;;
+-esac
+-
+-dnl See if we have a valid linking path to the HDF5 library, either because
+-dnl it's in the user's path or because they provided the correct path using
+-dnl --with-hdf5
+-AC_CHECK_HEADERS([hdf5.h], , [HAVE_HDF5="no"])
+-AC_CHECK_LIB(hdf5, H5Fcreate,, [HAVE_HDF5="no"])
+-
+-if test "X$HAVE_HDF5" = "Xno"; then
+- AC_MSG_ERROR([can't link against HDF5 library])
+-fi
+-
+-
+-# Check whether HDF5 threadsafety is enabled
+-AC_MSG_CHECKING([if HDF5 threadsafe mode is enabled])
+-AC_TRY_RUN([
+-#include "hdf5.h"
+-
+-int main(void) {
+-#ifdef H5_HAVE_THREADSAFE
+- return 0;
+-#else
+- return 1;
+-#endif
+-} ],
+- [ AC_MSG_RESULT([yes])
+- THREADSAFE="yes"],
+- [AC_MSG_RESULT([no])
+- THREADSAFE="no"])
+-
+-# Record threadsafe status in config.h and for Makefiles
+-if test "X$THREADSAFE" = "Xyes"; then
+- AC_DEFINE([_HDFEOS5_THREADSAFE], [1],
+- [Define if threadsafe HDF-EOS is enabled])
+-fi
+-
+-AM_CONDITIONAL([THREADSAFE_CONDITIONAL], [test "X$THREADSAFE" = "Xyes"])
+-
+-
+-if test "x$HAVE_HDF5" = "xyes"; then
+- dnl Check if HDF5 is linked with SZIP encoder
+-
+- AC_MSG_CHECKING([for hdf5 szip decoding filter])
+- AC_CACHE_VAL([he5_cv_hdf5_szip_can_decode],
+- [AC_TRY_RUN([
+- #include <H5Ipublic.h>
+- #include <H5Zpublic.h>
+-
+- int main(int argc, char **argv)
+- {
+- herr_t ret;
+- unsigned int flags = 0;
+- int decoder = 0;
+-
+- ret = H5Zget_filter_info(H5Z_FILTER_SZIP, &flags);
+- if (ret < 0) exit(1);
+- decoder = flags & H5Z_FILTER_CONFIG_DECODE_ENABLED;
+- if (decoder) exit(0);
+- else exit(1);
+- }
+- ], [he5_cv_hdf5_szip_can_decode=yes], [he5_cv_hdf5_szip_can_decode=no],)])
+- if test ${he5_cv_hdf5_szip_can_decode} = "yes"; then
+- AC_DEFINE(HAVE_HDF5_SZIP_DECODER, 1,
+- [Define if HDF5 has szip decoder filter])
+- AC_DEFINE(H5_HAVE_FILTER_SZIP, 1,
+- [Define if HDF5 has szip any type of filter])
+- AC_MSG_RESULT([yes])
+- else
+- AC_MSG_RESULT([no])
+- fi
+-
+- AC_MSG_CHECKING([for hdf5 szip encoding filter])
+- AC_CACHE_VAL([he5_cv_hdf5_szip_can_encode],
+- [AC_TRY_RUN([
+- #include <H5Ipublic.h>
+- #include <H5Zpublic.h>
+-
+- int main(int argc, char **argv)
+- {
+- herr_t ret;
+- unsigned int flags = 0;
+- int encoder = 0;
+-
+- ret = H5Zget_filter_info(H5Z_FILTER_SZIP, &flags);
+- if (ret < 0) exit(1);
+- encoder = flags & H5Z_FILTER_CONFIG_ENCODE_ENABLED;
+- if (encoder) exit(0);
+- else exit(1);
+- }
+- ], [he5_cv_hdf5_szip_can_encode=yes], [he5_cv_hdf5_szip_can_encode=no],)])
+-
+- if test ${he5_cv_hdf5_szip_can_encode} = "yes"; then
+- AC_DEFINE(HAVE_HDF5_SZIP_ENCODER, 1,
+- [Define if HDF5 has szip encoder filter])
+- AC_MSG_RESULT([yes])
+- else
+- AC_MSG_RESULT([no])
+- fi
+-
+- dnl Check if SZIP linked with HDF5 has the same configuration as SZIP given by --with-szlib option has
+- if test ${he5_cv_hdf5_szip_can_decode} = "no"; then
+- if test "X$HAVE_SZLIB" = "Xyes"; then
+- AC_MSG_ERROR([HDF5 was linked without SZIP, but --with-szlib was given])
+- fi
+- else
+- if test "X$HAVE_SZLIB" != "Xyes"; then
+- AC_MSG_ERROR([HDF5 was linked with SZIP, but --with-szlib was not given])
+- fi
+- if test ${he5_cv_szlib_functional} = "no"; then
+- AC_MSG_ERROR([SZIP specified in --with-szlib is not functional])
+- fi
+- if test ${he5_cv_hdf5_szip_can_encode} = "no"; then
+- if test ${he5_cv_szlib_can_encode} = "yes"; then
+- AC_MSG_ERROR([HDF5 was linked without SZIP encoder, but yours has SZIP encoder])
+- fi
+- else
+- if test ${he5_cv_szlib_can_encode} = "no"; then
+- AC_MSG_ERROR([HDF5 was linked with SZIP encoder, but yours does not have SZIP encoder])
+- fi
+- fi
+- fi
+-fi
+-
+ # Set CFLAGS to prevent AC_PROG_CC from setting it
+ CFLAGS=$CFLAGS
+
+@@ -584,14 +160,10 @@ AM_CONDITIONAL([INSTALL_INCLUDE_CONDITIONAL], [test "X$INSTALL_INCLUDE" = "Xyes"
+ AM_CONDITIONAL([F2CFORTRAN_CONDITIONAL], [test "X$F2CFORTRAN_MACRO" = "Xyes"])
+ AM_CONDITIONAL([F2CFORTRAN_90_CONDITIONAL], [test "X$F2CFORTRAN_90" = "Xyes"])
+ AM_CONDITIONAL([F2CFORTRAN_32PTR_CONDITIONAL], [test "X$F2CFORTRAN_32PTR" = "Xyes"])
+-AM_CONDITIONAL([SZIP_ENCODER_CONDITIONAL], [test "X$USE_SZIP_ENCODER" = "Xyes"])
+
+ AC_CONFIG_FILES([Makefile
+- include/Makefile
+- src/Makefile
+ gctp/Makefile
+ gctp/include/Makefile
+- gctp/src/Makefile
+- samples/Makefile])
++ gctp/src/Makefile])
+
+ AC_OUTPUT
+--
+2.5.0
+
diff --git a/guix/packages.scm b/guix/packages.scm
index d62d1f3..5cba5a5 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -406,6 +406,7 @@ IMPORTED-MODULES specify modules to use/import for use by SNIPPET."
(define decompression-type
(cond ((string-suffix? "gz" source-file-name) "gzip")
+ ((string-suffix? "Z" source-file-name) "gzip")
((string-suffix? "bz2" source-file-name) "bzip2")
((string-suffix? "lz" source-file-name) "lzip")
((string-suffix? "zip" source-file-name) "unzip")
--
2.5.0