[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@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On 2011-12-07 10:29:21 +0100, Dimstar / Dominique Leuenberger wrote:
What does everybody think about this? Is this the way to go forward?
+1 from me :D darix -- openSUSE - SUSE Linux is my linux openSUSE is good for you www.opensuse.org -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Le mercredi 07 décembre 2011, à 10:29 +0100, Dominique Leuenberger a écrit :
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 _)
[...]
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.
Dominique did all the changes in his GNOME:Factory branch, so this will enter GNOME:Factory in the next few days (we're waiting for some rebuild). A big thank to Dominique for driving this and doing all the work! So, now, do we have any process to document this packaging policy? Do we just create a page on the wiki and link it from the packaging policy portal? Or do we need some more magic? Cheers, Vincent -- Les gens heureux ne sont pas pressés. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On 2011-12-09 17:04:51 (+0100), Vincent Untz
Le mercredi 07 décembre 2011, à 10:29 +0100, Dominique Leuenberger a écrit :
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 _)
[...]
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.
Dominique did all the changes in his GNOME:Factory branch, so this will enter GNOME:Factory in the next few days (we're waiting for some rebuild).
A big thank to Dominique for driving this and doing all the work!
So, now, do we have any process to document this packaging policy? Do we just create a page on the wiki and link it from the packaging policy portal? Or do we need some more magic?
Would it be possible to implement a rpmlint script/plugin/whatever in order to check that policy ? (at least as a warning) cheers -- -o) Pascal Bleser /\\ http://opensuse.org -- we haz green _\_v http://fosdem.org -- we haz conf
On Fri, 2011-12-09 at 18:23 +0100, Pascal Bleser wrote:
On 2011-12-09 17:04:51 (+0100), Vincent Untz
wrote: Would it be possible to implement a rpmlint script/plugin/whatever in order to check that policy ? (at least as a warning)
Pascal, As I wrote a dependency scanner for .typelib files, if you have them in the shared library package (as we used to do up to now) there is a very high chance the packages are failing for having 'excessive dependencies' with the current set of rpmlint / brp checks already. I'm not sure if anything else or specific is needed, but if so, we're surely getting there as well. On check that might be interesting is just like the shared library naming check: does the naming convention apply. Dominique -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
participants (4)
-
Dimstar / Dominique Leuenberger
-
Marcus Rueckert
-
Pascal Bleser
-
Vincent Untz