Source: brltty Version: 6.8-4 Tags: patch User: [email protected] Usertags: cross-satisfiability ftcbfs
brltty fails to cross build from source for a fair number of reasons. 1. Build-Depends are not cross-satisfiable. cython3 is not satisfiable. Whilst it may have architecture-dependent behavior, brltty's use is ok. Thus it needs to be annotated :native. 2. debian/rules invokes configure directly. In doing so, it misses passing --build or --host. Consider using dh_auto_configure. 4. When building the Python extension, the host architecture has to be communicated separately via _PYTHON_SYSCONFIGDATA_NAME. 3. Additionally, cross building requires libpython3-all-dev for the host architecture. This is not implied in python3-all-dev:any. 5. The Java compiler is being run. Thus a native development kit is needed. 6. The EuroBraille driver lacks rules for building the eutp objects. Linking eutp fails finding them. I'm not sure how this works in a native build. However, adding the missing rule makes it work. You can find all of the necessary changes in the attached patch. Please consider applying it as it makes brltty cross buildable. Helmut
diff -Nru brltty-6.8/debian/changelog brltty-6.8/debian/changelog --- brltty-6.8/debian/changelog 2025-11-16 18:58:00.000000000 +0100 +++ brltty-6.8/debian/changelog 2025-12-23 19:33:35.000000000 +0100 @@ -1,3 +1,16 @@ +brltty (6.8-4.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Fix FTCBFS: (Closes: #-1) + + Annotate tool dependencies :native. + + Add issing libpython3-all-dev build dependency. + + Pass --build and --host to configure. + + Tell Python about the host architecture. + + Do not use AC_CHECK_FILE for checking headers. + + Define missing rules for EuroBraille driver. + + -- Helmut Grohne <[email protected]> Tue, 23 Dec 2025 19:33:35 +0100 + brltty (6.8-4) unstable; urgency=medium [ Helmut Grohne ] diff -Nru brltty-6.8/debian/control brltty-6.8/debian/control --- brltty-6.8/debian/control 2025-11-09 23:06:01.000000000 +0100 +++ brltty-6.8/debian/control 2025-12-23 19:33:35.000000000 +0100 @@ -9,13 +9,13 @@ Build-Depends: debhelper-compat (= 13), debhelper (>= 13.11.7), dh-python, dh-strip-nondeterminism, dh-exec, pkgconf, tcl, libasound2-dev [linux-any], - python3-all-dev:any, python3-setuptools, - cython3, + libpython3-all-dev, python3-all-dev:native, python3-setuptools, + cython3:native, libexpat1-dev, libgpm-dev [linux-any], libsystemd-dev [linux-any], libicu-dev, liblouis-dev, libpolkit-gobject-1-dev, libcap-dev [linux-any], - default-jdk [!hppa !hurd-any !kfreebsd-any], + default-jdk:native [!hppa !hurd-any !kfreebsd-any], doxygen, linuxdoc-tools, groff, flite1-dev, libncurses-dev, libx11-dev, libxt-dev, libxaw7-dev, diff -Nru brltty-6.8/debian/patches/cross.patch brltty-6.8/debian/patches/cross.patch --- brltty-6.8/debian/patches/cross.patch 1970-01-01 01:00:00.000000000 +0100 +++ brltty-6.8/debian/patches/cross.patch 2025-12-23 19:33:35.000000000 +0100 @@ -0,0 +1,24 @@ +--- brltty-6.8.orig/Bindings/Java/bindings.m4 ++++ brltty-6.8/Bindings/Java/bindings.m4 +@@ -94,7 +94,7 @@ + JAVA_JNI_INC="${java_home_directory}/include" + JAVA_JNI_HDR="jni.h" + JAVA_JNI_FLAGS="" +- AC_CHECK_HEADER([${JAVA_JNI_HDR}], [], [AC_CHECK_FILE(["${JAVA_JNI_INC}/${JAVA_JNI_HDR}"], [JAVA_JNI_FLAGS="-I${JAVA_JNI_INC}"], [JAVA_OK=false])]) ++ AC_CHECK_HEADER([${JAVA_JNI_HDR}], [], [AS_IF([test -e "${JAVA_JNI_INC}/${JAVA_JNI_HDR}"], [JAVA_JNI_FLAGS="-I${JAVA_JNI_INC}"], [JAVA_OK=false])]) + + "${JAVA_OK}" && { + set -- "${JAVA_JNI_INC}"/*/jni_md.h +--- brltty-6.8.orig/Drivers/Braille/EuroBraille/Makefile.in ++++ brltty-6.8/Drivers/Braille/EuroBraille/Makefile.in +@@ -43,6 +43,10 @@ + + EU_TRANSFER_OBJECTS = eutp_brl.$O eutp_convert.$O eutp_debug.$O eutp_pc.$O eutp_tools.$O eutp_transfer.$O eutp_main.$O + ++$(EU_TRANSFER_OBJECTS): ++ $(CC) $(CFLAGS) -c $(SRC_DIR)/$(@:.$O=.c) ++ ++ + EU_TRANSFER_TOOL = eutp$X + EU_TRANSFER_MAN = $(SRC_DIR)/eutp.1 + diff -Nru brltty-6.8/debian/patches/series brltty-6.8/debian/patches/series --- brltty-6.8/debian/patches/series 2025-11-09 23:06:01.000000000 +0100 +++ brltty-6.8/debian/patches/series 2025-12-23 19:33:35.000000000 +0100 @@ -5,3 +5,4 @@ noverbose-bluetooth noverbose-usbfs git-spd-crash +cross.patch diff -Nru brltty-6.8/debian/rules brltty-6.8/debian/rules --- brltty-6.8/debian/rules 2025-11-16 18:53:06.000000000 +0100 +++ brltty-6.8/debian/rules 2025-12-23 19:33:35.000000000 +0100 @@ -23,6 +23,8 @@ PYVERS := $(shell py3versions --supported --version) CONFIGURE_OPTIONS = --exec-prefix=/usr \ + --build=$(DEB_BUILD_GNU_TYPE) \ + --host=$(DEB_HOST_GNU_TYPE) \ --without-theta --without-swift \ JAVA_JNI_DIR=/usr/lib/$(DEB_HOST_MULTIARCH)/jni @@ -46,6 +48,12 @@ CONFIGURE_OPTIONS+=--without-usb-package endif +ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH)) +PYTHON_CROSS_ENV := +else +PYTHON_CROSS_ENV := _PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata__${DEB_HOST_ARCH_OS}_${DEB_HOST_MULTIARCH} +endif + export JAVA_HOME=/usr/lib/jvm/default-java binary: binary-indep binary-arch @@ -88,6 +96,7 @@ mkdir -p build-py$* cd build-py$* && \ PYTHON=/usr/bin/python$* \ + $(PYTHON_CROSS_ENV) \ ../configure \ $(CONFIGURE_OPTIONS) \ $(DEB_CONFIGURE_OPTIONS) @@ -136,7 +145,7 @@ # Bug#1028426 @echo blhc: ignore-line-regexp: .*Bindings/Python.* - $(MAKE) -C build-py$*/Bindings/Python V=1 + $(PYTHON_CROSS_ENV) $(MAKE) -C build-py$*/Bindings/Python V=1 touch $@ @@ -162,7 +171,7 @@ $(MAKE) -C build-brltty install install-messages install-appstream install-polkit INSTALL_ROOT=`pwd`/debian/tmp set -e ; for pyver in $(PYVERS); do \ - $(MAKE) -C build-py$$pyver/Bindings/Python install INSTALL_ROOT=`pwd`/debian/tmp V=1 ; \ + $(PYTHON_CROSS_ENV) $(MAKE) -C build-py$$pyver/Bindings/Python install INSTALL_ROOT=`pwd`/debian/tmp V=1 ; \ done mkdir -p `pwd`/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)

