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

Unified Diff: installers/build_metainstaller.py

Issue 624713003: Keep only base/extractor.[cc|h]. (Closed) Base URL: https://chromium.googlesource.com/external/omaha.git@master
Patch Set: Created 6 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « installers/build.scons ('k') | installers/generate_resource_script.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: installers/build_metainstaller.py
diff --git a/installers/build_metainstaller.py b/installers/build_metainstaller.py
deleted file mode 100644
index fbd14f29c931cd20cd7f6d3e199e0f6856ddd432..0000000000000000000000000000000000000000
--- a/installers/build_metainstaller.py
+++ /dev/null
@@ -1,177 +0,0 @@
-#!/usr/bin/python2.4
-#
-# Copyright 2009-2010 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ========================================================================
-
-"""Build a meta-installer for Omaha's client installations.
-
- The only function in this module creates an Omaha meta-installer, which is
- an executable whose only job is to extract its payload (the actual installer
- executable and a number of resource dlls), then launch the dropped installer
- to finish the installation.
-
- BuildMetaInstaller(): Build a meta-installer.
-"""
-
-
-def BuildMetaInstaller(
- env,
- target_name,
- omaha_version_info,
- empty_metainstaller_path,
- omaha_files_path,
- prefix='',
- suffix='',
- additional_payload_contents=None,
- additional_payload_contents_dependencies=None,
- output_dir='$STAGING_DIR',
- installers_sources_path='$MAIN_DIR/installers',
- lzma_path='$MAIN_DIR/third_party/lzma/v4_65/files/lzma.exe',
- resmerge_path='$MAIN_DIR/tools/resmerge.exe',
- bcj2_path='$OBJ_ROOT/mi_exe_stub/x86_encoder/bcj2.exe'):
- """Build a meta-installer.
-
- Builds a full meta-installer, which is a meta-installer containing a full
- list of required files (the payload), ie. language resourse dlls, installer
- executables, etc.
-
- Args:
- env: environment to build with
- target_name: name to use for the target executable
- omaha_version_info: info about the version of the Omaha files
- empty_metainstaller_path: path to the base (empty) meta-installer executable
- omaha_files_path: path to the resource dlls to build into the
- target executable
- prefix: target file name prefix, used to distinguish different targets
- suffix: target file name suffix, used to distinguish different targets
- additional_payload_contents: any additional resources to build into the
- executable, beyond the normal payload files
- additional_payload_contents_dependencies: extra dependencies to be used to
- ensure the executable is rebuilt when required
- output_dir: path to the directory that will contain the metainstaller
- installers_sources_path: path to the directory containing the source files
- for building the metainstaller
- lzma_path: path to lzma.exe
- resmerge_path: path to resmerge.exe
- bcj2_path: path to bcj2.exe
-
- Returns:
- Target nodes.
-
- Raises:
- Nothing.
- """
-
- # Payload .tar.lzma
- tarball_filename = '%spayload%s.tar' % (prefix, suffix)
- payload_filename = tarball_filename + '.lzma'
-
- # Collect a list of all the files to include in the payload
- payload_file_names = omaha_version_info.GetMetainstallerPayloadFilenames()
-
- payload_contents = [omaha_files_path + '/' + file_name
- for file_name in payload_file_names]
- if additional_payload_contents:
- payload_contents += additional_payload_contents
-
- # Create the tarball
- tarball_output = env.Command(
- target=tarball_filename, # Archive filename
- source=payload_contents, # List of files to include in tarball
- action='python.exe %s -o $TARGET $SOURCES' % (
- env.File(installers_sources_path + '/generate_tarball.py').abspath),
- )
-
- # Add potentially hidden dependencies
- if additional_payload_contents_dependencies:
- env.Depends(tarball_output, additional_payload_contents_dependencies)
-
- # Preprocess the tarball to increase compressibility
- bcj_filename = '%spayload%s.tar.bcj' % (prefix, suffix)
- # TODO(omaha): Add the bcj2 path as an optional parameter.
- bcj_output = env.Command(
- target=bcj_filename,
- source=tarball_output,
- action='%s "$SOURCES" "$TARGET"' % bcj2_path,
- )
- env.Depends(bcj_output, bcj2_path)
-
- # Compress the tarball
- lzma_env = env.Clone()
- lzma_env.Append(
- LZMAFLAGS=[],
- )
- lzma_output = lzma_env.Command(
- target=payload_filename,
- source=bcj_output,
- action='%s e $SOURCES $TARGET $LZMAFLAGS' % lzma_path,
- )
-
- # Construct the resource generation script
- manifest_path = installers_sources_path + '/installers.manifest'
- res_command = 'python.exe %s -i %s -o $TARGET -p $SOURCES -m %s -r %s' % (
- env.File(installers_sources_path + '/generate_resource_script.py'
- ).abspath,
- env.File(installers_sources_path + '/resource.rc.in').abspath,
- env.File(manifest_path).abspath,
- env.File(installers_sources_path + '/resource.h').abspath
- )
-
- # Generate the .rc file
- rc_output = env.Command(
- target='%sresource%s.rc' % (prefix, suffix),
- source=lzma_output,
- action=res_command,
- )
-
- # .res intermediate file
- res_file = env.RES(rc_output)
-
- # For some reason, RES() does not cause the .res file to depend on .rc input.
- # It also does not detect the dependencies in the .rc file.
- # This does not cause a rebuild for rarely changing files in res_command.
- env.Depends(res_file, [rc_output, manifest_path, lzma_output])
-
- # Resource DLL
- dll_env = env.Clone(COMPONENT_STATIC=False)
- dll_env['LINKFLAGS'] += ['/noentry']
-
- dll_inputs = [
- installers_sources_path + '/resource_only_dll.def',
- res_file
- ]
-
- dll_output = dll_env.ComponentLibrary(
- lib_name='%spayload%s' % (prefix, suffix),
- source=dll_inputs,
- )
-
- # Get only the dll itself from the output (ie. ignore .pdb, etc.)
- dll_output_name = [f for f in dll_output if f.suffix == '.dll']
-
- # Build the target setup executable by merging the empty metafile
- # with the resource DLL built above.
- merged_output = env.Command(
- target='unsigned_' + target_name,
- source=[empty_metainstaller_path, dll_output_name],
- action= '%s --copyappend $SOURCES $TARGET' % resmerge_path
- )
-
- signed_exe = env.SignedBinary(
- target=target_name,
- source=merged_output,
- )
-
- return env.Replicate(output_dir, signed_exe)
« no previous file with comments | « installers/build.scons ('k') | installers/generate_resource_script.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698