base16-schemes: unstable-2024-06-21 -> unstable-2024-11-12
[NixPkgs.git] / pkgs / by-name / li / liana / package.nix
blobab9b9e15cfd09a2a32b92828475083b93e9c0662
1 { lib
2 , stdenv
3 , rustPlatform
4 , fetchFromGitHub
5 , pkg-config
6 , cmake
7 , copyDesktopItems
8 , makeDesktopItem
9 , makeWrapper
10 , expat
11 , fontconfig
12 , freetype
13 , libGL
14 , udev
15 , libxkbcommon
16 , wayland
17 , vulkan-loader
18 , xorg
21 let
22   runtimeLibs = [
23     expat
24     fontconfig
25     freetype
26     freetype.dev
27     libGL
28     pkg-config
29     udev
30     wayland
31     libxkbcommon
32     vulkan-loader
33     xorg.libX11
34     xorg.libXcursor
35     xorg.libXi
36     xorg.libXrandr
37   ];
39 rustPlatform.buildRustPackage rec {
40   pname = "liana";
41   version = "6.0"; # keep in sync with lianad
43   src = fetchFromGitHub {
44     owner = "wizardsardine";
45     repo = "liana";
46     rev = "v${version}";
47     hash = "sha256-LLDgo4GoRTVYt72IT0II7O5wiMDrvJhe0f2yjzxQgsE=";
48   };
50   cargoLock = {
51     lockFile = ./Cargo.lock;
52     outputHashes = {
53       "liana-6.0.0" = "sha256-04jER209Q9xj9HJ6cLXuK3a2b6fIjAYI+X0+J8noP6A=";
54       "iced_futures-0.12.3" = "sha256-ztWEde3bJpT8lmk+pNhj/v2cpw/z3TNvzCSvEXwinKQ=";
55     };
56   };
58   nativeBuildInputs = [
59     pkg-config
60     cmake
61     copyDesktopItems
62     makeWrapper
63   ];
65   buildInputs = [
66     fontconfig
67     udev
68   ];
70   sourceRoot = "${src.name}/gui";
72   postInstall = ''
73     install -Dm0644 ./ui/static/logos/liana-app-icon.svg $out/share/icons/hicolor/scalable/apps/liana.svg
74     wrapProgram $out/bin/liana-gui --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeLibs}"
75   '';
77   desktopItems = [
78     (makeDesktopItem {
79       name = "Liana";
80       exec = "liana-gui";
81       icon = "liana";
82       desktopName = "Liana";
83       comment = meta.description;
84     })
85   ];
87   doCheck = true;
89   meta = with lib; {
90     mainProgram = "liana-gui";
91     description = "A Bitcoin wallet leveraging on-chain timelocks for safety and recovery";
92     homepage = "https://wizardsardine.com/liana";
93     changelog = "https://github.com/wizardsardine/liana/releases/tag/${src.rev}";
94     license = licenses.bsd3;
95     maintainers = with maintainers; [ dunxen ];
96     platforms = platforms.linux;
97     broken = stdenv.hostPlatform.isAarch64;
98   };