push sheeet
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
{
cmake,
fetchFromGitHub,
glib,
gtk3,
lib,
pkg-config,
stdenv,
}:
stdenv.mkDerivation rec {
pname = "ayatana-ido";
version = "0.10.4";
src = fetchFromGitHub {
owner = "AyatanaIndicators";
repo = "ayatana-ido";
tag = version;
sha256 = "sha256-KeErrT2umMaIVfLDr4CcQCmFrMb8/h6pNYbunuC/JtI=";
};
nativeBuildInputs = [
cmake
glib # for glib-mkenums
pkg-config
];
buildInputs = [ gtk3 ];
strictDeps = true;
meta = {
description = "Ayatana Display Indicator Objects";
homepage = "https://github.com/AyatanaIndicators/ayatana-ido";
changelog = "https://github.com/AyatanaIndicators/ayatana-ido/blob/${version}/ChangeLog";
license = [
lib.licenses.lgpl3Plus
lib.licenses.lgpl21Plus
];
maintainers = [ lib.maintainers.nickhu ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,87 @@
{
stdenv,
lib,
fetchFromGitHub,
gitUpdater,
nixosTests,
cmake,
gettext,
glib,
gobject-introspection,
intltool,
libayatana-common,
lomiri,
pkg-config,
systemd,
vala,
wrapGAppsHook3,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ayatana-indicator-bluetooth";
version = "24.5.0";
src = fetchFromGitHub {
owner = "AyatanaIndicators";
repo = "ayatana-indicator-bluetooth";
tag = finalAttrs.version;
hash = "sha256-EreOhrlWbSZtwazsvwWsPji2iLfQxr2LbjCI13Hrb28=";
};
postPatch = ''
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 '/etc' "\''${CMAKE_INSTALL_SYSCONFDIR}"
'';
strictDeps = true;
nativeBuildInputs = [
cmake
gettext
gobject-introspection
intltool
pkg-config
vala
wrapGAppsHook3
];
buildInputs = [
lomiri.cmake-extras
glib
libayatana-common
systemd
];
cmakeFlags = [
(lib.cmakeBool "GSETTINGS_LOCALINSTALL" true)
(lib.cmakeBool "GSETTINGS_COMPILE" true)
];
passthru = {
ayatana-indicators = {
ayatana-indicator-bluetooth = [
"ayatana"
"lomiri"
];
};
tests = {
startup = nixosTests.ayatana-indicators;
lomiri = nixosTests.lomiri.desktop-ayatana-indicator-bluetooth;
};
updateScript = gitUpdater { };
};
meta = {
description = "Ayatana System Indicator for Bluetooth Management";
longDescription = ''
This Ayatana Indicator exposes bluetooth functionality via the system
indicator API and provides fast user controls for Bluetooth devices.
'';
homepage = "https://github.com/AyatanaIndicators/ayatana-indicator-bluetooth";
changelog = "https://github.com/AyatanaIndicators/ayatana-indicator-bluetooth/blob/${finalAttrs.version}/ChangeLog";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ OPNA2608 ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,219 @@
{
stdenv,
lib,
fetchFromGitHub,
gitUpdater,
nixosTests,
ayatana-indicator-messages,
cmake,
dbus,
dbus-test-runner,
evolution-data-server,
extra-cmake-modules,
glib,
gst_all_1,
gtest,
intltool,
libaccounts-glib,
libayatana-common,
libical,
mkcal,
libnotify,
libsForQt5,
libuuid,
lomiri,
pkg-config,
properties-cpp,
python3,
systemd,
tzdata,
wrapGAppsHook3,
# Generates a different indicator
enableLomiriFeatures ? false,
}:
let
edsDataDir = "${evolution-data-server}/share";
in
stdenv.mkDerivation (finalAttrs: {
pname = "${if enableLomiriFeatures then "lomiri" else "ayatana"}-indicator-datetime";
version = "25.4.0";
src = fetchFromGitHub {
owner = "AyatanaIndicators";
repo = "ayatana-indicator-datetime";
tag = finalAttrs.version;
hash = "sha256-8E9ucy8I0w9DDzsLtzJgICz/e0TNqOHgls9LrgA5nk4=";
};
postPatch = ''
# Override systemd prefix
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 'XDG_AUTOSTART_DIR "/etc' 'XDG_AUTOSTART_DIR "''${CMAKE_INSTALL_FULL_SYSCONFDIR}'
''
+ lib.optionalString enableLomiriFeatures ''
# Looking for Lomiri schemas for code generation
substituteInPlace src/CMakeLists.txt \
--replace-fail '/usr/share/accountsservice' '${lomiri.lomiri-schemas}/share/accountsservice'
'';
strictDeps = true;
nativeBuildInputs = [
cmake
glib # for schema hook
intltool
pkg-config
wrapGAppsHook3
]
++ lib.optionals enableLomiriFeatures [
libsForQt5.wrapQtAppsHook
];
buildInputs = [
ayatana-indicator-messages
glib
libaccounts-glib
libayatana-common
libnotify
libuuid
properties-cpp
systemd
]
++ (with gst_all_1; [
gstreamer
gst-plugins-base
gst-plugins-good
])
++ (with lomiri; [
cmake-extras
])
++ (
if enableLomiriFeatures then
(
[
extra-cmake-modules
mkcal
]
++ (with libsForQt5; [
kcalendarcore
qtbase
])
++ (with lomiri; [
lomiri-schemas
lomiri-sounds
lomiri-url-dispatcher
])
)
else
[
evolution-data-server
libical
]
);
nativeCheckInputs = [
dbus
dbus-test-runner
(python3.withPackages (ps: with ps; [ python-dbusmock ]))
tzdata
];
checkInputs = [
dbus-test-runner
gtest
];
dontWrapQtApps = true;
cmakeFlags = [
(lib.cmakeBool "GSETTINGS_LOCALINSTALL" true)
(lib.cmakeBool "GSETTINGS_COMPILE" true)
(lib.cmakeBool "ENABLE_LOMIRI_FEATURES" enableLomiriFeatures)
(lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
]
++ lib.optionals enableLomiriFeatures [
(lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" (
lib.concatStringsSep ";" [
# Exclude tests
"-E"
(lib.strings.escapeShellArg "(${
lib.concatStringsSep "|" [
# Don't know why these fail yet
"^test-eds-ics-repeating-events"
"^test-eds-ics-nonrepeating-events"
"^test-eds-ics-missing-trigger"
]
})")
]
))
];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
enableParallelChecking = false;
preCheck = ''
export XDG_DATA_DIRS=${
lib.strings.concatStringsSep ":" (
[
# org.ayatana.common schema
(glib.passthru.getSchemaDataDirPath libayatana-common)
]
++ lib.optionals (!enableLomiriFeatures) [
# loading EDS engines to handle ICS-loading
edsDataDir
]
)
}
'';
preFixup = ''
gappsWrapperArgs+=(
''
+ (
if enableLomiriFeatures then
''
"''${qtWrapperArgs[@]}"
''
else
# schema is already added automatically by wrapper, EDS needs to be added explicitly
''
--prefix XDG_DATA_DIRS : "${edsDataDir}"
''
)
+ ''
)
'';
passthru = {
ayatana-indicators = {
"${if enableLomiriFeatures then "lomiri" else "ayatana"}-indicator-datetime" = [
(if enableLomiriFeatures then "lomiri" else "ayatana")
];
};
tests = {
startup = nixosTests.ayatana-indicators;
}
// lib.optionalAttrs enableLomiriFeatures {
lomiri = nixosTests.lomiri.desktop-ayatana-indicator-datetime;
};
updateScript = gitUpdater { };
};
meta = {
description = "Ayatana Indicator providing clock and calendar";
longDescription = ''
This Ayatana Indicator provides a combined calendar, clock, alarm and
event management tool.
'';
homepage = "https://github.com/AyatanaIndicators/ayatana-indicator-datetime";
changelog = "https://github.com/AyatanaIndicators/ayatana-indicator-datetime/blob/${finalAttrs.version}/ChangeLog";
license = lib.licenses.gpl3Only;
teams = [
lib.teams.lomiri
];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,135 @@
{
stdenv,
lib,
gitUpdater,
fetchFromGitHub,
nixosTests,
accountsservice,
cmake,
cppcheck,
dbus,
geoclue2,
glib,
gsettings-desktop-schemas,
gtest,
intltool,
libayatana-common,
libgudev,
libqtdbusmock,
libqtdbustest,
librda,
libsForQt5,
lomiri,
mate,
pkg-config,
properties-cpp,
python3,
systemd,
wrapGAppsHook3,
xsct,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ayatana-indicator-display";
version = "24.5.2";
src = fetchFromGitHub {
owner = "AyatanaIndicators";
repo = "ayatana-indicator-display";
tag = finalAttrs.version;
hash = "sha256-rsZjEfAiz1HC5XMjPume1Y6miNAv1kmPFP4J/+NKlsA=";
};
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}'
# Hardcode xsct path
substituteInPlace src/service.cpp \
--replace-fail 'sCommand = g_strdup_printf ("xsct' 'sCommand = g_strdup_printf ("${lib.getExe xsct}'
'';
strictDeps = true;
nativeBuildInputs = [
cmake
glib # for schema discovery
intltool
pkg-config
wrapGAppsHook3
];
# TODO Can we get around requiring every desktop's schemas just to avoid segfaulting on some systems?
buildInputs = [
accountsservice
geoclue2
gsettings-desktop-schemas # gnome schemas
glib
libayatana-common
libgudev
librda
libsForQt5.qtbase
systemd
]
++ (with lomiri; [
cmake-extras
lomiri-schemas # lomiri schema
])
++ [
mate.marco # marco schema
mate.mate-settings-daemon # mate mouse schema
];
nativeCheckInputs = [
cppcheck
dbus
(python3.withPackages (ps: with ps; [ python-dbusmock ]))
];
checkInputs = [
gtest
libqtdbusmock
libqtdbustest
properties-cpp
];
dontWrapQtApps = true;
cmakeFlags = [
(lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
(lib.cmakeBool "ENABLE_COLOR_TEMP" true)
(lib.cmakeBool "GSETTINGS_LOCALINSTALL" true)
(lib.cmakeBool "GSETTINGS_COMPILE" true)
];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
passthru = {
ayatana-indicators = {
ayatana-indicator-display = [
"ayatana"
"lomiri"
];
};
tests = {
startup = nixosTests.ayatana-indicators;
lomiri = nixosTests.lomiri.desktop-ayatana-indicator-display;
};
updateScript = gitUpdater { };
};
meta = {
description = "Ayatana Indicator for Display configuration";
longDescription = ''
This Ayatana Indicator is designed to be placed on the right side of a
panel and give the user easy control for changing their display settings.
'';
homepage = "https://github.com/AyatanaIndicators/ayatana-indicator-display";
changelog = "https://github.com/AyatanaIndicators/ayatana-indicator-display/blob/${finalAttrs.version}/ChangeLog";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ OPNA2608 ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,168 @@
{
stdenv,
lib,
fetchFromGitHub,
gitUpdater,
nixosTests,
testers,
accountsservice,
cmake,
dbus-test-runner,
withDocumentation ? true,
docbook_xsl,
docbook_xml_dtd_45,
glib,
gobject-introspection,
gtest,
gtk-doc,
intltool,
lomiri,
pkg-config,
python3,
systemd,
vala,
wrapGAppsHook3,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ayatana-indicator-messages";
version = "24.5.1";
src = fetchFromGitHub {
owner = "AyatanaIndicators";
repo = "ayatana-indicator-messages";
tag = finalAttrs.version;
hash = "sha256-M6IXI0ZnWPZod2ewxxfCeHhdYUrWDW/BFc1vMHmjObA=";
};
outputs = [
"out"
"dev"
]
++ lib.optionals withDocumentation [ "devdoc" ];
postPatch = ''
# Uses pkg_get_variable, cannot substitute prefix with that
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})'
# Bad concatenation
substituteInPlace libmessaging-menu/messaging-menu.pc.in \
--replace-fail "\''${exec_prefix}/@CMAKE_INSTALL_LIBDIR@" '@CMAKE_INSTALL_FULL_LIBDIR@' \
--replace-fail "\''${prefix}/@CMAKE_INSTALL_INCLUDEDIR@" '@CMAKE_INSTALL_FULL_INCLUDEDIR@'
# Fix tests with gobject-introspection 1.80 not installing GLib introspection data
substituteInPlace tests/CMakeLists.txt \
--replace-fail 'GI_TYPELIB_PATH=\"' 'GI_TYPELIB_PATH=\"$GI_TYPELIB_PATH$\{GI_TYPELIB_PATH\:+\:\}'
''
+ lib.optionalString (!withDocumentation) ''
substituteInPlace CMakeLists.txt \
--replace-fail 'add_subdirectory(doc)' '# add_subdirectory(doc)'
'';
strictDeps = true;
nativeBuildInputs = [
cmake
glib # For glib-compile-schemas
intltool
pkg-config
vala
wrapGAppsHook3
]
++ lib.optionals withDocumentation [
docbook_xsl
docbook_xml_dtd_45
gtk-doc
];
buildInputs = [
accountsservice
lomiri.cmake-extras
glib
gobject-introspection
systemd
];
nativeCheckInputs = [
(python3.withPackages (
ps: with ps; [
pygobject3
python-dbusmock
]
))
];
checkInputs = [
dbus-test-runner
gtest
];
cmakeFlags = [
(lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
(lib.cmakeBool "GSETTINGS_LOCALINSTALL" true)
(lib.cmakeBool "GSETTINGS_COMPILE" true)
];
makeFlags = lib.optionals withDocumentation [
# gtk-doc doesn't call ld with the correct arguments
# ld: ...: undefined reference to symbol 'strncpy@@GLIBC_2.2.5', 'qsort@@GLIBC_2.2.5'
"LD=${stdenv.cc.targetPrefix}cc"
];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
preCheck = ''
# test-client imports gir, whose solib entry points to final store location
install -Dm644 libmessaging-menu/libmessaging-menu.so.0.0.0 $out/lib/libmessaging-menu.so.0
'';
postCheck = ''
# remove the above solib-installation, let it be done properly
rm -r $out
'';
preInstall = lib.optionalString withDocumentation ''
# installing regenerates docs, generated files are created without write permissions, errors out while trying to overwrite them
chmod +w doc/reference/html/*
'';
# Indicators that talk to it may issue requests to parse desktop files, which needs binaries in Exec on PATH
# messaging_menu_app_set_desktop_id -> g_desktop_app_info_new -...-> g_desktop_app_info_load_from_keyfile -> g_find_program_for_path
# When launched via systemd, PATH is very narrow
preFixup = ''
gappsWrapperArgs+=(
--suffix PATH : '/run/current-system/sw/bin'
)
'';
passthru = {
ayatana-indicators = {
ayatana-indicator-messages = [
"ayatana"
"lomiri"
];
};
tests = {
pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
vm = nixosTests.ayatana-indicators;
};
updateScript = gitUpdater { };
};
meta = {
description = "Ayatana Indicator Messages Applet";
longDescription = ''
The -messages Ayatana System Indicator is the messages menu indicator for Unity7, MATE and Lomiri (optionally for
others, e.g. XFCE, LXDE).
'';
homepage = "https://github.com/AyatanaIndicators/ayatana-indicator-messages";
changelog = "https://github.com/AyatanaIndicators/ayatana-indicator-messages/blob/${
if (!isNull finalAttrs.src.tag) then finalAttrs.src.tag else finalAttrs.src.rev
}/ChangeLog";
license = lib.licenses.gpl3Only;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ OPNA2608 ];
pkgConfigModules = [ "messaging-menu" ];
};
})

View File

@@ -0,0 +1,115 @@
{
stdenv,
lib,
gitUpdater,
fetchFromGitHub,
nixosTests,
cmake,
dbus,
dbus-test-runner,
glib,
gtest,
intltool,
libayatana-common,
libnotify,
librda,
lomiri,
pkg-config,
python3,
systemd,
wrapGAppsHook3,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ayatana-indicator-power";
version = "24.5.2";
src = fetchFromGitHub {
owner = "AyatanaIndicators";
repo = "ayatana-indicator-power";
tag = finalAttrs.version;
hash = "sha256-A9Kbs+qH01rkuLt8GINdPI2vCu0bCO+/g4kZhDj8GsY=";
};
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 'XDG_AUTOSTART_DIR "/etc' 'XDG_AUTOSTART_DIR "''${CMAKE_INSTALL_FULL_SYSCONFDIR}'
# Path needed for build-time codegen
substituteInPlace src/CMakeLists.txt \
--replace-fail '/usr/share/accountsservice/interfaces/com.lomiri.touch.AccountsService.Sound.xml' '${lomiri.lomiri-schemas}/share/accountsservice/interfaces/com.lomiri.touch.AccountsService.Sound.xml'
'';
strictDeps = true;
nativeBuildInputs = [
cmake
intltool
pkg-config
wrapGAppsHook3
];
buildInputs = [
glib
libayatana-common
libnotify
librda
systemd
]
++ (with lomiri; [
cmake-extras
deviceinfo
lomiri-schemas
lomiri-sounds
]);
nativeCheckInputs = [
dbus
(python3.withPackages (ps: with ps; [ python-dbusmock ]))
];
checkInputs = [
dbus-test-runner
gtest
];
cmakeFlags = [
(lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
(lib.cmakeBool "ENABLE_LOMIRI_FEATURES" true)
(lib.cmakeBool "ENABLE_DEVICEINFO" true)
(lib.cmakeBool "ENABLE_RDA" true)
(lib.cmakeBool "GSETTINGS_LOCALINSTALL" true)
(lib.cmakeBool "GSETTINGS_COMPILE" true)
];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
passthru = {
ayatana-indicators = {
ayatana-indicator-power = [
"ayatana"
"lomiri"
];
};
tests = {
startup = nixosTests.ayatana-indicators;
lomiri = nixosTests.lomiri.desktop-ayatana-indicator-power;
};
updateScript = gitUpdater { };
};
meta = {
description = "Ayatana Indicator showing power state";
longDescription = ''
This Ayatana Indicator displays current power management information and
gives the user a way to access power management preferences.
'';
homepage = "https://github.com/AyatanaIndicators/ayatana-indicator-power";
changelog = "https://github.com/AyatanaIndicators/ayatana-indicator-power/blob/${finalAttrs.version}/ChangeLog";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ OPNA2608 ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,110 @@
{
stdenv,
lib,
fetchFromGitHub,
gitUpdater,
nixosTests,
cmake,
dbus,
glib,
gnome-settings-daemon,
gsettings-desktop-schemas,
gtest,
intltool,
libayatana-common,
librda,
lomiri,
mate,
pkg-config,
systemd,
wrapGAppsHook3,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ayatana-indicator-session";
version = "24.5.1";
src = fetchFromGitHub {
owner = "AyatanaIndicators";
repo = "ayatana-indicator-session";
tag = finalAttrs.version;
hash = "sha256-jqcgQTsC4VBit3wwtKKTdEG71CUPJpeMtpzikE4IGhE=";
};
postPatch = ''
# Queries systemd user unit dir via pkg_get_variable, can't override prefix
substituteInPlace data/CMakeLists.txt \
--replace-fail 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir)' 'set(SYSTEMD_USER_DIR "''${CMAKE_INSTALL_PREFIX}/lib/systemd/user")' \
--replace-fail '/etc' "\''${CMAKE_INSTALL_SYSCONFDIR}"
'';
strictDeps = true;
nativeBuildInputs = [
cmake
intltool
pkg-config
wrapGAppsHook3
];
buildInputs = [
lomiri.cmake-extras
glib
gsettings-desktop-schemas
libayatana-common
librda
systemd
# TODO these bloat the closure size alot, just so the indicator doesn't have the potential to crash.
# is there a better way to give it access to DE-specific schemas as needed?
# https://github.com/AyatanaIndicators/ayatana-indicator-session/blob/88846bad7ee0aa8e0bb122816d06f9bc887eb464/src/service.c#L1387-L1413
gnome-settings-daemon
mate.mate-settings-daemon
];
nativeCheckInputs = [ dbus ];
checkInputs = [ gtest ];
cmakeFlags = [
(lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
(lib.cmakeBool "GSETTINGS_LOCALINSTALL" true)
(lib.cmakeBool "GSETTINGS_COMPILE" true)
];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
# DBus communication
enableParallelChecking = false;
passthru = {
ayatana-indicators = {
ayatana-indicator-session = [
"ayatana"
"lomiri"
];
};
tests = {
startup = nixosTests.ayatana-indicators;
lomiri = nixosTests.lomiri.desktop-ayatana-indicator-session;
};
updateScript = gitUpdater { };
};
meta = {
description = "Ayatana Indicator showing session management, status and user switching";
longDescription = ''
This Ayatana Indicator is designed to be placed on the right side of a
panel and give the user easy control for
- changing their instant message status,
- switching to another user,
- starting a guest session, or
- controlling the status of their own session.
'';
homepage = "https://github.com/AyatanaIndicators/ayatana-indicator-session";
changelog = "https://github.com/AyatanaIndicators/ayatana-indicator-session/blob/${finalAttrs.version}/ChangeLog";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ OPNA2608 ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,147 @@
{
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.2";
src = fetchFromGitHub {
owner = "AyatanaIndicators";
repo = "ayatana-indicator-sound";
tag = finalAttrs.version;
hash = "sha256-qdvte+Mm64O/JhI0luJAGAWoCgukKCbPrp5k8SIDuwM=";
};
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'
# timeouts are too short for aarch64 OfBorg builder under loads, which leads to spurious test failures
substituteInPlace \
tests/accounts-service-user.cc \
tests/media-player-user.cc \
tests/name-watch-test.cc \
tests/notifications-test.cc \
tests/volume-control-test.cc \
--replace-quiet 'loop(50)' 'loop(500)' \
--replace-quiet 'loop(100)' 'loop(1000)' \
--replace-quiet 'loop(500)' 'loop(5000)' \
'';
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;
# Starts & talks to D-Bus, breaks under parallelism
enableParallelChecking = false;
passthru = {
ayatana-indicators = {
ayatana-indicator-sound = [
"ayatana"
"lomiri"
];
};
tests = {
startup = nixosTests.ayatana-indicators;
lomiri = nixosTests.lomiri.desktop-ayatana-indicator-sound;
};
updateScript = gitUpdater { };
};
meta = {
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 = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ OPNA2608 ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,96 @@
{
lib,
fetchFromGitHub,
gettext,
gtk3,
python3Packages,
gdk-pixbuf,
libnotify,
glib,
gobject-introspection,
wrapGAppsHook3,
# BTW libappindicator is also supported, but upstream recommends their
# implementation, see:
# https://github.com/AyatanaIndicators/ayatana-webmail/issues/24#issuecomment-1050352862
libayatana-appindicator,
gsettings-desktop-schemas,
libcanberra-gtk3,
}:
python3Packages.buildPythonApplication rec {
pname = "ayatana-webmail";
version = "24.5.17";
format = "pyproject";
src = fetchFromGitHub {
owner = "AyatanaIndicators";
repo = "ayatana-webmail";
tag = version;
hash = "sha256-k557FWKGq2MXODVxVzOetC5kkwTNYOoLO8msCOabais=";
};
postConfigure = ''
# Fix fhs paths
substituteInPlace \
ayatanawebmail/accounts.py \
ayatanawebmail/actions.py \
ayatanawebmail/dialog.py \
--replace-fail /usr/share $out/share
'';
buildInputs = [
gtk3
gdk-pixbuf
glib
libnotify
gettext
libayatana-appindicator
gsettings-desktop-schemas
];
nativeBuildInputs = [
gobject-introspection
wrapGAppsHook3
glib # For compiling gsettings-schemas
];
build-system = with python3Packages; [
setuptools
];
dependencies = with python3Packages; [
urllib3
babel
psutil
secretstorage
polib
pygobject3
dbus-python
];
# No tests, and they cause a failure
doCheck = false;
postInstall = ''
# Fix fhs paths
mv $out/${python3Packages.python.sitePackages}/etc $out
mv $out/${python3Packages.python.sitePackages}/usr/{bin,share} $out/
rmdir $out/${python3Packages.python.sitePackages}/usr
# Compile gsettings desktop schemas
glib-compile-schemas $out/share/glib-2.0/schemas
'';
# See https://nixos.org/nixpkgs/manual/#ssec-gnome-common-issues-double-wrapped
dontWrapGApps = true;
preFixup = ''
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
makeWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ libcanberra-gtk3 ]})
'';
meta = {
description = "Webmail notifications and actions for any desktop";
homepage = "https://github.com/AyatanaIndicators/ayatana-webmail";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ doronbehar ];
};
}

View File

@@ -0,0 +1,69 @@
{
stdenv,
autoreconfHook,
fetchFromGitHub,
gnome-shell,
gnome-themes-extra,
gtk-engine-murrine,
gtk3,
inkscape,
lib,
optipng,
pkg-config,
sassc,
}:
stdenv.mkDerivation rec {
pname = "ayu-theme-gtk";
version = "unstable-2017-05-12";
src = fetchFromGitHub {
owner = "dnordstrom";
repo = "ayu-theme";
rev = "cc6f3d3b72897c304e2f00afcaf51df863155e35";
sha256 = "sha256-1EhTfPhYl+4IootTCCE04y6V7nW1/eWdHarfF7/j1U0=";
};
postPatch = ''
ln -sn 3.20 common/gtk-3.0/3.24
ln -sn 3.18 common/gnome-shell/3.24
'';
nativeBuildInputs = [
autoreconfHook
gtk3
inkscape
optipng
pkg-config
sassc
];
propagatedUserEnvPkgs = [
gnome-themes-extra
gtk-engine-murrine
];
enableParallelBuilding = true;
preBuild = ''
# Shut up inkscape's warnings about creating profile directory
export HOME="$NIX_BUILD_ROOT"
'';
configureFlags = [
"--with-gnome-shell=${gnome-shell.version}"
"--disable-unity"
];
postInstall = ''
install -Dm644 -t $out/share/doc/${pname} AUTHORS *.md
'';
meta = with lib; {
description = "Ayu colored GTK and Kvantum themes based on Arc";
homepage = "https://github.com/dnordstrom/ayu-theme/";
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = with maintainers; [ lovesegfault ];
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
telegram-desktop,
withWebkit ? true,
}:
telegram-desktop.override {
pname = "ayugram-desktop";
inherit withWebkit;
unwrapped = telegram-desktop.unwrapped.overrideAttrs (
finalAttrs: previousAttrs: {
pname = "ayugram-desktop-unwrapped";
version = "5.16.3";
src = fetchFromGitHub {
owner = "AyuGram";
repo = "AyuGramDesktop";
rev = "aafdac6da465e6498e39e1b55566fc8fe2402843";
hash = "sha256-GNFkGw/CxtbeoEMBjExNudBcKFwlfXee5VVnXa4wGko=";
fetchSubmodules = true;
};
passthru.updateScript = nix-update-script { };
meta = previousAttrs.meta // {
mainProgram = "AyuGram";
description = "Desktop Telegram client with good customization and Ghost mode";
longDescription = ''
The best that could be in the world of Telegram clients.
AyuGram is a Telegram client with a very pleasant features.
'';
homepage = "https://github.com/AyuGram/AyuGramDesktop";
changelog = "https://github.com/AyuGram/AyuGramDesktop/releases/tag/v${finalAttrs.version}";
maintainers = with lib.maintainers; [
kaeeraa
s0me1newithhand7s
];
};
}
);
}