1
0
OBS User unknown 2008-12-15 11:34:01 +00:00 committed by Git OBS Bridge
parent 495a825ec8
commit ae7caf45b8
3 changed files with 318 additions and 28 deletions

View File

@ -1,8 +1,7 @@
From e61dc951c432d489b17e3bdaf1e566ac15958c6b Mon Sep 17 00:00:00 2001
Message-Id: <e61dc951c432d489b17e3bdaf1e566ac15958c6b.1218815729.git.federico@novell.com>
From: Federico Mena Quintero <federico@novell.com>
Date: Thu, 14 Aug 2008 18:55:55 -0500
Subject: [PATCH 1/5] Add a new plugin for proxy settings.
Subject: [PATCH 1/8] Add a new plugin for proxy settings.
We read the system's configuration from /etc/sysconfig/proxy and propagate it to
GNOME's GConf keys.
@ -940,16 +939,13 @@ index 0000000..19ce10c
+Copyright=
+Website=
--
1.5.4.5
1.5.6
From b0bf83da99fce538da8d747e5386853626d456ec Mon Sep 17 00:00:00 2001
Message-Id: <b0bf83da99fce538da8d747e5386853626d456ec.1218815729.git.federico@novell.com>
In-Reply-To: <e61dc951c432d489b17e3bdaf1e566ac15958c6b.1218815729.git.federico@novell.com>
References: <e61dc951c432d489b17e3bdaf1e566ac15958c6b.1218815729.git.federico@novell.com>
From: Federico Mena Quintero <federico@novell.com>
Date: Thu, 14 Aug 2008 19:00:41 -0500
Subject: [PATCH 2/5] Add schemas for the system proxy settings.
Subject: [PATCH 2/8] Add schemas for the system proxy settings.
See the documentation about this in http://en.opensuse.org/GNOME/Proxy_configuration
---
@ -990,16 +986,13 @@ index 0000000..5f01b2e
+ </schemalist>
+</gconfschemafile>
--
1.5.4.5
1.5.6
From b149af05692650efe6947aa084287fcdda428108 Mon Sep 17 00:00:00 2001
Message-Id: <b149af05692650efe6947aa084287fcdda428108.1218815729.git.federico@novell.com>
In-Reply-To: <e61dc951c432d489b17e3bdaf1e566ac15958c6b.1218815729.git.federico@novell.com>
References: <e61dc951c432d489b17e3bdaf1e566ac15958c6b.1218815729.git.federico@novell.com>
From: Federico Mena Quintero <federico@novell.com>
Date: Thu, 14 Aug 2008 18:58:46 -0500
Subject: [PATCH 3/5] Add the proxy plugin to the plugins/Makefile.am
Subject: [PATCH 3/8] Add the proxy plugin to the plugins/Makefile.am
---
plugins/Makefile.am | 1 +
@ -1018,16 +1011,13 @@ index 2d33061..82f3eae 100644
sound \
typing-break \
--
1.5.4.5
1.5.6
From 97e29c68cf89a34db1c35656a3cc7e2e3d8f565d Mon Sep 17 00:00:00 2001
Message-Id: <97e29c68cf89a34db1c35656a3cc7e2e3d8f565d.1218815729.git.federico@novell.com>
In-Reply-To: <e61dc951c432d489b17e3bdaf1e566ac15958c6b.1218815729.git.federico@novell.com>
References: <e61dc951c432d489b17e3bdaf1e566ac15958c6b.1218815729.git.federico@novell.com>
From: Federico Mena Quintero <federico@novell.com>
Date: Thu, 14 Aug 2008 18:59:21 -0500
Subject: [PATCH 4/5] Add the proxy plugin to configure.ac
Subject: [PATCH 4/8] Add the proxy plugin to configure.ac
---
configure.ac | 1 +
@ -1046,16 +1036,13 @@ index bc336c1..ec5e5f3 100644
plugins/sound/Makefile
plugins/sound/libsounds/Makefile
--
1.5.4.5
1.5.6
From ddab86c79a40b5d95a8d0420e1ea88e1d3ddbac9 Mon Sep 17 00:00:00 2001
Message-Id: <ddab86c79a40b5d95a8d0420e1ea88e1d3ddbac9.1218815729.git.federico@novell.com>
In-Reply-To: <e61dc951c432d489b17e3bdaf1e566ac15958c6b.1218815729.git.federico@novell.com>
References: <e61dc951c432d489b17e3bdaf1e566ac15958c6b.1218815729.git.federico@novell.com>
From: Federico Mena Quintero <federico@novell.com>
Date: Thu, 14 Aug 2008 18:59:54 -0500
Subject: [PATCH 5/5] Add the proxy schemas to data/Makefile.am
Subject: [PATCH 5/8] Add the proxy schemas to data/Makefile.am
---
data/Makefile.am | 1 +
@ -1074,5 +1061,295 @@ index 2f0d4ca..c2494ec 100644
schemas_DATA = $(schemas_in_files:.schemas.in=.schemas)
--
1.5.4.5
1.5.6
From 89cd97f780087457a9ee9d93f5922b2764beffaa Mon Sep 17 00:00:00 2001
From: Federico Mena Quintero <federico@novell.com>
Date: Mon, 8 Dec 2008 13:32:02 -0600
Subject: [PATCH 6/8] Enable the proxy plugin in g-s-d's toplevel schemas
Signed-off-by: Federico Mena Quintero <federico@novell.com>
---
data/gnome-settings-daemon.schemas.in | 24 ++++++++++++++++++++++++
1 files changed, 24 insertions(+), 0 deletions(-)
diff --git a/data/gnome-settings-daemon.schemas.in b/data/gnome-settings-daemon.schemas.in
index 3f6a426..e4bacd7 100644
--- a/data/gnome-settings-daemon.schemas.in
+++ b/data/gnome-settings-daemon.schemas.in
@@ -210,6 +210,30 @@
</schema>
<schema>
+ <key>/schemas/apps/gnome_settings_daemon/plugins/proxy/active</key>
+ <applyto>/apps/gnome_settings_daemon/plugins/proxy/active</applyto>
+ <owner>gnome-settings-daemon</owner>
+ <type>bool</type>
+ <default>TRUE</default>
+ <locale name="C">
+ <short>Enable system-proxy plugin</short>
+ <long>Set to True to enable the plugin to manage the system
+ proxy settings.</long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/apps/gnome_settings_daemon/plugins/proxy/priority</key>
+ <applyto>/apps/gnome_settings_daemon/plugins/proxy/priority</applyto>
+ <owner>gnome-settings-daemon</owner>
+ <type>int</type>
+ <default>7</default>
+ <locale name="C">
+ <short></short>
+ <long></long>
+ </locale>
+ </schema>
+
+ <schema>
<key>/schemas/apps/gnome_settings_daemon/plugins/screensaver/active</key>
<applyto>/apps/gnome_settings_daemon/plugins/screensaver/active</applyto>
<owner>gnome-settings-daemon</owner>
--
1.5.6
From 2765d441f29be5bfb53cf54c9d191c21522f95d0 Mon Sep 17 00:00:00 2001
From: Federico Mena Quintero <federico@novell.com>
Date: Mon, 8 Dec 2008 14:06:55 -0600
Subject: [PATCH 7/8] Add a dummy field to GsdProxyManagerPrivate so the struct isn't zero-sized
Signed-off-by: Federico Mena Quintero <federico@novell.com>
---
plugins/proxy/gsd-proxy-manager.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/plugins/proxy/gsd-proxy-manager.c b/plugins/proxy/gsd-proxy-manager.c
index 9092b00..345c1ad 100644
--- a/plugins/proxy/gsd-proxy-manager.c
+++ b/plugins/proxy/gsd-proxy-manager.c
@@ -71,6 +71,11 @@
struct GsdProxyManagerPrivate
{
+ /* This is to avoid "sizeof (GsdProxyManagerPrivate) == 0" when adding
+ * the private struct with g_type_class_add_private(). Feel free to
+ * remove this dummy field if you add real fields here.
+ */
+ int dummy;
};
typedef struct {
--
1.5.6
From 2fd84c545f46e8cff53eaef638cc3a4906d05116 Mon Sep 17 00:00:00 2001
From: Federico Mena Quintero <federico@novell.com>
Date: Mon, 8 Dec 2008 14:54:34 -0600
Subject: [PATCH 8/8] Steal gedit_utils_decode_uri() and use it instead of a broken URI-parsing function
Signed-off-by: Federico Mena Quintero <federico@novell.com>
---
plugins/proxy/gsd-proxy-manager.c | 181 ++++++++++++++++++++++++++++++++++---
1 files changed, 168 insertions(+), 13 deletions(-)
diff --git a/plugins/proxy/gsd-proxy-manager.c b/plugins/proxy/gsd-proxy-manager.c
index 345c1ad..662ef98 100644
--- a/plugins/proxy/gsd-proxy-manager.c
+++ b/plugins/proxy/gsd-proxy-manager.c
@@ -216,24 +216,179 @@ copy_proxy_disabled (GConfClient *config_client)
gconf_client_set_string (config_client, KEY_MODE, "none", NULL);
}
-/* parses a URI to get the host and port */
+
+
+/* The following two functions (the main one being gedit_utils_decode_uri) are
+ * stolen from gedit/gedit/gedit-utils.c. This is because GIO doesn't yet
+ * export a function to parse URIs, sigh.
+ */
+
+static void
+null_ptr (gchar **ptr)
+{
+ if (ptr)
+ *ptr = NULL;
+}
+
+/**
+* gedit_utils_decode_uri:
+* @uri: the uri to decode
+* @scheme: return value pointer for the uri's scheme (e.g. http, sftp, ...)
+* @user: return value pointer for the uri user info
+* @port: return value pointer for the uri port
+* @host: return value pointer for the uri host
+* @path: return value pointer for the uri path
+*
+* Parse and break an uri apart in its individual components like the uri
+* scheme, user info, port, host and path. The return value pointer can be
+* NULL to ignore certain parts of the uri. If the function returns TRUE, then
+* all return value pointers should be freed using g_free
+*
+* Return value: TRUE if the uri could be properly decoded, FALSE otherwise.
+*/
static gboolean
-parse_uri (const gchar *uri, gchar **host, guint *port)
+gedit_utils_decode_uri (const gchar *uri,
+ gchar **scheme,
+ gchar **user,
+ gchar **host,
+ gchar **port,
+ gchar **path)
{
- char **tokens;
-
- tokens = g_strsplit_set (uri, ":", 0);
- if (tokens[1] != NULL) {
- *host = g_strdup (tokens[1] + 2);
+ /* Largely copied from glib/gio/gdummyfile.c:_g_decode_uri. This
+ * functionality should be in glib/gio, but for now we implement it
+ * ourselves (see bug #546182) */
+
+ const char *p, *in, *hier_part_start, *hier_part_end;
+ char *out;
+ char c;
+
+ /* From RFC 3986 Decodes:
+ * URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
+ */
+
+ p = uri;
+
+ null_ptr (scheme);
+ null_ptr (user);
+ null_ptr (port);
+ null_ptr (host);
+ null_ptr (path);
+
+ /* Decode scheme:
+ * scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
+ */
+
+ if (!g_ascii_isalpha (*p))
+ return FALSE;
+
+ while (1) {
+ c = *p++;
+
+ if (c == ':')
+ break;
+
+ if (!(g_ascii_isalnum(c) ||
+ c == '+' ||
+ c == '-' ||
+ c == '.'))
+ return FALSE;
}
-
- if (tokens[2] != NULL) {
- *port = (guint) atoi (tokens[2]);
+
+ if (scheme) {
+ *scheme = g_malloc (p - uri);
+ out = *scheme;
+
+ for (in = uri; in < p - 1; in++)
+ *out++ = g_ascii_tolower (*in);
+
+ *out = '\0';
}
-
+
+ hier_part_start = p;
+ hier_part_end = p + strlen (p);
+
+ if (hier_part_start[0] == '/' && hier_part_start[1] == '/') {
+ const char *authority_start, *authority_end;
+ const char *userinfo_start, *userinfo_end;
+ const char *host_start, *host_end;
+ const char *port_start;
+
+ authority_start = hier_part_start + 2;
+ /* authority is always followed by / or nothing */
+ authority_end = memchr (authority_start, '/', hier_part_end - authority_start);
+
+ if (authority_end == NULL)
+ authority_end = hier_part_end;
+
+ /* 3.2:
+ * authority = [ userinfo "@" ] host [ ":" port ]
+ */
+
+ userinfo_end = memchr (authority_start, '@', authority_end - authority_start);
+
+ if (userinfo_end) {
+ userinfo_start = authority_start;
+
+ if (user)
+ *user = g_uri_unescape_segment (userinfo_start, userinfo_end, NULL);
+
+ if (user && *user == NULL) {
+ if (scheme)
+ g_free (*scheme);
+
+ return FALSE;
+ }
+
+ host_start = userinfo_end + 1;
+ } else
+ host_start = authority_start;
+
+ port_start = memchr (host_start, ':', authority_end - host_start);
+
+ if (port_start) {
+ host_end = port_start++;
+
+ if (port)
+ *port = g_strndup (port_start, authority_end - port_start);
+ } else
+ host_end = authority_end;
+
+ if (host)
+ *host = g_strndup (host_start, host_end - host_start);
+
+ hier_part_start = authority_end;
+ }
+
+ if (path)
+ *path = g_uri_unescape_segment (hier_part_start, hier_part_end, "/");
+
+ return TRUE;
+}
+
+
+
+/* parses a URI to get the host and port */
+static gboolean
+parse_uri (const gchar *uri, gchar **host, guint *port)
+{
+ gchar *port_str;
+
+ if (!gedit_utils_decode_uri (uri,
+ NULL, /* scheme */
+ NULL, /* user */
+ host, /* host */
+ &port_str, /* port */
+ NULL)) /* path */
+ return FALSE;
+
+ if (port_str) {
+ *port = atoi (port_str);
+ g_free (port_str);
+ } else
+ *port = 0;
+
g_debug ("Proxy host: %s:%d", *host, *port);
-
- g_strfreev (tokens);
+
return TRUE;
}
--
1.5.6

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Mon Dec 8 16:13:26 CST 2008 - federico@novell.com
- Updated gnome-settings-daemon-system-proxy-configuration.diff to fix
https://bugzilla.novell.com/show_bug.cgi?id=456131 - the system's
proxy configuration was not being set in GNOME's proxy
configuration.
-------------------------------------------------------------------
Mon Oct 27 10:06:22 CET 2008 - jblunck@suse.de

View File

@ -24,7 +24,7 @@ BuildRequires: fdupes gnome-common gnome-desktop-devel gnome-patch-translation
License: GPL v2 or later
Group: System/GUI/GNOME
Version: 2.24.0
Release: 3
Release: 4
Summary: Settings daemon for the GNOME desktop
Source: %{_name}-%{version}.tar.bz2
# PATCH-FEATURE-OPENSUSE gnome-settings-daemon-system-proxy-configuration.diff
@ -152,13 +152,18 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/pkgconfig/*.pc
%changelog
* Mon Dec 08 2008 federico@novell.com
- Updated gnome-settings-daemon-system-proxy-configuration.diff to fix
https://bugzilla.novell.com/show_bug.cgi?id=456131 - the system's
proxy configuration was not being set in GNOME's proxy
configuration.
* Mon Oct 27 2008 jblunck@suse.de
- Add gnome-settings-daemon-apport-monitor.patch, to launching apport-gtk in
case a new crash report is available (bnc#439203)
* Thu Oct 23 2008 vuntz@novell.com
- Add gnome-settings-daemon-low-disk-space.patch, to help drop
gnome-volume-manager.
* Sat Oct 04 2008 mboman@suse.de
* Fri Oct 03 2008 mboman@suse.de
- Update to version 2.24.0:
- Fix the fix for read-only home directories (bgo#530975)
- Make the volume popup not crash when invoking it on any screen but
@ -179,7 +184,7 @@ rm -rf $RPM_BUILD_ROOT
- Update to 2.23.92:
+ Try harder to use the keyboard layout passed by GDM (bgo#551062)
+ Updated translations
* Thu Sep 11 2008 federico@novell.com
* Wed Sep 10 2008 federico@novell.com
- Added gnome-settings-daemon-randr-fnf7.diff to support switching
between display output modes on laptop by using the Fn-F7 hotkey
(i.e. XF86Display).
@ -271,7 +276,7 @@ rm -rf $RPM_BUILD_ROOT
+ Apply keyboard settings on startup (bgo#525440)
+ Make "Home" keybinding work again
+ Updated translations.
* Fri Mar 14 2008 maw@suse.de
* Thu Mar 13 2008 maw@suse.de
- Update to version 2.22.0:
+ Actually link against libXi when building with XInput support
(bgo#519488)
@ -281,7 +286,7 @@ rm -rf $RPM_BUILD_ROOT
+ Updated translations.
* Thu Mar 13 2008 sbrabec@suse.cz
- Custom look'n'feel gconf keys moved to gconf2-branding-openSUSE.
* Wed Feb 20 2008 maw@suse.de
* Tue Feb 19 2008 maw@suse.de
- Update to version 2.21.91:
+ Use a flat directory instead of a hierarchy to install plugins
into (bgo#513246)