vuls: init at 0.27.0 (#348530)
[NixPkgs.git] / pkgs / applications / office / appflowy / default.nix
blob0790cb44d1f336e04d83657c06dedd0942b97f24
2   stdenvNoCC,
3   lib,
4   fetchzip,
5   autoPatchelfHook,
6   makeWrapper,
7   copyDesktopItems,
8   makeDesktopItem,
9   gtk3,
10   xdg-user-dirs,
11   keybinder3,
12   libnotify,
15 let
16   dist =
17     rec {
18       x86_64-linux = {
19         urlSuffix = "linux-x86_64.tar.gz";
20         hash = "sha256-sQ3dxwPWHLUoWgnR9+oHaFoDzXxtwKRiBvz2wkFB01g=";
21       };
22       x86_64-darwin = {
23         urlSuffix = "macos-universal.zip";
24         hash = "sha256-4bU/qecZBrTr34SZAjDDgwpXAAHDITz6lV6mJGjElko=";
25       };
26       aarch64-darwin = x86_64-darwin;
27     }
28     ."${stdenvNoCC.hostPlatform.system}"
29       or (throw "appflowy: No source for system: ${stdenvNoCC.hostPlatform.system}");
31 stdenvNoCC.mkDerivation (finalAttrs: {
32   pname = "appflowy";
33   version = "0.6.8";
35   src = fetchzip {
36     url = "https://github.com/AppFlowy-IO/appflowy/releases/download/${finalAttrs.version}/AppFlowy-${finalAttrs.version}-${dist.urlSuffix}";
37     inherit (dist) hash;
38     stripRoot = false;
39   };
41   nativeBuildInputs = [
42     makeWrapper
43     copyDesktopItems
44   ] ++ lib.optionals stdenvNoCC.hostPlatform.isLinux [ autoPatchelfHook ];
46   buildInputs = [
47     gtk3
48     keybinder3
49     libnotify
50   ];
52   dontBuild = true;
53   dontConfigure = true;
55   installPhase =
56     lib.optionalString stdenvNoCC.hostPlatform.isLinux ''
57       runHook preInstall
59       cd AppFlowy/
61       mkdir -p $out/{bin,opt}
63       # Copy archive contents to the outpout directory
64       cp -r ./* $out/opt/
66       # Copy icon
67       install -Dm444 data/flutter_assets/assets/images/flowy_logo.svg $out/share/icons/hicolor/scalable/apps/appflowy.svg
69       runHook postInstall
70     ''
71     + lib.optionalString stdenvNoCC.hostPlatform.isDarwin ''
72       runHook preInstall
74       mkdir -p $out/{Applications,bin}
75       cp -r ./AppFlowy.app $out/Applications/
77       runHook postInstall
78     '';
80   preFixup =
81     lib.optionalString stdenvNoCC.hostPlatform.isLinux ''
82       # Add missing libraries to appflowy using the ones it comes with
83       makeWrapper $out/opt/AppFlowy $out/bin/appflowy \
84         --set LD_LIBRARY_PATH "$out/opt/lib/" \
85         --prefix PATH : "${lib.makeBinPath [ xdg-user-dirs ]}"
86     ''
87     + lib.optionalString stdenvNoCC.hostPlatform.isDarwin ''
88       makeWrapper $out/Applications/AppFlowy.app/Contents/MacOS/AppFlowy $out/bin/appflowy
89     '';
91   desktopItems = lib.optionals stdenvNoCC.hostPlatform.isLinux [
92     (makeDesktopItem {
93       name = "appflowy";
94       desktopName = "AppFlowy";
95       comment = finalAttrs.meta.description;
96       exec = "appflowy";
97       icon = "appflowy";
98       categories = [ "Office" ];
99     })
100   ];
102   meta = with lib; {
103     description = "An open-source alternative to Notion";
104     homepage = "https://www.appflowy.io/";
105     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
106     license = licenses.agpl3Only;
107     changelog = "https://github.com/AppFlowy-IO/appflowy/releases/tag/${finalAttrs.version}";
108     maintainers = with maintainers; [ darkonion0 ];
109     platforms = [ "x86_64-linux" ] ++ platforms.darwin;
110     mainProgram = "appflowy";
111   };