Source: libical3
Version: 3.0.20-1
Tags: patch
User: [email protected]
Usertags: ftcbfs

libical3 fails to cross build from source. Quite recently, vapigen was 
updated (#1061107) to better support cross compilation by adding a 
triplet-prefixed wrapper. Using this wrapper (and the valac wrapper) is 
a key ingredient to making libical3 cross buildable. As the upstream 
CMakeLists.txt uses find_program directly, I propose supplying those 
wrappers explicitly. In a more distant future as the wrappers become 
more widely accepted, we might update the upstream build system to 
prefer them over bare tools. The other aspect is running gtk-doc, which 
is something that never works in cross builds. Fortunately, we can just 
disable it in arch-only builds as the documentation is cleanly 
separated. I verified that turning off gtk-doc does not change binary 
artifacts by comparing builds for reproducibility. I'm attaching a 
combined patch for your convenience.

Helmut
diff -Nru libical3-3.0.20/debian/changelog libical3-3.0.20/debian/changelog
--- libical3-3.0.20/debian/changelog    2025-03-11 01:54:05.000000000 +0100
+++ libical3-3.0.20/debian/changelog    2025-10-07 21:37:25.000000000 +0200
@@ -1,3 +1,12 @@
+libical3 (3.0.20-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix FTCBFS: (Closes: #-1)
+    + Explicitly supply triplet-prefixed vapigen and valac.
+    + Skip gtk-doc in arch-only build.
+
+ -- Helmut Grohne <[email protected]>  Tue, 07 Oct 2025 21:37:25 +0200
+
 libical3 (3.0.20-1) unstable; urgency=medium
 
   * New upstream release
diff -Nru libical3-3.0.20/debian/rules libical3-3.0.20/debian/rules
--- libical3-3.0.20/debian/rules        2024-04-25 16:04:06.000000000 +0200
+++ libical3-3.0.20/debian/rules        2025-10-07 21:37:25.000000000 +0200
@@ -7,16 +7,26 @@
 %:
        dh $@ --with gir --buildsystem=cmake --no-parallel
 
-CONFIGURE_FLAGS = -DGOBJECT_INTROSPECTION=true -DICAL_GLIB_VAPI=true
+CONFIGURE_FLAGS = \
+       -DGOBJECT_INTROSPECTION=true \
+       -DICAL_GLIB_VAPI=true \
+       -DICAL_BUILD_DOCS=$(if $(filter libical-doc,$(shell 
dh_listpackages)),ON,OFF)
 
 override_dh_auto_configure:
 ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
        dh_auto_configure -- $(CONFIGURE_FLAGS)
 else
-       dpkg-architecture -a$(DEB_BUILD_ARCH) -f -c dh_auto_configure 
--reload-all-buildenv-variables
-       dpkg-architecture -a$(DEB_BUILD_ARCH) -f -c dh_auto_build 
--reload-all-buildenv-variables
-       dpkg-architecture -a$(DEB_BUILD_ARCH) -f -c dh_auto_install 
--reload-all-buildenv-variables --destdir=debian/nativetmp
-       dh_auto_configure -- $(CONFIGURE_FLAGS) 
-DIMPORT_ICAL_GLIB_SRC_GENERATOR=$(CURDIR)/debian/nativetmp/usr/lib/$(DEB_BUILD_MULTIARCH)/cmake/LibIcal/IcalGlibSrcGenerator.cmake
+       dpkg-architecture -a$(DEB_BUILD_ARCH) -f -c \
+               dh_auto_configure --reload-all-buildenv-variables -- 
-DICAL_BUILD_DOCS=OFF
+       dpkg-architecture -a$(DEB_BUILD_ARCH) -f -c \
+               dh_auto_build --reload-all-buildenv-variables
+       dpkg-architecture -a$(DEB_BUILD_ARCH) -f -c \
+               dh_auto_install --reload-all-buildenv-variables 
--destdir=debian/nativetmp
+       dh_auto_configure -- \
+               $(CONFIGURE_FLAGS) \
+               
-DIMPORT_ICAL_GLIB_SRC_GENERATOR=$(CURDIR)/debian/nativetmp/usr/lib/$(DEB_BUILD_MULTIARCH)/cmake/LibIcal/IcalGlibSrcGenerator.cmake
 \
+               -DVAPIGEN=/usr/bin/$(DEB_HOST_GNU_TYPE)-vapigen \
+               -DVALAC=/usr/bin/$(DEB_HOST_GNU_TYPE)-valac
 endif
 
 override_dh_missing:

Reply via email to