Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{
2 lib,
3 rustPlatform,
4 fetchFromGitHub,
5 cargo-tauri,
6 nodejs,
7 pnpm_9,
8 pkg-config,
9 glib-networking,
10 openssl,
11 webkitgtk_4_1,
12 wrapGAppsHook3,
13 libsoup_3,
14 libayatana-appindicator,
15 gtk3,
16 nix-update-script,
17}:
18
19rustPlatform.buildRustPackage (finalAttrs: {
20 pname = "quantframe";
21 version = "1.4.3";
22
23 src = fetchFromGitHub {
24 owner = "Kenya-DK";
25 repo = "quantframe-react";
26 tag = "v${finalAttrs.version}";
27 hash = "sha256-ls6c9xLmjjx0kSh1s+HkdClrcTOvsAemjzqNwMeOd9c=";
28 };
29
30 postPatch = ''
31 substituteInPlace $cargoDepsCopy/libappindicator-sys-*/src/lib.rs \
32 --replace-fail "libayatana-appindicator3.so.1" "${libayatana-appindicator}/lib/libayatana-appindicator3.so.1"
33
34 substituteInPlace src-tauri/tauri.conf.json \
35 --replace-fail '"createUpdaterArtifacts": "v1Compatible"' '"createUpdaterArtifacts": false'
36 '';
37
38 patches = [
39 ./0001-disable-telemetry.patch
40 ];
41
42 pnpmDeps = pnpm_9.fetchDeps {
43 inherit (finalAttrs) pname version src;
44 fetcherVersion = 1;
45 hash = "sha256-3IHwwbl1aH3Pzh9xq2Jfev9hj6/LXZaVaIJOPbgsquE=";
46 };
47
48 cargoHash = "sha256-UyfSmlr+5mWmlisNtjF6jZKx92kdQziG26mgeZtkySY=";
49
50 nativeBuildInputs = [
51 cargo-tauri.hook
52 pkg-config
53 wrapGAppsHook3
54 nodejs
55 pnpm_9.configHook
56 ];
57
58 buildInputs = [
59 openssl
60 libsoup_3
61 glib-networking
62 gtk3
63 libayatana-appindicator
64 webkitgtk_4_1
65 ];
66
67 cargoRoot = "src-tauri";
68 buildAndTestSubdir = finalAttrs.cargoRoot;
69
70 passthru.updateScript = nix-update-script { };
71
72 meta = {
73 description = "Warframe Market listings and transactions manager";
74 mainProgram = "quantframe";
75 homepage = "https://quantframe.app/";
76 license = lib.licenses.mit;
77 platforms = lib.platforms.linux;
78 maintainers = with lib.maintainers; [ nyukuru ];
79 };
80})