Merge pull request #329823 from ExpidusOS/fix/pkgsllvm/elfutils
[NixPkgs.git] / pkgs / by-name / af / affine / package.nix
blob229d32bc1df84de52ef35f6a4ae68f077bf33b5d
1 { lib
2 , fetchurl
3 , stdenvNoCC
4 , copyDesktopItems
5 , makeDesktopItem
6 , makeWrapper
7 , unzip
8 , electron
9 , commandLineArgs ? ""
12 stdenvNoCC.mkDerivation (finalAttrs: let
13   icon = fetchurl {
14     url = "https://raw.githubusercontent.com/toeverything/AFFiNE/v${finalAttrs.version}/packages/frontend/core/public/favicon-192.png";
15     hash = "sha256-smZ5W7fy3TK3bvjwV4i71j2lVmKSZcyhMhcWfPxNnN4=";
16   };
17 in {
18   pname = "affine";
19   version = "0.15.7";
20   src = fetchurl {
21     url = "https://github.com/toeverything/AFFiNE/releases/download/v${finalAttrs.version}/affine-${finalAttrs.version}-stable-linux-x64.zip";
22     hash = "sha256-CbbCYcZ6z5Prj9GwIoneHU3LUsae0S4o40LgunLmQ8s=";
23   };
24   nativeBuildInputs = [
25     copyDesktopItems
26     makeWrapper
27     unzip
28   ];
29   postInstall = ''
30     mkdir -p $out/lib
31     cp -r ./resources/* -t $out/lib/
32     cp LICENSE* $out/
33     install -Dm644 ${icon} $out/share/pixmaps/affine.png
34     makeWrapper "${electron}/bin/electron" $out/bin/affine \
35       --inherit-argv0 \
36       --add-flags $out/lib/app.asar \
37       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
38       --add-flags ${lib.escapeShellArg commandLineArgs}
39   '';
40   desktopItems = [
41     (makeDesktopItem {
42       name = "affine";
43       desktopName = "AFFiNE";
44       exec = "affine %U";
45       terminal = false;
46       icon = "affine";
47       startupWMClass = "affine";
48       categories = ["Utility"];
49     })
50   ];
51   meta = with lib; {
52     description = "Workspace with fully merged docs, whiteboards and databases";
53     longDescription = ''
54       AFFiNE is an open-source, all-in-one workspace and an operating
55       system for all the building blocks that assemble your knowledge
56       base and much more -- wiki, knowledge management, presentation
57       and digital assets
58     '';
59     homepage = "https://affine.pro/";
60     downloadPage = "https://affine.pro/download";
61     license = licenses.mit;
62     maintainers = with maintainers; [richar redyf];
63     mainProgram = "affine";
64     platforms = ["x86_64-linux"];
65   };