summaryrefslogtreecommitdiffstats
path: root/tools/scripts/take_snapshot.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/scripts/take_snapshot.py')
-rwxr-xr-xtools/scripts/take_snapshot.py395
1 files changed, 241 insertions, 154 deletions
diff --git a/tools/scripts/take_snapshot.py b/tools/scripts/take_snapshot.py
index 57906378a..e312dd64c 100755
--- a/tools/scripts/take_snapshot.py
+++ b/tools/scripts/take_snapshot.py
@@ -1,43 +1,18 @@
-#!/usr/bin/env python
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the QtWebEngine module of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+#!/usr/bin/env python3
+# Copyright (C) 2016 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import glob
import os
import subprocess
import sys
-import imp
+import importlib
import errno
import shutil
from distutils.version import StrictVersion
import git_submodule as GitSubmodule
+import cipd_package as CIPDPackage
qtwebengine_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))
os.chdir(qtwebengine_root)
@@ -58,86 +33,107 @@ def isInChromiumBlacklist(file_path):
if file_path.endswith('.gn') or file_path.endswith('.gni') or file_path.endswith('.typemap') or \
file_path.endswith('.mojom'):
return False
+ # Add android dependencies info so gn build tree can be parsed
+ if file_path.endswith('.info') or file_path.endswith('.pydeps'):
+ return False
+ if file_path.endswith('.mailmap') or file_path.endswith('.tat.gz.sha1'):
+ return True
if (file_path.startswith('android_webview')
or file_path.startswith('apps/')
or file_path.startswith('ash/')
- or file_path.startswith('base/android')
or file_path.startswith('buildtools/clang_format/script')
or file_path.startswith('buildtools/third_party/libc++')
or file_path.startswith('buildtools/third_party/libc++abi')
or file_path.startswith('buildtools/third_party/libunwind')
- or (file_path.startswith('chrome/') and
- not file_path.startswith('chrome/VERSION') and
- not file_path.startswith('chrome/app/resources/') and
- not file_path.startswith('chrome/app/theme/') and
- not file_path.startswith('chrome/browser/chrome_notification_types.h') and
- not file_path.startswith('chrome/browser/accessibility/') and
- not file_path.startswith('chrome/browser/custom_handlers/') and
- not file_path.startswith('chrome/browser/devtools/') and
- not file_path.startswith('chrome/browser/extensions/api/') and
- not file_path.startswith('chrome/browser/media/webrtc/') and
- not file_path.startswith('chrome/browser/net/') and
- not file_path.startswith('chrome/browser/prefs/') and
- not file_path.startswith('chrome/browser/printing/') and
- not file_path.startswith('chrome/browser/renderer_host/') and
- not file_path.startswith('chrome/browser/spellchecker') and
- not file_path.startswith('chrome/browser/tab_contents/') and
- not file_path.startswith('chrome/browser/ui/webui/') and
- not (file_path.startswith('chrome/browser/resources/') and
- not '/chromeos/' in file_path and
- not '/settings/' in file_path and
- not '/mediarouter/' in file_path) and
- not (file_path.startswith('chrome/common/') and not file_path.startswith('chrome/common/extensions/docs')) and
- not file_path.startswith('chrome/renderer/') and
- not file_path.startswith('chrome/tools/convert_dict/') and
- not file_path.endswith('.grd') and
- not file_path.endswith('.grdp') and
- not file_path.endswith('chrome_version.rc.version'))
+ or (file_path.startswith('chrome/')
+ and not file_path.startswith('chrome/VERSION')
+ and not file_path.startswith('chrome/app/resources/')
+ and not file_path.startswith('chrome/app/theme/')
+ and not file_path.startswith('chrome/browser/chrome_notification_types.h')
+ and not file_path.startswith('chrome/browser/accessibility/')
+ and not file_path.startswith('chrome/browser/custom_handlers/')
+ and not file_path.startswith('chrome/browser/devtools/')
+ and not file_path.startswith('chrome/browser/extensions/api/')
+ and not file_path.startswith('chrome/browser/gcm/')
+ and not file_path.startswith('chrome/browser/media/webrtc/')
+ and not file_path.startswith('chrome/browser/net/')
+ and not file_path.startswith('chrome/browser/prefs/')
+ and not file_path.startswith('chrome/browser/printing/')
+ and not file_path.startswith('chrome/browser/profiles/incognito_helpers')
+ and not file_path.startswith('chrome/browser/profiles/profile_keyed_service_factory')
+ and not file_path.startswith('chrome/browser/profiles/profile_selections')
+ and not file_path.startswith('chrome/browser/push_messaging/')
+ and not file_path.startswith('chrome/browser/renderer_host/')
+ and not file_path.startswith('chrome/browser/share/core/')
+ and not file_path.startswith('chrome/browser/share/proto/')
+ and not file_path.startswith('chrome/browser/signin/')
+ and not file_path.startswith('chrome/browser/spellchecker')
+ and not file_path.startswith('chrome/browser/tab_contents/')
+ and not file_path.startswith('chrome/browser/ui/webui/')
+ and not (file_path.startswith('chrome/browser/resources/')
+ and not '/chromeos/' in file_path
+ and not '/settings/' in file_path
+ and not '/mediarouter/' in file_path)
+ and not (file_path.startswith('chrome/common/')
+ and not file_path.startswith('chrome/common/extensions/docs'))
+ and not file_path.startswith('chrome/renderer/')
+ and not file_path.startswith('chrome/test/chromedriver/')
+ and not file_path.startswith('chrome/tools/convert_dict/')
+ and not file_path.endswith('.grd')
+ and not file_path.endswith('.grdp')
+ and not file_path.endswith('chrome_version.rc.version')
+ and not file_path.endswith('service_sandbox_type.h'))
or file_path.startswith('chrome_elf')
or file_path.startswith('chromecast')
or file_path.startswith('chromeos')
or file_path.startswith('cloud_print')
- or (file_path.startswith('components/') and (
- file_path.startswith('components/chrome_apps/')
+ or (file_path.startswith('components/')
+ and (file_path.startswith('components/chrome_apps/')
or file_path.startswith('components/cronet/')
or file_path.startswith('components/drive/')
or file_path.startswith('components/invalidation/')
- or file_path.startswith('components/gcm_driver/')
or file_path.startswith('components/nacl/')
or file_path.startswith('components/omnibox/')
- or file_path.startswith('components/policy/')
+ or file_path.startswith('components/policy/resources/')
or file_path.startswith('components/proximity_auth/')
- or (file_path.startswith('components/resources/terms/') and not file_path.endswith('terms_chromium.html'))
+ or (file_path.startswith('components/resources/terms/')
+ and not file_path.endswith('terms_chromium.html'))
or file_path.startswith('components/rlz/')
- or (file_path.startswith('components/sync/') and not file_path.endswith('ordinal.h'))
+ or (file_path.startswith('components/sync/')
+ and not file_path.endswith('ordinal.h'))
or file_path.startswith('components/test/')
or file_path.startswith('components/test_runner/')
or file_path.startswith('components/translate/')
))
or file_path.startswith('content/public/android/java')
- or (file_path.startswith('content/shell') and
- not file_path.startswith('content/shell/common') and
- not file_path.endswith('.grd'))
+ or file_path.startswith('content/shell/android/')
+ or file_path.startswith('content/shell/browser/')
or file_path.startswith('courgette')
+ or file_path.startswith('docs/website/')
or file_path.startswith('google_update')
or file_path.startswith('ios')
or file_path.startswith('media/base/android/java')
or file_path.startswith('native_client_sdk')
or file_path.startswith('net/android/java')
- or (file_path.startswith('net/data/') and '_unittest/' in file_path)
+ or (file_path.startswith('net/data/')
+ and '_unittest/' in file_path)
or file_path.startswith('net/data/fuzzer_data/')
- or file_path.startswith('net/third_party/quic/core/qpack/fuzzer')
- or file_path.startswith('remoting')
+ or (file_path.startswith('remoting')
+ and not file_path.endswith('VERSION')
+ and not file_path.endswith('branding_Chromium')
+ and not file_path.endswith('remove_spaces.py'))
or file_path.startswith('rlz')
or file_path.startswith('testing/android')
or file_path.startswith('testing/buildbot')
- or (file_path.startswith('third_party/') and (
- file_path.startswith('third_party/WebKit/LayoutTests')
+ or (file_path.startswith('third_party/')
+ and (file_path.startswith('third_party/WebKit/LayoutTests')
or file_path.startswith('third_party/accessibility')
or file_path.startswith('third_party/afl')
or file_path.startswith('third_party/android_')
+ or file_path.startswith('third_party/androidx')
or file_path.startswith('third_party/angle/third_party/deqp')
or file_path.startswith('third_party/angle/third_party/glmark2')
+ or file_path.startswith('third_party/angle/third_party/VK-GL-CTS')
or file_path.startswith('third_party/angle/third_party/vulkan-validation-layers')
or file_path.startswith('third_party/apache-')
or file_path.startswith('third_party/arcode-android-sdk')
@@ -147,26 +143,76 @@ def isInChromiumBlacklist(file_path):
or file_path.startswith('third_party/blink/web_tests/')
or file_path.startswith('third_party/breakpad/src/processor/testdata/')
or file_path.startswith('third_party/boringssl/crypto_test_data.cc')
- or file_path.startswith('third_party/boringssl/src/fuzz')
- or (file_path.startswith('third_party/cacheinvalidation') and
- not file_path.endswith('isolate'))
+ or (file_path.startswith('third_party/cacheinvalidation')
+ and not file_path.endswith('isolate'))
or (file_path.startswith('third_party/catapult/')
- and not file_path.startswith('third_party/catapult/catapult_build')
- and not file_path.startswith('third_party/catapult/common')
- and not file_path.startswith('third_party/catapult/third_party/polymer/components/polymer')
- and not file_path.startswith('third_party/catapult/tracing'))
+ and not file_path.startswith('third_party/catapult/catapult_build')
+ and not file_path.startswith('third_party/catapult/common')
+ and not file_path.startswith('third_party/catapult/third_party/beautifulsoup4')
+ and not file_path.startswith('third_party/catapult/third_party/html5lib-python')
+ and not file_path.startswith('third_party/catapult/third_party/polymer')
+ and not file_path.startswith('third_party/catapult/third_party/six')
+ and not file_path.startswith('third_party/catapult/tracing'))
or file_path.startswith('third_party/catapult/tracing/test_data/')
or file_path.startswith('third_party/chromevox')
or file_path.startswith('third_party/chromite')
or file_path.startswith('third_party/colorama')
or file_path.startswith('third_party/depot_tools')
- or file_path.startswith('third_party/devtools-frontend/src/node-modules/')
+ or file_path.startswith('third_party/devtools-frontend/src/third_party/image_diff')
+ or (file_path.startswith('third_party/node/node_modules/')
+ and not file_path.startswith('third_party/node/node_modules/@babel/')
+ and not file_path.startswith('third_party/node/node_modules/@types/d3')
+ and not file_path.startswith('third_party/node/node_modules/@types/trusted-types/')
+ and not file_path.startswith('third_party/node/node_modules/ansi-styles/')
+ and not file_path.startswith('third_party/node/node_modules/balanced-match/')
+ and not file_path.startswith('third_party/node/node_modules/brace-expansion/')
+ and not file_path.startswith('third_party/node/node_modules/cancel-token/')
+ and not file_path.startswith('third_party/node/node_modules/chalk/')
+ and not file_path.startswith('third_party/node/node_modules/color-convert/')
+ and not file_path.startswith('third_party/node/node_modules/color-name/')
+ and not file_path.startswith('third_party/node/node_modules/commander/')
+ and not file_path.startswith('third_party/node/node_modules/concat-map/')
+ and not file_path.startswith('third_party/node/node_modules/cssbeautify/')
+ and not file_path.startswith('third_party/node/node_modules/debug/')
+ and not file_path.startswith('third_party/node/node_modules/escape-string-regexp/')
+ and not file_path.startswith('third_party/node/node_modules/esutils/')
+ and not file_path.startswith('third_party/node/node_modules/function-bind/')
+ and not file_path.startswith('third_party/node/node_modules/globals/')
+ and not file_path.startswith('third_party/node/node_modules/has-ansi/')
+ and not file_path.startswith('third_party/node/node_modules/has-flag/')
+ and not file_path.startswith('third_party/node/node_modules/has/')
+ and not file_path.startswith('third_party/node/node_modules/indent/')
+ and not file_path.startswith('third_party/node/node_modules/is-core-module/')
+ and not file_path.startswith('third_party/node/node_modules/is-windows/')
+ and not file_path.startswith('third_party/node/node_modules/@jridgewell/')
+ and not file_path.startswith('third_party/node/node_modules/js-tokens/')
+ and not file_path.startswith('third_party/node/node_modules/jsesc/')
+ and not file_path.startswith('third_party/node/node_modules/jsonschema/')
+ and not file_path.startswith('third_party/node/node_modules/lodash.camelcase/')
+ and not file_path.startswith('third_party/node/node_modules/lodash.sortby/')
+ and not file_path.startswith('third_party/node/node_modules/minimatch/')
+ and not file_path.startswith('third_party/node/node_modules/ms/')
+ and not file_path.startswith('third_party/node/node_modules/path-is-inside/')
+ and not file_path.startswith('third_party/node/node_modules/polymer-analyzer/')
+ and not file_path.startswith('third_party/node/node_modules/polymer-css-build/')
+ and not file_path.startswith('third_party/node/node_modules/resolve/')
+ and not file_path.startswith('third_party/node/node_modules/rollup/')
+ and not file_path.startswith('third_party/node/node_modules/shady-css-parser/')
+ and not file_path.startswith('third_party/node/node_modules/source-map/')
+ and not file_path.startswith('third_party/node/node_modules/stable/')
+ and not file_path.startswith('third_party/node/node_modules/supports-color/')
+ and not file_path.startswith('third_party/node/node_modules/terser/')
+ and not file_path.startswith('third_party/node/node_modules/to-fast-properties/')
+ and not file_path.startswith('third_party/node/node_modules/tr46/')
+ and not file_path.startswith('third_party/node/node_modules/typescript/')
+ and not file_path.startswith('third_party/node/node_modules/vscode-uri/')
+ and not file_path.startswith('third_party/node/node_modules/webidl-conversions/')
+ and not file_path.startswith('third_party/node/node_modules/whatwg-url/'))
or file_path.startswith('third_party/fuschsia-sdk/')
or file_path.startswith('third_party/glslang/src/Test/')
or file_path.startswith('third_party/google_')
or file_path.startswith('third_party/grpc/')
or file_path.startswith('third_party/hunspell_dictionaries')
- or file_path.startswith('third_party/icu/android')
or file_path.startswith('third_party/icu/cast')
or file_path.startswith('third_party/icu/chromeos')
or file_path.startswith('third_party/instrumented_libraries')
@@ -178,8 +224,7 @@ def isInChromiumBlacklist(file_path):
or file_path.startswith('third_party/libFuzzer')
or file_path.startswith('third_party/liblouis')
or file_path.startswith('third_party/libphonenumber')
- or file_path.startswith('third_party/libwebp/fuzzing')
- or file_path.startswith('third_party/libwebm/source/webm_parser/fuzzing')
+ or file_path.startswith('third_party/libunwindstack')
or file_path.startswith('third_party/logilab')
or file_path.startswith('third_party/markdown')
or file_path.startswith('third_party/openh264/src/res')
@@ -192,61 +237,66 @@ def isInChromiumBlacklist(file_path):
or file_path.startswith('third_party/sfntly/src/java')
or file_path.startswith('third_party/skia/docs/')
or file_path.startswith('third_party/skia/infra')
- or file_path.startswith('third_party/skia/site/dev/tools/calendar.mskp')
+ or file_path.startswith('third_party/skia/site/docs/dev/tools/calendar.mskp')
or file_path.startswith('third_party/sqlite/sqlite-src-')
- or file_path.startswith('third_party/speech-dispatcher')
or file_path.startswith('third_party/spirv-cross/spirv-cross/reference/')
or file_path.startswith('third_party/swiftshader/third_party/')
+ or file_path.startswith('third_party/tflite/')
+ or file_path.startswith('third_party/unrar')
or file_path.startswith('third_party/wayland')
or file_path.startswith('third_party/webgl')
or file_path.startswith('third_party/webrtc/resources/')
or file_path.startswith('third_party/webrtc/third_party/boringssl/crypto_test_data.cc')
- or file_path.startswith('third_party/webrtc/third_party/boringssl/src/fuzz')
))
- or (file_path.startswith('tools/') and (
- file_path.startswith('tools/android')
- or file_path.startswith('tools/luci_go')
- or file_path.startswith('tools/memory_inspector')
- or file_path.startswith('tools/perf')
- or file_path.startswith('tools/swarming_client')
+ or (file_path.startswith('tools/')
+ and (file_path.startswith('tools/android')
+ or file_path.startswith('tools/luci_go')
+ or file_path.startswith('tools/memory_inspector')
+ or file_path.startswith('tools/perf')
+ or file_path.startswith('tools/swarming_client')
))
- or (file_path.startswith('ui/') and (
- file_path.startswith('ui/android/java')
- or file_path.startswith('ui/app_list')
- or file_path.startswith('ui/base/ime/chromeos')
- or file_path.startswith('ui/chromeos')
- or file_path.startswith('ui/display/chromeos')
- or file_path.startswith('ui/events/ozone/chromeos')
- or file_path.startswith('ui/file_manager')
- or file_path.startswith('ui/gfx/chromeos')
+ or (file_path.startswith('ui/')
+ and (file_path.startswith('ui/android/java')
+ or file_path.startswith('ui/app_list')
+ or file_path.startswith('ui/base/ime/chromeos')
+ or file_path.startswith('ui/chromeos')
+ or file_path.startswith('ui/display/chromeos')
+ or file_path.startswith('ui/events/ozone/chromeos')
+ or file_path.startswith('ui/file_manager')
+ or file_path.startswith('ui/gfx/chromeos')
))
- or ('/fuzz' in file_path and (
- '/fuzz/' in file_path
- or '/fuzzer/' in file_path
- or '/fuzzers/' in file_path
- or '/fuzzing/' in file_path
+ or '/android/java/' in file_path
+ or ('/fuzz' in file_path
+ and ('/fuzz/' in file_path
+ or '/fuzzer/' in file_path
+ or '/fuzzers/' in file_path
+ or '/fuzzing/' in file_path
))
- or ('/test' in file_path and (
- '/testdata/' in file_path
- or '/tests/' in file_path
- or ('/test/' in file_path and
- not '/webrtc/' in file_path and
- not file_path.startswith('net/test/') and
- not file_path.endswith('test_hook.h') and
- not file_path.endswith('perftimer.h') and
- not file_path.endswith('test-torque.tq') and
- not 'ozone' in file_path and
- not 'clang_coverage' in file_path and
- not 'crypto/test/trampoline' in file_path and
- not 'core/mojo/test/' in file_path and
- not file_path.startswith('extensions/browser/') and
- (not file_path.startswith('base/test/') or
- file_path.startswith('base/test/android/') or
- file_path.startswith('base/test/data/')
- file_path.startswith('base/test/ios/') or
- file_path.startswith('base/test/launcher/') or
- file_path.startswith('base/test/library_loader/') or
- file_path.startswith('base/test/metrics/')))
+ or ('/test' in file_path
+ and ('/testdata/' in file_path
+ or '/tests/' in file_path
+ or ('/test/' in file_path
+ and not '/webrtc/' in file_path
+ and not file_path.startswith('net/test/')
+ and not file_path.startswith('chrome/test/chromedriver/')
+ and not file_path.endswith('test_hook.h')
+ and not file_path.endswith('perftimer.h')
+ and not file_path.endswith('test-torque.tq')
+ and not 'ozone' in file_path
+ and not 'clang_coverage' in file_path
+ and not 'crypto/test/trampoline' in file_path
+ and not 'core/mojo/test/' in file_path
+ and not file_path.startswith('extensions/browser/')
+ and
+ (not file_path.startswith('base/test/')
+ or file_path.startswith('base/test/android/')
+ or file_path.startswith('base/test/data/')
+ or file_path.startswith('base/test/ios/')
+ or file_path.startswith('base/test/launcher/')
+ or file_path.startswith('base/test/library_loader/')
+ or file_path.startswith('base/test/metrics/')
+ )
+ )
))):
return True
return False
@@ -255,7 +305,7 @@ def printProgress(current, total):
sys.stdout.write("\r{} of {}".format(current, total))
sys.stdout.flush()
-def copyFile(src, dst):
+def copyFile(src, dst, use_link = True, force_remove = False):
src = os.path.abspath(src)
dst = os.path.abspath(dst)
dst_dir = os.path.dirname(dst)
@@ -263,16 +313,19 @@ def copyFile(src, dst):
if not os.path.isdir(dst_dir):
os.makedirs(dst_dir)
- if os.path.exists(dst):
+ if force_remove or os.path.exists(dst):
os.remove(dst)
try:
- os.link(src, dst)
+ if use_link:
+ os.link(src, dst)
+ else:
+ shutil.copy(src,dst)
# Qt uses LF-only but Chromium isn't.
subprocess.call(['dos2unix', '--keep-bom', '--quiet', dst])
except OSError as exception:
if exception.errno == errno.ENOENT:
- print 'file does not exist:' + src
+ print('file does not exist: ' + src)
else:
raise
@@ -282,10 +335,10 @@ third_party = os.path.join(qtwebengine_root, 'src/3rdparty')
def clearDirectory(directory):
currentDir = os.getcwd()
os.chdir(directory)
- print 'clearing the directory:' + directory
+ print('clearing the directory:' + directory)
for direntry in os.listdir(directory):
if not direntry == '.git' and os.path.isdir(direntry):
- print 'clearing:' + direntry
+ print('clearing:' + direntry)
shutil.rmtree(direntry)
os.chdir(currentDir)
@@ -299,17 +352,27 @@ def listFilesInCurrentRepository(use_deps=False):
files.append(os.path.join(submodule.pathRelativeToTopMostSupermodule(), submodule_file))
return files
+def listPackageFilesInCurrentRepositoryForPackage(packageName):
+ cipd = CIPDPackage.CIPDEntity(os.getcwd())
+ cipd_entities = cipd.readEntities()
+ files = []
+ for e in cipd_entities:
+ pkg = e.findPackage(CIPDPackage.androidx_package_name)
+ if pkg:
+ files.extend(pkg.listFiles())
+ return files
+
def exportGn():
third_party_upstream_gn = os.path.join(third_party_upstream, 'gn')
third_party_gn = os.path.join(third_party, 'gn')
os.makedirs(third_party_gn);
- print 'exporting contents of:' + third_party_upstream_gn
+ print('exporting contents of:' + third_party_upstream_gn)
os.chdir(third_party_upstream_gn)
files = listFilesInCurrentRepository()
- print 'copying files to ' + third_party_gn
- for i in xrange(len(files)):
+ print('copying files to ' + third_party_gn)
+ for i in range(len(files)):
printProgress(i+1, len(files))
- f = files[i]
+ f = files[i].decode()
if not isInGitBlacklist(f):
copyFile(f, os.path.join(third_party_gn, f))
print("")
@@ -318,13 +381,13 @@ def exportNinja():
third_party_upstream_ninja = os.path.join(third_party_upstream, 'ninja')
third_party_ninja = os.path.join(third_party, 'ninja')
os.makedirs(third_party_ninja);
- print 'exporting contents of:' + third_party_upstream_ninja
+ print('exporting contents of:' + third_party_upstream_ninja)
os.chdir(third_party_upstream_ninja)
files = listFilesInCurrentRepository()
- print 'copying files to ' + third_party_ninja
- for i in xrange(len(files)):
+ print('copying files to ' + third_party_ninja)
+ for i in range(len(files)):
printProgress(i+1, len(files))
- f = files[i]
+ f = files[i].decode()
if not isInGitBlacklist(f):
copyFile(f, os.path.join(third_party_ninja, f))
print("")
@@ -333,36 +396,60 @@ def exportChromium():
third_party_upstream_chromium = os.path.join(third_party_upstream, 'chromium')
third_party_chromium = os.path.join(third_party, 'chromium')
os.makedirs(third_party_chromium);
- print 'exporting contents of:' + third_party_upstream_chromium
+ print('exporting contents of:' + third_party_upstream_chromium)
os.chdir(third_party_upstream_chromium)
files = listFilesInCurrentRepository(True)
# Add LASTCHANGE files which are not tracked by git.
- files.append('build/util/LASTCHANGE')
- files.append('build/util/LASTCHANGE.committime')
- files.append('skia/ext/skia_commit_hash.h')
- files.append('gpu/config/gpu_lists_version.h')
- print 'copying files to ' + third_party_chromium
- for i in xrange(len(files)):
+ files.append(b'build/util/LASTCHANGE')
+ files.append(b'build/util/LASTCHANGE.committime')
+ files.append(b'skia/ext/skia_commit_hash.h')
+ files.append(b'gpu/config/gpu_lists_version.h')
+
+ files.extend(listPackageFilesInCurrentRepositoryForPackage(CIPDPackage.androidx_package_name))
+
+ for root, directories, local_files in os.walk(third_party_upstream_chromium + '/third_party/node/node_modules'):
+ for name in local_files:
+ f = os.path.relpath(os.path.join(root, name))
+ files.append(f)
+
+ symlinks = []
+ print('copying files to ' + third_party_chromium)
+ for i in range(len(files)):
printProgress(i+1, len(files))
- f = files[i]
+ if isinstance(files[i], bytes):
+ f = files[i].decode()
+ else:
+ f = files[i]
if not isInChromiumBlacklist(f) and not isInGitBlacklist(f):
- copyFile(f, os.path.join(third_party_chromium, f))
+ d = os.path.join(third_party_chromium, f)
+ copyFile(f,d)
+ # make sure we did not make a hardlink of symlink which is broken afterwards
+ if os.path.islink(f):
+ symlinks.append((f,d))
+ # this is mostly used for files coming from cipd packages
+ for s in symlinks:
+ if not os.path.exists(s[1]):
+ print('fixing ivalid link ' + s[1])
+ copyFile(s[0],s[1], use_link = False, force_remove = True)
+
+ # We need to gzip transport_security_state_static.json since it is otherwise too big for our git configuration:
+ subprocess.call(['gzip', '-n', third_party_chromium + '/net/http/transport_security_state_static.json'])
print("")
commandNotFound = subprocess.call(['which', 'dos2unix'])
if not commandNotFound:
- dos2unixVersion , err = subprocess.Popen(['dos2unix', '-V', '| true'], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
+ dos2unixVersion, err = subprocess.Popen(['dos2unix', '-V', '| true'], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
if not dos2unixVersion:
raise Exception("You need dos2unix version 6.0.6 minimum.")
- dos2unixVersion = StrictVersion(dos2unixVersion.splitlines()[0].split()[1])
+ dos2unixVersion = StrictVersion(dos2unixVersion.splitlines()[0].split()[1].decode())
if commandNotFound or dos2unixVersion < StrictVersion('6.0.6'):
raise Exception("You need dos2unix version 6.0.6 minimum.")
os.chdir(third_party)
ignore_case_setting = subprocess.Popen(['git', 'config', '--get', 'core.ignorecase'], stdout=subprocess.PIPE).communicate()[0]
-if 'true' in ignore_case_setting:
+if b'true' in ignore_case_setting:
raise Exception("Your 3rdparty repository is configured to ignore case. "
"A snapshot created with these settings would cause problems on case sensitive file systems.")
@@ -372,5 +459,5 @@ exportGn()
exportNinja()
exportChromium()
-print 'done.'
+print('done.')