lol
1{ stdenv, lib, fetchFromGitHub, fetchpatch, copyDesktopItems, makeDesktopItem, qmake
2, qtbase, qtxmlpatterns, qttools, qtwebengine, libGL, fontconfig, openssl, poppler, wrapQtAppsHook
3, ffmpeg, libva, alsa-lib, SDL, x264, libvpx, libvorbis, libtheora, libogg
4, libopus, lame, fdk_aac, libass, quazip, libXext, libXfixes }:
5
6let
7 importer = stdenv.mkDerivation rec {
8 pname = "openboard-importer";
9 version = "unstable-2016-10-08";
10
11 src = fetchFromGitHub {
12 owner = "OpenBoard-org";
13 repo = "OpenBoard-Importer";
14 rev = "47927bda021b4f7f1540b794825fb0d601875e79";
15 sha256 = "19zhgsimy0f070caikc4vrrqyc8kv2h6rl37sy3iggks8z0g98gf";
16 };
17
18 nativeBuildInputs = [ qmake ];
19 buildInputs = [ qtbase ];
20 dontWrapQtApps = true;
21
22 installPhase = ''
23 install -Dm755 OpenBoardImporter $out/bin/OpenBoardImporter
24 '';
25 };
26in stdenv.mkDerivation {
27 pname = "openboard";
28 version = "unstable-2022-11-28";
29
30 src = fetchFromGitHub {
31 owner = "OpenBoard-org";
32 repo = "OpenBoard";
33 rev = "9de37af2df1a7c0d88f71c94ab2db1815d082862";
34 sha256 = "sha256-TiKrSyxtF1g1bepCoFxoxGOdREXhsMrS3g8uZKSiugg=";
35 };
36
37 postPatch = ''
38 substituteInPlace OpenBoard.pro \
39 --replace '/usr/include/quazip5' '${lib.getDev quazip}/include/QuaZip-Qt5-${quazip.version}/quazip' \
40 --replace '-lquazip5' '-lquazip1-qt5' \
41 --replace '/usr/include/poppler' '${lib.getDev poppler}/include/poppler'
42 '';
43
44 nativeBuildInputs = [ qmake copyDesktopItems wrapQtAppsHook ];
45
46 buildInputs = [
47 qtbase
48 qtxmlpatterns
49 qttools
50 qtwebengine
51 libGL
52 fontconfig
53 openssl
54 poppler
55 ffmpeg
56 libva
57 alsa-lib
58 SDL
59 x264
60 libvpx
61 libvorbis
62 libtheora
63 libogg
64 libopus
65 lame
66 fdk_aac
67 libass
68 quazip
69 libXext
70 libXfixes
71 ];
72
73 propagatedBuildInputs = [ importer ];
74
75 makeFlags = [ "release-install" ];
76
77 desktopItems = [
78 (makeDesktopItem {
79 name = "OpenBoard";
80 exec = "OpenBoard %f";
81 icon = "OpenBoard";
82 comment = "OpenBoard, an interactive white board application";
83 desktopName = "OpenBoard";
84 mimeTypes = [ "application/ubz" ];
85 categories = [ "Education" ];
86 startupNotify = true;
87 })
88 ];
89
90 installPhase = ''
91 runHook preInstall
92
93 lrelease OpenBoard.pro
94
95 # Replicated release_scripts/linux/package.sh
96 mkdir -p $out/opt/openboard/i18n
97 cp -R resources/customizations build/linux/release/product/* $out/opt/openboard/
98 cp resources/i18n/*.qm $out/opt/openboard/i18n/
99 install -m644 resources/linux/openboard-ubz.xml $out/opt/openboard/etc/
100 install -Dm644 resources/images/OpenBoard.png $out/share/icons/hicolor/64x64/apps/OpenBoard.png
101
102 runHook postInstall
103 '';
104
105 dontWrapQtApps = true;
106
107 postFixup = ''
108 makeWrapper $out/opt/openboard/OpenBoard $out/bin/OpenBoard \
109 "''${qtWrapperArgs[@]}"
110 '';
111
112 meta = with lib; {
113 description = "Interactive whiteboard application";
114 license = licenses.gpl3Plus;
115 maintainers = with maintainers; [ fufexan ];
116 platforms = platforms.linux;
117 };
118}