From f01d064b14e00f52c3add3f7a20cd4f14607149b Mon Sep 17 00:00:00 2001 From: Richard Hughes Date: Aug 27 2008 10:04:21 +0000 Subject: - Dont crash 64 bit client tools when the daemon exits. - Fixes rh#458215 --- diff --git a/PackageKit.spec b/PackageKit.spec index e740d05..ae8ca65 100644 --- a/PackageKit.spec +++ b/PackageKit.spec @@ -8,11 +8,10 @@ Summary: System daemon that is a DBUS abstraction layer for package management Name: PackageKit Version: 0.2.4 -Release: 5%{?dist} +Release: 6%{?dist} License: GPLv2+ Group: System Environment/Libraries URL: http://packagekit.freedesktop.org -#Source0: http://people.freedesktop.org/~hughsient/releases/%{name}-%{version}-%{?alphatag}.tar.gz Source0: http://www.packagekit.org/releases/%{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -26,6 +25,8 @@ Patch2: pk-test-local-files-correctly.patch Patch3: pk-check-what-requires-search-string.patch # upstream, 4fd7836ea13774c1c9fddde4ef6b782af8b0bd7b Patch4: pk-dont-blacklist-apostrophes.patch +# upstream, d7eb3b7b4c8af84d82c42a727d08bc4adf722d6d +Patch5: pk-handle-restart-x64.patch Requires: dbus >= %{dbus_version} Requires: PackageKit-libs = %{version}-%{release} @@ -108,13 +109,13 @@ Requires: sqlite-devel Headers and libraries for PackageKit. %prep -#%setup -q -n %{name}-%{version}-%{?alphatag} %setup -q %patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 +%patch5 -p1 %build %configure --enable-yum --enable-yum2 --with-default-backend=yum --disable-local @@ -211,6 +212,10 @@ update-mime-database %{_datadir}/mime &> /dev/null || : %{_includedir}/* %changelog +* Wed Aug 27 2008 Richard Hughes - 0.2.4-6 +- Dont crash 64 bit client tools when the daemon exits. +- Fixes rh#458215 + * Fri Aug 15 2008 Richard Hughes - 0.2.4-5 - Don't blacklist apostrophe characters. Fixes rh#459155 diff --git a/pk-handle-restart-x64.patch b/pk-handle-restart-x64.patch new file mode 100644 index 0000000..16973cd --- /dev/null +++ b/pk-handle-restart-x64.patch @@ -0,0 +1,37 @@ +commit d7eb3b7b4c8af84d82c42a727d08bc4adf722d6d +Author: Richard Hughes +Date: Wed Aug 27 10:42:24 2008 +0100 + + bugfix: properly disconnect the disconnect handler so we don't crash the client tools when the daemon exits + +diff --git a/libpackagekit/pk-client.c b/libpackagekit/pk-client.c +index b5673d5..bf2be6c 100644 +--- a/libpackagekit/pk-client.c ++++ b/libpackagekit/pk-client.c +@@ -85,6 +85,7 @@ struct _PkClientPrivate + PkControl *control; + PkPackageList *package_list; + PkConnection *pconnection; ++ gulong pconnection_signal_id; + PkRestartEnum require_restart; + PkStatusEnum last_status; + PkRoleEnum role; +@@ -3909,8 +3910,8 @@ pk_client_init (PkClient *client) + + /* watch for PackageKit on the bus, and try to connect up at start */ + client->priv->pconnection = pk_connection_new (); +- g_signal_connect (client->priv->pconnection, "connection-changed", +- G_CALLBACK (pk_connection_changed_cb), client); ++ client->priv->pconnection_signal_id = g_signal_connect (client->priv->pconnection, "connection-changed", ++ G_CALLBACK (pk_connection_changed_cb), client); + if (pk_connection_valid (client->priv->pconnection)) { + pk_client_connect (client); + } +@@ -4021,6 +4022,7 @@ pk_client_finalize (GObject *object) + g_main_loop_unref (client->priv->loop); + + /* disconnect signal handlers */ ++ g_signal_handler_disconnect (client->priv->pconnection, client->priv->pconnection_signal_id); + pk_client_disconnect_proxy (client); + g_object_unref (client->priv->pconnection); + g_object_unref (client->priv->package_list);