build the app, and ship it on Linux and Windows as well as macOS

The client itself: the sync engine and mirror, the Gmail and IMAP providers,
the screener, the three boxes and two piles, compose and send, the sanitiser
and tracker stripping, contacts, clips, backup, notifications and the guide.

The pipeline that ships it. Three runners now build in parallel and the
publish gate wants all four platform keys in latest.json before a release
leaves draft. Linux gets two more packages Tauri does not build: a flatpak
repackaged from the deb against GNOME 48, and a Nix package that relinks the
deb against nixpkgs so it runs as a native Wayland client rather than through
Xwayland. CI runs the Rust suite on all three desktops rather than on Linux
alone, and rebuilds the flatpak manifest on every push to main.

Two things that were only ever exercised on macOS and were wrong everywhere
else. The menu bar was built by adjusting the submenus macOS is given, so on
a platform whose default menu has no File or View the new File menu landed
after Edit, Check for Updates landed nowhere, and the three places and the
reading pane had no menu at all. The deb declared libwebkit2gtk-4.1-0 and
libgtk-3-0 twice, because tauri.conf.json named the dependencies Tauri
already emits.

The updater key exists now, so releases can sign their artifacts.
This commit is contained in:
pj committed 2026-09-06 12:15:30 +05:30
1 parent 088ec9c6e4
commit eb59cb5f8d
423 files changed
+93217 -251

