From 2e2b4d39fc33e26da3a0c0fa3813d492bd9dc1fa Mon Sep 17 00:00:00 2001 From: Maciej Krüger Date: Tue, 21 Jan 2020 02:32:57 +0100 Subject: cinnamon.cinnamon-settings-daemon: init at 4.4.0 --- .../csd-backlight-helper-fix.patch | 48 +++++++++ .../cinnamon/cinnamon-settings-daemon/default.nix | 111 +++++++++++++++++++++ pkgs/desktops/cinnamon/default.nix | 1 + 3 files changed, 160 insertions(+) create mode 100644 pkgs/desktops/cinnamon/cinnamon-settings-daemon/csd-backlight-helper-fix.patch create mode 100644 pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix (limited to 'pkgs/desktops') diff --git a/pkgs/desktops/cinnamon/cinnamon-settings-daemon/csd-backlight-helper-fix.patch b/pkgs/desktops/cinnamon/cinnamon-settings-daemon/csd-backlight-helper-fix.patch new file mode 100644 index 00000000000..967ba98eb48 --- /dev/null +++ b/pkgs/desktops/cinnamon/cinnamon-settings-daemon/csd-backlight-helper-fix.patch @@ -0,0 +1,48 @@ +From 6d71bf9764fb81d437678a603826167850bbf453 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= +Date: Tue, 21 Jan 2020 03:19:28 +0100 +Subject: [PATCH] fix: use an impure path to csd-backlight-helper to fix + policy-reload bug + +--- + plugins/power/csd-power-manager.c | 4 ++-- + .../org.cinnamon.settings-daemon.plugins.power.policy.in.in | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/plugins/power/csd-power-manager.c b/plugins/power/csd-power-manager.c +index b24c456..212c47e 100755 +--- a/plugins/power/csd-power-manager.c ++++ b/plugins/power/csd-power-manager.c +@@ -2519,7 +2519,7 @@ backlight_helper_get_value (const gchar *argument, CsdPowerManager* manager, + #endif + + /* get the data */ +- command = g_strdup_printf (LIBEXECDIR "/csd-backlight-helper --%s %s", ++ command = g_strdup_printf ("/run/current-system/sw/bin/cinnamon-settings-daemon/csd-backlight-helper --%s %s", + argument, + manager->priv->backlight_helper_preference_args); + ret = g_spawn_command_line_sync (command, +@@ -2609,7 +2609,7 @@ backlight_helper_set_value (const gchar *argument, + #endif + + /* get the data */ +- command = g_strdup_printf ("pkexec " LIBEXECDIR "/csd-backlight-helper --%s %i %s", ++ command = g_strdup_printf ("pkexec " "/run/current-system/sw/bin/cinnamon-settings-daemon/csd-backlight-helper --%s %i %s", + argument, value, + manager->priv->backlight_helper_preference_args); + ret = g_spawn_command_line_sync (command, +diff --git a/plugins/power/org.cinnamon.settings-daemon.plugins.power.policy.in.in b/plugins/power/org.cinnamon.settings-daemon.plugins.power.policy.in.in +index 2c44e62..c0a2348 100755 +--- a/plugins/power/org.cinnamon.settings-daemon.plugins.power.policy.in.in ++++ b/plugins/power/org.cinnamon.settings-daemon.plugins.power.policy.in.in +@@ -25,7 +25,7 @@ + no + yes + +- @libexecdir@/csd-backlight-helper ++ /run/current-system/sw/bin/cinnamon-settings-daemon/csd-backlight-helper + + + +-- +2.24.1 diff --git a/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix b/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix new file mode 100644 index 00000000000..1dc58e3c3b5 --- /dev/null +++ b/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix @@ -0,0 +1,111 @@ +{ fetchFromGitHub +, autoconf-archive +, autoreconfHook +, cinnamon-desktop +, colord +, glib +, gsettings-desktop-schemas +, gtk3 +, intltool +, lcms2 +, libcanberra-gtk3 +, libgnomekbd +, libnotify +, libxklavier +, wrapGAppsHook +, pkgconfig +, pulseaudio +, stdenv +, systemd +, upower +, dconf +, cups +, polkit +, librsvg +, libwacom +, xf86_input_wacom +, xorg +, fontconfig +, tzdata +}: + +stdenv.mkDerivation rec { + pname = "cinnamon-settings-daemon"; + version = "4.4.0"; + + /* csd-power-manager.c:50:10: fatal error: csd-power-proxy.h: No such file or directory + #include "csd-power-proxy.h" + ^~~~~~~~~~~~~~~~~~~ + compilation terminated. */ + + # but this occurs only sometimes, so disabling parallel building + # also see https://github.com/linuxmint/cinnamon-settings-daemon/issues/248 + enableParallelBuilding = false; + + src = fetchFromGitHub { + owner = "linuxmint"; + repo = pname; + rev = version; + sha256 = "1h74d68a7hx85vv6ak26b85jq0wr56ps9rzfvqsnxwk81zxw2n7q"; + }; + + patches = [ + ./csd-backlight-helper-fix.patch + ]; + + NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; # TODO: https://github.com/NixOS/nixpkgs/issues/36468 + + buildInputs = [ + cinnamon-desktop + colord + gtk3 + glib + gsettings-desktop-schemas + lcms2 + libcanberra-gtk3 + libgnomekbd + libnotify + libxklavier + pulseaudio + systemd + upower + dconf + cups + polkit + librsvg + libwacom + xf86_input_wacom + xorg.libXext + xorg.libX11 + xorg.libXi + xorg.libXtst + xorg.libXfixes + fontconfig + ]; + + nativeBuildInputs = [ + autoconf-archive + autoreconfHook + wrapGAppsHook + intltool + pkgconfig + ]; + + postPatch = '' + sed "s|/usr/share/zoneinfo|${tzdata}/share/zoneinfo|g" -i plugins/datetime/system-timezone.h + ''; + + # So the polkit policy can reference /run/current-system/sw/bin/cinnamon-settings-daemon/csd-backlight-helper + postFixup = '' + mkdir -p $out/bin/cinnamon-settings-daemon + ln -s $out/libexec/csd-backlight-helper $out/bin/cinnamon-settings-daemon/csd-backlight-helper + ''; + + meta = with stdenv.lib; { + homepage = "https://github.com/linuxmint/cinnamon-settings-daemon"; + description = "The settings daemon for the Cinnamon desktop"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = [ maintainers.mkg20001 ]; + }; +} diff --git a/pkgs/desktops/cinnamon/default.nix b/pkgs/desktops/cinnamon/default.nix index 456fb960c62..d58a6e4a0df 100644 --- a/pkgs/desktops/cinnamon/default.nix +++ b/pkgs/desktops/cinnamon/default.nix @@ -4,6 +4,7 @@ lib.makeScope pkgs.newScope (self: with self; { cinnamon-desktop = callPackage ./cinnamon-desktop { }; cinnamon-menus = callPackage ./cinnamon-menus { }; cinnamon-translations = callPackage ./cinnamon-translations { }; + cinnamon-settings-daemon = callPackage ./cinnamon-settings-daemon { }; cjs = callPackage ./cjs { }; xapps = callPackage ./xapps { }; }) -- cgit 1.4.1