f34ce41345
GitOrigin-RevId: b73c2221a46c13557b1b3be9c2070cc42cf01eb3
104 lines
3.3 KiB
Nix
104 lines
3.3 KiB
Nix
{
|
|
stdenv,
|
|
lib,
|
|
fetchFromGitLab,
|
|
fetchpatch,
|
|
gitUpdater,
|
|
cmake,
|
|
cmake-extras,
|
|
dbus,
|
|
dbus-test-runner,
|
|
gtest,
|
|
libnotify,
|
|
pkg-config,
|
|
polkit,
|
|
properties-cpp,
|
|
python3,
|
|
}:
|
|
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
pname = "lomiri-polkit-agent";
|
|
version = "0.1";
|
|
|
|
src = fetchFromGitLab {
|
|
owner = "ubports";
|
|
repo = "development/core/lomiri-polkit-agent";
|
|
rev = finalAttrs.version;
|
|
hash = "sha256-nA2jkyNQC1YIMpJkfJt2F97txGUT4UO7+aSgzr7IUU0=";
|
|
};
|
|
|
|
patches = [
|
|
# Remove when https://gitlab.com/ubports/development/core/lomiri-polkit-agent/-/merge_requests/2 merged & in release
|
|
(fetchpatch {
|
|
name = "0001-lomiri-polkit-agent-Fix-authentication-test-with-libnotify-gteq-0.8.patch";
|
|
url = "https://gitlab.com/ubports/development/core/lomiri-polkit-agent/-/commit/415d897735b9005426ec29348a882b9080fcd808.patch";
|
|
hash = "sha256-fAJJ5Bz4P76arhSmiWVa/8S+mb/NqPr65Nm3MkwKtjA=";
|
|
})
|
|
|
|
# Remove when https://gitlab.com/ubports/development/core/lomiri-polkit-agent/-/merge_requests/9 merged & in release
|
|
(fetchpatch {
|
|
name = "0002-lomiri-polkit-agent-Make-tests-optional-and-use-BUILD_TESTING.patch";
|
|
url = "https://gitlab.com/ubports/development/core/lomiri-polkit-agent/-/commit/908177fa24b79b06161116c3c274357122984d36.patch";
|
|
hash = "sha256-duHx4iNqgAlS649BO1s6D5E2SX9MPRCKb+mit+2cybM=";
|
|
})
|
|
|
|
# Remove when https://gitlab.com/ubports/development/core/lomiri-polkit-agent/-/merge_requests/10 merged & in release
|
|
(fetchpatch {
|
|
name = "0003-lomiri-polkit-agent-Explicitly-look-for-properties-cpp.patch";
|
|
url = "https://gitlab.com/ubports/development/core/lomiri-polkit-agent/-/commit/08bf36e50025aeefc5ba388d6d0f84d760add9cb.patch";
|
|
hash = "sha256-OFzj/FFXm1fX6+1GY97CON7Nne9wVPmQAxVFpP9rIpU=";
|
|
})
|
|
];
|
|
|
|
postPatch = ''
|
|
# Partial application of still-under-discussion https://gitlab.com/ubports/development/core/lomiri-polkit-agent/-/merge_requests/8
|
|
substituteInPlace data/lomiri-polkit-agent.service.in \
|
|
--replace-fail 'After=lomiri-full-greeter.service lomiri-full-shell.service lomiri-greeter.service lomiri-shell.service' 'After=graphical-session.target' \
|
|
--replace-fail 'PartOf=' 'PartOf=lomiri.service ' \
|
|
--replace-fail 'WantedBy=' 'WantedBy=lomiri.service '
|
|
|
|
# Workaround to avoid coredump on logout
|
|
# https://gitlab.com/ubports/development/core/lomiri-polkit-agent/-/issues/1
|
|
substituteInPlace service/main.cpp \
|
|
--replace-fail 'retval.set_value(0);' 'try { retval.set_value(0); } catch (const std::future_error& ex) {}'
|
|
'';
|
|
|
|
strictDeps = true;
|
|
|
|
nativeBuildInputs = [
|
|
cmake
|
|
pkg-config
|
|
];
|
|
|
|
buildInputs = [
|
|
cmake-extras
|
|
libnotify
|
|
polkit
|
|
properties-cpp
|
|
];
|
|
|
|
nativeCheckInputs = [
|
|
dbus
|
|
(python3.withPackages (ps: with ps; [ python-dbusmock ]))
|
|
];
|
|
|
|
checkInputs = [
|
|
dbus-test-runner
|
|
gtest
|
|
];
|
|
|
|
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
|
|
|
|
# Parallelism breaks dbus during tests
|
|
enableParallelChecking = false;
|
|
|
|
passthru.updateScript = gitUpdater { };
|
|
|
|
meta = {
|
|
description = "Policy kit agent for the Lomiri desktop";
|
|
homepage = "https://gitlab.com/ubports/development/core/lomiri-polkit-agent";
|
|
license = lib.licenses.gpl3Only;
|
|
maintainers = lib.teams.lomiri.members;
|
|
platforms = lib.platforms.linux;
|
|
};
|
|
})
|