fluffychat: 1.22.1 -> 1.23.0 (#364091)
[NixPkgs.git] / pkgs / by-name / ca / calls / package.nix
blobfbb00089be878a6052d0c06b2408362c1c6dab7f
2   lib,
3   stdenv,
4   fetchFromGitLab,
5   meson,
6   ninja,
7   pkg-config,
8   libadwaita,
9   libsecret,
10   modemmanager,
11   gtk4,
12   gom,
13   gsound,
14   feedbackd,
15   callaudiod,
16   evolution-data-server-gtk4,
17   folks,
18   desktop-file-utils,
19   appstream-glib,
20   libpeas2,
21   dbus,
22   vala,
23   wrapGAppsHook4,
24   xvfb-run,
25   gtk-doc,
26   bubblewrap,
27   docbook-xsl-nons,
28   docbook_xml_dtd_43,
29   docutils,
30   gst_all_1,
31   shared-mime-info,
32   sofia_sip,
33   writeShellScriptBin,
36 stdenv.mkDerivation (finalAttrs: {
37   pname = "calls";
38   version = "47.0";
40   src = fetchFromGitLab {
41     domain = "gitlab.gnome.org";
42     owner = "GNOME";
43     repo = "calls";
44     rev = "v${finalAttrs.version}";
45     fetchSubmodules = true;
46     hash = "sha256-HzQz5jmlXwUHLXC6nhHCa8E8zczaA89YxteZgxSV0YY=";
47   };
49   outputs = [
50     "out"
51     "devdoc"
52   ];
54   nativeBuildInputs = [
55     meson
56     ninja
57     pkg-config
58     desktop-file-utils
59     appstream-glib
60     vala
61     wrapGAppsHook4
62     gtk-doc
63     docbook-xsl-nons
64     docbook_xml_dtd_43
65     docutils
66   ];
68   buildInputs = [
69     modemmanager
70     libadwaita
71     libsecret
72     evolution-data-server-gtk4 # UI part not needed, using gtk4 variant (over the default of gtk3) to reduce closure.
73     folks
74     gom
75     gsound
76     gst_all_1.gstreamer
77     gst_all_1.gst-plugins-base
78     gst_all_1.gst-plugins-good
79     gst_all_1.gst-plugins-bad
80     gst_all_1.gst-plugins-ugly
81     feedbackd
82     callaudiod
83     gtk4
84     libpeas2
85     sofia_sip
86   ];
88   nativeCheckInputs = [
89     (writeShellScriptBin "dbus-run-session" ''
90       # tests invoke `dbus-run-session` directly, but without the necessary `--config-file` argument
91       exec ${lib.getExe' dbus "dbus-run-session"} --config-file=${dbus}/share/dbus-1/session.conf "$@"
92     '')
93     bubblewrap
94     dbus
95     shared-mime-info
96     xvfb-run
97   ];
99   mesonFlags = [
100     (lib.mesonBool "gtk_doc" true)
101     (lib.mesonBool "tests" finalAttrs.finalPackage.doCheck)
102   ];
104   strictDeps = true;
105   doCheck = true;
107   preFixup = ''
108     gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${shared-mime-info}/share")
109   '';
111   checkPhase = ''
112     runHook preCheck
114     HOME=$(mktemp -d) \
115     xvfb-run -s '-screen 0 800x600x24' \
116       bwrap --unshare-uts --hostname 127.0.0.1 --dev-bind / / \
117       meson test --no-rebuild --print-errorlogs
119     runHook postCheck
120   '';
122   meta = with lib; {
123     description = "Phone dialer and call handler";
124     longDescription = "GNOME Calls is a phone dialer and call handler. Setting NixOS option `programs.calls.enable = true` is recommended.";
125     homepage = "https://gitlab.gnome.org/GNOME/calls";
126     license = licenses.gpl3Plus;
127     maintainers = with maintainers; [ craigem ];
128     platforms = platforms.linux;
129     mainProgram = "gnome-calls";
130   };