iosevka: 32.4.0 -> 32.5.0 (#378549)
[NixPkgs.git] / pkgs / by-name / cl / clash-verge-rev / unwrapped.nix
blob37ce4f105730c3722fd29dde38cd4bce0be3e716
2   pname,
3   version,
4   src,
5   libayatana-appindicator,
6   vendor-hash,
7   glib,
8   webui,
9   pkg-config,
10   libsoup,
11   rustPlatform,
12   makeDesktopItem,
13   libsForQt5,
14   kdePackages,
15   meta,
16   webkitgtk_4_1,
17   openssl,
19 rustPlatform.buildRustPackage {
20   inherit version src meta;
21   pname = "${pname}-unwrapped";
22   sourceRoot = "${src.name}/src-tauri";
24   useFetchCargoVendor = true;
25   cargoHash = vendor-hash;
27   env = {
28     OPENSSL_NO_VENDOR = 1;
29   };
31   patches = [
32     # https://github.com/clash-verge-rev/clash-verge-rev/pull/2582
33     ./0001-enable-format_bytes_speed-for-every-platform.patch
34   ];
36   postPatch = ''
37     substituteInPlace $cargoDepsCopy/libappindicator-sys-*/src/lib.rs \
38       --replace-fail "libayatana-appindicator3.so.1" "${libayatana-appindicator}/lib/libayatana-appindicator3.so.1"
40     substituteInPlace $cargoDepsCopy/sysproxy-*/src/linux.rs \
41       --replace-fail '"gsettings"' '"${glib.bin}/bin/gsettings"' \
42       --replace-fail '"kreadconfig5"' '"${libsForQt5.kconfig}/bin/kreadconfig5"' \
43       --replace-fail '"kreadconfig6"' '"${kdePackages.kconfig}/bin/kreadconfig6"' \
44       --replace-fail '"kwriteconfig5"' '"${libsForQt5.kconfig}/bin/kwriteconfig5"' \
45       --replace-fail '"kwriteconfig6"' '"${kdePackages.kconfig}/bin/kwriteconfig6"'
47     substituteInPlace ./tauri.conf.json \
48       --replace-fail '"frontendDist": "../dist",' '"frontendDist": "${webui}",' \
49       --replace-fail '"beforeBuildCommand": "pnpm run web:build"' '"beforeBuildCommand": ""'
50     sed -i -e '/externalBin/d' -e '/resources/d' tauri.conf.json
51     sed -i -e '/sidecar/d' -e '/resources/d' tauri.linux.conf.json
52   '';
54   nativeBuildInputs = [
55     pkg-config
56     rustPlatform.cargoSetupHook
57   ];
59   buildInputs = [
60     openssl
61     libsoup
62     webkitgtk_4_1
63   ];
65   postInstall = ''
66     install -DT icons/128x128@2x.png $out/share/icons/hicolor/128x128@2/apps/clash-verge.png
67     install -DT icons/128x128.png $out/share/icons/hicolor/128x128/apps/clash-verge.png
68     install -DT icons/32x32.png $out/share/icons/hicolor/32x32/apps/clash-verge.png
69   '';
71   desktopItems = [
72     (makeDesktopItem {
73       name = "clash-verge-rev";
74       exec = "clash-verge %u";
75       icon = "clash-verge-rev";
76       desktopName = "Clash Verge Rev";
77       genericName = meta.description;
78       mimeTypes = [ "x-scheme-handler/clash" ];
79       type = "Application";
80       terminal = false;
81     })
82   ];