
Hi. El Jueves, 16 de octubre de 2014 13:02:25 Dimstar / Dominique Leuenberger escribió:
On Thu, 2014-10-16 at 12:38 +0200, jcsl wrote:
Hi.
El Jueves, 16 de octubre de 2014 12:21:17 Dimstar / Dominique Leuenberger
escribió:
That's actually a real thing: libvte2_90 no longer exists in favor of libvte2_91; and that's the reason why implicit library dependencies on a package are just a bad thing :)
The good news though: the next snapshot has this corrected; virt-manager's spec-file has been updated to perform automatic dependency scanning (using gobject introspection, typelib() Dependencies).
The version that should have that will be 1.0.1-18.1 (or higher).
The changelog mentions: +- Remove hardcoded package dependencies in spec file and instead + use gobject-introspection + virt-manager.spec
Cheers, Dominique
What is necessary to achieve this goal? I have the same problem with Tilda. Do you need BuildRequires: gobject-introspection only or something else too? 'It depends';
BuildRequires gobject-introspection pulls in an dependency scanner that parses code (currently python and javascript) for known pattern to import object introspection bindings (packaged as typelib-1_0-<NAME>-<VERSION>, files installed in %{_libdir}/girepository-1.0/<NAME>-<VERSION>.typelib
IF your code uses these (in the form of "from gi.repository import Vte" for example, then, YES, adding gobject-introspection as BuildDep is the right thing. the .typelib's themselves have a further dependency down to the actual library, so you don't have to worry about this.
Care is to be given to those imports, as they are 'unversioned'. So a new library might have a different API/ABI and break silently. Or zypp might not know which package to install if there is more than one available..
As an example: we have typelib-1_0-WebKitGtk-1_0 and typelib-1_0-WebKitGtk-3_0 (the GTK2 and GTK3 branches)
If you simply specify from gi.repository import WebKitGtk, this will translate to an RPM Dependency (typelib(WebKitGtk), which is provided by both packages. In cae of WebKit, you very often know that you need the one or the other, so you can 'force' this with import gi gi.require_version('WebKitGtk', '3.0') from gi.repository import WebKitGtk
=> the dep scanner will also interpret this and add a typelib(WebKitGtk) = 3.0 dependency. (so in short: the dep scanner is as good as the code it scans; it can't guess anything more or less).
There is usually ONE more Requires to specify, which the scanner can't do (yet): python-gobject or python3-gobject. The scanner does not know what your code will be executed with. So we can't add this just as part of the scan run at the moment.
Cheers, Dominique
Thanks for the clarification Dominique. Greetings. -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org