Hello community, here is the log from the commit of package rhythmbox for openSUSE:Factory checked in at 2013-05-27 09:58:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rhythmbox (Old) and /work/SRC/openSUSE:Factory/.rhythmbox.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rhythmbox" Changes: -------- --- /work/SRC/openSUSE:Factory/rhythmbox/rhythmbox.changes 2013-04-14 12:05:51.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.rhythmbox.new/rhythmbox.changes 2013-05-27 09:58:52.000000000 +0200 @@ -1,0 +2,6 @@ +Fri May 17 07:28:57 UTC 2013 - dims...@opensuse.org + +- Add rhythmbox-gtk3.9.patch: Fix build with GTK+ 3.9: avoid doing + work in class init functions. + +------------------------------------------------------------------- New: ---- rhythmbox-gtk3.9.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rhythmbox.spec ++++++ --- /var/tmp/diff_new_pack.wlOOsx/_old 2013-05-27 09:58:53.000000000 +0200 +++ /var/tmp/diff_new_pack.wlOOsx/_new 2013-05-27 09:58:53.000000000 +0200 @@ -29,6 +29,8 @@ Group: Productivity/Multimedia/Sound/Players Url: http://www.gnome.org/projects/rhythmbox/ Source: http://download.gnome.org/sources/rhythmbox/2.99/%{name}-%{version}.tar.xz +# PATCH-FIX-UPSTREAM rhythmbox-gtk3.9.patch bgo#700177 dmis...@opensuse.org -- Fix build with GTK+ 3.9: avoid doing work in class init functions. +Patch0: rhythmbox-gtk3.9.patch BuildRequires: gobject-introspection-devel BuildRequires: intltool BuildRequires: libdiscid-devel @@ -101,6 +103,7 @@ %lang_package %prep %setup -q +%patch0 -p1 translation-update-upstream %build ++++++ rhythmbox-gtk3.9.patch ++++++ >From fd6a4bc640ee505f92ff9c57b069902c1683e9e2 Mon Sep 17 00:00:00 2001 From: Jonathan Matthew <jonat...@d14n.org> Date: Thu, 16 May 2013 22:45:20 +0000 Subject: avoid doing work in class init functions Class init functions are called as part of the introspection process. During the build process we might not have a display to talk to, so we need to avoid doing anything that requires gdk to connect to the display. https://bugzilla.gnome.org/show_bug.cgi?id=700177 --- diff --git a/rhythmdb/rhythmdb-property-model.c b/rhythmdb/rhythmdb-property-model.c index c354022..c905984 100644 --- a/rhythmdb/rhythmdb-property-model.c +++ b/rhythmdb/rhythmdb-property-model.c @@ -220,23 +220,6 @@ rhythmdb_property_model_class_init (RhythmDBPropertyModelClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - if (!rhythmdb_property_model_artist_drag_target_list) - rhythmdb_property_model_artist_drag_target_list = - gtk_target_list_new (targets_artist, - G_N_ELEMENTS (targets_artist)); - if (!rhythmdb_property_model_album_drag_target_list) - rhythmdb_property_model_album_drag_target_list = - gtk_target_list_new (targets_album, - G_N_ELEMENTS (targets_album)); - if (!rhythmdb_property_model_genre_drag_target_list) - rhythmdb_property_model_genre_drag_target_list = - gtk_target_list_new (targets_genre, - G_N_ELEMENTS (targets_genre)); - if (!rhythmdb_property_model_location_drag_target_list) - rhythmdb_property_model_location_drag_target_list = - gtk_target_list_new (targets_location, - G_N_ELEMENTS (targets_location)); - object_class->set_property = rhythmdb_property_model_set_property; object_class->get_property = rhythmdb_property_model_get_property; @@ -484,6 +467,23 @@ rhythmdb_property_model_get_property (GObject *object, static void rhythmdb_property_model_init (RhythmDBPropertyModel *model) { + if (!rhythmdb_property_model_artist_drag_target_list) + rhythmdb_property_model_artist_drag_target_list = + gtk_target_list_new (targets_artist, + G_N_ELEMENTS (targets_artist)); + if (!rhythmdb_property_model_album_drag_target_list) + rhythmdb_property_model_album_drag_target_list = + gtk_target_list_new (targets_album, + G_N_ELEMENTS (targets_album)); + if (!rhythmdb_property_model_genre_drag_target_list) + rhythmdb_property_model_genre_drag_target_list = + gtk_target_list_new (targets_genre, + G_N_ELEMENTS (targets_genre)); + if (!rhythmdb_property_model_location_drag_target_list) + rhythmdb_property_model_location_drag_target_list = + gtk_target_list_new (targets_location, + G_N_ELEMENTS (targets_location)); + model->priv = RHYTHMDB_PROPERTY_MODEL_GET_PRIVATE (model); model->priv->stamp = g_random_int (); diff --git a/rhythmdb/rhythmdb-query-model.c b/rhythmdb/rhythmdb-query-model.c index 4786c3f..abb1a55 100644 --- a/rhythmdb/rhythmdb-query-model.c +++ b/rhythmdb/rhythmdb-query-model.c @@ -311,11 +311,6 @@ rhythmdb_query_model_class_init (RhythmDBQueryModelClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - if (!rhythmdb_query_model_drag_target_list) - rhythmdb_query_model_drag_target_list - = gtk_target_list_new (rhythmdb_query_model_drag_types, - G_N_ELEMENTS (rhythmdb_query_model_drag_types)); - object_class->set_property = rhythmdb_query_model_set_property; object_class->get_property = rhythmdb_query_model_get_property; @@ -669,6 +664,11 @@ rhythmdb_query_model_get_property (GObject *object, static void rhythmdb_query_model_init (RhythmDBQueryModel *model) { + if (!rhythmdb_query_model_drag_target_list) + rhythmdb_query_model_drag_target_list + = gtk_target_list_new (rhythmdb_query_model_drag_types, + G_N_ELEMENTS (rhythmdb_query_model_drag_types)); + model->priv = RHYTHMDB_QUERY_MODEL_GET_PRIVATE (model); model->priv->stamp = g_random_int (); diff --git a/sources/rb-display-page-model.c b/sources/rb-display-page-model.c index ac9504c..75354df 100644 --- a/sources/rb-display-page-model.c +++ b/sources/rb-display-page-model.c @@ -828,6 +828,9 @@ rb_display_page_model_new (void) static void rb_display_page_model_init (RBDisplayPageModel *model) { + if (!drag_target_list) { + drag_target_list = gtk_target_list_new (dnd_targets, G_N_ELEMENTS (dnd_targets)); + } } static void @@ -894,10 +897,6 @@ rb_display_page_model_class_init (RBDisplayPageModelClass *klass) G_TYPE_NONE, 2, RB_TYPE_DISPLAY_PAGE, GTK_TYPE_TREE_ITER); - - if (!drag_target_list) { - drag_target_list = gtk_target_list_new (dnd_targets, G_N_ELEMENTS (dnd_targets)); - } } /** diff --git a/widgets/rb-cell-renderer-rating.c b/widgets/rb-cell-renderer-rating.c index 8be208c..45cb550 100644 --- a/widgets/rb-cell-renderer-rating.c +++ b/widgets/rb-cell-renderer-rating.c @@ -105,6 +105,12 @@ static guint rb_cell_renderer_rating_signals[LAST_SIGNAL] = { 0 }; static void rb_cell_renderer_rating_init (RBCellRendererRating *cellrating) { + RBCellRendererRatingClass *klass; + + klass = RB_CELL_RENDERER_RATING_GET_CLASS (cellrating); + if (klass->priv->pixbufs == NULL) { + klass->priv->pixbufs = rb_rating_pixbufs_load (); + } cellrating->priv = RB_CELL_RENDERER_RATING_GET_PRIVATE (cellrating); @@ -113,7 +119,6 @@ rb_cell_renderer_rating_init (RBCellRendererRating *cellrating) "mode", GTK_CELL_RENDERER_MODE_ACTIVATABLE, NULL); - /* create the needed icons */ } static void @@ -130,7 +135,6 @@ rb_cell_renderer_rating_class_init (RBCellRendererRatingClass *class) cell_class->activate = rb_cell_renderer_rating_activate; class->priv = g_new0 (RBCellRendererRatingClassPrivate, 1); - class->priv->pixbufs = rb_rating_pixbufs_new (); /** * RBCellRendererRating:rating: diff --git a/widgets/rb-rating-helper.c b/widgets/rb-rating-helper.c index 182c254..ca7a379 100644 --- a/widgets/rb-rating-helper.c +++ b/widgets/rb-rating-helper.c @@ -90,7 +90,7 @@ rb_rating_install_rating_property (GObjectClass *klass, gulong prop) } /** - * rb_rating_pixbufs_new: + * rb_rating_pixbufs_load: * * Creates and returns a structure holding a set of pixbufs * to use to display ratings. @@ -99,7 +99,7 @@ rb_rating_install_rating_property (GObjectClass *klass, gulong prop) * the pixbufs could be loaded. */ RBRatingPixbufs * -rb_rating_pixbufs_new (void) +rb_rating_pixbufs_load (void) { RBRatingPixbufs *pixbufs; GtkIconTheme *theme; diff --git a/widgets/rb-rating-helper.h b/widgets/rb-rating-helper.h index f49c66e..8c78982 100644 --- a/widgets/rb-rating-helper.h +++ b/widgets/rb-rating-helper.h @@ -45,7 +45,7 @@ double rb_rating_get_rating_from_widget (GtkWidget *widget, gint widget_x, gint widget_width, double current_rating); -RBRatingPixbufs *rb_rating_pixbufs_new (void); +RBRatingPixbufs *rb_rating_pixbufs_load (void); void rb_rating_pixbufs_free (RBRatingPixbufs *pixbufs); void rb_rating_install_rating_property (GObjectClass *klass, gulong prop); diff --git a/widgets/rb-rating.c b/widgets/rb-rating.c index 2a6a00b..5e3b596 100644 --- a/widgets/rb-rating.c +++ b/widgets/rb-rating.c @@ -205,7 +205,7 @@ rb_rating_init (RBRating *rating) rating->priv = RB_RATING_GET_PRIVATE (rating); /* create the needed icons */ - rating->priv->pixbufs = rb_rating_pixbufs_new (); + rating->priv->pixbufs = rb_rating_pixbufs_load (); rb_rating_set_accessible_name (GTK_WIDGET (rating), 0.0); -- cgit v0.9.1 -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org