python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / applications / misc / openlp / lib.nix
blob9e8440a4c80664fad64f1804d6f412d2588d45c7
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
5 # python deps
6 , python, buildPythonPackage
7 , alembic, beautifulsoup4, chardet, lxml, Mako, pyenchant
8 , pyqt5_with_qtwebkit, pyxdg, sip_4, sqlalchemy, sqlalchemy-migrate
9 }:
11 buildPythonPackage rec {
12   pname = "openlp";
13   version = "2.4.6";
15   src = fetchurl {
16     url = "https://get.openlp.org/${version}/OpenLP-${version}.tar.gz";
17     sha256 = "f63dcf5f1f8a8199bf55e806b44066ad920d26c9cf67ae432eb8cdd1e761fc30";
18   };
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/
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_4
45     sqlalchemy
46     sqlalchemy-migrate
47   ];
49   prePatch = ''
50     echo 'from vlc import *' > openlp/core/ui/media/vendor/vlc.py
51   '';
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   '';
66   preFixup = ''
67     rm -r $out/${python.sitePackages}/tests
68     rm -r $out/bin
69   '';
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 ];
79     longDescription = ''
80       OpenLP is a free church presentation software.
82       Features:
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
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.
93       Bugs which affect this software packaged in Nixpkgs:
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   };