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 -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org