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

Reply via email to