From 7eb4d7a9a7f519792754ca4f1847511d44d30f09 Mon Sep 17 00:00:00 2001 From: UK992 Date: Mon, 26 Dec 2016 16:44:31 +0100 Subject: [PATCH 1/6] Package: Merge changed prefs from package-prefs.json to prefs.json --- python/servo/package_commands.py | 46 +++++++++++++++++--------- resources/package-prefs.json | 55 +------------------------------- resources/prefs.json | 2 +- support/windows/Servo.wxs.mako | 6 ++-- tests/unit/servo_config/prefs.rs | 6 ++-- 5 files changed, 39 insertions(+), 76 deletions(-) diff --git a/python/servo/package_commands.py b/python/servo/package_commands.py index 19935e13f4a..e8358c250dc 100644 --- a/python/servo/package_commands.py +++ b/python/servo/package_commands.py @@ -13,6 +13,7 @@ import sys import os.path as path sys.path.append(path.join(path.dirname(sys.argv[0]), "components", "style", "properties", "Mako-0.9.1.zip")) +import json import os import shutil import subprocess @@ -78,7 +79,6 @@ def change_non_system_libraries_path(libraries, relative_path, binary): def copy_dependencies(binary_path, lib_path): - relative_path = path.relpath(lib_path, path.dirname(binary_path)) + "/" # Update binary libraries @@ -105,6 +105,24 @@ def copy_dependencies(binary_path, lib_path): need_checked.difference_update(checked) +def change_prefs(resources_path, platform): + print("Swapping prefs") + prefs_path = path.join(resources_path, "prefs.json") + package_prefs_path = path.join(resources_path, "package-prefs.json") + os_type = "os:{}".format(platform) + with open(prefs_path) as prefs, open(package_prefs_path) as package_prefs: + prefs = json.load(prefs) + package_prefs = json.load(package_prefs) + for pref in package_prefs: + if os_type in pref: + prefs[pref.split(";")[1]] = package_prefs[pref] + if pref in prefs: + prefs[pref] = package_prefs[pref] + with open(prefs_path, "w") as out: + json.dump(prefs, out, sort_keys=True, indent=2) + delete(package_prefs_path) + + @CommandProvider class PackageCommands(CommandBase): @Command('package', @@ -151,7 +169,6 @@ class PackageCommands(CommandBase): print("Packaging Android exited with return value %d" % e.returncode) return e.returncode elif is_macosx(): - dir_to_build = path.dirname(binary_path) dir_to_root = self.get_top_dir() @@ -176,12 +193,7 @@ class PackageCommands(CommandBase): os.makedirs(content_dir) shutil.copy2(binary_path, content_dir) - print("Swapping prefs") - package_prefs_path = path.join(dir_to_resources, 'package-prefs.json') - prefs_path = path.join(dir_to_resources, 'prefs.json') - delete(prefs_path) - shutil.copy2(package_prefs_path, prefs_path) - delete(package_prefs_path) + change_prefs(dir_to_resources, "macosx") print("Finding dylibs and relinking") copy_dependencies(path.join(content_dir, 'servo'), content_dir) @@ -250,7 +262,6 @@ class PackageCommands(CommandBase): archive_deterministically(dir_to_brew, tar_path, prepend_path='servo/') delete(dir_to_brew) print("Packaged Servo into " + tar_path) - elif is_windows(): dir_to_package = path.dirname(binary_path) dir_to_root = self.get_top_dir() @@ -259,20 +270,27 @@ class PackageCommands(CommandBase): print("Cleaning up from previous packaging") delete(dir_to_msi) os.makedirs(dir_to_msi) - top_path = dir_to_root browserhtml_path = find_dep_path_newest('browserhtml', binary_path) if browserhtml_path is None: print("Could not find browserhtml package; perhaps you haven't built Servo.") return 1 browserhtml_path = path.join(browserhtml_path, "out") + + print("Copying files") + dir_to_resources = path.join(dir_to_msi, 'resources') + shutil.copytree(path.join(self.get_top_dir(), 'resources'), dir_to_resources) + + change_prefs(dir_to_resources, "windows") + # generate Servo.wxs template_path = path.join(dir_to_root, "support", "windows", "Servo.wxs.mako") template = Template(open(template_path).read()) wxs_path = path.join(dir_to_msi, "Servo.wxs") open(wxs_path, "w").write(template.render( exe_path=dir_to_package, - top_path=top_path, + resources_path=dir_to_resources, browserhtml_path=browserhtml_path)) + # run candle and light print("Creating MSI") try: @@ -307,12 +325,10 @@ class PackageCommands(CommandBase): shutil.copytree(browserhtml_path, path.join(dir_to_temp, 'browserhtml')) shutil.copy(binary_path, dir_to_temp) + change_prefs(dir_to_resources, "linux") + print("Writing runservo.sh") - # TODO: deduplicate this arg list from post_build_commands servo_args = ['-b', - '--pref', 'dom.mozbrowser.enabled', - '--pref', 'dom.forcetouch.enabled', - '--pref', 'shell.builtin-key-shortcuts.enabled=false', path.join('./browserhtml', 'out', 'index.html')] runservo = os.open(path.join(dir_to_temp, 'runservo.sh'), os.O_WRONLY | os.O_CREAT, int("0755", 8)) diff --git a/resources/package-prefs.json b/resources/package-prefs.json index 6cf5ffbd43c..c6d1894c8ee 100644 --- a/resources/package-prefs.json +++ b/resources/package-prefs.json @@ -1,59 +1,6 @@ { - "dom.bluetooth.enabled": false, - "dom.bluetooth.testing.enabled": false, "dom.forcetouch.enabled": true, - "dom.mouseevent.which.enabled": false, "dom.mozbrowser.enabled": true, - "dom.serviceworker.timeout_seconds": 60, - "dom.testable_crash.enabled": false, - "dom.testbinding.enabled": false, - "js.asmjs.enabled": true, - "js.asyncstack.enabled": false, - "js.baseline.enabled": true, - "js.baseline.unsafe_eager_compilation.enabled": false, - "js.discard_system_source.enabled": false, - "js.dump_stack_on_debuggee_would_run.enabled": false, - "js.ion.enabled": true, - "js.ion.offthread_compilation.enabled": true, - "js.ion.unsafe_eager_compilation.enabled": false, - "js.mem.gc.allocation_threshold_mb": 30, - "js.mem.gc.compacting.enabled": true, - "js.mem.gc.decommit_threshold_mb": 32, - "js.mem.gc.dynamic_heap_growth.enabled": true, - "js.mem.gc.dynamic_mark_slice.enabled": true, - "js.mem.gc.empty_chunk_count_max": 30, - "js.mem.gc.empty_chunk_count_min": 1, - "js.mem.gc.high_frequency_heap_growth_max": 300, - "js.mem.gc.high_frequency_heap_growth_min": 150, - "js.mem.gc.high_frequency_high_limit_mb": 500, - "js.mem.gc.high_frequency_low_limit_mb": 100, - "js.mem.gc.high_frequency_time_limit_ms": 1000, - "js.mem.gc.incremental.enabled": true, - "js.mem.gc.incremental.slice_ms": 10, - "js.mem.gc.low_frequency_heap_growth": 150, - "js.mem.gc.per_compartment.enabled": true, - "js.mem.gc.refresh_frame_slices.enabled": true, - "js.mem.gc.zeal.frequency": 100, - "js.mem.gc.zeal.level": 0, - "js.mem.high_water_mark": 128, - "js.mem.max": -1, - "js.native_regexp.enabled": true, - "js.parallel_parsing.enabled": true, - "js.shared_memory.enabled": true, - "js.strict.debug.enabled": false, - "js.strict.enabled": false, - "js.throw_on_asmjs_validation_failure.enabled": false, - "js.throw_on_debuggee_would_run.enabled": false, - "js.werror.enabled": false, - "layout.column-count.enabled": false, - "layout.column-gap.enabled": false, - "layout.column-width.enabled": false, - "layout.columns.enabled": false, - "layout.text-orientation.enabled": false, - "layout.viewport.enabled": false, - "layout.writing-mode.enabled": false, - "network.mime.sniff": false, "shell.builtin-key-shortcuts.enabled": false, - "shell.homepage": "https://servo.org", - "shell.native-titlebar.enabled": false + "os:macosx;shell.native-titlebar.enabled": false } diff --git a/resources/prefs.json b/resources/prefs.json index 819680ae104..f2c45fb35e9 100644 --- a/resources/prefs.json +++ b/resources/prefs.json @@ -55,6 +55,6 @@ "layout.writing-mode.enabled": false, "network.mime.sniff": false, "shell.builtin-key-shortcuts.enabled": true, - "shell.homepage": "http://servo.org", + "shell.homepage": "https://servo.org", "shell.native-titlebar.enabled": true } diff --git a/support/windows/Servo.wxs.mako b/support/windows/Servo.wxs.mako index d25a3f9a3c6..b5e05c62d48 100644 --- a/support/windows/Servo.wxs.mako +++ b/support/windows/Servo.wxs.mako @@ -38,7 +38,7 @@ WorkingDirectory="INSTALLDIR" Icon="Servo.ico" IconIndex="0" - Arguments="-w --pref dom.mozbrowser.enabled --pref shell.builtin-key-shortcuts.enabled=false browserhtml\index.html" + Arguments="browserhtml\index.html" Advertise="yes"/> - ${include_directory(path.join(top_path, "resources"), "resources")} + ${include_directory(resources_path, "resources")} ${include_directory(browserhtml_path, "browserhtml")} @@ -77,7 +77,7 @@ - + <%! diff --git a/tests/unit/servo_config/prefs.rs b/tests/unit/servo_config/prefs.rs index 393b5a358d2..8b6b7295815 100644 --- a/tests/unit/servo_config/prefs.rs +++ b/tests/unit/servo_config/prefs.rs @@ -12,7 +12,7 @@ fn test_create_pref() { let json_str = "{\ \"layout.writing-mode.enabled\": true,\ \"network.mime.sniff\": false,\ - \"shell.homepage\": \"http://servo.org\"\ + \"shell.homepage\": \"https://servo.org\"\ }"; let prefs = read_prefs_from_file(json_str.as_bytes()); @@ -33,11 +33,11 @@ fn test_get_set_reset_extend() { assert_eq!(*PREFS.get("test"), PrefValue::Missing); PREFS.set("test", PrefValue::String("hi".to_owned())); assert_eq!(*PREFS.get("test"), PrefValue::String("hi".to_owned())); - assert_eq!(*PREFS.get("shell.homepage"), PrefValue::String("http://servo.org".to_owned())); + assert_eq!(*PREFS.get("shell.homepage"), PrefValue::String("https://servo.org".to_owned())); PREFS.set("shell.homepage", PrefValue::Boolean(true)); assert_eq!(*PREFS.get("shell.homepage"), PrefValue::Boolean(true)); PREFS.reset("shell.homepage"); - assert_eq!(*PREFS.get("shell.homepage"), PrefValue::String("http://servo.org".to_owned())); + assert_eq!(*PREFS.get("shell.homepage"), PrefValue::String("https://servo.org".to_owned())); let extension = read_prefs_from_file(json_str.as_bytes()).unwrap(); PREFS.extend(extension); From 63a4bf74b0c19b71a2e61084c52bdbfcdd9ee6ef Mon Sep 17 00:00:00 2001 From: UK992 Date: Tue, 27 Dec 2016 19:29:06 +0100 Subject: [PATCH 2/6] Fix tidy json alphabetical order check --- python/tidy/servo_tidy/tidy.py | 2 +- servo-tidy.toml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/python/tidy/servo_tidy/tidy.py b/python/tidy/servo_tidy/tidy.py index cae431205f8..2528ac88642 100644 --- a/python/tidy/servo_tidy/tidy.py +++ b/python/tidy/servo_tidy/tidy.py @@ -734,7 +734,7 @@ def check_for_alphabetical_sorted_json_keys(key_value_pairs): def check_json_requirements(filename): def check_fn(key_value_pairs): check_for_possible_duplicate_json_keys(key_value_pairs) - if filename in config["check-ordered-json-keys"]: + if filename in normilize_paths(config["check-ordered-json-keys"]): check_for_alphabetical_sorted_json_keys(key_value_pairs) return check_fn diff --git a/servo-tidy.toml b/servo-tidy.toml index c5d64c6f30b..3659ba6c9bd 100644 --- a/servo-tidy.toml +++ b/servo-tidy.toml @@ -3,7 +3,6 @@ skip-check-length = false skip-check-licenses = false check-ordered-json-keys = [ "./resources/prefs.json", - "./resources/package-prefs.json", ] lint-scripts = [ "./python/servo/lints/wpt_lint.py", From 456900b4efdefdf933928b6cdfc3ada6dbb68f94 Mon Sep 17 00:00:00 2001 From: UK992 Date: Tue, 27 Dec 2016 20:16:13 +0100 Subject: [PATCH 3/6] Package: Simplify getting browserhtml path --- python/servo/package_commands.py | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/python/servo/package_commands.py b/python/servo/package_commands.py index e8358c250dc..505db555847 100644 --- a/python/servo/package_commands.py +++ b/python/servo/package_commands.py @@ -123,6 +123,13 @@ def change_prefs(resources_path, platform): delete(package_prefs_path) +def get_browserhtml_path(binary_path): + browserhtml_path = find_dep_path_newest('browserhtml', binary_path) + if browserhtml_path: + return path.join(browserhtml_path, "out") + sys.exit("Could not find browserhtml package; perhaps you haven't built Servo.") + + @CommandProvider class PackageCommands(CommandBase): @Command('package', @@ -179,14 +186,11 @@ class PackageCommands(CommandBase): if path.exists(dir_to_dmg): print("Cleaning up from previous packaging") delete(dir_to_dmg) - browserhtml_path = find_dep_path_newest('browserhtml', binary_path) - if browserhtml_path is None: - print("Could not find browserhtml package; perhaps you haven't built Servo.") - return 1 + browserhtml_path = get_browserhtml_path(binary_path) print("Copying files") shutil.copytree(path.join(dir_to_root, 'resources'), dir_to_resources) - shutil.copytree(browserhtml_path, path.join(dir_to_resources, path.basename(browserhtml_path))) + shutil.copytree(browserhtml_path, path.join(dir_to_resources, 'browserhtml')) shutil.copy2(path.join(dir_to_root, 'Info.plist'), path.join(dir_to_app, 'Contents', 'Info.plist')) content_dir = path.join(dir_to_app, 'Contents', 'MacOS') @@ -218,7 +222,7 @@ class PackageCommands(CommandBase): delete(template_path) print("Writing run-servo") - bhtml_path = path.join('${0%/*}', '..', 'Resources', path.basename(browserhtml_path), 'out', 'index.html') + bhtml_path = path.join('${0%/*}', '..', 'Resources', 'browserhtml', 'index.html') runservo = os.open( path.join(content_dir, 'run-servo'), os.O_WRONLY | os.O_CREAT, @@ -270,11 +274,7 @@ class PackageCommands(CommandBase): print("Cleaning up from previous packaging") delete(dir_to_msi) os.makedirs(dir_to_msi) - browserhtml_path = find_dep_path_newest('browserhtml', binary_path) - if browserhtml_path is None: - print("Could not find browserhtml package; perhaps you haven't built Servo.") - return 1 - browserhtml_path = path.join(browserhtml_path, "out") + browserhtml_path = get_browserhtml_path(binary_path) print("Copying files") dir_to_resources = path.join(dir_to_msi, 'resources') @@ -310,10 +310,7 @@ class PackageCommands(CommandBase): print("Packaged Servo into {}".format(msi_path)) else: dir_to_temp = path.join(path.dirname(binary_path), 'packaging-temp') - browserhtml_path = find_dep_path_newest('browserhtml', binary_path) - if browserhtml_path is None: - print("Could not find browserhtml package; perhaps you haven't built Servo.") - return 1 + browserhtml_path = get_browserhtml_path(binary_path) if path.exists(dir_to_temp): # TODO(aneeshusa): lock dir_to_temp to prevent simultaneous builds print("Cleaning up from previous packaging") @@ -329,7 +326,7 @@ class PackageCommands(CommandBase): print("Writing runservo.sh") servo_args = ['-b', - path.join('./browserhtml', 'out', 'index.html')] + path.join('./browserhtml', 'index.html')] runservo = os.open(path.join(dir_to_temp, 'runservo.sh'), os.O_WRONLY | os.O_CREAT, int("0755", 8)) os.write(runservo, "#!/usr/bin/env sh\n./servo " + ' '.join(servo_args)) From 01c7ac785b557304b1008799785f13a725a347ce Mon Sep 17 00:00:00 2001 From: UK992 Date: Tue, 27 Dec 2016 21:37:16 +0100 Subject: [PATCH 4/6] Package: Set `shell.homepage` to browserhtml Closes #12154 --- Info.plist | 2 +- python/servo/package_commands.py | 18 ------------------ resources/package-prefs.json | 2 ++ support/windows/Servo.wxs.mako | 1 - 4 files changed, 3 insertions(+), 20 deletions(-) diff --git a/Info.plist b/Info.plist index a3136514d3a..ded92bf0267 100644 --- a/Info.plist +++ b/Info.plist @@ -3,7 +3,7 @@ CFBundleExecutable - run-servo + servo CFBundleGetInfoString Servo CFBundleIconFile diff --git a/python/servo/package_commands.py b/python/servo/package_commands.py index 505db555847..c16d89202a5 100644 --- a/python/servo/package_commands.py +++ b/python/servo/package_commands.py @@ -221,16 +221,6 @@ class PackageCommands(CommandBase): credits_file.write(template.render(version=version)) delete(template_path) - print("Writing run-servo") - bhtml_path = path.join('${0%/*}', '..', 'Resources', 'browserhtml', 'index.html') - runservo = os.open( - path.join(content_dir, 'run-servo'), - os.O_WRONLY | os.O_CREAT, - int("0755", 8) - ) - os.write(runservo, '#!/bin/bash\nexec ${0%/*}/servo ' + bhtml_path) - os.close(runservo) - print("Creating dmg") os.symlink('/Applications', path.join(dir_to_dmg, 'Applications')) dmg_path = path.join(dir_to_build, "servo-tech-demo.dmg") @@ -324,14 +314,6 @@ class PackageCommands(CommandBase): change_prefs(dir_to_resources, "linux") - print("Writing runservo.sh") - servo_args = ['-b', - path.join('./browserhtml', 'index.html')] - - runservo = os.open(path.join(dir_to_temp, 'runservo.sh'), os.O_WRONLY | os.O_CREAT, int("0755", 8)) - os.write(runservo, "#!/usr/bin/env sh\n./servo " + ' '.join(servo_args)) - os.close(runservo) - print("Creating tarball") tar_path = path.join(path.dirname(binary_path), 'servo-tech-demo.tar.gz') diff --git a/resources/package-prefs.json b/resources/package-prefs.json index c6d1894c8ee..2ae926a79f6 100644 --- a/resources/package-prefs.json +++ b/resources/package-prefs.json @@ -2,5 +2,7 @@ "dom.forcetouch.enabled": true, "dom.mozbrowser.enabled": true, "shell.builtin-key-shortcuts.enabled": false, + "os:windows,os:linux;shell.homepage": "browserhtml/index.html", + "os:macosx;shell.homepage": "../Resources/browserhtml/index.html", "os:macosx;shell.native-titlebar.enabled": false } diff --git a/support/windows/Servo.wxs.mako b/support/windows/Servo.wxs.mako index b5e05c62d48..ab50dd84a66 100644 --- a/support/windows/Servo.wxs.mako +++ b/support/windows/Servo.wxs.mako @@ -38,7 +38,6 @@ WorkingDirectory="INSTALLDIR" Icon="Servo.ico" IconIndex="0" - Arguments="browserhtml\index.html" Advertise="yes"/> Date: Wed, 28 Dec 2016 18:27:55 +0100 Subject: [PATCH 5/6] Package: Move Android packaging to target dir Fixes #13800 --- python/servo/package_commands.py | 18 ++++++++++++------ support/android/build-apk/src/main.rs | 2 +- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/python/servo/package_commands.py b/python/servo/package_commands.py index c16d89202a5..25de943f7ee 100644 --- a/python/servo/package_commands.py +++ b/python/servo/package_commands.py @@ -148,6 +148,7 @@ class PackageCommands(CommandBase): if android is None: android = self.config["build"]["android"] binary_path = self.get_binary_path(release, dev, android=android) + dir_to_root = self.get_top_dir() if android: if dev: env["NDK_DEBUG"] = "1" @@ -159,25 +160,31 @@ class PackageCommands(CommandBase): target_dir = path.dirname(binary_path) output_apk = "{}.apk".format(binary_path) + + dir_to_apk = path.join(target_dir, "apk") + if path.exists(dir_to_apk): + print("Cleaning up from previous packaging") + delete(dir_to_apk) + shutil.copytree(path.join(dir_to_root, "support", "android", "apk"), dir_to_apk) + blurdroid_path = find_dep_path_newest('blurdroid', binary_path) if blurdroid_path is None: print("Could not find blurdroid package; perhaps you haven't built Servo.") return 1 else: - dir_to_libs = path.join("support", "android", "apk", "libs") + dir_to_libs = path.join(dir_to_apk, "libs") if not path.exists(dir_to_libs): os.makedirs(dir_to_libs) shutil.copy2(blurdroid_path + '/out/blurdroid.jar', dir_to_libs) try: with cd(path.join("support", "android", "build-apk")): subprocess.check_call(["cargo", "run", "--", dev_flag, "-o", output_apk, "-t", target_dir, - "-r", self.get_top_dir()], env=env) + "-r", dir_to_root], env=env) except subprocess.CalledProcessError as e: print("Packaging Android exited with return value %d" % e.returncode) return e.returncode elif is_macosx(): dir_to_build = path.dirname(binary_path) - dir_to_root = self.get_top_dir() print("Creating Servo.app") dir_to_dmg = path.join(dir_to_build, 'dmg') @@ -258,7 +265,6 @@ class PackageCommands(CommandBase): print("Packaged Servo into " + tar_path) elif is_windows(): dir_to_package = path.dirname(binary_path) - dir_to_root = self.get_top_dir() dir_to_msi = path.join(dir_to_package, 'msi') if path.exists(dir_to_msi): print("Cleaning up from previous packaging") @@ -268,7 +274,7 @@ class PackageCommands(CommandBase): print("Copying files") dir_to_resources = path.join(dir_to_msi, 'resources') - shutil.copytree(path.join(self.get_top_dir(), 'resources'), dir_to_resources) + shutil.copytree(path.join(dir_to_root, 'resources'), dir_to_resources) change_prefs(dir_to_resources, "windows") @@ -308,7 +314,7 @@ class PackageCommands(CommandBase): print("Copying files") dir_to_resources = path.join(dir_to_temp, 'resources') - shutil.copytree(path.join(self.get_top_dir(), 'resources'), dir_to_resources) + shutil.copytree(path.join(dir_to_root, 'resources'), dir_to_resources) shutil.copytree(browserhtml_path, path.join(dir_to_temp, 'browserhtml')) shutil.copy(binary_path, dir_to_temp) diff --git a/support/android/build-apk/src/main.rs b/support/android/build-apk/src/main.rs index 0f2ad0f2e13..e836eb859ce 100644 --- a/support/android/build-apk/src/main.rs +++ b/support/android/build-apk/src/main.rs @@ -47,7 +47,7 @@ fn main() { let debug = passthrough.contains(&"-d".to_string()); // Set the build directory that will contain all the necessary files to create the apk - let directory = args.root_path.join("support").join("android").join("apk"); + let directory = args.target_path.join("apk"); let resdir = args.root_path.join("resources/"); // executing ndk-build From fe7cb599a0b77aca165373402279c340660299a1 Mon Sep 17 00:00:00 2001 From: UK992 Date: Thu, 29 Dec 2016 19:18:18 +0100 Subject: [PATCH 6/6] Package: Small cleanup --- python/servo/package_commands.py | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/python/servo/package_commands.py b/python/servo/package_commands.py index 25de943f7ee..64536fa24db 100644 --- a/python/servo/package_commands.py +++ b/python/servo/package_commands.py @@ -149,6 +149,7 @@ class PackageCommands(CommandBase): android = self.config["build"]["android"] binary_path = self.get_binary_path(release, dev, android=android) dir_to_root = self.get_top_dir() + target_dir = path.dirname(binary_path) if android: if dev: env["NDK_DEBUG"] = "1" @@ -158,7 +159,6 @@ class PackageCommands(CommandBase): env["ANT_FLAVOR"] = "release" dev_flag = "" - target_dir = path.dirname(binary_path) output_apk = "{}.apk".format(binary_path) dir_to_apk = path.join(target_dir, "apk") @@ -184,10 +184,8 @@ class PackageCommands(CommandBase): print("Packaging Android exited with return value %d" % e.returncode) return e.returncode elif is_macosx(): - dir_to_build = path.dirname(binary_path) - print("Creating Servo.app") - dir_to_dmg = path.join(dir_to_build, 'dmg') + dir_to_dmg = path.join(target_dir, 'dmg') dir_to_app = path.join(dir_to_dmg, 'Servo.app') dir_to_resources = path.join(dir_to_app, 'Contents', 'Resources') if path.exists(dir_to_dmg): @@ -230,7 +228,7 @@ class PackageCommands(CommandBase): print("Creating dmg") os.symlink('/Applications', path.join(dir_to_dmg, 'Applications')) - dmg_path = path.join(dir_to_build, "servo-tech-demo.dmg") + dmg_path = path.join(target_dir, "servo-tech-demo.dmg") try: subprocess.check_call(['hdiutil', 'create', '-volname', 'Servo', dmg_path, '-srcfolder', dir_to_dmg]) @@ -242,8 +240,8 @@ class PackageCommands(CommandBase): print("Packaged Servo into " + dmg_path) print("Creating brew package") - dir_to_brew = path.join(dir_to_build, 'brew_tmp') - dir_to_tar = path.join(dir_to_build, 'brew') + dir_to_brew = path.join(target_dir, 'brew_tmp') + dir_to_tar = path.join(target_dir, 'brew') if not path.exists(dir_to_tar): os.makedirs(dir_to_tar) tar_path = path.join(dir_to_tar, "servo.tar.gz") @@ -264,8 +262,7 @@ class PackageCommands(CommandBase): delete(dir_to_brew) print("Packaged Servo into " + tar_path) elif is_windows(): - dir_to_package = path.dirname(binary_path) - dir_to_msi = path.join(dir_to_package, 'msi') + dir_to_msi = path.join(target_dir, 'msi') if path.exists(dir_to_msi): print("Cleaning up from previous packaging") delete(dir_to_msi) @@ -283,7 +280,7 @@ class PackageCommands(CommandBase): template = Template(open(template_path).read()) wxs_path = path.join(dir_to_msi, "Servo.wxs") open(wxs_path, "w").write(template.render( - exe_path=dir_to_package, + exe_path=target_dir, resources_path=dir_to_resources, browserhtml_path=browserhtml_path)) @@ -305,7 +302,7 @@ class PackageCommands(CommandBase): msi_path = path.join(dir_to_msi, "Servo.msi") print("Packaged Servo into {}".format(msi_path)) else: - dir_to_temp = path.join(path.dirname(binary_path), 'packaging-temp') + dir_to_temp = path.join(target_dir, 'packaging-temp') browserhtml_path = get_browserhtml_path(binary_path) if path.exists(dir_to_temp): # TODO(aneeshusa): lock dir_to_temp to prevent simultaneous builds @@ -321,7 +318,7 @@ class PackageCommands(CommandBase): change_prefs(dir_to_resources, "linux") print("Creating tarball") - tar_path = path.join(path.dirname(binary_path), 'servo-tech-demo.tar.gz') + tar_path = path.join(target_dir, 'servo-tech-demo.tar.gz') archive_deterministically(dir_to_temp, tar_path, prepend_path='servo/')