{ stdenv , lib , gitUpdater , fetchFromGitHub , nixosTests , accountsservice , cmake , dbus , dbus-test-runner , glib , gobject-introspection , gtest , intltool , libayatana-common , libgee , libnotify , libpulseaudio , libqtdbusmock , libqtdbustest , libsForQt5 , libxml2 , lomiri , pkg-config , python3 , systemd , vala , wrapGAppsHook3 }: stdenv.mkDerivation (finalAttrs: { pname = "ayatana-indicator-sound"; version = "24.5.0"; src = fetchFromGitHub { owner = "AyatanaIndicators"; repo = "ayatana-indicator-sound"; rev = "refs/tags/${finalAttrs.version}"; hash = "sha256-sFl1PM0vZIJVSDiq5z7w/CS3rFuq6Z09Uks4Ik239Cc="; }; postPatch = '' # Replace systemd prefix in pkg-config query, use GNUInstallDirs location for /etc substituteInPlace data/CMakeLists.txt \ --replace-fail 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir)' 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir DEFINE_VARIABLES prefix=''${CMAKE_INSTALL_PREFIX})' \ --replace-fail 'DESTINATION "/etc' 'DESTINATION "''${CMAKE_INSTALL_FULL_SYSCONFDIR}' # Build-time Vala codegen substituteInPlace src/CMakeLists.txt \ --replace-fail '/usr/share/gir-1.0/AccountsService-1.0.gir' '${lib.getDev accountsservice}/share/gir-1.0/AccountsService-1.0.gir' ''; strictDeps = true; nativeBuildInputs = [ cmake gobject-introspection intltool libpulseaudio # vala files(?) pkg-config vala wrapGAppsHook3 ]; buildInputs = [ accountsservice glib gobject-introspection libayatana-common libgee libnotify libpulseaudio libxml2 systemd ] ++ (with lomiri; [ cmake-extras lomiri-api lomiri-schemas ]); nativeCheckInputs = [ dbus (python3.withPackages (ps: with ps; [ python-dbusmock ])) ]; checkInputs = [ dbus-test-runner gtest libsForQt5.qtbase libqtdbusmock libqtdbustest lomiri.gmenuharness ]; cmakeFlags = [ (lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck) (lib.cmakeBool "ENABLE_LOMIRI_FEATURES" true) (lib.cmakeBool "GSETTINGS_LOCALINSTALL" true) (lib.cmakeBool "GSETTINGS_COMPILE" true) ]; dontWrapQtApps = true; doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform; passthru = { ayatana-indicators = [ "ayatana-indicator-sound" ]; tests.vm = nixosTests.ayatana-indicators; updateScript = gitUpdater { }; }; meta = with lib; { description = "Ayatana Indicator for managing system sound"; longDescription = '' Ayatana Indicator Sound that provides easy control of the PulseAudio sound daemon. ''; homepage = "https://github.com/AyatanaIndicators/ayatana-indicator-sound"; changelog = "https://github.com/AyatanaIndicators/ayatana-indicator-sound/blob/${finalAttrs.version}/ChangeLog"; license = licenses.gpl3Only; maintainers = with maintainers; [ OPNA2608 ]; platforms = platforms.linux; }; })