rpms/gnome-user-share/F-12 0001-Use-same-directories-in-nautilus-bar-and-app.patch, NONE, 1.1 gnome-user-share.spec, 1.65, 1.66

Bastien Nocera hadess at fedoraproject.org
Tue Nov 3 01:59:39 UTC 2009


Author: hadess

Update of /cvs/pkgs/rpms/gnome-user-share/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv5742

Modified Files:
	gnome-user-share.spec 
Added Files:
	0001-Use-same-directories-in-nautilus-bar-and-app.patch 
Log Message:
* Tue Nov 03 2009 Bastien Nocera <bnocera at redhat.com> 2.28.1-2
- Update share bar code to use the same directories as
  the sharing code itself


0001-Use-same-directories-in-nautilus-bar-and-app.patch:
 Makefile.am         |   16 +++++----
 http.c              |    2 -
 obexftp.c           |    2 -
 share-extension.c   |   18 ++++------
 user_share-common.c |   89 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 user_share-common.h |   30 +++++++++++++++++
 user_share.c        |   36 ---------------------
 7 files changed, 139 insertions(+), 54 deletions(-)

--- NEW FILE 0001-Use-same-directories-in-nautilus-bar-and-app.patch ---
>From 814a647dece14962f878231970cf020f35f382e3 Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess at hadess.net>
Date: Tue, 3 Nov 2009 01:54:12 +0000
Subject: [PATCH] Use same directories in nautilus bar and app

We were using different ways to get the public and downloads dir.
Whereas the main user-share had fallbacks to avoid sharing $HOME,
the nautilus bar was using the special dirs without any fallbacks.

This moves the common code to user_share-common.[ch] and makes sure
that fallbacks are used in both cases.
---
 src/Makefile.am         |   16 +++++---
 src/http.c              |    2 +-
 src/obexftp.c           |    2 +-
 src/share-extension.c   |   18 ++++------
 src/user_share-common.c |   89 +++++++++++++++++++++++++++++++++++++++++++++++
 src/user_share-common.h |   30 ++++++++++++++++
 src/user_share.c        |   35 +------------------
 7 files changed, 139 insertions(+), 53 deletions(-)
 create mode 100644 src/user_share-common.c
 create mode 100644 src/user_share-common.h

diff --git a/src/Makefile.am b/src/Makefile.am
index fa7aa0a..09e82e3 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -14,6 +14,9 @@ bin_PROGRAMS= \
 libexec_PROGRAMS= \
 	gnome-user-share
 
+noinst_LTLIBRARIES = libuser-share-common.la
+libuser_share_common_la_SOURCES = user_share-common.c user_share-common.h
+
 INCLUDES=	\
 	-DPREFIX=\""$(prefix)"\" 			\
 	-DBINDIR=\""$(bindir)"\" 			\
@@ -44,7 +47,8 @@ gnome_user_share_SOURCES =	\
 	obexpush.h		\
 	$(MARSHALFILES)
 
-gnome_user_share_LDADD = \
+gnome_user_share_LDADD =	\
+	libuser-share-common.la	\
 	$(USER_SHARE_LIBS)	\
 	$(SELINUX_LIBS)	\
 	$(X_LIBS) $(X_PRE_LIBS) -lX11 $(X_EXTRA_LIBS)
@@ -60,13 +64,13 @@ gnome_file_share_properties_LDADD = \
 nautilus_extensiondir = $(NAUTILUSDIR)
 nautilus_extension_LTLIBRARIES = libnautilus-share-extension.la
 
-libnautilus_share_extension_la_SOURCES =         \
-	nautilus-share-bar.c                     \
-	nautilus-share-bar.h                     \
-	share-extension.c                        \
+libnautilus_share_extension_la_SOURCES =	\
+	nautilus-share-bar.c			\
+	nautilus-share-bar.h			\
+	share-extension.c			\
 	$(NULL)
 
-libnautilus_share_extension_la_LIBADD = $(EXTENSION_LIBS)
+libnautilus_share_extension_la_LIBADD = libuser-share-common.la $(EXTENSION_LIBS)
 libnautilus_share_extension_la_LDFLAGS = -avoid-version -module -no-undefined
 
 EXTRA_DIST = marshal.list
diff --git a/src/http.c b/src/http.c
index 164b291..367394a 100644
--- a/src/http.c
+++ b/src/http.c
@@ -48,7 +48,7 @@
 #include <selinux/selinux.h>
 #endif
 
