Files

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

83 lines
2.1 KiB
Nix
Raw Permalink Normal View History

2025-10-09 14:15:47 +02:00
{
lib,
stdenv,
backintime-common,
python3,
polkit,
which,
su,
coreutils,
util-linux,
wrapQtAppsHook,
qtbase,
qtwayland,
}:
let
python' = python3.withPackages (
ps: with ps; [
pyqt6
backintime-common
packaging
]
);
in
stdenv.mkDerivation {
inherit (backintime-common)
version
src
installFlags
meta
dontAddPrefix
;
pname = "backintime-qt";
buildInputs = [
python'
backintime-common
qtbase
qtwayland
];
nativeBuildInputs = backintime-common.nativeBuildInputs or [ ] ++ [
wrapQtAppsHook
];
configureFlags = [ "--python=${lib.getExe python'}" ];
preConfigure = ''
patchShebangs --build updateversion.sh
cd qt
substituteInPlace qttools_path.py \
--replace "__file__, os.pardir, os.pardir" '"${backintime-common}/${python'.sitePackages}/backintime"'
'';
preFixup = ''
wrapQtApp "$out/bin/backintime-qt" \
--prefix PATH : "${lib.getBin backintime-common}/bin:$PATH"
substituteInPlace "$out/share/polkit-1/actions/net.launchpad.backintime.policy" \
--replace-fail "/usr/bin/backintime-qt" "$out/bin/backintime-qt"
substituteInPlace "$out/share/applications/backintime-qt-root.desktop" \
--replace-fail "/usr/bin/backintime-qt" "backintime-qt"
substituteInPlace "$out/share/backintime/qt/serviceHelper.py" \
--replace-fail "'which'" "'${lib.getExe which}'" \
--replace-fail "/bin/su" "${lib.getBin su}/bin/su" \
--replace-fail "/usr/bin/backintime" "${lib.getExe backintime-common}" \
--replace-fail "/usr/bin/nice" "${lib.getBin coreutils}/bin/nice" \
--replace-fail "/usr/bin/ionice" "${lib.getBin util-linux}/bin/ionice"
substituteInPlace "$out/share/dbus-1/system-services/net.launchpad.backintime.serviceHelper.service" \
--replace-fail "/usr/share/backintime" "$out/share/backintime"
substituteInPlace "$out/bin/backintime-qt_polkit" \
--replace-fail "/usr/bin/backintime-qt" "$out/bin/backintime-qt"
wrapProgram "$out/bin/backintime-qt_polkit" \
--prefix PATH : "${lib.getBin polkit}/bin:$PATH"
'';
}