From ae7caf45b855d3f6d080f788191e2df2eb07322905806fd9cc123532a3045c91 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Mon, 15 Dec 2008 11:34:01 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gnome-settings-daemon?expand=0&rev=23 --- ...ngs-daemon-system-proxy-configuration.diff | 323 ++++++++++++++++-- gnome-settings-daemon.changes | 8 + gnome-settings-daemon.spec | 15 +- 3 files changed, 318 insertions(+), 28 deletions(-) diff --git a/gnome-settings-daemon-system-proxy-configuration.diff b/gnome-settings-daemon-system-proxy-configuration.diff index be5312a..4cffe77 100644 --- a/gnome-settings-daemon-system-proxy-configuration.diff +++ b/gnome-settings-daemon-system-proxy-configuration.diff @@ -1,8 +1,7 @@ From e61dc951c432d489b17e3bdaf1e566ac15958c6b Mon Sep 17 00:00:00 2001 -Message-Id: From: Federico Mena Quintero 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: -In-Reply-To: -References: From: Federico Mena Quintero 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 + + -- -1.5.4.5 +1.5.6 From b149af05692650efe6947aa084287fcdda428108 Mon Sep 17 00:00:00 2001 -Message-Id: -In-Reply-To: -References: From: Federico Mena Quintero 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: -References: From: Federico Mena Quintero 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: -In-Reply-To: -References: From: Federico Mena Quintero 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 +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 +--- + 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 @@ + + + ++ /schemas/apps/gnome_settings_daemon/plugins/proxy/active ++ /apps/gnome_settings_daemon/plugins/proxy/active ++ gnome-settings-daemon ++ bool ++ TRUE ++ ++ Enable system-proxy plugin ++ Set to True to enable the plugin to manage the system ++ proxy settings. ++ ++ ++ ++ /schemas/apps/gnome_settings_daemon/plugins/proxy/priority ++ /apps/gnome_settings_daemon/plugins/proxy/priority ++ gnome-settings-daemon ++ int ++ 7 ++ ++ ++ ++ ++ ++ ++ + /schemas/apps/gnome_settings_daemon/plugins/screensaver/active + /apps/gnome_settings_daemon/plugins/screensaver/active + gnome-settings-daemon +-- +1.5.6 + + +From 2765d441f29be5bfb53cf54c9d191c21522f95d0 Mon Sep 17 00:00:00 2001 +From: Federico Mena Quintero +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 +--- + 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 +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 +--- + 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 diff --git a/gnome-settings-daemon.changes b/gnome-settings-daemon.changes index e66a4fa..6f55349 100644 --- a/gnome-settings-daemon.changes +++ b/gnome-settings-daemon.changes @@ -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 diff --git a/gnome-settings-daemon.spec b/gnome-settings-daemon.spec index a441bdf..50e324b 100644 --- a/gnome-settings-daemon.spec +++ b/gnome-settings-daemon.spec @@ -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)