summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /gnome-extra/cinnamon
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'gnome-extra/cinnamon')
-rw-r--r--gnome-extra/cinnamon/Manifest3
-rw-r--r--gnome-extra/cinnamon/cinnamon-2.4.7.ebuild252
-rw-r--r--gnome-extra/cinnamon/cinnamon-2.6.8.ebuild256
-rw-r--r--gnome-extra/cinnamon/cinnamon-2.6.9.ebuild258
-rw-r--r--gnome-extra/cinnamon/files/cinnamon-2.2.6-automagic-gnome-bluetooth.patch44
-rw-r--r--gnome-extra/cinnamon/files/cinnamon-2.4.5-background.patch26
-rw-r--r--gnome-extra/cinnamon/files/cinnamon-2.4.5-gnome-3.14.patch43
-rw-r--r--gnome-extra/cinnamon/files/cinnamon-2.4.5-optional-networkmanager.patch89
-rw-r--r--gnome-extra/cinnamon/files/cinnamon-2.4.5-set-wheel.patch70
-rw-r--r--gnome-extra/cinnamon/files/cinnamon-2.6.7-optional-networkmanager.patch88
-rw-r--r--gnome-extra/cinnamon/files/cinnamon-2.6.7-set-wheel.patch73
-rw-r--r--gnome-extra/cinnamon/files/cinnamon-screensaver.desktop15
-rw-r--r--gnome-extra/cinnamon/files/cinnamon2d-screensaver.desktop15
-rw-r--r--gnome-extra/cinnamon/files/polkit-cinnamon-authentication-agent-1.desktop9
-rw-r--r--gnome-extra/cinnamon/metadata.xml8
15 files changed, 1249 insertions, 0 deletions
diff --git a/gnome-extra/cinnamon/Manifest b/gnome-extra/cinnamon/Manifest
new file mode 100644
index 000000000000..644c5d4868c3
--- /dev/null
+++ b/gnome-extra/cinnamon/Manifest
@@ -0,0 +1,3 @@
+DIST cinnamon-2.4.7.tar.gz 2812013 SHA256 d971c893d4617f482bad1d79b18cf14ccb3a2298f2381f1a64f1d72ee59cb40e SHA512 0450657804d5bd290177577a7059b494d7ef88bbfbec7b5a480cdc29894dd92d6f4e404d789009abcaad4c6adf279be991c5f8c3d300f70fec81acd57fb8700c WHIRLPOOL 43f31b2b83009321e3d7cd17a0570a2d83bed7fe0cef54966ff32c7075cf6e9181f96c5fd1725f540bb1cce00a6944f57b65bb77361995e527c85c74884e6a0d
+DIST cinnamon-2.6.8.tar.gz 2967957 SHA256 fe2e0e0a128711875a24c3511eff78e48ecd131db8f758781950784270af15a6 SHA512 687048660dbc7797dfa3fb6aeb6f58c334d1ae4c384d600031e74db661ce5edc8109dec5dfc7b643e0d52211e41723e22da725f7866a99949f0b3e07e0716c9e WHIRLPOOL 2dd103e0db3e80fddc94850936942d6ef13d3603f1fde4ad69fb554bb79f39bd7dbcb08bfd5c2f156f9da2802a43ee2c7c6169b0a68b6e8e269ed7774bb203dc
+DIST cinnamon-2.6.9.tar.gz 2968234 SHA256 9bed52d586480b888a414af6e306c2d8d6cf536aeb49e65304b8f3e2e422e756 SHA512 372492f9a9833ae3b7ba2b22d6c4cec8bb8c0a02282d1efe595e8a822a7064d7129b2a56f9df7dd4ec8f329bee3db22ffb41672752f5daa6811973d42cae150d WHIRLPOOL 83e04e781ac175f4ce885c84554d70d8322a613fac30735af3efb57e43afb8ffb757771cc153b4b1ae8070a219972d76f707ce2fe40b7714aee6854e9a0bdd0d
diff --git a/gnome-extra/cinnamon/cinnamon-2.4.7.ebuild b/gnome-extra/cinnamon/cinnamon-2.4.7.ebuild
new file mode 100644
index 000000000000..6aff604ce3a3
--- /dev/null
+++ b/gnome-extra/cinnamon/cinnamon-2.4.7.ebuild
@@ -0,0 +1,252 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="xml"
+
+inherit autotools eutils flag-o-matic gnome2 multilib pax-utils python-single-r1
+
+DESCRIPTION="A fork of GNOME Shell with layout similar to GNOME 2"
+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"
+
+LICENSE="GPL-2+"
+SLOT="0"
+# bluetooth support dropped due bug #511648
+IUSE="+nls +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[dbus]
+ >=dev-libs/gobject-introspection-0.10.1
+ >=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-2.4:0=[introspection]
+ gnome-extra/cinnamon-menus[introspection]
+ >=gnome-extra/cjs-2.4
+ >=media-libs/clutter-1.7.5:1.0[introspection]
+ media-libs/cogl:1.0=[introspection]
+ >=gnome-base/gsettings-desktop-schemas-2.91.91
+ media-libs/gstreamer:1.0
+ media-libs/gst-plugins-base:1.0
+ media-sound/pulseaudio:0=[glib]
+ net-libs/libsoup:2.4[introspection]
+ >=sys-auth/polkit-0.100[introspection]
+ x11-libs/gdk-pixbuf:2[introspection]
+ >=x11-libs/gtk+-3.0.0:3[introspection]
+ x11-libs/pango[introspection]
+ >=x11-libs/startup-notification-0.11
+ x11-libs/libX11
+ >=x11-libs/libXfixes-5.0
+ >=x11-wm/muffin-2.4[introspection]
+ ${PYTHON_DEPS}
+ 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.*
+# 3. gnome-session is needed for gnome-session-quit
+# 4. Control shell settings
+# 5. accountsservice is needed for GdmUserManager (0.6.14 needed for fast
+# user switching with gdm-3.1.x)
+# 6. caribou needed for on-screen keyboard
+# 7. xdg-utils needed for xdg-open, used by extension tool
+# 8. gconf-python, imaging, lxml needed for cinnamon-settings
+# 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. polkit-gnome - explicitly autostarted by us
+# TODO(lxnay): fix error: libgnome-desktop/gnome-rr-labeler.h: No such file or directory
+RDEPEND="${COMMON_DEPEND}
+ >=gnome-base/dconf-0.4.1
+ >=gnome-base/libgnomekbd-2.91.4[introspection]
+ || ( sys-power/upower[introspection] sys-power/upower-pm-utils[introspection] )
+
+ >=gnome-extra/cinnamon-session-2.4
+ >=gnome-extra/cinnamon-settings-daemon-2.4
+
+ >=sys-apps/accountsservice-0.6.14[introspection]
+
+ >=app-accessibility/caribou-0.3
+
+ x11-misc/xdg-utils
+
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ dev-python/gconf-python:2[${PYTHON_USEDEP}]
+ 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
+
+ >=gnome-extra/nemo-2.4
+ >=gnome-extra/cinnamon-control-center-2.4
+ >=gnome-extra/cinnamon-screensaver-2.4
+
+ gnome-extra/polkit-gnome
+
+ networkmanager? (
+ gnome-extra/nm-applet
+ net-misc/mobile-broadband-provider-info
+ sys-libs/timezone-data )
+ nls? ( >=gnome-extra/cinnamon-translations-2.4 )
+"
+#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
+ gnome-base/gnome-common
+ !!=dev-lang/spidermonkey-1.8.2*
+"
+# libmozjs.so is picked up from /usr/lib while compiling, so block at build-time
+# https://bugs.gentoo.org/show_bug.cgi?id=360413
+
+S="${WORKDIR}/Cinnamon-${PV}"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ # Fix backgrounds path as cinnamon doesn't provide them
+ # https://github.com/linuxmint/Cinnamon/issues/3575
+ epatch "${FILESDIR}"/${PN}-2.4.5-background.patch
+
+ # Fix automagic gnome-bluetooth dep, bug #398145
+ epatch "${FILESDIR}"/${PN}-2.2.6-automagic-gnome-bluetooth.patch
+
+ # Optional NetworkManager, bug #488684
+ epatch "${FILESDIR}"/${PN}-2.4.5-optional-networkmanager.patch
+
+ # Use wheel group instead of sudo (from Fedora/Arch)
+ # https://github.com/linuxmint/Cinnamon/issues/3576
+ epatch "${FILESDIR}"/${PN}-2.4.5-set-wheel.patch
+
+ # Fix GNOME 3.14 support (from Fedora/Arch)
+ # https://github.com/linuxmint/Cinnamon/issues/3577
+ epatch "${FILESDIR}"/${PN}-2.4.5-gnome-3.14.patch
+
+ # Use pkexec instead of gksu (from Arch)
+ # https://github.com/linuxmint/Cinnamon/issues/3565
+ sed -i 's/gksu/pkexec/' files/usr/bin/cinnamon-settings-users || die
+
+ # Add polkit agent to required components (from Fedora/Arch), bug #523958
+ # https://github.com/linuxmint/Cinnamon/issues/3579
+ sed -i 's/RequiredComponents=\(.*\)$/RequiredComponents=\1polkit-gnome-authentication-agent-1;/' \
+ files/usr/share/cinnamon-session/sessions/cinnamon*.session || die
+
+ # 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/share/polkit-1/actions/org.cinnamon.settings-users.policy \
+ -i files/usr/lib/*/*.py \
+ -i files/usr/lib/*/*/*.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 networkmanager; then
+ rm -rv files/usr/share/cinnamon/applets/network@cinnamon.org || die
+ fi
+
+ epatch_user
+
+ python_fix_shebang .
+
+ eautoreconf
+ gnome2_src_prepare
+}
+
+src_configure() {
+ # https://bugs.gentoo.org/show_bug.cgi?id=536374
+ # https://github.com/linuxmint/Cinnamon/issues/3843
+ append-ldflags $(no-as-needed)
+
+ gnome2_src_configure \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ --disable-rpath \
+ --disable-jhbuild-wrapper-script \
+ $(use_enable networkmanager) \
+ --with-ca-certificates="${EPREFIX}/etc/ssl/certs/ca-certificates.crt" \
+ BROWSER_PLUGIN_DIR="${EPREFIX}/usr/$(get_libdir)/nsbrowser/plugins" \
+ --without-bluetooth
+}
+
+src_install() {
+ gnome2_src_install
+ python_optimize "${ED}"usr/$(get_libdir)/cinnamon-*
+
+ # Required for gnome-shell on hardened/PaX, bug #398941
+ pax-mark mr "${ED}usr/bin/cinnamon"
+
+ # Doesn't exist on Gentoo, causing this to be a dead symlink
+ rm -f "${ED}etc/xdg/menus/cinnamon-applications-merged" || die
+
+ # Ensure authentication-agent is started, bug #523958
+ # https://github.com/linuxmint/Cinnamon/issues/3579
+ insinto /etc/xdg/autostart/
+ doins "${FILESDIR}"/polkit-cinnamon-authentication-agent-1.desktop
+}
+
+pkg_postinst() {
+ gnome2_pkg_postinst
+
+ 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: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
+
+ if ! has_version ">=x11-base/xorg-server-1.11"; then
+ ewarn "If you use multiple screens, it is highly recommended that you"
+ ewarn "upgrade to >=x11-base/xorg-server-1.11 to be able to make use of"
+ ewarn "pointer barriers which will make it easier to use hot corners."
+ fi
+
+ if has_version "<x11-drivers/ati-drivers-12"; then
+ ewarn "Cinnamon has been reported to show graphical corruption under"
+ ewarn "x11-drivers/ati-drivers-11.*; you may want to switch to"
+ ewarn "open-source drivers."
+ fi
+
+ 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'."
+ if ! has_version "media-libs/mesa[gallium]"; then
+ ewarn "You will need to emerge media-libs/mesa with USE=gallium."
+ fi
+ fi
+}
diff --git a/gnome-extra/cinnamon/cinnamon-2.6.8.ebuild b/gnome-extra/cinnamon/cinnamon-2.6.8.ebuild
new file mode 100644
index 000000000000..5ac7b6b8cb43
--- /dev/null
+++ b/gnome-extra/cinnamon/cinnamon-2.6.8.ebuild
@@ -0,0 +1,256 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+PYTHON_REQ_USE="xml"
+
+inherit autotools eutils flag-o-matic gnome2 multilib pax-utils python-r1
+
+DESCRIPTION="A fork of GNOME Shell with layout similar to GNOME 2"
+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"
+
+LICENSE="GPL-2+"
+SLOT="0"
+# bluetooth support dropped due bug #511648
+IUSE="+nls +networkmanager" #+bluetooth
+# We need *both* python 2.7 and 3.x
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+ python_targets_python2_7
+ || ( python_targets_python3_3 python_targets_python3_4 )
+ "
+
+KEYWORDS="~amd64 ~x86"
+
+COMMON_DEPEND="
+ app-accessibility/at-spi2-atk:2
+ app-misc/ca-certificates
+ dev-libs/dbus-glib
+ >=dev-libs/glib-2.29.10:2[dbus]
+ >=dev-libs/gobject-introspection-0.10.1
+ >=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-2.4:0=[introspection]
+ gnome-extra/cinnamon-menus[introspection]
+ >=gnome-extra/cjs-2.4
+ >=media-libs/clutter-1.10:1.0[introspection]
+ media-libs/cogl:1.0=[introspection]
+ >=gnome-base/gsettings-desktop-schemas-2.91.91
+ media-libs/gstreamer:1.0
+ media-libs/gst-plugins-base:1.0
+ media-sound/pulseaudio:0=[glib]
+ net-libs/libsoup:2.4[introspection]
+ >=sys-auth/polkit-0.100[introspection]
+ x11-libs/gdk-pixbuf:2[introspection]
+ >=x11-libs/gtk+-3.9.12:3[introspection]
+ x11-libs/pango[introspection]
+ >=x11-libs/startup-notification-0.11
+ x11-libs/libX11
+ >=x11-libs/libXfixes-5.0
+ >=x11-wm/muffin-2.4[introspection]
+ ${PYTHON_DEPS}
+ 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.*
+# 3. gnome-session is needed for gnome-session-quit
+# 4. Control shell settings
+# 5. accountsservice is needed for GdmUserManager (0.6.14 needed for fast
+# user switching with gdm-3.1.x)
+# 6. caribou needed for on-screen keyboard
+# 7. xdg-utils needed for xdg-open, used by extension tool
+# 8. gconf-python, imaging, lxml needed for cinnamon-settings
+# 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. polkit-gnome - explicitly autostarted by us
+# TODO(lxnay): fix error: libgnome-desktop/gnome-rr-labeler.h: No such file or directory
+RDEPEND="${COMMON_DEPEND}
+ >=gnome-base/dconf-0.4.1
+ >=gnome-base/libgnomekbd-2.91.4[introspection]
+ || ( sys-power/upower[introspection] sys-power/upower-pm-utils[introspection] )
+
+ >=gnome-extra/cinnamon-session-2.4
+ >=gnome-extra/cinnamon-settings-daemon-2.4
+
+ >=sys-apps/accountsservice-0.6.14[introspection]
+
+ >=app-accessibility/caribou-0.3
+
+ x11-misc/xdg-utils
+
+ dev-python/dbus-python[python_targets_python2_7]
+ dev-python/gconf-python:2[python_targets_python2_7]
+ dev-python/lxml[python_targets_python2_7]
+ dev-python/pexpect[python_targets_python2_7]
+ dev-python/pycairo[python_targets_python2_7]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ dev-python/pyinotify[python_targets_python2_7]
+ dev-python/pypam[python_targets_python2_7]
+ virtual/python-imaging[python_targets_python2_7]
+
+ x11-themes/gnome-themes-standard[gtk]
+ x11-themes/gnome-icon-theme-symbolic
+
+ >=gnome-extra/nemo-2.4
+ >=gnome-extra/cinnamon-control-center-2.4
+ >=gnome-extra/cinnamon-screensaver-2.4
+
+ gnome-extra/polkit-gnome
+
+ networkmanager? (
+ gnome-extra/nm-applet
+ net-misc/mobile-broadband-provider-info
+ sys-libs/timezone-data )
+ nls? ( >=gnome-extra/cinnamon-translations-2.4 )
+"
+#bluetooth? ( net-wireless/cinnamon-bluetooth )
+
+DEPEND="${COMMON_DEPEND}
+ dev-python/polib[python_targets_python2_7]
+ >=sys-devel/gettext-0.17
+ virtual/pkgconfig
+ >=dev-util/intltool-0.40
+ gnome-base/gnome-common
+ !!=dev-lang/spidermonkey-1.8.2*
+"
+# libmozjs.so is picked up from /usr/lib while compiling, so block at build-time
+# https://bugs.gentoo.org/show_bug.cgi?id=360413
+
+S="${WORKDIR}/Cinnamon-${PV}"
+
+pkg_setup() {
+ python_setup
+}
+
+src_prepare() {
+ # Fix backgrounds path as cinnamon doesn't provide them
+ # https://github.com/linuxmint/Cinnamon/issues/3575
+ epatch "${FILESDIR}"/${PN}-2.4.5-background.patch
+
+ # Fix automagic gnome-bluetooth dep, bug #398145
+ epatch "${FILESDIR}"/${PN}-2.2.6-automagic-gnome-bluetooth.patch
+
+ # Optional NetworkManager, bug #488684
+ epatch "${FILESDIR}"/${PN}-2.6.7-optional-networkmanager.patch
+
+ # Use wheel group instead of sudo (from Fedora/Arch)
+ # https://github.com/linuxmint/Cinnamon/issues/3576
+ epatch "${FILESDIR}"/${PN}-2.6.7-set-wheel.patch
+
+ # Fix GNOME 3.14 support (from Fedora/Arch)
+ # https://github.com/linuxmint/Cinnamon/issues/3577
+ epatch "${FILESDIR}"/${PN}-2.4.5-gnome-3.14.patch
+
+ # Use pkexec instead of gksu (from Arch)
+ # https://github.com/linuxmint/Cinnamon/issues/3565
+ sed -i 's/gksu/pkexec/' files/usr/bin/cinnamon-settings-users || die
+
+ # Add polkit agent to required components (from Fedora/Arch), bug #523958
+ # https://github.com/linuxmint/Cinnamon/issues/3579
+ sed -i 's/RequiredComponents=\(.*\)$/RequiredComponents=\1polkit-gnome-authentication-agent-1;/' \
+ files/usr/share/cinnamon-session/sessions/cinnamon*.session || die
+
+ # 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/share/polkit-1/actions/org.cinnamon.settings-users.policy \
+ -i files/usr/lib/*/*.py \
+ -i files/usr/lib/*/*/*.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 networkmanager; then
+ rm -rv files/usr/share/cinnamon/applets/network@cinnamon.org || die
+ fi
+
+ epatch_user
+
+ # python 2-and-3 shebang fixing craziness
+ local p
+ python_setup 'python3*'
+ for p in $(grep -rl '#!.*python3'); do
+ python_fix_shebang "${p}"
+ done
+
+ python_setup 'python2*'
+ for p in $(grep -rl '#!.*python[^3]'); do
+ python_fix_shebang "${p}"
+ done
+
+ eautoreconf
+ gnome2_src_prepare
+}
+
+src_configure() {
+ # https://bugs.gentoo.org/show_bug.cgi?id=536374
+ # https://github.com/linuxmint/Cinnamon/issues/3843
+ append-ldflags $(no-as-needed)
+
+ gnome2_src_configure \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ --disable-rpath \
+ --disable-jhbuild-wrapper-script \
+ $(use_enable networkmanager) \
+ --with-ca-certificates="${EPREFIX}/etc/ssl/certs/ca-certificates.crt" \
+ BROWSER_PLUGIN_DIR="${EPREFIX}/usr/$(get_libdir)/nsbrowser/plugins" \
+ --without-bluetooth
+}
+
+src_install() {
+ gnome2_src_install
+ python_optimize "${ED}"usr/$(get_libdir)/cinnamon-*
+
+ # Required for gnome-shell on hardened/PaX, bug #398941
+ pax-mark mr "${ED}usr/bin/cinnamon"
+
+ # Doesn't exist on Gentoo, causing this to be a dead symlink
+ rm -f "${ED}etc/xdg/menus/cinnamon-applications-merged" || die
+
+ # Ensure authentication-agent is started, bug #523958
+ # https://github.com/linuxmint/Cinnamon/issues/3579
+ insinto /etc/xdg/autostart/
+ doins "${FILESDIR}"/polkit-cinnamon-authentication-agent-1.desktop
+}
+
+pkg_postinst() {
+ gnome2_pkg_postinst
+
+ 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: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
+
+ if ! has_version ">=x11-base/xorg-server-1.11"; then
+ ewarn "If you use multiple screens, it is highly recommended that you"
+ ewarn "upgrade to >=x11-base/xorg-server-1.11 to be able to make use of"
+ ewarn "pointer barriers which will make it easier to use hot corners."
+ fi
+
+ if has_version "<x11-drivers/ati-drivers-12"; then
+ ewarn "Cinnamon has been reported to show graphical corruption under"
+ ewarn "x11-drivers/ati-drivers-11.*; you may want to switch to"
+ ewarn "open-source drivers."
+ fi
+}
diff --git a/gnome-extra/cinnamon/cinnamon-2.6.9.ebuild b/gnome-extra/cinnamon/cinnamon-2.6.9.ebuild
new file mode 100644
index 000000000000..19ddd1392213
--- /dev/null
+++ b/gnome-extra/cinnamon/cinnamon-2.6.9.ebuild
@@ -0,0 +1,258 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="no"
+GNOME2_LA_PUNT="yes"
+PYTHON_COMPAT=( python2_7 python3_3 python3_4 )
+PYTHON_REQ_USE="xml"
+
+inherit autotools eutils flag-o-matic gnome2 multilib pax-utils python-r1
+
+DESCRIPTION="A fork of GNOME Shell with layout similar to GNOME 2"
+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"
+
+LICENSE="GPL-2+"
+SLOT="0"
+
+# bluetooth support dropped due bug #511648
+IUSE="+nls +networkmanager" #+bluetooth
+
+# We need *both* python 2.7 and 3.x
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+ python_targets_python2_7
+ || ( python_targets_python3_3 python_targets_python3_4 )
+ "
+
+KEYWORDS="~amd64 ~x86"
+
+COMMON_DEPEND="
+ app-accessibility/at-spi2-atk:2
+ app-misc/ca-certificates
+ dev-libs/dbus-glib
+ >=dev-libs/glib-2.29.10:2[dbus]
+ >=dev-libs/gobject-introspection-0.10.1:=
+ >=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-2.4:0=[introspection]
+ gnome-extra/cinnamon-menus[introspection]
+ >=gnome-extra/cjs-2.4
+ >=media-libs/clutter-1.10:1.0[introspection]
+ media-libs/cogl:1.0=[introspection]
+ >=gnome-base/gsettings-desktop-schemas-2.91.91
+ media-libs/gstreamer:1.0
+ media-libs/gst-plugins-base:1.0
+ media-sound/pulseaudio:0=[glib]
+ net-libs/libsoup:2.4[introspection]
+ >=sys-auth/polkit-0.100[introspection]
+ x11-libs/gdk-pixbuf:2[introspection]
+ >=x11-libs/gtk+-3.9.12:3[introspection]
+ x11-libs/pango[introspection]
+ >=x11-libs/startup-notification-0.11
+ x11-libs/libX11
+ >=x11-libs/libXfixes-5.0
+ >=x11-wm/muffin-2.4[introspection]
+ ${PYTHON_DEPS}
+ 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.*
+# 3. gnome-session is needed for gnome-session-quit
+# 4. Control shell settings
+# 5. accountsservice is needed for GdmUserManager (0.6.14 needed for fast
+# user switching with gdm-3.1.x)
+# 6. caribou needed for on-screen keyboard
+# 7. xdg-utils needed for xdg-open, used by extension tool
+# 8. gconf-python, imaging, lxml needed for cinnamon-settings
+# 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. polkit-gnome - explicitly autostarted by us
+# TODO(lxnay): fix error: libgnome-desktop/gnome-rr-labeler.h: No such file or directory
+RDEPEND="${COMMON_DEPEND}
+ >=gnome-base/dconf-0.4.1
+ >=gnome-base/libgnomekbd-2.91.4[introspection]
+ || ( sys-power/upower[introspection] sys-power/upower-pm-utils[introspection] )
+
+ >=gnome-extra/cinnamon-session-2.4
+ >=gnome-extra/cinnamon-settings-daemon-2.4
+
+ >=sys-apps/accountsservice-0.6.14[introspection]
+
+ >=app-accessibility/caribou-0.3
+
+ x11-misc/xdg-utils
+
+ dev-python/dbus-python[python_targets_python2_7]
+ dev-python/gconf-python:2[python_targets_python2_7]
+ dev-python/lxml[python_targets_python2_7]
+ dev-python/pexpect[python_targets_python2_7]
+ dev-python/pycairo[python_targets_python2_7]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ dev-python/pyinotify[python_targets_python2_7]
+ dev-python/pypam[python_targets_python2_7]
+ virtual/python-imaging[python_targets_python2_7]
+
+ x11-themes/gnome-themes-standard[gtk]
+ x11-themes/gnome-icon-theme-symbolic
+
+ >=gnome-extra/nemo-2.4
+ >=gnome-extra/cinnamon-control-center-2.4
+ >=gnome-extra/cinnamon-screensaver-2.4
+
+ gnome-extra/polkit-gnome
+
+ networkmanager? (
+ gnome-extra/nm-applet
+ net-misc/mobile-broadband-provider-info
+ sys-libs/timezone-data )
+ nls? ( >=gnome-extra/cinnamon-translations-2.4 )
+"
+#bluetooth? ( net-wireless/cinnamon-bluetooth )
+
+DEPEND="${COMMON_DEPEND}
+ dev-python/polib[python_targets_python2_7]
+ >=sys-devel/gettext-0.17
+ virtual/pkgconfig
+ >=dev-util/intltool-0.40
+ gnome-base/gnome-common
+ !!=dev-lang/spidermonkey-1.8.2*
+"
+# libmozjs.so is picked up from /usr/lib while compiling, so block at build-time
+# https://bugs.gentoo.org/show_bug.cgi?id=360413
+
+S="${WORKDIR}/Cinnamon-${PV}"
+
+pkg_setup() {
+ python_setup
+}
+
+src_prepare() {
+ # Fix backgrounds path as cinnamon doesn't provide them
+ # https://github.com/linuxmint/Cinnamon/issues/3575
+ epatch "${FILESDIR}"/${PN}-2.4.5-background.patch
+
+ # Fix automagic gnome-bluetooth dep, bug #398145
+ epatch "${FILESDIR}"/${PN}-2.2.6-automagic-gnome-bluetooth.patch
+
+ # Optional NetworkManager, bug #488684
+ epatch "${FILESDIR}"/${PN}-2.6.7-optional-networkmanager.patch
+
+ # Use wheel group instead of sudo (from Fedora/Arch)
+ # https://github.com/linuxmint/Cinnamon/issues/3576
+ epatch "${FILESDIR}"/${PN}-2.6.7-set-wheel.patch
+
+ # Fix GNOME 3.14 support (from Fedora/Arch)
+ # https://github.com/linuxmint/Cinnamon/issues/3577
+ epatch "${FILESDIR}"/${PN}-2.4.5-gnome-3.14.patch
+
+ # Use pkexec instead of gksu (from Arch)
+ # https://github.com/linuxmint/Cinnamon/issues/3565
+ sed -i 's/gksu/pkexec/' files/usr/bin/cinnamon-settings-users || die
+
+ # Add polkit agent to required components (from Fedora/Arch), bug #523958
+ # https://github.com/linuxmint/Cinnamon/issues/3579
+ sed -i 's/RequiredComponents=\(.*\)$/RequiredComponents=\1polkit-gnome-authentication-agent-1;/' \
+ files/usr/share/cinnamon-session/sessions/cinnamon*.session || die
+
+ # 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/share/polkit-1/actions/org.cinnamon.settings-users.policy \
+ -i files/usr/lib/*/*.py \
+ -i files/usr/lib/*/*/*.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 networkmanager; then
+ rm -rv files/usr/share/cinnamon/applets/network@cinnamon.org || die
+ fi
+
+ epatch_user
+
+ # python 2-and-3 shebang fixing craziness
+ local p
+ python_setup 'python3*'
+ for p in $(grep -rl '#!.*python3'); do
+ python_fix_shebang "${p}"
+ done
+
+ python_setup 'python2*'
+ for p in $(grep -rl '#!.*python[^3]'); do
+ python_fix_shebang "${p}"
+ done
+
+ eautoreconf
+ gnome2_src_prepare
+}
+
+src_configure() {
+ # https://bugs.gentoo.org/show_bug.cgi?id=536374
+ # https://github.com/linuxmint/Cinnamon/issues/3843
+ append-ldflags $(no-as-needed)
+
+ gnome2_src_configure \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ --disable-rpath \
+ --disable-jhbuild-wrapper-script \
+ $(use_enable networkmanager) \
+ --with-ca-certificates="${EPREFIX}/etc/ssl/certs/ca-certificates.crt" \
+ BROWSER_PLUGIN_DIR="${EPREFIX}/usr/$(get_libdir)/nsbrowser/plugins" \
+ --without-bluetooth
+}
+
+src_install() {
+ gnome2_src_install
+ python_optimize "${ED}"usr/$(get_libdir)/cinnamon-*
+
+ # Required for gnome-shell on hardened/PaX, bug #398941
+ pax-mark mr "${ED}usr/bin/cinnamon"
+
+ # Doesn't exist on Gentoo, causing this to be a dead symlink
+ rm -f "${ED}etc/xdg/menus/cinnamon-applications-merged" || die
+
+ # Ensure authentication-agent is started, bug #523958
+ # https://github.com/linuxmint/Cinnamon/issues/3579
+ insinto /etc/xdg/autostart/
+ doins "${FILESDIR}"/polkit-cinnamon-authentication-agent-1.desktop
+}
+
+pkg_postinst() {
+ gnome2_pkg_postinst
+
+ 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: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
+
+ if ! has_version ">=x11-base/xorg-server-1.11"; then
+ ewarn "If you use multiple screens, it is highly recommended that you"
+ ewarn "upgrade to >=x11-base/xorg-server-1.11 to be able to make use of"
+ ewarn "pointer barriers which will make it easier to use hot corners."
+ fi
+
+ if has_version "<x11-drivers/ati-drivers-12"; then
+ ewarn "Cinnamon has been reported to show graphical corruption under"
+ ewarn "x11-drivers/ati-drivers-11.*; you may want to switch to"
+ ewarn "open-source drivers."
+ fi
+}
diff --git a/gnome-extra/cinnamon/files/cinnamon-2.2.6-automagic-gnome-bluetooth.patch b/gnome-extra/cinnamon/files/cinnamon-2.2.6-automagic-gnome-bluetooth.patch
new file mode 100644
index 000000000000..aa2e82bd13fa
--- /dev/null
+++ b/gnome-extra/cinnamon/files/cinnamon-2.2.6-automagic-gnome-bluetooth.patch
@@ -0,0 +1,44 @@
+From 40750fc87b7a1cad60d0e605732b9df50dd16c11 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 c0e43e1..bc764e1 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -111,6 +111,8 @@ PKG_CHECK_MODULES(GVC, libpulse libpulse-mainloop-glib gobject-2.0)
+ PKG_CHECK_MODULES(DESKTOP_SCHEMAS, cinnamon-desktop >= 1.0.0)
+
+ 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`
+@@ -123,6 +125,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.9.2
+
diff --git a/gnome-extra/cinnamon/files/cinnamon-2.4.5-background.patch b/gnome-extra/cinnamon/files/cinnamon-2.4.5-background.patch
new file mode 100644
index 000000000000..7277fb26d27f
--- /dev/null
+++ b/gnome-extra/cinnamon/files/cinnamon-2.4.5-background.patch
@@ -0,0 +1,26 @@
+From 19b9e5392a0b1530861d306ee962ac85c108ba1a Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Sun, 11 Jan 2015 20:33:37 +0100
+Subject: [PATCH 1/5] Use gnome backgrounds since Cinnamon isn't providing any
+
+https://github.com/linuxmint/Cinnamon/issues/3575
+---
+ files/usr/lib/cinnamon-settings/modules/cs_backgrounds.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/files/usr/lib/cinnamon-settings/modules/cs_backgrounds.py b/files/usr/lib/cinnamon-settings/modules/cs_backgrounds.py
+index bf6dc39..83a8b04 100644
+--- a/files/usr/lib/cinnamon-settings/modules/cs_backgrounds.py
++++ b/files/usr/lib/cinnamon-settings/modules/cs_backgrounds.py
+@@ -198,7 +198,7 @@ class Module:
+ def get_system_backgrounds(self):
+ picture_list = []
+ folder_list = []
+- properties_dir = "/usr/share/cinnamon-background-properties"
++ properties_dir = "/usr/share/gnome-background-properties"
+ backgrounds = []
+ if os.path.exists(properties_dir):
+ for i in os.listdir(properties_dir):
+--
+2.2.1
+
diff --git a/gnome-extra/cinnamon/files/cinnamon-2.4.5-gnome-3.14.patch b/gnome-extra/cinnamon/files/cinnamon-2.4.5-gnome-3.14.patch
new file mode 100644
index 000000000000..1af0e6456790
--- /dev/null
+++ b/gnome-extra/cinnamon/files/cinnamon-2.4.5-gnome-3.14.patch
@@ -0,0 +1,43 @@
+From b048ad4144607cad258e4193235abeb3930ffcab Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Sun, 11 Jan 2015 20:51:55 +0100
+Subject: [PATCH 5/5] Fix theme compatibility with Gnome 3.14
+
+from Fedora/Arch
+
+https://github.com/linuxmint/Cinnamon/issues/3577
+---
+ data/theme/cinnamon.css | 3 ++-
+ files/usr/lib/cinnamon-settings/modules/cs_themes.py | 2 +-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/data/theme/cinnamon.css b/data/theme/cinnamon.css
+index 9539586..d931b86 100644
+--- a/data/theme/cinnamon.css
++++ b/data/theme/cinnamon.css
+@@ -1444,7 +1444,8 @@ StScrollBar StButton#vhandle:hover {
+ }
+ .applet-box:hover .applet-icon {
+ color: #fff;
+- icon-shadow: white 0px 0px 3px;
++/* Broken with GNOME 3.14 (icon-size is not honoured)
++ * icon-shadow: white 0px 0px 3px;*/
+ }
+
+ /* ===================================================================
+diff --git a/files/usr/lib/cinnamon-settings/modules/cs_themes.py b/files/usr/lib/cinnamon-settings/modules/cs_themes.py
+index 3002499..ab8b0b3 100644
+--- a/files/usr/lib/cinnamon-settings/modules/cs_themes.py
++++ b/files/usr/lib/cinnamon-settings/modules/cs_themes.py
+@@ -244,7 +244,7 @@ class Module:
+
+ def _load_icon_themes(self):
+ dirs = ("/usr/share/icons", os.path.join(os.path.expanduser("~"), ".icons"))
+- valid = walk_directories(dirs, lambda d: os.path.isdir(d) and not os.path.exists(os.path.join(d, "cursors")) and os.path.exists(os.path.join(d, "index.theme")))
++ valid = walk_directories(dirs, lambda d: os.path.isdir(d) and os.path.exists(os.path.join(d, "index.theme")))
+ valid.sort(lambda a,b: cmp(a.lower(), b.lower()))
+ res = []
+ for i in valid:
+--
+2.2.1
+
diff --git a/gnome-extra/cinnamon/files/cinnamon-2.4.5-optional-networkmanager.patch b/gnome-extra/cinnamon/files/cinnamon-2.4.5-optional-networkmanager.patch
new file mode 100644
index 000000000000..2fe3eff45d51
--- /dev/null
+++ b/gnome-extra/cinnamon/files/cinnamon-2.4.5-optional-networkmanager.patch
@@ -0,0 +1,89 @@
+From e89cbae294685195de51aca1e8e6cd400dc0822b Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Sat, 10 May 2014 15:14:05 -0400
+Subject: [PATCH 3/5] Make networkmanager dependency optional for Gentoo
+
+---
+ configure.ac | 36 ++++++++++++++++++++++++++++++++++--
+ js/misc/config.js.in | 2 ++
+ src/Makefile.am | 5 ++++-
+ 3 files changed, 40 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 1977da8..920d256 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -81,8 +81,40 @@ PKG_CHECK_MODULES(CINNAMON, gio-2.0 >= $GIO_MIN_VERSION
+ clutter-x11-1.0 >= $CLUTTER_MIN_VERSION
+ libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_MIN_VERSION
+ gobject-introspection-1.0 >= $GOBJECT_INTROSPECTION_MIN_VERSION
+- polkit-agent-1 >= $POLKIT_MIN_VERSION xfixes
+- libnm-glib libnm-util gnome-keyring-1)
++ polkit-agent-1 >= $POLKIT_MIN_VERSION xfixes)
++
++##########################
++# 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_JS, gio-2.0 cjs-internals-1.0 >= $GJS_MIN_VERSION)
+
+diff --git a/js/misc/config.js.in b/js/misc/config.js.in
+index 704989b..df7e014 100644
+--- a/js/misc/config.js.in
++++ b/js/misc/config.js.in
+@@ -8,5 +8,7 @@ const PACKAGE_VERSION = '@PACKAGE_VERSION@';
+ 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@';
+diff --git a/src/Makefile.am b/src/Makefile.am
+index c0c6e7e..fc2dd14 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -286,7 +286,10 @@ libcinnamon_la_LIBADD = \
+ 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 CMenu-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 CMenu-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)
+--
+2.2.1
+
diff --git a/gnome-extra/cinnamon/files/cinnamon-2.4.5-set-wheel.patch b/gnome-extra/cinnamon/files/cinnamon-2.4.5-set-wheel.patch
new file mode 100644
index 000000000000..db27d4cc27ee
--- /dev/null
+++ b/gnome-extra/cinnamon/files/cinnamon-2.4.5-set-wheel.patch
@@ -0,0 +1,70 @@
+From 916b13aa2b86eb7e14f539293a0059a95c936393 Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Sun, 11 Jan 2015 20:50:13 +0100
+Subject: [PATCH 4/5] Use wheel group instead of sudo
+
+from Fedora/Arch
+
+https://github.com/linuxmint/Cinnamon/issues/3576
+---
+ .../cinnamon-settings-users/cinnamon-settings-users.py | 17 +++++------------
+ 1 file changed, 5 insertions(+), 12 deletions(-)
+
+diff --git a/files/usr/lib/cinnamon-settings-users/cinnamon-settings-users.py b/files/usr/lib/cinnamon-settings-users/cinnamon-settings-users.py
+index c4de658..d9062dc 100755
+--- a/files/usr/lib/cinnamon-settings-users/cinnamon-settings-users.py
++++ b/files/usr/lib/cinnamon-settings-users/cinnamon-settings-users.py
+@@ -145,12 +145,11 @@ class EditableEntry (Gtk.Notebook):
+
+ class PasswordDialog(Gtk.Dialog):
+
+- def __init__ (self, user, password_mask, group_mask):
++ def __init__ (self, user, password_mask):
+ super(PasswordDialog, self).__init__()
+
+ self.user = user
+ self.password_mask = password_mask
+- self.group_mask = group_mask
+
+ self.set_modal(True)
+ self.set_skip_taskbar_hint(True)
+@@ -216,12 +215,6 @@ class PasswordDialog(Gtk.Dialog):
+ def change_password(self):
+ newpass = self.new_password.get_text()
+ self.user.set_password(newpass, "")
+- os.system("gpasswd -d '%s' nopasswdlogin" % self.user.get_user_name())
+- mask = self.group_mask.get_text()
+- mask = mask.split(", ")
+- mask.remove("nopasswdlogin")
+- mask = ", ".join(mask)
+- self.group_mask.set_text(mask)
+ self.password_mask.set_text(u'\u2022\u2022\u2022\u2022\u2022\u2022')
+ self.destroy()
+
+@@ -516,7 +509,7 @@ class Module:
+ model, treeiter = self.users_treeview.get_selection().get_selected()
+ if treeiter != None:
+ user = model[treeiter][INDEX_USER_OBJECT]
+- dialog = PasswordDialog(user, self.password_mask, self.groups_label)
++ dialog = PasswordDialog(user, self.password_mask)
+ response = dialog.run()
+
+ def _on_groups_button_clicked(self, widget):
+@@ -753,11 +746,11 @@ class Module:
+ pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size("/usr/share/cinnamon/faces/user-generic.png", 48, 48)
+ description = "<b>%s</b>\n%s" % (fullname, username)
+ piter = self.users.append(None, [new_user, pixbuf, description])
+- # Add the user to his/her own group and sudo if Administrator was selected
++ # Add the user to his/her own group and wheel if Administrator was selected
+ if dialog.account_type_combo.get_active() == 1:
+- os.system("usermod %s -G %s,sudo,nopasswdlogin" % (username, username))
++ os.system("usermod %s -G %s,wheel" % (username, username))
+ else:
+- os.system("usermod %s -G %s,nopasswdlogin" % (username, username))
++ os.system("usermod %s -G %s" % (username, username))
+ self.load_groups()
+ dialog.destroy()
+
+--
+2.2.1
+
diff --git a/gnome-extra/cinnamon/files/cinnamon-2.6.7-optional-networkmanager.patch b/gnome-extra/cinnamon/files/cinnamon-2.6.7-optional-networkmanager.patch
new file mode 100644
index 000000000000..6af4f8642f73
--- /dev/null
+++ b/gnome-extra/cinnamon/files/cinnamon-2.6.7-optional-networkmanager.patch
@@ -0,0 +1,88 @@
+From 3dbb6dc0b3dd08e6d5ae24fa079d9443c1b66ab9 Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Sat, 10 May 2014 15:14:05 -0400
+Subject: [PATCH] Make networkmanager dependency optional for Gentoo
+
+---
+ configure.ac | 35 ++++++++++++++++++++++++++++++++++-
+ js/misc/config.js.in | 2 ++
+ src/Makefile.am | 5 ++++-
+ 3 files changed, 40 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b5668f4..5f600dd 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -82,7 +82,40 @@ PKG_CHECK_MODULES(CINNAMON, gio-2.0 >= $GIO_MIN_VERSION
+ libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_MIN_VERSION
+ gobject-introspection-1.0 >= $GOBJECT_INTROSPECTION_MIN_VERSION
+ polkit-agent-1 >= $POLKIT_MIN_VERSION xfixes
+- libnm-glib libnm-util gnome-keyring-1 atk-bridge-2.0)
++ atk-bridge-2.0)
++
++##########################
++# 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_JS, gio-2.0 cjs-internals-1.0 >= $GJS_MIN_VERSION)
+
+diff --git a/js/misc/config.js.in b/js/misc/config.js.in
+index 704989b..df7e014 100644
+--- a/js/misc/config.js.in
++++ b/js/misc/config.js.in
+@@ -8,5 +8,7 @@ const PACKAGE_VERSION = '@PACKAGE_VERSION@';
+ 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@';
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 0b0a4a9..cf3a606 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -290,7 +290,10 @@ libcinnamon_la_LIBADD = \
+ 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 CMenu-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 CMenu-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)
+--
+2.4.3
+
diff --git a/gnome-extra/cinnamon/files/cinnamon-2.6.7-set-wheel.patch b/gnome-extra/cinnamon/files/cinnamon-2.6.7-set-wheel.patch
new file mode 100644
index 000000000000..386f815959b6
--- /dev/null
+++ b/gnome-extra/cinnamon/files/cinnamon-2.6.7-set-wheel.patch
@@ -0,0 +1,73 @@
+From 387df8aa7c950ab546a52edb36b39db5252dcd1e Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Sun, 11 Jan 2015 20:50:13 +0100
+Subject: [PATCH] Use wheel group instead of sudo
+
+from Fedora/Arch
+
+https://github.com/linuxmint/Cinnamon/issues/3576
+---
+ .../cinnamon-settings-users.py | 20 ++++++--------------
+ 1 file changed, 6 insertions(+), 14 deletions(-)
+
+diff --git a/files/usr/lib/cinnamon-settings-users/cinnamon-settings-users.py b/files/usr/lib/cinnamon-settings-users/cinnamon-settings-users.py
+index 6fa9374..364c155 100755
+--- a/files/usr/lib/cinnamon-settings-users/cinnamon-settings-users.py
++++ b/files/usr/lib/cinnamon-settings-users/cinnamon-settings-users.py
+@@ -146,12 +146,11 @@ class EditableEntry (Gtk.Notebook):
+
+ class PasswordDialog(Gtk.Dialog):
+
+- def __init__ (self, user, password_mask, group_mask):
++ def __init__ (self, user, password_mask):
+ super(PasswordDialog, self).__init__()
+
+ self.user = user
+ self.password_mask = password_mask
+- self.group_mask = group_mask
+
+ self.set_modal(True)
+ self.set_skip_taskbar_hint(True)
+@@ -217,14 +216,7 @@ class PasswordDialog(Gtk.Dialog):
+ def change_password(self):
+ newpass = self.new_password.get_text()
+ self.user.set_password(newpass, "")
+- mask = self.group_mask.get_text()
+- if "nopasswdlogin" in mask:
+- os.system("gpasswd -d '%s' nopasswdlogin" % self.user.get_user_name())
+- mask = mask.split(", ")
+- mask.remove("nopasswdlogin")
+- mask = ", ".join(mask)
+- self.group_mask.set_text(mask)
+- self.password_mask.set_text(u'\u2022\u2022\u2022\u2022\u2022\u2022')
++ self.password_mask.set_text(u'\u2022\u2022\u2022\u2022\u2022\u2022')
+ self.destroy()
+
+ def set_passwords_visibility(self):
+@@ -522,7 +514,7 @@ class Module:
+ model, treeiter = self.users_treeview.get_selection().get_selected()
+ if treeiter != None:
+ user = model[treeiter][INDEX_USER_OBJECT]
+- dialog = PasswordDialog(user, self.password_mask, self.groups_label)
++ dialog = PasswordDialog(user, self.password_mask)
+ response = dialog.run()
+
+ def _on_groups_button_clicked(self, widget):
+@@ -766,11 +758,11 @@ class Module:
+ pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size("/usr/share/cinnamon/faces/user-generic.png", 48, 48)
+ description = "<b>%s</b>\n%s" % (fullname, username)
+ piter = self.users.append(None, [new_user, pixbuf, description])
+- # Add the user to his/her own group and sudo if Administrator was selected
++ # Add the user to his/her own group and wheel if Administrator was selected
+ if dialog.account_type_combo.get_active() == 1:
+- os.system("usermod %s -G %s,sudo,nopasswdlogin" % (username, username))
++ os.system("usermod %s -G %s,wheel" % (username, username))
+ else:
+- os.system("usermod %s -G %s,nopasswdlogin" % (username, username))
++ os.system("usermod %s -G %s" % (username, username))
+ self.load_groups()
+ dialog.destroy()
+
+--
+2.4.3
+
diff --git a/gnome-extra/cinnamon/files/cinnamon-screensaver.desktop b/gnome-extra/cinnamon/files/cinnamon-screensaver.desktop
new file mode 100644
index 000000000000..ddc968691325
--- /dev/null
+++ b/gnome-extra/cinnamon/files/cinnamon-screensaver.desktop
@@ -0,0 +1,15 @@
+[Desktop Entry]
+Type=Application
+Name=Cinnamon Screensaver
+Comment=Launch screensaver and locker program
+Icon=preferences-desktop-screensaver
+Exec=gnome-screensaver
+OnlyShowIn=GNOME;
+AutostartCondition=GNOME3 if-session cinnamon
+NoDisplay=true
+X-GNOME-Autostart-Phase=Application
+X-GNOME-Autostart-Notify=true
+X-GNOME-Bugzilla-Bugzilla=GNOME
+X-GNOME-Bugzilla-Product=gnome-screensaver
+X-GNOME-Bugzilla-Component=general
+X-GNOME-Bugzilla-Version=3.6.0
diff --git a/gnome-extra/cinnamon/files/cinnamon2d-screensaver.desktop b/gnome-extra/cinnamon/files/cinnamon2d-screensaver.desktop
new file mode 100644
index 000000000000..aed9557bff0b
--- /dev/null
+++ b/gnome-extra/cinnamon/files/cinnamon2d-screensaver.desktop
@@ -0,0 +1,15 @@
+[Desktop Entry]
+Type=Application
+Name=Cinnamon2d Screensaver
+Comment=Launch screensaver and locker program
+Icon=preferences-desktop-screensaver
+Exec=gnome-screensaver
+OnlyShowIn=GNOME;
+AutostartCondition=GNOME3 if-session cinnamon2d
+NoDisplay=true
+X-GNOME-Autostart-Phase=Application
+X-GNOME-Autostart-Notify=true
+X-GNOME-Bugzilla-Bugzilla=GNOME
+X-GNOME-Bugzilla-Product=gnome-screensaver
+X-GNOME-Bugzilla-Component=general
+X-GNOME-Bugzilla-Version=3.6.0
diff --git a/gnome-extra/cinnamon/files/polkit-cinnamon-authentication-agent-1.desktop b/gnome-extra/cinnamon/files/polkit-cinnamon-authentication-agent-1.desktop
new file mode 100644
index 000000000000..24e14f267e23
--- /dev/null
+++ b/gnome-extra/cinnamon/files/polkit-cinnamon-authentication-agent-1.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=PolicyKit Authentication Agent
+Exec=/usr/libexec/polkit-gnome-authentication-agent-1
+Terminal=false
+Type=Application
+Categories=
+NoDisplay=true
+OnlyShowIn=X-Cinnamon;
+X-GNOME-AutoRestart=true
diff --git a/gnome-extra/cinnamon/metadata.xml b/gnome-extra/cinnamon/metadata.xml
new file mode 100644
index 000000000000..3d2ab0c98020
--- /dev/null
+++ b/gnome-extra/cinnamon/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>gnome</herd>
+ <upstream>
+ <remote-id type="github">linuxmint/Cinnamon</remote-id>
+ </upstream>
+</pkgmetadata>