On 05.04.22 13:20, Helmut Grohne wrote:

Hello Helmut,

thank you for your time to not only diagnose the problem but also provide a solution.

bacula fails to cross build from source, because it attempts to use the
build architecture qmake while Build-Depends requested the host
architecture one. To make matters worse, this is only visible much later
in the build as the qmake failure is swallowed. Such behaviour arguably
runs afoul Debian policy section 4.6 and should likely be considered a
serious policy violation.

In any case, bacula's configure.ac uses AC_PATH_PROG to locate qmake.
Once changing that to AC_PATH_TOOL, the host architecture qmake is being
used and this part magically works. This is what this bug is about. I'm
attaching a patch for your convenience.

As you can see from the GIT repo, I have committed your fix and also verified it builds correctly.

But unfortunately, I am not that knowledgable about anything autotools, so I am at a bit of a loss about how the fix the "as the qmake failure is swallowed" bit. Sorry.

I will submit the change to the upstream BTS, unless you already beat me to it.

Beyond this, bacula uses mysql_config to discover mysql client
libraries. Cross building with mysql_config is not something we can fix.
If bacula is to support cross building, it will need to use pkg-config
(or pkgconf) instead. The relevant code is quite non-trivial and I
couldn't come up with a working version. Would you be interested in
looking into this? The following link describes a way that is
automatically compatible with cross building. The module name is
"mysqlclient". https://autotools.info/pkgconfig/pkg_check_modules.html

I tried to have a go at it, but got utterly defeated by a) my lacking knowledge of autotools in general and b) the convoluted mess that anything autotools related is to me.

I will need to defer this to someone with more insight or upstream.

Grüße,
Sven.

Reply via email to