python312Packages.yoda: 2.0.1 -> 2.0.2
[NixPkgs.git] / pkgs / by-name / ge / geary / package.nix
blob0b85d3af0776fa8cfeb0a32486a4d82e9b4b9953
1 { lib
2 , stdenv
3 , fetchurl
4 , pkg-config
5 , gtk3
6 , vala
7 , enchant2
8 , wrapGAppsHook3
9 , meson
10 , ninja
11 , desktop-file-utils
12 , gnome-online-accounts
13 , gsettings-desktop-schemas
14 , adwaita-icon-theme
15 , libpeas
16 , libsecret
17 , gmime3
18 , isocodes
19 , icu
20 , libxml2
21 , gettext
22 , sqlite
23 , gcr
24 , json-glib
25 , itstool
26 , libgee
27 , gnome
28 , webkitgtk_4_1
29 , python3
30 , gnutls
31 , cacert
32 , xvfb-run
33 , glibcLocales
34 , dbus
35 , shared-mime-info
36 , libunwind
37 , folks
38 , glib-networking
39 , gobject-introspection
40 , gspell
41 , appstream-glib
42 , libstemmer
43 , libytnef
44 , libhandy
45 , gsound
48 stdenv.mkDerivation rec {
49   pname = "geary";
50   version = "46.0";
52   src = fetchurl {
53     url = "mirror://gnome/sources/geary/${lib.versions.major version}/geary-${version}.tar.xz";
54     hash = "sha256-r60VEwKBfd8Ji15BbnrH8tXupWejuAu5C9PGKv0TuaE=";
55   };
57   nativeBuildInputs = [
58     appstream-glib
59     desktop-file-utils
60     gettext
61     gobject-introspection
62     itstool
63     libxml2
64     meson
65     ninja
66     pkg-config
67     python3
68     vala
69     wrapGAppsHook3
70   ];
72   buildInputs = [
73     adwaita-icon-theme
74     enchant2
75     folks
76     gcr
77     glib-networking
78     gmime3
79     gnome-online-accounts
80     gsettings-desktop-schemas
81     gsound
82     gspell
83     gtk3
84     isocodes
85     icu
86     json-glib
87     libgee
88     libhandy
89     libpeas
90     libsecret
91     libunwind
92     libstemmer
93     libytnef
94     sqlite
95     webkitgtk_4_1
96   ];
98   nativeCheckInputs = [
99     dbus
100     gnutls # for certtool
101     cacert # trust store for glib-networking
102     xvfb-run
103     glibcLocales # required by Geary.ImapDb.DatabaseTest/utf8_case_insensitive_collation
104   ];
106   mesonFlags = [
107     "-Dprofile=release"
108     "-Dcontractor=enabled" # install the contractor file (Pantheon specific)
109   ];
111   # NOTE: Remove `build-auxyaml_to_json.py` when no longer needed, see:
112   # https://gitlab.gnome.org/GNOME/geary/commit/f7f72143e0f00ca5e0e6a798691805c53976ae31#0cc1139e3347f573ae1feee5b73dbc8a8a21fcfa
113   postPatch = ''
114     chmod +x build-aux/git_version.py
116     patchShebangs build-aux/git_version.py
118     chmod +x desktop/geary-attach
119   '';
121   # Some tests time out.
122   doCheck = false;
124   checkPhase = ''
125     runHook preCheck
127     NO_AT_BRIDGE=1 \
128     GIO_EXTRA_MODULES=$GIO_EXTRA_MODULES:${glib-networking}/lib/gio/modules \
129     HOME=$TMPDIR \
130     XDG_DATA_DIRS=$XDG_DATA_DIRS:${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${shared-mime-info}/share:${folks}/share/gsettings-schemas/${folks.name} \
131     xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
132       --config-file=${dbus}/share/dbus-1/session.conf \
133       meson test -v --no-stdsplit
135     runHook postCheck
136   '';
138   preFixup = ''
139     # Add geary to path for geary-attach
140     gappsWrapperArgs+=(--prefix PATH : "$out/bin")
141   '';
143   passthru = {
144     updateScript = gnome.updateScript {
145       packageName = "geary";
146     };
147   };
149   meta = with lib; {
150     homepage = "https://gitlab.gnome.org/GNOME/geary";
151     changelog = "https://gitlab.gnome.org/GNOME/geary/-/blob/${version}/NEWS?ref_type=tags";
152     description = "Mail client for GNOME 3";
153     maintainers = teams.gnome.members;
154     license = licenses.lgpl21Plus;
155     platforms = platforms.linux;
156   };