avante-nvim: 0.0.12 -> 0.0.13 (#365261)
[NixPkgs.git] / pkgs / applications / office / qownnotes / default.nix
blobc122eb6590b74e0015c2a9a718966e121b549114
1 { lib
2 , stdenv
3 , fetchurl
4 , cmake
5 , qttools
6 , qtbase
7 , qtdeclarative
8 , qtsvg
9 , qtwayland
10 , qtwebsockets
11 , makeWrapper
12 , wrapQtAppsHook
13 , botan2
14 , pkg-config
15 , nixosTests
16 , installShellFiles
17 , xvfb-run
20 let
21   pname = "qownnotes";
22   appname = "QOwnNotes";
23   version = "24.12.1";
25 stdenv.mkDerivation {
26   inherit pname version;
28   src = fetchurl {
29     url = "https://github.com/pbek/QOwnNotes/releases/download/v${version}/qownnotes-${version}.tar.xz";
30     hash = "sha256-OiaZmd50kOTJSJesBYFdjjKzNUc/m7XrU5S27z0mtAI=";
31   };
33   nativeBuildInputs = [
34     cmake
35     qttools
36     wrapQtAppsHook
37     pkg-config
38     installShellFiles
39   ] ++ lib.optionals stdenv.hostPlatform.isLinux [ xvfb-run ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ makeWrapper ];
41   buildInputs = [
42     qtbase
43     qtdeclarative
44     qtsvg
45     qtwebsockets
46     botan2
47   ] ++ lib.optionals stdenv.hostPlatform.isLinux [ qtwayland ];
49   cmakeFlags = [
50     "-DQON_QT6_BUILD=ON"
51     "-DBUILD_WITH_SYSTEM_BOTAN=ON"
52   ];
54   # Install shell completion on Linux (with xvfb-run)
55   postInstall = lib.optionalString stdenv.hostPlatform.isLinux ''
56       installShellCompletion --cmd ${appname} \
57         --bash <(xvfb-run $out/bin/${appname} --completion bash) \
58         --fish <(xvfb-run $out/bin/${appname} --completion fish)
59       installShellCompletion --cmd ${pname} \
60         --bash <(xvfb-run $out/bin/${appname} --completion bash) \
61         --fish <(xvfb-run $out/bin/${appname} --completion fish)
62   ''
63   # Install shell completion on macOS
64   + lib.optionalString stdenv.isDarwin ''
65       installShellCompletion --cmd ${pname} \
66         --bash <($out/bin/${appname} --completion bash) \
67         --fish <($out/bin/${appname} --completion fish)
68   ''
69   # Create a lowercase symlink for Linux
70   + lib.optionalString stdenv.hostPlatform.isLinux ''
71     ln -s $out/bin/${appname} $out/bin/${pname}
72   ''
73   # Rename application for macOS as lowercase binary
74   + lib.optionalString stdenv.hostPlatform.isDarwin ''
75     # Prevent "same file" error
76     mv $out/bin/${appname} $out/bin/${pname}.bin
77     mv $out/bin/${pname}.bin $out/bin/${pname}
78   '';
80   # Tests QOwnNotes using the NixOS module by launching xterm:
81   passthru.tests.basic-nixos-module-functionality = nixosTests.qownnotes;
83   meta = with lib; {
84     description = "Plain-text file notepad and todo-list manager with markdown support and Nextcloud/ownCloud integration";
85     homepage = "https://www.qownnotes.org/";
86     changelog = "https://www.qownnotes.org/changelog.html";
87     downloadPage = "https://github.com/pbek/QOwnNotes/releases/tag/v${version}";
88     license = licenses.gpl2Only;
89     maintainers = with maintainers; [ pbek totoroot ];
90     platforms = platforms.unix;
91   };