nixpkgs/pkgs/applications/misc/qsyncthingtray/default.nix

73 lines
2.5 KiB
Nix
Raw Normal View History

2018-03-27 00:42:46 +01:00
{ mkDerivation, stdenv, lib, fetchFromGitHub, fetchpatch, procps
, qtbase, qtwebengine, qtwebkit
2017-05-17 20:26:11 +01:00
, cmake
, syncthing
, preferQWebView ? false
, preferNative ? true }:
2016-10-31 20:06:32 +00:00
2017-05-17 20:26:11 +01:00
mkDerivation rec {
2017-07-07 20:20:19 +01:00
version = "0.5.8";
pname = "qsyncthingtray";
2016-10-31 20:06:32 +00:00
src = fetchFromGitHub {
owner = "sieren";
repo = "QSyncthingTray";
2019-09-09 00:38:31 +01:00
rev = version;
2017-07-07 20:20:19 +01:00
sha256 = "1n9g4j7qznvg9zl6x163pi9f7wsc3x6q76i33psnm7x2v1i22x5w";
2016-10-31 20:06:32 +00:00
};
buildInputs = [ qtbase qtwebengine ] ++ lib.optional preferQWebView qtwebkit;
2017-05-17 20:26:11 +01:00
nativeBuildInputs = [ cmake ];
2017-03-13 03:46:02 +00:00
cmakeFlags = [ ]
++ lib.optional preferQWebView "-DQST_BUILD_WEBKIT=1"
++ lib.optional preferNative "-DQST_BUILD_NATIVEBROWSER=1";
patches = [ (fetchpatch {
name = "support_native_browser.patch";
url = "https://patch-diff.githubusercontent.com/raw/sieren/QSyncthingTray/pull/225.patch";
sha256 = "0w665xdlsbjxs977pdpzaclxpswf7xys1q3rxriz181lhk2y66yy";
}) ] ++ lib.optional (!preferQWebView && !preferNative) ./qsyncthingtray-0.5.8-qt-5.6.3.patch;
2017-11-17 03:05:30 +00:00
postPatch = ''
${lib.optionalString stdenv.isLinux ''
substituteInPlace includes/platforms/linux/posixUtils.hpp \
--replace '"/usr/local/bin/syncthing"' '"${syncthing}/bin/syncthing"' \
--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 ''
runHook preInstall
2016-10-31 20:06:32 +00:00
mkdir -p $out/bin
install -m755 QSyncthingTray $out/bin/${qst}
ln -s $out/bin/${qst} $out/bin/QSyncthingTray
runHook postInstall
2016-10-31 20:06:32 +00:00
'';
2017-05-17 20:26:11 +01:00
meta = with lib; {
homepage = "https://github.com/sieren/QSyncthingTray/";
2016-10-31 20:06:32 +00:00
description = "A Traybar Application for Syncthing written in C++";
longDescription = ''
A cross-platform status bar for Syncthing.
Currently supports macOS, Windows and Linux.
2016-10-31 20:06:32 +00:00
Written in C++ with Qt.
'';
license = licenses.lgpl3;
maintainers = with maintainers; [ zraexy peterhoeg ];
2016-10-31 20:06:32 +00:00
platforms = platforms.all;
2017-05-12 09:45:27 +01:00
# 0.5.7 segfaults when opening the main panel with qt 5.7 and fails to compile with qt 5.8
# but qt > 5.6 works when only using the native browser
# https://github.com/sieren/QSyncthingTray/issues/223
2021-02-04 21:55:35 +00:00
broken = (builtins.compareVersions qtbase.version "5.7.0" >= 0 && !preferNative) || stdenv.isDarwin;
2016-10-31 20:06:32 +00:00
};
}