On Thu, 2006-12-21 at 18:07 -0600, Brian Cameron wrote:
> Jedy:
> 
> Thanks for the detail.  It seems like we would want to add these
> interfaces as "Consolidation Private" interfaces, so that we do
> *not* recommend their usage outside of the programs that we build
> ourselves.  Is this correct?
> 
> It seems like these modules are temporary, and will eventually be
> replaced by more mature interfaces that are more closely integrated
> with GTK+.  In other words, we only want to include them now so that
> we can provide some additional functionality with a few modules that
> we ship.
> 
> If so, I'd recommend that we *not* install any header files or
> /usr/lib/pkgconfig files.  Instead we should only use these files
> during our build process but not ship them.  Does this make sense?
> We might want to install any libraries to a more private location
> than to /usr/lib, perhaps /usr/lib/gnome-private or
> /usr/lib/gnome-notification.

Yes, I agree.

> 
> Yes, they can be ARC'ed in 2.18, but it will be easier to ARC
> Consolidation Private interfaces like this if we do not ship the
> files that allow end-users to build with them.

Do you mean it's easier to ARC them separately?

Regards,

Jedy Wang

> 
> Like I said before, we could include the full packages (with
> header files and /usr/lib/pkgconfig files) in spec-files-extra
> so that if end-users did want to play with them (e.g. uninstall
> our packages and replace them with the full ones), they could.
> 
> Does this make sense?  What are your thoughts?
> 
> Brian
> 
> 
> > On Wed, 2006-12-20 at 18:45 -0600, Brian Cameron wrote:
> >> Jedy:
> >>
> >>>> I would recommend not updating our spec-files with these new modules
> >>>> until *after* these new modules are properly ARC'ed.  Since some of
> >>>> these modules come from non-standard locations (e.g. not ftp.gnome.org),
> >>>> I'd like some idea of how stable these modules are, what interfaces
> >>>> they expose, if end-users are likely to want to use any exposed
> >>>> interfaces, etc.
> >>> Because most of distributions have included there modules, I think they
> >>> are stable enough to use. But I am not sure whether the interfaces are
> >>> stable enough or not.
> >> I'd be interested to know what new interfaces are added due to this
> >> change.  Especially if the interfaces are intended for end-users.  Is
> >> there an expectation that if somebody writes a new GNOME application
> >> that they would want to integrate with these modules?
> > 
> > libnotify:
> > /usr/bin/notify-send
> > /usr/include/libnotify/notification.h  
> > /usr/include/libnotfy/notify-enum-types.h  
> > /usr/include/libnotfy/notify.h
> > /usr/lib/libnotify.so*
> > /usr/lib/pkgconfig/libnotify.pc
> > /usr/share/gtk-doc/html/libnotify
> > 
> > libsexy:
> > /usr/include/libsexy/sexy-enum-types.h
> > /usr/include/libsexy/sexy.h
> > /usr/include/libsexy/sexy-icon-entry.h
> > /usr/include/libsexy/sexy-spell-entry.h
> > /usr/include/libsexy/sexy-tooltip.h
> > /usr/include/libsexy/sexy-tree-view.h
> > /usr/include/libsexy/sexy-url-label.h
> > /usr/lib/libsexy.so*
> > /usr/lib/pkgconfig/libsexy.pc
> > /usr/share/gtk-doc/html/libsexy
> > 
> > notification-daemon:
> > /etc/gconf/schemas/notification-daemon.schemas
> > /usr/share/dbus-1/services/org.freedesktop.Notifications.service
> > /usr/lib/notification-daemon-1.0/engines/libstandard.so
> > /usr/lib/notification-daemon
> > 
> > APIs they provide to programmer are attached.
> > Introductions about the new widgets libsexy provides can be found
> > here:http://www.chipx86.com/wiki/Libsexy
> > 
> > Several applications are using libnotify(optionally), such as evolution,
> > gnome-applets, gnome-power-manager, gaim(a plugin) and xchat-gnome. And
> > many applications those would notify users something has happened can
> > benefit from these modules, such as nautilus, rhythmbox and ekiga.
> >> It would be good if you provided the interface table you plan to
> >> include when you ARC these new components with the review information
> >> so we can evaluate the impact before we add to spec-files.  Do you
> >> plan to FastTrack or will this be a full case?
> > 
> > We hope the arc can be included in arc of gnome-2-18.
> > 
> >> The interface table should explain (in the exported interface table)
> >> what interfaces are actually used by other modules in the GNOME stack.
> >>
> >>>> If these modules aren't at ftp.gnome.org, can you explain why?  Is
> >>>> there anything we should be doing to help encourage these modules to
> >>>> be more formally accepted by the GNOME community?
> >>> I will send a mail to ask the maintainers.
> >> Yes, it seems like these should be official GNOME desktop modules
> >> if people are using them in GNOME desktop applications.  Perhaps
> >> we should do more to encourage their official recognition as GNOME
> >> Desktop modules.  If there are issues why these aren't yet a part
> >> of the GNOME desktop, I'd like to know why.
> > For the discussion about the proposal, please refer to:
> > http://mail.gnome.org/archives/desktop-devel-list/2005-December/msg00070.html
> > http://mail.gnome.org/archives/desktop-devel-list/2004-November/msg00178.html
> > I think the reasons are:
> > 1)Some people want gtk2 and notification-area provide such
> > functionality.
> > 2)They do not want a daemon process(notification-daemon).
> >>>> Would these modules be more appropriate for spec-files-extra if we
> >>>> want to make them available for end users to play with, but if they
> >>>> aren't ready for real 2.18 integration yet?
> >>> It does not work that put them in spec-files-extra, because most of the
> >>> applications using them is in spec-files.
> >> If we end up deciding that they aren't stable enough for including in
> >> JDS yet, then we could add them to spec-files-extra so that people who
> >> want to build them, and rebuild whatever modules use them can do so
> >> if they want to use them, or help to make them more stable so they can
> >> become a part of the official GNOME Platform.
> >>
> >> Brian
> >>
> >> ------------------------------------------------------------------------
> >>
> >> libnotify:
> >>
> >> gboolean
> >> notify_init(const char *app_name);
> >>
> >> gboolean
> >> notify_init(const char *app_name);
> >>
> >> void
> >> notify_uninit(void);
> >>
> >> gboolean
> >> notify_is_initted(void);
> >>
> >> const gchar *
> >> notify_get_app_name(void);
> >>
> >> GList *
> >> notify_get_server_caps(void);
> >>
> >> gboolean
> >> notify_get_server_info(char **ret_name,
> >>            char **ret_vendor, char **ret_version,
> >>            char **ret_spec_version);
> >>
> >> NotifyNotification *
> >> notify_notification_new(const gchar *summary, const gchar *body,
> >>                    const gchar *icon, GtkWidget *attach);
> >>
> >> gboolean
> >> notify_notification_update(NotifyNotification *notification,
> >>            const gchar *summary, const gchar *body, const gchar *icon);
> >>
> >> void
> >> notify_notification_attach_to_widget(NotifyNotification* notification,
> >>                            GtkWidget *attach);
> >>
> >> void
> >> notify_notification_set_geometry_hints(NotifyNotification *notification,
> >>                                    GdkScreen *screen, gint x, gint y);
> >>
> >> gboolean
> >> notify_notification_show(NotifyNotification *notification,
> >>                                   GError **error);
> >>
> >> void
> >> notify_notification_set_timeout(NotifyNotification *notification,
> >>                            gint timeout);
> >>
> >> void
> >> notify_notification_set_category(NotifyNotification *notification,
> >>                            const char *category);
> >>
> >> void
> >> notify_notification_set_urgency(NotifyNotification *notification,
> >>                            NotifyUrgency urgency);
> >>
> >> void
> >> notify_notification_set_icon_from_pixbuf(NotifyNotification *notification,
> >>                                    GdkPixbuf *icon);
> >>
> >> void
> >> notify_notification_set_hint_int32(NotifyNotification *notification,
> >>                            const gchar *key, gint value);
> >>
> >> void
> >> notify_notification_set_hint_double(NotifyNotification *notification,
> >>                            const gchar *key, gdouble value);
> >>
> >> void
> >> notify_notification_set_hint_string(NotifyNotification *notification,
> >>                             const gchar *key, const gchar *value);
> >>
> >> void
> >> notify_notification_set_hint_byte(NotifyNotification *notification,
> >>                            const gchar *key, guchar value);
> >>
> >> void
> >> notify_notification_set_hint_byte_array(NotifyNotification *notification,
> >>                            const gchar *key, const guchar *value, gsize 
> >> len);
> >>
> >> void
> >> notify_notification_clear_hints(NotifyNotification *notification);
> >>
> >> void
> >> notify_notification_add_action(NotifyNotification *notification,
> >>                    const char *action, const char *label,
> >>                    NotifyActionCallback callback,
> >>                    gpointer user_data, GFreeFunc free_func);
> >>
> >> void
> >> notify_notification_clear_actions(NotifyNotification *notification);
> >>
> >> gboolean
> >> notify_notification_close(NotifyNotification *notification, GError 
> >> **error);
> >>
> >> interfaces for gtk2-2.9.2 and above:
> >> NotifyNotification *
> >> notify_notification_new_with_status_icon(const gchar *summary, const gchar 
> >> *body,
> >>                            const gchar *icon, GtkStatusIcon *status_icon);
> >>
> >> NotifyNotification *
> >> notify_notification_new_with_status_icon(const gchar *summary, const gchar 
> >> *body,
> >>                                    const gchar *icon, GtkStatusIcon 
> >> *status_icon);
> >>
> >> ------------------------------------------------------------------------
> >>
> >> libsexy:
> >> provides 5 more widgets
> >> 1)sexy-icon-entry:
> >> GtkWidget *
> >> sexy_icon_entry_new(void);
> >> void
> >> sexy_icon_entry_set_icon(SexyIconEntry *entry,
> >>            SexyIconEntryPosition position, GtkImage *icon);
> >> void
> >> sexy_icon_entry_set_icon_highlight(SexyIconEntry *entry,
> >>                    SexyIconEntryPosition position, gboolean highlight);
> >> GtkImage *
> >> sexy_icon_entry_get_icon(const SexyIconEntry *entry,
> >>                    SexyIconEntryPosition position);
> >> gboolean
> >> sexy_icon_entry_get_icon_highlight(const SexyIconEntry *entry,
> >>                            SexyIconEntryPosition position);
> >> void
> >> sexy_icon_entry_add_clear_button(SexyIconEntry *icon_entry);
> >>
> >>
> >> 2)sexy-spell-entry
> >> GtkWidget *
> >> sexy_spell_entry_new(void);
> >> GQuark
> >> sexy_spell_error_quark(void);
> >> GSList *
> >> sexy_spell_entry_get_languages(const SexySpellEntry *entry);
> >> gchar *
> >> sexy_spell_entry_get_language_name(const SexySpellEntry *entry,
> >>                            const gchar *lang);
> >> gboolean
> >> sexy_spell_entry_language_is_active(const SexySpellEntry *entry,
> >>                            const gchar *lang);
> >> gboolean
> >> sexy_spell_entry_activate_language(SexySpellEntry *entry,
> >>                            const gchar *lang, GError **error);
> >> void
> >> sexy_spell_entry_deactivate_language(SexySpellEntry *entry,
> >>                                    const gchar *lang);
> >> gboolean
> >> sexy_spell_entry_set_active_languages(SexySpellEntry *entry,
> >>                            GSList *langs, GError **error);
> >> GSList *
> >> sexy_spell_entry_get_active_languages(SexySpellEntry *entry);
> >> gboolean
> >> sexy_spell_entry_is_checked(SexySpellEntry *entry);
> >> void
> >> sexy_spell_entry_set_checked(SexySpellEntry *entry, gboolean checked);
> >> void
> >> sexy_spell_entry_activate_default_languages(SexySpellEntry *entry);
> >>
> >> 3)sexy-tooltip
> >> GtkWidget *
> >> sexy_tooltip_new(void);
> >> GtkWidget *
> >> sexy_tooltip_new_with_label(const gchar *text);
> >> void
> >> sexy_tooltip_position_to_widget(SexyTooltip *tooltip, GtkWidget *widget);
> >> void
> >> sexy_tooltip_position_to_rect(SexyTooltip *tooltip,
> >>                    GdkRectangle *rect, GdkScreen *screen);
> >>
> >> 4)sexy-tree-view
> >> GtkWidget *
> >> sexy_tree_view_new(void);
> >> void
> >> sexy_tree_view_set_tooltip_label_column(SexyTreeView *treeview, guint 
> >> column);
> >>
> >> 5)sexy-url-label
> >> GtkWidget *
> >> sexy_url_label_new(void);
> >> void
> >> sexy_url_label_set_markup(SexyUrlLabel *url_label, const gchar *markup);
> 


Reply via email to