Hello community, here is the log from the commit of package gnome-shell.678 for openSUSE:12.2:Update checked in at 2012-07-27 13:14:09 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:12.2:Update/gnome-shell.678 (Old) and /work/SRC/openSUSE:12.2:Update/.gnome-shell.678.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "gnome-shell.678", Maintainer is "" Changes: -------- New Changes file: --- /dev/null 2012-07-06 19:40:38.919402255 +0200 +++ /work/SRC/openSUSE:12.2:Update/.gnome-shell.678.new/gnome-shell.changes 2012-07-27 13:14:11.000000000 +0200 @@ -0,0 +1,2161 @@ +------------------------------------------------------------------- +Sat Jul 21 11:23:03 UTC 2012 - badshah400@gmail.com + +- Update to version 3.4.2: + + Mirror Evolution calendar settings into our own schema + [bgo#674424] + + gdm: don't fail if fprintd unavailable [bgo#675006] + + Fix broken extension loading [bgo#670477] + + Fix filtering of Empathy notifications [bgo#675370] + + telepathyClient: Ignore invalidated channels [bgo#677457] + + popupMenu: Fix freeze when appMenu is not populated in one go + [bgo#676447] + + mount-operation: fix exceptions when showing password entry + [bgo#678428] + + Misc. fixes [bgo#677441, bgo#676175] +- Drop gnome-shell-load-ext.patch: fixed upstream. +- Drop gnome-shell-chat-notifications-fix.patch: fixed upstream. + +------------------------------------------------------------------- +Thu Jul 19 17:53:07 UTC 2012 - badshah400@gmail.com + +- Add gnome-shell-chat-notifications-fix.patch to fix several + issues with chat notifications in gnome-shell including a + regression introduced in the 3.4.x series [bgo#677457, + bgo#676175, bgo#675370]; all patches came from upstream git + commits. + +------------------------------------------------------------------- +Sat Jul 14 07:44:17 UTC 2012 - badshah400@gmail.com + +- Add various memory-leak fixes for gnome-shell from upstream git + as gnome-shell-fix-memory-leaks.patch [bgo#678079, bgo#678406, + bnc#771565]. + +------------------------------------------------------------------- +Thu Jun 28 21:24:30 UTC 2012 - dimstar@opensuse.org + +- Add gnome-shell-private-connection.patch: create private + connections if the user is not authorized. [bnc#751211]. + +------------------------------------------------------------------- +Wed May 2 05:59:51 UTC 2012 - dimstar@opensuse.org + +- Add gnome-shell-link-ext.patch: Link libgnome-shell-js.so into + gnome-shell binary to ensure it the typelib can be loaded. This + is rather hacky, but as the .typelib is interfaced and loads + libs from non-standard folders this fails badly (bnc#755862, + bgo#670477). +- Add gnome-common BuildRequires and call to gnome-autogen.sh, as + above patch touches the build system. + +------------------------------------------------------------------- +Wed Apr 18 07:37:51 UTC 2012 - vuntz@opensuse.org + +- Update to version 3.4.1: + + Fix crash that occurred when an icon theme change caused + unexpected reentrancy in the icon loading code [bgo#673512] + + Don't show system and other disabled users in the GDM user list + [bgo#673784] + + Make gnome-shell-calendar-server initialize GTK+ so it can + display password prompts if needed [bgo#673608] + + Adapt to Mutter API change for keybinding addition [bgo#673014] + + Fix crash when an extension was installed as both a user + extension and a system extension [bgo#673613] + + Fix bug where chat entry could end up partially offscreen + [bgo#661944] + + Fix problem where icons weren't updating when theme was changed + [bgo#672941] + + Look for Evolution calendar settings in GSettings, not GConf + [bgo#673610] + + Add <super>F10 for the application menu [bgo#672909] + + Fix %Id format characters to work in translations [bgo#673106] + + Fix error when NetworkManager restarts [bgo#673043] + + Improve efficiency of overview redraws by working around + Clutter issue [bgo#670636] + + Misc bug fixes [bgo#672592, bgo#672641, bgo#672719, bgo#673187, + bgo#673233, bgo#673656] + + Updated translations. + +------------------------------------------------------------------- +Mon Mar 26 19:01:26 UTC 2012 - vuntz@opensuse.org + +- Update to version 3.4.0: + + Don't crash when taking screenshots [bgo#672775] + + Fix dialog-resizing problem [bgo#672543] + + Updated translations. + +------------------------------------------------------------------- +Tue Mar 20 22:00:56 UTC 2012 - dimstar@opensuse.org + +- Update to version 3.3.92: + + Add shell-dialogs for GNOME Keyring prompts (bgo#652459, + bgo#652460 and bgo#671034) + + When the user returns from idle, bring up the message tray if + there were messages while they were away (bgo#643014) + + https://live.gnome.org/EveryDetailMatters + - Make the workspace thumbnails clickable all the way to the + edge of the screen (bgo#643319) + - Don't slide out the workspace thumbnails if the mouse is over + them when entering the overview (bgo#651092) + - Fix placeholder jumps while dragging a dash item (bgo#651842) + - Don't favorite apps if they are dropped back at the same + position (bgo#656333) + - To avoid confusion, don't allow removing running apps from + favorites (bgo#644853) + - Fix creation of new workspaces by dragging application + launchers (bgo#664202) + - Make it easier to drag dash items without triggering the menu + + Accessibility: + - Add StWidget API for easily adding accessible states and + setting roles, names (bgo#668366, bgo#667432 and bgo#671378) + - Set accessibility information on UI elements (bgo#644255, + bgo#667432, bgo#668361, bgo#672047, bgo#670308, bgo#670312, + bgo#670719 and bgo#671404) + + Improve key-navigation in the overview (bgo#663901) + + Key navigation bug fixes (bgo#662493, bgo#663437, bgo#665215 + and bgo#671998) + + Honor a 'org.gnome.shell.overrides.dynamic-workspaces' setting + that determines whether the workspace count is dynamic and + unsaved in GSettings or static and saved (bgo#671568) + + Avoid saving user presence to GSettings when not necessary + (bgo#665701, bgo#668214) + + Save screencasts in the users Videos/ directory (bgo#670749) + and use a "human readable" filename (bgo#670753) + + Allow dragging from the empty part of the top panel to + unmaximize a window (bgo#666359) + + Fix hangs that could occur when switching away to a VT + (bgo#653833) + + Fix problems with installing from extensions.gnome.org + (bgo#671134) + + Fix locking the screen when suspending via menu (bgo#670820) + + Fix browser plugin with Konqueror and Opera + + Fix shell restart not to bring up failure screen (bgo#648384) + + Reorganize and clean up CSS theming (bgo#668209) + + Improve appearance of modal dialogs (bgo#670227, bgo#668209) + + Update the calendar code to use ECalClient (bgo#671177) + + Update jhbuild script to use the main moduleset (bgo#668440) + + StTextureCache: code cleanup, evict unused icons, merge + together simulataneous requests for the same icon (bgo#670771, + bgo#671656 and bgo#672273) + + Clean up St for recent Clutter changes and fix bugs. + StContainer and StGroup are removed (bgo#670034, bgo#670640, + bgo#670904) + + Code cleanup (bgo#613194, bgo#671086, bgo#671103) + + Misc bugs fixed: bgo#651130, bgo#658946, bgo#667552, + bgo#670076, bgo#671001, bgo#670979, bgo#671410, bgo#671411, + bgo#671556, bgo#671656, bgo#671657, bgo#672011, bgo#672024, + bgo#672240, bgo#672265, bgo#672270, bgo#672321, bgo#672326, + bgo#672413, bgo#672471. + + Updated translations. +- Add pkgconfig(gcr-3) BuildRequires for the new keyring dialogs. + +------------------------------------------------------------------- +Tue Feb 28 22:28:11 UTC 2012 - dimstar@opensuse.org + +- Add fortune Recommends for Wanda to work. + +------------------------------------------------------------------- +Thu Feb 23 07:59:27 UTC 2012 - vuntz@opensuse.org + +- Update to version 3.3.90: + + Allow other applications to implement search providers via + D-Bus [bgo#663125, bgo#670148] + + Remove "Recent Items" search, as replaced by Documents search + [bgo#663125] + + Allow NetworkManager VPN plugins to use a shell-themed dialog + [bgo#658484] + + Port away from deprecated Clutter API [bgo#670034] + - StTooltip is removed + - StWidget is now a concrete class and can be instantiated + - st_container_destroy_children(), + st_box_layout_insert_actor(), and other functions removed in + favor of new replacements in Clutter. + + Use systemd for console/session handling when available + + Visual improvements to contact search, padding, top panel, + checkboxes [bgo#669489, bgo#669811, bgo#669993] + + Add a include_cursor parameter to Screenshot and + ScreenshotWindow D-Bus methods [bgo#670086] + + Add a "FlashArea" D-Bus method to do the screenshot flash + without a screenshot [bgo#669660] + + Build fixes [bgo#658484, bgo#669637] + + Misc bug fixes [bgo#642135, bgo#658484, bgo#658908, bgo#667694, + bgo#669098, bgo#669921, bgo#669662, bgo#669694, bgo#669776, + bgo#669887, bgo#669921, bgo#670005, bgo#670006, bgo#670319, + bgo#670418, bgo#670489] + + Updated translations. +- Add pkgconfig(libsystemd-daemon) and pkgconfig(libsystemd-login) + BuildRequires: build systemd support. Note that it nicely falls + back to ConsoleKit if systemd is not used on the system. +- Remove pkgconfig(gnome-desktop-3.0) BuildRequires: not needed + anymore. +- Add gnome-shell-search-provider-documents Recommends: this is the + D-Bus service in gnome-documents that allow searching in + documents from the shell. +- Manually create the %{_datadir}/gnome-shell/search-providers + directory in install, so that we can own this directory where + search providers install a .ini file. ++++ 1964 more lines (skipped) ++++ between /dev/null ++++ and /work/SRC/openSUSE:12.2:Update/.gnome-shell.678.new/gnome-shell.changes New: ---- gnome-shell-3.4.2.tar.xz gnome-shell-fix-memory-leaks.patch gnome-shell-private-connection.patch gnome-shell.changes gnome-shell.spec ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gnome-shell.spec ++++++ # # spec file for package gnome-shell # # Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # Name: gnome-shell Version: 3.4.2 Release: 0 Summary: GNOME Shell License: GPL-2.0+ Group: System/GUI/GNOME Url: http://live.gnome.org/GnomeShell Source: http://download.gnome.org/sources/gnome-shell/3.4/%{name}-%{version}.tar.xz # PATCH-FIX-UPSTREAM gnome-shell-private-connection.patch bnc#751211 bgo#646187 dimstar@opensuse.org -- create private connections if the user is not authorized Patch1: gnome-shell-private-connection.patch # PATCH-FIX-UPSTREAM gnome-shell-fix-memory-leaks.patch bnc#771565 bgo#678079 bgo#678406 badshah400@gmail.com -- Fix several memory leaks in gnome-shell; all patches came from upstream git Patch2: gnome-shell-fix-memory-leaks.patch # Needed by patch0 BuildRequires: gnome-common BuildRequires: intltool BuildRequires: translation-update-upstream BuildRequires: update-desktop-files # needed for directory ownership BuildRequires: dbus-1 BuildRequires: pkgconfig(clutter-1.0) >= 1.9.16 BuildRequires: pkgconfig(folks) >= 0.5.2 BuildRequires: pkgconfig(gcr-3) >= 3.3.90 BuildRequires: pkgconfig(gdk-pixbuf-2.0) BuildRequires: pkgconfig(gio-2.0) >= 2.31.6 BuildRequires: pkgconfig(gjs-1.0) >= 1.29.18 BuildRequires: pkgconfig(gl) BuildRequires: pkgconfig(gnome-bluetooth-1.0) >= 3.1.0 BuildRequires: pkgconfig(gnome-keyring-1) BuildRequires: pkgconfig(gobject-introspection-1.0) >= 0.10.1 BuildRequires: pkgconfig(gstreamer-0.10) >= 0.10.16 BuildRequires: pkgconfig(gstreamer-base-0.10) BuildRequires: pkgconfig(gtk+-3.0) >= 3.3.9 BuildRequires: pkgconfig(json-glib-1.0) >= 0.13.2 BuildRequires: pkgconfig(libcanberra) BuildRequires: pkgconfig(libcroco-0.6) BuildRequires: pkgconfig(libedataserver-1.2) >= 1.2.0 BuildRequires: pkgconfig(libgnome-menu-3.0) BuildRequires: pkgconfig(libmutter) >= 3.4.1 BuildRequires: pkgconfig(libnm-glib) BuildRequires: pkgconfig(libnm-util) BuildRequires: pkgconfig(libpulse-mainloop-glib) BuildRequires: pkgconfig(libsoup-2.4) BuildRequires: pkgconfig(libstartup-notification-1.0) >= 0.11 BuildRequires: pkgconfig(libsystemd-daemon) BuildRequires: pkgconfig(libsystemd-login) BuildRequires: pkgconfig(mutter-plugins) BuildRequires: pkgconfig(polkit-agent-1) >= 0.100 BuildRequires: pkgconfig(telepathy-glib) >= 0.17.5 BuildRequires: pkgconfig(telepathy-logger-0.2) >= 0.2.4 BuildRequires: pkgconfig(xfixes) Requires: gdk-pixbuf-loader-rsvg # To open contacts that have been searched for Requires: gnome-contacts Requires: gnome-icon-theme-symbolic Requires: gnome-session # For a GSettings schema and power system icon Requires: gnome-settings-daemon Requires: gsettings-desktop-schemas ## Finally, dependencies for session services that are needed for system icons and the user menu # bluetooth system icon Requires: gnome-bluetooth # "System settings" menu item Requires: gnome-control-center # "High Contrast" in accessibility status icon Requires: gnome-themes-accessibility # "Lock screen" menu item Requires: gnome-screensaver # network system icon Requires: NetworkManager-gnome # 11.4 doesn't have typelib dependency %if 0%{?suse_version} < 1210 Requires: libaccountsservice0 Requires: libcaribou0 Requires: libgdmgreeter1 %endif Recommends: %{name}-browser-plugin Recommends: %{name}-lang # Wanda makes use of this. Recommends: fortune Recommends: gnome-shell-search-provider-documents BuildRoot: %{_tmppath}/%{name}-%{version}-build %glib2_gsettings_schema_requires %description The GNOME Shell redefines user interactions with the GNOME desktop. In particular, it offers new paradigms for launching applications, accessing documents, and organizing open windows in GNOME. %package devel Summary: GNOME Shell -- Development Files Group: Development/Libraries/GNOME Requires: %{name} = %{version} %description devel The GNOME Shell redefines user interactions with the GNOME desktop. In particular, it offers new paradigms for launching applications, accessing documents, and organizing open windows in GNOME. %package browser-plugin Summary: GNOME Shell Browser Plugin for the Extensions Repository Group: System/GUI/GNOME Requires: %{name} = %{version} Supplements: packageand(%{name}:MozillaFirefox) %description browser-plugin The GNOME Shell Browser Plugin provides integration with gnome-shell and the corresponding extensions repository. The plugin allows the extensions repository to provide good integration, letting the website know which extensions are enabled and disabled, and allowing the website to enable, disable and install them. %lang_package %prep %setup -q %patch1 -p1 %patch2 -p1 translation-update-upstream %build # Needed by patch0 NOCONFIGURE=1 gnome-autogen.sh export BROWSER_PLUGIN_DIR=%{_libdir}/browser-plugins %configure \ --disable-static \ --libexecdir=%{_libexecdir}/%{name} \ --disable-schemas-install \ --enable-compile-warnings=no \ --with-ca-certificates=%{_sysconfdir}/ssl/ca-bundle.pem %__make %{?_smp_mflags} V=1 %install %makeinstall find %{buildroot} -type f -name "*.la" -delete -print # This is the directory where extensions get installed install -d %{buildroot}%{_datadir}/gnome-shell/extensions # This is the directory where search providers get installed install -d %{buildroot}%{_datadir}/gnome-shell/search-providers %find_lang %{name} %{?no_lang_C} %suse_update_desktop_file %{name} %suse_update_desktop_file gnome-shell-extension-prefs %clean rm -rf %{buildroot} %post %glib2_gsettings_schema_post %desktop_database_post %postun %glib2_gsettings_schema_postun %desktop_database_postun %files %defattr(-,root,root) %doc COPYING README NEWS %{_bindir}/gnome-shell %{_bindir}/gnome-shell-extension-prefs %{_bindir}/gnome-shell-extension-tool %{_libexecdir}/gnome-shell/ %if "%{_libdir}" != "%{_libexecdir}" %{_libdir}/gnome-shell/ %endif %dir %{_datadir}/GConf %dir %{_datadir}/GConf/gsettings %{_datadir}/GConf/gsettings/gnome-shell-overrides.convert %{_datadir}/applications/gnome-shell.desktop %{_datadir}/applications/gnome-shell-extension-prefs.desktop %{_datadir}/dbus-1/interfaces/org.gnome.ShellSearchProvider.xml %{_datadir}/dbus-1/services/org.gnome.Shell.CalendarServer.service %{_datadir}/dbus-1/services/org.gnome.Shell.HotplugSniffer.service %{_datadir}/glib-2.0/schemas/org.gnome.shell.gschema.xml %{_datadir}/glib-2.0/schemas/org.gnome.shell.evolution.calendar.gschema.xml %{_datadir}/gnome-shell/ %dir %{_datadir}/gnome-shell/extensions %dir %{_datadir}/gnome-shell/search-providers %doc %{_mandir}/man?/gnome-shell.* %files devel %defattr(-,root,root) %doc %{_datadir}/gtk-doc/html/st/ %doc %{_datadir}/gtk-doc/html/shell/ %files browser-plugin %defattr(-,root,root) %doc browser-plugin/README %{_libdir}/browser-plugins/libgnome-shell-browser-plugin.* %files lang -f %{name}.lang %changelog ++++++ gnome-shell-fix-memory-leaks.patch ++++++
From 7524210d1f2354266244c26d48d28a81f976a2a4 Mon Sep 17 00:00:00 2001 From: Pavel Vasin
Date: Thu, 14 Jun 2012 08:21:25 +0000 Subject: st-texture-cache: fix GtkIconInfo leak
https://bugzilla.gnome.org/show_bug.cgi?id=678079 --- diff --git a/src/st/st-texture-cache.c b/src/st/st-texture-cache.c index 45f3930..68dd337 100644 --- a/src/st/st-texture-cache.c +++ b/src/st/st-texture-cache.c @@ -933,6 +933,7 @@ load_gicon_with_colors (StTextureCache *cache, if (ensure_request (cache, key, policy, &request, texture)) { /* If there's an outstanding request, we've just added ourselves to it */ + gtk_icon_info_free (info); g_free (key); } else -- cgit v0.9.0.2
From 1cf2bb66469eb619e0422fe71a356738c6907e0e Mon Sep 17 00:00:00 2001 From: Pavel Vasin
Date: Wed, 13 Jun 2012 10:48:23 +0000 Subject: ShellContactSystem: fix GeeMapIterator leak
https://bugzilla.gnome.org/show_bug.cgi?id=678079 --- diff --git a/src/shell-contact-system.c b/src/shell-contact-system.c index 8d5109f..88d329e 100644 --- a/src/shell-contact-system.c +++ b/src/shell-contact-system.c @@ -463,6 +463,8 @@ shell_contact_system_initial_search (ShellContactSystem *self, g_object_unref (individual); } + g_object_unref (iter); + return sort_and_prepare_results (results); } -- cgit v0.9.0.2
From 201dc05416140cf011c3e5401bfa3ad608ec4fd7 Mon Sep 17 00:00:00 2001 From: Pavel Vasin
Date: Wed, 13 Jun 2012 16:51:57 +0000 Subject: ShellContactSystem: fix GSList of utf8 leak
https://bugzilla.gnome.org/show_bug.cgi?id=678079 --- diff --git a/src/shell-contact-system.c b/src/shell-contact-system.c index 4f5af70..8f00021 100644 --- a/src/shell-contact-system.c +++ b/src/shell-contact-system.c @@ -464,6 +464,7 @@ shell_contact_system_initial_search (ShellContactSystem *self, } g_object_unref (iter); + g_slist_free_full (normalized_terms, (GDestroyNotify) g_free); return sort_and_prepare_results (results); } -- cgit v0.9.0.2
From 2b34978993bffa3bbfa00124f76ca8ea36d42c95 Mon Sep 17 00:00:00 2001 From: Pavel Vasin
Date: Wed, 13 Jun 2012 16:48:06 +0000 Subject: ShellContactSystem: fix GSList leak
https://bugzilla.gnome.org/show_bug.cgi?id=678079 --- diff --git a/src/shell-contact-system.c b/src/shell-contact-system.c index 88d329e..4f5af70 100644 --- a/src/shell-contact-system.c +++ b/src/shell-contact-system.c @@ -297,7 +297,7 @@ sort_and_prepare_results (GSList *results) sorted_results = g_slist_prepend (sorted_results, id); } - g_slist_foreach (results, (GFunc) free_result, NULL); + g_slist_free_full (results, (GDestroyNotify) free_result); return sorted_results; } -- cgit v0.9.0.2
From 447246da741da9126aadb41c98a9179290bbcd86 Mon Sep 17 00:00:00 2001 From: Pavel Vasin
Date: Wed, 13 Jun 2012 12:49:20 +0000 Subject: shell-util: fix GFile leak
https://bugzilla.gnome.org/show_bug.cgi?id=678079 --- diff --git a/src/shell-util.c b/src/shell-util.c index bd211f0..12f0572 100644 --- a/src/shell-util.c +++ b/src/shell-util.c @@ -96,6 +96,7 @@ shell_util_get_file_display_for_common_files (GFile *file) * nautilus */ return g_strdup (_("Home")); } + g_object_unref (compare); compare = g_file_new_for_path ("/"); if (g_file_equal (file, compare)) -- cgit v0.9.0.2
From 4e4092f9e88e68a1da29bd687384e02f5efd476b Mon Sep 17 00:00:00 2001 From: Pavel Vasin
Date: Mon, 18 Jun 2012 17:14:59 +0000 Subject: pokit-agent: fix memory leak
https://bugzilla.gnome.org/show_bug.cgi?id=678406 --- diff --git a/src/shell-polkit-authentication-agent.c b/src/shell-polkit-authentication-agent.c index 472dea5..e85354a 100644 --- a/src/shell-polkit-authentication-agent.c +++ b/src/shell-polkit-authentication-agent.c @@ -230,6 +230,7 @@ auth_request_free (AuthRequest *request) g_free (request->message); g_free (request->icon_name); g_object_unref (request->details); + g_free (request->cookie); g_list_foreach (request->identities, (GFunc) g_object_unref, NULL); g_list_free (request->identities); g_object_unref (request->simple); -- cgit v0.9.0.2
From 556d5d181e8bab9365a5ef69f18965648e2b406b Mon Sep 17 00:00:00 2001 From: Pavel Vasin
Date: Mon, 18 Jun 2012 17:11:28 +0000 Subject: st-widget: fix GList leak
clutter_actor_get_children returns a newly allocated GList and it was not freed. However, as there's no reason to copy the children list, switch to iterator api. https://bugzilla.gnome.org/show_bug.cgi?id=678406 --- diff --git a/src/st/st-widget.c b/src/st/st-widget.c index 88d05c1..9546c1c 100644 --- a/src/st/st-widget.c +++ b/src/st/st-widget.c @@ -762,18 +762,17 @@ st_widget_get_paint_volume (ClutterActor *self, static GList * st_widget_real_get_focus_chain (StWidget *widget) { - GList *children; + ClutterActorIter iter; + ClutterActor *child; GList *focus_chain = NULL; - for (children = clutter_actor_get_children (CLUTTER_ACTOR (widget)); - children; - children = children->next) + clutter_actor_iter_init (&iter, CLUTTER_ACTOR (widget)); + while (clutter_actor_iter_next (&iter, &child)) { - ClutterActor *child = children->data; - if (CLUTTER_ACTOR_IS_VISIBLE (child)) focus_chain = g_list_prepend (focus_chain, child); } + return g_list_reverse (focus_chain); } -- cgit v0.9.0.2 ++++++ gnome-shell-private-connection.patch ++++++
From b4e856b5a0965b10bad37a0d4f08da20aa1ffcd8 Mon Sep 17 00:00:00 2001 From: Giovanni Campagna
Date: Thu, 31 Mar 2011 15:56:13 +0200 Subject: [PATCH] NetworkMenu: create private connections if the user is not authorized
Check polkit setting at startup and add, if needed, the "permissions" setting to the connections we create, so that polkit authentication is never needed. The connection is thus only available to other users if the system administrator decides so. https://bugzilla.gnome.org/show_bug.cgi?id=646187 --- js/ui/status/network.js | 58 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 42 insertions(+), 16 deletions(-) diff --git a/js/ui/status/network.js b/js/ui/status/network.js index f7d2258..cab7552 100644 --- a/js/ui/status/network.js +++ b/js/ui/status/network.js @@ -6,9 +6,11 @@ const Lang = imports.lang; const Mainloop = imports.mainloop; const NetworkManager = imports.gi.NetworkManager; const NMClient = imports.gi.NMClient; +const Polkit = imports.gi.Polkit; const Shell = imports.gi.Shell; const Signals = imports.signals; const St = imports.gi.St; +const System = imports.system; const Main = imports.ui.main; const PanelMenu = imports.ui.panelMenu; @@ -285,8 +287,9 @@ const NMDevice = new Lang.Class({ Name: 'NMDevice', Abstract: true, - _init: function(client, device, connections) { + _init: function(client, device, connections, privateConnections) { this.device = device; + if (device) { this.device._delegate = this; this._stateChangedId = this.device.connect('state-changed', Lang.bind(this, this._deviceStateChanged)); @@ -295,6 +298,8 @@ const NMDevice = new Lang.Class({ // protected this._client = client; + this._privateConnections = privateConnections; + this._connections = [ ]; for (let i = 0; i < connections.length; i++) { if (!connections[i]._uuid) @@ -692,11 +697,11 @@ const NMDeviceWired = new Lang.Class({ Name: 'NMDeviceWired', Extends: NMDevice, - _init: function(client, device, connections) { + _init: function(client, device, connections, privateConnections) { this._autoConnectionName = _("Auto Ethernet"); this.category = NMConnectionCategory.WIRED; - this.parent(client, device, connections); + this.parent(client, device, connections, privateConnections); }, _createSection: function() { @@ -717,12 +722,15 @@ const NMDeviceWired = new Lang.Class({ let connection = new NetworkManager.Connection(); connection._uuid = NetworkManager.utils_uuid_generate(); connection.add_setting(new NetworkManager.SettingWired()); - connection.add_setting(new NetworkManager.SettingConnection({ + let connectionSetting = new NetworkManager.SettingConnection({ uuid: connection._uuid, id: this._autoConnectionName, type: NetworkManager.SETTING_WIRED_SETTING_NAME, autoconnect: true - })); + }); + if (this._privateConnections) + connectionSetting.add_permission('user', GLib.get_user_name(), null); + connection.add_setting(connectionSetting); return connection; } }); @@ -731,7 +739,7 @@ const NMDeviceModem = new Lang.Class({ Name: 'NMDeviceModem', Extends: NMDevice, - _init: function(client, device, connections) { + _init: function(client, device, connections, privateConnections) { let is_wwan = false; this._enabled = true; @@ -778,7 +786,7 @@ const NMDeviceModem = new Lang.Class({ })); } - this.parent(client, device, connections); + this.parent(client, device, connections, privateConnections); }, setEnabled: function(enabled) { @@ -851,25 +859,28 @@ const NMDeviceBluetooth = new Lang.Class({ Name: 'NMDeviceBluetooth', Extends: NMDevice, - _init: function(client, device, connections) { + _init: function(client, device, connections, privateConnections) { this._autoConnectionName = this._makeConnectionName(device); device.connect('notify::name', Lang.bind(this, this._updateAutoConnectionName)); this.category = NMConnectionCategory.WWAN; - this.parent(client, device, connections); + this.parent(client, device, connections, privateConnections); }, _createAutomaticConnection: function() { let connection = new NetworkManager.Connection; connection._uuid = NetworkManager.utils_uuid_generate(); connection.add_setting(new NetworkManager.SettingBluetooth); - connection.add_setting(new NetworkManager.SettingConnection({ + let connectionSetting = new NetworkManager.SettingConnection({ uuid: connection._uuid, id: this._autoConnectionName, type: NetworkManager.SETTING_BLUETOOTH_SETTING_NAME, autoconnect: false - })); + }); + if (this._privateConnections) + connectionSetting.add_permission('user', GLib.get_user_name(), null); + connection.add_setting(connectionSetting); return connection; }, @@ -944,7 +955,7 @@ const NMDeviceWireless = new Lang.Class({ Name: 'NMDeviceWireless', Extends: NMDevice, - _init: function(client, device, connections) { + _init: function(client, device, connections, privateConnections) { this.category = NMConnectionCategory.WIRELESS; this._overflowItem = null; @@ -1014,7 +1025,7 @@ const NMDeviceWireless = new Lang.Class({ this._apAddedId = device.connect('access-point-added', Lang.bind(this, this._accessPointAdded)); this._apRemovedId = device.connect('access-point-removed', Lang.bind(this, this._accessPointRemoved)); - this.parent(client, device, validConnections); + this.parent(client, device, validConnections, privateConnections); }, destroy: function() { @@ -1455,12 +1466,15 @@ const NMDeviceWireless = new Lang.Class({ let connection = new NetworkManager.Connection(); connection.add_setting(new NetworkManager.SettingWireless()); - connection.add_setting(new NetworkManager.SettingConnection({ + let connectionSetting = new NetworkManager.SettingConnection({ id: name, autoconnect: true, // NetworkManager will know to ignore this if appropriate uuid: NetworkManager.utils_uuid_generate(), type: NetworkManager.SETTING_WIRELESS_SETTING_NAME - })); + }); + if (this._privateConnections) + connectionSetting.add_permission('user', GLib.get_user_name(), null); + connection.add_setting(connectionSetting); return connection; }, @@ -1542,6 +1556,18 @@ const NMApplet = new Lang.Class({ this._client = NMClient.Client.new(); + // Check if newly created connections should be private or not + this._privateConnections = true; + let authority = Polkit.Authority.get_sync(null); + let subject = new Polkit.UnixProcess({ pid: System.getpid(), uid: System.getuid() }); + let authResult = authority.check_authorization_sync(subject, + 'org.freedesktop.NetworkManager.settings.modify.system', + null /* details */, + Polkit.CheckAuthorizationFlags.NONE, + null /* cancellable */); + if (authResult) + this._privateConnections = !authResult.get_is_authorized(); + this._statusSection = new PopupMenu.PopupMenuSection(); this._statusItem = new PopupMenu.PopupMenuItem('', { style_class: 'popup-inactive-menu-item', reactive: false }); this._statusSection.addMenuItem(this._statusItem); @@ -1730,7 +1756,7 @@ const NMApplet = new Lang.Class({ } let wrapperClass = this._dtypes[device.get_device_type()]; if (wrapperClass) { - let wrapper = new wrapperClass(this._client, device, this._connections); + let wrapper = new wrapperClass(this._client, device, this._connections, this._privateConnections); wrapper._activationFailedId = wrapper.connect('activation-failed', Lang.bind(this, function(device, reason) { // XXX: nm-applet has no special text depending on reason -- 1.7.10 -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org