[R-pkg-team] Bug#1139545: r-cran-hdf5r: FTBFS against HDF5 2.1.0 - implicit declaration of function ‘H5FD_family_init’
Gilles Filippini
pini at debian.org
Sat Jun 20 16:20:09 BST 2026
Control: tags -1 + patch
Hi,
Gilles Filippini a écrit le 09/06/2026 à 13:22 :
> Source: r-cran-hdf5r
> Version: 1.3.12+dfsg-3
> Severity: important
> Tags: ftbfs
>
> Hi,
>
> During a test rebuild of HDF5's reverse dependcies against HDF5 2.1.0
> currently in experimental, r-cran-hdf5r FTBFS with:
>
> Wrapper_auto_H5FDfamily.c: In function ‘R_H5FD_family_init’:
> Wrapper_auto_H5FDfamily.c:23:22: error: implicit declaration of function ‘H5FD_family_init’; did you mean ‘R_H5FD_family_init’? [-Wimplicit-function-declaration]
> 23 | hid_t return_val = H5FD_family_init();
> | ^~~~~~~~~~~~~~~~
> | R_H5FD_family_init
>
>
> I know nothing about R unfortunately, so I cannot fix it by myself.
Please review the attached patch.
Best,
_g.
-------------- next part --------------
diff -Nru r-cran-hdf5r-1.3.12+dfsg/debian/changelog r-cran-hdf5r-1.3.12+dfsg/debian/changelog
--- r-cran-hdf5r-1.3.12+dfsg/debian/changelog 2026-03-11 04:20:28.000000000 +0100
+++ r-cran-hdf5r-1.3.12+dfsg/debian/changelog 2026-06-20 16:49:06.000000000 +0200
@@ -1,3 +1,10 @@
+r-cran-hdf5r (1.3.12+dfsg-3.1) UNRELEASED; urgency=medium
+
+ * Non-maintainer upload.
+ * Fix FTBFS against HDF5 2.1.0
+
+ -- Gilles Filippini <pini at debian.org> Sat, 20 Jun 2026 16:49:06 +0200
+
r-cran-hdf5r (1.3.12+dfsg-3) unstable; urgency=medium
[ Andreas Tille ]
diff -Nru r-cran-hdf5r-1.3.12+dfsg/debian/patches/hdf5-2.1.0.patch r-cran-hdf5r-1.3.12+dfsg/debian/patches/hdf5-2.1.0.patch
--- r-cran-hdf5r-1.3.12+dfsg/debian/patches/hdf5-2.1.0.patch 1970-01-01 01:00:00.000000000 +0100
+++ r-cran-hdf5r-1.3.12+dfsg/debian/patches/hdf5-2.1.0.patch 2026-06-20 16:49:06.000000000 +0200
@@ -0,0 +1,250 @@
+Index: r-cran-hdf5r-1.3.12+dfsg/configure.ac
+===================================================================
+--- r-cran-hdf5r-1.3.12+dfsg.orig/configure.ac
++++ r-cran-hdf5r-1.3.12+dfsg/configure.ac
+@@ -125,7 +125,7 @@ fi
+ HDF5_LIBS=`${H5CC} -show | ${GREP} -o " \-[lL][^[:space:]]\+" | tr "\n" " "`
+ ]
+ dnl Fix for newer Debian versions
+-HDF5_LIBS="${HDF5_LIBS} -L. -lhdf5_hl -lhdf5 -lz -lm"
++HDF5_LIBS="${HDF5_LIBS} -lhdf5${HDF5_INFIX}_hl -lhdf5${HDF5_INFIX} -lz -lm"
+
+ #########################
+ # Determine HDF5_CPPFLAGS
+Index: r-cran-hdf5r-1.3.12+dfsg/inst/m4/ax_lib_hdf5.m4
+===================================================================
+--- r-cran-hdf5r-1.3.12+dfsg.orig/inst/m4/ax_lib_hdf5.m4
++++ r-cran-hdf5r-1.3.12+dfsg/inst/m4/ax_lib_hdf5.m4
+@@ -236,7 +236,17 @@ HDF5 support is being disabled (equivale
+ esac
+ done
+
+- HDF5_LIBS="$HDF5_LIBS -lhdf5"
++ HDF5_INFIX=
++ for lib in $HDF5_LIBS; do
++ case "$lib" in
++ -lhdf5_*)
++ HDF5_INFIX="${lib#-lhdf5_}"
++ HDF5_INFIX="_${HDF5_INFIX%%_*}"
++ break
++ ;;
++ esac
++ done
++ HDF5_LIBS="$HDF5_LIBS -lhdf5$HDF5_INFIX"
+ AC_MSG_RESULT([yes (version $[HDF5_VERSION])])
+
+ dnl See if we can compile
+@@ -250,19 +260,19 @@ HDF5 support is being disabled (equivale
+ LIBS=$HDF5_LIBS
+ LDFLAGS=$HDF5_LDFLAGS
+ AC_CHECK_HEADER([hdf5.h], [ac_cv_hadf5_h=yes], [ac_cv_hadf5_h=no])
+- AC_CHECK_LIB([hdf5], [H5Fcreate], [ac_cv_libhdf5=yes],
++ AC_CHECK_LIB([hdf5$HDF5_INFIX], [H5Fcreate], [ac_cv_libhdf5=yes],
+ [ac_cv_libhdf5=no])
+ if test "$ac_cv_hadf5_h" = "no" && test "$ac_cv_libhdf5" = "no" ; then
+ AC_MSG_WARN([Unable to compile HDF5 test program])
+ fi
+ AC_CHECK_HEADER([hdf5_hl.h], [ac_cv_hadf5_hl_h=yes], [ac_cv_hadf5_hl_h=no], [#include <hdf5.h>])
+- AC_CHECK_LIB([hdf5_hl], [H5LTpath_valid], [ac_cv_libhdf5_hl=yes],
++ AC_CHECK_LIB([hdf5${HDF5_INFIX}_hl], [H5LTpath_valid], [ac_cv_libhdf5_hl=yes],
+ [ac_cv_libhdf5_hl=no])
+ if test "$ac_cv_hadf5_hl_h" = "no" && test "$ac_cv_libhdf5_hl" = "no"; then
+ AC_MSG_WARN([Unable to compile HDF5_HL test program])
+ fi
+ dnl Look for HDF5's high level library
+- AC_CHECK_LIB([hdf5_hl], [main], [HDF5_LIBS="$HDF5_LIBS -lhdf5_hl"], [], [])
++ AC_CHECK_LIB([hdf5${HDF5_INFIX}_hl], [main], [HDF5_LIBS="$HDF5_LIBS -lhdf5${HDF5_INFIX}_hl"], [], [])
+
+ CC=$ax_lib_hdf5_save_CC
+ CPPFLAGS=$ax_lib_hdf5_save_CPPFLAGS
+@@ -299,9 +309,9 @@ HDF5 support is being disabled (equivale
+ for arg in $HDF5_LIBS
+ do
+ case "$arg" in #(
+- -lhdf5_hl) HDF5_FLIBS="$HDF5_FLIBS -lhdf5hl_fortran $arg"
++ -lhdf5${HDF5_INFIX}_hl) HDF5_FLIBS="$HDF5_FLIBS -lhdf5${HDF5_INFIX}_hl_fortran $arg"
+ ;; #(
+- -lhdf5) HDF5_FLIBS="$HDF5_FLIBS -lhdf5_fortran $arg"
++ -lhdf5${HDF5_INFIX}) HDF5_FLIBS="$HDF5_FLIBS -lhdf5${HDF5_INFIX}_fortran $arg"
+ ;; #(
+ *) HDF5_FLIBS="$HDF5_FLIBS $arg"
+ ;;
+Index: r-cran-hdf5r-1.3.12+dfsg/src/1_12_0/Wrapper_auto_H5FDfamily.c
+===================================================================
+--- r-cran-hdf5r-1.3.12+dfsg.orig/src/1_12_0/Wrapper_auto_H5FDfamily.c
++++ r-cran-hdf5r-1.3.12+dfsg/src/1_12_0/Wrapper_auto_H5FDfamily.c
+@@ -17,6 +17,7 @@
+ *************************************************************************/
+
+ #include "Wrapper_auto_H5FDfamily.h"
++#if defined(H5FD_family_init)
+ /* H5_DLL hid_t H5FD_family_init(void); */
+ SEXP R_H5FD_family_init(void){
+ int vars_protected=0;
+@@ -35,6 +36,7 @@ SEXP R_H5FD_family_init(void){
+ UNPROTECT(vars_protected);
+ return(__ret_list);
+ }
++#endif
+
+ /* H5_DLL herr_t H5Pget_fapl_family(hid_t fapl_id, hsize_t *memb_size, hid_t *memb_fapl_id); */
+ SEXP R_H5Pget_fapl_family(SEXP R_fapl_id, SEXP R_memb_size, SEXP R_memb_fapl_id){
+Index: r-cran-hdf5r-1.3.12+dfsg/src/1_12_0/Wrapper_auto_H5FDfamily.h
+===================================================================
+--- r-cran-hdf5r-1.3.12+dfsg.orig/src/1_12_0/Wrapper_auto_H5FDfamily.h
++++ r-cran-hdf5r-1.3.12+dfsg/src/1_12_0/Wrapper_auto_H5FDfamily.h
+@@ -1,8 +1,10 @@
+ #ifndef _WRAPPER_AUTO_H5FDFAMILY_H_
+ #define _WRAPPER_AUTO_H5FDFAMILY_H_
+ #include "global.h"
++#if defined(H5FD_family_init)
+ /* H5_DLL hid_t H5FD_family_init(void); */
+ SEXP R_H5FD_family_init(void);
++#endif
+ /* H5_DLL herr_t H5Pget_fapl_family(hid_t fapl_id, hsize_t *memb_size, hid_t *memb_fapl_id); */
+ SEXP R_H5Pget_fapl_family(SEXP R_fapl_id, SEXP R_memb_size, SEXP R_memb_fapl_id);
+ /* H5_DLL herr_t H5Pset_fapl_family(hid_t fapl_id, hsize_t memb_size, hid_t memb_fapl_id); */
+Index: r-cran-hdf5r-1.3.12+dfsg/src/1_12_0/Wrapper_auto_H5FDlog.c
+===================================================================
+--- r-cran-hdf5r-1.3.12+dfsg.orig/src/1_12_0/Wrapper_auto_H5FDlog.c
++++ r-cran-hdf5r-1.3.12+dfsg/src/1_12_0/Wrapper_auto_H5FDlog.c
+@@ -17,6 +17,7 @@
+ *************************************************************************/
+
+ #include "Wrapper_auto_H5FDlog.h"
++#if defined(H5FD_log_init)
+ /* H5_DLL hid_t H5FD_log_init(void); */
+ SEXP R_H5FD_log_init(void){
+ int vars_protected=0;
+@@ -35,6 +36,7 @@ SEXP R_H5FD_log_init(void){
+ UNPROTECT(vars_protected);
+ return(__ret_list);
+ }
++#endif
+
+ /* H5_DLL herr_t H5Pset_fapl_log(hid_t fapl_id, const char *logfile, unsigned long long flags, size_t buf_size); */
+ SEXP R_H5Pset_fapl_log(SEXP R_fapl_id, SEXP R_logfile, SEXP R_flags, SEXP R_buf_size){
+Index: r-cran-hdf5r-1.3.12+dfsg/src/1_12_0/Wrapper_auto_H5FDlog.h
+===================================================================
+--- r-cran-hdf5r-1.3.12+dfsg.orig/src/1_12_0/Wrapper_auto_H5FDlog.h
++++ r-cran-hdf5r-1.3.12+dfsg/src/1_12_0/Wrapper_auto_H5FDlog.h
+@@ -1,8 +1,10 @@
+ #ifndef _WRAPPER_AUTO_H5FDLOG_H_
+ #define _WRAPPER_AUTO_H5FDLOG_H_
+ #include "global.h"
++#if defined(H5FD_log_init)
+ /* H5_DLL hid_t H5FD_log_init(void); */
+ SEXP R_H5FD_log_init(void);
++#endif
+ /* H5_DLL herr_t H5Pset_fapl_log(hid_t fapl_id, const char *logfile, unsigned long long flags, size_t buf_size); */
+ SEXP R_H5Pset_fapl_log(SEXP R_fapl_id, SEXP R_logfile, SEXP R_flags, SEXP R_buf_size);
+ #endif
+Index: r-cran-hdf5r-1.3.12+dfsg/src/1_12_0/Wrapper_auto_H5FDsec2.c
+===================================================================
+--- r-cran-hdf5r-1.3.12+dfsg.orig/src/1_12_0/Wrapper_auto_H5FDsec2.c
++++ r-cran-hdf5r-1.3.12+dfsg/src/1_12_0/Wrapper_auto_H5FDsec2.c
+@@ -17,6 +17,7 @@
+ *************************************************************************/
+
+ #include "Wrapper_auto_H5FDsec2.h"
++#if defined(H5FD_sec2_init)
+ /* H5_DLL hid_t H5FD_sec2_init(void); */
+ SEXP R_H5FD_sec2_init(void){
+ int vars_protected=0;
+@@ -35,6 +36,7 @@ SEXP R_H5FD_sec2_init(void){
+ UNPROTECT(vars_protected);
+ return(__ret_list);
+ }
++#endif
+
+ /* H5_DLL herr_t H5Pset_fapl_sec2(hid_t fapl_id); */
+ SEXP R_H5Pset_fapl_sec2(SEXP R_fapl_id){
+Index: r-cran-hdf5r-1.3.12+dfsg/src/1_12_0/Wrapper_auto_H5FDsec2.h
+===================================================================
+--- r-cran-hdf5r-1.3.12+dfsg.orig/src/1_12_0/Wrapper_auto_H5FDsec2.h
++++ r-cran-hdf5r-1.3.12+dfsg/src/1_12_0/Wrapper_auto_H5FDsec2.h
+@@ -1,8 +1,10 @@
+ #ifndef _WRAPPER_AUTO_H5FDSEC2_H_
+ #define _WRAPPER_AUTO_H5FDSEC2_H_
+ #include "global.h"
++#if defined(H5FD_sec2_init)
+ /* H5_DLL hid_t H5FD_sec2_init(void); */
+ SEXP R_H5FD_sec2_init(void);
++#endif
+ /* H5_DLL herr_t H5Pset_fapl_sec2(hid_t fapl_id); */
+ SEXP R_H5Pset_fapl_sec2(SEXP R_fapl_id);
+ #endif
+Index: r-cran-hdf5r-1.3.12+dfsg/src/1_12_0/Wrapper_auto_H5FDstdio.c
+===================================================================
+--- r-cran-hdf5r-1.3.12+dfsg.orig/src/1_12_0/Wrapper_auto_H5FDstdio.c
++++ r-cran-hdf5r-1.3.12+dfsg/src/1_12_0/Wrapper_auto_H5FDstdio.c
+@@ -17,6 +17,7 @@
+ *************************************************************************/
+
+ #include "Wrapper_auto_H5FDstdio.h"
++#if defined(H5FD_stdio_init)
+ /* H5_DLL hid_t H5FD_stdio_init(void); */
+ SEXP R_H5FD_stdio_init(void){
+ int vars_protected=0;
+@@ -35,6 +36,7 @@ SEXP R_H5FD_stdio_init(void){
+ UNPROTECT(vars_protected);
+ return(__ret_list);
+ }
++#endif
+
+ /* H5_DLL herr_t H5Pset_fapl_stdio(hid_t fapl_id); */
+ SEXP R_H5Pset_fapl_stdio(SEXP R_fapl_id){
+Index: r-cran-hdf5r-1.3.12+dfsg/src/1_12_0/Wrapper_auto_H5FDstdio.h
+===================================================================
+--- r-cran-hdf5r-1.3.12+dfsg.orig/src/1_12_0/Wrapper_auto_H5FDstdio.h
++++ r-cran-hdf5r-1.3.12+dfsg/src/1_12_0/Wrapper_auto_H5FDstdio.h
+@@ -1,8 +1,10 @@
+ #ifndef _WRAPPER_AUTO_H5FDSTDIO_H_
+ #define _WRAPPER_AUTO_H5FDSTDIO_H_
+ #include "global.h"
++#if defined(H5FD_stdio_init)
+ /* H5_DLL hid_t H5FD_stdio_init(void); */
+ SEXP R_H5FD_stdio_init(void);
++#endif
+ /* H5_DLL herr_t H5Pset_fapl_stdio(hid_t fapl_id); */
+ SEXP R_H5Pset_fapl_stdio(SEXP R_fapl_id);
+ #endif
+Index: r-cran-hdf5r-1.3.12+dfsg/src/1_12_0/export_auto.h
+===================================================================
+--- r-cran-hdf5r-1.3.12+dfsg.orig/src/1_12_0/export_auto.h
++++ r-cran-hdf5r-1.3.12+dfsg/src/1_12_0/export_auto.h
+@@ -165,26 +165,34 @@ R_CallMethodDef library_WRAPPER_AUTO_H5F
+ };
+
+ R_CallMethodDef library_WRAPPER_AUTO_H5FDFAMILY[] = {
++#if defined(H5FD_family_init)
+ {"R_H5FD_family_init", (DL_FUNC) &R_H5FD_family_init, 0},
++#endif
+ {"R_H5Pget_fapl_family", (DL_FUNC) &R_H5Pget_fapl_family, 3},
+ {"R_H5Pset_fapl_family", (DL_FUNC) &R_H5Pset_fapl_family, 3},
+ {NULL, NULL, 0}
+ };
+
+ R_CallMethodDef library_WRAPPER_AUTO_H5FDLOG[] = {
++#if defined(H5FD_log_init)
+ {"R_H5FD_log_init", (DL_FUNC) &R_H5FD_log_init, 0},
++#endif
+ {"R_H5Pset_fapl_log", (DL_FUNC) &R_H5Pset_fapl_log, 4},
+ {NULL, NULL, 0}
+ };
+
+ R_CallMethodDef library_WRAPPER_AUTO_H5FDSEC2[] = {
++#if defined(H5FD_sec2_init)
+ {"R_H5FD_sec2_init", (DL_FUNC) &R_H5FD_sec2_init, 0},
++#endif
+ {"R_H5Pset_fapl_sec2", (DL_FUNC) &R_H5Pset_fapl_sec2, 1},
+ {NULL, NULL, 0}
+ };
+
+ R_CallMethodDef library_WRAPPER_AUTO_H5FDSTDIO[] = {
++#if defined(H5FD_stdio_init)
+ {"R_H5FD_stdio_init", (DL_FUNC) &R_H5FD_stdio_init, 0},
++#endif
+ {"R_H5Pset_fapl_stdio", (DL_FUNC) &R_H5Pset_fapl_stdio, 1},
+ {NULL, NULL, 0}
+ };
diff -Nru r-cran-hdf5r-1.3.12+dfsg/debian/patches/series r-cran-hdf5r-1.3.12+dfsg/debian/patches/series
--- r-cran-hdf5r-1.3.12+dfsg/debian/patches/series 2026-03-11 04:20:09.000000000 +0100
+++ r-cran-hdf5r-1.3.12+dfsg/debian/patches/series 2026-06-20 16:49:06.000000000 +0200
@@ -1,2 +1,3 @@
hdf5path.patch
warn-on-32bit.patch
+hdf5-2.1.0.patch
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://alioth-lists.debian.net/pipermail/r-pkg-team/attachments/20260620/0b8593f1/attachment.sig>
More information about the R-pkg-team
mailing list