The newer version of libpeas was released a couple of years ago already,
and at this point should probably be consdered the only maintained
version.
The changes are pretty minimal, and most should be pretty obvious from
the libpeas migration guide. The only annoying thing is that we can't
use `Peas.Engine.create_extension()` directly, since it's not exposed to
language bindings (even to Vala, which supports varargs, but alas).
Link: https://gnome.pages.gitlab.gnome.org/libpeas/libpeas-2/migrating-1to2.html
Fixes: https://gitlab.gnome.org/GNOME/geary/-/issues/1690
We're already requiring a much newer version than we previously reported
anyway, since we were using for example `gnome.post_install()` which is
only available from Meson 0.57 and later.
So let's bump this to a somewhat more modern version which is available
in most distros.
The `license` named argument in Meson's `project` function is supposed
to be a SPDX license identifier. "LGPL2.1+" isn't correct here, so
replace it with the appropriate SPDX identifier.
`GLib.TestSuite` is a special type of object, as it doesn't actually
have an associated copy function or a reference/unreference function.
In practice, that actually means there's no way to actually have 2
strong references to such an object, or to copy it somehow. Due to the
way GObject properties in Vala work, that means you can't really use
them either.
Ever since vala commit 5f0a146f65, this got reflected properly in the
internally maintained GLib VAPI (as people were experiencing double
frees otherwise), but it was added only conditionally for GLib 2.70 or
later. In practice, that means you only get vala compiler issues if you
(impliclty) set `--target-glib=2.70` (or a later version).
To fix this for vala-unit and our own Geary tests, this commit changes
the `ValaUnit.TestCase` class to only allow "stealing" the strong
reference to the `GLib.TestSuite`, rather than somehowing allowing
people to hold a weak reference, and by also making it a protected field
rather than a property.
Since this changes the API of ValaUnit, we also bump the version. In
general though, I hope people aren't using ValaUnit externally, since
these types of API/ABI breaks can happen with Vala libraries.
Link: 5f0a146f65
Requires meson 0.59. The command to update the desktop database was not
executed which could lead to the app not appearing on the apps menu
after install.
the `GUri` bindings were added past vala 0.48
```
$ git log -1 --pretty=oneline 3c69e297eda4b287a6a37d30d4bf46b83241a453
3c69e297eda4b287a6a37d30d4bf46b83241a453 glib-2.0: Add GLib.Uri bindings (since 2.66)
$ git describe 3c69e297eda4b287a6a37d30d4bf46b83241a453
0.48.2-145-g3c69e297e
```
and would require vala 0.50 but the changes were also backported to
0.48:
$ git log -1 --pretty=oneline e6c95081f8499eda46ca136edcb11b134b58423c
e6c95081f8499eda46ca136edcb11b134b58423c vapi: Update GLib bindings to 2.66
$ git describe e6c95081f8499eda46ca136edcb11b134b58423c
0.48.17-29-ge6c95081f
and are contained in the released 0.48.18.
Closes: #1248
The SQLite tokeniser does not deal with scripts that do not use spaces
for word breaking (CJK, Thai, etc), thus searching in those languages
does not work well.
This adds a custom SQLite tokeniser based on ICU that breaks words for
all languages supported by that library, and uses NFKC_Casefold
normalisation to handle normalisation, case folding, and dropping of
ignorable characters.
Fixes#121
Add SQL migration that drops the old FTS4 MessageSearchTable table,
re-create as a FTS5 table, clean up the column names a bit, and adds a
flags column so unread/starred queries can be made fast.
Define a SQLite FTS5 extension function `geary_matches()` to replace
the FTS3 `offsets()` function which no longer exists in FTS5, based on
Tracker's implementation.
Update code to FTS5 conventions (docid -> rowid, etc), use new column
names, populate and update the flags column as the email's flags
change, and use new match function for getting matching tokens.
Advanced searches are probably currently broken, these will be fixed
by subsequent commits.
Default to development build profile if a `.git` directory exists, else
error out of build configuration.
This make `auto` the default build profile and if set and a `.git`
directory is present default to `development`, else raise an error.
Add some docs to INSTALL describing build profiles and update how they
are used in the source to match.