From Fedora Project Wiki

< Changes

Revision as of 07:32, 29 April 2016 by Ignatenkobrain (talk | contribs) (Created page with "<!-- Self Contained or System Wide Change Proposal? Use this guide to determine to which category your proposed change belongs to. Self Contained Changes are: * changes to is...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


GObject Introspection AutoProv/AutoReq

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

1. No need to specify Requires for packages which are using GI 2. 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