Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(393)

Side by Side Diff: third_party/boringssl/roll_boringssl.py

Issue 1321793002: Roll src/third_party/boringssl/src 12fe1b25e..ac8302a09 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: roll further Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/boringssl/linux-arm/crypto/sha/sha512-armv4.S ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #!/usr/bin/env python
2 # Copyright 2015 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 """Rolls third_party/boringssl/src in DEPS and updates generated build files."""
7
8 import os
9 import os.path
10 import shutil
11 import subprocess
12 import sys
13
14
15 SCRIPT_PATH = os.path.abspath(__file__)
16 SRC_PATH = os.path.dirname(os.path.dirname(os.path.dirname(SCRIPT_PATH)))
17 DEPS_PATH = os.path.join(SRC_PATH, 'DEPS')
18 BORINGSSL_PATH = os.path.join(SRC_PATH, 'third_party', 'boringssl')
19 BORINGSSL_SRC_PATH = os.path.join(BORINGSSL_PATH, 'src')
20
21 if not os.path.isfile(DEPS_PATH) or not os.path.isdir(BORINGSSL_SRC_PATH):
22 raise Exception('Could not find Chromium checkout')
23
24 # Pull OS_ARCH_COMBOS out of the BoringSSL script.
25 sys.path.append(os.path.join(BORINGSSL_SRC_PATH, 'util'))
26 import generate_build_files
27
28 GENERATED_FILES = [
29 'boringssl.gypi',
30 'boringssl_tests.gypi',
31 'err_data.c',
32 ]
33
34
35 def IsPristine(repo):
36 """Returns True if a git checkout is pristine."""
37 cmd = ['git', 'diff', '--ignore-submodules']
38 return not (subprocess.check_output(cmd, cwd=repo).strip() or
39 subprocess.check_output(cmd + ['--cached'], cwd=repo).strip())
40
41
42 def RevParse(repo, rev):
43 """Resolves a string to a git commit."""
44 return subprocess.check_output(['git', 'rev-parse', rev], cwd=repo).strip()
45
46
47 def UpdateDEPS(deps, from_hash, to_hash):
48 """Updates all references of |from_hash| to |to_hash| in |deps|."""
49 with open(deps, 'rb') as f:
50 contents = f.read()
51 if from_hash not in contents:
52 raise Exception('%s not in DEPS' % from_hash)
53 contents = contents.replace(from_hash, to_hash)
54 with open(deps, 'wb') as f:
55 f.write(contents)
56
57
58 def main():
59 if len(sys.argv) > 2:
60 sys.stderr.write('Usage: %s [COMMIT]' % sys.argv[0])
61 return 1
62
63 if not IsPristine(SRC_PATH):
64 print >>sys.stderr, 'Chromium checkout not pristine.'
65 return 0
66 if not IsPristine(BORINGSSL_SRC_PATH):
67 print >>sys.stderr, 'BoringSSL checkout not pristine.'
68 return 0
69
70 if len(sys.argv) > 1:
71 commit = RevParse(BORINGSSL_SRC_PATH, sys.argv[1])
72 else:
73 subprocess.check_call(['git', 'fetch', 'origin'], cwd=BORINGSSL_SRC_PATH)
74 commit = RevParse(BORINGSSL_SRC_PATH, 'origin/master')
75
76 head = RevParse(BORINGSSL_SRC_PATH, 'HEAD')
77 if head == commit:
78 print 'BoringSSL already up-to-date.'
79 return 0
80
81 print 'Rolling BoringSSL from %s to %s...' % (head, commit)
82
83 UpdateDEPS(DEPS_PATH, head, commit)
84
85 # Checkout third_party/boringssl/src to generate new files.
86 subprocess.check_call(['git', 'checkout', commit], cwd=BORINGSSL_SRC_PATH)
87
88 # Clear the old generated files.
89 for (osname, arch, _, _, _) in generate_build_files.OS_ARCH_COMBOS:
90 path = os.path.join(BORINGSSL_PATH, osname + '-' + arch)
91 shutil.rmtree(path)
92 for file in GENERATED_FILES:
93 path = os.path.join(BORINGSSL_PATH, file)
94 os.unlink(path)
95
96 # Generate new ones.
97 subprocess.check_call(['python',
98 os.path.join(BORINGSSL_SRC_PATH, 'util',
99 'generate_build_files.py'),
100 'gyp'],
101 cwd=BORINGSSL_PATH)
102
103 # Commit everything.
104 subprocess.check_call(['git', 'add', DEPS_PATH], cwd=SRC_PATH)
105 for (osname, arch, _, _, _) in generate_build_files.OS_ARCH_COMBOS:
106 path = os.path.join(BORINGSSL_PATH, osname + '-' + arch)
107 subprocess.check_call(['git', 'add', path], cwd=SRC_PATH)
108 for file in GENERATED_FILES:
109 path = os.path.join(BORINGSSL_PATH, file)
110 subprocess.check_call(['git', 'add', path], cwd=SRC_PATH)
111
112 message = """Roll src/third_party/boringssl/src %s..%s
113
114 https://boringssl.googlesource.com/boringssl/+log/%s..%s
115
116 BUG=none
117 """ % (head[:9], commit[:9], head, commit)
118 subprocess.check_call(['git', 'commit', '-m', message], cwd=SRC_PATH)
119
120 return 0
121
122
123 if __name__ == '__main__':
124 sys.exit(main())
OLDNEW
« no previous file with comments | « third_party/boringssl/linux-arm/crypto/sha/sha512-armv4.S ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698