1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 wrapQtAppsHook,
6 qmake,
7 qtmultimedia,
8}:
9
10stdenv.mkDerivation rec {
11 pname = "kristall";
12 version = "0.3";
13
14 src = fetchFromGitHub {
15 owner = "MasterQ32";
16 repo = "kristall";
17 rev = "V${version}";
18 sha256 = "07nf7w6ilzs5g6isnvsmhh4qa1zsprgjyf0zy7rhpx4ikkj8c8zq";
19 };
20
21 postPatch = lib.optionalString stdenv.cc.isClang ''
22 sed -i '1i #include <errno.h>' src/browsertab.cpp
23 '';
24
25 nativeBuildInputs = [
26 wrapQtAppsHook
27 qmake
28 ];
29
30 buildInputs = [ qtmultimedia ];
31
32 qmakeFlags = [ "src/kristall.pro" ];
33
34 installPhase =
35 if stdenv.hostPlatform.isDarwin then
36 ''
37 mkdir -p $out/Applications
38 mv kristall.app $out/Applications
39 ''
40 else
41 ''
42 install -Dt $out/bin kristall
43 install -D Kristall.desktop $out/share/applications/net.random-projects.kristall.desktop
44 install -D src/icons/kristall.svg $out/share/icons/hicolor/scalable/apps/net.random-projects.kristall.svg
45 for size in 16 32 64 128; do
46 install -D src/icons/kristall-''${size}.png $out/share/icons/hicolor/''${size}x''${size}/apps/net.random-projects.kristall.png
47 done
48 '';
49
50 meta = with lib; {
51 description = "Graphical small-internet client, supports gemini, http, https, gopher, finger";
52 mainProgram = "kristall";
53 homepage = "https://random-projects.net/projects/kristall.gemini";
54 maintainers = with maintainers; [ ehmry ];
55 license = licenses.gpl3Only;
56 inherit (qtmultimedia.meta) platforms;
57 };
58}