Commit c3626856 authored by Guido Gunther's avatar Guido Gunther
Browse files

New upstream version 40

parents ec0b124c c5a1ed8b
Building and running Geary
==========================
Geary uses the [Meson](http://mesonbuild.com) and
[Ninja](https://ninja-build.org) build systems. You will need these
and a number of other development libraries installed to build
Geary. See the Dependencies section below for a list of packages to
install.
Building, running, tests and documentation
------------------------------------------
To build Geary, run the following commands from the top-level
directory of the source code repository:
```
meson build
ninja -C build
```
Once built, Geary can be run directly from the build directory without
being installed:
```
./build/src/geary
```
Note that certain desktop integration (such as being listed in an
application menu) requires full installation to work correctly.
To run the unit tests, use the Meson `test` command:
```
meson test -C build
```
API documentation will be built if `valadoc` is installed.
Consult the Meson documentation for information about configuring the
build, installing, and so on.
Build profiles
--------------
Geary can be built using a number of different build profiles, which
determine things like the application id, the location of stored data,
the name of the application, icon and other visual elements.
These can be set at build configuration time using the Meson `setup`
and `configure` commands, using the standard `-Dprofile=…` option. See
the `profile` option in `meson_options.txt` for the current list of
supported types.
Maintainers must use the `release` build profile when packaging Geary,
otherwise when run it will use branding and data locations intended
for development only.
Note that setting the profile does not alter such things as compiler
options, use the standard Meson `--buildtype` argument for that.
Consult the Meson documentation for more information about configuring
options.
Dependencies
------------
Building Geary requires the following major libraries and tools:
* GTK+ 3
* WebKitGTK+ 2
* SQLite 3
* Vala
See the `meson.build` file in the top-level directory for the complete
list of required dependencies and minimum versions.
Geary requires SQLite is built with both FTS3 and FTS5 support. Ensure
`--enable-fts5`, `-DSQLITE_ENABLE_FTS3` and
`-DSQLITE_ENABLE_FTS3_PARENTHESIS` are passed to the SQLite configure
script.
All required libraries and tools are available from major Linux
distribution's package repositories:
Installing dependencies on Fedora
---------------------------------
Install them by running this command:
```
sudo dnf install meson vala desktop-file-utils enchant2-devel \
folks-devel gcr-devel glib2-devel gmime30-devel \
gnome-online-accounts-devel gspell-devel gsound-devel \
gtk3-devel iso-codes-devel itstool json-glib-devel \
libappstream-glib-devel libgee-devel libhandy1-devel \
libpeas-devel libsecret-devel libicu-devel libstemmer-devel \
libunwind-devel libxml2-devel libytnef-devel sqlite-devel \
webkitgtk4-devel
```
Installing dependencies on Ubuntu/Debian
----------------------------------------
Install them by running this command:
```
sudo apt-get install meson build-essential valac \
desktop-file-utils iso-codes gettext itstool \
libappstream-glib-dev libenchant-2-dev libfolks-dev \
libgcr-3-dev libgee-0.8-dev libglib2.0-dev libgmime-3.0-dev \
libgoa-1.0-dev libgspell-1-dev libgsound-dev libgtk-3-dev \
libjson-glib-dev libhandy-1-dev libicu-dev libpeas-dev \
libsecret-1-dev libsqlite3-dev libstemmer-dev libunwind-dev \
libwebkit2gtk-4.0-dev libxml2-dev libytnef0-dev
```
And for Ubuntu Messaging Menu integration:
```
sudo apt-get install libmessaging-menu-dev
```
---
Copyright © 2016 Software Freedom Conservancy Inc.
Copyright © 2018-2020 Michael Gratton <mike@vee.net>
Copyright (c) 2001, Dr Martin Porter, and (for the Java developments) Copyright
(c) 2002, Richard Boulton
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Building & Installing Geary
===========================
Building
--------
Geary uses the Meson <http://mesonbuild.com> and Ninja
<https://ninja-build.org> build systems. To build Geary, run the
following commands from the top-level directory of the source code
repository:
meson build
ninja -C build
A convenience Makefile for development only is also provided. To use
it, simply invoke make from the top-level directory.
Dependencies
------------
Building Geary requires the following major libraries and tools:
* GTK+ 3
* WebKitGTK+ 2
* SQLite 3
* Vala
See the `meson.build` file in the top-level directory for the complete
list of required dependencies and minimum versions.
Geary also requires SQLite to be built with the compiler flag
`-DSQLITE_ENABLE_FTS3`.
All required libraries and tools are available from major Linux
distribution's package repositories:
Installing dependencies on Fedora
---------------------------------
Install them by running this command:
sudo dnf install meson vala desktop-file-utils enchant2-devel \
folks-devel gcr-devel glib2-devel gmime30-devel \
gnome-online-accounts-devel gspell-devel gsound-devel \
gtk3-devel iso-codes-devel itstool json-glib-devel \
libappstream-glib-devel libgee-devel libhandy1-devel \
libpeas-devel libsecret-devel libunwind-devel libxml2-devel \
libytnef-devel sqlite-devel webkitgtk4-devel
Installing dependencies on Ubuntu/Debian
----------------------------------------
Install them by running this command:
sudo apt-get install meson build-essential valac \
desktop-file-utils iso-codes gettext itstool \
libappstream-glib-dev libenchant-2-dev libfolks-dev \
libgcr-3-dev libgee-0.8-dev libglib2.0-dev libgmime-3.0-dev \
libgoa-1.0-dev libgspell-1-dev libgsound-dev libgtk-3-dev \
libjson-glib-dev libhandy-1-dev libpeas-dev libsecret-1-dev \
libsqlite3-dev libunwind-dev libwebkit2gtk-4.0-dev libxml2-dev \
libytnef0-dev
And for Ubuntu Messaging Menu integration:
sudo apt-get install libmessaging-menu-dev
Running
-------
If you wish to try Geary before installing it, you may execute it directly
from its build directory:
./build/src/geary
Note that certain desktop integration (such as being listed in an
application menu) requires full installation.
Installation
------------
After Geary has built, install it by invoking the install target:
ninja -C build install
After installation, it can be uninstalled in the same way:
ninja -C build uninstall
By default, Geary will install under /usr/local. To install to a
different directory, set pass the --prefix to meson when performing
the initial configuration step:
meson --prefix=/usr -C build
---
Copyright 2016 Software Freedom Conservancy Inc.
Copyright 2018 Michael Gratton <mike@vee.net>
Version 3.38.2
~~~~~~~~~~~~~~
Released: 2021-02-07
Version 40.0
~~~~~~~~~~~~
Released: 2021-04-23
A stable feature release.
Enhancements included in this release:
* Numerous bug fixes
* Numerous translation updates
* Visual refresh including updated icon and interface
* Add support for half-screen, portrait and small displays
* Improved performance when displaying large conversations
* Upgraded full-text search engine
* Improved search for languages such as Thai and Chinese
* Improved keyboard shortcuts
* Improved server compatibility
* Numerous user interface translation updates
* Numerous bug fixes and user interface improvements
Changes since 40.rc:
* Build fixes for future versions of vala, gmime, and meson.
Thanks to those who contributed bug fixes and enhancements to this
release:
* Adrien Plazas
* Arnaud Ferraris
* Björn Daase
* Carlos Langoni
* Chris Heywood
* Douglas Fuller
* Guido Günther
* James Westman
* Jeremias Ortega
* John Renner
* Julian Sparber
* Marek Benc
* Marek Černocký
* Michael Catanzaro
* Michał Kopeć
* Rico Tzschichholz
* Thami Memel
* Thomas Lauerman
* Tobias Bernard
* Yuri Edward
Thanks also to those who contributed translations for the interface:
* Alan Mortensen (da)
* Anders Jonsson (sv)
* Andika Triwidada (id)
* Asier Sarasua Garmendia (eu)
* Balázs Úr (hu)
* Daniel Mustieles (es)
* Daniel Șerbănescu (ro)
* Dušan Kazik (sk)
* Dz Chen (zh_CN)
* Efstathios Iosifidis (el)
* Emin Tufan Çetin (tr)
* Enrico Nicoletto (pt_BR)
* Fabio Tomat (fur)
* Federico Bruni (it)
* Florentina Mușat (ro)
* Fran Dieguez (gl)
* Goran Vidović (hr)
* Hugo Carvalho (pt)
* Jiri Grönroos (fi)
* Jordi Mas (ca)
* Kukuh Syafaat (id)
* Marek Černocký (cs)
* Nathan Follens (nl)
* Piotr Drąg (pl)
* Rodrigo Costa (pt_BR)
* Tim Sabsch (de)
* Viktor Illmer (de)
* Yosef Or Boczko (he)
* Yuri Chornoivan (uk)
* Źmicier Turok (be)
* Аляксей (be)
* Мирослав Николић (sr)
And for the online help manual:
* Anders Jonsson (sv)
* Andika Triwidada (id)
* Federico Bruni (it)
* Jordi Mas (ca)
* Marek Černocký (cs)
Version 3.38.1
~~~~~~~~~~~~~~
Released: 2020-10-04
Version 40.rc
~~~~~~~~~~~~~
Released: 2021-04-14
Enhancements included in this release:
* Numerous bug fixes
* Numerous translation updates
A candidate for the next stable release.
Thanks to those who contributed translations for the interface:
Please see the AppStream file for updated features. Notable build
changes included in this release:
* Andika Triwidada (id)
* Daniel Mustieles (es)
* Dušan Kazik (sk)
* Fabio Tomat (fur)
* Goran Vidović (hr)
* Yosef Or Boczko (he)
* Require libhandy 1.2.1
* Add a dependency on ICU (actually in the last release)
Version 40.alpha
~~~~~~~~~~~~~~~~
Released: 2021-01-18
An alpha-quality development release.
Please see the AppStream file for updated features. Notable build
changes included in this release:
* Require a build flag to be set for releases builds and from tarballs
* Updated build options to use meson features, be internally consistent
* Add a dependency on the libstemmer library
Version 3.38.0.1
~~~~~~~~~~~~~~~~
......
......@@ -6,7 +6,7 @@ Geary: Send and receive email
Geary is an email application built around conversations, for the
GNOME 3 desktop. It allows you to read, find and send email with a
straightforward, modern interface.
straight-forward, modern interface.
Visit https://wiki.gnome.org/Apps/Geary for more information.
......@@ -17,11 +17,12 @@ for more information.
![Geary displaying a conversation](https://wiki.gnome.org/Apps/Geary?action=AttachFile&amp;do=get&amp;target=geary-3-32-main-window.png)
Installation & Licensing
------------------------
Building & Licensing
--------------------
Please consult the [INSTALL](./INSTALL) and [COPYING](./COPYING) files
for more information.
Please consult the [BUILDING.md](./BUILDING.md) and
[COPYING](./COPYING) files for more information about building Geary
and the licence granted by its copyright holders for redistribution.
Getting in Touch
----------------
......@@ -30,7 +31,8 @@ Getting in Touch
* Support and discussion: See the `geary` tag on [GNOME Discourse](https://discourse.gnome.org/tags/c/applications/7/geary)
* Matrix channel: [#geary:gnome.org](https://gnome.element.io/#/room/#geary:gnome.org)
**Code Of Conduct**
Code Of Conduct
---------------
We follow the [Contributor Covenant](./code-of-conduct.md) as our
Code of Conduct. All communications in project spaces are expected to
......@@ -47,5 +49,5 @@ Want to help improve Geary? Here are some ways to contribute:
* Donate: https://wiki.gnome.org/Apps/Geary/Donate
---
Copyright 2016 Software Freedom Conservancy Inc.
Copyright 2017-2020 Michael Gratton <mike@vee.net>
Copyright © 2016 Software Freedom Conservancy Inc.
Copyright © 2017-2020 Michael Gratton <mike@vee.net>
The Geary team would like to thank the following people and the GNOME
translation teams for their contributions:
The Geary team would like to thank the following people who have
contributed patches and translations:
Adam Dingle <adam@medovina.org>
Adrien Plazas <kekun.plazas@laposte.net>
Adwait Rawat <adwait.rawat@gmail.com>
Alan Mortensen <alanmortensen.am@gmail.com>
Alex Henrie <alexhenrie24@gmail.com>
Alexander Wilms <alexander.wilms@zoho.com>
Anders Jonsson <anders.jonsson@norsjovallen.se>
Andika Triwidada <atriwidada@gnome.org>
Andre Klapper <a9016009@gmx.de>
Andrea Corbellini <corbellini.andrea@gmail.com>
Andreas Obergrusberger <tradiaz@yahoo.de>
Andres Salomon <dilinger@queued.net>
Angelo Marchesin <marchesin.angelo@gmail.com>
Anirudh Sanjeev <skyronic@gmail.com>
Arnaud Ferraris <arnaud.ferraris@collabora.com>
Asier Sarasua Garmendia <asiersarasua@ni.eus>
Attila Bukor <r1pp3rj4ck@w4it.eu>
Avi Levy <avi.w.levy@gmail.com>
Balázs Úr <balazs@urbalazs.hu>
Bilal Elmoussaoui <bil.elmoussaoui@gmail.com>
Björn Daase <bjoern@daase.net>
Brendan Long <self@brendanlong.com>
Carlos Langoni <calangoni@outlook.com>
Charles Lehner <rdm.cel@celehner.com>
Chirstian Dywan <christian@twotoasts.de>
Chris Heywood <15127-creywood@users.noreply.gitlab.gnome.org>
......@@ -26,19 +33,33 @@ Claudio <cpacchierotti@gmail.com>
Colin Walters <walters@verbum.org>
Daniel Foré <daniel@elementaryos.org>
Daniel Kahn Gillmor <dkg@fifthhorseman.net>
Daniel Mustieles <daniel.mustieles@gmail.com>
Daniel Șerbănescu <daniel@serbanescu.dk>
Didier Roche <didrocks@ubuntu.com>
Diego Escalante Urrelo <diegoe@gnome.org>
Douglas Fuller <douglas.fuller@gmail.com>
Dušan Kazik <prescott66@gmail.com>
Dz Chen <wsxy162@gmail.com>
Efstathios Iosifidis <eiosifidis@gnome.org>
Emersion <contact@emersion.fr>
Emin Tufan Çetin <etcetin@gmail.com>
Enrico Nicoletto <liverig@gmail.com>
Erik Faye-Lund <erik.faye-lund@collabora.com>
Fabio Tomat <f.t.public@gmail.com>
Federico Bruni <fede@inventati.org>
Florentina Mușat <florentina.musat.28@gmail.com>
Florin Lipan <florinlipan@gmail.com>
Fran Dieguez <frandieguez@gnome.org>
Gautier Pelloux-Prayer <gautier@damsy.net>
Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
Goran Vidović <trebelnik2@gmail.com>
Greg V <greg@unrelenting.technology>
Guido Günther <agx@sigxcpu.org>
Guillaume Ayoub <guillaume.ayoub@kozea.fr>
Gustavo Rubio <gus@ahivamos.net>
Heiko Becker <heirecka@exherbo.org>
Hugo Carvalho <hugokarvalho@hotmail.com>
Jakob Unterwurzacher <jakobunt@gmail.com>
Jakub Steiner <jimmac@gmail.com>
James Magahern <james@magahern.com>
......@@ -46,17 +67,22 @@ James Westman <james@flyingpimonster.net>
Jan Tojnar <jtojnar@gmail.com>
Janosch Rolles <janosch@rolles.org>
Jens Georg <mail@jensge.org>
Jeremias Ortega <jeremias@ortega.tech>
Jeremy Bicha <jbicha@ubuntu.com>
Jiri Grönroos <jiri.gronroos@iki.fi>
Jiří Černý <ji.cerny@gmail.com>
Joanmarie Diggs <jdiggs@igalia.com>
Joe Barnett <jbarnett@tribedynamics.com>
Joel Duncan <joel@slethen.io>
John Renner <john@jrenner.net>
Jon Banafato <jon@jonafato.com>
Jon Dowland <jmtd@debian.org>
Jonatan Pålsson <jonatan.p@gmail.com>
Jonathan Haas <jonathan.haas@kappich.de>
Jordan Petridis <jpetrids@gnome.org>
Jordi Mas <jmas@softcatala.org>
João Loureiro <joaofl@gmail.com>
Julian Sparber <julian@sparber.net>
Juraj Fiala <jurf@riseup.net>
Jürg Billeter <j@bitron.ch>
Kacper Bielecki <kazjote@gmail.com>
......@@ -65,7 +91,11 @@ Kalev Lember <klember@redhat.com>
Khurshid Alam <sunnysigara+github@gmail.com>
Konstantin Kharlamov <Hi-Angel@yandex.ru>
Kristian Klausen <kristian@klausen.dk>
Kukuh Syafaat <kukuhsyafaat@gnome.org>
Leonardo Robol <leo@robol.it>
Marek Benc <dusxmt@gmx.com>
Marek Cernocky <marek_cernocky@conel.cz>
Marek Černocký <marek@manet.cz>
Mario Ravalli <mario@raval.li>
Mario Sanchez Prada <msanchez@igalia.com>
Mark Pariente <markpariente@gmail.com>
......@@ -76,11 +106,13 @@ Mathias Hasselmann <mathias@openismus.com>
Matthew Wong <wongma7@outlook.com>
Matthias Clasen <mclasen@redhat.com>
Mete Can Eris <caneris@gmail.com>
Michael Catanzaro <mcatanzaro@igalia.com>
Michael Catanzaro <mcatanzaro@gnome.org>
Michael George <mdgeorge@cs.cornell.edu>
Michael Gratton <mike@vee.net>
Michał Kopeć <mkopec12@gmail.com>
Michel Alexandre Salim <salimma@fedoraproject.org>
Mohamed Ibrahim <mohamed.ib.md@gmail.com>
Nathan Follens <nfollens@gnome.org>
Niels De Graef <nielsdegraef@gmail.com>
Nikolas Tapia <ntapia@dim.uchile.cl>
Oliver Giles <ohw.giles@gmail.com>
......@@ -94,13 +126,17 @@ Robert Ancell <robert.ancell@canonical.com>
Robert Park <rbpark@exolucere.ca>
Robert Roth <robert.roth.off@gmail.com>
Robert Schroll <rschroll@gmail.com>
Rodrigo Costa <rodrigo.costa@outlook.it>
Sergey Shnatsel Davidoff <sergey@elementaryos.org>
Simon Lipp <bugs-gnome@simon.lipp.name>
Stephen Michel <stephen.michel@tufts.edu>
Sven Hagemann <sven@rednose.nl>
Thami Memel <memelthami@gmail.com>
Thibault Martin <mail@thibaultmart.in>
Thomas Lauerman <tom@lauerman.dev>
Thomas Moschny <thomas.moschny@gmx.de>
Tiago Quelhas <tiagoq@gmail.com>
Tim Sabsch <tim@sabsch.com>
Timo Kluck <tkluck@infty.nl>
Tobias Bernard <tbernard@gnome.org>
Tobias Sette <contato@tobias.ws>
......@@ -109,14 +145,21 @@ Torben <torben.letorbi@gmail.com>
Vanadiae <vanadiae35@gmail.com>
Victor Eduardo <victor@elementaryos.org>
Viko Adi Rahmawan <vikoadi@gmail.com>
Viktor Illmer <mail@viktor.im>
Ville Korhonen <ville@xd.fi>
William Jon McCann <william.jon.mccann@gmail.com>
Wolfgang Steitz <wolfer7@web.de>
Yosef Or Boczko <yoseforb@gmail.com>
Yosef Or Boczko <yoseforb@gnome.org>
Yuri Chornoivan <yurchor@ukr.net>
Yuri Edward <yuri6037@outlook.com>
hkdb <hkdb@3df.io>
john <qq799433746@gmail.com>
mar-v-in <github@rvin.mooo.com>
nick richards <nick.richards@gmail.com>
p3732 <p3732@users.noreply.github.com>
ritchiew <rawilson52@gmail.com>
Źmicier Turok <nashtlumach@gmail.com>
Алексей Шилин <rootlexx@mail.ru>
Аляксей <alexey_razumov@tutanota.com>
Мирослав Николић <miroslavnikolic@rocketmail.com>
// Based on icu-uc.vapi from the Dino project.
[CCode (cprefix="u_")]
namespace Icu {
[CCode (cname = "UChar")]
[IntegerType (rank = 5, min = 0, max = 65535)]
struct Char {}
[CCode (cname = "UErrorCode", cprefix = "U_", cheader_filename = "unicode/utypes.h")]
enum ErrorCode {
ZERO_ERROR,
INVALID_CHAR_FOUND,
INDEX_OUTOFBOUNDS_ERROR,
BUFFER_OVERFLOW_ERROR,
STRINGPREP_PROHIBITED_ERROR,
UNASSIGNED_CODE_POINT_FOUND,
IDNA_STD3_ASCII_RULES_ERROR;
[CCode (cname = "u_errorName")]
public unowned string errorName();
[CCode (cname = "U_SUCCESS")]
public bool is_success();
[CCode (cname = "U_FAILURE")]
public bool is_failure();
}
[CCode (cname = "UParseError", cprefix = "U_", cheader_filename = "unicode/parseerr.h")]
struct ParseError {}
[CCode (cname = "UText", cprefix = "utext_", free_function = "utext_close", cheader_filename = "unicode/utext.h")]
[Compact]
class Text {
[CCode (cname="utext_openUTF8")]
public static Text open_utf8(Text* existing, [CCode (array_length_type = "int64_t")] uint8[] text, ref ErrorCode status);
}
[CCode (cname = "UBreakIterator", cprefix = "ubrk_", free_function = "ubrk_close", cheader_filename = "unicode/ubrk.h")]
[Compact]
class BreakIterator {
[CCode (cname = "UBRK_DONE")]
public const int32 DONE;
[CCode (cname = "UBreakIteratorType", cprefix = "UBRK_")]
public enum Type {
CHARACTER,
WORD,
LINE,
SENTENCE;
}
[CCode (cname = "UWordBreak", cprefix = "UBRK_WORD_")]
enum WordBreak {
NONE,
NONE_LIMIT,
NUMBER,
NUMBER_LIMIT,
LETTER,
LETTER_LIMIT,
KANA,
KANA_LIMIT,
IDEO,
IDEO_LIMIT;
}
public static BreakIterator open(Type type, string locale, Char* text, int32 text_len, ref ErrorCode status);
public int32 current {
[CCode (cname="ubrk_current")] get;
}
public int32 rule_status {
[CCode (cname="ubrk_getRuleStatus")] get;
}
[CCode (cname="ubrk_isBoundary")]
public bool is_boundary(int32 offset);
public int32 first();
public int32 last();
public int32 next();
public int32 previous();
public int32 proceeding(int32 offset);