示例#1
0
def BuildUpdater():
    buildbot_common.BuildStep('Create Updater')

    # Build SDK directory
    buildbot_common.RemoveDir(os.path.join(OUT_DIR, 'nacl_sdk'))

    CopyFiles(UPDATER_FILES)

    # Make zip
    buildbot_common.RemoveFile(os.path.join(OUT_DIR, 'nacl_sdk.zip'))
    buildbot_common.Run(
        [sys.executable, oshelpers.__file__, 'zip', 'nacl_sdk.zip'] +
        [out_file for in_file, out_file in UPDATER_FILES],
        cwd=OUT_DIR)

    # Tar of all files under nacl_sdk/sdk_tools
    sdktoolsdir = 'nacl_sdk/sdk_tools'
    tarname = os.path.join(OUT_DIR, 'sdk_tools.tgz')
    files_to_tar = [
        os.path.relpath(out_file, sdktoolsdir)
        for in_file, out_file in UPDATER_FILES
        if out_file.startswith(sdktoolsdir)
    ]
    buildbot_common.RemoveFile(tarname)
    buildbot_common.Run([
        sys.executable, CYGTAR, '-C',
        os.path.join(OUT_DIR, sdktoolsdir), '-czf', tarname
    ] + files_to_tar,
                        cwd=NACL_DIR)
    sys.stdout.write('\n')
示例#2
0
def RemoveBuildCruft(outdir):
    for root, _, files in os.walk(outdir):
        for f in files:
            path = os.path.join(root, f)
            ext = os.path.splitext(path)[1]
            if ext in ('.d', '.o'):
                buildbot_common.RemoveFile(path)
            elif f == 'dir.stamp':
                buildbot_common.RemoveFile(path)
示例#3
0
def BuildUpdater():
    buildbot_common.BuildStep('Create Updater')

    naclsdkdir = os.path.join(OUT_DIR, 'nacl_sdk')
    tooldir = os.path.join(naclsdkdir, 'sdk_tools')
    cachedir = os.path.join(naclsdkdir, 'sdk_cache')
    buildtoolsdir = os.path.join(SDK_SRC_DIR, 'build_tools')

    # Build SDK directory
    buildbot_common.RemoveDir(naclsdkdir)
    buildbot_common.MakeDir(naclsdkdir)
    buildbot_common.MakeDir(tooldir)
    buildbot_common.MakeDir(cachedir)

    # Copy launch scripts
    buildbot_common.CopyFile(os.path.join(buildtoolsdir, 'naclsdk'),
                             naclsdkdir)
    buildbot_common.CopyFile(os.path.join(buildtoolsdir, 'naclsdk.bat'),
                             naclsdkdir)

    # Copy base manifest
    json = os.path.join(buildtoolsdir, 'json', 'naclsdk_manifest0.json')
    buildbot_common.CopyFile(json,
                             os.path.join(cachedir, 'naclsdk_manifest2.json'))

    # Copy SDK tools
    sdkupdate = os.path.join(SDK_SRC_DIR, 'build_tools', 'sdk_tools',
                             'sdk_update.py')
    license = os.path.join(SDK_SRC_DIR, 'LICENSE')
    buildbot_common.CopyFile(sdkupdate, tooldir)
    buildbot_common.CopyFile(license, tooldir)
    buildbot_common.CopyFile(CYGTAR, tooldir)

    buildbot_common.RemoveFile(os.path.join(OUT_DIR, 'nacl_sdk.zip'))
    buildbot_common.Run([
        'zip', '-r', 'nacl_sdk.zip', 'nacl_sdk/naclsdk',
        'nacl_sdk/naclsdk.bat', 'nacl_sdk/sdk_tools/LICENSE',
        'nacl_sdk/sdk_tools/cygtar.py', 'nacl_sdk/sdk_tools/sdk_update.py',
        'nacl_sdk/sdk_cache/naclsdk_manifest2.json'
    ],
                        cwd=OUT_DIR)
    args = ['-v', sdkupdate, license, CYGTAR, tooldir]
    tarname = os.path.join(OUT_DIR, 'sdk_tools.tgz')

    buildbot_common.RemoveFile(tarname)
    buildbot_common.Run([
        sys.executable, CYGTAR, '-C', tooldir, '-czf', tarname,
        'sdk_update.py', 'LICENSE', 'cygtar.py'
    ],
                        cwd=NACL_DIR)
    sys.stdout.write('\n')
示例#4
0
def RemoveBuildCruft(outdir):
    for root, _, files in os.walk(outdir):
        for f in files:
            path = os.path.join(root, f)
            ext = os.path.splitext(path)[1]
            if (ext in ('.d', '.o') or f == 'dir.stamp'
                    or re.search(r'_unstripped_.*?\.nexe', f)):
                buildbot_common.RemoveFile(path)
