biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / applications / office / qownnotes / default.nix
blob7757357ec869e109a765a768d8fc38065532fd20
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.9.8";
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-G5PLz1GzjfPM5tj3rtwJt4hR3v+oSq2bVr/llTSFbNk=";
31   };
33   nativeBuildInputs = [
34     cmake
35     qttools
36     wrapQtAppsHook
37     pkg-config
38     installShellFiles
39     xvfb-run
40   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ makeWrapper ];
42   buildInputs = [
43     qtbase
44     qtdeclarative
45     qtsvg
46     qtwebsockets
47     botan2
48   ] ++ lib.optionals stdenv.hostPlatform.isLinux [ qtwayland ];
50   cmakeFlags = [
51     "-DQON_QT6_BUILD=ON"
52     "-DBUILD_WITH_SYSTEM_BOTAN=ON"
53   ];
55   postInstall = ''
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   # Create a lowercase symlink for Linux
64   + lib.optionalString stdenv.hostPlatform.isLinux ''
65     ln -s $out/bin/${appname} $out/bin/${pname}
66   ''
67   # Wrap application for macOS as lowercase binary
68   + lib.optionalString stdenv.hostPlatform.isDarwin ''
69     mkdir -p $out/Applications
70     mv $out/bin/${appname}.app $out/Applications
71     makeWrapper $out/Applications/${appname}.app/Contents/MacOS/${appname} $out/bin/${pname}
72   '';
74   # Tests QOwnNotes using the NixOS module by launching xterm:
75   passthru.tests.basic-nixos-module-functionality = nixosTests.qownnotes;
77   meta = with lib; {
78     description = "Plain-text file notepad and todo-list manager with markdown support and Nextcloud/ownCloud integration";
79     homepage = "https://www.qownnotes.org/";
80     changelog = "https://www.qownnotes.org/changelog.html";
81     downloadPage = "https://github.com/pbek/QOwnNotes/releases/tag/v${version}";
82     license = licenses.gpl2Only;
83     maintainers = with maintainers; [ pbek totoroot ];
84     platforms = platforms.unix;
85   };