-#include "user_share.h"
+#include "user_share-common.h"
 #include "user_share-private.h"
 #include "http.h"
 
diff --git a/src/obexftp.c b/src/obexftp.c
index 89a98ce..02e8956 100644
--- a/src/obexftp.c
+++ b/src/obexftp.c
@@ -30,7 +30,7 @@
 #include <string.h>
 
 #include "obexftp.h"
-#include "user_share.h"
+#include "user_share-common.h"
 #include "user_share-private.h"
 
 static DBusGConnection *connection = NULL;
diff --git a/src/share-extension.c b/src/share-extension.c
index 2446d3f..0448414 100644
--- a/src/share-extension.c
+++ b/src/share-extension.c
@@ -31,6 +31,7 @@
 #include <libnautilus-extension/nautilus-location-widget-provider.h>
 
 #include "nautilus-share-bar.h"
+#include "user_share-common.h"
 
 #define NAUTILUS_TYPE_SHARE  (nautilus_share_get_type ())
 #define NAUTILUS_SHARE(o)    (G_TYPE_CHECK_INSTANCE_CAST ((o), NAUTILUS_TYPE_SHARE, NautilusShare))
@@ -154,18 +155,13 @@ nautilus_share_get_location_widget (NautilusLocationWidgetProvider *iface,
 	g_object_unref (home);
 
 	for (i = 0; i < G_N_ELEMENTS (special_dirs); i++) {
-		const char *path;
-
-		path = g_get_user_special_dir (special_dirs[i]);
-		if (path != NULL) {
-			GFile *dir;
-			dir = g_file_new_for_path (path);
-			if (g_file_equal (dir, file)) {
-				enable = TRUE;
-				is_dir[i] = TRUE;
-			}
-			g_object_unref (dir);
+		GFile *dir;
+		dir = lookup_dir_with_fallback (special_dirs[i]);
+		if (g_file_equal (dir, file)) {
+			enable = TRUE;
+			is_dir[i] = TRUE;
 		}
+		g_object_unref (dir);
 	}
 
 	if (enable == FALSE)
diff --git a/src/user_share-common.c b/src/user_share-common.c
new file mode 100644
index 0000000..31389eb
--- /dev/null
+++ b/src/user_share-common.c
@@ -0,0 +1,89 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
+
+/*
+ *  Copyright (C) 2004-2009 Red Hat, Inc.
+ *
+ *  Nautilus is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License as
+ *  published by the Free Software Foundation; either version 2 of the
+ *  License, or (at your option) any later version.
+ *
+ *  Nautilus is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ *  Authors: Alexander Larsson <alexl at redhat.com>
+ *  Bastien Nocera <hadess at hadess.net>
+ *
+ */
+
+#include "user_share-common.h"
+
+static char *
+lookup_special_dir (GUserDirectory directory,
+		    const char *name,
+		    gboolean create_dir)
+{
+	const char *special_dir;
+	char *dir;
+
+	special_dir = g_get_user_special_dir (directory);
+	if (special_dir != NULL && strcmp (special_dir, g_get_home_dir ()) != 0) {
+		if (create_dir != FALSE)
+			g_mkdir_with_parents (special_dir, 0755);
+		return g_strdup (special_dir);
+	}
+
+	dir = g_build_filename (g_get_home_dir (), name, NULL);
+	if (create_dir != FALSE)
+		g_mkdir_with_parents (dir, 0755);
+	return dir;
+}
+
+char *
+lookup_public_dir (void)
+{
+	return lookup_special_dir (G_USER_DIRECTORY_PUBLIC_SHARE,
+				   "Public",
+				   TRUE);
+}
+
+char *
+lookup_download_dir (void)
+{
+	return lookup_special_dir (G_USER_DIRECTORY_DOWNLOAD,
+				   "Downloads",
+				   TRUE);
+}
+
+GFile *
+lookup_dir_with_fallback (GUserDirectory directory)
+{
+	GFile *file;
+	char *path;
+	const char *name;
+
+	if (directory == G_USER_DIRECTORY_PUBLIC_SHARE)
+		name = "Public";
+	else if (directory == G_USER_DIRECTORY_DOWNLOAD)
+		name = "Downloads";
+	else
+		g_assert_not_reached ();
+
+	path = lookup_special_dir (directory,
+				   name,
+				   FALSE);
+
+	if (path == NULL)
+		return NULL;
+
+	file = g_file_new_for_path (path);
+	g_free (path);
+
+	return file;
+}
diff --git a/src/user_share-common.h b/src/user_share-common.h
new file mode 100644
index 0000000..1b87c7c
--- /dev/null
+++ b/src/user_share-common.h
@@ -0,0 +1,30 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
+
+/*
+ *  Copyright (C) 2004-2009 Red Hat, Inc.
+ *
+ *  Nautilus is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License as
+ *  published by the Free Software Foundation; either version 2 of the
+ *  License, or (at your option) any later version.
+ *
+ *  Nautilus is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ *  Authors: Alexander Larsson <alexl at redhat.com>
+ *  Bastien Nocera <hadess at hadess.net>
+ *
+ */
+
+#include <glib.h>
+#include <gio/gio.h>
+
+char *lookup_public_dir (void);
+char *lookup_download_dir (void);
+GFile *lookup_dir_with_fallback (GUserDirectory directory);
diff --git a/src/user_share.c b/src/user_share.c
index ab6a7ca..1976424 100644
--- a/src/user_share.c
+++ b/src/user_share.c
@@ -31,6 +31,7 @@
 
 #include "user_share.h"
 #include "user_share-private.h"
+#include "user_share-common.h"
 #include "http.h"
 #include "obexftp.h"
 #include "obexpush.h"
@@ -262,40 +263,6 @@ bluez_init (void)
 			  G_CALLBACK (default_adapter_changed), NULL);
 }
 
