OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 | 2 |
3 import glob | 3 import glob |
4 import json | 4 import json |
5 import os | 5 import os |
6 import shutil | 6 import shutil |
7 import subprocess | 7 import subprocess |
8 import sys | 8 import sys |
9 import tempfile | 9 import tempfile |
10 | 10 |
11 BASE_DIR = os.path.dirname(os.path.abspath(__file__)) | 11 BASE_DIR = os.path.dirname(os.path.abspath(__file__)) |
12 ENSURE_DEPENDENCIES_PATH = os.path.join(BASE_DIR, "ensure_dependencies.py") | 12 ENSURE_DEPENDENCIES_PATH = os.path.join(BASE_DIR, "ensure_dependencies.py") |
13 MULTI_L10N_PATH = os.path.join(BASE_DIR, "mozharness", "scripts", | 13 MULTI_L10N_PATH = os.path.join(BASE_DIR, "mozharness", "scripts", |
14 "multil10n.py") | 14 "multil10n.py") |
15 DIST_PATH = os.path.join(BASE_DIR, "adblockbrowser", | 15 DIST_PATH = os.path.join(BASE_DIR, "adblockbrowser", |
16 "obj-arm-linux-androideabi", "dist") | 16 "obj-arm-linux-androideabi", "dist") |
17 | 17 |
18 def print_usage(): | 18 def print_usage(): |
19 print >>sys.stderr, "Usage: %s devbuild|release KEY_STORE KEY_NAME" % \ | 19 print >>sys.stderr, "Usage: %s devbuild|release" % \ |
20 os.path.basename(sys.argv[0]) | 20 os.path.basename(sys.argv[0]) |
21 | 21 |
22 def check_mozconfig(path, mode): | 22 def check_mozconfig(path, mode): |
23 if not os.path.exists(path): | 23 if not os.path.exists(path): |
24 raise Exception("'%s' doesn't exist, please create it." % path) | 24 raise Exception("'%s' doesn't exist, please create it." % path) |
25 | 25 |
26 with open(path) as file: | 26 with open(path) as file: |
27 contents = file.read() | 27 contents = file.read() |
28 | 28 |
29 # This check can be removed once https://issues.adblockplus.org/ticket/2490 is | 29 # This check can be removed once https://issues.adblockplus.org/ticket/2490 is |
(...skipping 11 matching lines...) Expand all Loading... |
41 raise Exception("'%s' seems to set --disable-updater, please don't." % path) | 41 raise Exception("'%s' seems to set --disable-updater, please don't." % path) |
42 elif not updater_disabled and mode == "release": | 42 elif not updater_disabled and mode == "release": |
43 raise Exception( | 43 raise Exception( |
44 "'%s' doesn't seem to set --disable-updater, please do." % path) | 44 "'%s' doesn't seem to set --disable-updater, please do." % path) |
45 | 45 |
46 def find_mozconfig(mode): | 46 def find_mozconfig(mode): |
47 mozconfig_path = os.path.join(BASE_DIR, "mozconfig-" + mode) | 47 mozconfig_path = os.path.join(BASE_DIR, "mozconfig-" + mode) |
48 check_mozconfig(mozconfig_path, mode) | 48 check_mozconfig(mozconfig_path, mode) |
49 return mozconfig_path | 49 return mozconfig_path |
50 | 50 |
51 def build(mode): | 51 def build(mode, sdk_path, ndk_path): |
52 mozharness_environment = os.environ.copy() | 52 mozharness_environment = os.environ.copy() |
53 mozharness_environment["MOZCONFIG"] = find_mozconfig(mode) | 53 mozharness_environment["MOZCONFIG"] = find_mozconfig(mode) |
54 import config | 54 mozharness_environment["ANDROID_SDK_PATH"] = sdk_path |
55 mozharness_environment["ANDROID_SDK_PATH"] = config.ANDROID_SDK_PATH | 55 mozharness_environment["ANDROID_NDK_PATH"] = ndk_path |
56 mozharness_environment["ANDROID_NDK_PATH"] = config.ANDROID_NDK_PATH | |
57 | 56 |
58 subprocess.check_call([MULTI_L10N_PATH, "--cfg", "adblockbrowser-cfg.py"], | 57 subprocess.check_call([MULTI_L10N_PATH, "--cfg", "adblockbrowser-cfg.py"], |
59 env=mozharness_environment) | 58 env=mozharness_environment) |
60 | 59 |
61 [manifest_path] = glob.glob(os.path.join( | 60 [manifest_path] = glob.glob(os.path.join( |
62 DIST_PATH, "fennec-*.multi.android-arm.json")) | 61 DIST_PATH, "fennec-*.multi.android-arm.json")) |
63 with open(manifest_path) as manifest_file: | 62 with open(manifest_path) as manifest_file: |
64 manifest = json.load(manifest_file) | 63 manifest = json.load(manifest_file) |
65 | 64 |
66 apk_path = os.path.join(DIST_PATH, "gecko-unsigned-unaligned.apk") | 65 apk_path = os.path.join(DIST_PATH, "gecko-unsigned-unaligned.apk") |
(...skipping 12 matching lines...) Expand all Loading... |
79 try: | 78 try: |
80 subprocess.check_call(["jarsigner", "-verbose", "-sigalg", "SHA1withRSA", | 79 subprocess.check_call(["jarsigner", "-verbose", "-sigalg", "SHA1withRSA", |
81 "-digestalg", "SHA1", "-keystore", key_store, | 80 "-digestalg", "SHA1", "-keystore", key_store, |
82 temp_apk_path, key_name]) | 81 temp_apk_path, key_name]) |
83 os.remove(apk_path) | 82 os.remove(apk_path) |
84 subprocess.check_call(["zipalign", "-v", "4", temp_apk_path, apk_path]) | 83 subprocess.check_call(["zipalign", "-v", "4", temp_apk_path, apk_path]) |
85 finally: | 84 finally: |
86 os.remove(temp_apk_path) | 85 os.remove(temp_apk_path) |
87 | 86 |
88 if __name__ == "__main__": | 87 if __name__ == "__main__": |
89 if len(sys.argv) < 4: | 88 if len(sys.argv) < 2: |
90 print_usage() | 89 print_usage() |
91 sys.exit(1) | 90 sys.exit(1) |
92 | 91 |
93 mode, key_store, key_name = sys.argv[1:] | 92 mode = sys.argv[1] |
94 if mode not in ("devbuild", "release"): | 93 if mode not in ("devbuild", "release"): |
95 print_usage() | 94 print_usage() |
96 sys.exit(2) | 95 sys.exit(2) |
97 | 96 |
98 subprocess.check_call([ENSURE_DEPENDENCIES_PATH]) | 97 subprocess.check_call([ENSURE_DEPENDENCIES_PATH]) |
99 apk_path = build(mode) | 98 import config |
100 sign(apk_path, key_store, key_name) | 99 apk_path = build(mode, config.ANDROID_SDK_PATH, config.ANDROID_NDK_PATH) |
| 100 sign(apk_path, config.ANDROID_KEYSTORE_PATH, config.ANDROID_KEY_NAME) |
OLD | NEW |