0
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-07-14 14:10:33 +03:00

lomiri.lomiri-indicator-datetime: init at 25.4.0

ayatana-indicator-datetime, overridden to enable Lomiri features.
This commit is contained in:
OPNA2608 2025-06-13 13:49:14 +02:00
parent 247e70e520
commit 1a6b286b9c
6 changed files with 125 additions and 57 deletions

View file

@ -62,9 +62,11 @@ in
packages = (
with pkgs;
[
ayatana-indicator-datetime # Clock
ayatana-indicator-session # Controls for shutting down etc
]
++ (with lomiri; [
lomiri-indicator-datetime # Clock
])
);
};
})

View file

@ -42,6 +42,7 @@ in
ayatana-indicator-sound
]
++ (with pkgs.lomiri; [
lomiri-indicator-datetime
lomiri-indicator-network
lomiri-telephony-service
]);

View file

@ -9,6 +9,7 @@
dbus,
dbus-test-runner,
evolution-data-server,
extra-cmake-modules,
glib,
gst_all_1,
gtest,
@ -16,7 +17,9 @@
libaccounts-glib,
libayatana-common,
libical,
mkcal,
libnotify,
libsForQt5,
libuuid,
lomiri,
pkg-config,
@ -25,7 +28,7 @@
systemd,
tzdata,
wrapGAppsHook3,
# Generated a different indicator
# Generates a different indicator
enableLomiriFeatures ? false,
}:
@ -33,7 +36,7 @@ let
edsDataDir = "${evolution-data-server}/share";
in
stdenv.mkDerivation (finalAttrs: {
pname = "ayatana-indicator-datetime";
pname = "${if enableLomiriFeatures then "lomiri" else "ayatana"}-indicator-datetime";
version = "25.4.0";
src = fetchFromGitHub {
@ -43,35 +46,39 @@ stdenv.mkDerivation (finalAttrs: {
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}'
# Looking for Lomiri schemas for code generation
substituteInPlace src/CMakeLists.txt \
--replace-fail '/usr/share/accountsservice' '${lomiri.lomiri-schemas}/share/accountsservice'
'';
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
];
nativeBuildInputs =
[
cmake
glib # for schema hook
intltool
pkg-config
wrapGAppsHook3
]
++ lib.optionals enableLomiriFeatures [
libsForQt5.wrapQtAppsHook
];
buildInputs =
[
ayatana-indicator-messages
evolution-data-server
glib
libaccounts-glib
libayatana-common
libical
libnotify
libuuid
properties-cpp
@ -85,11 +92,29 @@ stdenv.mkDerivation (finalAttrs: {
++ (with lomiri; [
cmake-extras
])
++ lib.optionals enableLomiriFeatures (with lomiri; [
lomiri-schemas
lomiri-sounds
lomiri-url-dispatcher
]);
++ (
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
@ -103,12 +128,31 @@ stdenv.mkDerivation (finalAttrs: {
gtest
];
cmakeFlags = [
(lib.cmakeBool "GSETTINGS_LOCALINSTALL" true)
(lib.cmakeBool "GSETTINGS_COMPILE" true)
(lib.cmakeBool "ENABLE_LOMIRI_FEATURES" enableLomiriFeatures)
(lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
];
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;
@ -116,34 +160,51 @@ stdenv.mkDerivation (finalAttrs: {
preCheck = ''
export XDG_DATA_DIRS=${
lib.strings.concatStringsSep ":" [
# org.ayatana.common schema
(glib.passthru.getSchemaDataDirPath libayatana-common)
# loading EDS engines to handle ICS-loading
edsDataDir
]
lib.strings.concatStringsSep ":" (
[
# org.ayatana.common schema
(glib.passthru.getSchemaDataDirPath libayatana-common)
]
++ lib.optionals (!enableLomiriFeatures) [
# loading EDS engines to handle ICS-loading
edsDataDir
]
)
}
'';
# schema is already added automatically by wrapper, EDS needs to be added explicitly
preFixup = ''
gappsWrapperArgs+=(
--prefix XDG_DATA_DIRS : "${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 = {
ayatana-indicator-datetime = [
"ayatana"
"lomiri"
"${if enableLomiriFeatures then "lomiri" else "ayatana"}-indicator-datetime" = [
(if enableLomiriFeatures then "lomiri" else "ayatana")
];
};
tests = {
startup = nixosTests.ayatana-indicators;
lomiri = nixosTests.lomiri.desktop-ayatana-indicator-datetime;
};
tests =
{
startup = nixosTests.ayatana-indicators;
}
// lib.optionalAttrs enableLomiriFeatures {
lomiri = nixosTests.lomiri.desktop-ayatana-indicator-datetime;
};
updateScript = gitUpdater { };
};
@ -156,7 +217,9 @@ stdenv.mkDerivation (finalAttrs: {
homepage = "https://github.com/AyatanaIndicators/ayatana-indicator-datetime";
changelog = "https://github.com/AyatanaIndicators/ayatana-indicator-datetime/blob/${finalAttrs.version}/ChangeLog";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ OPNA2608 ];
teams = [
lib.teams.lomiri
];
platforms = lib.platforms.linux;
};
})

View file

@ -5,7 +5,6 @@
gitUpdater,
testers,
accountsservice,
ayatana-indicator-datetime,
biometryd,
cmake,
cmake-extras,
@ -24,6 +23,7 @@
libqtdbustest,
libqtdbusmock,
lomiri-content-hub,
lomiri-indicator-datetime,
lomiri-indicator-network,
lomiri-schemas,
lomiri-settings-components,
@ -121,10 +121,10 @@ stdenv.mkDerivation (finalAttrs: {
# QML components and schemas the wrapper needs
propagatedBuildInputs = [
ayatana-indicator-datetime
biometryd
libqofono
lomiri-content-hub
lomiri-indicator-datetime
lomiri-indicator-network
lomiri-schemas
lomiri-settings-components

View file

@ -7,7 +7,6 @@
linkFarm,
replaceVars,
nixosTests,
ayatana-indicator-datetime,
bash,
biometryd,
boost,
@ -33,6 +32,7 @@
lomiri-api,
lomiri-app-launch,
lomiri-download-manager,
lomiri-indicator-datetime,
lomiri-indicator-network,
lomiri-notifications,
lomiri-settings-components,
@ -143,7 +143,6 @@ stdenv.mkDerivation (finalAttrs: {
];
buildInputs = [
ayatana-indicator-datetime
bash
boost
cmake-extras
@ -163,6 +162,7 @@ stdenv.mkDerivation (finalAttrs: {
lomiri-api
lomiri-app-launch
lomiri-download-manager
lomiri-indicator-datetime
lomiri-indicator-network
lomiri-schemas
lomiri-system-settings-unwrapped

View file

@ -2,6 +2,7 @@
config,
lib,
pkgs,
ayatana-indicator-datetime,
libsForQt5,
}:
@ -63,6 +64,7 @@ let
hfd-service = callPackage ./services/hfd-service { };
lomiri-download-manager = callPackage ./services/lomiri-download-manager { };
lomiri-history-service = callPackage ./services/lomiri-history-service { };
lomiri-indicator-datetime = ayatana-indicator-datetime.override { enableLomiriFeatures = true; };
lomiri-indicator-network = callPackage ./services/lomiri-indicator-network { };
lomiri-polkit-agent = callPackage ./services/lomiri-polkit-agent { };
lomiri-telephony-service = callPackage ./services/lomiri-telephony-service { };