···1+# This file contains the base package, some of which is compiled.
2+# Runtime glue to optinal runtime dependencies is in 'default.nix'.
3+{ fetchurl, lib, qt5
4+5+# python deps
6+, python, buildPythonPackage
7+, alembic, beautifulsoup4, chardet, lxml, Mako, pyenchant
8+, pyqt5_with_qtwebkit, pyxdg, sip, sqlalchemy, sqlalchemy_migrate
9+}:
10+11+buildPythonPackage rec {
12+ pname = "openlp";
13+ version = "2.4.6";
14+15+ src = fetchurl {
16+ url = "https://get.openlp.org/${version}/OpenLP-${version}.tar.gz";
17+ sha256 = "f63dcf5f1f8a8199bf55e806b44066ad920d26c9cf67ae432eb8cdd1e761fc30";
18+ };
19+20+ doCheck = false;
21+ # FIXME: checks must be disabled because they are lacking the qt env.
22+ # They fail like this, even if built and wrapped with all Qt and
23+ # runtime dependencies:
24+ #
25+ # running install tests
26+ # qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
27+ # This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
28+ #
29+ # Available platform plugins are: wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx.
30+ #
31+ # See also https://discourse.nixos.org/t/qt-plugin-path-unset-in-test-phase/
32+33+ #checkInputs = [ mock nose ];
34+ nativeBuildInputs = [ qt5.qttools ];
35+ propagatedBuildInputs = [
36+ alembic
37+ beautifulsoup4
38+ chardet
39+ lxml
40+ Mako
41+ pyenchant
42+ pyqt5_with_qtwebkit
43+ pyxdg
44+ sip
45+ sqlalchemy
46+ sqlalchemy_migrate
47+ ];
48+49+ prePatch = ''
50+ echo 'from vlc import *' > openlp/core/ui/media/vendor/vlc.py
51+ '';
52+53+ dontWrapQtApps = true;
54+ dontWrapGApps = true;
55+ postInstall = ''
56+ ( # use subshell because of cd
57+ tdestdir="$out/i18n"
58+ mkdir -p "$tdestdir"
59+ cd ./resources/i18n
60+ for file in *.ts; do
61+ lconvert -i "$file" -o "$tdestdir/''${file%%ts}qm"
62+ done
63+ )
64+ '';
65+66+ preFixup = ''
67+ rm -r $out/${python.sitePackages}/tests
68+ rm -r $out/bin
69+ '';
70+71+ meta = with lib; {
72+ description = "Free church presentation software";
73+ homepage = "https://openlp.org/";
74+ downloadPage = "https://openlp.org/#downloads";
75+ platforms = platforms.unix;
76+ license = licenses.gpl2Only;
77+ maintainers = [ maintainers.jorsn ];
78+79+ longDescription = ''
80+ OpenLP is a free church presentation software.
81+82+ Features:
83+84+ * Cross platform between Linux, Windows, OS X and FreeBSD
85+ * Display songs, Bible verses, presentations, images, audio and video
86+ * Control OpenLP remotely via the Android remote, iOS remote or mobile web browser
87+ * Quickly and easily import songs from other popular presentation packages
88+ * Easy enough to use to get up and running in less than 10 minutes
89+90+ Remark: This pkg only supports sqlite dbs. If you wish to have support for
91+ mysql or postgresql dbs, or Jenkins, please contact the maintainer.
92+93+ Bugs which affect this software packaged in Nixpkgs:
94+95+ 1. The package must disable checks, because they are lacking the qt env.
96+ (see pkg source and https://discourse.nixos.org/t/qt-plugin-path-unset-in-test-phase/)
97+ 2. There is a segfault on exit. Not a real problem, according to debug log, everything
98+ shuts down correctly. Maybe related to https://forums.openlp.org/discussion/3620/crash-on-exit.
99+ Plan: Wait for OpenLP-3, since it is already in beta 1
100+ (2021-02-09; news: https://openlp.org/blog/).
101+ '';
102+ };
103+}