summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Rostovtsev <tetromino@gentoo.org>2014-09-30 13:53:09 +0000
committerAlexandre Rostovtsev <tetromino@gentoo.org>2014-09-30 13:53:09 +0000
commit84f7681eca5b28f2382e3a92bac1ae20946b7a3e (patch)
treedd91ea38c703357bc55d18dfa995af4ae9a2d246 /gnome-extra/cinnamon
parentVersion bump. (diff)
downloadgentoo-2-84f7681eca5b28f2382e3a92bac1ae20946b7a3e.tar.gz
gentoo-2-84f7681eca5b28f2382e3a92bac1ae20946b7a3e.tar.bz2
gentoo-2-84f7681eca5b28f2382e3a92bac1ae20946b7a3e.zip
Version bump, fix system info dialog (bug #523952, thanks to salikov.alexey for reporting). Drop old.
(Portage version: 2.2.14_rc1/cvs/Linux x86_64, signed Manifest commit with key CF0ADD61)
Diffstat (limited to 'gnome-extra/cinnamon')
-rw-r--r--gnome-extra/cinnamon/ChangeLog16
-rw-r--r--gnome-extra/cinnamon/cinnamon-2.2.16.ebuild (renamed from gnome-extra/cinnamon/cinnamon-1.8.8.1-r2.ebuild)162
-rw-r--r--gnome-extra/cinnamon/files/bluetooth_obex_transfer.patch25
-rw-r--r--gnome-extra/cinnamon/files/cinnamon-1.6.1-automagic-gnome-bluetooth.patch44
-rw-r--r--gnome-extra/cinnamon/files/cinnamon-1.8.8.1-mozjs17.patch36
-rw-r--r--gnome-extra/cinnamon/files/cinnamon-1.8.8.1-optional-networkmanager.patch145
-rw-r--r--gnome-extra/cinnamon/files/cinnamon-2.2.16-sbin-lspci.patch35
-rw-r--r--gnome-extra/cinnamon/files/idle-dim.patch35
-rw-r--r--gnome-extra/cinnamon/files/keyboard_applet.patch142
-rw-r--r--gnome-extra/cinnamon/files/menu_editor.patch815
-rw-r--r--gnome-extra/cinnamon/files/remove_GC.patch124
-rw-r--r--gnome-extra/cinnamon/files/screensaver.patch36
12 files changed, 122 insertions, 1493 deletions
diff --git a/gnome-extra/cinnamon/ChangeLog b/gnome-extra/cinnamon/ChangeLog
index 63bb19665703..3e76764f0bad 100644
--- a/gnome-extra/cinnamon/ChangeLog
+++ b/gnome-extra/cinnamon/ChangeLog
@@ -1,6 +1,20 @@
# ChangeLog for gnome-extra/cinnamon
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-extra/cinnamon/ChangeLog,v 1.46 2014/09/19 17:11:40 ssuominen Exp $
+# $Header: /var/cvsroot/gentoo-x86/gnome-extra/cinnamon/ChangeLog,v 1.47 2014/09/30 13:53:09 tetromino Exp $
+
+*cinnamon-2.2.16 (30 Sep 2014)
+
+ 30 Sep 2014; Alexandre Rostovtsev <tetromino@gentoo.org>
+ -cinnamon-1.8.8.1-r2.ebuild, +cinnamon-2.2.16.ebuild,
+ -files/cinnamon-1.6.1-automagic-gnome-bluetooth.patch,
+ -files/cinnamon-1.8.8.1-mozjs17.patch,
+ -files/cinnamon-1.8.8.1-optional-networkmanager.patch,
+ +files/cinnamon-2.2.16-sbin-lspci.patch,
+ -files/bluetooth_obex_transfer.patch, -files/idle-dim.patch,
+ -files/keyboard_applet.patch, -files/menu_editor.patch,
+ -files/remove_GC.patch, -files/screensaver.patch:
+ Version bump, fix system info dialog (bug #523952, thanks to salikov.alexey
+ for reporting). Drop old.
19 Sep 2014; Samuli Suominen <ssuominen@gentoo.org>
cinnamon-1.8.8.1-r2.ebuild:
diff --git a/gnome-extra/cinnamon/cinnamon-1.8.8.1-r2.ebuild b/gnome-extra/cinnamon/cinnamon-2.2.16.ebuild
index 518a7210ef21..3da552029f15 100644
--- a/gnome-extra/cinnamon/cinnamon-1.8.8.1-r2.ebuild
+++ b/gnome-extra/cinnamon/cinnamon-2.2.16.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-extra/cinnamon/cinnamon-1.8.8.1-r2.ebuild,v 1.7 2014/09/19 17:11:40 ssuominen Exp $
+# $Header: /var/cvsroot/gentoo-x86/gnome-extra/cinnamon/cinnamon-2.2.16.ebuild,v 1.1 2014/09/30 13:53:09 tetromino Exp $
EAPI="5"
GCONF_DEBUG="no"
@@ -16,60 +16,52 @@ HOMEPAGE="http://cinnamon.linuxmint.com/"
MY_PV="${PV/_p/-UP}"
MY_P="${PN}-${MY_PV}"
-SRC_URI="https://github.com/linuxmint/Cinnamon/archive/${MY_PV}.tar.gz -> ${MY_P}.tar.gz
- http://dev.gentoo.org/~pacho/gnome/cinnamon-1.8/gnome-3.8.patch"
+SRC_URI="https://github.com/linuxmint/Cinnamon/archive/${MY_PV}.tar.gz -> ${MY_P}.tar.gz"
LICENSE="GPL-2+"
SLOT="0"
-IUSE="+bluetooth +networkmanager"
-KEYWORDS="amd64 x86"
-
-# gnome-desktop-2.91.2 is needed due to header changes, db82a33 in gnome-desktop
-# latest gsettings-desktop-schemas is needed due to commit 602fa1c6
-# latest g-c-c is needed due to https://bugs.gentoo.org/show_bug.cgi?id=360057
-# libXfixes-5.0 needed for pointer barriers
-# gnome-menus-3.2.0.1-r1 needed for new 10-xdg-menu-gnome
+# bluetooth support dropped due bug #511648
+IUSE="+l10n +networkmanager" #+bluetooth
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+KEYWORDS="~amd64 ~x86"
+
COMMON_DEPEND="
+ app-misc/ca-certificates
+ dev-libs/dbus-glib
>=dev-libs/glib-2.29.10:2
- >=dev-libs/gjs-1.29.18
>=dev-libs/gobject-introspection-0.10.1
- x11-libs/gdk-pixbuf:2[introspection]
- >=x11-libs/gtk+-3.0.0:3[introspection]
+ >=dev-libs/json-glib-0.13.2
+ >=dev-libs/libcroco-0.6.2:0.6
+ dev-libs/libxml2:2
+ gnome-base/gconf:2[introspection]
+ gnome-base/librsvg
+ >=gnome-extra/cinnamon-desktop-1.0:0=[introspection]
+ gnome-extra/cinnamon-menus[introspection]
+ >=gnome-extra/cjs-1.9.0
>=media-libs/clutter-1.7.5:1.0[introspection]
media-libs/cogl:1.0=[introspection]
- app-misc/ca-certificates
- >=dev-libs/json-glib-0.13.2
- >=gnome-base/gnome-desktop-3.0.0:3=[introspection]
>=gnome-base/gsettings-desktop-schemas-2.91.91
- >=media-libs/gstreamer-0.10.16:0.10
- >=media-libs/gst-plugins-base-0.10.16:0.10
+ media-libs/gstreamer:1.0
+ media-libs/gst-plugins-base:1.0
+ media-libs/libcanberra
+ media-sound/pulseaudio:0=[glib]
net-libs/libsoup:2.4[introspection]
>=sys-auth/polkit-0.100[introspection]
- >=x11-wm/muffin-1.7.4[introspection]
-
- dev-libs/dbus-glib
- dev-libs/libxml2:2
+ x11-libs/gdk-pixbuf:2[introspection]
+ >=x11-libs/gtk+-3.0.0:3[introspection]
x11-libs/pango[introspection]
- >=dev-libs/libcroco-0.6.2:0.6
-
- gnome-base/gconf:2[introspection]
- >=gnome-base/gnome-menus-3.2.0.1-r1:3[introspection]
- gnome-base/librsvg
- media-libs/libcanberra
- media-sound/pulseaudio
-
>=x11-libs/startup-notification-0.11
x11-libs/libX11
>=x11-libs/libXfixes-5.0
- x11-apps/mesa-progs
-
+ >=x11-wm/muffin-1.9.1[introspection]
${PYTHON_DEPS}
-
- bluetooth? ( >=net-wireless/gnome-bluetooth-3.4:=[introspection] )
networkmanager? (
gnome-base/libgnome-keyring
>=net-misc/networkmanager-0.8.999[introspection] )
"
+#bluetooth? ( >=net-wireless/gnome-bluetooth-3.1:=[introspection] )
+
# Runtime-only deps are probably incomplete and approximate.
# Each block:
# 2. Introspection stuff + dconf needed via imports.gi.*
@@ -83,49 +75,51 @@ COMMON_DEPEND="
# 9. gnome-icon-theme-symbolic needed for various icons
# 10. pygobject needed for menu editor
# 11. nemo - default file manager, tightly integrated with cinnamon
-# 12. timedated or DateTimeMechanism implementation for cinnamon-settings
# TODO(lxnay): fix error: libgnome-desktop/gnome-rr-labeler.h: No such file or directory
-# =gnome-extra/cinnamon-control-center-1.8*
+# note: needs gksu, not gksu-polkit, due to extensive use of --message/-m arg
RDEPEND="${COMMON_DEPEND}
>=gnome-base/dconf-0.4.1
>=gnome-base/libgnomekbd-2.91.4[introspection]
- >=sys-power/upower-pm-utils-0.9.23[introspection]
+ || ( sys-power/upower[introspection] sys-power/upower-pm-utils[introspection] )
- >=gnome-base/gnome-session-3.8
+ gnome-extra/cinnamon-session
- >=gnome-base/gnome-settings-daemon-2.91
+ gnome-extra/cinnamon-settings-daemon
>=sys-apps/accountsservice-0.6.14[introspection]
>=app-accessibility/caribou-0.3
+ x11-libs/gksu
x11-misc/xdg-utils
dev-python/dbus-python[${PYTHON_USEDEP}]
dev-python/gconf-python:2
- virtual/python-imaging
- dev-python/lxml
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ dev-python/pycairo[${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ dev-python/pyinotify[${PYTHON_USEDEP}]
+ dev-python/pypam[${PYTHON_USEDEP}]
+ virtual/python-imaging[${PYTHON_USEDEP}]
+ x11-themes/gnome-themes-standard[gtk]
x11-themes/gnome-icon-theme-symbolic
- dev-python/pygobject:3[${PYTHON_USEDEP}]
-
gnome-extra/nemo
- gnome-extra/gnome-screensaver
-
- || (
- app-admin/openrc-settingsd
- >=sys-apps/systemd-30
- <gnome-base/gnome-settings-daemon-3.3.5 )
+ gnome-extra/cinnamon-control-center
+ gnome-extra/cinnamon-screensaver
+ l10n? ( >=gnome-extra/cinnamon-translations-2.2 )
networkmanager? (
+ gnome-extra/nm-applet
net-misc/mobile-broadband-provider-info
sys-libs/timezone-data )
"
-# gnome-extra/gnome-screensaver due screensaver patch, otherwise it uses
-# cinnamon-screensaver
+#bluetooth? ( net-wireless/cinnamon-bluetooth )
DEPEND="${COMMON_DEPEND}
+ dev-python/polib[${PYTHON_USEDEP}]
>=sys-devel/gettext-0.17
virtual/pkgconfig
>=dev-util/intltool-0.40
@@ -143,45 +137,34 @@ pkg_setup() {
src_prepare() {
# Fix GNOME 3.8 support
- epatch "${DISTDIR}/gnome-3.8.patch"
epatch "${FILESDIR}/background.patch"
- epatch "${FILESDIR}/idle-dim.patch"
- # https://github.com/linuxmint/Cinnamon/issues/1337
- epatch "${FILESDIR}/keyboard_applet.patch"
- epatch "${FILESDIR}/screensaver.patch"
- epatch "${FILESDIR}/bluetooth_obex_transfer.patch"
- epatch "${FILESDIR}/remove_GC.patch"
- epatch "${FILESDIR}/menu_editor.patch"
# Fix automagic gnome-bluetooth dep, bug #398145
- epatch "${FILESDIR}/${PN}-1.6.1-automagic-gnome-bluetooth.patch"
+ epatch "${FILESDIR}/${PN}-2.2.6-automagic-gnome-bluetooth.patch"
# Optional NetworkManager, bug #488684
- epatch "${FILESDIR}/${PN}-1.8.8.1-optional-networkmanager.patch"
+ epatch "${FILESDIR}/${PN}-2.2.6-optional-networkmanager.patch"
- # mozjs17 build failure, bug #499980
- epatch "${FILESDIR}/${P}-mozjs17.patch"
-
- # Gentoo uses /usr/libexec
- sed -e "s:/usr/lib/gnome-session/gnome-session-check-accelerated:${EPREFIX}/usr/libexec/gnome-session-check-accelerated:" \
- -i "files/usr/share/gnome-session/sessions/cinnamon.session" || die "sed 1 failed"
+ # Fix lspci path, https://github.com/linuxmint/Cinnamon/issues/3548
+ epatch "${FILESDIR}/${PN}-2.2.16-sbin-lspci.patch"
# Gentoo uses /usr/$(get_libdir), not /usr/lib even for python
sed -e "s:/usr/lib/:/usr/$(get_libdir)/:" \
-e 's:"/usr/lib":"/usr/'"$(get_libdir)"'":' \
- -i files/usr/bin/cinnamon-menu-editor \
- -i files/usr/bin/cinnamon-settings \
- -i files/usr/lib/cinnamon-menu-editor/cme/config.py \
- -i files/usr/lib/cinnamon-menu-editor/cme/MainWindow.py \
- -i files/usr/lib/cinnamon-settings/cinnamon-settings.py || die "sed 2 failed"
+ -i files/usr/share/polkit-1/actions/org.cinnamon.settings-users.policy \
+ -i files/usr/lib/cinnamon-settings-users/cinnamon-settings-users.py \
+ -i files/usr/lib/cinnamon-screensaver-lock-dialog/cinnamon-screensaver-lock-dialog.py \
+ -i files/usr/lib/cinnamon-settings/cinnamon-settings.py \
+ -i files/usr/lib/cinnamon-settings/modules/cs_backgrounds.py \
+ -i files/usr/lib/cinnamon-settings/data/spices/applet-detail.html \
+ -i files/usr/lib/cinnamon-settings/bin/*.py \
+ -i files/usr/lib/cinnamon-desktop-editor/cinnamon-desktop-editor.py \
+ -i files/usr/lib/cinnamon-menu-editor/cme/*.py \
+ -i files/usr/bin/* || die "sed failed"
if [[ "$(get_libdir)" != lib ]]; then
mv files/usr/lib "files/usr/$(get_libdir)" || die "mv failed"
fi
- if ! use bluetooth; then
- rm -rv files/usr/share/cinnamon/applets/bluetooth@cinnamon.org || die
- fi
-
if ! use networkmanager; then
rm -rv files/usr/share/cinnamon/applets/network@cinnamon.org || die
fi
@@ -194,24 +177,21 @@ src_configure() {
# Don't error out on warnings
gnome2_src_configure \
--disable-jhbuild-wrapper-script \
- $(use_with bluetooth) \
$(use_enable networkmanager) \
--with-ca-certificates="${EPREFIX}/etc/ssl/certs/ca-certificates.crt" \
- BROWSER_PLUGIN_DIR="${EPREFIX}/usr/$(get_libdir)/nsbrowser/plugins"
+ BROWSER_PLUGIN_DIR="${EPREFIX}/usr/$(get_libdir)/nsbrowser/plugins" \
+ --without-bluetooth
+ #$(use_with bluetooth)
}
src_install() {
gnome2_src_install
- python_optimize "${ED}usr/$(get_libdir)/cinnamon-"{settings,menu-editor}
+ python_optimize "${ED}usr/$(get_libdir)/cinnamon-"{desktop-editor,json-makepot,launcher,looking-glass,menu-editor,screensaver-lock-dialog,settings,settings-users}
# Fix broken shebangs
sed -e "s%#!.*python%#!${PYTHON}%" \
- -i "${ED}usr/bin/cinnamon-"{launcher,menu-editor,settings} \
+ -i "${ED}usr/bin/cinnamon-"{desktop-editor,json-makepot,launcher,looking-glass,menu-editor,screensaver-lock-dialog,settings,settings-users} \
-i "${ED}usr/$(get_libdir)/cinnamon-settings/cinnamon-settings.py" || die
- domenu\
- "${FILESDIR}/cinnamon-screensaver.desktop" \
- "${FILESDIR}/cinnamon2d-screensaver.desktop"
-
# Required for gnome-shell on hardened/PaX, bug #398941
pax-mark mr "${ED}usr/bin/cinnamon"
@@ -222,11 +202,11 @@ src_install() {
pkg_postinst() {
gnome2_pkg_postinst
- if ! has_version '>=media-libs/gst-plugins-good-0.10.23:0.10' || \
- ! has_version 'media-plugins/gst-plugins-vp8:0.10'; then
+ if ! has_version 'media-libs/gst-plugins-good:1.0' || \
+ ! has_version 'media-plugins/gst-plugins-vpx:1.0'; then
ewarn "To make use of Cinnamon's built-in screen recording utility,"
- ewarn "you need to either install >=media-libs/gst-plugins-good-0.10.23:0.10"
- ewarn "and media-plugins/gst-plugins-vp8:0.10, or use dconf-editor to change"
+ ewarn "you need to either install media-libs/gst-plugins-good:1.0"
+ ewarn "and media-plugins/gst-plugins-vpx:1.0, or use dconf-editor to change"
ewarn "org.cinnamon.recorder/pipeline to what you want to use."
fi
@@ -242,7 +222,9 @@ pkg_postinst() {
ewarn "open-source drivers."
fi
- if has_version "media-libs/mesa[video_cards_radeon]"; then
+ if has_version "media-libs/mesa[video_cards_radeon]" ||
+ has_version "media-libs/mesa[video_cards_r300]" ||
+ has_version "media-libs/mesa[video_cards_r600]"; then
elog "Cinnamon is unstable under classic-mode r300/r600 mesa drivers."
elog "Make sure that gallium architecture for r300 and r600 drivers is"
elog "selected using 'eselect mesa'."
diff --git a/gnome-extra/cinnamon/files/bluetooth_obex_transfer.patch b/gnome-extra/cinnamon/files/bluetooth_obex_transfer.patch
deleted file mode 100644
index 0e632c48b07c..000000000000
--- a/gnome-extra/cinnamon/files/bluetooth_obex_transfer.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- a/files/usr/share/cinnamon/applets/bluetooth@cinnamon.org/applet.js
-+++ b/files/usr/share/cinnamon/applets/bluetooth@cinnamon.org/applet.js
-@@ -455,22 +455,6 @@ MyApplet.prototype = {
- this._applet.send_to_address(device.bdaddr, device.alias);
- }));
- }
-- if (device.capabilities & GnomeBluetoothApplet.Capabilities.OBEX_FILE_TRANSFER) {
-- item.menu.addAction(_("Browse Files..."), Lang.bind(this, function(event) {
-- this._applet.browse_address(device.bdaddr, event.get_time(),
-- Lang.bind(this, function(applet, result) {
-- try {
-- applet.browse_address_finish(result);
-- } catch (e) {
-- this._ensureSource();
-- this._source.notify(new MessageTray.Notification(this._source,
-- _("Bluetooth"),
-- _("Error browsing device"),
-- { body: _("The requested device cannot be browsed, error is '%s'").format(e) }));
-- }
-- }));
-- }));
-- }
-
- switch (device.type) {
- case GnomeBluetoothApplet.Type.KEYBOARD:
diff --git a/gnome-extra/cinnamon/files/cinnamon-1.6.1-automagic-gnome-bluetooth.patch b/gnome-extra/cinnamon/files/cinnamon-1.6.1-automagic-gnome-bluetooth.patch
deleted file mode 100644
index 9a8f5ab444c4..000000000000
--- a/gnome-extra/cinnamon/files/cinnamon-1.6.1-automagic-gnome-bluetooth.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From ee11a71f55eb0860fb61f5c250792221387f09bf Mon Sep 17 00:00:00 2001
-From: root <admin@catmur.co.uk>
-Date: Sun, 8 Jan 2012 13:55:05 +0000
-Subject: [PATCH] Fix automagic gnome-bluetooth dependency
-
-https://bugs.gentoo.org/show_bug.cgi?id=398145
-
-Ed Catmur 2012-01-08 13:46:22 UTC
-libgnome-bluetooth-applet is a private library so they shouldn't be linking
-against it anyway. I tried to work out how to tell libtool to add it to rpath
-but got totally lost.
-
-I'll see if I can work out how to fix the automagic gnome-bluetooth dependency
-so I can at least merge USE=-bluetooth.
----
- configure.ac | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index 69728ed..58c35f9 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -113,6 +113,8 @@ PKG_CHECK_MODULES(GVC, libpulse libpulse-mainloop-glib gobject-2.0)
- PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 0.1.7)
-
- AC_MSG_CHECKING([for bluetooth support])
-+AC_ARG_WITH([bluetooth], AS_HELP_STRING([--without-bluetooth], [Build without gnome-bluetooth library (default: auto)]))
-+AS_IF([test "x$with_bluetooth" != "xno"], [
- PKG_CHECK_EXISTS([gnome-bluetooth-1.0 >= 3.1.0],
- [BLUETOOTH_DIR=`$PKG_CONFIG --variable=applet_libdir gnome-bluetooth-1.0`
- BLUETOOTH_LIBS=`$PKG_CONFIG --variable=applet_libs gnome-bluetooth-1.0`
-@@ -125,6 +127,9 @@ PKG_CHECK_EXISTS([gnome-bluetooth-1.0 >= 3.1.0],
- [AC_DEFINE([HAVE_BLUETOOTH],[0])
- AC_SUBST([HAVE_BLUETOOTH],[0])
- AC_MSG_RESULT([no])])
-+], [AC_DEFINE([HAVE_BLUETOOTH],[0])
-+ AC_SUBST([HAVE_BLUETOOTH],[0])
-+ AC_MSG_RESULT([no])])
-
- MUFFIN_GIR_DIR=`$PKG_CONFIG --variable=girdir libmuffin`
- MUFFIN_TYPELIB_DIR=`$PKG_CONFIG --variable=typelibdir libmuffin`
---
-1.7.12
-
diff --git a/gnome-extra/cinnamon/files/cinnamon-1.8.8.1-mozjs17.patch b/gnome-extra/cinnamon/files/cinnamon-1.8.8.1-mozjs17.patch
deleted file mode 100644
index cd29462ef784..000000000000
--- a/gnome-extra/cinnamon/files/cinnamon-1.8.8.1-mozjs17.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 914d7da8baea24b1b31e2bcf982d12996f86694a Mon Sep 17 00:00:00 2001
-From: leigh123linux <leigh123linux@fedoraproject.org>
-Date: Tue, 4 Jun 2013 14:02:15 +0200
-Subject: [PATCH] Fix build error so cinnamon compiles with mozjs-17
-
-https://mail.gnome.org/archives/desktop-devel-list/2013-March/msg00135.html
-
-Fixes #2113
----
- src/cinnamon-global.c | 7 ++-----
- 1 file changed, 2 insertions(+), 5 deletions(-)
-
-diff --git a/src/cinnamon-global.c b/src/cinnamon-global.c
-index ab5d5d4..69958d3 100644
---- a/src/cinnamon-global.c
-+++ b/src/cinnamon-global.c
-@@ -1237,14 +1237,11 @@ enum
- 0,
- &target_object))
- {
-- char *message;
-- gjs_log_exception(context,
-- &message);
-+ gjs_log_exception(context);
- g_set_error(error,
- G_IO_ERROR,
- G_IO_ERROR_FAILED,
-- "%s", message ? message : "(unknown)");
-- g_free(message);
-+ "Unable to import %s", target_object_script);
- goto out_error;
- }
-
---
-1.8.5.5
-
diff --git a/gnome-extra/cinnamon/files/cinnamon-1.8.8.1-optional-networkmanager.patch b/gnome-extra/cinnamon/files/cinnamon-1.8.8.1-optional-networkmanager.patch
deleted file mode 100644
index 4acdb9062df8..000000000000
--- a/gnome-extra/cinnamon/files/cinnamon-1.8.8.1-optional-networkmanager.patch
+++ /dev/null
@@ -1,145 +0,0 @@
---- a/configure.ac
-+++ b/configure.ac
-@@ -83,8 +83,40 @@
- gobject-introspection-1.0 >= $GOBJECT_INTROSPECTION_MIN_VERSION
- libcanberra
- polkit-agent-1 >= $POLKIT_MIN_VERSION xfixes
-- libnm-glib libnm-util gnome-keyring-1
- gnome-desktop-3.0 >= GNOME_DESKTOP_MIN_VERSION)
-+
-+##########################
-+# Check for NetworkManager
-+##########################
-+NM_MIN_VERSION=0.9
-+AC_ARG_ENABLE(networkmanager,
-+ AS_HELP_STRING([--disable-networkmanager],
-+ [disable NetworkManager support @<:@default=auto@:>@]),,
-+ [enable_networkmanager=auto])
-+
-+if test "x$enable_networkmanager" != "xno"; then
-+ PKG_CHECK_MODULES(NETWORKMANAGER,
-+ [libnm-glib libnm-util gnome-keyring-1],
-+ [have_networkmanager=yes],
-+ [have_networkmanager=no])
-+
-+ CINNAMON_CFLAGS="$CINNAMON_CFLAGS $NETWORKMANAGER_CFLAGS"
-+ CINNAMON_LIBS="$CINNAMON_LIBS $NETWORKMANAGER_LIBS"
-+else
-+ have_networkmanager="no (disabled)"
-+fi
-+
-+if test "x$have_networkmanager" = "xyes"; then
-+ AC_DEFINE(HAVE_NETWORKMANAGER, [1], [Define if we have NetworkManager])
-+ AC_SUBST([HAVE_NETWORKMANAGER], [1])
-+else
-+ if test "x$enable_networkmanager" = "xyes"; then
-+ AC_MSG_ERROR([Couldn't find NetworkManager.])
-+ fi
-+ AC_SUBST([HAVE_NETWORKMANAGER], [0])
-+fi
-+
-+AM_CONDITIONAL(HAVE_NETWORKMANAGER, test "$have_networkmanager" = "yes")
-
- PKG_CHECK_MODULES(CINNAMON_PERF_HELPER, gtk+-3.0 gio-2.0)
-
-@@ -242,3 +274,15 @@
- files/Makefile
- ])
- AC_OUTPUT
-+
-+echo "
-+Build configuration:
-+
-+ Prefix: ${prefix}
-+ Source code location: ${srcdir}
-+ Compiler: ${CC}
-+ Compiler Warnings: $enable_compile_warnings
-+
-+ Support for NetworkManager: $have_networkmanager
-+ Support for GStreamer recording: $build_recorder
-+"
---- a/js/misc/config.js.in
-+++ b/js/misc/config.js.in
-@@ -8,5 +8,7 @@
- const GJS_VERSION = '@GJS_VERSION@';
- /* 1 if gnome-bluetooth is available, 0 otherwise */
- const HAVE_BLUETOOTH = @HAVE_BLUETOOTH@;
-+/* 1 if networkmanager is available, 0 otherwise */
-+const HAVE_NETWORKMANAGER = @HAVE_NETWORKMANAGER@;
- /* The system TLS CA list */
- const CINNAMON_SYSTEM_CA_FILE = '@CINNAMON_SYSTEM_CA_FILE@';
---- a/js/ui/main.js
-+++ b/js/ui/main.js
-@@ -57,6 +57,7 @@
- const AppletManager = imports.ui.appletManager;
- const AutomountManager = imports.ui.automountManager;
- const AutorunManager = imports.ui.autorunManager;
-+const Config = imports.misc.config;
- const DeskletManager = imports.ui.deskletManager;
- const EndSessionDialog = imports.ui.endSessionDialog;
- const PolkitAuthenticationAgent = imports.ui.polkitAuthenticationAgent;
-@@ -70,7 +71,7 @@
- const RunDialog = imports.ui.runDialog;
- const Layout = imports.ui.layout;
- const LookingGlass = imports.ui.lookingGlass;
--const NetworkAgent = imports.ui.networkAgent;
-+const NetworkAgent = Config.HAVE_NETWORKMANAGER ? imports.ui.networkAgent : null;
- const NotificationDaemon = imports.ui.notificationDaemon;
- const WindowAttentionHandler = imports.ui.windowAttentionHandler;
- const Scripting = imports.ui.scripting;
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -111,9 +111,7 @@
- cinnamon-generic-container.h \
- cinnamon-gtk-embed.h \
- cinnamon-global.h \
-- cinnamon-mobile-providers.h \
- cinnamon-mount-operation.h \
-- cinnamon-network-agent.h \
- cinnamon-perf-log.h \
- cinnamon-screenshot.h \
- cinnamon-screen-grabber.h \
-@@ -125,6 +123,10 @@
- cinnamon-window-tracker.h \
- cinnamon-wm.h \
- cinnamon-xfixes-cursor.h
-+
-+if HAVE_NETWORKMANAGER
-+cinnamon_public_headers_h += cinnamon-mobile-providers.h cinnamon-network-agent.h
-+endif
-
- libcinnamon_la_SOURCES = \
- $(cinnamon_built_sources) \
-@@ -149,9 +151,7 @@
- cinnamon-generic-container.c \
- cinnamon-gtk-embed.c \
- cinnamon-global.c \
-- cinnamon-mobile-providers.c \
- cinnamon-mount-operation.c \
-- cinnamon-network-agent.c \
- cinnamon-perf-log.c \
- cinnamon-polkit-authentication-agent.h \
- cinnamon-polkit-authentication-agent.c \
-@@ -166,6 +166,10 @@
- cinnamon-wm.c \
- cinnamon-xfixes-cursor.c
-
-+if HAVE_NETWORKMANAGER
-+libcinnamon_la_SOURCES += cinnamon-mobile-providers.c cinnamon-network-agent.c
-+endif
-+
- libcinnamon_la_gir_sources = \
- $(filter-out %-private.h $(cinnamon_recorder_non_gir_sources), $(cinnamon_public_headers_h) $(libcinnamon_la_SOURCES))
-
-@@ -277,7 +281,10 @@
- libcinnamon_la_CPPFLAGS = $(cinnamon_cflags)
-
- Cinnamon-0.1.gir: libcinnamon.la St-1.0.gir
--Cinnamon_0_1_gir_INCLUDES = Clutter-1.0 ClutterX11-1.0 Meta-Muffin.0 Soup-2.4 GMenu-3.0 NetworkManager-1.0 NMClient-1.0
-+Cinnamon_0_1_gir_INCLUDES = Clutter-1.0 ClutterX11-1.0 Meta-Muffin.0 Soup-2.4 GMenu-3.0
-+if HAVE_NETWORKMANAGER
-+Cinnamon_0_1_gir_INCLUDES += NetworkManager-1.0 NMClient-1.0
-+endif
- Cinnamon_0_1_gir_CFLAGS = $(libcinnamon_la_CPPFLAGS) -I $(srcdir)
- Cinnamon_0_1_gir_LIBS = libcinnamon.la
- Cinnamon_0_1_gir_FILES = $(libcinnamon_la_gir_sources)
diff --git a/gnome-extra/cinnamon/files/cinnamon-2.2.16-sbin-lspci.patch b/gnome-extra/cinnamon/files/cinnamon-2.2.16-sbin-lspci.patch
new file mode 100644
index 000000000000..5c9ea66a797f
--- /dev/null
+++ b/gnome-extra/cinnamon/files/cinnamon-2.2.16-sbin-lspci.patch
@@ -0,0 +1,35 @@
+From 973446912684a07204a8b9d40fe23a98f0235a97 Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Tue, 30 Sep 2014 09:24:58 -0400
+Subject: [PATCH] cinnamon-settings: append /usr/sbin to PATH before calling
+ lspci
+
+Some distros, e.g. Gentoo, install lspci in /usr/sbin
+---
+ files/usr/lib/cinnamon-settings/modules/cs_info.py | 5 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/files/usr/lib/cinnamon-settings/modules/cs_info.py b/files/usr/lib/cinnamon-settings/modules/cs_info.py
+index aa5e4da..d50be27 100644
+--- a/files/usr/lib/cinnamon-settings/modules/cs_info.py
++++ b/files/usr/lib/cinnamon-settings/modules/cs_info.py
+@@ -31,6 +31,8 @@ def getProcessOut(command):
+ def getGraphicsInfos():
+ cards = {}
+ count = 0
++ envpath = os.environ["PATH"]
++ os.environ["PATH"] = envpath + ":/usr/local/sbin:/usr/sbin:/sbin"
+ for card in getProcessOut(("lspci")):
+ if not "VGA" in card:
+ continue
+@@ -43,6 +45,7 @@ def getGraphicsInfos():
+ if cardName:
+ cards[count] = (cardName)
+ count += 1
++ os.environ["PATH"] = envpath
+ return cards
+
+ def getDiskSize():
+--
+2.1.1
+
diff --git a/gnome-extra/cinnamon/files/idle-dim.patch b/gnome-extra/cinnamon/files/idle-dim.patch
deleted file mode 100644
index 85f51238a7a6..000000000000
--- a/gnome-extra/cinnamon/files/idle-dim.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-diff -Naur linuxmint-Cinnamon-a464dc9.orig/files/usr/share/cinnamon/applets/brightness@cinnamon.org/applet.js linuxmint-Cinnamon-a464dc9/files/usr/share/cinnamon/applets/brightness@cinnamon.org/applet.js
---- linuxmint-Cinnamon-a464dc9.orig/files/usr/share/cinnamon/applets/brightness@cinnamon.org/applet.js 2013-04-30 18:01:56.000000000 +0200
-+++ linuxmint-Cinnamon-a464dc9/files/usr/share/cinnamon/applets/brightness@cinnamon.org/applet.js 2013-05-02 19:32:12.934254811 +0200
-@@ -8,8 +8,7 @@
-
- /* constants */
- const DimSettingsSchema = "org.gnome.settings-daemon.plugins.power";
--const DimSettingsAc = "idle-dim-ac";
--const DimSettingsBattery = "idle-dim-battery";
-+const DimSettings = "idle-dim";
- const PowerBusName = 'org.gnome.SettingsDaemon';
- const PowerObjectPath = '/org/gnome/SettingsDaemon/Power';
-
-@@ -116,10 +115,8 @@
-
- this._settingsMenu = new PopupMenu.PopupSubMenuMenuItem(_("Dimming settings"));
-
-- let dimSwitchAc = this._buildItem(_("Dim screen on AC power"), DimSettingsSchema, DimSettingsAc);
-- this._settingsMenu.menu.addMenuItem(dimSwitchAc);
-- let dimSwitchBattery = this._buildItem(_("Dim screen on battery"), DimSettingsSchema, DimSettingsBattery);
-- this._settingsMenu.menu.addMenuItem(dimSwitchBattery);
-+ let dimSwitch = this._buildItem(_("Dim screen"), DimSettingsSchema, DimSettings);
-+ this._settingsMenu.menu.addMenuItem(dimSwitch);
-
- //initial update.
- //We have to wait until dbus calls back to decide whether to display brightness controls.
-@@ -146,7 +146,7 @@
- this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
- }
-
-- this.menu.addSettingsAction(_("Settings"), "screen");
-+ this.menu.addSettingsAction(_("Settings"), "screensaver");
- }));
- }
- catch (e) {
diff --git a/gnome-extra/cinnamon/files/keyboard_applet.patch b/gnome-extra/cinnamon/files/keyboard_applet.patch
deleted file mode 100644
index 6b36940862f4..000000000000
--- a/gnome-extra/cinnamon/files/keyboard_applet.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-diff --git a/applet.js b/applet.js
---- a/files/usr/share/cinnamon/applets/keyboard@cinnamon.org/applet.js
-+++ b/files/usr/share/cinnamon/applets/keyboard@cinnamon.org/applet.js
-@@ -1,9 +1,10 @@
- const Applet = imports.ui.applet;
--const Gkbd = imports.gi.Gkbd;
- const Lang = imports.lang;
--const Cinnamon = imports.gi.Cinnamon;
-+const Gio = imports.gi.Gio;
-+const GLib = imports.gi.GLib;
- const St = imports.gi.St;
- const Gtk = imports.gi.Gtk;
-+const GnomeDesktop = imports.gi.GnomeDesktop;
- const Main = imports.ui.main;
- const PopupMenu = imports.ui.popupMenu;
- const Util = imports.misc.util;
-@@ -15,11 +16,12 @@
- LayoutMenuItem.prototype = {
- __proto__: PopupMenu.PopupBaseMenuItem.prototype,
-
-- _init: function(config, id, indicator, long_name) {
-+ _init: function(ipsettings, id, index, indicator, long_name) {
- PopupMenu.PopupBaseMenuItem.prototype._init.call(this);
-
-- this._config = config;
-+ this._ipsettings = ipsettings;
- this._id = id;
-+ this._index = index;
- this.label = new St.Label({ text: long_name });
- this.indicator = indicator;
- this.addActor(this.label);
-@@ -28,7 +30,7 @@
-
- activate: function(event) {
- PopupMenu.PopupBaseMenuItem.prototype.activate.call(this);
-- this._config.lock_group(this._id);
-+ this._ipsettings.set_value('current', GLib.Variant.new_uint32(this._index));
- }
- };
-
-@@ -54,18 +56,18 @@
- this._layoutItems = [ ];
-
- this._showFlags = global.settings.get_boolean("keyboard-applet-use-flags");
-- this._config = Gkbd.Configuration.get();
-- this._config.connect('changed', Lang.bind(this, this._syncConfig));
-- this._config.connect('group-changed', Lang.bind(this, this._syncGroup));
-+ this._xkbInfo = new GnomeDesktop.XkbInfo();
-+ this._ipsettings = new Gio.Settings({ schema: 'org.gnome.desktop.input-sources' });
-+ this._ipsettings.connect('changed::sources', Lang.bind(this, this._syncConfig));
-+ this._ipsettings.connect('changed::current', Lang.bind(this, this._syncGroup));
- global.settings.connect('changed::keyboard-applet-use-flags', Lang.bind(this, this._reload_settings));
-- this._config.start_listen();
-
- this._syncConfig();
-
- this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
- this.menu.addAction(_("Show Keyboard Layout"), Lang.bind(this, function() {
- Main.overview.hide();
-- Util.spawn(['gkbd-keyboard-display', '-g', String(this._config.get_current_group() + 1)]);
-+ Util.spawn(['gkbd-keyboard-display', '-l', this._selectedLayout._id]);
- }));
- this.menu.addAction(_("Show Character Table"), Lang.bind(this, function() {
- Main.overview.hide();
-@@ -98,7 +100,6 @@
- },
-
- _reload_settings: function() {
-- this._showFlags = global.settings.get_boolean("keyboard-applet-use-flags");
- this._syncConfig();
- },
-
-@@ -127,8 +128,8 @@
- _syncConfig: function() {
- this._showFlags = global.settings.get_boolean("keyboard-applet-use-flags");
-
-- let groups = this._config.get_group_names();
-- if (groups.length > 1) {
-+ let sources = this._ipsettings.get_value('sources');
-+ if (sources.n_children() > 1) {
- this.actor.show();
- } else {
- this.menu.close();
-@@ -141,25 +142,29 @@
- for (let i = 0; i < this._labelActors.length; i++)
- this._labelActors[i].destroy();
-
-- let short_names = this._adjustGroupNames(this._config.get_short_group_names());
--
- this._selectedLayout = null;
- this._layoutItems = [ ];
- this._labelActors = [ ];
-- for (let i = 0; i < groups.length; i++) {
-- let icon_name = this._config.get_group_name(i);
-+ for (let i = 0; i < sources.n_children(); i++) {
-+ let [type, id] = sources.get_child_value(i).deep_unpack();
-+ let displayName = id;
-+ let shortName = id;
-+ let xkbLayout = id;
-+ if (type == 'xkb') {
-+ [_exists, displayName, shortName, xkbLayout, _xkbVariant] = this._xkbInfo.get_layout_info(id);
-+ } // TODO: errorhandling, handle 'ibus'
-+ let icon_name = xkbLayout; // FIXME: Really?
- let actor;
- if (this._showFlags)
- actor = new St.Icon({ icon_name: icon_name, icon_type: St.IconType.FULLCOLOR, style_class: 'popup-menu-icon' });
- else
-- actor = new St.Label({ text: short_names[i] });
-- let item = new LayoutMenuItem(this._config, i, actor, groups[i]);
-- item._short_group_name = short_names[i];
-+ actor = new St.Label({ text: shortName });
-+ let item = new LayoutMenuItem(this._ipsettings, id, i, actor, displayName);
- item._icon_name = icon_name;
- this._layoutItems.push(item);
- this.menu.addMenuItem(item, i);
-
-- let shortLabel = new St.Label({ text: short_names[i] });
-+ let shortLabel = new St.Label({ text: shortName });
- this._labelActors.push(shortLabel);
- }
-
-@@ -167,17 +172,17 @@
- },
-
- _syncGroup: function() {
-- let selected = this._config.get_current_group();
-+ let current = this._ipsettings.get_uint('current');
-
- if (this._selectedLayout) {
- this._selectedLayout.setShowDot(false);
- this._selectedLayout = null;
- }
-
-- let item = this._layoutItems[selected];
-+ let item = this._layoutItems[current];
- item.setShowDot(true);
-
-- let selectedLabel = this._labelActors[selected];
-+ let selectedLabel = this._labelActors[current];
-
- if (this._showFlags) {
- this.set_applet_icon_name(item._icon_name);
diff --git a/gnome-extra/cinnamon/files/menu_editor.patch b/gnome-extra/cinnamon/files/menu_editor.patch
deleted file mode 100644
index e18ee7f48e85..000000000000
--- a/gnome-extra/cinnamon/files/menu_editor.patch
+++ /dev/null
@@ -1,815 +0,0 @@
-diff --git a/files/usr/bin/cinnamon-launcher-creator b/files/usr/bin/cinnamon-launcher-creator
-new file mode 100755
-index 0000000..6f51401
---- /dev/null
-+++ b/files/usr/bin/cinnamon-launcher-creator
-@@ -0,0 +1,21 @@
-+#! /usr/bin/python -OOt
-+
-+import sys
-+sys.path.insert(0,'/usr/lib/cinnamon-menu-editor')
-+from cme import ItemEditor, MenuEditor
-+
-+def main():
-+ try:
-+ from MenuEditor import config
-+ datadir = config.pkgdatadir
-+ version = config.VERSION
-+ except:
-+ datadir = '.'
-+ version = '0.9'
-+ if len(sys.argv) > 1:
-+ app = ItemEditor.DesktopLauncherCreator(sys.argv[1])
-+ else:
-+ print "Missing path argument for launcher location"
-+
-+if __name__ == '__main__':
-+ main()
-diff --git a/files/usr/lib/cinnamon-menu-editor/cme/ItemEditor.py b/files/usr/lib/cinnamon-menu-editor/cme/ItemEditor.py
-new file mode 100644
-index 0000000..80c2acd
---- /dev/null
-+++ b/files/usr/lib/cinnamon-menu-editor/cme/ItemEditor.py
-@@ -0,0 +1,247 @@
-+# -*- coding: utf-8 -*-
-+# Alacarte Menu Editor - Simple fd.o Compliant Menu Editor
-+# Copyright (C) 2013 Red Hat, Inc.
-+#
-+# This library is free software; you can redistribute it and/or
-+# modify it under the terms of the GNU Library General Public
-+# License as published by the Free Software Foundation; either
-+# version 2 of the License, or (at your option) any later version.
-+#
-+# This library 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
-+# Library General Public License for more details.
-+#
-+# You should have received a copy of the GNU Library General Public
-+# License along with this library; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+
-+import gettext
-+import os
-+import gi
-+from gi.repository import GLib, Gtk
-+from cme import config, util
-+
-+_ = gettext.gettext
-+
-+EXTENSIONS = (".png", ".xpm", ".svg")
-+
-+def try_icon_name(filename):
-+ # Detect if the user picked an icon, and make
-+ # it into an icon name.
-+ if not filename.endswith(EXTENSIONS):
-+ return filename
-+
-+ filename = filename[:-4]
-+
-+ theme = Gtk.IconTheme.get_default()
-+ resolved_path = None
-+ for path in theme.get_search_path():
-+ if filename.startswith(path):
-+ resolved_path = filename[len(path):].lstrip(os.sep)
-+ break
-+
-+ if resolved_path is None:
-+ return filename
-+
-+ parts = resolved_path.split(os.sep)
-+ # icon-theme/size/category/icon
-+ if len(parts) != 4:
-+ return filename
-+
-+ return parts[3]
-+
-+def get_icon_string(image):
-+ filename = image.props.file
-+ if filename is not None:
-+ return try_icon_name(filename)
-+
-+ return image.props.icon_name
-+
-+def strip_extensions(icon):
-+ if icon.endswith(EXTENSIONS):
-+ return icon[:-4]
-+ else:
-+ return icon
-+
-+def set_icon_string(image, icon):
-+ if GLib.path_is_absolute(icon):
-+ image.props.file = icon
-+ else:
-+ image.props.icon_name = strip_extensions(icon)
-+
-+DESKTOP_GROUP = GLib.KEY_FILE_DESKTOP_GROUP
-+
-+# XXX - replace with a better UI eventually
-+class IconPicker(object):
-+ def __init__(self, dialog, button, image):
-+ self.dialog = dialog
-+ self.button = button
-+ self.button.connect('clicked', self.pick_icon)
-+ self.image = image
-+
-+ def pick_icon(self, button):
-+ chooser = Gtk.FileChooserDialog(title=_("Choose an icon"),
-+ parent=self.dialog,
-+ buttons=(Gtk.STOCK_CANCEL, Gtk.ResponseType.REJECT,
-+ Gtk.STOCK_OK, Gtk.ResponseType.ACCEPT))
-+ response = chooser.run()
-+ if response == Gtk.ResponseType.ACCEPT:
-+ self.image.props.file = chooser.get_filename()
-+ chooser.destroy()
-+
-+class ItemEditor(object):
-+ ui_file = None
-+
-+ def __init__(self, item_path, parent=None):
-+ self.builder = Gtk.Builder()
-+ self.builder.add_from_file(self.ui_file)
-+
-+ self.dialog = self.builder.get_object('editor')
-+ if parent:
-+ self.dialog.set_transient_for(parent)
-+ self.dialog.connect('response', self.on_response)
-+
-+ self.build_ui()
-+
-+ self.item_path = item_path
-+ self.load()
-+ self.resync_validity()
-+
-+ def build_ui(self):
-+ raise NotImplementedError()
-+
-+ def get_keyfile_edits(self):
-+ raise NotImplementedError()
-+
-+ def set_text(self, ctl, name):
-+ try:
-+ val = self.keyfile.get_string(DESKTOP_GROUP, name)
-+ except GLib.GError:
-+ pass
-+ else:
-+ self.builder.get_object(ctl).set_text(val)
-+
-+ def set_check(self, ctl, name):
-+ try:
-+ val = self.keyfile.get_boolean(DESKTOP_GROUP, name)
-+ except GLib.GError:
-+ pass
-+ else:
-+ self.builder.get_object(ctl).set_active(val)
-+
-+ def set_icon(self, ctl, name):
-+ try:
-+ val = self.keyfile.get_string(DESKTOP_GROUP, name)
-+ except GLib.GError:
-+ pass
-+ else:
-+ set_icon_string(self.builder.get_object(ctl), val)
-+
-+ def load(self):
-+ self.keyfile = GLib.KeyFile()
-+ try:
-+ self.keyfile.load_from_file(self.item_path, util.KEY_FILE_FLAGS)
-+ except GLib.GError:
-+ pass
-+
-+ def save(self):
-+ util.fillKeyFile(self.keyfile, self.get_keyfile_edits())
-+ contents, length = self.keyfile.to_data()
-+ need_exec = False
-+ if ".desktop" not in self.item_path and ".directory" not in self.item_path:
-+ need_exec = True
-+ self.item_path = os.path.join(self.item_path, (self.builder.get_object('name-entry').get_text() + ".desktop"))
-+ with open(self.item_path, 'w') as f:
-+ f.write(contents)
-+ if need_exec:
-+ os.system("chmod a+x " + self.item_path)
-+
-+
-+ def run(self):
-+ self.dialog.present()
-+
-+ def on_response(self, dialog, response):
-+ if response == Gtk.ResponseType.OK:
-+ self.save()
-+ self.dialog.destroy()
-+
-+class LauncherEditor(ItemEditor):
-+ ui_file = '/usr/lib/cinnamon-menu-editor/launcher-editor.ui'
-+
-+ def build_ui(self):
-+ self.icon_picker = IconPicker(self.dialog,
-+ self.builder.get_object('icon-button'),
-+ self.builder.get_object('icon-image'))
-+
-+ self.builder.get_object('exec-browse').connect('clicked', self.pick_exec)
-+
-+ self.builder.get_object('name-entry').connect('changed', self.resync_validity)
-+ self.builder.get_object('exec-entry').connect('changed', self.resync_validity)
-+
-+ def resync_validity(self, *args):
-+ name_text = self.builder.get_object('name-entry').get_text()
-+ exec_text = self.builder.get_object('exec-entry').get_text()
-+ valid = (name_text is not None and exec_text is not None)
-+ self.builder.get_object('ok').set_sensitive(valid)
-+
-+ def load(self):
-+ super(LauncherEditor, self).load()
-+ self.set_text('name-entry', "Name")
-+ self.set_text('exec-entry', "Exec")
-+ self.set_text('comment-entry', "Comment")
-+ self.set_check('terminal-check', "Terminal")
-+ self.set_icon('icon-image', "Icon")
-+
-+ def get_keyfile_edits(self):
-+ return dict(Name=self.builder.get_object('name-entry').get_text(),
-+ Exec=self.builder.get_object('exec-entry').get_text(),
-+ Comment=self.builder.get_object('comment-entry').get_text(),
-+ Terminal=self.builder.get_object('terminal-check').get_active(),
-+ Icon=get_icon_string(self.builder.get_object('icon-image')),
-+ Type="Application")
-+
-+ def pick_exec(self, button):
-+ chooser = Gtk.FileChooserDialog(title=_("Choose a command"),
-+ parent=self.dialog,
-+ buttons=(Gtk.STOCK_CANCEL, Gtk.ResponseType.REJECT,
-+ Gtk.STOCK_OK, Gtk.ResponseType.ACCEPT))
-+ response = chooser.run()
-+ if response == Gtk.ResponseType.ACCEPT:
-+ self.builder.get_object('exec-entry').set_text(chooser.get_filename())
-+ chooser.destroy()
-+
-+class DirectoryEditor(ItemEditor):
-+ ui_file = '/usr/lib/cinnamon-menu-editor/directory-editor.ui'
-+
-+ def build_ui(self):
-+ self.icon_picker = IconPicker(self.dialog,
-+ self.builder.get_object('icon-button'),
-+ self.builder.get_object('icon-image'))
-+
-+ self.builder.get_object('name-entry').connect('changed', self.resync_validity)
-+
-+ def resync_validity(self, *args):
-+ name_text = self.builder.get_object('name-entry').get_text()
-+ valid = (name_text is not None)
-+ self.builder.get_object('ok').set_sensitive(valid)
-+
-+ def load(self):
-+ super(DirectoryEditor, self).load()
-+ self.set_text('name-entry', "Name")
-+ self.set_text('comment-entry', "Comment")
-+ self.set_icon('icon-image', "Icon")
-+
-+ def get_keyfile_edits(self):
-+ return dict(Name=self.builder.get_object('name-entry').get_text(),
-+ Comment=self.builder.get_object('comment-entry').get_text(),
-+ Icon=get_icon_string(self.builder.get_object('icon-image')),
-+ Type="Directory")
-+
-+def DesktopLauncherCreator(path):
-+ Gtk.Window.set_default_icon_name('alacarte')
-+ editor = LauncherEditor(path, None)
-+ editor.dialog.connect('destroy', Gtk.main_quit)
-+ editor.dialog.show_all()
-+ Gtk.main()
-+
-diff --git a/files/usr/lib/cinnamon-menu-editor/cme/MainWindow.py b/files/usr/lib/cinnamon-menu-editor/cme/MainWindow.py
-index 33106a9..735d420 100644
---- a/files/usr/lib/cinnamon-menu-editor/cme/MainWindow.py
-+++ b/files/usr/lib/cinnamon-menu-editor/cme/MainWindow.py
-@@ -22,6 +22,7 @@ import cgi
- import os
- import gettext
- import subprocess
-+import shutil
-
- from cme import config
- gettext.bindtextdomain(config.GETTEXT_PACKAGE, config.localedir)
-@@ -29,6 +30,7 @@ gettext.textdomain(config.GETTEXT_PACKAGE)
-
- _ = gettext.gettext
- from cme.MenuEditor import MenuEditor
-+from cme.ItemEditor import LauncherEditor, DirectoryEditor
- from cme import util
-
- class MainWindow(object):
-@@ -58,6 +60,7 @@ class MainWindow(object):
- self.cut_copy_buffer = None
- self.file_id = None
- self.last_tree = None
-+ self.main_window = self.tree.get_object('mainwindow')
-
- def run(self):
- self.loadMenus()
-@@ -261,8 +264,8 @@ class MainWindow(object):
- else:
- parent = menus[iter][3]
- file_path = os.path.join(util.getUserDirectoryPath(), util.getUniqueFileId('alacarte-made', '.directory'))
-- process = subprocess.Popen(['gnome-desktop-item-edit', file_path], env=os.environ)
-- GObject.timeout_add(100, self.waitForNewMenuProcess, process, parent.get_menu_id(), file_path)
-+ editor = DirectoryEditor(file_path, self.main_window)
-+ editor.run()
-
- def on_new_item_button_clicked(self, button):
- menu_tree = self.tree.get_object('menu_tree')
-@@ -274,8 +277,8 @@ class MainWindow(object):
- else:
- parent = menus[iter][3]
- file_path = os.path.join(util.getUserItemPath(), util.getUniqueFileId('alacarte-made', '.desktop'))
-- process = subprocess.Popen(['gnome-desktop-item-edit', file_path], env=os.environ)
-- GObject.timeout_add(100, self.waitForNewItemProcess, process, parent.get_menu_id(), file_path)
-+ editor = LauncherEditor(file_path, self.main_window)
-+ editor.run()
-
- def on_edit_delete_activate(self, menu):
- item_tree = self.tree.get_object('item_tree')
-@@ -302,18 +305,17 @@ class MainWindow(object):
- if isinstance(item, GMenu.TreeEntry):
- file_path = os.path.join(util.getUserItemPath(), item.get_desktop_file_id())
- file_type = 'Item'
-+ Editor = LauncherEditor
- elif isinstance(item, GMenu.TreeDirectory):
- file_path = os.path.join(util.getUserDirectoryPath(), os.path.split(item.get_desktop_file_path())[1])
- file_type = 'Menu'
-+ Editor = DirectoryEditor
-
- if not os.path.isfile(file_path):
-- data = open(item.get_desktop_file_path()).read()
-- open(file_path, 'w').write(data)
-+ shutil.copy(item.get_desktop_file_path(), file_path)
-
-- if file_path not in self.edit_pool:
-- self.edit_pool.append(file_path)
-- process = subprocess.Popen(['gnome-desktop-item-edit', file_path], env=os.environ)
-- GObject.timeout_add(100, self.waitForEditProcess, process, file_path)
-+ editor = Editor(file_path, self.main_window)
-+ editor.run()
-
- def on_edit_cut_activate(self, menu):
- item_tree = self.tree.get_object('item_tree')
-diff --git a/files/usr/lib/cinnamon-menu-editor/cme/util.py b/files/usr/lib/cinnamon-menu-editor/cme/util.py
-index 237f03b..459c222 100644
---- a/files/usr/lib/cinnamon-menu-editor/cme/util.py
-+++ b/files/usr/lib/cinnamon-menu-editor/cme/util.py
-@@ -32,10 +32,10 @@ def fillKeyFile(keyfile, items):
-
- if isinstance(item, bool):
- keyfile.set_boolean(DESKTOP_GROUP, key, item)
-- elif isinstance(item, Sequence):
-- keyfile.set_string_list(DESKTOP_GROUP, key, item)
- elif isinstance(item, basestring):
- keyfile.set_string(DESKTOP_GROUP, key, item)
-+ elif isinstance(item, Sequence):
-+ keyfile.set_string_list(DESKTOP_GROUP, key, item)
-
- def getNameFromKeyFile(keyfile):
- return keyfile.get_string(DESKTOP_GROUP, "Name")
-diff --git a/files/usr/lib/cinnamon-menu-editor/directory-editor.ui b/files/usr/lib/cinnamon-menu-editor/directory-editor.ui
-new file mode 100644
-index 0000000..9228c49
---- /dev/null
-+++ b/files/usr/lib/cinnamon-menu-editor/directory-editor.ui
-@@ -0,0 +1,178 @@
-+<?xml version="1.0" encoding="UTF-8"?>
-+<interface>
-+ <!-- interface-requires gtk+ 3.0 -->
-+ <object class="GtkDialog" id="editor">
-+ <property name="can_focus">False</property>
-+ <property name="border_width">4</property>
-+ <property name="title" translatable="yes">Directory Properties</property>
-+ <property name="modal">True</property>
-+ <property name="type_hint">dialog</property>
-+ <child internal-child="vbox">
-+ <object class="GtkBox" id="dialog-box">
-+ <property name="can_focus">False</property>
-+ <property name="orientation">vertical</property>
-+ <property name="spacing">4</property>
-+ <child internal-child="action_area">
-+ <object class="GtkButtonBox" id="dialog-action_area">
-+ <property name="can_focus">False</property>
-+ <property name="layout_style">end</property>
-+ <child>
-+ <object class="GtkButton" id="cancel">
-+ <property name="label">gtk-cancel</property>
-+ <property name="visible">True</property>
-+ <property name="can_focus">True</property>
-+ <property name="receives_default">True</property>
-+ <property name="use_stock">True</property>
-+ </object>
-+ <packing>
-+ <property name="expand">False</property>
-+ <property name="fill">True</property>
-+ <property name="position">0</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <object class="GtkButton" id="ok">
-+ <property name="label">gtk-ok</property>
-+ <property name="visible">True</property>
-+ <property name="can_focus">True</property>
-+ <property name="receives_default">True</property>
-+ <property name="use_stock">True</property>
-+ </object>
-+ <packing>
-+ <property name="expand">False</property>
-+ <property name="fill">True</property>
-+ <property name="position">1</property>
-+ </packing>
-+ </child>
-+ </object>
-+ <packing>
-+ <property name="expand">False</property>
-+ <property name="fill">True</property>
-+ <property name="pack_type">end</property>
-+ <property name="position">0</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <object class="GtkBox" id="hbox">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="spacing">10</property>
-+ <child>
-+ <object class="GtkAlignment" id="alignment1">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="xalign">1</property>
-+ <property name="yalign">0</property>
-+ <property name="yscale">0</property>
-+ <child>
-+ <object class="GtkButton" id="icon-button">
-+ <property name="visible">True</property>
-+ <property name="can_focus">True</property>
-+ <property name="receives_default">True</property>
-+ <child>
-+ <object class="GtkImage" id="icon-image">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="pixel_size">64</property>
-+ <property name="icon_name">folder</property>
-+ </object>
-+ </child>
-+ </object>
-+ </child>
-+ </object>
-+ <packing>
-+ <property name="expand">False</property>
-+ <property name="fill">True</property>
-+ <property name="position">0</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <object class="GtkGrid" id="grid1">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="row_spacing">6</property>
-+ <property name="column_spacing">10</property>
-+ <child>
-+ <object class="GtkLabel" id="label2">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="xalign">1</property>
-+ <property name="label" translatable="yes">Name:</property>
-+ <attributes>
-+ <attribute name="weight" value="bold"/>
-+ </attributes>
-+ </object>
-+ <packing>
-+ <property name="left_attach">0</property>
-+ <property name="top_attach">0</property>
-+ <property name="width">1</property>
-+ <property name="height">1</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <object class="GtkLabel" id="label4">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="xalign">1</property>
-+ <property name="label" translatable="yes">Comment:</property>
-+ <attributes>
-+ <attribute name="weight" value="bold"/>
-+ </attributes>
-+ </object>
-+ <packing>
-+ <property name="left_attach">0</property>
-+ <property name="top_attach">1</property>
-+ <property name="width">1</property>
-+ <property name="height">1</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <object class="GtkEntry" id="name-entry">
-+ <property name="visible">True</property>
-+ <property name="can_focus">True</property>
-+ <property name="has_focus">True</property>
-+ <property name="invisible_char">●</property>
-+ </object>
-+ <packing>
-+ <property name="left_attach">1</property>
-+ <property name="top_attach">0</property>
-+ <property name="width">1</property>
-+ <property name="height">1</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <object class="GtkEntry" id="comment-entry">
-+ <property name="visible">True</property>
-+ <property name="can_focus">True</property>
-+ <property name="invisible_char">●</property>
-+ </object>
-+ <packing>
-+ <property name="left_attach">1</property>
-+ <property name="top_attach">1</property>
-+ <property name="width">1</property>
-+ <property name="height">1</property>
-+ </packing>
-+ </child>
-+ </object>
-+ <packing>
-+ <property name="expand">True</property>
-+ <property name="fill">True</property>
-+ <property name="pack_type">end</property>
-+ <property name="position">1</property>
-+ </packing>
-+ </child>
-+ </object>
-+ <packing>
-+ <property name="expand">True</property>
-+ <property name="fill">True</property>
-+ <property name="position">1</property>
-+ </packing>
-+ </child>
-+ </object>
-+ </child>
-+ <action-widgets>
-+ <action-widget response="-6">cancel</action-widget>
-+ <action-widget response="-5">ok</action-widget>
-+ </action-widgets>
-+ </object>
-+</interface>
-\ No newline at end of file
-diff --git a/files/usr/lib/cinnamon-menu-editor/launcher-editor.ui b/files/usr/lib/cinnamon-menu-editor/launcher-editor.ui
-new file mode 100644
-index 0000000..a643c63
---- /dev/null
-+++ b/files/usr/lib/cinnamon-menu-editor/launcher-editor.ui
-@@ -0,0 +1,252 @@
-+<?xml version="1.0" encoding="UTF-8"?>
-+<interface>
-+ <!-- interface-requires gtk+ 3.0 -->
-+ <object class="GtkDialog" id="editor">
-+ <property name="can_focus">False</property>
-+ <property name="border_width">4</property>
-+ <property name="title" translatable="yes">Launcher Properties</property>
-+ <property name="modal">True</property>
-+ <property name="type_hint">dialog</property>
-+ <child internal-child="vbox">
-+ <object class="GtkBox" id="dialog-box">
-+ <property name="can_focus">False</property>
-+ <property name="orientation">vertical</property>
-+ <property name="spacing">4</property>
-+ <child internal-child="action_area">
-+ <object class="GtkButtonBox" id="dialog-action_area">
-+ <property name="can_focus">False</property>
-+ <property name="layout_style">end</property>
-+ <child>
-+ <object class="GtkButton" id="cancel">
-+ <property name="label">gtk-cancel</property>
-+ <property name="visible">True</property>
-+ <property name="can_focus">True</property>
-+ <property name="receives_default">True</property>
-+ <property name="use_stock">True</property>
-+ </object>
-+ <packing>
-+ <property name="expand">False</property>
-+ <property name="fill">True</property>
-+ <property name="position">0</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <object class="GtkButton" id="ok">
-+ <property name="label">gtk-ok</property>
-+ <property name="visible">True</property>
-+ <property name="can_focus">True</property>
-+ <property name="receives_default">True</property>
-+ <property name="use_stock">True</property>
-+ </object>
-+ <packing>
-+ <property name="expand">False</property>
-+ <property name="fill">True</property>
-+ <property name="position">1</property>
-+ </packing>
-+ </child>
-+ </object>
-+ <packing>
-+ <property name="expand">False</property>
-+ <property name="fill">True</property>
-+ <property name="pack_type">end</property>
-+ <property name="position">0</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <object class="GtkBox" id="hbox">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="spacing">10</property>
-+ <child>
-+ <object class="GtkAlignment" id="alignment1">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="xalign">1</property>
-+ <property name="yalign">0</property>
-+ <property name="yscale">0</property>
-+ <child>
-+ <object class="GtkButton" id="icon-button">
-+ <property name="visible">True</property>
-+ <property name="can_focus">True</property>
-+ <property name="receives_default">True</property>
-+ <child>
-+ <object class="GtkImage" id="icon-image">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="pixel_size">64</property>
-+ <property name="icon_name">gnome-panel-launcher</property>
-+ </object>
-+ </child>
-+ </object>
-+ </child>
-+ </object>
-+ <packing>
-+ <property name="expand">False</property>
-+ <property name="fill">True</property>
-+ <property name="position">0</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <object class="GtkGrid" id="grid1">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="row_spacing">6</property>
-+ <property name="column_spacing">10</property>
-+ <child>
-+ <object class="GtkLabel" id="label2">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="xalign">1</property>
-+ <property name="label" translatable="yes">Name:</property>
-+ <attributes>
-+ <attribute name="weight" value="bold"/>
-+ </attributes>
-+ </object>
-+ <packing>
-+ <property name="left_attach">0</property>
-+ <property name="top_attach">0</property>
-+ <property name="width">1</property>
-+ <property name="height">1</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <object class="GtkLabel" id="label3">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="xalign">1</property>
-+ <property name="label" translatable="yes">Command:</property>
-+ <attributes>
-+ <attribute name="weight" value="bold"/>
-+ </attributes>
-+ </object>
-+ <packing>
-+ <property name="left_attach">0</property>
-+ <property name="top_attach">1</property>
-+ <property name="width">1</property>
-+ <property name="height">1</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <object class="GtkLabel" id="label4">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="xalign">1</property>
-+ <property name="label" translatable="yes">Comment:</property>
-+ <attributes>
-+ <attribute name="weight" value="bold"/>
-+ </attributes>
-+ </object>
-+ <packing>
-+ <property name="left_attach">0</property>
-+ <property name="top_attach">2</property>
-+ <property name="width">1</property>
-+ <property name="height">1</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <object class="GtkEntry" id="name-entry">
-+ <property name="visible">True</property>
-+ <property name="can_focus">True</property>
-+ <property name="has_focus">True</property>
-+ <property name="invisible_char">●</property>
-+ </object>
-+ <packing>
-+ <property name="left_attach">1</property>
-+ <property name="top_attach">0</property>
-+ <property name="width">1</property>
-+ <property name="height">1</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <object class="GtkBox" id="command-box">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="spacing">10</property>
-+ <child>
-+ <object class="GtkEntry" id="exec-entry">
-+ <property name="visible">True</property>
-+ <property name="can_focus">True</property>
-+ <property name="invisible_char">●</property>
-+ </object>
-+ <packing>
-+ <property name="expand">True</property>
-+ <property name="fill">True</property>
-+ <property name="position">0</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <object class="GtkButton" id="exec-browse">
-+ <property name="label" translatable="yes">Browse</property>
-+ <property name="visible">True</property>
-+ <property name="can_focus">True</property>
-+ <property name="receives_default">True</property>
-+ </object>
-+ <packing>
-+ <property name="expand">False</property>
-+ <property name="fill">True</property>
-+ <property name="position">1</property>
-+ </packing>
-+ </child>
-+ </object>
-+ <packing>
-+ <property name="left_attach">1</property>
-+ <property name="top_attach">1</property>
-+ <property name="width">1</property>
-+ <property name="height">1</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <object class="GtkEntry" id="comment-entry">
-+ <property name="visible">True</property>
-+ <property name="can_focus">True</property>
-+ <property name="invisible_char">●</property>
-+ </object>
-+ <packing>
-+ <property name="left_attach">1</property>
-+ <property name="top_attach">2</property>
-+ <property name="width">1</property>
-+ <property name="height">1</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <object class="GtkCheckButton" id="terminal-check">
-+ <property name="label" translatable="yes">Launch in Terminal?</property>
-+ <property name="visible">True</property>
-+ <property name="can_focus">True</property>
-+ <property name="receives_default">False</property>
-+ <property name="xalign">0</property>
-+ <property name="draw_indicator">True</property>
-+ </object>
-+ <packing>
-+ <property name="left_attach">1</property>
-+ <property name="top_attach">3</property>
-+ <property name="width">1</property>
-+ <property name="height">1</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <placeholder/>
-+ </child>
-+ </object>
-+ <packing>
-+ <property name="expand">True</property>
-+ <property name="fill">True</property>
-+ <property name="pack_type">end</property>
-+ <property name="position">1</property>
-+ </packing>
-+ </child>
-+ </object>
-+ <packing>
-+ <property name="expand">True</property>
-+ <property name="fill">True</property>
-+ <property name="position">1</property>
-+ </packing>
-+ </child>
-+ </object>
-+ </child>
-+ <action-widgets>
-+ <action-widget response="-6">cancel</action-widget>
-+ <action-widget response="-5">ok</action-widget>
-+ </action-widgets>
-+ </object>
-+</interface>
-\ No newline at end of file
diff --git a/gnome-extra/cinnamon/files/remove_GC.patch b/gnome-extra/cinnamon/files/remove_GC.patch
deleted file mode 100644
index 7bd8e45a6a9a..000000000000
--- a/gnome-extra/cinnamon/files/remove_GC.patch
+++ /dev/null
@@ -1,124 +0,0 @@
---- a/src/cinnamon-global.c
-+++ b/src/cinnamon-global.c
-@@ -1399,35 +1399,6 @@ cinnamon_global_reexec_self (CinnamonGlo
- g_ptr_array_free (arr, TRUE);
- }
-
--/**
-- * cinnamon_global_gc:
-- * @global: A #CinnamonGlobal
-- *
-- * Start a garbage collection process. For more information, see
-- * https://developer.mozilla.org/En/JS_GC
-- */
--void
--cinnamon_global_gc (CinnamonGlobal *global)
--{
-- JSContext *context = gjs_context_get_native_context (global->js_context);
--
-- JS_GC (context);
--}
--
--/**
-- * cinnamon_global_maybe_gc:
-- * @global: A #CinnamonGlobal
-- *
-- * Start a garbage collection process when it would free up enough memory
-- * to be worth the amount of time it would take
-- * https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JS_MaybeGC
-- */
--void
--cinnamon_global_maybe_gc (CinnamonGlobal *global)
--{
-- gjs_context_maybe_gc (global->js_context);
--}
--
- static void
- cinnamon_global_on_gc (GjsContext *context,
- CinnamonGlobal *global)
-@@ -1768,13 +1768,6 @@ run_leisure_functions (gpointer data)
- if (global->work_count > 0)
- return FALSE;
-
-- /* Previously we called gjs_maybe_gc(). However, it simply doesn't
-- * trigger often enough. Garbage collection is very fast here, so
-- * let's just aggressively GC. This will help avoid both heap
-- * fragmentation, and the GC kicking in when we don't want it to.
-- */
-- gjs_context_gc (global->js_context);
--
- /* No leisure closures, so we are done */
- if (global->leisure_closures == NULL)
- return FALSE;
---- a/src/cinnamon-global.h
-+++ b/src/cinnamon-global.h
-@@ -88,10 +88,6 @@ void cinnamon_global_set_pointer
- int y);
-
-
--/* JavaScript utilities */
--void cinnamon_global_gc (CinnamonGlobal *global);
--void cinnamon_global_maybe_gc (CinnamonGlobal *global);
--
- typedef struct {
- guint glibc_uordblks;
-
-
-
---- a/js/perf/core.js
-+++ b/js/perf/core.js
-@@ -1,5 +1,7 @@
- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
-
-+const System = imports.system;
-+
- const Main = imports.ui.main;
- const Scripting = imports.ui.scripting;
-
-@@ -99,7 +101,7 @@ function run() {
- Main.overview.hide();
- yield Scripting.waitLeisure();
-
-- global.gc();
-+ System.gc();
- yield Scripting.sleep(1000);
- Scripting.collectStatistics();
- Scripting.scriptEvent('afterShowHide');
---- a/js/ui/lookingGlass.js
-+++ b/js/ui/lookingGlass.js
-@@ -11,6 +11,7 @@ const St = imports.gi.St;
- const Cinnamon = imports.gi.Cinnamon;
- const Signals = imports.signals;
- const Lang = imports.lang;
-+const System = imports.system;
-
- const History = imports.misc.history;
- const Extension = imports.ui.extension;
-@@ -680,7 +681,7 @@ Memory.prototype = {
-
- this._gcbutton = new St.Button({ label: 'Full GC',
- style_class: 'lg-obj-inspector-button' });
-- this._gcbutton.connect('clicked', Lang.bind(this, function () { global.gc(); this._renderText(); }));
-+ this._gcbutton.connect('clicked', Lang.bind(this, function () { System.gc(); this._renderText(); }));
- this.actor.add(this._gcbutton, { x_align: St.Align.START,
- x_fill: false });
-
---- a/js/ui/lookingGlassDBus.js
-+++ b/js/ui/lookingGlassDBus.js
-@@ -1,5 +1,7 @@
- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
-
-+const System = imports.system;
-+
- const Gio = imports.gi.Gio;
- const Main = imports.ui.main;
- const Extension = imports.ui.extension;
-@@ -99,7 +101,7 @@ CinnamonLookingGlass.prototype = {
- },
-
- FullGc: function() {
-- global.gc();
-+ System.gc();
- },
-
- Inspect: function(path) {
diff --git a/gnome-extra/cinnamon/files/screensaver.patch b/gnome-extra/cinnamon/files/screensaver.patch
deleted file mode 100644
index 1ffb916b9786..000000000000
--- a/gnome-extra/cinnamon/files/screensaver.patch
+++ /dev/null
@@ -1,36 +0,0 @@
---- a/files/usr/lib/cinnamon-screensaver-lock-dialog/cinnamon-screensaver-lock-dialog.py
-+++ b/files/usr/lib/cinnamon-screensaver-lock-dialog/cinnamon-screensaver-lock-dialog.py
-@@ -57,9 +57,9 @@ class MainWindow:
- def lock_screen(self, data):
- message = self.entry.get_text()
- if (message != ""):
-- os.system("cinnamon-screensaver-command --lock --away-message \"%s\" &" % self.entry.get_text())
-+ os.system("gnome-screensaver-command --lock --away-message \"%s\" &" % self.entry.get_text())
- else:
-- os.system("cinnamon-screensaver-command --lock &")
-+ os.system("gnome-screensaver-command --lock &")
- gtk.main_quit()
-
- if __name__ == "__main__":
---- a/files/usr/lib/cinnamon-settings/modules/cs_screensaver.py
-+++ b/files/usr/lib/cinnamon-settings/modules/cs_screensaver.py
-@@ -5,15 +5,15 @@ from SettingsWidgets import *
-
- class Module:
- def __init__(self, content_box):
-- keywords = _("screensaver, brightness, lock, password, away, message")
-+ keywords = _("screensaver, brightness, lock, password, user, switching")
- advanced = False
- sidePage = SidePage(_("Screensaver & Lock Settings"), "screensaver.svg", keywords, advanced, content_box)
- self.sidePage = sidePage
- self.name = "screensaver"
- self.category = "prefs"
-- if os.path.exists("/usr/bin/cinnamon-screensaver-command"):
-- sidePage.add_widget(GSettingsCheckButton(_("Ask for an away message when locking the screen from the menu"), "org.cinnamon.screensaver", "ask-for-away-message", None))
-- sidePage.add_widget(GSettingsEntry(_("Default away message"), "org.cinnamon.screensaver", "default-message", None))
-+ if os.path.exists("/usr/bin/gnome-screensaver-command"):
-+ self.sidePage.add_widget(GSettingsCheckButton(_("Ask for password when unlocking"), "org.gnome.desktop.screensaver", "lock-enabled", None))
-+ self.sidePage.add_widget(GSettingsCheckButton(_("Enable user switching"), "org.gnome.desktop.screensaver", "user-switch-enabled", None))
-
- widget = content_box.c_manager.get_c_widget("screen")
- if widget is not None: