Hello community, here is the log from the commit of package gnome-vfs2 checked in at Thu Mar 29 00:40:22 CEST 2007. -------- --- GNOME/gnome-vfs2/gnome-vfs2.changes 2007-03-25 09:26:56.000000000 +0200 +++ /mounts/work_src_done/STABLE/gnome-vfs2/gnome-vfs2.changes 2007-03-27 22:30:38.595137000 +0200 @@ -1,0 +2,12 @@ +Tue Mar 27 22:29:41 CEST 2007 - crivera@suse.de + +- Add a patch to handle avahi-daemon restarts without + segfaulting. This patch has already been committed upstream. + This fixes 214887. + +------------------------------------------------------------------- +Tue Mar 27 10:48:01 CEST 2007 - sbrabec@suse.cz + +- Build correctly with bzip2 in older products. + +------------------------------------------------------------------- New: ---- gnome-vfs2-dns-sd.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gnome-vfs2.spec ++++++ --- /var/tmp/diff_new_pack.DX6763/_old 2007-03-29 00:40:01.000000000 +0200 +++ /var/tmp/diff_new_pack.DX6763/_new 2007-03-29 00:40:01.000000000 +0200 @@ -14,7 +14,12 @@ %define _name gnome-vfs # Set to AVAHI or BONJOUR %define DNS_SD AVAHI -BuildRequires: cdparanoia dbus-1-devel dbus-1-glib fam-devel gcc-c++ gconf2-devel gnome-common gnome-patch-translation gtk-doc gtk2-devel hal-devel indent intltool krb5-devel libacl-devel libattr-devel libbz2-devel libgcrypt-devel libidl libsmbclient libsmbclient-devel libtiff-devel libxml2-devel openssh openssl-devel perl-XML-Parser samba sgml-skel update-desktop-files +BuildRequires: cdparanoia dbus-1-devel dbus-1-glib fam-devel gcc-c++ gconf2-devel gnome-common gnome-patch-translation gtk-doc gtk2-devel hal-devel indent intltool krb5-devel libacl-devel libattr-devel libgcrypt-devel libidl libsmbclient libsmbclient-devel libtiff-devel libxml2-devel openssh openssl-devel perl-XML-Parser samba sgml-skel update-desktop-files +%if %suse_version > 1020 +BuildRequires: libbz2-devel +%else +BuildRequires: bzip2 +%endif %if "%DNS_SD" == "AVAHI" BuildRequires: avahi-devel avahi-glib %endif @@ -22,7 +27,7 @@ BuildRequires: mDNSResponder-devel %endif Version: 2.18.0.1 -Release: 2 +Release: 5 Summary: The GNOME 2.x Desktop Virtual File System Libraries License: GNU General Public License (GPL), GNU Library General Public License v. 2.0 and 2.1 (LGPL) Group: Development/Libraries/GNOME @@ -51,6 +56,7 @@ Patch37: gnome-vfs2-183723-unix-mounts-plus-hal-mounts.diff Patch38: gnome-vfs2-224527-slow-fadvise.patch Patch39: gnome-vfs-no-mime-data.patch +Patch40: gnome-vfs2-dns-sd.patch Autoreqprov: on Obsoletes: gnome-vfs-extras gnome-mime-data Provides: gnome-vfs-extras @@ -174,6 +180,8 @@ %patch22 %patch38 %patch39 +%patch40 + # Generate translations for "news" and "ftp" entries from "h323". # These entries are identical with exception of URL type string. for po in po/*.po ; do @@ -265,6 +273,12 @@ %{_datadir}/gtk-doc/html/gnome-vfs-2.0 %changelog +* Tue Mar 27 2007 - crivera@suse.de +- Add a patch to handle avahi-daemon restarts without + segfaulting. This patch has already been committed upstream. + This fixes 214887. +* Tue Mar 27 2007 - sbrabec@suse.cz +- Build correctly with bzip2 in older products. * Sun Mar 25 2007 - aj@suse.de - Add libbz2-devel to BuildRequires. * Wed Mar 21 2007 - maw@suse.de ++++++ gnome-vfs2-dns-sd.patch ++++++ diff -pur /usr/src/packages/BUILD/gnome-vfs-2.17.91/libgnomevfs/gnome-vfs-dns-sd.c ./libgnomevfs/gnome-vfs-dns-sd.c --- /usr/src/packages/BUILD/gnome-vfs-2.17.91/libgnomevfs/gnome-vfs-dns-sd.c 2007-01-03 01:50:44.000000000 -0500 +++ libgnomevfs/gnome-vfs-dns-sd.c 2007-03-23 12:28:21.000000000 -0400 @@ -732,10 +732,14 @@ unicast_resolve_sync (const char *name, /* multicast DNS functions */ #ifdef HAVE_AVAHI + static AvahiClient *global_client = NULL; static gboolean avahi_initialized = FALSE; +static GSList *browse_handles = NULL; static AvahiClient *get_global_avahi_client (void); +static void add_service_browser_cb (gpointer data, gpointer user_data); +static void remove_service_browser_cb (gpointer data, gpointer user_data); /* Callback for state changes on the Client */ static void @@ -743,6 +747,9 @@ avahi_client_callback (AvahiClient *clie { if (state == AVAHI_CLIENT_FAILURE) { if (avahi_client_errno (client) == AVAHI_ERR_DISCONNECTED) { + /* Remove the service browsers from the handles */ + g_slist_foreach (browse_handles, remove_service_browser_cb, NULL); + /* Destroy old client */ avahi_client_free (client); global_client = NULL; @@ -751,6 +758,9 @@ avahi_client_callback (AvahiClient *clie /* Reconnect */ get_global_avahi_client (); } + } else if (state == AVAHI_CLIENT_S_RUNNING) { + /* Start browsing again */ + g_slist_foreach (browse_handles, add_service_browser_cb, NULL); } } @@ -932,6 +942,7 @@ unicast_browse_thread (gpointer data) } #ifdef HAVE_AVAHI + static void avahi_browse_callback (AvahiServiceBrowser *b, AvahiIfIndex interface, @@ -964,6 +975,35 @@ avahi_browse_callback (AvahiServiceBrows handle->callback_data); } } + +static void +remove_service_browser_cb (gpointer data, gpointer user_data) +{ + GnomeVFSDNSSDBrowseHandle *handle = data; + handle->avahi_sb = NULL; +} + +static void +add_service_browser_cb (gpointer data, gpointer user_data) +{ + GnomeVFSDNSSDBrowseHandle *handle = data; + AvahiServiceBrowser *sb; + AvahiClient *client; + + client = get_global_avahi_client (); + if (!client) + return; + + sb = avahi_service_browser_new (client, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, handle->type, NULL, + AVAHI_LOOKUP_USE_MULTICAST, avahi_browse_callback, handle); + if (sb != NULL) { + handle->avahi_sb = sb; + return; + } + + g_warning ("Failed to create service browser: %s\n", avahi_strerror( avahi_client_errno (client))); +} + #endif #ifdef HAVE_HOWL @@ -1127,6 +1167,7 @@ gnome_vfs_dns_sd_browse (GnomeVFSDNSSDBr if (sb != NULL) { handle->avahi_sb = sb; *handle_out = handle; + browse_handles = g_slist_append (browse_handles, handle); return GNOME_VFS_OK; } g_warning ("Failed to create service browser: %s\n", avahi_strerror( avahi_client_errno (client))); @@ -1185,8 +1226,12 @@ gnome_vfs_dns_sd_stop_browse (GnomeVFSDN if (handle->is_local) { #ifdef HAVE_AVAHI handle->cancelled = TRUE; + + if (handle->avahi_sb) avahi_service_browser_free (handle->avahi_sb); - free_browse_handle (handle); + + browse_handles = g_slist_remove (browse_handles, handle); + free_browse_handle (handle); #endif #ifdef HAVE_HOWL handle->cancelled = TRUE; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org