diff --git a/pkgs/applications/office/ticktick/default.nix b/pkgs/applications/office/ticktick/default.nix new file mode 100644 index 000000000000..c236ba45056b --- /dev/null +++ b/pkgs/applications/office/ticktick/default.nix @@ -0,0 +1,77 @@ +{ lib +, fetchurl +, stdenv +, wrapGAppsHook +, dpkg +, autoPatchelfHook +, glibc +, gcc-unwrapped +, nss +, libdrm +, mesa +, alsa-lib +, xdg-utils +, systemd +}: +stdenv.mkDerivation (finalAttrs: { + pname = "ticktick"; + version = "1.0.80"; + + src = fetchurl { + url = "https://d2atcrkye2ik4e.cloudfront.net/download/linux/linux_deb_x64/${finalAttrs.pname}-${finalAttrs.version}-amd64.deb"; + hash = "sha256-EK+8NFEim2gcFj9t6AGYdGVlyFj9Yq7NaOia3XKy3cc="; + }; + + nativeBuildInputs = [ + wrapGAppsHook + autoPatchelfHook + dpkg + ]; + + buildInputs = [ + nss + glibc + libdrm + gcc-unwrapped + mesa + alsa-lib + xdg-utils + ]; + + # Needed to make the process get past zygote_linux fork()'ing + runtimeDependencies = [ + systemd + ]; + + unpackPhase = '' + runHook preUnpack + + mkdir -p "$out/share" "$out/opt/${finalAttrs.pname}" "$out/bin" + dpkg-deb --fsys-tarfile "$src" | tar --extract --directory="$out" + + runHook postUnpack + ''; + + installPhase = '' + runHook preInstall + + cp -av $out/opt/TickTick/* $out/opt/${finalAttrs.pname} + cp -av $out/usr/share/* $out/share + rm -rf $out/usr $out/opt/TickTick + ln -sf "$out/opt/${finalAttrs.pname}/${finalAttrs.pname}" "$out/bin/${finalAttrs.pname}" + + substituteInPlace "$out/share/applications/${finalAttrs.pname}.desktop" \ + --replace "Exec=/opt/TickTick/ticktick" "Exec=$out/bin/${finalAttrs.pname}" + + runHook postInstall + ''; + + meta = with lib; { + description = "A powerful to-do & task management app with seamless cloud synchronization across all your devices"; + homepage = "https://ticktick.com/home/"; + license = licenses.unfree; + maintainers = with maintainers; [ hbjydev ]; + platforms = [ "x86_64-linux" ]; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + }; +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 115ca4e13eb5..43c9e65504b4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12331,6 +12331,8 @@ with pkgs; teapot = callPackage ../applications/office/teapot { }; + ticktick = callPackage ../applications/office/ticktick { }; + pyditz = callPackage ../applications/misc/pyditz { pythonPackages = python3Packages; };