Package: presage Tags: moreinfo User: debian-cr...@lists.debian.org Usertags: ftcbfs Control: affects -1 + src:maliit-keyboard
Hello presage maintainer, maliit-keyboard fails to cross build from source with the following error: | /usr/bin/text2ngram -n 1 -l -f sqlite -o /<<PKGBUILDDIR>>/obj-aarch64-linux-gnu/database_ar.db /<<PKGBUILDDIR>>/plugins/ar/src/free_ebook.txt | /usr/bin/text2ngram: 1: Syntax error: "(" unexpected This is a typical symptom for executing a host architecture binary on a CPU that does not support it. Often times, this means that the relevant prorgam (text2ngram) should be installed for the build architecture instead. There are two ways to declare this. The requesting package (src:maliit-keyboard) may annotate its dependency or the providing package (presage) may declare itself `Multi-Arch: foreign`. The latter is more convenient as it resolves all consumers with one change, but it also is a fairly strong promise and I happen to not understand whether this annotation is actually correct (hence tagging the bug moreinfo). I attempted writing a policy-ish definition of what `Multi-Arch: foreign` means at https://wiki.debian.org/DependencyHell#Multi-Arch:_foreign. In case of presage the question boils down to whether the behaviour of the four contained programs is architecture-independent. They all seem to mostly be dealing with input, output and files. In essence, the question becomes whether all those formats are architecture-indepenet. For instance, the sqlite3 database binary format is designed to look the same on all architectures, so even though presage deals with a binary format via sqlite3, this does not violate Multi-Arch: foreign. You may think as an adversary here. Given two computers (of different architecture) and the presage binaries on both installed, would you be able to tell the CPU architecture apart by interacting with the tools (not by looking at the executables)? Would you be able to support the cross building effort by figuring out whether Multi-Arch: foreign is correct for presage? This is usually best answered by combining the domain-specific knowledge of a maintainer with multiarch knowledge. I am happy to provide the latter and answer any questions about it. Thanks for your support Helmut