diff --git a/pkgs/desktops/cinnamon/cinnamon-session.nix b/pkgs/desktops/cinnamon/cinnamon-session.nix new file mode 100644 index 000000000000..30b78ba143ad --- /dev/null +++ b/pkgs/desktops/cinnamon/cinnamon-session.nix @@ -0,0 +1,44 @@ +{ stdenv, fetchurl, pkgconfig, autoreconfHook, glib, gettext, gnome_common, gtk3, dbus_glib, +upower, json_glib,intltool, systemd, hicolor_icon_theme, cinnamon-session}: + +let + version = "2.0.6"; +in +stdenv.mkDerivation { + name = "cinnamon-session-${version}"; + + src = fetchurl { + url = "http://github.com/linuxmint/cinnamon-session/archive/${version}.tar.gz"; + sha256 = "0rs5w7npj3wf3gkk3sfb83awks2h7vjd6cz8mvfgbh6m3grn66l3"; + }; + + + configureFlags = "--disable-schemas-compile --enable-systemd --disable-gconf" ; + + patches = [ ./remove-sessionmigration.patch ./timeout.patch]; + + buildInputs = [ + pkgconfig autoreconfHook + glib gettext gnome_common + gtk3 dbus_glib upower json_glib + intltool systemd + ]; + + preBuild = "patchShebangs ./scripts"; + + + postInstall = '' + ${glib}/bin/glib-compile-schemas $out/share/glib-2.0/schemas/ + rm $out/share/icons/hicolor/icon-theme.cache + ''; + + meta = { + homepage = "http://cinnamon.linuxmint.com"; + description = "the cinnamon session files " ; + + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.roelof ]; + }; +} + + diff --git a/pkgs/desktops/cinnamon/remove-sessionmigration.patch b/pkgs/desktops/cinnamon/remove-sessionmigration.patch new file mode 100644 index 000000000000..92e63549d964 --- /dev/null +++ b/pkgs/desktops/cinnamon/remove-sessionmigration.patch @@ -0,0 +1,19 @@ +--- a/cinnamon-session/csm-session-fill.c ++++ b/cinnamon-session/csm-session-fill.c +@@ -228,15 +228,6 @@ + load_standard_apps (CsmManager *manager, + GKeyFile *keyfile) + { +- GError *error; +- +- g_debug ("fill: *** Executing user migration"); +- error = NULL; +- if(!g_spawn_command_line_sync ("session-migration", NULL, NULL, NULL, &error)) { +- g_warning ("Error while executing session-migration: %s", error->message); +- g_error_free (error); +- } +- + g_debug ("fill: *** Adding required components"); + handle_required_components (keyfile, !csm_manager_get_failsafe (manager), + append_required_components_helper, manager); + diff --git a/pkgs/desktops/cinnamon/timeout.patch b/pkgs/desktops/cinnamon/timeout.patch new file mode 100644 index 000000000000..59d1f9ab5f37 --- /dev/null +++ b/pkgs/desktops/cinnamon/timeout.patch @@ -0,0 +1,26 @@ +diff -u -r cinnamon-session-3.4.2/cinnamon-session/csm-session-fill.c cinnamon-session-3.4.2-timeout/cinnamon-session/csm-session-fill.c +--- cinnamon-session-3.4.2/cinnamon-session/csm-session-fill.c 2012-02-02 15:33:01.000000000 +0100 ++++ cinnamon-session-3.4.2-timeout/cinnamon-session/csm-session-fill.c 2012-06-10 02:39:46.184348462 +0200 +@@ -36,7 +36,7 @@ + #define CSM_KEYFILE_DEFAULT_PROVIDER_PREFIX "DefaultProvider" + + /* See https://bugzilla.gnome.org/show_bug.cgi?id=641992 for discussion */ +-#define CSM_RUNNABLE_HELPER_TIMEOUT 3000 /* ms */ ++#define CSM_RUNNABLE_HELPER_TIMEOUT 10000 /* ms */ + + typedef void (*GsmFillHandleProvider) (const char *provides, + const char *default_provider, +diff -u -r cinnamon-session-3.4.2/tools/cinnamon-session-check-accelerated.c +cinnamon-session-3.4.2-timeout/tools/cinnamon-session-check-accelerated.c +--- cinnamon-session-3.4.2/tools/cinnamon-session-check-accelerated.c 2011-03-22 21:31:43.000000000 +0100 ++++ cinnamon-session-3.4.2-timeout/tools/cinnamon-session-check-accelerated.c 2012-06-10 02:42:08.013218006 +0200 +@@ -30,7 +30,7 @@ + #include + + /* Wait up to this long for a running check to finish */ +-#define PROPERTY_CHANGE_TIMEOUT 5000 ++#define PROPERTY_CHANGE_TIMEOUT 12000 + + /* Values used for the _GNOME_SESSION_ACCELERATED root window property */ + #define NO_ACCEL 0 + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 48209825d56e..f1a610e45aeb 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9614,6 +9614,8 @@ let callPackage = newScope pkgs.cinnamon; inherit (gnome3) gnome_common; + cinnamon-session = callPackage ../desktops/cinnamon/cinnamon-session.nix{ } ; + cinnamon-desktop = callPackage ../desktops/cinnamon/cinnamon-desktop.nix { }; cinnamon-translations = callPackage ../desktops/cinnamon/cinnamon-translations.nix { };