-char *
-lookup_public_dir (void)
-{
-	const char *public_dir;
-	char *dir;
-
-	public_dir = g_get_user_special_dir (G_USER_DIRECTORY_PUBLIC_SHARE);
-	if (public_dir != NULL && strcmp (public_dir, g_get_home_dir ()) != 0) {
-		g_mkdir_with_parents (public_dir, 0755);
-		return g_strdup (public_dir);
-	}
-
-	dir = g_build_filename (g_get_home_dir (), "Public", NULL);
-	g_mkdir_with_parents (dir, 0755);
-	return dir;
-}
-
-char *
-lookup_download_dir (void)
-{
-	const char *download_dir;
-	char *dir;
-
-	download_dir = g_get_user_special_dir (G_USER_DIRECTORY_DOWNLOAD);
-	if (download_dir != NULL && strcmp (download_dir, g_get_home_dir ()) != 0) {
-		g_mkdir_with_parents (download_dir, 0755);
-		return g_strdup (download_dir);
-	}
-
-	dir = g_build_filename (g_get_home_dir (), "Download", NULL);
-	g_mkdir_with_parents (dir, 0755);
-	return dir;
-}
-
 static void
 migrate_old_configuration (void)
 {
-- 
1.6.5.1



Index: gnome-user-share.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gnome-user-share/F-12/gnome-user-share.spec,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -p -r1.65 -r1.66
--- gnome-user-share.spec	26 Oct 2009 11:01:47 -0000	1.65
+++ gnome-user-share.spec	3 Nov 2009 01:59:38 -0000	1.66
@@ -1,7 +1,7 @@
 Summary: Gnome user file sharing
 Name: gnome-user-share
 Version: 2.28.1
-Release: 1%{?dist}
+Release: 2%{?dist}
 License: GPLv2+
 Group: System Environment/Libraries
 URL: http://www.gnome.org
@@ -9,9 +9,12 @@ Source0: http://download.gnome.org/sourc
 # http://bugzilla.gnome.org/show_bug.cgi?id=578090
 Patch0: menu-path.patch
 # http://bugzilla.gnome.org/show_bug.cgi?id=558244
+# https://bugzilla.gnome.org/show_bug.cgi?id=600499
 Patch1: 0001-Bug-558244-Enabling-gnome-user-share-requires-cha.patch
+Patch2: 0001-Use-same-directories-in-nautilus-bar-and-app.patch
 BuildRequires: intltool automake autoconf libtool
 
+
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 Requires: httpd >= 2.2.0
 Requires: obex-data-server >= 0.3
@@ -135,6 +138,10 @@ fi
 %{_libdir}/nautilus/extensions-2.0/*.so
 
 %changelog
+* Tue Nov 03 2009 Bastien Nocera <bnocera at redhat.com> 2.28.1-2
+- Update share bar code to use the same directories as
+  the sharing code itself
+
 * Mon Oct 26 2009 Bastien Nocera <bnocera at redhat.com> 2.28.1-1
 - Update to 2.28.1
 




More information about the scm-commits mailing list