Hi, with an increasing number of packages providing introspection data for Gobject, each one doing things its own way, it’s starting to be a big mess. I’d like to fix this mess before we have a hundred different packages, all behaving differently. Which is why I’m proposing a Gobject-introspection mini-policy. And of course, to implement it in existing packages. 1. Package layout GObject-introspection packages provide introspection data in /usr/share/gir-1.0/Foo-X.Y.gir, and the optional /usr/lib/girepository-1.0/Foo-X.Y.typelib. The packages should be architecture-dependent. 2. Naming scheme The package should be named gir1.0-foo-X.Y. For example, the package containing WebKit-1.0.gir will be named gir1.0-webkit-1.0. Giant repositories of dozens of unrelated introspection data should be avoided. (Under this rationale, gobject-introspection-repository will be split.) However, related libraries that are known to evolve together can live in the same package (example: Gst*-0.10). If, alternatively, the introspection data belongs in the same source package as the library it references, it can be put in the same binary package. In this case, it must feature a Provides: field corresponding to the name of the introspection data. For example, libfoo2.0-2 containing libfoo-2.0.so.2 and Foo-2.0.gir must provide gir1.0-foo-2.0. Introspection packages belong in section libs for the moment. If there are enough packages to justify it, a new section will be requested to the FTP masters. 3. Dependencies of introspection packages Introspection packages must depend on the libraries they reference, with a sufficient version for the symbols they reference. For that effect, I propose to introduce a new helper, dh_gir, in the gobject-introspection package (which is already a build-dependency for introspection packages). It would wrap dpkg-shlibdeps (possibly using its internals until the needed interfaces are exported) so that the dependencies are the same as those of similar ELF binaries. Introspection packages must depend on other introspection packages that are referenced through <include> statements. The helper should generate such dependencies as well. 4. Dependencies on introspection packages Currently, there are only Seed (JavaScript) scripts to use these introspection packages. In the future, there might also be Python or other interpreted languages. Generating dependencies automatically for interpreted languages is not reliable. Therefore, these packages must depend by hand on the appropriate gir1.0-* packages. The interpreters themselves don’t need to depend on packages they don’t use directly. Thoughts anyone? I’ll start working on dh_gir as described if there is consensus on the proposed policy. Once implemented in a few packages, the policy would be put in a more formal way and added to gobject-introspection. Cheers, -- .''`. Josselin Mouette : :' : `. `' “I recommend you to learn English in hope that you in `- future understand things” -- Jörg Schilling
Attachment:
signature.asc
Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?=