1{ lib
2, buildGoModule
3, buildFHSUserEnv
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.46.6";
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 thiagokokada flexagoon ];
45 };
46
47 subPackages = [ "." ];
48
49 vendorSha256 = "0b4h7sr9ldvgaq2rz8hyzqv1b5gk8gkc9yxc8m3yzh2fxzznkr87";
50
51 src = fetchFromGitHub {
52 rev = "v${version}";
53 owner = "go-flutter-desktop";
54 repo = pname;
55 sha256 = "127hz08rvskl6hayn7dwd78g9lz83w7bmhdamk1fhwvay396q9qk";
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
87buildFHSUserEnv 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}