diff --git a/patches/chrome-tools-build-win-create_installer_archive.py.patch b/patches/chrome-tools-build-win-create_installer_archive.py.patch index b4cb7a13162..a4a394759ed 100644 --- a/patches/chrome-tools-build-win-create_installer_archive.py.patch +++ b/patches/chrome-tools-build-win-create_installer_archive.py.patch @@ -1,16 +1,17 @@ diff --git a/chrome/tools/build/win/create_installer_archive.py b/chrome/tools/build/win/create_installer_archive.py -index 732479bbf5975289bd251ab6d41c8dda7e808a50..d568442da2dc1a096b8f6dc7e4e59547007d942e 100755 +index 732479bbf5975289bd251ab6d41c8dda7e808a50..989e950be7450d8ae80cb2c8fc507db048392f14 100755 --- a/chrome/tools/build/win/create_installer_archive.py +++ b/chrome/tools/build/win/create_installer_archive.py -@@ -42,6 +42,7 @@ SETUP_PATCH_FILE_PREFIX = "setup_patch" +@@ -42,6 +42,8 @@ SETUP_PATCH_FILE_PREFIX = "setup_patch" TEMP_ARCHIVE_DIR = "temp_installer_archive" VERSION_FILE = "VERSION" -+from create_installer_archive_helper import SignAndCopyPreSignedBinaries, BraveCopyAllFilesToStagingDir ++from create_installer_archive_helper import SignAndCopyPreSignedBinaries, \ ++ BraveCopyAllFilesToStagingDir, CheckDeltaUpdatePrecondition g_archive_inputs = [] -@@ -113,6 +114,7 @@ def CopyAllFilesToStagingDir(config, distribution, staging_dir, build_dir, +@@ -113,6 +115,7 @@ def CopyAllFilesToStagingDir(config, distribution, staging_dir, build_dir, if enable_hidpi == '1': CopySectionFilesToStagingDir(config, 'HIDPI', staging_dir, build_dir, verbose) @@ -18,7 +19,7 @@ index 732479bbf5975289bd251ab6d41c8dda7e808a50..d568442da2dc1a096b8f6dc7e4e59547 if include_snapshotblob == '1': CopySectionFilesToStagingDir(config, 'SNAPSHOTBLOB', staging_dir, build_dir, -@@ -184,7 +186,7 @@ def GetPrevVersion(build_dir, temp_dir, last_chrome_installer, output_name): +@@ -184,7 +187,7 @@ def GetPrevVersion(build_dir, temp_dir, last_chrome_installer, output_name): output_name + ARCHIVE_SUFFIX) cmd = [lzma_exec, 'x', @@ -27,15 +28,16 @@ index 732479bbf5975289bd251ab6d41c8dda7e808a50..d568442da2dc1a096b8f6dc7e4e59547 prev_archive_file, 'Chrome-bin/*/chrome.dll',] RunSystemCommand(cmd, options.verbose) -@@ -559,6 +561,7 @@ def main(options): +@@ -559,6 +562,8 @@ def main(options): if prev_version: version_numbers = prev_version.split('.') prev_build_number = version_numbers[2] + '.' + version_numbers[3] ++ CheckDeltaUpdatePrecondition(options.last_chrome_installer, prev_version, current_version) + SignAndCopyPreSignedBinaries(options.skip_signing, options.output_dir, staging_dir, current_version) # Name of the archive file built (for example - chrome.7z or # patch--.7z or patch-.7z -@@ -632,6 +635,7 @@ def _ParseOptions(): +@@ -632,6 +637,7 @@ def _ParseOptions(): 'with the installer archive {x86|x64}.') parser.add_option('-v', '--verbose', action='store_true', dest='verbose', default=False) diff --git a/script/create_installer_archive_helper.py b/script/create_installer_archive_helper.py index 717fdf8d748..c744de7264e 100644 --- a/script/create_installer_archive_helper.py +++ b/script/create_installer_archive_helper.py @@ -11,14 +11,26 @@ import shutil CHROME_DIR = "Chrome-bin" -def SignAndCopyPreSignedBinaries(skip_signing, output_dir, staging_dir, current_version): +def CheckDeltaUpdatePrecondition(last_chrome_installer, prev_version, + curr_version): + if last_chrome_installer and prev_version == curr_version: + raise Exception("Cannot create delta update files between the same " + "source and target version %s. Please increment the " + "Chrome version (for instance by rebasing your changes " + "against a later upstream version). Or pass files " + "representing a lower version to " + "--last_chrome_installer." % prev_version) + + +def SignAndCopyPreSignedBinaries(skip_signing, output_dir, staging_dir, + current_version): if not skip_signing: from sign_binaries import sign_binaries, sign_binary sign_binaries(staging_dir) sign_binary(os.path.join(output_dir, 'setup.exe')) - """Copies already signed three binaries - brave.exe and chrome.dll - These files are signed during the build phase to create widevine sig files. - """ + # Copies already signed three binaries - brave.exe and chrome.dll + # These files are signed during the build phase to create widevine sig + # files. src_dir = os.path.join(output_dir, 'signed_binaries') chrome_dir = os.path.join(staging_dir, CHROME_DIR) version_dir = os.path.join(chrome_dir, current_version) @@ -31,33 +43,38 @@ def BraveCopyAllFilesToStagingDir(config, staging_dir, g_archive_inputs): brave_extension_locales_src_dir_path = os.path.realpath( os.path.join(current_dir, os.pardir, 'components', - 'brave_extension', 'extension', 'brave_extension', '_locales')) - CopyExtensionLocalization('brave_extension', brave_extension_locales_src_dir_path, + 'brave_extension', 'extension', 'brave_extension', + '_locales')) + CopyExtensionLocalization('brave_extension', + brave_extension_locales_src_dir_path, config, staging_dir, g_archive_inputs) brave_rewards_locales_src_dir_path = os.path.realpath( os.path.join(current_dir, os.pardir, 'components', - 'brave_rewards', 'resources', 'extension', 'brave_rewards', '_locales')) - CopyExtensionLocalization('brave_rewards', brave_rewards_locales_src_dir_path, + 'brave_rewards', 'resources', 'extension', 'brave_rewards', + '_locales')) + CopyExtensionLocalization('brave_rewards', + brave_rewards_locales_src_dir_path, config, staging_dir, g_archive_inputs) -def CopyExtensionLocalization(extension_name, locales_src_dir_path, config, staging_dir, g_archive_inputs): +def CopyExtensionLocalization(extension_name, locales_src_dir_path, config, + staging_dir, g_archive_inputs): """Copies extension localization files from locales_src_dir_path to - \\\\chrome\\installer\\mini_installer\\mini_installer\\temp_installer_archive - \\Chrome-bin\\\\resources\\extension_name\\_locales + \\\\chrome\\installer\\mini_installer\\mini_installer + \\temp_installer_archive\\Chrome-bin\\\\resources\\extension_name + \\_locales """ locales_dest_path = staging_dir - locales_dest_path = os.path.join(locales_dest_path, config.get('GENERAL', 'brave_resources.pak'), + locales_dest_path = os.path.join(locales_dest_path, + config.get('GENERAL', + 'brave_resources.pak'), 'resources', extension_name, '_locales') locales_dest_path = os.path.realpath(locales_dest_path) - try: - shutil.rmtree(locales_dest_path) - except Exception as e: - pass + shutil.rmtree(locales_dest_path, ignore_errors=True) shutil.copytree(locales_src_dir_path, locales_dest_path) # Files are copied, but we need to inform g_archive_inputs about that - for root, dirs, files in os.walk(locales_dest_path): + for root, _, files in os.walk(locales_dest_path): for name in files: rel_dir = os.path.relpath(root, locales_dest_path) rel_file = os.path.join(rel_dir, name)