mangayomi: useFetchCargoVendor (#376506)
[NixPkgs.git] / pkgs / by-name / ti / ticktick / package.nix
blob188aee8e178371a1932abc095701b79a8cd95398
2   lib,
3   fetchurl,
4   stdenv,
5   wrapGAppsHook3,
6   dpkg,
7   autoPatchelfHook,
8   glibc,
9   gcc-unwrapped,
10   nss,
11   libdrm,
12   libgbm,
13   alsa-lib,
14   xdg-utils,
15   systemd,
17 stdenv.mkDerivation (finalAttrs: {
18   pname = "ticktick";
19   version = "6.0.21";
21   src = fetchurl {
22     url = "https://d2atcrkye2ik4e.cloudfront.net/download/linux/linux_deb_x64/ticktick-${finalAttrs.version}-amd64.deb";
23     hash = "sha256-e5N20FL2c6XdkDax0SMGigLuatXKZxb9c53sqQ5XVtM=";
24   };
26   nativeBuildInputs = [
27     wrapGAppsHook3
28     autoPatchelfHook
29     dpkg
30   ];
32   buildInputs = [
33     nss
34     glibc
35     libdrm
36     gcc-unwrapped
37     libgbm
38     alsa-lib
39     xdg-utils
40   ];
42   # Needed to make the process get past zygote_linux fork()'ing
43   runtimeDependencies = [
44     systemd
45   ];
47   unpackPhase = ''
48     runHook preUnpack
50     mkdir -p "$out/share" "$out/opt/${finalAttrs.pname}" "$out/bin"
51     dpkg-deb --fsys-tarfile "$src" | tar --extract --directory="$out"
53     runHook postUnpack
54   '';
56   installPhase = ''
57     runHook preInstall
59     cp -av $out/opt/TickTick/* $out/opt/${finalAttrs.pname}
60     cp -av $out/usr/share/* $out/share
61     rm -rf $out/usr $out/opt/TickTick
62     ln -sf "$out/opt/${finalAttrs.pname}/${finalAttrs.pname}" "$out/bin/${finalAttrs.pname}"
64     substituteInPlace "$out/share/applications/${finalAttrs.pname}.desktop" \
65       --replace "Exec=/opt/TickTick/ticktick" "Exec=$out/bin/${finalAttrs.pname}"
67     runHook postInstall
68   '';
70   meta = with lib; {
71     description = "Powerful to-do & task management app with seamless cloud synchronization across all your devices";
72     homepage = "https://ticktick.com/home/";
73     license = licenses.unfree;
74     maintainers = with maintainers; [ hbjydev ];
75     platforms = [ "x86_64-linux" ];
76     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
77   };