Rebrand to INBUXA: product name, protocol greetings, sign-in page, calendar templates, logos, README

One branding module (types::brand!) supplies the name to every protocol
greeting, the HTTP realm, the startup banner, Received headers, the
user agent, the IMAP ID response and calendar PRODIDs. The sign-in and
calendar pages take ihasmail's palette and font and the INBUXA logo, and
calendar emails embed the INBUXA lockup. Default calendar and address book
names follow. Protocol identifiers (urn:stalwart:jmap, vnd.stalwart Sieve
extensions) and upstream copyright notices are unchanged.
This commit is contained in:
2026-09-18 10:52:34 -07:00
parent 6e73d284d8
commit 89665decfa
70 changed files with 616 additions and 442 deletions
+39
View File
@@ -0,0 +1,39 @@
/*
* SPDX-FileCopyrightText: 2026 John Coffey
*
* SPDX-License-Identifier: AGPL-3.0-only
*/
//! The product's name, in one place.
//!
//! Every name the server shows people (protocol greetings, the HTTP sign-in
//! realm, the startup banner, calendar product ids, the name mail clients see
//! during setup) comes from here. That keeps the rebrand to a single file when
//! merging upstream releases, instead of a scattering of string edits.
//!
//! These are macros, not constants, so they can be joined into other string
//! literals at compile time with `concat!`.
/// The product name: `INBUXA`.
#[macro_export]
macro_rules! brand {
() => {
"INBUXA"
};
}
/// The server's full name: `INBUXA Server`.
#[macro_export]
macro_rules! brand_server {
() => {
concat!($crate::brand!(), " Server")
};
}
/// The iCalendar and vCard `PRODID`.
#[macro_export]
macro_rules! brand_prodid {
() => {
concat!("-//", $crate::brand!(), "//", $crate::brand_server!(), "//EN")
};
}
+1
View File
@@ -6,6 +6,7 @@
pub mod acl;
pub mod blob;
pub mod branding;
pub mod blob_hash;
pub mod collection;
pub mod dead_property;