[pkg-fso-maint] Bug#693577: libfso-glib: not properly built from source (actual source is in fso-specs)

Simon McVittie smcv at debian.org
Sat Jan 12 21:44:00 UTC 2013


On Sun, 18 Nov 2012 at 10:40:22 +0800, Paul Wise wrote:
> The source code that is in this package is all generated (see below) and
> as far as I can tell, despite build-depending on the required source
> (fso-specs) and the tools (vala-dbus-binding-tool) required to build
> that source, the build process does not generate those files from
> source.
...
> If I delete the generated code and build from the actual source then the
> package FTBFS because the ABI specified in fso-specs is different from
> the ABI specified by the version of fso-specs

This sounds very familiar. I considered this approach for Telepathy,
but rejected it because of problems like this.

In Telepathy, part of the C "source" of src:telepathy-glib, and part
of the C++ "source" of src:telepathy-qt, is generated from D-Bus
interface XML. A version of that XML is also available
for documentation purposes in src:telepathy-spec, but it does not
necessarily correspond 1:1 to either of the libraries.

What we do in Telepathy is to include a copy of the XML in each of
src:telepathy-glib and src:telepathy-qt, and build the generated C
"source" from that. Each library's version of the XML can either be
the current version from src:telepathy-spec, or some older version
if the library's maintainers haven't been able to update it yet.

In particular, this means that each library is always in sync with the
XML that it includes, each library is self-contained, and each library's
ABI is fixed: it can't lose functions by being compiled against an older
compatible version, gain functions from a newer compatible version, or
break ABI by being compiled against an incompatible version.

I suggest that libfso-glib should do the same: ship a copy of the
source (D-Bus XML like Telepathy's, I think?) corresponding to its
generated "source" (that's probably some older version of fso-specs)
and use that to build the generated code at compile time.

    S



More information about the pkg-fso-maint mailing list