From Fedora Project Wiki


GObject Introspection Dependency Generator

Summary

For GObject Introspection libraries it will automatically add appropriate provides like "typelib(Foo-1.0)". For packages which are using GI it will automatically add appropriate requires based on what they use from GI.

Owner

  • Name: Igor Gnatenko
  • Email: ignatenko AT redhat DOT com
  • Release notes owner:

Current status

  • Targeted release: Fedora 25
  • Last updated: 2016-04-29
  • Tracker bug: <will be assigned by the Wrangler>

Detailed Description

Let's take a look on Python code import gi; gi.require_version("Tracker", "1.0"); from gi.repository import Tracker. To run it requires Tracker-1.0.typelib, which currently is in tracker package. With this change to package will be automatically added "Requires: typelib(Tracker-1.0)".

Libraries themselves requires another typelib packages. Let's take Webkit2-4.0.typelib, it requires itself:

  • some typelibs: typelib(Gtk-3.0) typelib(Pango-1.0) typelib(GObject-2.0) typelib(xlib-2.0) typelib(cairo-1.0) typelib(JavaScriptCore-4.0) typelib(Gdk-3.0) typelib(Gio-2.0) typelib(Atk-1.0) typelib(GdkPixbuf-2.0) typelib(Soup-2.4) typelib(GModule-2.0) typelib(GLib-2.0)
  • some shared libraries: libwebkit2gtk-4.0.so.37 libjavascriptcoregtk-4.0.so.18

All of them will be added automatically as requirements.

Benefit to Fedora

  • No need to specify Requires for packages which are using GI
  • Easy to install any GI libs

Scope

  • Proposal owners:

1. Write tool for introspection of GI typelibs

2. Write RPM dependency-generator

  • Other developers: N/A (not a System Wide Change)
  • Release engineering: N/A (not a System Wide Change)
  • Policies and guidelines: N/A (not a System Wide Change)
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

N/A (not a System Wide Change)

How To Test

N/A (not a System Wide Change)

User Experience

N/A (not a System Wide Change)

Dependencies

N/A (not a System Wide Change)

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change), Yes/No
  • Blocks product? product

Documentation

N/A (not a System Wide Change)

Release Notes