thunderbird-patches
Betterbird是Mozilla Thunderbird的一个分支。这里是提供所有优化功能的补丁。访问www.betterbird.eu了解详情。
构建Betterbird
这些说明假设你知道如何构建Thunderbird。以下说明专门针对Betterbird。
NN
代表你要构建的版本。目前支持115
和128
。
构建过程通过构建脚本在Windows、Linux和Mac上自动化。 需要根据平台设置开发环境。
Linux x86-64用户请按以下说明操作。
要在Linux上成功构建,你至少需要16 GB的内存或交换空间。
我们在Ubuntu 20.04云服务器上成功执行了这些步骤(Hetzner CPX41,8个CPU,16 GB RAM,240 GB磁盘)。
也支持构建aarch64(又称arm64)版本。你需要在aarch64机器上运行构建(可以在Amazon EC2上租用)。
遗憾的是,./mach bootstrap
在Linux/aarch64上不起作用,所以请阅读这里。
以下步骤遵循Firefox构建说明的第一部分:
- 准备安装必要的依赖项:
sudo apt update
- 安装一些软件包:
sudo apt-get install git python3 python3-dev python3-pip
- 更多软件包:
sudo aptitude install libdbusmenu-gtk3-dev
- 安装Mercurial:如果你的发行版中的Mercurial版本足够新(Ubuntu 20.04应该如此),使用
sudo apt-get install mercurial
。否则使用以下两个步骤。 - 安装Mercurial:
echo "export PATH=\"$(python3 -m site --user-base)/bin:$PATH\"" >> ~/.bashrc
和python3 -m pip install --user mercurial
- 在新的shell中:
hg version
- 安装Rust:
curl https://sh.rustup.rs -sSf | sh
并选择选项1 $HOME/.cargo/bin/rustup override set 1.XX.0
,查看NN/NN.sh
获取所需版本- 准备一个目录用于所有操作,比如:
mkdir build && cd build
- 从这个仓库复制优化内容:
git clone https://github.com/Betterbird/thunderbird-patches.git
- 将构建脚本复制到你的构建目录:
cp thunderbird-patches/build/build.sh .
- 执行此命令:
./build.sh NN
大功告成。:heavy_check_mark: 后续构建只需重复最后一步./build.sh NN
。
请注意,Ansible-betterbird构建已被替换,不再支持。 Mac用户请按以下说明操作: 您需要从Apple App Store或developer.apple.com/download/(需要Apple ID)安装Xcode。注意Xcode版本与macOS版本的依赖关系(详情请见此处)。在我们最新的开发机器上,我们使用的是macOS 12.6.6(Monterey)和Xcode 13.4.1。 然后按照以下复制的Firefox构建说明的第一部分操作,Thunderbird文档不完整:
- 安装Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- Xcode修改:
sudo xcode-select --switch /Applications/Xcode.app
和sudo xcodebuild -license
- 安装Mercurial:
echo 'export PATH="'"$(python3 -m site --user-base)"'/bin:$PATH"' >> ~/.zshenv
和python3 -m pip install --user mercurial==6.1.4
- 在新的shell中:
hg version
- 安装Rust:
brew install rustup
- 在新的shell中:
rustup-init
和rustup override set 1.XX.0
,查看NN/NN.sh
获取所需版本 - 安装wget:
brew install wget
- 准备一个目录进行所有操作,比如:
mkdir build && cd build
- 从此仓库复制内容:
git clone https://github.com/Betterbird/thunderbird-patches.git
- 将构建脚本复制到您的构建目录:
cp thunderbird-patches/build/build.sh .
- 执行此命令:
./build.sh NN
搞定。✅ 后续构建只需重复最后一步 ./build.sh NN
。
Windows用户应按照Firefox构建说明中的"系统准备"进行操作(也反映在这里)。
在使用start-shell.bat
启动的shell中执行:
- 准备一个目录进行所有操作,比如:
mkdir build && cd build
- 从此仓库复制内容:
git clone https://github.com/Betterbird/thunderbird-patches.git
- 将构建脚本复制到您的构建目录:
cp thunderbird-patches/build/build.sh .
- 执行此命令:
./build.sh NN
搞定。✅ 后续构建只需重复最后一步 ./build.sh NN
。
build.sh
自动执行以下操作:
- 拉取
mozilla-esrNN
和comm-esrNN
。 (comm-esrNN
仓库放入mozilla-esrNN/comm/
子目录。) - 更新到
NN/NN.sh
中注明的版本:hg up -r <rev>
。补丁适用于这些确切的修订版本。 - 将
NN/series-M-C
放入mozilla-esrNN/.hg/patches
;将series-M-C
重命名为series
。 - 将
NN/series
放入mozilla-esrNN/comm/.hg/patches
。 - 将
NN/branding
、NN/bugs
、NN/features
、NN/misc
中的所有补丁放入mozilla-esrNN/comm/.hg/patches
, 然后将以*-m-c.patch
结尾的补丁移到mozilla-esrNN/.hg/patches
。 - 获取"快速跟踪"补丁(见下文)。
- 使用
hg qpush -a
应用补丁。如果省略步骤3或7,这将失败。 - 将
mozconfig
复制到mozilla-esrNN
目录。 - 使用
./mach build
正常构建。 - 使用
./mach package
构建安装程序。
搞定。✅
请注意,我们的构建有时会包含从bugzilla.mozilla.org获取的补丁,以快速跟踪修复。我们不在这里存储这些补丁。这些补丁在series文件中会有一个注释指向原始变更集。build.sh
会获取这些补丁。注意不能使用hg qimport
,因为它会将补丁添加到已经存在的series文件中。
Linux 用户请注意,08-branding-m-c.patch
修补了一个使用 Windows PowerShell 的 Windows 安装程序脚本。
但是,对于 Linux 构建,不应触发构建系统的那部分内容。
Windows 用户请注意,如果未安装适当的代码签名证书,打包将会失败。
一次性构建
标准构建脚本 build.sh
最初会拉取两个 Mozilla 存储库。如果你想稍后重复构建,这没问题。对于所谓的一次性构建,我们有一个脚本 build-one-off.sh
,它基于相应 Thunderbird 版本的已发布 tarball 进行工作。这在代码准备阶段下载的数据量少得多,因此速度更快。
错误报告 / 支持
请阅读 www.betterbird.eu/support/。以下是简略版本:
- Thunderbird 有 14,000 多个 bug 不会作为 Betterbird 的一部分修复。
- 第一步:检查该 bug 是否存在于 Thunderbird 中。如果是,请检查是否已在 Bugzilla 上报告。如果已报告,请告知我们 bug 编号。如果未报告,您或我们的项目需要报告它(参见下一项)。
- 如果该 bug 也存在于 Thunderbird 中,请告诉我们它对您很重要,并提供理由说明为什么 Betterbird 应该修复它而不是上游的 Thunderbird。我们会考虑是否认为它足够"必要",以决定是否投入必要的精力修复它。
- 如果该 bug 仅存在于 Betterbird 中,请告诉我们,我们会尽快修复,通常在几天内。
- 适用常识性的 bug 报告规则:bug 需要可重现,用户需要配合调试。
翻译
翻译字符串可在此处找到。