chromium,chromedriver: 129.0.6668.91 -> 129.0.6668.100
[NixPkgs.git] / pkgs / by-name / po / pot / package.nix
blob72f6dd5e28896c8d2b6177d09da0724129483dbf
2   lib,
3   stdenv,
4   rustPlatform,
5   fetchFromGitHub,
6   nodejs,
7   pnpm_9,
8   wrapGAppsHook3,
9   cargo,
10   rustc,
11   cargo-tauri,
12   pkg-config,
13   esbuild,
14   buildGoModule,
15   libayatana-appindicator,
16   gtk3,
17   webkitgtk,
18   libsoup,
19   openssl,
20   xdotool,
23 let
24   pnpm = pnpm_9;
26 stdenv.mkDerivation (finalAttrs: {
27   pname = "pot";
28   version = "3.0.5";
30   src = fetchFromGitHub {
31     owner = "pot-app";
32     repo = "pot-desktop";
33     rev = finalAttrs.version;
34     hash = "sha256-Y0/N5xunEXOG+FuZE23xsSwFd6PL1XClV5UIckTYNPs=";
35   };
37   sourceRoot = "${finalAttrs.src.name}/src-tauri";
39   postPatch = ''
40     substituteInPlace $cargoDepsCopy/libappindicator-sys-*/src/lib.rs \
41       --replace "libayatana-appindicator3.so.1" "${libayatana-appindicator}/lib/libayatana-appindicator3.so.1"
42   '';
44   pnpmDeps = pnpm.fetchDeps {
45     inherit (finalAttrs) pname version src;
46     hash = "sha256-AmMV8Nrn+zH/9bDkFX3Mx5xIQjkoXR8SzkdJRXkxTbA=";
47   };
49   pnpmRoot = "..";
51   cargoDeps = rustPlatform.importCargoLock {
52     lockFile = ./Cargo.lock;
53     outputHashes = {
54       # All other crates in the same workspace reuse this hash.
55       "tauri-plugin-autostart-0.0.0" = "sha256-fgJvoe3rKom2DdXXgd5rx7kzaWL/uvvye8jfL2SNhrM=";
56     };
57   };
59   nativeBuildInputs = [
60     rustPlatform.cargoSetupHook
61     cargo
62     rustc
63     cargo-tauri.hook
64     nodejs
65     pnpm.configHook
66     wrapGAppsHook3
67     pkg-config
68   ];
70   buildInputs = [
71     gtk3
72     libsoup
73     libayatana-appindicator
74     openssl
75     webkitgtk
76     xdotool
77   ];
79   env.ESBUILD_BINARY_PATH = "${lib.getExe (
80     esbuild.override {
81       buildGoModule =
82         args:
83         buildGoModule (
84           args
85           // rec {
86             version = "0.21.5";
87             src = fetchFromGitHub {
88               owner = "evanw";
89               repo = "esbuild";
90               rev = "v${version}";
91               hash = "sha256-FpvXWIlt67G8w3pBKZo/mcp57LunxDmRUaCU/Ne89B8=";
92             };
93           }
94         );
95     }
96   )}";
98   preConfigure = ''
99     # pnpm.configHook has to write to .., as our sourceRoot is set to src-tauri
100     # TODO: move frontend into its own drv
101     chmod +w ..
102   '';
104   meta = with lib; {
105     description = "Cross-platform translation software";
106     mainProgram = "pot";
107     homepage = "https://pot.pylogmon.com";
108     platforms = platforms.linux;
109     license = licenses.gpl3Only;
110     maintainers = with maintainers; [ linsui ];
111   };