[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1061107: vapigen: Make it possible to cross-compile libraries with Vala bindings



Package: valac
Version: 0.56.14-1
Severity: wishlist
X-Debbugs-Cc: debian-cross@lists.debian.org

Now that we can cross-compile GObject-Introspection data, many GNOME
packages that could not not previously be cross-compiled become available
for cross-compiling. However, some of the libraries we would like to be
able to cross-compile (for example ibus and libportal) have Vala bindings,
generated from the library's own GIR XML via the vapigen tool.

At the moment, during a cross-build, vapigen will generally be a
host-architecture binary which cannot always be run on the build
architecture, causing builds to fail.

Ideally, during a cross-build, we would like to run a build-architecture
vapigen binary, but configure it (perhaps via command-line options or
environment variables) so that it will find host-architecture GIR XML
in /usr/lib/${DEB_HOST_MULTIARCH}/gir-1.0. The search paths need to
be architecture-specific in order to find GLib-2.0.gir without having
libgirepository1.0-dev installed, because libgirepository1.0-dev
is not cross-compile-friendly. I don't think there are any other
architecture-dependent paths involved, but the Vala maintainers would
know what this tool does better than I do.

As a proof-of-concept, I was able to work around this in libportal by
generating some local wrappers and overrides; but ideally this would
be something that could be done centrally, with most of the work in the
vala package.

I'll follow up with more concrete suggestions, but I wanted to open the
bug with a relatively solution-neutral problem statement rather than
jumping directly to a solution.

This is related to #1060904, but perhaps more of a downstream issue;
some solutions to it would benefit from #1060904, but that isn't a
mandatory dependency.

Thanks,
    smcv


Reply to: