Merge pull request #329823 from ExpidusOS/fix/pkgsllvm/elfutils
[NixPkgs.git] / pkgs / by-name / ay / ayatana-indicator-display / package.nix
blob8c5e5c9e5160048cdd7a0dd5a5df356c68bdf18b
1 { stdenv
2 , lib
3 , gitUpdater
4 , fetchFromGitHub
5 , nixosTests
6 , accountsservice
7 , cmake
8 , cppcheck
9 , dbus
10 , geoclue2
11 , glib
12 , gsettings-desktop-schemas
13 , gtest
14 , intltool
15 , libayatana-common
16 , libgudev
17 , libqtdbusmock
18 , libqtdbustest
19 , libsForQt5
20 , lomiri
21 , mate
22 , pkg-config
23 , properties-cpp
24 , python3
25 , systemd
26 , wrapGAppsHook3
27 , xsct
30 stdenv.mkDerivation (finalAttrs: {
31   pname = "ayatana-indicator-display";
32   version = "24.5.0";
34   src = fetchFromGitHub {
35     owner = "AyatanaIndicators";
36     repo = "ayatana-indicator-display";
37     rev = "refs/tags/${finalAttrs.version}";
38     hash = "sha256-ZEmJJtVK1dHIrY0C6pqVu1N5PmQtYqX0K5v5LvzNfFA=";
39   };
41   postPatch = ''
42     # Replace systemd prefix in pkg-config query, use GNUInstallDirs location for /etc
43     substituteInPlace data/CMakeLists.txt \
44       --replace-fail 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir)' 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir DEFINE_VARIABLES prefix=''${CMAKE_INSTALL_PREFIX})' \
45       --replace-fail 'DESTINATION "/etc' 'DESTINATION "''${CMAKE_INSTALL_FULL_SYSCONFDIR}'
47     # Hardcode xsct path
48     substituteInPlace src/service.cpp \
49       --replace-fail 'sCommand = g_strdup_printf ("xsct' 'sCommand = g_strdup_printf ("${lib.getExe xsct}'
50   '';
52   strictDeps = true;
54   nativeBuildInputs = [
55     cmake
56     glib # for schema discovery
57     intltool
58     pkg-config
59     wrapGAppsHook3
60   ];
62   # TODO Can we get around requiring every desktop's schemas just to avoid segfaulting on some systems?
63   buildInputs = [
64     accountsservice
65     geoclue2
66     gsettings-desktop-schemas # gnome schemas
67     glib
68     libayatana-common
69     libgudev
70     libsForQt5.qtbase
71     systemd
72   ] ++ (with lomiri; [
73     cmake-extras
74     lomiri-schemas # lomiri schema
75   ]) ++ (with mate; [
76     mate.marco # marco schema
77     mate.mate-settings-daemon # mate mouse schema
78   ]);
80   nativeCheckInputs = [
81     cppcheck
82     dbus
83     (python3.withPackages (ps: with ps; [
84       python-dbusmock
85     ]))
86   ];
88   checkInputs = [
89     gtest
90     libqtdbusmock
91     libqtdbustest
92     properties-cpp
93   ];
95   dontWrapQtApps = true;
97   cmakeFlags = [
98     (lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
99     (lib.cmakeBool "ENABLE_COLOR_TEMP" true)
100     (lib.cmakeBool "GSETTINGS_LOCALINSTALL" true)
101     (lib.cmakeBool "GSETTINGS_COMPILE" true)
102   ];
104   doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
106   passthru = {
107     ayatana-indicators = [ "ayatana-indicator-display" ];
108     tests.vm = nixosTests.ayatana-indicators;
109     updateScript = gitUpdater { };
110   };
112   meta = with lib; {
113     description = "Ayatana Indicator for Display configuration";
114     longDescription = ''
115       This Ayatana Indicator is designed to be placed on the right side of a
116       panel and give the user easy control for changing their display settings.
117     '';
118     homepage = "https://github.com/AyatanaIndicators/ayatana-indicator-display";
119     changelog = "https://github.com/AyatanaIndicators/ayatana-indicator-display/blob/${finalAttrs.version}/ChangeLog";
120     license = licenses.gpl3Only;
121     maintainers = with maintainers; [ OPNA2608 ];
122     platforms = platforms.linux;
123   };