No files matched your search

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<clientConfig version="1.1">
<emailProvider id="MessagingEngine">
<domain>fastmail.com</domain>
<displayName>Fastmail</displayName>
<displayShortName>Fastmail</displayShortName>
<incomingServer type="imap">
<hostname>imap.fastmail.com</hostname>
<port>993</port>
<socketType>SSL</socketType>
<authentication>OAuth2</authentication>
<username>%EMAILADDRESS%</username>
</incomingServer>
<incomingServer type="pop3">
<hostname>pop.fastmail.com</hostname>
<port>995</port>
<socketType>SSL</socketType>
<authentication>OAuth2</authentication>
<username>%EMAILADDRESS%</username>
</incomingServer>
<outgoingServer type="smtp">
<hostname>smtp.fastmail.com</hostname>
<port>465</port>
<socketType>SSL</socketType>
<authentication>OAuth2</authentication>
<username>%EMAILADDRESS%</username>
</outgoingServer>
<instruction url="https://www.fastmail.help/hc/en-us/articles/1500000278342">
<descr lang="en">Server Names and Ports</descr>
</instruction>
<instruction url="https://www.fastmail.help/hc/en-us/articles/360058753054">
<descr lang="en">Using Fastmail with Mozilla Thunderbird</descr>
</instruction>
</emailProvider>
<webMail>
<loginPage url="https://app.fastmail.com/login/?domain=%EMAILDOMAIN%" />
</webMail>
</clientConfig>
+77
View File
@@ -0,0 +1,77 @@
<clientConfig version="1.1">
<emailProvider id="googlemail.com">
<domain>gmail.com</domain>
<domain>googlemail.com</domain>
<!-- MX, for Google Apps -->
<domain>google.com</domain>
<domain>jazztel.es</domain>
<domain>nyu.edu</domain>
<displayName>Google Mail</displayName>
<displayShortName>GMail</displayShortName>
<incomingServer type="imap">
<hostname>imap.gmail.com</hostname>
<port>993</port>
<socketType>SSL</socketType>
<username>%EMAILADDRESS%</username>
<authentication>OAuth2</authentication>
<authentication>password-cleartext</authentication>
</incomingServer>
<incomingServer type="pop3">
<hostname>pop.gmail.com</hostname>
<port>995</port>
<socketType>SSL</socketType>
<username>%EMAILADDRESS%</username>
<authentication>OAuth2</authentication>
<authentication>password-cleartext</authentication>
<pop3>
<leaveMessagesOnServer>true</leaveMessagesOnServer>
</pop3>
</incomingServer>
<outgoingServer type="smtp">
<hostname>smtp.gmail.com</hostname>
<port>465</port>
<socketType>SSL</socketType>
<username>%EMAILADDRESS%</username>
<authentication>OAuth2</authentication>
<authentication>password-cleartext</authentication>
</outgoingServer>
<documentation url="http://mail.google.com/support/bin/answer.py?answer=13273">
<descr>How to enable IMAP/POP3 in GMail</descr>
</documentation>
<documentation url="http://mail.google.com/support/bin/topic.py?topic=12806">
<descr>How to configure email clients for IMAP</descr>
</documentation>
<documentation url="http://mail.google.com/support/bin/topic.py?topic=12805">
<descr>How to configure email clients for POP3</descr>
</documentation>
<documentation url="http://mail.google.com/support/bin/answer.py?answer=86399">
<descr>How to configure TB 2.0 for POP3</descr>
</documentation>
</emailProvider>
<oAuth2>
<issuer>accounts.google.com</issuer>
<!-- https://developers.google.com/identity/protocols/oauth2/scopes -->
<scope>https://mail.google.com/ https://www.googleapis.com/auth/contacts https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/carddav</scope>
<authURL>https://accounts.google.com/o/oauth2/auth</authURL>
<tokenURL>https://www.googleapis.com/oauth2/v3/token</tokenURL>
</oAuth2>
<enable visiturl="https://mail.google.com/mail/?ui=2&amp;shva=1#settings/fwdandpop">
<instruction>You need to enable IMAP access</instruction>
</enable>
<webMail>
<loginPage url="https://accounts.google.com/ServiceLogin?service=mail&amp;continue=http://mail.google.com/mail/"/>
<loginPageInfo url="https://accounts.google.com/ServiceLogin?service=mail&amp;continue=http://mail.google.com/mail/">
<username>%EMAILADDRESS%</username>
<usernameField id="Email"/>
<passwordField id="Passwd"/>
<loginButton id="signIn"/>
</loginPageInfo>
</webMail>
</clientConfig>
+99
View File
@@ -0,0 +1,99 @@
<clientConfig version="1.1">
<emailProvider id="posteo.de">
<domain>posteo.de</domain>
<domain>posteo.at</domain>
<domain>posteo.be</domain>
<domain>posteo.ca</domain>
<domain>posteo.ch</domain>
<domain>posteo.cl</domain>
<domain>posteo.co</domain>
<domain>posteo.co.uk</domain>
<domain>posteo.com</domain>
<domain>posteo.com.br</domain>
<domain>posteo.cr</domain>
<domain>posteo.cz</domain>
<domain>posteo.dk</domain>
<domain>posteo.ee</domain>
<domain>posteo.es</domain>
<domain>posteo.eu</domain>
<domain>posteo.fi</domain>
<domain>posteo.gl</domain>
<domain>posteo.gr</domain>
<domain>posteo.hn</domain>
<domain>posteo.hr</domain>
<domain>posteo.hu</domain>
<domain>posteo.ie</domain>
<domain>posteo.in</domain>
<domain>posteo.is</domain>
<domain>posteo.it</domain>
<domain>posteo.jp</domain>
<domain>posteo.la</domain>
<domain>posteo.li</domain>
<domain>posteo.lt</domain>
<domain>posteo.lu</domain>
<domain>posteo.me</domain>
<domain>posteo.mx</domain>
<domain>posteo.my</domain>
<domain>posteo.net</domain>
<domain>posteo.nl</domain>
<domain>posteo.no</domain>
<domain>posteo.nz</domain>
<domain>posteo.org</domain>
<domain>posteo.pe</domain>
<domain>posteo.pl</domain>
<domain>posteo.pm</domain>
<domain>posteo.pt</domain>
<domain>posteo.ro</domain>
<domain>posteo.se</domain>
<domain>posteo.sg</domain>
<domain>posteo.si</domain>
<domain>posteo.tn</domain>
<domain>posteo.uk</domain>
<domain>posteo.us</domain>
<displayName>Posteo</displayName>
<displayShortName>Posteo</displayShortName>
<incomingServer type="imap">
<hostname>posteo.de</hostname>
<port>993</port>
<socketType>SSL</socketType>
<username>%EMAILADDRESS%</username>
<authentication>password-cleartext</authentication>
</incomingServer>
<incomingServer type="imap">
<hostname>posteo.de</hostname>
<port>143</port>
<socketType>STARTTLS</socketType>
<username>%EMAILADDRESS%</username>
<authentication>password-cleartext</authentication>
</incomingServer>
<incomingServer type="pop3">
<hostname>posteo.de</hostname>
<port>995</port>
<socketType>SSL</socketType>
<username>%EMAILADDRESS%</username>
<authentication>password-cleartext</authentication>
</incomingServer>
<incomingServer type="pop3">
<hostname>posteo.de</hostname>
<port>110</port>
<socketType>STARTTLS</socketType>
<username>%EMAILADDRESS%</username>
<authentication>password-cleartext</authentication>
</incomingServer>
<outgoingServer type="smtp">
<hostname>posteo.de</hostname>
<port>465</port>
<socketType>SSL</socketType>
<username>%EMAILADDRESS%</username>
<authentication>password-cleartext</authentication>
</outgoingServer>
<outgoingServer type="smtp">
<hostname>posteo.de</hostname>
<port>587</port>
<socketType>STARTTLS</socketType>
<username>%EMAILADDRESS%</username>
<authentication>password-cleartext</authentication>
</outgoingServer>
<documentation url="https://posteo.de/hilfe/wie-richte-ich-posteo-in-einem-mailprogramm-ein-pop3-imap-und-smtp"/>
</emailProvider>
</clientConfig>
+25
View File
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<clientConfig version="1.1">
<emailProvider id="protonmail.com">
<domain>protonmail.com</domain>
<displayName>ProtonMail</displayName>
<displayShortName>ProtonMail</displayShortName>
<incomingServer type="imap">
<hostname>127.0.0.1</hostname>
<port>1143</port>
<socketType>STARTTLS</socketType>
<authentication>password-cleartext</authentication>
<username>%EMAILADDRESS%</username>
</incomingServer>
<outgoingServer type="smtp">
<hostname>127.0.0.1</hostname>
<port>1025</port>
<socketType>STARTTLS</socketType>
<authentication>password-cleartext</authentication>
<username>%EMAILADDRESS%</username>
</outgoingServer>
<documentation url="https://protonmail.com/support">
<descr lang="en">Support page</descr>
</documentation>
</emailProvider>
</clientConfig>