vscode-extensions.github.copilot{*}: bump (#364729)
[NixPkgs.git] / pkgs / by-name / wa / warp-terminal / package.nix
blob41d4a1cbe2e6dc8cfbb87f989098f871f669b0e1
2   lib,
3   stdenvNoCC,
4   stdenv,
5   fetchurl,
6   autoPatchelfHook,
7   undmg,
8   zstd,
9   curl,
10   fontconfig,
11   libglvnd,
12   libxkbcommon,
13   vulkan-loader,
14   wayland,
15   xdg-utils,
16   xorg,
17   zlib,
18   makeWrapper,
19   waylandSupport ? false,
22 let
23   pname = "warp-terminal";
24   versions = lib.importJSON ./versions.json;
25   passthru.updateScript = ./update.sh;
27   linux_arch = if stdenv.hostPlatform.system == "x86_64-linux" then "x86_64" else "aarch64";
29   linux = stdenv.mkDerivation (finalAttrs: {
30     inherit pname meta passthru;
31     inherit (versions."linux_${linux_arch}") version;
32     src = fetchurl {
33       inherit (versions."linux_${linux_arch}") hash;
34       url = "https://releases.warp.dev/stable/v${finalAttrs.version}/warp-terminal-v${finalAttrs.version}-1-${linux_arch}.pkg.tar.zst";
35     };
37     sourceRoot = ".";
39     postPatch = ''
40       substituteInPlace usr/bin/warp-terminal \
41         --replace-fail /opt/ $out/opt/
42     '';
44     nativeBuildInputs = [
45       autoPatchelfHook
46       zstd
47       makeWrapper
48     ];
50     buildInputs = [
51       curl
52       fontconfig
53       (lib.getLib stdenv.cc.cc) # libstdc++.so libgcc_s.so
54       zlib
55     ];
57     runtimeDependencies = [
58       libglvnd # for libegl
59       libxkbcommon
60       stdenv.cc.libc
61       vulkan-loader
62       xdg-utils
63       xorg.libX11
64       xorg.libxcb
65       xorg.libXcursor
66       xorg.libXi
67     ] ++ lib.optionals waylandSupport [ wayland ];
69     installPhase =
70       ''
71         runHook preInstall
73         mkdir $out
74         cp -r opt usr/* $out
76       ''
77       + lib.optionalString waylandSupport ''
78         wrapProgram $out/bin/warp-terminal --set WARP_ENABLE_WAYLAND 1
79       ''
80       + ''
81         runHook postInstall
82       '';
83   });
85   darwin = stdenvNoCC.mkDerivation (finalAttrs: {
86     inherit pname meta passthru;
87     inherit (versions.darwin) version;
88     src = fetchurl {
89       inherit (versions.darwin) hash;
90       url = "https://releases.warp.dev/stable/v${finalAttrs.version}/Warp.dmg";
91     };
93     sourceRoot = ".";
95     nativeBuildInputs = [ undmg ];
97     installPhase = ''
98       runHook preInstall
100       mkdir -p $out/Applications
101       cp -r *.app $out/Applications
103       runHook postInstall
104     '';
105   });
107   meta = with lib; {
108     description = "Rust-based terminal";
109     homepage = "https://www.warp.dev";
110     license = licenses.unfree;
111     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
112     maintainers = with maintainers; [
113       emilytrau
114       imadnyc
115       donteatoreo
116       johnrtitor
117     ];
118     platforms = platforms.darwin ++ [
119       "x86_64-linux"
120       "aarch64-linux"
121     ];
122   };
125 if stdenvNoCC.hostPlatform.isDarwin then darwin else linux