MailMover: many fixes
Previously, MailMover didn't properly preserve flags when renaming files, and
moved all mail to `cur`. This was fixed. Also, MailMover gained a test suite.
New filters: PropagateTags[ByRegex]InThreadFilter
These filters allow propagating tags set to a message to the whole thread.
New command line argument: --notmuch-args= in move mode
In move mode, afew calls `notmuch new` after moving mails around. This
prevents `afew -m` from being used in a pre-new hook in `notmuch`.
Now it's possible to specify notmuch args, so something like `afew -m
--notmuch-args=--no-hooks` can live happily in a pre-new hook.
Python 3.4 and 3.5 support dropped
afew stopped supporting the older python versions 3.4 and 3.5, and removed
some more Python 2 compatibility code. (`from __future__ import …`, utf-8
headers, relative imports, …)
These two dependencies were used to generate the PNG icons that would later be converted to the icon for the macOS app. The PNGs are now stored in git and are not generated during the build anymore.
Initially discussed in #55460.
This patch adds a `buildEnv` function to `php` that has the
following features:
* `php.buildEnv { extraConfig = /* ... */; }` to specify custom
`php.ini` args for the CLI.
* `php.buildEnv { exts = phpPackages: [phpPackages.apcu] }` to
create a PHP interpreter for the CLI with the `apcu` extension.
This commit was built as a revert commit followed by deletion:
* Revert "androidenv: manually (!) delete oldest revision of google
images".
* Delete other revision.
Using `systemImageType = "google_apis_playstore"` (and `abiVersion =
"x86"` and `platformVersion = "28"` - that I expect resolved to
`97d9d4f4a2afa8b0f5d52e90748e19c10406ca93`), the symptom is:
```
Warning: Observed package id 'system-images;android-28;google_ndk_playstore;x86' in inconsistent location '/nix/store/...-androidsdk/libexec/android-sdk/system-images/android-28/google_apis_playstore/x86' (Expected '/nix/store/...-androidsdk/libexec/android-sdk/system-images/android-28/google_ndk_playstore/x86')
...
Error: Package path is not valid. Valid system image paths are:
system-images;android-28;google_ndk_playstore;x86
```
How is the actual image name `google_ndk_playstore` when the fetched
image has id `google_apis_playstore`?
Attempt keeping - of the two images - the one that looks simpler.
For the `"28".google_apis."x86"` images, in the XML the differences
are: more complex license (what is `arm-dbt`?); higher emulator.
Namely:
```
<uses-license ref="android-sdk-license"/>
<dependencies>
<dependency path="patcher;v4"/>
<dependency path="emulator">
<min-revision>
<major>27</major>
<minor>1</minor>
<micro>7</micro>
...
<uses-license ref="android-sdk-arm-dbt-license"/>
<dependencies>
<dependency path="patcher;v4"/>
<dependency path="emulator">
<min-revision>
<major>29</major>
<minor>1</minor>
<micro>12</micro>
```
Analogously for `"28".google_apis_playstore."x86"`.