示例#5
0
def BuildStepBuildLibraries(pepperdir, directory):
  BuildStepMakeAll(pepperdir, directory, 'Build Libraries Debug',
      clean=True, config='Debug')
  BuildStepMakeAll(pepperdir, directory, 'Build Libraries Release',
      clean=True, config='Release')

  # Cleanup .pyc file generated while building libraries.  Without
  # this we would end up shipping the pyc in the SDK tarball.
  buildbot_common.RemoveFile(os.path.join(pepperdir, 'tools', '*.pyc'))
示例#6
0
def BuildUpdater(out_dir, revision_number=None):
    """Build naclsdk.zip and sdk_tools.tgz in |out_dir|.

  Args:
    out_dir: The output directory.
    revision_number: The revision number of this updater, as an integer. Or
        None, to use the current Chrome revision."""
    buildbot_common.BuildStep('Create Updater')

    out_dir = os.path.abspath(out_dir)

    # Build SDK directory
    buildbot_common.RemoveDir(os.path.join(out_dir, 'nacl_sdk'))

    updater_files = MakeUpdaterFilesAbsolute(out_dir)
    updater_files = GlobFiles(updater_files)

    CopyFiles(updater_files)
    UpdateRevisionNumber(out_dir, revision_number)

    out_files = [
        os.path.relpath(out_file, out_dir) for _, out_file in updater_files
    ]

    # Make zip
    buildbot_common.RemoveFile(os.path.join(out_dir, 'nacl_sdk.zip'))
    buildbot_common.Run(
        [sys.executable, oshelpers.__file__, 'zip', 'nacl_sdk.zip'] +
        out_files,
        cwd=out_dir)

    # Tar of all files under nacl_sdk/sdk_tools
    sdktoolsdir = os.path.join('nacl_sdk', 'sdk_tools')
    tarname = os.path.join(out_dir, 'sdk_tools.tgz')
    files_to_tar = [
        os.path.relpath(out_file, sdktoolsdir) for out_file in out_files
        if out_file.startswith(sdktoolsdir)
    ]
    buildbot_common.RemoveFile(tarname)
    buildbot_common.Run([
        sys.executable, CYGTAR, '-C',
        os.path.join(out_dir, sdktoolsdir), '-czf', tarname
    ] + files_to_tar)
    sys.stdout.write('\n')
示例#7
0
def main(args):
    parser = argparse.ArgumentParser()
    parser.add_argument('--install-dir',
                        help='Install Directory',
                        dest='install_dir',
                        default='naclmono')
    parser.add_argument('--tar-path',
                        help='Tarfile path',
                        dest='tar_path',
                        default='naclmono_%pepperrev%.bz2')
    parser.add_argument(
        '--upload-path',
        help='Upload path (nativeclient-mirror/nacl/nacl_sdk/XXX)',
        dest='upload_path',
        default=None)
    parser.add_argument('--pepper-revision',
                        help='Pepper revision',
                        dest='pepper_revision',
                        default=None)
    parser.add_argument('--skip-upload',
                        help='Skips upload step',
                        action="store_true",
                        dest='skip_upload')
    options = parser.parse_args(args)

    if not options.upload_path:
        buildbot_common.ErrorExit('--upload-path is required')
    if not options.pepper_revision:
        buildbot_common.ErrorExit('--pepper-revision is required')

    options.tar_path = options.tar_path.replace('%pepperrev%',
                                                options.pepper_revision)

    install_folders = [
        'bin', 'etc', 'include', 'lib', 'lib32', 'libarm', 'share'
    ]

    buildbot_common.BuildStep('Archive Build')
    tar_file = None
    buildbot_common.RemoveFile(options.tar_path)
    try:
        tar_file = tarfile.open(options.tar_path,
                                mode='w:bz2',
                                dereference=True)
        for subfolder in install_folders:
            tar_file.add(os.path.join(options.install_dir, subfolder),
                         arcname=subfolder)
    finally:
        if tar_file:
            tar_file.close()

    if not options.skip_upload:
        buildbot_common.Archive(
            os.path.basename(options.tar_path),
            'nativeclient-mirror/nacl/nacl_sdk/%s' % options.upload_path,
            cwd=os.path.dirname(os.path.abspath(options.tar_path)))
示例#8
0
def RemoveBuildCruft(outdir):
    for root, _, files in os.walk(outdir):
        for f in files:
            path = os.path.join(root, f)
            ext = os.path.splitext(path)[1]
            # Remove unwanted files from the package. Also remove manifest.json files
            # (which we usually want). These ones are the manifests of the invidual
            # examples, though, which CWS complains about. The master manifest.json
            # is generated after we call RemoveBuildCruft.
            if (ext in ('.d', '.o') or f == 'dir.stamp' or f == 'manifest.json'
                    or re.search(r'_unstripped_.*?\.nexe', f)):
                buildbot_common.RemoveFile(path)