编译 chromium 的老版本
https://chromium.googlesource.com/chromium/src.git/+/master/docs/building_old_revisions.md
Building old revisions
Occasionally you may want to check out and build old versions of Chromium, such as when bisecting a regression or simply building an older release tag. Though this is not officially supported, these tips address some common complications.
This process may be easier if you copy your checkout (starting from the directory containing .gclient
) to a new location, so you can just delete the checkout when finished instead of having to undo changes to your primary working directory.
Get compatible depot_tools
Check out a version of depot_tools from around the same time as the target revision. Since gclient
auto-updates depot_tools, be sure to disable depot_tools auto-update before continuing by setting the environment variable DEPOT_TOOLS_UPDATE=0
.
# Get date of current revision:
~/chrome/src $ COMMIT_DATE=$(git log -n 1 --pretty=format:%ci)
# Check out depot_tools revision from the same time:
~/depot_tools $ git checkout $(git rev-list -n 1 --before="$COMMIT_DATE" master)
~/depot_tools $ export DEPOT_TOOLS_UPDATE=0
Clean your working directory
To avoid unexpected gclient behavior and conflicts between revisions, remove any directories that aren‘t part of the revision you’ve checked out. By default, Git will preserve directories with their own Git repositories; bypass this by passing the --force
option twice to git clean
.
$ git clean -ffd
Repeat this command until it doesn't find anything to remove.
Sync dependencies
When running gclient sync
, also remove any dependencies that are no longer required:
$ gclient sync -D --force --reset
Warning: gclient sync
may overwrite the URL of your origin
remote if it encounters problems. You'll notice this when Git starts thinking everything is “untracked” or “deleted”. If this happens, fix and fetch the remote before continuing:
$ git remote get-url origin
https://chromium.googlesource.com/chromium/deps/opus.git
$ git remote set-url origin https://chromium.googlesource.com/chromium/src.git
$ git fetch origin
It may also be necessary to run the revision's version of build/install-build-deps.sh.
Build
Since build tools change over time, you may need to build using older versions of tools like Visual Studio.
You may also need to disable goma (if enabled).
Get back to trunk
When returning to a normal checkout, you may need to undo some of the changes above:
-
Restore
depot_tools
to themaster
branch. -
Clean up any
_bad_scm/
directories in the directory containing.gclient
. -
Revert your
.gclient
file ifgclient
changed it:WARNING: gclient detected an obsolete setting in your .gclient file. The file has been automagically updated. The previous version is available at .gclient.old.
相关文章
- FLstudio最新21.0版本下载更新介绍
- 【Python】Ubuntu修改默认Python版本
- 如何查看linux操作系统版本号_如何查看centos版本
- CleanMyMacX2023下载安装教程V4.11.5版本
- 【RocketMq】RocketMq 高版本JDK编译报错问题处理
- 在SPA模式网页版本检测方案
- C/C++ 获取操作系统版本
- NIC DCV远程可视化软件发布2022.2-14126版本更新
- AE安装AE下载Ae多版本下载-Adobe After Effects版本介绍干货分享
- 程序员版本的八荣八耻~
- office办公软件全版本-office2007版本软件下载安装教程
- Adobe Illustrator 2018 中文版安装教程Ai软件全版本下载地址
- 【错误记录】AS 编译报错 ( Android Support plugin 版本太高 | 升级 Android Studio 到最新版本 )
- 【错误记录】编译 Android 版本的 ijkplayer 报错 ( ./init-android.sh: 第 37 行: cd: android/contrib/: 没有那个文件或目录 )
- 【ijkplayer】编译 Android 版本的 ijkplayer ① ( Ubuntu 安装 Git 软件 | 下载 ijkplayer 代码 )
- 【ijkplayer】编译 Android 版本的 ijkplayer ② ( 切换到 k0.8.8 分支 | 执行 init-android.sh 脚本进行初始化操作 )
- 掌握未来设计趋势,CAXA CAD 电子图板 2023让你的创意无限发挥!+全版本安装包
- 高效电子绘图 加速数字化设计CAXA CAD电子图板2023+全版本安装包
- linux编译kernel和svn版本冲突的解决办法
- 针对不同.NET版本的条件编译
- 如何查看 Linux 系统中的库版本?(linux查看库版本)
- 安装MySQL 32位版本,又轻松又快捷!(mysql32安装版)
- 针对不同.NET版本的条件编译
- 深入了解Linux服务器系统版本,优化管理运维(linux服务器系统版本)
- MySQL官网提供下载页面,获取最新版本的数据库服务(mysql 下载页面)
- Oracle的新版本发布提前开启一周的激动(oracle 下个星期一)
- Dev和Beta通道迎来Windows 11 Build 22000.132编译版本