Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Part of #13551 - Create packages under release/debug directories as appropriate #13845

Merged
merged 2 commits into from Dec 10, 2016
Merged
Changes from all commits
Commits
File filter...
Filter file types
Jump to…
Jump to file
Failed to load files.

Always

Just for now

@@ -28,7 +28,7 @@ upload() {


main() {
if [[ "${#}" != 1 ]]; then
if (( "${#}" != 1 )); then
usage >&2
return 1
fi
@@ -41,13 +41,13 @@ main() {
package=target/arm-linux-androideabi/release/*."${extension}"
elif [[ "${platform}" == "linux" ]]; then
extension=tar.gz
package=target/*."${extension}"
package=target/release/*."${extension}"
elif [[ "${platform}" == "mac" ]]; then
extension=dmg
package=target/*."${extension}"
package=target/release/*."${extension}"
elif [[ "${platform}" == "macbrew" ]]; then
extension=tar.gz
package=target/brew/*."${extension}"
package=target/release/brew/*."${extension}"
elif [[ "${platform}" == "windows" ]]; then
extension=msi
package=target/release/msi/*.msi
@@ -152,13 +152,13 @@ def package(self, release=False, dev=False, android=None, debug=False, debugger=
return e.returncode
elif is_macosx():

dir_to_build = '/'.join(binary_path.split('/')[:-1])
dir_to_root = '/'.join(binary_path.split('/')[:-3])
dir_to_build = path.dirname(binary_path)
dir_to_root = self.get_top_dir()

print("Creating Servo.app")
dir_to_dmg = '/'.join(binary_path.split('/')[:-2]) + '/dmg'
dir_to_app = dir_to_dmg + '/Servo.app'
dir_to_resources = dir_to_app + '/Contents/Resources/'
dir_to_dmg = path.join(dir_to_build, '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):
print("Cleaning up from previous packaging")
delete(dir_to_dmg)
@@ -168,19 +168,23 @@ def package(self, release=False, dev=False, android=None, debug=False, debugger=
return 1

print("Copying files")
shutil.copytree(dir_to_root + '/resources', dir_to_resources)
shutil.copytree(browserhtml_path, dir_to_resources + browserhtml_path.split('/')[-1])
shutil.copy2(dir_to_root + '/Info.plist', dir_to_app + '/Contents/Info.plist')
os.makedirs(dir_to_app + '/Contents/MacOS/')
shutil.copy2(dir_to_build + '/servo', dir_to_app + '/Contents/MacOS/')
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.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')
os.makedirs(content_dir)
shutil.copy2(binary_path, content_dir)

print("Swapping prefs")
delete(dir_to_resources + '/prefs.json')
shutil.copy2(dir_to_resources + 'package-prefs.json', dir_to_resources + 'prefs.json')
delete(dir_to_resources + '/package-prefs.json')
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)

print("Finding dylibs and relinking")
copy_dependencies(dir_to_app + '/Contents/MacOS/servo', dir_to_app + '/Contents/MacOS/')
copy_dependencies(path.join(content_dir, 'servo'), content_dir)

print("Adding version to Credits.rtf")
version_command = [binary_path, '--version']
@@ -193,24 +197,28 @@ def package(self, release=False, dev=False, android=None, debug=False, debugger=
raise Exception("Error occurred when getting Servo version: " + stderr)
version = "Nightly version: " + version

template_path = os.path.join(dir_to_resources, 'Credits.rtf.mako')
credits_path = os.path.join(dir_to_resources, 'Credits.rtf')
template_path = path.join(dir_to_resources, 'Credits.rtf.mako')
credits_path = path.join(dir_to_resources, 'Credits.rtf')
with open(template_path) as template_file:
template = mako.template.Template(template_file.read())
with open(credits_path, "w") as credits_file:
credits_file.write(template.render(version=version))
delete(template_path)

print("Writing run-servo")
bhtml_path = path.join('${0%/*}/../Resources', browserhtml_path.split('/')[-1], 'out', 'index.html')
runservo = os.open(dir_to_app + '/Contents/MacOS/run-servo', os.O_WRONLY | os.O_CREAT, int("0755", 8))
bhtml_path = path.join('${0%/*}', '..', 'Resources', path.basename(browserhtml_path), 'out', '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', dir_to_dmg + '/Applications')
dmg_path = '/'.join(dir_to_build.split('/')[:-1]) + '/'
dmg_path += "servo-tech-demo.dmg"
os.symlink('/Applications', path.join(dir_to_dmg, 'Applications'))
dmg_path = path.join(dir_to_build, "servo-tech-demo.dmg")

try:
subprocess.check_call(['hdiutil', 'create', '-volname', 'Servo', dmg_path, '-srcfolder', dir_to_dmg])
except subprocess.CalledProcessError as e:
@@ -221,24 +229,24 @@ def package(self, release=False, dev=False, android=None, debug=False, debugger=
print("Packaged Servo into " + dmg_path)

print("Creating brew package")
dir_to_brew = '/'.join(binary_path.split('/')[:-2]) + '/brew_tmp/'
dir_to_tar = '/'.join(dir_to_build.split('/')[:-1]) + '/brew/'
dir_to_brew = path.join(dir_to_build, 'brew_tmp')
dir_to_tar = path.join(dir_to_build, 'brew')
if not path.exists(dir_to_tar):
os.makedirs(dir_to_tar)
tar_path = dir_to_tar + "servo.tar.gz"
tar_path = path.join(dir_to_tar, "servo.tar.gz")
if path.exists(dir_to_brew):
print("Cleaning up from previous packaging")
delete(dir_to_brew)
if path.exists(tar_path):
print("Deleting existing package")
os.remove(tar_path)
shutil.copytree(dir_to_root + '/resources', dir_to_brew + "/resources/")
os.makedirs(dir_to_brew + '/bin/')
shutil.copy2(dir_to_build + '/servo', dir_to_brew + '/bin/servo')
shutil.copytree(path.join(dir_to_root, 'resources'), path.join(dir_to_brew, 'resources'))
os.makedirs(path.join(dir_to_brew, 'bin'))
shutil.copy2(binary_path, path.join(dir_to_brew, 'bin', 'servo'))
# Note that in the context of Homebrew, libexec is reserved for private use by the formula
# and therefore is not symlinked into HOMEBREW_PREFIX.
os.makedirs(dir_to_brew + '/libexec/')
copy_dependencies(dir_to_brew + '/bin/servo', dir_to_brew + '/libexec/')
os.makedirs(path.join(dir_to_brew, 'libexec'))
copy_dependencies(path.join(dir_to_brew, 'bin', 'servo'), path.join(dir_to_brew, 'libexec'))
archive_deterministically(dir_to_brew, tar_path, prepend_path='servo/')
delete(dir_to_brew)
print("Packaged Servo into " + tar_path)
@@ -283,7 +291,7 @@ def package(self, release=False, dev=False, android=None, debug=False, debugger=
msi_path = path.join(dir_to_msi, "Servo.msi")
print("Packaged Servo into {}".format(msi_path))
else:
dir_to_temp = path.join(os.path.dirname(binary_path), 'packaging-temp')
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.")
@@ -307,12 +315,12 @@ def package(self, release=False, dev=False, android=None, debug=False, debugger=
'--pref', 'shell.builtin-key-shortcuts.enabled=false',
path.join('./browserhtml', 'out', 'index.html')]

runservo = os.open(dir_to_temp + '/runservo.sh', os.O_WRONLY | os.O_CREAT, int("0755", 8))
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(self.get_target_dir(), 'servo-tech-demo.tar.gz')
tar_path = path.join(path.dirname(binary_path), 'servo-tech-demo.tar.gz')

archive_deterministically(dir_to_temp, tar_path, prepend_path='servo/')

ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.