diff --git a/pkgs/applications/misc/qsyncthingtray/default.nix b/pkgs/applications/misc/qsyncthingtray/default.nix index 0aeb7d7eb8fc..4f95879d5eb2 100644 --- a/pkgs/applications/misc/qsyncthingtray/default.nix +++ b/pkgs/applications/misc/qsyncthingtray/default.nix @@ -1,25 +1,44 @@ -{ stdenv, fetchFromGitHub -, qtbase, qtwebengine -, qmakeHook }: +{ stdenv, lib, fetchFromGitHub, procps ? null +, qtbase, qtwebengine, qtwebkit +, cmake, makeQtWrapper +, syncthing, syncthing-inotify ? null +, preferQWebView ? false }: stdenv.mkDerivation rec { version = "0.5.7"; name = "qsyncthingtray-${version}"; src = fetchFromGitHub { - owner = "sieren"; - repo = "QSyncthingTray"; - rev = "${version}"; + owner = "sieren"; + repo = "QSyncthingTray"; + rev = "${version}"; sha256 = "0crrdpdmlc4ahkvp5znzc4zhfwsdih655q1kfjf0g231mmynxhvq"; }; - buildInputs = [ qtbase qtwebengine ]; - nativeBuildInputs = [ qmakeHook ]; + buildInputs = [ qtbase qtwebengine ] ++ lib.optional preferQWebView qtwebkit; + nativeBuildInputs = [ cmake makeQtWrapper ]; enableParallelBuilding = true; - postInstall = '' + cmakeFlags = lib.optional preferQWebView "-DQST_BUILD_WEBKIT=1"; + + postPatch = '' + ${lib.optionalString stdenv.isLinux '' + substituteInPlace includes/platforms/linux/posixUtils.hpp \ + --replace '"/usr/local/bin/syncthing"' '"${syncthing}/bin/syncthing"' \ + --replace '"/usr/local/bin/syncthing-inotify"' '"${syncthing-inotify}/bin/syncthing-inotify"' \ + --replace '"pgrep -x' '"${procps}/bin/pgrep -x' + ''} + + ${lib.optionalString stdenv.isDarwin '' + substituteInPlace includes/platforms/darwin/macUtils.hpp \ + --replace '"/usr/local/bin/syncthing"' '"${syncthing}/bin/syncthing"' + ''} + ''; + + installPhase = let qst = "qsyncthingtray"; in '' mkdir -p $out/bin - cp binary/QSyncthingTray $out/bin + install -m755 QSyncthingTray $out/bin/${qst} + ln -s $out/bin/${qst} $out/bin/QSyncthingTray ''; meta = with stdenv.lib; { @@ -31,7 +50,7 @@ stdenv.mkDerivation rec { Written in C++ with Qt. ''; license = licenses.lgpl3; - maintainers = with maintainers; [ zraexy ]; + maintainers = with maintainers; [ zraexy peterhoeg ]; platforms = platforms.all; broken = builtins.compareVersions qtbase.version "5.7.0" >= 0; };