1{ lib
2, buildGoModule
3, buildFHSEnv
4, binutils
5, dejavu_fonts
6, pkg-config
7, fetchFromGitHub
8, roboto
9, writeScript
10, xorg
11, libglvnd
12, addOpenGLRunpath
13, makeWrapper
14, gcc
15, go
16, flutter
17}:
18
19let
20 pname = "hover";
21 version = "0.47.0";
22
23 libs = with xorg; [
24 libX11.dev
25 libXcursor.dev
26 libXext.dev
27 libXi.dev
28 libXinerama.dev
29 libXrandr.dev
30 libXrender.dev
31 libXfixes.dev
32 libXxf86vm
33 libglvnd.dev
34 xorgproto
35 ];
36 hover = buildGoModule rec {
37 inherit pname version;
38
39 meta = with lib; {
40 description = "A build tool to run Flutter applications on desktop";
41 homepage = "https://github.com/go-flutter-desktop/hover";
42 license = licenses.bsd3;
43 platforms = platforms.linux;
44 maintainers = with maintainers; [ ericdallo ];
45 };
46
47 subPackages = [ "." ];
48
49 vendorSha256 = "sha256-GDoX5d2aDfaAx9JsKuS4r8137t3swT6rgcCghmaThSM=";
50
51 src = fetchFromGitHub {
52 rev = "v${version}";
53 owner = "go-flutter-desktop";
54 repo = pname;
55 sha256 = "sha256-ch59Wx4g72u7x99807ppURI4I+5aJ/W8Zr35q8X68v4=";
56 };
57
58 nativeBuildInputs = [ addOpenGLRunpath makeWrapper ];
59
60 buildInputs = libs;
61
62 checkRun = false;
63
64 patches = [
65 ./fix-assets-path.patch
66 ];
67
68 postPatch = ''
69 sed -i 's|@assetsFolder@|'"''${out}/share/assets"'|g' internal/fileutils/assets.go
70 '';
71
72 postInstall = ''
73 mkdir -p $out/share
74 cp -r assets $out/share/assets
75 chmod -R a+rx $out/share/assets
76
77 wrapProgram "$out/bin/hover" \
78 --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath libs}
79 '';
80
81 postFixup = ''
82 addOpenGLRunpath $out/bin/hover
83 '';
84 };
85
86in
87buildFHSEnv rec {
88 name = pname;
89 targetPkgs = pkgs: [
90 binutils
91 dejavu_fonts
92 flutter
93 gcc
94 go
95 hover
96 pkg-config
97 roboto
98 ] ++ libs;
99
100 runScript = "hover";
101}