1
0

Accepting request 99028 from GNOME:Factory

Pushing G:F

OBS-URL: https://build.opensuse.org/request/show/99028
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gnome-bluetooth?expand=0&rev=53
This commit is contained in:
Stephan Kulow 2012-01-09 11:40:00 +00:00 committed by Git OBS Bridge
commit 90b5715063
6 changed files with 173 additions and 186 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b399e0855c446bd729900642bd7a64a0189162383de5caaaf0150ee9e2d2121b
size 1350014

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e0942001164734123ca9fa870955c2455b8f1ef0a0f30f476d8c7e52164c2567
size 1155420

View File

@ -1,139 +0,0 @@
From 00e1b334b3014ce9ed72b5d3391313467d6fe181 Mon Sep 17 00:00:00 2001
From: Vincent Untz <vuntz@gnome.org>
Date: Fri, 7 Oct 2011 15:46:51 +0200
Subject: [PATCH 1/2] lib: Disconnect signals from adapters and devices on
finalize
This avoids some crashes.
https://bugzilla.gnome.org/show_bug.cgi?id=661118
https://bugzilla.gnome.org/show_bug.cgi?id=654172
---
lib/bluetooth-client.c | 33 +++++++++++++++++++++++++++++++++
1 files changed, 33 insertions(+), 0 deletions(-)
diff --git a/lib/bluetooth-client.c b/lib/bluetooth-client.c
index 86680c3..d7af201 100644
--- a/lib/bluetooth-client.c
+++ b/lib/bluetooth-client.c
@@ -1021,6 +1021,37 @@ bluetooth_client_set_property (GObject *object,
}
}
+static gboolean
+disconnect_from_proxy_helper (GtkTreeModel *model,
+ GtkTreePath *path,
+ GtkTreeIter *iter,
+ gpointer data)
+{
+ BluetoothClient *client = data;
+ DBusGProxy *proxy;
+
+ gtk_tree_model_get(model, iter,
+ BLUETOOTH_COLUMN_PROXY, &proxy, -1);
+
+ /* adapters */
+ g_signal_handlers_disconnect_by_func(proxy,
+ adapter_changed, client);
+ g_signal_handlers_disconnect_by_func(proxy,
+ device_created, client);
+ g_signal_handlers_disconnect_by_func(proxy,
+ device_removed, client);
+ g_signal_handlers_disconnect_by_func(proxy,
+ device_found, client);
+
+ /* devices */
+ g_signal_handlers_disconnect_by_func(proxy,
+ device_changed, client);
+
+ g_object_unref(proxy);
+
+ return FALSE;
+}
+
static void bluetooth_client_finalize(GObject *client)
{
BluetoothClientPrivate *priv = BLUETOOTH_CLIENT_GET_PRIVATE(client);
@@ -1041,6 +1072,8 @@ static void bluetooth_client_finalize(GObject *client)
default_adapter_changed, client);
g_object_unref(priv->manager);
+ gtk_tree_model_foreach (GTK_TREE_MODEL(priv->store), disconnect_from_proxy_helper, client);
+
g_object_unref(priv->store);
if (priv->default_adapter)
--
1.7.7
From 63b442bb8a81776887350bad516943ddd61852b8 Mon Sep 17 00:00:00 2001
From: Vincent Untz <vuntz@gnome.org>
Date: Tue, 11 Oct 2011 09:46:52 +0200
Subject: [PATCH 2/2] lib: Do not leak proxies for detectable interfaces of
devices
This avoids signals that will cause crashes.
https://bugzilla.gnome.org/show_bug.cgi?id=654172
---
lib/bluetooth-client.c | 14 ++++++++++++++
1 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/lib/bluetooth-client.c b/lib/bluetooth-client.c
index d7af201..e2f66c7 100644
--- a/lib/bluetooth-client.c
+++ b/lib/bluetooth-client.c
@@ -103,6 +103,7 @@ struct _BluetoothClientPrivate {
DBusGProxy *manager;
GtkTreeStore *store;
GtkTreeRowReference *default_adapter;
+ GSList *horrible_workaround_for_leaked_ifaces;
};
enum {
@@ -266,6 +267,7 @@ device_services_changed (DBusGProxy *iface, const char *property,
static GHashTable *
device_list_nodes (DBusGProxy *device, BluetoothClient *client, gboolean connect_signal)
{
+ BluetoothClientPrivate *priv = BLUETOOTH_CLIENT_GET_PRIVATE(client);
GHashTable *table;
guint i;
@@ -333,6 +335,8 @@ device_list_nodes (DBusGProxy *device, BluetoothClient *client, gboolean connect
dbus_g_proxy_connect_signal(iface, "PropertyChanged",
G_CALLBACK(device_services_changed), client, NULL);
}
+
+ priv->horrible_workaround_for_leaked_ifaces = g_slist_append (priv->horrible_workaround_for_leaked_ifaces, iface);
}
}
@@ -1055,6 +1059,7 @@ disconnect_from_proxy_helper (GtkTreeModel *model,
static void bluetooth_client_finalize(GObject *client)
{
BluetoothClientPrivate *priv = BLUETOOTH_CLIENT_GET_PRIVATE(client);
+ GSList *l;
DBG("client %p", client);
@@ -1079,6 +1084,15 @@ static void bluetooth_client_finalize(GObject *client)
if (priv->default_adapter)
gtk_tree_row_reference_free (priv->default_adapter);
+ for (l = priv->horrible_workaround_for_leaked_ifaces; l != NULL; l = l->next) {
+ DBusGProxy *iface = l->data;
+
+ g_signal_handlers_disconnect_by_func(iface,
+ device_services_changed, client);
+ g_object_unref (iface);
+ }
+ g_slist_free (priv->horrible_workaround_for_leaked_ifaces);
+
G_OBJECT_CLASS(bluetooth_client_parent_class)->finalize(client);
}
--
1.7.7

View File

@ -0,0 +1,60 @@
Index: gnome-bluetooth-3.3.2/lib/Makefile.am
===================================================================
--- gnome-bluetooth-3.3.2.orig/lib/Makefile.am
+++ gnome-bluetooth-3.3.2/lib/Makefile.am
@@ -76,8 +76,8 @@ introspection_files = \
$(libgnome_bluetooth_c_sources)
GnomeBluetooth-1.0.gir: libgnome-bluetooth.la
-GnomeBluetooth_1_0_gir_INCLUDES = GObject-2.0 Gtk-3.0 DBusGLib-1.0 GModule-2.0
-GnomeBluetooth_1_0_gir_PACKAGES = gobject-2.0 gtk+-3.0 dbus-glib-1 gmodule-2.0 glib-2.0
+GnomeBluetooth_1_0_gir_INCLUDES = GObject-2.0 Gtk-3.0 GModule-2.0
+GnomeBluetooth_1_0_gir_PACKAGES = gobject-2.0 gtk+-3.0 gmodule-2.0 glib-2.0
GnomeBluetooth_1_0_gir_CFLAGS = -I$(srcdir)
GnomeBluetooth_1_0_gir_LIBS = libgnome-bluetooth.la
GnomeBluetooth_1_0_gir_SCANNERFLAGS = --symbol-prefix=bluetooth_ --identifier-prefix=Bluetooth --pkg-export=gnome-bluetooth-1.0
Index: gnome-bluetooth-3.3.2/lib/Makefile.in
===================================================================
--- gnome-bluetooth-3.3.2.orig/lib/Makefile.in
+++ gnome-bluetooth-3.3.2/lib/Makefile.in
@@ -453,8 +453,8 @@ INTROSPECTION_COMPILER_ARGS = --included
@HAVE_INTROSPECTION_TRUE@ $(libgnome_bluetooth_introspect_headers) \
@HAVE_INTROSPECTION_TRUE@ $(libgnome_bluetooth_c_sources)
-@HAVE_INTROSPECTION_TRUE@GnomeBluetooth_1_0_gir_INCLUDES = GObject-2.0 Gtk-3.0 DBusGLib-1.0 GModule-2.0
-@HAVE_INTROSPECTION_TRUE@GnomeBluetooth_1_0_gir_PACKAGES = gobject-2.0 gtk+-3.0 dbus-glib-1 gmodule-2.0 glib-2.0
+@HAVE_INTROSPECTION_TRUE@GnomeBluetooth_1_0_gir_INCLUDES = GObject-2.0 Gtk-3.0 GModule-2.0
+@HAVE_INTROSPECTION_TRUE@GnomeBluetooth_1_0_gir_PACKAGES = gobject-2.0 gtk+-3.0 gmodule-2.0 glib-2.0
@HAVE_INTROSPECTION_TRUE@GnomeBluetooth_1_0_gir_CFLAGS = -I$(srcdir)
@HAVE_INTROSPECTION_TRUE@GnomeBluetooth_1_0_gir_LIBS = libgnome-bluetooth.la
@HAVE_INTROSPECTION_TRUE@GnomeBluetooth_1_0_gir_SCANNERFLAGS = --symbol-prefix=bluetooth_ --identifier-prefix=Bluetooth --pkg-export=gnome-bluetooth-1.0
Index: gnome-bluetooth-3.3.2/applet/Makefile-lib.am
===================================================================
--- gnome-bluetooth-3.3.2.orig/applet/Makefile-lib.am
+++ gnome-bluetooth-3.3.2/applet/Makefile-lib.am
@@ -21,8 +21,8 @@ INTROSPECTION_COMPILER_ARGS = --included
if HAVE_INTROSPECTION
GnomeBluetoothApplet-1.0.gir: libgnome-bluetooth-applet.la
GnomeBluetoothApplet_1_0_gir_SCANNERFLAGS = --warn-all --symbol-prefix=bluetooth_ --identifier-prefix=Bluetooth --include-uninstalled=$(top_builddir)/lib/GnomeBluetooth-1.0.gir
-GnomeBluetoothApplet_1_0_gir_INCLUDES = GObject-2.0 Gtk-3.0 DBusGLib-1.0 GModule-2.0
-GnomeBluetoothApplet_1_0_gir_PACKAGES = gobject-2.0 gtk+-3.0 dbus-glib-1 gmodule-2.0 glib-2.0
+GnomeBluetoothApplet_1_0_gir_INCLUDES = GObject-2.0 Gtk-3.0 GModule-2.0
+GnomeBluetoothApplet_1_0_gir_PACKAGES = gobject-2.0 gtk+-3.0 gmodule-2.0 glib-2.0
GnomeBluetoothApplet_1_0_gir_CFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_srcdir)/lib
GnomeBluetoothApplet_1_0_gir_LIBS = libgnome-bluetooth-applet.la
GnomeBluetoothApplet_1_0_gir_FILES = $(libgnome_bluetooth_applet_la_SOURCES) ../lib/bluetooth-enums.h
Index: gnome-bluetooth-3.3.2/applet/Makefile.in
===================================================================
--- gnome-bluetooth-3.3.2.orig/applet/Makefile.in
+++ gnome-bluetooth-3.3.2/applet/Makefile.in
@@ -356,8 +356,8 @@ INTROSPECTION_GIRS = $(am__append_1)
INTROSPECTION_SCANNER_ARGS = --add-include-path=$(srcdir)
INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir) --includedir=$(top_builddir)/lib
@HAVE_INTROSPECTION_TRUE@GnomeBluetoothApplet_1_0_gir_SCANNERFLAGS = --warn-all --symbol-prefix=bluetooth_ --identifier-prefix=Bluetooth --include-uninstalled=$(top_builddir)/lib/GnomeBluetooth-1.0.gir
-@HAVE_INTROSPECTION_TRUE@GnomeBluetoothApplet_1_0_gir_INCLUDES = GObject-2.0 Gtk-3.0 DBusGLib-1.0 GModule-2.0
-@HAVE_INTROSPECTION_TRUE@GnomeBluetoothApplet_1_0_gir_PACKAGES = gobject-2.0 gtk+-3.0 dbus-glib-1 gmodule-2.0 glib-2.0
+@HAVE_INTROSPECTION_TRUE@GnomeBluetoothApplet_1_0_gir_INCLUDES = GObject-2.0 Gtk-3.0 GModule-2.0
+@HAVE_INTROSPECTION_TRUE@GnomeBluetoothApplet_1_0_gir_PACKAGES = gobject-2.0 gtk+-3.0 gmodule-2.0 glib-2.0
@HAVE_INTROSPECTION_TRUE@GnomeBluetoothApplet_1_0_gir_CFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_srcdir)/lib
@HAVE_INTROSPECTION_TRUE@GnomeBluetoothApplet_1_0_gir_LIBS = libgnome-bluetooth-applet.la
@HAVE_INTROSPECTION_TRUE@GnomeBluetoothApplet_1_0_gir_FILES = $(libgnome_bluetooth_applet_la_SOURCES) ../lib/bluetooth-enums.h

