Mailinglist Archive: opensuse-packaging (267 mails)

< Previous Next >
[opensuse-packaging] Enhancement packaging policy / gobject introspection bindings
Hi Packagers and maintainers,

As many of you are surely already aware, a bunch of libraries bring with
them gobject-introspection based bindings to other languages (*.typelib
and *.gir files in your packages).

So far we packaged the *.typelib together with the shared library, which
seemed logical at first, but is 'slightly' wrong.

An example: A shared library can change its soname without the need of
the binding being changed (ABI change, but API stayed compatible for
example). So the binding would update the .typelib file, pointing to the
new soname based library.

Now, having the .typelib in the shared library package actually causes a
conflict on file-level if two library version would need to be installed
(for whatever reason).

So the suggestion is to do the same as Debian does (slightly changed)
and split the .typelib in their own sub-packages. Our proposal is to
name those sub-packages in this form:

typelib-<typeversion>-<gi-namespace>-<version>
(all dots to be replaced with _)

typelib: literal: identifier to group them all together and have them
easy findable
typeversion: the gi-repository is installed in a versioned directory
(currently %{_libdir}/gi-repository-1.0) which indicates this can
change. Files will conflict as long as they are in the same version
only, so we 'split' this on a packaging level.
gi-namespace: The namespace of the binding package. This is the name of
the typelib file. without the 'version' part
version: the version of the binding.

An example: clutter installs the file(s)
%{_libdir}/gi-repository-1.0/Clutter-1.0.typelib, so this is to be split
in a package called:

typelib-1_0-Clutter-1_0 (properly capitalized)
As clutter installs a bunch of more typelib files, the same rule as with
the libs is to be applied: are they kept in sync with their version? If
so, they can go in the same package. Otherwise they need to be split in
further packages.

As the .typelib files themselves also have dependencies (to either
other .typelib files and/or to an actual shared library) I wrote a
dep-scanner for those yesterday that will add dependencies as needed.
This will make sure that all works smoothly together.

What does everybody think about this? Is this the way to go forward?

Best regards,
Dominique / DimStar


--
To unsubscribe, e-mail: opensuse-packaging+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-packaging+owner@xxxxxxxxxxxx

< Previous Next >