|
1 | | -- Get the version of crashpad that we're going to use. |
2 | | - - `libcc/src/third_party/crashpad/README.chromium` will have a line `Revision:` with a checksum. |
3 | | - - clone [Electron's Crashpad fork](https://github.com/electron/crashpad) and create a new branch |
4 | | - - `git clone https://chromium.googlesource.com/crashpad/crashpad` |
5 | | - - `git checkout 01110c0a3b` |
6 | | - - `git remote add electron https://github.com/electron/crashpad` |
7 | | - - `git checkout -b electron-crashpad-vA.B.C.D` |
8 | | - - `A.B.C.D` is the Chromium version found in `libcc/VERSION` |
| 1 | +# Upgrading Crashpad |
| 2 | + |
| 3 | +1. Get the version of crashpad that we're going to use. |
| 4 | + - `libcc/src/third_party/crashpad/README.chromium` will have a line `Revision:` with a checksum |
| 5 | + - We need to check out the correponding branch. |
| 6 | + - Clone Google's crashpad (https://chromium.googlesource.com/crashpad/crashpad) |
| 7 | + - `git clone https://chromium.googlesource.com/crashpad/crashpad` |
| 8 | + - Check out the branch with the revision checksum: |
| 9 | + - `git checkout <revision checksum>` |
| 10 | + - Add electron's crashpad fork as a remote |
| 11 | + - `git remote add electron https://github.com/electron/crashpad` |
| 12 | + - Check out a new branch for the update |
| 13 | + - `git checkout -b electron-crashpad-vA.B.C.D` |
| 14 | + - `A.B.C.D` is the Chromium version found in `libcc/VERSION` |
9 | 15 | and will be something like `62.0.3202.94` |
10 | 16 |
|
11 | | -- Make a checklist of the Electron patches we need to apply |
12 | | - e.g. `git log --oneline` |
13 | | - or view http://github.com/electron/crashpad/commits/previous-branch-name |
14 | | -- Foreach patch: |
15 | | - - (in new branch) `git cherry-pick checksum` |
16 | | - - resolve any conflicts |
17 | | - - make sure it builds |
18 | | - - add && commit |
19 | | -- Push your work: |
20 | | - `git push electron electorn-crashpad-v62.0.3202.94` |
| 17 | +2. Make a checklist of the Electron patches that need to be applied |
| 18 | + with `git log --oneline` |
| 19 | + - Or view http://github.com/electron/crashpad/commits/previous-branch-name |
| 20 | + |
| 21 | +3. For each patch: |
| 22 | + - In `electron-crashpad-vA.B.C.D`, cherry-pick the patch's checksum |
| 23 | + - `git cherry-pick <checksum>` |
| 24 | + - Resolve any conflicts |
| 25 | + - Make sure it builds then add, commit, and push work to electron's crashpad fork |
| 26 | + - `git push electron electron-crashpad-vA.B.C.D` |
21 | 27 |
|
22 | | -- Update Electron to build the new crashpad: |
| 28 | +4. Update Electron to build the new crashpad: |
23 | 29 | - `cd vendor/crashpad` |
24 | 30 | - `git fetch` |
25 | 31 | - `git checkout electron-crashpad-v62.0.3202.94` |
26 | | -- Regenerate Ninja files |
27 | | - - from Electron root's root, run `script/update.py` |
| 32 | +5. Regenerate Ninja files against both targets |
| 33 | + - From Electron root's root, run `script/update.py` |
28 | 34 | - `script/build.py -c D --target=crashpad_client` |
29 | 35 | - `script/build.py -c D --target=crashpad_handler` |
30 | | - - If both of these work, it's probably good. |
31 | | -- Push changes to submodule reference |
32 | | - - (from electron root) `git add vendor/crashpad` |
| 36 | + - Both should build with no errors |
| 37 | +6. Push changes to submodule reference |
| 38 | + - (From electron root) `git add vendor/crashpad` |
33 | 39 | - `git push origin upgrade-to-chromium-62` |
34 | | - |
| 40 | + |
35 | 41 |
|
36 | 42 |
|
0 commit comments