View File

@ -1,3 +1,72 @@
-------------------------------------------------------------------
Sat Dec 24 13:43:44 UTC 2011 - gankov@opensuse.org
- Add gnome-control-center Requires for bluetooth setup to work
(bnc#732689)
-------------------------------------------------------------------
Fri Dec 23 11:08:36 UTC 2011 - vuntz@opensuse.org
- Update to version 3.3.3:
+ Library:
- GVariant fixes
- Build improvements
+ Applet:
- Fix a packing issue
+ Wizard:
- Improvements in the handling of PIN codes
- Fix a segfault
- Fix an UI issue with the "Close" button
- Add xz BuildRequires because we can't build a package for a
xz-compressed tarball without explicitly specifying that... See
bnc#697467 for more details.
-------------------------------------------------------------------
Wed Dec 21 01:17:36 UTC 2011 - vuntz@opensuse.org
- Remove gtk2-devel Requires from devel subpackage: it will
automatically be added the pkgconfig() way.
- Rewrite summary and description of devel subpackage.
- Change group of libgnome-bluetooth9 and
typelib-1_0-GnomeBluetooth-1_0 from System/GUI/GNOME to
System/Libraries.
- Add gnome-bluetooth-no-dbus-glib.patch: finish removing dbus-glib
usage in the build system.
- Remove pkgconfig(dbus-glib-1) BuildRequires: it is gone since
version 3.3.2.
-------------------------------------------------------------------
Thu Dec 8 20:03:29 UTC 2011 - dimstar@opensuse.org
- Split typelib file into typelib-1_0-GnomeBluetooth-1_0
subpackage.
- Add typelib-1_0-GnomeBluetooth-1_0 Requires to devel subpackage.
-------------------------------------------------------------------
Sat Nov 26 15:16:06 UTC 2011 - dimstar@opensuse.org
- Remove all .la files: gnome-bluetooth-applet.la on its own has
reference to the other la files, so keeping some of them breaks
more than it serves.
-------------------------------------------------------------------
Mon Nov 21 17:03:09 UTC 2011 - dimstar@opensuse.org
- Update to version 3.3.2:
+ Library:
- Clean up public API
- Port to GDBus
- Small UI fixes to the chooser
+ Properties:
- Move to gnome-control-center
+ Wizard:
- Remove special-case Wiimote handling (now in Bluez)
- Remove multi-adapter support
+ Updated translations.
- Drop gnome-bluetooth-fix-crash.patch: fixed upstream another way.
- Rename libgnome-bluetooth8 to libgnome-bluetooth9, following
soversion bump.
-------------------------------------------------------------------
Mon Oct 17 17:49:47 CEST 2011 - dimstar@opensuse.org

View File

@ -1,7 +1,7 @@
#
# spec file for package gnome-bluetooth
#
# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -16,20 +16,19 @@
#
Name: gnome-bluetooth
Version: 3.2.1
Release: 1
License: GPLv2+
Version: 3.3.3
Release: 0
Summary: GNOME Bluetooth graphical utilities
Url: http://live.gnome.org/GnomeBluetooth
License: GPL-2.0+
Group: System/GUI/GNOME
Source: http://download.gnome.org/sources/gnome-bluetooth/3.2/%{name}-%{version}.tar.bz2
Url: http://live.gnome.org/GnomeBluetooth
Source: http://download.gnome.org/sources/gnome-bluetooth/3.3/%{name}-%{version}.tar.xz
Source1: 61-gnome-bluetooth-rfkill.rules
# PATCH-MISSING-TAG -- See http://en.opensuse.org/Packaging/Patches
Patch0: lxde-support.patch
# PATCH-FIX-UPSTREAM gnome-bluetooth-fix-crash.patch bgo#654172 bnc#722722 vuntz@opensuse.org -- Fix various crashes in libgnome-bluetooth due to leaking objects
Patch1: gnome-bluetooth-fix-crash.patch
# PATCH-FIX-UPSTREAM gnome-bluetooth-no-dbus-glib.patch bgo#666630 vuntz@opensuse.org -- Finish removing dbus-glib usage in the build system
Patch1: gnome-bluetooth-no-dbus-glib.patch
BuildRequires: fdupes
BuildRequires: gnome-doc-utils-devel
BuildRequires: gobject-introspection-devel
@ -37,8 +36,9 @@ BuildRequires: intltool
BuildRequires: libnotify-devel
BuildRequires: translation-update-upstream
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(dbus-glib-1)
BuildRequires: pkgconfig(gtk+-3.0) >= 2.90.7
# Only needed because we don't (and won't) support building xz tarballs by default... See bnc#697467
BuildRequires: xz
BuildRequires: pkgconfig(nautilus-sendto)
%if 0%{?BUILD_FROM_VCS}
BuildRequires: gnome-common
@ -48,6 +48,8 @@ BuildRequires: gtk-doc
Requires: bluez >= 4.36
# Require obexd for bluetooth-sendto to work (bnc#622946)
Requires: obexd-client
# Require gnome-control-center for bluetooth setup to work (bnc#732689)
Requires: gnome-control-center
Recommends: %{name}-lang
Provides: bluez-gnome = 1.8
Obsoletes: bluez-gnome < 1.8
@ -59,36 +61,38 @@ The gnome-bluetooth package contains graphical utilities to setup,
monitor and use Bluetooth devices.
%package devel
License: GPLv2+
Summary: GNOME Bluetooth Support
Summary: GNOME Bluetooth graphical utilities -- Development Files
Group: Development/Libraries/GNOME
Requires: %{name} = %{version}
Requires: gtk2-devel
Requires: typelib-1_0-GnomeBluetooth-1_0 = %{version}
Obsoletes: libgnomebt-devel < 0.12
Provides: libgnomebt-devel = 0.12
%description devel
This package contains a controller class, GnomebtController, to control
Bluetooth devices and a simple GUI to explore which devices are
available (gnome-bluetooth-manager). An OBEX server is available,
gnome-obex-server. This receives files sent via Bluetooth to your PC
and saves them in your home directory. The program gnome-obex-send
enables you to send files. It is used by the Nautilus component --
select the files you want to send and choose "Send via Bluetooth..."
from the context menu.
%package -n libgnome-bluetooth8
License: GPLv2+
Summary: GNOME Bluetooth graphical utilities
Group: System/GUI/GNOME
Obsoletes: libgnomebt1 <= 0.12
%description -n libgnome-bluetooth8
The gnome-bluetooth package contains graphical utilities to setup,
monitor and use Bluetooth devices.
%package -n libgnome-bluetooth9
Summary: GNOME Bluetooth graphical utilities
Group: System/Libraries
Obsoletes: libgnomebt1 <= 0.12
%description -n libgnome-bluetooth9
The gnome-bluetooth package contains graphical utilities to setup,
monitor and use Bluetooth devices.
%package -n typelib-1_0-GnomeBluetooth-1_0
Summary: GNOME Bluetooth graphical utilities -- Introspection bindings
Group: System/Libraries
%description -n typelib-1_0-GnomeBluetooth-1_0
The gnome-bluetooth package contains graphical utilities to setup,
monitor and use Bluetooth devices.
This package provides the GObject Introspection bindings for the
gnome-bluetooth library.
%package plugins-geoclue
License: GPLv2+
Summary: GNOME Bluetooth Support
Group: System/GUI/GNOME
Requires: %{name} = %{version}
@ -99,7 +103,6 @@ The gnome-bluetooth package contains graphical utilities to setup,
monitor and use Bluetooth devices.
%package -n nautilus-sendto-plugin-bluetooth
License: GPLv2+
Summary: Bluetooth plugin for nautilus-sendto
Group: Productivity/File utilities
Requires: %{name} = %{version}
@ -134,13 +137,8 @@ translation-update-upstream
%install
%makeinstall
# keep libgnome-bluetooth-applet.la
rm -f %{buildroot}%{_libdir}/libgnome-bluetooth.la \
%{buildroot}%{_libdir}/gnome-bluetooth/plugins/*.la \
%{buildroot}%{_libdir}/nautilus-sendto/plugins/*.la \
%{buildroot}/%{_libdir}/control-center-1/panels/libbluetooth.la
find %{buildroot}%{_libdir} -name '*.la' -type f -delete -print
%suse_update_desktop_file bluetooth-applet
%suse_update_desktop_file bluetooth-properties
%suse_update_desktop_file bluetooth-sendto
%suse_update_desktop_file bluetooth-wizard
%find_lang %{name}2 %{?no_lang_C}
@ -167,9 +165,9 @@ rm -rf %{buildroot}
%postun -n nautilus-sendto-plugin-bluetooth
%glib2_gsettings_schema_postun
%post -n libgnome-bluetooth8 -p /sbin/ldconfig
%post -n libgnome-bluetooth9 -p /sbin/ldconfig
%postun -n libgnome-bluetooth8 -p /sbin/ldconfig
%postun -n libgnome-bluetooth9 -p /sbin/ldconfig
%files
%defattr(-, root, root)
@ -184,15 +182,11 @@ rm -rf %{buildroot}
/lib/udev/rules.d/61-gnome-bluetooth-rfkill.rules
%{_bindir}/bluetooth-*
%{_sysconfdir}/xdg/autostart/bluetooth-applet.desktop
%{_datadir}/applications/bluetooth-properties.desktop
%{_datadir}/applications/bluetooth-sendto.desktop
%{_datadir}/applications/bluetooth-wizard.desktop
%{_datadir}/gnome-bluetooth/
%{_datadir}/icons/hicolor/*/*/bluetooth*
%{_mandir}/man1/bluetooth-*
%dir %{_libdir}/control-center-1
%dir %{_libdir}/control-center-1/panels
%{_libdir}/control-center-1/panels/libbluetooth.so
# Own the plugin directory, but exclude the plugin library itself
%dir %{_libdir}/gnome-bluetooth
%{_libdir}/gnome-bluetooth/libgnome-bluetooth-applet.*
@ -203,9 +197,12 @@ rm -rf %{buildroot}
%files lang -f %{name}2.lang
%files -n libgnome-bluetooth8
%files -n libgnome-bluetooth9
%defattr(-,root,root,-)
%{_libdir}/libgnome-bluetooth.so.*
%files -n typelib-1_0-GnomeBluetooth-1_0
%defattr(-,root,root)
%{_libdir}/girepository-1.0/GnomeBluetooth-1.0.typelib
%files devel