cb2cfba6f7
Notably: - remove explicit arguments that match the defaults - convert everything to the right Nix types
157 lines
4 KiB
Nix
157 lines
4 KiB
Nix
{ mkDerivation, lib, fetchFromGitHub, buildEnv, makeDesktopItem, runCommand, writeText, pkg-config
|
|
, cmake, qmake, cacert, jsoncpp, libX11, libXScrnSaver, lua, openssl, poco
|
|
, qtbase, qtwebengine, qtx11extras, sqlite }:
|
|
|
|
let
|
|
name = "toggldesktop-${version}";
|
|
version = "7.4.231";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "toggl";
|
|
repo = "toggldesktop";
|
|
rev = "v${version}";
|
|
sha256 = "sha256-YaeeUlwz42i1ik5nUKSIy0IBrvu1moi95dBK2lKfGAY=";
|
|
};
|
|
|
|
bugsnag-qt = mkDerivation rec {
|
|
pname = "bugsnag-qt";
|
|
version = "20180522.005732";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "alpakido";
|
|
repo = "bugsnag-qt";
|
|
rev = version;
|
|
sha256 = "sha256-2L7pxdQOniwrp1Kgq3Q8BFbjb2yGtGoKUiQC+B6tRgs=";
|
|
};
|
|
|
|
nativeBuildInputs = [ qmake ];
|
|
buildInputs = [ qtbase ];
|
|
};
|
|
|
|
qxtglobalshortcut = mkDerivation rec {
|
|
pname = "qxtglobalshortcut";
|
|
version = "f584471dada2099ba06c574bdfdd8b078c2e3550";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "hluk";
|
|
repo = "qxtglobalshortcut";
|
|
rev = version;
|
|
sha256 = "sha256-gb94rqK8j1mbD4YSXdOaxCdczZJFC6MU+iBsdf07wcc=";
|
|
};
|
|
|
|
nativeBuildInputs = [ cmake ];
|
|
buildInputs = [ qtbase qtx11extras ];
|
|
};
|
|
|
|
qt-oauth-lib = mkDerivation rec {
|
|
pname = "qt-oauth-lib";
|
|
version = "20190125.190943";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "alpakido";
|
|
repo = "qt-oauth-lib";
|
|
rev = version;
|
|
sha256 = "sha256-MjtNAN4F9JJFxM8MYpCv8tPe26RHtbXdq+lY49p+rn4=";
|
|
};
|
|
|
|
nativeBuildInputs = [ qmake ];
|
|
buildInputs = [ qtbase qtwebengine ];
|
|
};
|
|
|
|
poco-pc = writeText "poco.pc" ''
|
|
Name: Poco
|
|
Description: ${poco.meta.description}
|
|
Version: ${poco.version}
|
|
Libs: -L${poco}/lib -lPocoDataSQLite -lPocoData -lPocoNet -lPocoNetSSL -lPocoCrypto -lPocoUtil -lPocoXML -lPocoFoundation
|
|
Cflags: -I${poco}/include/Poco
|
|
'';
|
|
|
|
poco-pc-wrapped = runCommand "poco-pc-wrapped" {} ''
|
|
mkdir -p $out/lib/pkgconfig && ln -s ${poco-pc} $_/poco.pc
|
|
'';
|
|
|
|
libtoggl = mkDerivation {
|
|
name = "libtoggl-${version}";
|
|
inherit src version;
|
|
|
|
sourceRoot = "source/src";
|
|
|
|
nativeBuildInputs = [ qmake pkg-config ];
|
|
buildInputs = [ jsoncpp lua openssl poco poco-pc-wrapped sqlite libX11 ];
|
|
|
|
postPatch = ''
|
|
cat ${./libtoggl.pro} > libtoggl.pro
|
|
rm get_focused_window_{mac,windows}.cc
|
|
'';
|
|
};
|
|
|
|
toggldesktop = mkDerivation {
|
|
name = "${name}-unwrapped";
|
|
inherit src version;
|
|
|
|
sourceRoot = "source/src/ui/linux/TogglDesktop";
|
|
|
|
postPatch = ''
|
|
substituteAll ${./TogglDesktop.pro} TogglDesktop.pro
|
|
substituteInPlace toggl.cpp \
|
|
--replace ./../../../toggl_api.h toggl_api.h
|
|
'';
|
|
|
|
postInstall = ''
|
|
ln -s ${cacert}/etc/ssl/certs/ca-bundle.crt $out/cacert.pem
|
|
'';
|
|
|
|
nativeBuildInputs = [ qmake pkg-config ];
|
|
|
|
buildInputs = [
|
|
bugsnag-qt
|
|
libtoggl
|
|
qxtglobalshortcut
|
|
qtbase
|
|
qtwebengine
|
|
qt-oauth-lib
|
|
qtx11extras
|
|
libX11
|
|
libXScrnSaver
|
|
];
|
|
};
|
|
|
|
toggldesktop-icons = mkDerivation {
|
|
name = "${name}-icons";
|
|
inherit (toggldesktop) src sourceRoot;
|
|
|
|
installPhase = ''
|
|
for f in icons/*; do
|
|
mkdir -p $out/share/icons/hicolor/$(basename $f)/apps
|
|
mv $f/toggldesktop.png $_
|
|
done
|
|
'';
|
|
};
|
|
|
|
toggldesktop-wrapped = runCommand "toggldesktop-wrapped" {} ''
|
|
mkdir -p $out/bin && ln -s ${toggldesktop}/toggldesktop $_
|
|
'';
|
|
|
|
desktopItem = makeDesktopItem rec {
|
|
categories = [ "Utility" ];
|
|
desktopName = "Toggl";
|
|
genericName = desktopName;
|
|
name = "toggldesktop";
|
|
exec = "${toggldesktop-wrapped}/bin/toggldesktop";
|
|
icon = "toggldesktop";
|
|
};
|
|
in
|
|
|
|
buildEnv {
|
|
inherit name;
|
|
paths = [ desktopItem toggldesktop-icons toggldesktop-wrapped ];
|
|
|
|
meta = with lib; {
|
|
broken = true; # libtoggl is broken
|
|
description = "Client for Toggl time tracking service";
|
|
homepage = "https://github.com/toggl/toggldesktop";
|
|
license = licenses.bsd3;
|
|
maintainers = with maintainers; [ yana ];
|
|
platforms = platforms.linux;
|
|
};
|
|
}
|