Matthias Clasen 19 years ago
parent b63fdf77f5
commit c795d50c96

@ -10,3 +10,4 @@ gnome-vfs-2.10.0.tar.bz2
gnome-vfs-2.11.90.tar.bz2 gnome-vfs-2.11.90.tar.bz2
gnome-vfs-2.12.0.tar.bz2 gnome-vfs-2.12.0.tar.bz2
gnome-vfs-2.12.1.1.tar.bz2 gnome-vfs-2.12.1.1.tar.bz2
gnome-vfs-2.13.1.tar.bz2

@ -1,60 +1,64 @@
diff -ur gnome-vfs-2.12.1.1.avahi/configure.in gnome-vfs-2.12.1.1/configure.in --- gnome-vfs-2.13.1/modules/dns-sd-method.c.avahi 2005-12-02 13:32:54.000000000 -0500
--- gnome-vfs-2.12.1.1.avahi/configure.in 2005-10-05 10:52:41.000000000 +0200 +++ gnome-vfs-2.13.1/modules/dns-sd-method.c 2005-12-02 13:33:07.000000000 -0500
+++ gnome-vfs-2.12.1.1/configure.in 2005-11-22 12:02:42.000000000 +0100 @@ -31,7 +31,9 @@
@@ -651,12 +651,26 @@
fi #ifdef HAVE_AVAHI
fi #include <avahi-client/client.h>
dnl **************************** +#include <avahi-client/lookup.h>
-dnl Howl #include <avahi-common/error.h>
+dnl DNS-SD implementations +#include <avahi-common/timeval.h>
dnl **************************** #include <avahi-common/simple-watch.h>
-msg_howl=no #include <avahi-glib/glib-watch.h>
+AM_CONDITIONAL(HAVE_AVAHI, false) #endif
AM_CONDITIONAL(HAVE_HOWL, false) @@ -320,7 +322,7 @@
+ AvahiSimplePoll *poll;
+AC_ARG_ENABLE(avahi, [ --disable-avahi build without avahi support])
+msg_avahi=no poll = user_data;
+if test "x$enable_avahi" != "xno"; then - if (state == AVAHI_CLIENT_DISCONNECTED) {
+ PKG_CHECK_MODULES(AVAHI, avahi-glib >= 0.6 avahi-client >= 0.6, + if (state == AVAHI_CLIENT_FAILURE) {
+ [AM_CONDITIONAL(HAVE_AVAHI, true) avahi_simple_poll_quit (poll);
+ AC_DEFINE(HAVE_AVAHI, [], [Set if we can use avahi])] }
+ msg_avahi=yes, }
+ [AM_CONDITIONAL(HAVE_AVAHI, false)]) @@ -333,12 +335,18 @@
+ AC_SUBST(AVAHI_CFLAGS) const char *name,
+ AC_SUBST(AVAHI_LIBS) const char *type,
+fi const char *domain,
+ + AvahiLookupResultFlags flags,
AC_ARG_ENABLE(howl, [ --disable-howl build without howl support]) void *user_data)
-if test "x$enable_howl" != "xno"; then {
+msg_howl=no + AvahiSimplePoll *poll = user_data;
+if test "x$msg_avahi" = "xno" -a "x$enable_howl" != "xno"; then +
PKG_CHECK_MODULES(HOWL, howl >= 0.9.6, if (event == AVAHI_BROWSER_NEW)
[AM_CONDITIONAL(HAVE_HOWL, true) local_browse (TRUE, name, type, domain);
AC_DEFINE(HAVE_HOWL, [], [Set if we can use howl])] else if (event == AVAHI_BROWSER_REMOVE)
@@ -969,8 +983,8 @@ local_browse (FALSE, name, type, domain);
dnl ============================================================================== + else if (event == AVAHI_BROWSER_ALL_FOR_NOW)
+ avahi_simple_poll_quit (poll);
+
}
static void
@@ -385,7 +393,7 @@
}
poll = avahi_simple_poll_get (simple_poll);
- client = avahi_client_new (poll,
+ client = avahi_client_new (poll, 0,
avahi_client_callback, simple_poll, &error);
/* Check wether creating the client object succeeded */
@@ -400,7 +408,8 @@
for (i = 0; i < G_N_ELEMENTS (dns_sd_types); i++) {
sb[i] = avahi_service_browser_new (client, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC,
dns_sd_types[i].type, "local",
- local_browse_callback_sync, NULL);
+ AVAHI_LOOKUP_USE_MULTICAST,
+ local_browse_callback_sync, simple_poll);
}
PKG_CHECK_MODULES(LIBGNOMEVFS, glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED bonobo-activation-2.0 >= $BONOBO_ACTIVATION_REQUIRED libbonobo-2.0 >= $BONOBO_REQUIRED ORBit-2.0 >= $ORBIT_REQUIRED libxml-2.0 >= $XML_REQUIRED gnome-mime-data-2.0)
-LIBGNOMEVFS_CFLAGS="$LIBGNOMEVFS_CFLAGS $OPENSSL_CFLAGS $LIBGNUTLS_CFLAGS $HOWL_CFLAGS"
-LIBGNOMEVFS_LIBS="$LIBGNOMEVFS_LIBS $OPENSSL_LIBS $LIBGNUTLS_LIBS $HOWL_LIBS $RESOLVER_LIBS"
+LIBGNOMEVFS_CFLAGS="$LIBGNOMEVFS_CFLAGS $OPENSSL_CFLAGS $LIBGNUTLS_CFLAGS $HOWL_CFLAGS $AVAHI_CFLAGS"
+LIBGNOMEVFS_LIBS="$LIBGNOMEVFS_LIBS $OPENSSL_LIBS $LIBGNUTLS_LIBS $HOWL_LIBS $AVAHI_LIBS $RESOLVER_LIBS"
AC_SUBST(LIBGNOMEVFS_CFLAGS)
AC_SUBST(LIBGNOMEVFS_LIBS)
@@ -1136,6 +1150,7 @@ --- gnome-vfs-2.13.1/libgnomevfs/gnome-vfs-dns-sd.c.avahi 2005-12-02 13:32:36.000000000 -0500
echo "Gnome VFS configuration summary:" +++ gnome-vfs-2.13.1/libgnomevfs/gnome-vfs-dns-sd.c 2005-12-02 13:33:21.000000000 -0500
echo "
IPv6 support: $have_ipv6
+ Avahi support: $msg_avahi
Howl support: $msg_howl
HAL support: $msg_hal
Gtk Doc: $enable_gtk_doc
Only in gnome-vfs-2.12.1.1: configure.in.orig
Only in gnome-vfs-2.12.1.1: configure.in.rej
diff -ur gnome-vfs-2.12.1.1.avahi/libgnomevfs/gnome-vfs-dns-sd.c gnome-vfs-2.12.1.1/libgnomevfs/gnome-vfs-dns-sd.c
--- gnome-vfs-2.12.1.1.avahi/libgnomevfs/gnome-vfs-dns-sd.c 2005-07-14 09:47:53.000000000 +0200
+++ gnome-vfs-2.12.1.1/libgnomevfs/gnome-vfs-dns-sd.c 2005-11-22 12:08:19.000000000 +0100
@@ -36,6 +36,15 @@ @@ -36,6 +36,15 @@
#include <gconf/gconf-client.h> #include <gconf/gconf-client.h>
#include <unistd.h> #include <unistd.h>
@ -112,7 +116,7 @@ diff -ur gnome-vfs-2.12.1.1.avahi/libgnomevfs/gnome-vfs-dns-sd.c gnome-vfs-2.12.
+ global_client = avahi_client_new (avahi_glib_poll_get (glib_poll), + global_client = avahi_client_new (avahi_glib_poll_get (glib_poll),
+ AVAHI_CLIENT_NO_FAIL, + AVAHI_CLIENT_NO_FAIL,
+ avahi_client_callback, + avahi_client_callback,
+ NULL, + glib_poll,
+ &error); + &error);
+ +
+ if (global_client == NULL) { + if (global_client == NULL) {
@ -644,315 +648,14 @@ diff -ur gnome-vfs-2.12.1.1.avahi/libgnomevfs/gnome-vfs-dns-sd.c gnome-vfs-2.12.
sw_discovery session; sw_discovery session;
sw_salt salt; sw_salt salt;
sw_result res; sw_result res;
diff -ur gnome-vfs-2.12.1.1.avahi/modules/dns-sd-method.c gnome-vfs-2.12.1.1/modules/dns-sd-method.c --- gnome-vfs-2.13.1/configure.in.avahi 2005-12-02 13:34:02.000000000 -0500
--- gnome-vfs-2.12.1.1.avahi/modules/dns-sd-method.c 2005-05-08 15:04:05.000000000 +0200 +++ gnome-vfs-2.13.1/configure.in 2005-12-02 13:34:27.000000000 -0500
+++ gnome-vfs-2.12.1.1/modules/dns-sd-method.c 2005-11-22 12:09:19.000000000 +0100 @@ -662,7 +662,7 @@
@@ -29,6 +29,15 @@ AC_ARG_ENABLE(avahi, [ --disable-avahi build without avahi support])
#include <time.h> msg_avahi=no
#include <sys/time.h> if test "x$enable_avahi" != "xno"; then
- PKG_CHECK_MODULES(AVAHI, avahi-glib avahi-client,
+#ifdef HAVE_AVAHI + PKG_CHECK_MODULES(AVAHI, avahi-glib >= 0.6 avahi-client >= 0.6,
+#include <avahi-client/client.h> [AM_CONDITIONAL(HAVE_AVAHI, true)
+#include <avahi-client/lookup.h> AC_DEFINE(HAVE_AVAHI, [], [Set if we can use avahi])]
+#include <avahi-common/error.h> msg_avahi=yes,
+#include <avahi-common/timeval.h>
+#include <avahi-common/simple-watch.h>
+#include <avahi-glib/glib-watch.h>
+#endif
+
#ifdef HAVE_HOWL
/* Need to work around howl exporting its config file... */
#undef PACKAGE
@@ -58,15 +67,16 @@
} dns_sd_types[] = {
{"_ftp._tcp", "ftp", "gnome-fs-ftp"},
{"_webdav._tcp", "dav", "gnome-fs-share"},
+ {"_webdavs._tcp", "davs", "gnome-fs-share"},
{"_sftp-ssh._tcp", "sftp", "gnome-fs-ssh"},
};
-#ifdef HAVE_HOWL
+#if defined (HAVE_HOWL) || defined (HAVE_AVAHI)
G_LOCK_DEFINE_STATIC (local);
static gboolean started_local = FALSE;
static GList *local_files = NULL;
static GList *local_monitors = NULL;
-#endif /* HAVE_HOWL */
+#endif /* HAVE_HOWL || HAVE_AVAHI */
typedef struct {
char *data;
@@ -216,8 +226,7 @@
return g_string_free (string, FALSE);
}
-#ifdef HAVE_HOWL
-
+#if defined (HAVE_HOWL) || defined (HAVE_AVAHI)
static void
call_monitors (gboolean add, char *filename)
{
@@ -240,7 +249,6 @@
gnome_vfs_uri_unref (info_uri);
}
-
static void
local_browse (gboolean add,
const char *name,
@@ -291,6 +299,144 @@
}
}
+static void
+local_browse_callback (GnomeVFSDNSSDBrowseHandle *handle,
+ GnomeVFSDNSSDServiceStatus status,
+ const GnomeVFSDNSSDService *service,
+ gpointer callback_data)
+{
+ G_LOCK (local);
+
+ local_browse (status == GNOME_VFS_DNS_SD_SERVICE_ADDED,
+ service->name, service->type, service->domain);
+
+ G_UNLOCK (local);
+}
+#endif /* HAVE_HOWL || HAVE_AVAHI */
+
+
+#ifdef HAVE_AVAHI
+static void
+avahi_client_callback (AvahiClient *client, AvahiClientState state, void *user_data)
+{
+ AvahiSimplePoll *poll;
+
+ poll = user_data;
+ if (state == AVAHI_CLIENT_FAILURE) {
+ avahi_simple_poll_quit (poll);
+ }
+}
+
+static void
+local_browse_callback_sync (AvahiServiceBrowser *b,
+ AvahiIfIndex interface,
+ AvahiProtocol protocol,
+ AvahiBrowserEvent event,
+ const char *name,
+ const char *type,
+ const char *domain,
+ AvahiLookupResultFlags flags,
+ void *user_data)
+{
+ AvahiSimplePoll *poll = user_data;
+
+ if (event == AVAHI_BROWSER_NEW)
+ local_browse (TRUE, name, type, domain);
+ else if (event == AVAHI_BROWSER_REMOVE)
+ local_browse (FALSE, name, type, domain);
+ else if (event == AVAHI_BROWSER_ALL_FOR_NOW)
+ avahi_simple_poll_quit (poll);
+
+}
+
+static void
+stop_poll_timeout (AvahiTimeout *timeout, void *user_data)
+{
+ AvahiSimplePoll *poll = user_data;
+
+ avahi_simple_poll_quit (poll);
+}
+
+
+static void
+init_local (void)
+{
+ int i;
+ GnomeVFSResult res;
+
+ if (!started_local) {
+ AvahiSimplePoll *simple_poll;
+ const AvahiPoll *poll;
+ AvahiClient *client = NULL;
+ AvahiServiceBrowser **sb;
+ struct timeval tv;
+ int error;
+
+ started_local = TRUE;
+
+ for (i = 0; i < G_N_ELEMENTS (dns_sd_types); i++) {
+ GnomeVFSDNSSDBrowseHandle *handle;
+ res = gnome_vfs_dns_sd_browse (&handle,
+ "local",
+ dns_sd_types[i].type,
+ local_browse_callback,
+ NULL, NULL);
+ if (res == GNOME_VFS_OK) {
+ dns_sd_types[i].handle = handle;
+ }
+ }
+
+ simple_poll = avahi_simple_poll_new ();
+ if (simple_poll == NULL) {
+ g_warning ("Failed to create simple poll object");
+ return;
+ }
+
+ poll = avahi_simple_poll_get (simple_poll);
+ client = avahi_client_new (poll, 0,
+ avahi_client_callback, simple_poll, &error);
+
+ /* Check wether creating the client object succeeded */
+ if (client == NULL) {
+ g_warning ("Failed to create client: %s\n", avahi_strerror (error));
+ avahi_simple_poll_free (simple_poll);
+ return;
+ }
+
+ sb = g_new0 (AvahiServiceBrowser *, G_N_ELEMENTS (dns_sd_types));
+
+ for (i = 0; i < G_N_ELEMENTS (dns_sd_types); i++) {
+ sb[i] = avahi_service_browser_new (client, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC,
+ dns_sd_types[i].type, "local",
+ AVAHI_LOOKUP_USE_MULTICAST,
+ local_browse_callback_sync, simple_poll);
+ }
+
+
+ avahi_elapse_time (&tv, LOCAL_SYNC_BROWSE_DELAY_MSEC, 0);
+ poll->timeout_new (poll, &tv, stop_poll_timeout,
+ (void *)simple_poll);
+
+ /* Run the main loop util reply or timeout */
+ for (;;)
+ if (avahi_simple_poll_iterate (simple_poll, -1) != 0)
+ break;
+
+ for (i = 0; i < G_N_ELEMENTS (dns_sd_types); i++) {
+ if (sb[i] != NULL) {
+ avahi_service_browser_free (sb[i]);
+ }
+ }
+ avahi_client_free (client);
+ avahi_simple_poll_free (simple_poll);
+
+
+ }
+}
+#endif /* HAVE_AVAHI */
+
+
+#ifdef HAVE_HOWL
static sw_result
local_browse_callback_sync (sw_discovery discovery,
sw_discovery_oid id,
@@ -309,19 +455,6 @@
return SW_OKAY;
}
-static void
-local_browse_callback (GnomeVFSDNSSDBrowseHandle *handle,
- GnomeVFSDNSSDServiceStatus status,
- const GnomeVFSDNSSDService *service,
- gpointer callback_data)
-{
- G_LOCK (local);
-
- local_browse (status == GNOME_VFS_DNS_SD_SERVICE_ADDED,
- service->name, service->type, service->domain);
-
- G_UNLOCK (local);
-}
static void
init_local (void)
@@ -694,7 +827,7 @@
}
}
-#ifdef HAVE_HOWL
+#if defined (HAVE_HOWL) || defined (HAVE_AVAHI)
static void
directory_handle_add_filenames (DirectoryHandle *dir_handle, GList *files)
{
@@ -703,7 +836,7 @@
files = files->next;
}
}
-#endif
+#endif /* HAVE_HOWL || HAVE_AVAHI */
static GnomeVFSResult
do_open_directory (GnomeVFSMethod *method,
@@ -733,14 +866,14 @@
dir_handle = directory_handle_new (options);
if (strcmp (domain, "local") == 0) {
-#ifdef HAVE_HOWL
+#if defined (HAVE_HOWL) || defined (HAVE_AVAHI)
G_LOCK (local);
init_local ();
directory_handle_add_filenames (dir_handle, local_files);
G_UNLOCK (local);
-#endif /* HAVE_HOWL */
+#endif /* HAVE_HOWL || HAVE_AVAHI */
} else {
for (i=0; i < G_N_ELEMENTS (dns_sd_types); i++) {
int n_services;
@@ -1007,7 +1140,7 @@
return GNOME_VFS_ERROR_NOT_SUPPORTED;
}
-#ifdef HAVE_HOWL
+#if defined (HAVE_HOWL) || defined (HAVE_AVAHI)
if (strcmp (uri->text, "") == 0 ||
strcmp (uri->text, "/") == 0) {
int *handle;
@@ -1025,7 +1158,7 @@
return GNOME_VFS_OK;
} else
-#endif /* HAVE_HOWL */
+#endif /* HAVE_HOWL || HAVE_AVAHI */
return GNOME_VFS_ERROR_NOT_SUPPORTED;
}
@@ -1033,7 +1166,7 @@
do_monitor_cancel (GnomeVFSMethod *method,
GnomeVFSMethodHandle *method_handle)
{
-#ifdef HAVE_HOWL
+#if defined (HAVE_HOWL) || defined (HAVE_AVAHI)
G_LOCK (local);
local_monitors = g_list_remove (local_monitors, method_handle);
@@ -1044,7 +1177,7 @@
return GNOME_VFS_OK;
#else
return GNOME_VFS_ERROR_NOT_SUPPORTED;
-#endif /* HAVE_HOWL */
+#endif /* HAVE_HOWL || HAVE_AVAHI */
}
diff -ur gnome-vfs-2.12.1.1.avahi/modules/Makefile.am gnome-vfs-2.12.1.1/modules/Makefile.am
--- gnome-vfs-2.12.1.1.avahi/modules/Makefile.am 2005-04-14 20:48:29.000000000 +0200
+++ gnome-vfs-2.12.1.1/modules/Makefile.am 2005-11-22 12:02:34.000000000 +0100
@@ -7,6 +7,7 @@
$(MODULES_XML_GCONF_CFLAGS) \
$(MODULES_FILE_CFLAGS) \
$(HOWL_CFLAGS) \
+ $(AVAHI_CFLAGS) \
$(LIBEFS_CFLAGS) \
$(SAMBA_CFLAGS) \
$(GSSAPI_CFLAGS) \
@@ -103,7 +104,7 @@
libdns_sd_la_SOURCES = dns-sd-method.c
libdns_sd_la_LDFLAGS = $(module_flags)
-libdns_sd_la_LIBADD = $(MODULES_LIBS) $(HOWL_LIBS) ../libgnomevfs/libgnomevfs-2.la
+libdns_sd_la_LIBADD = $(MODULES_LIBS) $(HOWL_LIBS) $(AVAHI_LIBS) ../libgnomevfs/libgnomevfs-2.la
### `file' method

@ -8,8 +8,8 @@
Summary: The GNOME virtual file-system libraries. Summary: The GNOME virtual file-system libraries.
Name: gnome-vfs2 Name: gnome-vfs2
Version: 2.12.1.1 Version: 2.13.1
Release: 7 Release: 1
License: LGPL License: LGPL
Group: System Environment/Libraries Group: System Environment/Libraries
Source0: gnome-vfs-%{version}.tar.bz2 Source0: gnome-vfs-%{version}.tar.bz2
@ -35,6 +35,7 @@ BuildRequires: hal-devel >= 0.5.0
Prereq: GConf2 >= %{gconf2_version} Prereq: GConf2 >= %{gconf2_version}
Patch3: gnome-vfs-2.9.90-modules-conf.patch Patch3: gnome-vfs-2.9.90-modules-conf.patch
# Fixed in 2.13.2
Patch4: gnome-vfs-avahi.patch Patch4: gnome-vfs-avahi.patch
# send to upstream # send to upstream
@ -48,9 +49,6 @@ Patch201: gnome-vfs-2.8.1-console-mount-opt.patch
# Bug 150132 # Bug 150132
Patch400: neon-0.24.7-gssapi.patch Patch400: neon-0.24.7-gssapi.patch
# fixed upstream
Patch500: gnome-vfs-2.12.1.1-mimecache.patch
%description %description
GNOME VFS is the GNOME virtual file system. It is the foundation of GNOME VFS is the GNOME virtual file system. It is the foundation of
the Nautilus file manager. It provides a modular architecture and the Nautilus file manager. It provides a modular architecture and
@ -89,7 +87,7 @@ shares (SMB) to applications using GNOME VFS.
%patch3 -p1 -b .modules-conf %patch3 -p1 -b .modules-conf
%patch4 -p1 -b .avahi ##%patch4 -p1 -b .avahi
# send to upstream # send to upstream
%patch101 -p1 -b .schema_about %patch101 -p1 -b .schema_about
@ -98,7 +96,6 @@ shares (SMB) to applications using GNOME VFS.
%patch201 -p0 -b .console %patch201 -p0 -b .console
%patch400 -p0 -b .neon-gssapi %patch400 -p0 -b .neon-gssapi
%patch500 -p1 -b .mimecache
%build %build
@ -184,6 +181,9 @@ done
%config %{_sysconfdir}/gnome-vfs-2.0/modules/smb-module.conf %config %{_sysconfdir}/gnome-vfs-2.0/modules/smb-module.conf
%changelog %changelog
* Fri Dec 2 2005 Matthias Clasen <mclasen@redhat.com> - 2.13.1-1
- Update to 2.13.1
* Thu Dec 01 2005 John (J5) Palmieri <johnp@redhat.com> - 2.12.1.1-7 * Thu Dec 01 2005 John (J5) Palmieri <johnp@redhat.com> - 2.12.1.1-7
- rebuild for new dbus - rebuild for new dbus

@ -1 +1 @@
bc62212600167acf78c9771add5cce7e gnome-vfs-2.12.1.1.tar.bz2 8d960dbfe1eb8d920a13f4f24d7add86 gnome-vfs-2.13.1.tar.bz2

Loading…
Cancel
Save