39
The Future of libgnome and libgnomeui Anders Carlsson Jonathan Blandford

The Future of libgnome and libgnomeui Anders Carlsson Jonathan Blandford

  • Upload
    woody

  • View
    20

  • Download
    1

Embed Size (px)

DESCRIPTION

The Future of libgnome and libgnomeui Anders Carlsson Jonathan Blandford. History of gnome-libs. What are libgnome/libgnomeui? Initial GNOME library Held all shared code in the early desktop Dumping ground before we really knew what we wanted in a desktop. Problems. - PowerPoint PPT Presentation

Citation preview

Page 1: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

The Future of libgnome and libgnomeui

Anders CarlssonJonathan Blandford

Page 2: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

History of gnome-libs● What are libgnome/libgnomeui?

– Initial GNOME library– Held all shared code in the early desktop– Dumping ground before we really knew

what we wanted in a desktop

Page 3: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

Problems● Lack of defined scope

– GTK+ does widgets– GConf does configuration– gnome-libs does ???

● Dependency liability– Bonobo not portable to windows– Complicates the platform

● Relatively unmaintained code base● Desktop integration issue

Page 4: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

Our Goal● Deprecate● Whack entirely!!● Remove● Fit with a pair of concrete shoes● Send to the great Attic/ in the sky

Page 5: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

Our Approach● Deprecate as much as code as possible● Move inappropriately placed code into

appropriate libraries● See what's left

– With some luck, everything will be gone

Page 6: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

Comparison of Size

Page 7: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

What the heck is there?● Dead code● General purpose objects and widgets● Code to integrate non-codependent

libraries● Code to integrate applications with the

desktop

Page 8: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

Dead Code● Large chunks of both libraries are

deprecated– Over a third

● kept for ABI/API compatibility only● 'nuff said

Page 9: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

Objects and Widgets● About a dozen widgets● Tend to be lower quality than GTK+● All except GnomeApp and GnomeEntry

are straightforward● All have either an appropriate target

library where they belong or can be deprecated

Page 10: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

Objects● gnome-client● gnome-config● gnome-i18n● gnome-score

Page 11: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

Widgets● GnomeAbout● GnomeApp/GnomeDock● GnomeDruid● GnomeEntry● GnomeHRef● GnomeIconList● gnome_icon_lookup()

Page 12: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

gnome-client● Description:

– Provides session manager support to applications

● Problem:– Buggy and unmaintained– Too complicated

● Action:– Finish GsmClient and move it into GTK+

Page 13: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

gnome-config● Description:

– .desktop file parser● Problem:

– not flexible– indeterminate use case– Many alternate implementations (6 at last

count)● Action:

– Rewrite proposed by Ray Strode: #139973

Page 14: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

gnome-i18n● Description:

– provides a set of standard gettext macros– gnome_i18n_get_language_list()

● Problems:– Used by libraries lower in the library stack– Cut-n-pasted all over

● Solution:– Move language list getter to glib– Discussed in #95587

Page 15: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

gnome-score(s)● Description:

– Set of widgets and library code for handling game score code

● Problem:– Not generically useful

● Action:– move into gnome-games as a library

Page 16: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

GnomeAbout● Description:

– Simple 'About...' dialog● Problem:

– Limited API● Action:

– Move to GTK+ once the API is done– Discussed in #109435

Page 17: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

GnomeApp/GnomeDock● Description:

– Framework for application main windows.● Problem:

– Unclear that users actually want this– Depends on BonoboDock– HIG is moving in a different direction– Different apps have different forms. Think

IDE vs. Office vs Web browser...

Page 18: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

GnomeApp/GnomeDock (II)● Action:

– If need be, write one or more dock for GTK+.

– Unclear if needed

Page 19: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

GnomeDruid● Description:

– Assistant widget● Problem:

– Complex API– Bad for accessibility as style can be set

explicitly● Action:

– Discussed in #115348– HIG work needed

Page 20: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

GnomeEntry● Description:

– Multiple specialized history entries● Problem:

– Complex API– Dubious targets– Standards non-compliance– Depends on gconf

● Action:– James Cape proposed a replacement

Page 21: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

GnomeHRef● Description:

– Simple hyperlink button● Problem:

– Depends on gnome-vfs● Solution:

– Unclear. Possibly provide callbacks that gnome-vfs can use.

Page 22: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

GnomeIconList● Description:

– A simple icon list widget● Problem:

– Uses gnome-canvas– Unmaintained– Too simple a widget

● Action:– Discussed in #61819

Page 23: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

gnome_icon_lookup()● Description:

– Set of functions to lookup an icon from file information

● Problems:– depends on gnome_vfs

● Actions:– Unclear

Page 24: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

Integration code (I)● gnome-libs is high in the library chain

Page 25: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

Problems● Some libraries depend on

functionalities that other libraries provide. For example:– GTK+ needs gconf keys– GTK+ needs gnome-vfs methods– gnome-vfs needs graphical and widget

abilities

Page 26: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

GTK+ and gconf● History of proposed entry widgets● Color picker palette● Themes● Settings (such as double click time,

drag threshold)

Page 27: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

GTK+ and gnome-vfs● Filechooser backend● URL callbacks● VFS access to files

Page 28: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

gnome-vfs and GTK+● Authentication dialogs● Warning messages● Launch feedback on application launch

Page 29: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

Integration code (II)● code to integrate GNOME applications

with the rest of the desktop.– gnome-help– gnome-program– gnome-sound– gnome-triggers

Page 30: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

gnome-help● Description:

– Integrated help system● Problem:

– GNOME specific● Action:

– Move to GTK+?

Page 31: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

gnome-program● Description:

– Provides three distinct features:● Argument Parser● Central repository for known paths● Desktop integration system

Page 32: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

gnome-program (II)● Problems:

– Argument parsing uses popt, which doesn't handle UTF-8 correctly

– popt API doesn't fit stylistically– path repository doesn't work well– path repository also doesn't use xdg

basedir spec– module registry requires explicit linking,

and doesn't work well with language bindings

Page 33: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

gnome-program (III)● Solutions:

– Anders has written an option parser destined for glib.

– Path repository should be rethought. Really only used for help

– Library registry in glib?● We don't know

Page 34: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

gnome-sound● Description:

– Plays sound files. Goes 'ping'– Uploads sound files to the esound daemon

● Problem:– uses esound– largely uninteresting

● Action:– GStreamer, if needed. Dump otherwise.

Page 35: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

gnome-triggers● Description:

– Plays sounds when global events occur.● Problem:

– Depends on esound. Uses esound in the API

● Action:– Possibly replace with something using

accessibility hooks?

Page 36: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

What wasn't removed● gnome-help● gnome-program● authentication dialog● GtkFileChooser vfs backend● gnome_icon_lookup()

Page 37: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

Solutions● No really good solutions● Some half-solutions

– XSETTINGS– libgnomevfsui– rearrange the dependency chain

● No good ideas on the desktop integration issue

Page 38: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

Conclusions● Going to continue with our deprecation

of gnome-libs● Build upon the current half-solutions● This was harder than expected!

Page 39: The Future of  libgnome  and libgnomeui Anders Carlsson Jonathan Blandford

Questions?