Jedy: >> 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.
Then before these spec files go into our build, can the spec files be updated so we build in this way? >> 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? No, I mean that if we do this work now, it will be easier to ARC these new modules with our 2.18 materials. It's fine to ARC theese new modules with the 2.18 materials, but I'd like to make sure that when we put new spec files in, that we consider ARC impact. Taking care of this now is easier than dealing with all of these sorts of issues at the last minute when we are trying to get through the ARC process. Especially when the new module exports interfaces (and extra especially when we don't intend the end users to use them). Does this make sense? Brian >> 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); >
