Firefox构建依赖Mercurial,使用Git镜像构建遇错求助
用Git构建Firefox(摆脱Mercurial)的正确步骤
你的问题核心是没有通过git-cinnabar正确克隆Firefox仓库,普通GitHub镜像或复制.hg文件夹的方式无法生成mach所需的git-cinnabar元数据。以下是可行的解决方案:
1. 安装git-cinnabar
git-cinnabar是Git与Mercurial仓库的桥接工具,Firefox构建系统依赖它来处理Git仓库的元数据。在Linux上执行以下步骤:
- 先安装基础依赖(以Debian/Ubuntu为例,其他发行版替换为对应包管理器命令):
sudo apt update && sudo apt install git python3 - 克隆git-cinnabar仓库并配置PATH:
git clone https://github.com/glandium/git-cinnabar.git ~/git-cinnabar echo 'export PATH="$PATH:$HOME/git-cinnabar/bin"' >> ~/.bashrc source ~/.bashrc
2. 用git-cinnabar克隆Firefox官方仓库
不要使用普通GitHub镜像,必须通过git-cinnabar拉取官方Mercurial仓库的Git镜像:
git clone hg::https://hg.mozilla.org/mozilla-central/ firefox
这个命令会自动生成mach所需的git-cinnabar元数据。
3. 配置mozconfig
确保你的.mozconfig文件放在firefox目录下,内容保持:
ac_add_options --enable-artifact-builds
4. 重新执行Artifact安装
进入Firefox仓库目录,运行命令:
cd firefox mach --log-no-times artifact install
为什么之前的方法失败?
- 普通GitHub镜像只是同步了代码文件,但没有包含git-cinnabar的元数据,mach无法识别这是一个有效的Firefox构建仓库。
- 复制.hg文件夹的方式破坏了Git与Mercurial的桥接结构,同样无法提供mach需要的元数据。
内容的提问来源于stack exchange,提问作者Daniel McGuire
相关产品推荐
相关产品推荐

