fluffychat: 1.22.1 -> 1.23.0 (#364091)
[NixPkgs.git] / pkgs / by-name / fi / figma-linux / package.nix
blob5e9ced617e144753e9d7ab462fd11007f0a7ddf8
2   pkgs,
3   lib,
4   stdenv,
5   fetchurl,
6   autoPatchelfHook,
7   dpkg,
8   makeWrapper,
9   wrapGAppsHook3,
10   ...
12 stdenv.mkDerivation (finalAttrs: {
13   pname = "figma-linux";
14   version = "0.11.5";
16   src = fetchurl {
17     url = "https://github.com/Figma-Linux/figma-linux/releases/download/v${finalAttrs.version}/figma-linux_${finalAttrs.version}_linux_amd64.deb";
18     hash = "sha256-6lFeiecliyuTdnUCCbLpoQWiu5k3OPHxb+VF17GtERo=";
19   };
21   nativeBuildInputs = [
22     autoPatchelfHook
23     dpkg
24     makeWrapper
25     wrapGAppsHook3
26   ];
28   buildInputs =
29     with pkgs;
30     [
31       alsa-lib
32       at-spi2-atk
33       cairo
34       cups.lib
35       dbus.lib
36       expat
37       gdk-pixbuf
38       glib
39       gtk3
40       libdrm
41       libxkbcommon
42       mesa
43       nspr
44       nss
45       pango
46     ]
47     ++ (with pkgs.xorg; [
48       libX11
49       libXcomposite
50       libXdamage
51       libXext
52       libXfixes
53       libXrandr
54       libxcb
55       libxshmfence
56     ]);
58   runtimeDependencies = with pkgs; [ eudev ];
60   unpackCmd = "dpkg -x $src .";
62   sourceRoot = ".";
64   # Instead of double wrapping the binary, simply pass the `gappsWrapperArgs`
65   # to `makeWrapper` directly
66   dontWrapGApps = true;
68   installPhase = ''
69     runHook preInstall
71     mkdir -p $out/lib && cp -r opt/figma-linux/* $_
72     mkdir -p $out/bin && ln -s $out/lib/figma-linux $_/figma-linux
74     cp -r usr/* $out
76     wrapProgramShell $out/bin/figma-linux \
77       "''${gappsWrapperArgs[@]}" \
78       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime=true}}"
80     runHook postInstall
81   '';
83   postFixup = ''
84     substituteInPlace $out/share/applications/figma-linux.desktop \
85           --replace "Exec=/opt/figma-linux/figma-linux" "Exec=$out/bin/${finalAttrs.pname}"
86   '';
88   meta = with lib; {
89     description = "Unofficial Electron-based Figma desktop app for Linux";
90     homepage = "https://github.com/Figma-Linux/figma-linux";
91     platforms = [ "x86_64-linux" ];
92     license = licenses.gpl2Plus;
93     maintainers = with maintainers; [
94       ercao
95       kashw2
96     ];
97     mainProgram = "figma-linux";
98   };