Bug#1107056: libhdf4 FTCBFS: gfortran dependency not satisfiable
Helmut Grohne
helmut at subdivi.de
Sat May 31 18:33:45 BST 2025
Source: libhdf4
Version: 4.3.0-1
Tags: patch
User: debian-cross at lists.debian.org
Usertags: ftcbfs
libhdf4 fails to cross build from source, because its gfortran build
dependency is not satisfiable. In general, bare toolchain dependencies
are not compatible with cross compilation, because they do not indicate
the architecture they are used for. In this case, gfortran-for-host
should be used.
Note that gfortran-for-host does not provide a bare gfortran. For using
it, it must be invoked as ${DEB_HOST_GNU_TYPE}-gfortran. All other
alternatives regress some other use case. Hence I propose letting dpkg's
buildtools.mk initialize F77.
With these changes, we may run configure, but that fails detecting
whether szip provides an encoder. It invokes SZ_encoder_enabled() and
this is not something we can do during cross compilation. Recent
versions always have encoder support, so I suggest guessing this during
cross builds.
With that additional change, configure passes, but make still fails. It
runs ncgen during build for ctest0 and ftest0. Both are check programs
not needed in a nocheck build, but the upstream build system insists
building them. For one thing, mfhdf/ncgen/Makefile.am adds them to
noinst_PROGRAMS (which it likely should not do). For another
config/conclude.am explicitly adds $(chk_TESTS) to all-local so even
then check_PROGRAMS are built with the all target. I tried removing
them from the nocheck build, but I did not find a good way to achieve
that. Thus leaving this aspect unaddressed for the moment. Let me know
if you have good ideas.
I note that the patch is meant for forky, not trixie. And then even if
you leave the ncgen aspect unaddressed, please close this bug when
addressing the Build-Dependency.
Helmut
-------------- next part --------------
diff --minimal -Nru libhdf4-4.3.0/debian/changelog libhdf4-4.3.0/debian/changelog
--- libhdf4-4.3.0/debian/changelog 2024-04-09 20:42:32.000000000 +0200
+++ libhdf4-4.3.0/debian/changelog 2025-05-31 17:49:16.000000000 +0200
@@ -1,3 +1,10 @@
+libhdf4 (4.3.0-1.1) UNRELEASED; urgency=medium
+
+ * Non-maintainer upload.
+ * Improve cross building: Use gfortran-for-host. (Closes: #-1)
+
+ -- Helmut Grohne <helmut at subdivi.de> Sat, 31 May 2025 17:49:16 +0200
+
libhdf4 (4.3.0-1) unstable; urgency=medium
* Team upload.
diff --minimal -Nru libhdf4-4.3.0/debian/control libhdf4-4.3.0/debian/control
--- libhdf4-4.3.0/debian/control 2024-04-09 20:42:13.000000000 +0200
+++ libhdf4-4.3.0/debian/control 2025-05-31 17:47:51.000000000 +0200
@@ -8,7 +8,7 @@
chrpath,
debhelper-compat (= 13),
flex,
- gfortran,
+ gfortran-for-host,
libaec-dev,
libjpeg-dev,
libtirpc-dev,
diff --minimal -Nru libhdf4-4.3.0/debian/patches/cross.patch libhdf4-4.3.0/debian/patches/cross.patch
--- libhdf4-4.3.0/debian/patches/cross.patch 1970-01-01 01:00:00.000000000 +0100
+++ libhdf4-4.3.0/debian/patches/cross.patch 2025-05-31 17:49:16.000000000 +0200
@@ -0,0 +1,26 @@
+--- libhdf4-4.3.0.orig/configure.ac
++++ libhdf4-4.3.0/configure.ac
+@@ -845,15 +845,16 @@
+ else
+ exit(1);
+ }
+- ]])],[CAN_ENCODE="yes"],[CAN_ENCODE="no"],[])
+-
+- ## Report szip encoder test results
+- if test "X$CAN_ENCODE" = "Xyes"; then
++ ]])],[
+ AC_MSG_RESULT([yes])
+- fi
+- if test "X$CAN_ENCODE" = "Xno"; then
++ CAN_ENCODE="yes"
++ ],[
+ AC_MSG_RESULT([no])
+- fi
++ CAN_ENCODE="no"
++ ],[
++ AC_MSG_RESULT([cross compiling. guessing yes])
++ CAN_ENCODE="yes"
++ ])
+
+ ## Add "szip" to external filter list
+ if test "X$CAN_ENCODE" = "Xyes"; then
diff --minimal -Nru libhdf4-4.3.0/debian/patches/series libhdf4-4.3.0/debian/patches/series
--- libhdf4-4.3.0/debian/patches/series 2024-04-09 20:42:02.000000000 +0200
+++ libhdf4-4.3.0/debian/patches/series 2025-05-31 17:49:16.000000000 +0200
@@ -1,3 +1,4 @@
enablesharedfortran.diff
reproducible-builds.patch
szlib.patch
+cross.patch
diff --minimal -Nru libhdf4-4.3.0/debian/rules libhdf4-4.3.0/debian/rules
--- libhdf4-4.3.0/debian/rules 2024-04-09 20:42:02.000000000 +0200
+++ libhdf4-4.3.0/debian/rules 2025-05-31 17:49:16.000000000 +0200
@@ -9,12 +9,11 @@
export DEB_BUILD_MAINT_OPTIONS=hardening=+all
include /usr/share/dpkg/architecture.mk
+include /usr/share/dpkg/buildtools.mk
include /usr/share/dpkg/pkg-info.mk
UPSTREAM_VERSION = $(shell echo $(DEB_VERSION_UPSTREAM) | sed -e 's/\+.*//')
-DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
-
RELEASE := $(UPSTREAM_VERSION)
PACKAGE := libhdf4
SOVER := 0
@@ -22,9 +21,6 @@
DESTDIR := $(CURDIR)/debian/tmp
DESTDIR_ALT := $(CURDIR)/debian/tmp-alt
-F77 := gfortran
-CC := gcc
-CXX := g++
LIBS := -ljpeg -lz -lm
export DEB_FFLAGS_MAINT_APPEND += -fallow-argument-mismatch
More information about the Pkg-grass-devel
mailing list