nixpkgs/pkgs/by-name/ti/ticktick/package.nix
aleksana 571c71e6f7 treewide: migrate packages to pkgs/by-name, take 1
We are migrating packages that meet below requirements:

1. using `callPackage`
2. called path is a directory
3. overriding set is empty (`{ }`)
4. not containing path expressions other than relative path (to
makenixpkgs-vet happy)
5. not referenced by nix files outside of the directory, other
than`pkgs/top-level/all-packages.nix`
6. not referencing nix files outside of the directory
7. not referencing `default.nix` (since it's changed to `package.nix`)
8. `outPath` doesn't change after migration

The tool is here: https://github.com/Aleksanaa/by-name-migrate.
2024-11-09 20:04:51 +08:00

78 lines
1.7 KiB
Nix

{ lib
, fetchurl
, stdenv
, wrapGAppsHook3
, dpkg
, autoPatchelfHook
, glibc
, gcc-unwrapped
, nss
, libdrm
, mesa
, alsa-lib
, xdg-utils
, systemd
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ticktick";
version = "6.0.10";
src = fetchurl {
url = "https://d2atcrkye2ik4e.cloudfront.net/download/linux/linux_deb_x64/ticktick-${finalAttrs.version}-amd64.deb";
hash = "sha256-/SaQJFaz8quuFk4bLmRrvfYpqyDNTV/dJBrAJpOT4S4=";
};
nativeBuildInputs = [
wrapGAppsHook3
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 = "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 ];
};
})