go-musicfox: 4.5.7 -> 4.6.0 (#364326)
[NixPkgs.git] / pkgs / by-name / ay / ayatana-indicator-session / package.nix
blob0ee7f52286249f1069c6da80351fad0678e5d7f8
2   stdenv,
3   lib,
4   fetchFromGitHub,
5   gitUpdater,
6   nixosTests,
7   cmake,
8   dbus,
9   glib,
10   gnome-settings-daemon,
11   gsettings-desktop-schemas,
12   gtest,
13   intltool,
14   libayatana-common,
15   librda,
16   lomiri,
17   mate,
18   pkg-config,
19   systemd,
20   wrapGAppsHook3,
23 stdenv.mkDerivation (finalAttrs: {
24   pname = "ayatana-indicator-session";
25   version = "24.5.0";
27   src = fetchFromGitHub {
28     owner = "AyatanaIndicators";
29     repo = "ayatana-indicator-session";
30     rev = "refs/tags/${finalAttrs.version}";
31     hash = "sha256-p4nu7ZgnEjnnxNqyZIg//YcssnQcCY7GFDbpGIu1dz0=";
32   };
34   postPatch = ''
35     # Queries systemd user unit dir via pkg_get_variable, can't override prefix
36     substituteInPlace data/CMakeLists.txt \
37       --replace-fail 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir)' 'set(SYSTEMD_USER_DIR "''${CMAKE_INSTALL_PREFIX}/lib/systemd/user")' \
38       --replace-fail '/etc' "\''${CMAKE_INSTALL_SYSCONFDIR}"
39   '';
41   strictDeps = true;
43   nativeBuildInputs = [
44     cmake
45     intltool
46     pkg-config
47     wrapGAppsHook3
48   ];
50   buildInputs = [
51     lomiri.cmake-extras
52     glib
53     gsettings-desktop-schemas
54     libayatana-common
55     librda
56     systemd
58     # TODO these bloat the closure size alot, just so the indicator doesn't have the potential to crash.
59     # is there a better way to give it access to DE-specific schemas as needed?
60     # https://github.com/AyatanaIndicators/ayatana-indicator-session/blob/88846bad7ee0aa8e0bb122816d06f9bc887eb464/src/service.c#L1387-L1413
61     gnome-settings-daemon
62     mate.mate-settings-daemon
63   ];
65   nativeCheckInputs = [ dbus ];
67   checkInputs = [ gtest ];
69   cmakeFlags = [
70     (lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
71     (lib.cmakeBool "GSETTINGS_LOCALINSTALL" true)
72     (lib.cmakeBool "GSETTINGS_COMPILE" true)
73   ];
75   doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
77   # DBus communication
78   enableParallelChecking = false;
80   passthru = {
81     ayatana-indicators = {
82       ayatana-indicator-session = [
83         "ayatana"
84         "lomiri"
85       ];
86     };
87     tests.vm = nixosTests.ayatana-indicators;
88     updateScript = gitUpdater { };
89   };
91   meta = {
92     description = "Ayatana Indicator showing session management, status and user switching";
93     longDescription = ''
94       This Ayatana Indicator is designed to be placed on the right side of a
95       panel and give the user easy control for
96       - changing their instant message status,
97       - switching to another user,
98       - starting a guest session, or
99       - controlling the status of their own session.
100     '';
101     homepage = "https://github.com/AyatanaIndicators/ayatana-indicator-session";
102     changelog = "https://github.com/AyatanaIndicators/ayatana-indicator-session/blob/${finalAttrs.version}/ChangeLog";
103     license = lib.licenses.gpl3Only;
104     maintainers = with lib.maintainers; [ OPNA2608 ];
105     platforms = lib.platforms.linux;
106   };