Browse Source

Add script to clone source tree

Blaise 1 year ago
parent
commit
d6a21fa4ad
11 changed files with 480 additions and 2030 deletions
  1. 23 11
      .cirrus.yml
  2. 2 2
      .cirrus_Dockerfile
  3. 1 0
      .cirrus_requirements.txt
  4. 19 16
      devutils/update_lists.py
  5. 7 0
      docs/developing.md
  6. 0 559
      domain_substitution.list
  7. 0 1435
      pruning.list
  8. 281 0
      utils/clone.py
  9. 81 0
      utils/depot_tools.patch
  10. 1 1
      utils/downloads.py
  11. 65 6
      utils/prune_binaries.py

+ 23 - 11
.cirrus.yml

@@ -3,12 +3,9 @@ container:
 
 code_check_task:
     pip_cache:
-        folder: ~/.cache/pip
+        folder: /usr/local/lib/python3.6/site-packages
         fingerprint_script: cat .cirrus_requirements.txt
         populate_script: pip install -r .cirrus_requirements.txt
-    pip_install_script:
-        # Needed in order for yapf to be fully installed
-        - pip install -r .cirrus_requirements.txt
     utils_script:
         - python3 -m yapf --style '.style.yapf' -e '*/third_party/*' -rpd utils
         - ./devutils/run_utils_pylint.py --hide-fixme
@@ -22,17 +19,32 @@ validate_config_task:
     validate_config_script: ./devutils/validate_config.py
 
 validate_with_source_task:
+    pip_cache:
+        folder: /usr/local/lib/python3.6/site-packages
+        fingerprint_script: cat .cirrus_requirements.txt
+        populate_script: pip install -r .cirrus_requirements.txt
     chromium_download_cache:
         folder: chromium_download_cache
         fingerprint_script: cat chromium_version.txt
-        populate_script:
-            # This directory will not exist when this is called, unless cach retrieval
+        populate_script: |
+            # These directories will not exist when this is called, unless cache retrieval
             # fails and leaves partially-complete files around.
-            - rm -rf chromium_download_cache || true
-            - mkdir chromium_download_cache
-            - ./utils/downloads.py retrieve -i downloads.ini -c chromium_download_cache
-    unpack_source_script:
-        - ./utils/downloads.py unpack -i downloads.ini -c chromium_download_cache chromium_src
+            rm -rf chromium_src
+            rm -rf chromium_download_cache
+            mkdir chromium_download_cache
+            # Attempt to download tarball
+            if ! ./utils/downloads.py retrieve -i downloads.ini -c chromium_download_cache ; then
+              # If tarball is not available, attempt a clone
+              ./utils/clone.py -o chromium_src
+              rm -rf chromium_src/uc_staging
+              find chromium_src -type d -name '.git' -exec rm -rf "{}" \; -prune
+              tar cf chromium_download_cache/chromium-$(cat chromium_version.txt).tar.xz \
+                --transform s/chromium_src/chromium-$(cat chromium_version.txt)/ chromium_src
+            fi
+    unpack_source_script: |
+        if [ ! -d chromium_src ]; then
+          ./utils/downloads.py unpack -i downloads.ini -c chromium_download_cache chromium_src
+        fi
     validate_patches_script:
         - ./devutils/validate_patches.py -l chromium_src
     validate_lists_script:

+ 2 - 2
.cirrus_Dockerfile

@@ -1,5 +1,5 @@
 # Dockerfile for Python 3 with xz-utils (for tar.xz unpacking)
 
-FROM python:3.6-slim
+FROM python:3.6-slim-buster
 
-RUN apt update && apt install -y xz-utils patch axel
+RUN apt update && apt install -y xz-utils patch axel curl git

+ 1 - 0
.cirrus_requirements.txt

@@ -3,5 +3,6 @@ astroid==2.1.0 # via pylint
 pylint==2.2.2
 pytest-cov==2.6.0
 pytest==3.10.1
+httplib2==0.11.3
 requests==2.21.0
 yapf==0.25.0

+ 19 - 16
devutils/update_lists.py

@@ -22,6 +22,7 @@ from pathlib import Path, PurePosixPath
 sys.path.insert(0, str(Path(__file__).resolve().parent.parent / 'utils'))
 from _common import get_logger
 from domain_substitution import DomainRegexList, TREE_ENCODINGS
+from prune_binaries import CONTINGENT_PATHS
 sys.path.pop(0)
 
 # Encoding for output files
@@ -74,6 +75,7 @@ PRUNING_EXCLUDE_PATTERNS = [
     '*.woff',
     '*.woff2',
     '*makefile',
+    '*.profdata',
     '*.xcf',
     '*.cur',
     '*.pdf',
@@ -253,22 +255,23 @@ def compute_lists_proc(path, source_tree, search_regex):
     symlink_set = set()
     if path.is_file():
         relative_path = path.relative_to(source_tree)
-        if path.is_symlink():
-            try:
-                resolved_relative_posix = path.resolve().relative_to(source_tree).as_posix()
-                symlink_set.add((resolved_relative_posix, relative_path.as_posix()))
-            except ValueError:
-                # Symlink leads out of the source tree
-                pass
-        else:
-            try:
-                if should_prune(path, relative_path, used_pep_set, used_pip_set):
-                    pruning_set.add(relative_path.as_posix())
-                elif should_domain_substitute(path, relative_path, search_regex, used_dep_set,
-                                              used_dip_set):
-                    domain_substitution_set.add(relative_path.as_posix())
-            except: #pylint: disable=bare-except
-                get_logger().exception('Unhandled exception while processing %s', relative_path)
+        if not any(cpath in str(relative_path.as_posix()) for cpath in CONTINGENT_PATHS):
+            if path.is_symlink():
+                try:
+                    resolved_relative_posix = path.resolve().relative_to(source_tree).as_posix()
+                    symlink_set.add((resolved_relative_posix, relative_path.as_posix()))
+                except ValueError:
+                    # Symlink leads out of the source tree
+                    pass
+            elif not any(skip in ('.git', '__pycache__', 'uc_staging') for skip in path.parts):
+                try:
+                    if should_prune(path, relative_path, used_pep_set, used_pip_set):
+                        pruning_set.add(relative_path.as_posix())
+                    elif should_domain_substitute(path, relative_path, search_regex, used_dep_set,
+                                                  used_dip_set):
+                        domain_substitution_set.add(relative_path.as_posix())
+                except: #pylint: disable=bare-except
+                    get_logger().exception('Unhandled exception while processing %s', relative_path)
     return (used_pep_set, used_pip_set, used_dep_set, used_dip_set, pruning_set,
             domain_substitution_set, symlink_set)
 

+ 7 - 0
docs/developing.md

@@ -34,15 +34,22 @@ To gain a deeper understanding of this updating process, have a read through [do
     * This is available in most (if not all) Linux distributions, and also Homebrew on macOS.
     * This utility facilitates most of the updating process, so it is important to learn how to use this. The manpage for quilt (as of early 2017) lacks an example of a workflow. There are multiple guides online, but [this guide from Debian](https://wiki.debian.org/UsingQuilt) and [the referenced guide on that page](https://raphaelhertzog.com/2012/08/08/how-to-use-quilt-to-manage-patches-in-debian-packages/) are the ones referenced in developing the current workflow.
 * Python 3.6 or newer
+    * `httplib2` and `six` are also required if you wish to utilize a source clone instead of the source tarball.
 
 ### Downloading the source code
 
+#### Source tarball download (recommended):
 ```sh
 mkdir -p build/download_cache
 ./utils/downloads.py retrieve -i downloads.ini -c build/download_cache
 ./utils/downloads.py unpack -i downloads.ini -c build/download_cache build/src
 ```
 
+#### Source clone:
+```sh
+./utils/clone.py -o build/src
+```
+
 ### Updating lists
 
 The utility `devutils/update_lists.py` automates this process. By default, it will update the files in the local repo. Pass in `-h` or `--help` for available options.

+ 0 - 559
domain_substitution.list

@@ -5037,24 +5037,6 @@ third_party/angle/src/tests/test_utils/runner/TestSuite.cpp
 third_party/angle/src/tests/test_utils/runner/android/java/AndroidManifest.xml.jinja2
 third_party/angle/src/third_party/volk/volk.h
 third_party/angle/third_party/BUILD.gn
-third_party/angle/third_party/VK-GL-CTS/src/android/cts/AndroidTest.xml
-third_party/angle/third_party/VK-GL-CTS/src/external/vulkancts/modules/vulkan/conditional_rendering/vktConditionalClearAttachmentTests.cpp
-third_party/angle/third_party/VK-GL-CTS/src/external/vulkancts/modules/vulkan/conditional_rendering/vktConditionalClearAttachmentTests.hpp
-third_party/angle/third_party/VK-GL-CTS/src/external/vulkancts/modules/vulkan/conditional_rendering/vktConditionalDispatchTests.cpp
-third_party/angle/third_party/VK-GL-CTS/src/external/vulkancts/modules/vulkan/conditional_rendering/vktConditionalDispatchTests.hpp
-third_party/angle/third_party/VK-GL-CTS/src/external/vulkancts/modules/vulkan/conditional_rendering/vktConditionalDrawTests.cpp
-third_party/angle/third_party/VK-GL-CTS/src/external/vulkancts/modules/vulkan/conditional_rendering/vktConditionalDrawTests.hpp
-third_party/angle/third_party/VK-GL-CTS/src/external/vulkancts/modules/vulkan/conditional_rendering/vktConditionalRenderingTestUtil.cpp
-third_party/angle/third_party/VK-GL-CTS/src/external/vulkancts/modules/vulkan/conditional_rendering/vktConditionalRenderingTestUtil.hpp
-third_party/angle/third_party/VK-GL-CTS/src/external/vulkancts/modules/vulkan/conditional_rendering/vktConditionalTests.cpp
-third_party/angle/third_party/VK-GL-CTS/src/external/vulkancts/modules/vulkan/conditional_rendering/vktConditionalTests.hpp
-third_party/angle/third_party/VK-GL-CTS/src/external/vulkancts/mustpass/AndroidTest.xml
-third_party/angle/third_party/VK-GL-CTS/src/framework/platform/lnx/wayland/tcuLnxWayland.cpp
-third_party/angle/third_party/VK-GL-CTS/src/framework/platform/lnx/wayland/tcuLnxWayland.hpp
-third_party/angle/third_party/VK-GL-CTS/src/framework/platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp
-third_party/angle/third_party/VK-GL-CTS/src/framework/platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.hpp
-third_party/angle/third_party/VK-GL-CTS/src/scripts/check_swiftshader_runtime.py
-third_party/angle/third_party/VK-GL-CTS/src/scripts/mustpass.py
 third_party/angle/third_party/glmark2/src/src/include/dirent.h
 third_party/angle/third_party/glmark2/src/src/native-state-dispmanx.cpp
 third_party/angle/third_party/glmark2/src/src/native-state-dispmanx.h
@@ -7237,13 +7219,6 @@ third_party/dawn/third_party/webgpu-cts/src/webgpu/api/operation/command_buffer/
 third_party/dawn/third_party/webgpu-cts/src/webgpu/api/operation/render_pipeline/sample_mask.spec.ts
 third_party/dawn/third_party/webgpu-cts/src/webgpu/api/operation/rendering/depth_bias.spec.ts
 third_party/dawn/third_party/webgpu-cts/standalone/index.html
-third_party/dawn/tools/golang/src/cmd/go/testdata/script/get_domain_root.txt
-third_party/dawn/tools/golang/src/cmd/go/testdata/script/get_insecure.txt
-third_party/dawn/tools/golang/src/cmd/go/testdata/script/get_insecure_custom_domain.txt
-third_party/dawn/tools/golang/src/cmd/go/testdata/script/get_insecure_env.txt
-third_party/dawn/tools/golang/src/cmd/go/testdata/script/mod_convert.txt
-third_party/dawn/tools/golang/src/cmd/go/testdata/script/mod_get_direct.txt
-third_party/dawn/tools/golang/src/runtime/cgo/gcc_android.c
 third_party/dawn/tools/src/cmd/cts/config.json
 third_party/depot_tools/PRESUBMIT.py
 third_party/depot_tools/auth.py
@@ -7251,304 +7226,6 @@ third_party/depot_tools/autoninja.py
 third_party/depot_tools/breakpad.py
 third_party/depot_tools/cipd_manifest.txt
 third_party/depot_tools/cipd_manifest_cros_python2.txt
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/__main__.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/addlhelp/acls.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/addlhelp/command_opts.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/addlhelp/crc32c.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/addlhelp/creds.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/addlhelp/dev.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/addlhelp/metadata.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/addlhelp/prod.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/addlhelp/security.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/addlhelp/support.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/addlhelp/versions.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/addlhelp/wildcards.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/boto_resumable_upload.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/command.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/command_runner.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/acl.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/bucketpolicyonly.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/compose.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/config.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/cors.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/cp.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/defacl.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/defstorageclass.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/hmac.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/iam.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/kms.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/label.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/lifecycle.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/logging.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/ls.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/mb.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/mv.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/notification.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/pap.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/perfdiag.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/requesterpays.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/retention.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/rm.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/rsync.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/signurl.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/test.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/ubla.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/versioning.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/commands/web.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/gcs_json_api.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/gcs_json_credentials.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/iamcredentials_api.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/kms_api.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/metrics.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/pubsub_api.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/tests/signurl_signatures.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/tests/test_creds_config.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/tests/test_data/test.json
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/tests/test_hmac.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/tests/test_kms.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/tests/test_ls.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/tests/test_mtls.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/tests/test_perfdiag.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/tests/test_signurl.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/tests/testcase/integration_testcase.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/third_party/iamcredentials_apitools/iamcredentials_v1_client.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/third_party/iamcredentials_apitools/iamcredentials_v1_messages.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/third_party/kms_apitools/cloudkms_v1_client.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/third_party/kms_apitools/cloudkms_v1_messages.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/third_party/kms_apitools/resources.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/third_party/pubsub_apitools/pubsub_v1_client.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/third_party/pubsub_apitools/pubsub_v1_messages.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/third_party/storage_apitools/storage_v1_client.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/third_party/storage_apitools/storage_v1_messages.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/utils/boto_util.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/utils/constants.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/utils/copy_helper.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/utils/hashing_helper.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/utils/iam_helper.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/utils/system_util.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/utils/text_util.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/boto/boto/cloudfront/__init__.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/boto/boto/cognito/identity/layer1.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/boto/boto/connection.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/boto/boto/ec2/connection.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/boto/boto/emr/emrobject.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/boto/boto/glacier/layer1.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/boto/boto/glacier/writer.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/boto/boto/gs/bucket.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/boto/boto/gs/connection.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/boto/boto/gs/key.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/boto/boto/gs/resumable_upload_handler.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/boto/boto/https_connection.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/boto/boto/iam/connection.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/boto/boto/rds/dbinstance.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/boto/boto/rds/dbsubnetgroup.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/boto/boto/s3/bucket.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/boto/boto/s3/key.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/boto/boto/sts/connection.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/boto/tests/integration/gs/test_resumable_uploads.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/boto/tests/integration/rds/test_db_subnet_group.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/boto/tests/integration/route53/test_health_check.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/boto/tests/integration/s3/other_cacerts.txt
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/boto/tests/integration/s3/test_https_cert_validation.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/boto/tests/unit/auth/test_sigv4.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/boto/tests/unit/emr/test_emr_responses.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/oauth2client/__init__.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/oauth2client/client.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/oauth2client/clientsecrets.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/oauth2client/contrib/_metadata.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/oauth2client/contrib/appengine.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/oauth2client/contrib/django_util/__init__.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/oauth2client/contrib/flask_util.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/oauth2client/contrib/gce.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/oauth2client/tools.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/samples/call_compute_service.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/samples/oauth2_for_devices.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/scripts/run_system_tests.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/setup.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/tests/contrib/appengine/test_appengine.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/tests/contrib/django_util/settings.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/tests/contrib/django_util/test_views.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/tests/contrib/test_multiprocess_file_storage.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/tests/data/client_secrets.json
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/tests/data/gcloud/application_default_credentials.json
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/tests/data/gcloud/application_default_credentials_malformed_1.json
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/tests/data/gcloud/application_default_credentials_malformed_2.json
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/tests/data/gcloud/application_default_credentials_malformed_3.json
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/tests/data/unfilled_client_secrets.json
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/tests/test__helpers.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/tests/test_client.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/tests/test_file.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/tests/test_jwt.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/gslib/vendored/oauth2client/tests/test_service_account.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/setup.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/apitools/base/protorpclite/messages.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/apitools/base/py/base_api_test.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/apitools/base/py/batch.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/apitools/base/py/credentials_lib.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/apitools/base/py/exceptions_test.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/apitools/base/py/transfer.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/apitools/base/py/util.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/apitools/data/apitools_client_secrets.json
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/apitools/gen/gen_client.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/apitools/gen/gen_client_lib.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/apitools/gen/message_registry.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/apitools/gen/service_registry.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/apitools/gen/testdata/dns/dns_v1.json
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/apitools/gen/util.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/apitools/scripts/testdata/fake_client_secrets.json
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/samples/bigquery_sample/bigquery_v2.json
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/samples/bigquery_sample/bigquery_v2/bigquery_v2_client.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/samples/bigquery_sample/bigquery_v2/bigquery_v2_messages.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/samples/dns_sample/dns_v1.json
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/samples/dns_sample/dns_v1/dns_v1_client.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/samples/dns_sample/gen_dns_client_test.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/samples/fusiontables_sample/fusiontables_v1.json
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/samples/fusiontables_sample/fusiontables_v1/fusiontables_v1_client.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/samples/fusiontables_sample/fusiontables_v1/fusiontables_v1_messages.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/samples/iam_sample/iam_client_test.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/samples/iam_sample/iam_v1.json
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/samples/iam_sample/iam_v1/iam_v1_client.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/samples/iam_sample/iam_v1/iam_v1_messages.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/samples/servicemanagement_sample/servicemanagement_v1.json
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/samples/servicemanagement_sample/servicemanagement_v1/servicemanagement_v1_client.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/samples/servicemanagement_sample/servicemanagement_v1/servicemanagement_v1_messages.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/samples/storage_sample/storage_v1.json
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/samples/storage_sample/storage_v1/storage_v1_client.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/samples/storage_sample/storage_v1/storage_v1_messages.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/apitools/setup.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/argcomplete/setup.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/crcmod/setup.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/gcs-oauth2-boto-plugin/gcs_oauth2_boto_plugin/oauth2_client.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/gcs-oauth2-boto-plugin/gcs_oauth2_boto_plugin/oauth2_helper.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/gcs-oauth2-boto-plugin/setup.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/google-reauth-python/google_reauth/_reauth_client.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/google-reauth-python/google_reauth/challenges.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/google-reauth-python/google_reauth/reauth.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/google-reauth-python/setup.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/google-reauth-python/tests/test_reauth.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/httplib2/Makefile
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/httplib2/index.html
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/httplib2/python2/httplib2/__init__.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/httplib2/python2/httplib2test.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/httplib2/python2/httplib2test_appengine.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/httplib2/python2/ssl_protocol_test.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/httplib2/python3/httplib2/__init__.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/httplib2/python3/httplib2/test/other_cacerts.txt
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/httplib2/python3/httplib2test.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/httplib2/tests/test_proxy.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/LICENSE.txt
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/pyasn1_modules/pem.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc1155.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc1157.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc1901.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc1902.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc1905.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc2251.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc2314.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc2315.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc2437.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc2459.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc2511.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc2560.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc3280.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc3281.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc3412.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc3414.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc3447.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc3852.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc4210.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc4211.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc5208.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc5280.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc5652.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/pyasn1_modules/rfc6402.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/setup.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/tests/__main__.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/tests/test_rfc2314.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/tests/test_rfc2315.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/tests/test_rfc2437.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/tests/test_rfc2459.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/tests/test_rfc2511.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/tests/test_rfc2560.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/tests/test_rfc4210.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/tests/test_rfc5208.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/tests/test_rfc5280.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/tests/test_rfc5652.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/tools/cmpdump.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/tools/crldump.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/tools/crmfdump.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/tools/ocspclient.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/tools/ocspreqdump.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/tools/ocsprspdump.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/tools/pkcs10dump.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/tools/pkcs1dump.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/tools/pkcs7dump.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/tools/pkcs8dump.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/tools/snmpget.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/tools/x509dump-rfc5280.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1-modules/tools/x509dump.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/docs/source/conf.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/codec/ber/decoder.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/codec/ber/encoder.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/codec/ber/eoo.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/codec/cer/decoder.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/codec/cer/encoder.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/codec/der/decoder.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/codec/der/encoder.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/codec/native/decoder.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/codec/native/encoder.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/compat/binary.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/compat/calling.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/compat/dateandtime.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/compat/integer.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/compat/octets.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/compat/string.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/debug.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/error.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/type/base.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/type/char.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/type/constraint.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/type/error.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/type/namedtype.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/type/namedval.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/type/opentype.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/type/tag.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/type/tagmap.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/type/univ.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/pyasn1/type/useful.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/setup.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/__main__.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/base.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/codec/__main__.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/codec/ber/__main__.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/codec/ber/test_decoder.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/codec/ber/test_encoder.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/codec/cer/__main__.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/codec/cer/test_decoder.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/codec/cer/test_encoder.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/codec/der/__main__.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/codec/der/test_decoder.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/codec/der/test_encoder.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/codec/native/__main__.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/codec/native/test_decoder.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/codec/native/test_encoder.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/compat/__main__.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/compat/test_binary.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/compat/test_integer.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/compat/test_octets.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/test_debug.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/type/__main__.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/type/test_char.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/type/test_constraint.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/type/test_namedtype.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/type/test_namedval.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/type/test_opentype.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/type/test_tag.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/type/test_univ.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyasn1/tests/type/test_useful.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/pyu2f/setup.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/retry-decorator/setup.py
-third_party/depot_tools/external_bin/gsutil/gsutil_4.68/gsutil/third_party/rsa/rsa/randnum.py
 third_party/depot_tools/fetch.py
 third_party/depot_tools/fetch_configs/angle.py
 third_party/depot_tools/fetch_configs/breakpad.py
@@ -10737,19 +10414,6 @@ third_party/libdrm/src/tests/radeon/rbo.c
 third_party/libdrm/src/tests/radeon/rbo.h
 third_party/libdrm/src/xf86drmMode.c
 third_party/libdrm/src/xf86drmMode.h
-third_party/libei/include/drm/drm_mode.h
-third_party/libei/include/drm/lima_drm.h
-third_party/libei/include/drm/msm_drm.h
-third_party/libei/include/linux/am437x-vpfe.h
-third_party/libei/include/linux/bfs_fs.h
-third_party/libei/include/linux/cifs/cifs_mount.h
-third_party/libei/include/linux/cn_proc.h
-third_party/libei/include/linux/hyperv.h
-third_party/libei/include/linux/map_to_7segment.h
-third_party/libei/include/linux/phantom.h
-third_party/libei/include/linux/toshiba.h
-third_party/libei/include/linux/uinput.h
-third_party/libei/include/linux/usb/tmc.h
 third_party/libevent/evdns.c
 third_party/libevent/evdns.h
 third_party/libevent/evport.c
@@ -10977,227 +10641,6 @@ third_party/libyuv/tools_libyuv/autoroller/roll_deps.py
 third_party/libyuv/tools_libyuv/autoroller/unittests/roll_deps_test.py
 third_party/libzip/src/lib/zip_crypto_win.c
 third_party/libzip/src/lib/zip_extra_field.c
-third_party/llvm/clang-tools-extra/CODE_OWNERS.TXT
-third_party/llvm/clang-tools-extra/clangd/support/Trace.h
-third_party/llvm/clang/include/clang/Basic/TargetInfo.h
-third_party/llvm/clang/include/clang/Format/Format.h
-third_party/llvm/clang/include/clang/StaticAnalyzer/Frontend/CheckerRegistry.h
-third_party/llvm/clang/lib/AST/ASTContext.cpp
-third_party/llvm/clang/lib/Basic/Targets/AArch64.cpp
-third_party/llvm/clang/lib/Basic/Targets/OSTargets.cpp
-third_party/llvm/clang/lib/CodeGen/CGBuiltin.cpp
-third_party/llvm/clang/lib/CodeGen/CodeGenModule.cpp
-third_party/llvm/clang/lib/Format/Format.cpp
-third_party/llvm/clang/lib/Format/FormatTokenLexer.cpp
-third_party/llvm/clang/lib/Format/UnwrappedLineParser.cpp
-third_party/llvm/clang/lib/Format/UnwrappedLineParser.h
-third_party/llvm/clang/lib/Frontend/DependencyFile.cpp
-third_party/llvm/clang/lib/Headers/__clang_cuda_builtin_vars.h
-third_party/llvm/clang/lib/Headers/float.h
-third_party/llvm/clang/lib/Lex/PPDirectives.cpp
-third_party/llvm/clang/lib/Lex/Pragma.cpp
-third_party/llvm/clang/lib/Sema/SemaDecl.cpp
-third_party/llvm/clang/lib/Sema/SemaExpr.cpp
-third_party/llvm/clang/lib/Sema/SemaLambda.cpp
-third_party/llvm/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
-third_party/llvm/clang/test/Analysis/malloc.c
-third_party/llvm/clang/test/Driver/clang_f_opts.c
-third_party/llvm/clang/test/Lexer/pragma-message.c
-third_party/llvm/clang/test/Lexer/pragma-region.c
-third_party/llvm/clang/test/Preprocessor/pragma-pushpop-macro.c
-third_party/llvm/clang/unittests/Format/FormatTest.cpp
-third_party/llvm/clang/unittests/Format/FormatTestCSharp.cpp
-third_party/llvm/clang/www/analyzer/open_projects.html
-third_party/llvm/clang/www/analyzer/potential_checkers.html
-third_party/llvm/clang/www/related.html
-third_party/llvm/compiler-rt/CODE_OWNERS.TXT
-third_party/llvm/compiler-rt/lib/asan/asan_ignorelist.txt
-third_party/llvm/compiler-rt/lib/asan/asan_malloc_win.cpp
-third_party/llvm/compiler-rt/lib/asan/asan_win.cpp
-third_party/llvm/compiler-rt/lib/fuzzer/FuzzerSHA1.cpp
-third_party/llvm/compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp
-third_party/llvm/compiler-rt/lib/hwasan/hwasan_report.cpp
-third_party/llvm/compiler-rt/lib/interception/interception_win.cpp
-third_party/llvm/compiler-rt/lib/profile/WindowsMMap.c
-third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_coverage_fuchsia.cpp
-third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_sections.cpp
-third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_fuchsia.h
-third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_markup.cpp
-third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cpp
-third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.h
-third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_win.cpp
-third_party/llvm/compiler-rt/lib/scudo/standalone/platform.h
-third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_rtl_access.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/address-range-limit.mm
-third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/cstring_literals_regtest.mm
-third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/linked-only.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/malloc_set_zone_name-mprotect.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/mixing-global-constructors.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/objc-odr.mm
-third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/reexec-insert-libraries-env.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Linux/clone_test.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Linux/globals-gc-sections-lld.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Linux/init-order-dlopen.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Linux/interception_readdir_r_test.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Linux/kernel-area.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Linux/malloc-in-qsort.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Linux/nohugepage_test.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Linux/odr-violation.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Linux/overflow-in-qsort.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Linux/ptrace.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Linux/shmctl.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Linux/stack-trace-dlclose.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Posix/asan-symbolize-sanity-test.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Posix/coverage-module-unloaded.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Posix/coverage.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Posix/dlclose-test.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Posix/glob.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Posix/no_asan_gen_globals.c
-third_party/llvm/compiler-rt/test/asan/TestCases/Posix/tsd_dtor_leak.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Posix/wait4.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Windows/crt_initializers.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Windows/dll_operator_array_new_with_dtor_left_oob.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Windows/dll_seh.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Windows/longjmp.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Windows/operator_array_new_with_dtor_left_oob.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/Windows/seh.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/atexit_stats.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/default_ignorelist.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/heap-overflow-large.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/initialization-bug.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/log-path_test.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/printf-3.c
-third_party/llvm/compiler-rt/test/asan/TestCases/throw_call_test.cpp
-third_party/llvm/compiler-rt/test/asan/TestCases/time_interceptor.cpp
-third_party/llvm/compiler-rt/test/cfi/cross-dso/target_out_of_bounds.cpp
-third_party/llvm/compiler-rt/test/lsan/TestCases/new_array_with_dtor_0.cpp
-third_party/llvm/compiler-rt/test/msan/select_float_origin.cpp
-third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Linux/allow_user_segv.cpp
-third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Linux/dn_expand.cpp
-third_party/llvm/compiler-rt/test/tsan/ignore_lib6.cpp
-third_party/llvm/compiler-rt/test/tsan/mmap_stress.cpp
-third_party/llvm/compiler-rt/test/tsan/pthread_atfork_deadlock2.c
-third_party/llvm/compiler-rt/test/tsan/pthread_atfork_deadlock3.c
-third_party/llvm/compiler-rt/test/tsan/pthread_key.cpp
-third_party/llvm/compiler-rt/test/ubsan/TestCases/Misc/log-path_test.cpp
-third_party/llvm/cross-project-tests/debuginfo-tests/dexter/dex/debugger/visualstudio/VisualStudio.py
-third_party/llvm/flang/runtime/complex-powi.cpp
-third_party/llvm/flang/runtime/file.cpp
-third_party/llvm/libclc/generic/lib/gen_convert.py
-third_party/llvm/libcxx/CREDITS.TXT
-third_party/llvm/libcxx/src/chrono.cpp
-third_party/llvm/libcxxabi/CREDITS.TXT
-third_party/llvm/lld/CODE_OWNERS.TXT
-third_party/llvm/lld/COFF/DLL.cpp
-third_party/llvm/lld/COFF/Driver.cpp
-third_party/llvm/lld/COFF/ICF.cpp
-third_party/llvm/lld/COFF/PDB.cpp
-third_party/llvm/lld/COFF/Writer.cpp
-third_party/llvm/lld/ELF/ICF.cpp
-third_party/llvm/lld/ELF/SyntheticSections.cpp
-third_party/llvm/lld/ELF/SyntheticSections.h
-third_party/llvm/lld/MachO/SyntheticSections.cpp
-third_party/llvm/lldb/CODE_OWNERS.txt
-third_party/llvm/lldb/include/lldb/Utility/UUID.h
-third_party/llvm/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
-third_party/llvm/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h
-third_party/llvm/lldb/source/Plugins/Process/minidump/MinidumpParser.cpp
-third_party/llvm/lldb/source/Plugins/Process/minidump/MinidumpTypes.h
-third_party/llvm/lldb/source/Plugins/TraceExporter/common/TraceHTR.cpp
-third_party/llvm/lldb/test/API/commands/trace/TestTraceExport.py
-third_party/llvm/lldb/test/API/functionalities/inferior-assert/TestInferiorAssert.py
-third_party/llvm/lldb/test/API/functionalities/thread/thread_specific_break/main.cpp
-third_party/llvm/lldb/test/API/tools/lldb-server/inferior-crash/TestGdbRemoteAbort.py
-third_party/llvm/lldb/tools/lldb-vscode/package.json
-third_party/llvm/lldb/unittests/Host/SocketTest.cpp
-third_party/llvm/lldb/unittests/Process/minidump/Inputs/linux-x86_64.cpp
-third_party/llvm/llvm/CODE_OWNERS.TXT
-third_party/llvm/llvm/CREDITS.TXT
-third_party/llvm/llvm/RELEASE_TESTERS.TXT
-third_party/llvm/llvm/include/llvm/Analysis/TensorSpec.h
-third_party/llvm/llvm/include/llvm/BinaryFormat/COFF.h
-third_party/llvm/llvm/include/llvm/BinaryFormat/ELF.h
-third_party/llvm/llvm/include/llvm/BinaryFormat/Minidump.h
-third_party/llvm/llvm/include/llvm/CodeGen/MachineFrameInfo.h
-third_party/llvm/llvm/include/llvm/DebugInfo/CodeView/CodeView.h
-third_party/llvm/llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h
-third_party/llvm/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h
-third_party/llvm/llvm/include/llvm/DebugInfo/PDB/PDBTypes.h
-third_party/llvm/llvm/include/llvm/ExecutionEngine/Orc/COFFVCRuntimeSupport.h
-third_party/llvm/llvm/include/llvm/IR/PassManager.h
-third_party/llvm/llvm/include/llvm/Object/COFFModuleDefinition.h
-third_party/llvm/llvm/include/llvm/Object/WindowsResource.h
-third_party/llvm/llvm/include/llvm/Support/ARMWinEH.h
-third_party/llvm/llvm/include/llvm/Support/CommandLine.h
-third_party/llvm/llvm/include/llvm/Support/Compiler.h
-third_party/llvm/llvm/include/llvm/Support/SHA1.h
-third_party/llvm/llvm/include/llvm/Support/TimeProfiler.h
-third_party/llvm/llvm/include/llvm/Support/Win64EH.h
-third_party/llvm/llvm/include/llvm/Transforms/IPO/FunctionSpecialization.h
-third_party/llvm/llvm/include/llvm/WindowsManifest/WindowsManifestMerger.h
-third_party/llvm/llvm/include/llvm/WindowsResource/ResourceScriptToken.h
-third_party/llvm/llvm/lib/Analysis/TargetLibraryInfo.cpp
-third_party/llvm/llvm/lib/CodeGen/JMCInstrumenter.cpp
-third_party/llvm/llvm/lib/CodeGen/MachineFunctionSplitter.cpp
-third_party/llvm/llvm/lib/CodeGen/MachineOutliner.cpp
-third_party/llvm/llvm/lib/DebugInfo/CodeView/Formatters.cpp
-third_party/llvm/llvm/lib/ExecutionEngine/JITLink/COFFDirectiveParser.h
-third_party/llvm/llvm/lib/MC/MCWin64EH.cpp
-third_party/llvm/llvm/lib/ObjCopy/ELF/ELFObject.cpp
-third_party/llvm/llvm/lib/ObjCopy/MachO/MachOWriter.cpp
-third_party/llvm/llvm/lib/Object/COFFModuleDefinition.cpp
-third_party/llvm/llvm/lib/Object/ELF.cpp
-third_party/llvm/llvm/lib/Support/SHA1.cpp
-third_party/llvm/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
-third_party/llvm/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
-third_party/llvm/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h
-third_party/llvm/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp
-third_party/llvm/llvm/lib/Target/DirectX/CBufferDataLayout.cpp
-third_party/llvm/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
-third_party/llvm/llvm/lib/Target/X86/X86ISelLowering.cpp
-third_party/llvm/llvm/lib/Transforms/IPO/FunctionSpecialization.cpp
-third_party/llvm/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
-third_party/llvm/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
-third_party/llvm/llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp
-third_party/llvm/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp
-third_party/llvm/llvm/tools/llvm-objdump/COFFDump.cpp
-third_party/llvm/llvm/tools/llvm-rc/ResourceFileWriter.cpp
-third_party/llvm/llvm/tools/llvm-rc/ResourceScriptCppFilter.h
-third_party/llvm/llvm/tools/llvm-rc/ResourceScriptParser.h
-third_party/llvm/llvm/tools/llvm-rc/ResourceScriptStmt.cpp
-third_party/llvm/llvm/tools/llvm-rc/ResourceScriptStmt.h
-third_party/llvm/llvm/tools/llvm-rc/ResourceScriptToken.h
-third_party/llvm/llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp
-third_party/llvm/llvm/unittests/Support/ManagedStatic.cpp
-third_party/llvm/llvm/unittests/Support/Path.cpp
-third_party/llvm/llvm/unittests/Support/RegexTest.cpp
-third_party/llvm/llvm/utils/gn/TODO.txt
-third_party/llvm/llvm/utils/gn/build/symbol_exports.gni
-third_party/llvm/llvm/utils/gn/build/toolchain/BUILD.gn
-third_party/llvm/llvm/utils/gn/build/toolchain/compiler.gni
-third_party/llvm/llvm/utils/gn/get.py
-third_party/llvm/llvm/utils/gn/gn.py
-third_party/llvm/llvm/utils/lit/lit/TestRunner.py
-third_party/llvm/mlir/utils/vscode/.vscode/launch.json
-third_party/llvm/openmp/CREDITS.txt
-third_party/llvm/openmp/runtime/src/kmp_i18n.cpp
-third_party/llvm/openmp/runtime/src/z_Windows_NT_util.cpp
-third_party/llvm/openmp/tools/archer/ompt-tsan.cpp
-third_party/llvm/polly/CREDITS.txt
-third_party/llvm/polly/utils/argparse.py
-third_party/llvm/polly/www/contributors.html
-third_party/llvm/polly/www/hangouts.html
-third_party/llvm/polly/www/index.html
-third_party/llvm/polly/www/projects.html
-third_party/llvm/pstl/CREDITS.txt
-third_party/llvm/pstl/test/std/numerics/numeric.ops/scan.pass.cpp
-third_party/llvm/third-party/benchmark/setup.py
-third_party/llvm/third-party/benchmark/src/cycleclock.h
-third_party/llvm/third-party/unittest/googletest/include/gtest/gtest_pred_impl.h
-third_party/llvm/third-party/unittest/googletest/include/gtest/internal/gtest-port.h
-third_party/llvm/third-party/unittest/googletest/include/gtest/internal/gtest-type-util.h
-third_party/llvm/third-party/unittest/googletest/src/gtest-death-test.cc
-third_party/llvm/third-party/unittest/googletest/src/gtest.cc
 third_party/lottie/lottie_worker.js
 third_party/mako/mako/test/templates/internationalization.html
 third_party/maldoca/src/maldoca/base/get_runfiles_dir.cc
@@ -12973,12 +12416,10 @@ third_party/tflite/src/tensorflow/tsl/platform/windows/env.cc
 third_party/tflite/src/tensorflow/tsl/platform/windows/stacktrace.cc
 third_party/tflite/src/tensorflow/tsl/platform/windows/stacktrace_handler.cc
 third_party/tflite_support/src/tensorflow_lite_support/c/task/processor/category.h
-third_party/updater/chrome_linux64/3pp/fetch.py
 third_party/updater/chrome_mac_universal/3pp/fetch.py
 third_party/updater/chrome_mac_universal_prod/3pp/fetch.py
 third_party/updater/chrome_win_x86/3pp/fetch.py
 third_party/updater/chrome_win_x86_64/3pp/fetch.py
-third_party/updater/chromium_linux64/3pp/fetch.py
 third_party/updater/chromium_mac_amd64/3pp/fetch.py
 third_party/updater/chromium_mac_arm64/3pp/fetch.py
 third_party/updater/chromium_win_x86/3pp/fetch.py

File diff suppressed because it is too large
+ 0 - 1435
pruning.list


+ 281 - 0
utils/clone.py

@@ -0,0 +1,281 @@
+#!/usr/bin/env python3
+# -*- coding: UTF-8 -*-
+
+# Copyright (c) 2023 The ungoogled-chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""
+Module for cloning the source tree.
+"""
+
+import sys
+from argparse import ArgumentParser
+from os import chdir, environ, pathsep
+from pathlib import Path
+from shutil import copytree, copy, move
+from stat import S_IWRITE
+from subprocess import run
+
+from _common import add_common_params, get_chromium_version, get_logger
+
+# Config file for gclient
+# Instances of 'src' replaced with UC_OUT, which will be replaced with the output directory
+# third_party/angle/third_party/VK-GL-CTS/src is set to None since it's large and unused
+# target_* arguments set to match tarball rather than actual build target
+GC_CONFIG = """\
+solutions = [
+  {
+    "name": "UC_OUT",
+    "url": "https://chromium.googlesource.com/chromium/src.git",
+    "managed": False,
+    "custom_deps": {
+      "UC_OUT/third_party/angle/third_party/VK-GL-CTS/src": None,
+    },
+    "custom_vars": {
+      "checkout_configuration": "small",
+    },
+  },
+];
+target_os = ['unix'];
+target_os_only = True;
+target_cpu = ['x64'];
+target_cpu_only = True;
+"""
+
+
+def clone(args):
+    """Clones, downloads, and generates the required sources"""
+    try:
+        get_logger().info('Setting up cloning environment')
+        iswin = sys.platform.startswith('win')
+        chromium_version = get_chromium_version()
+        ucstaging = args.output / 'uc_staging'
+        dtpath = ucstaging / 'depot_tools'
+        gnpath = ucstaging / 'gn'
+        environ['GCLIENT_FILE'] = str(ucstaging / '.gclient')
+        environ['PATH'] += pathsep + str(dtpath)
+        environ['PYTHONPATH'] = str(dtpath)
+        # Prevent gclient from auto updating depot_tools
+        environ['DEPOT_TOOLS_UPDATE'] = '0'
+        # Don't generate pycache files
+        environ['PYTHONDONTWRITEBYTECODE'] = '1'
+        # Allow usage of system python
+        environ['VPYTHON_BYPASS'] = 'manually managed python not supported by chrome operations'
+
+        # depth=2 since generating LASTCHANGE and gpu_lists_version.h require at least two commits
+        get_logger().info('Cloning chromium source: ' + chromium_version)
+        if (args.output / '.git').exists():
+            run(['git', 'clean', '-fdx'], cwd=args.output, check=True)
+            run(['git', 'fetch', 'origin', 'tag', chromium_version, '--depth=2'],
+                cwd=args.output,
+                check=True)
+            run(['git', 'reset', '--hard', 'FETCH_HEAD'], cwd=args.output, check=True)
+        else:
+            run([
+                'git', 'clone', '-c', 'advice.detachedHead=false', '-b', chromium_version,
+                '--depth=2', "https://chromium.googlesource.com/chromium/src",
+                str(args.output)
+            ],
+                check=True)
+
+        # Set up staging directory
+        ucstaging.mkdir(exist_ok=True)
+
+        get_logger().info('Cloning depot_tools')
+        if dtpath.exists():
+            run(['git', 'clean', '-fdx'], cwd=dtpath, check=True)
+            run(['git', 'fetch', '--depth=1'], cwd=dtpath, check=True)
+            run(['git', 'reset', '--hard', 'FETCH_HEAD'], cwd=dtpath, check=True)
+        else:
+            run([
+                'git', 'clone', '--depth=1',
+                "https://chromium.googlesource.com/chromium/tools/depot_tools",
+                str(dtpath)
+            ],
+                check=True)
+        if iswin:
+            (dtpath / 'git.bat').write_text('git')
+        # Apply changes to gclient
+        run(['git', 'apply'],
+            input=Path(__file__).with_name('depot_tools.patch').read_text().replace(
+                'UC_OUT', str(args.output)).replace('UC_STAGING', str(ucstaging)),
+            cwd=dtpath,
+            check=True,
+            universal_newlines=True)
+
+        # gn requires full history to be able to generate last_commit_position.h
+        get_logger().info('Cloning gn')
+        if gnpath.exists():
+            run(['git', 'clean', '-fdx'], cwd=gnpath, check=True)
+            run(['git', 'fetch'], cwd=gnpath, check=True)
+            run(['git', 'reset', '--hard', 'FETCH_HEAD'], cwd=gnpath, check=True)
+        else:
+            run(['git', 'clone', "https://gn.googlesource.com/gn", str(gnpath)], check=True)
+
+        get_logger().info('Running gsync')
+        if args.custom_config:
+            copy(args.custom_config, ucstaging / '.gclient').replace('UC_OUT', str(args.output))
+        else:
+            (ucstaging / '.gclient').write_text(GC_CONFIG.replace('UC_OUT', str(args.output)))
+        gcpath = dtpath / 'gclient'
+        if iswin:
+            gcpath = gcpath.with_suffix('.bat')
+        # -f, -D, and -R forces a hard reset on changes and deletes deps that have been removed
+        run([str(gcpath), 'sync', '-f', '-D', '-R', '--no-history', '--nohooks'], check=True)
+
+        # Follow tarball procedure:
+        # https://source.chromium.org/chromium/chromium/tools/build/+/main:recipes/recipes/publish_tarball.py
+        get_logger().info('Downloading node modules')
+        run([
+            sys.executable,
+            str(dtpath / 'download_from_google_storage.py'), '--no_resume', '--extract',
+            '--no_auth', '--bucket', 'chromium-nodejs', '-s',
+            str(args.output / 'third_party' / 'node' / 'node_modules.tar.gz.sha1')
+        ],
+            check=True)
+
+        get_logger().info('Downloading pgo profiles')
+        run([
+            sys.executable,
+            str(args.output / 'tools' / 'update_pgo_profiles.py'), '--target=' + args.pgo, 'update',
+            '--gs-url-base=chromium-optimization-profiles/pgo_profiles'
+        ],
+            check=True)
+
+        get_logger().info('Generating: DAWN_VERSION')
+        run([
+            sys.executable,
+            str(args.output / 'build' / 'util' / 'lastchange.py'), '-s',
+            str(args.output / 'third_party' / 'dawn'), '--revision',
+            str(args.output / 'gpu' / 'webgpu' / 'DAWN_VERSION')
+        ],
+            check=True)
+
+        get_logger().info('Generating: LASTCHANGE')
+        run([
+            sys.executable,
+            str(args.output / 'build' / 'util' / 'lastchange.py'), '-o',
+            str(args.output / 'build' / 'util' / 'LASTCHANGE')
+        ],
+            check=True)
+
+        get_logger().info('Generating: gpu_lists_version.h')
+        run([
+            sys.executable,
+            str(args.output / 'build' / 'util' / 'lastchange.py'), '-m', 'GPU_LISTS_VERSION',
+            '--revision-id-only', '--header',
+            str(args.output / 'gpu' / 'config' / 'gpu_lists_version.h')
+        ],
+            check=True)
+
+        get_logger().info('Generating: skia_commit_hash.h')
+        run([
+            sys.executable,
+            str(args.output / 'build' / 'util' / 'lastchange.py'), '-m', 'SKIA_COMMIT_HASH', '-s',
+            str(args.output / 'third_party' / 'skia'), '--header',
+            str(args.output / 'skia' / 'ext' / 'skia_commit_hash.h')
+        ],
+            check=True)
+
+        get_logger().info('Generating: last_commit_position.h')
+        run([sys.executable, str(gnpath / 'build' / 'gen.py')], check=True)
+        for item in gnpath.iterdir():
+            if not item.is_dir():
+                copy(item, args.output / 'tools' / 'gn')
+            elif item.name != '.git' and item.name != 'out':
+                copytree(item, args.output / 'tools' / 'gn' / item.name)
+        move(
+            str(gnpath / 'out' / 'last_commit_position.h'),
+            str(args.output / 'tools' / 'gn' / 'bootstrap'))
+
+        get_logger().info('Removing uneeded files')
+        # Match removals for the tarball:
+        # https://source.chromium.org/chromium/chromium/tools/build/+/main:recipes/recipe_modules/chromium/resources/export_tarball.py
+        remove_dirs = (
+            (args.output / 'chrome' / 'test' / 'data'),
+            (args.output / 'content' / 'test' / 'data'),
+            (args.output / 'courgette' / 'testdata'),
+            (args.output / 'extensions' / 'test' / 'data'),
+            (args.output / 'media' / 'test' / 'data'),
+            (args.output / 'native_client' / 'src' / 'trusted' / 'service_runtime' / 'testdata'),
+            (args.output / 'third_party' / 'blink' / 'tools'),
+            (args.output / 'third_party' / 'blink' / 'web_tests'),
+            (args.output / 'third_party' / 'breakpad' / 'breakpad' / 'src' / 'processor' /
+             'testdata'),
+            (args.output / 'third_party' / 'catapult' / 'tracing' / 'test_data'),
+            (args.output / 'third_party' / 'hunspell' / 'tests'),
+            (args.output / 'third_party' / 'hunspell_dictionaries'),
+            (args.output / 'third_party' / 'jdk' / 'current'),
+            (args.output / 'third_party' / 'jdk' / 'extras'),
+            (args.output / 'third_party' / 'liblouis' / 'src' / 'tests' / 'braille-specs'),
+            (args.output / 'third_party' / 'xdg-utils' / 'tests'),
+            (args.output / 'v8' / 'test'),
+        )
+        keep_files = (
+            (args.output / 'chrome' / 'test' / 'data' / 'webui' / 'i18n_process_css_test.html'),
+            (args.output / 'chrome' / 'test' / 'data' / 'webui' / 'mojo' / 'foobar.mojom'),
+            (args.output / 'chrome' / 'test' / 'data' / 'webui' / 'web_ui_test.mojom'),
+            (args.output / 'v8' / 'test' / 'torque' / 'test-torque.tq'),
+        )
+        keep_suffix = ('.gn', '.gni', '.grd', '.gyp', '.isolate', '.pydeps')
+        for path in remove_dirs:
+            for file in path.rglob('*'):
+                if file.is_file():
+                    if file not in keep_files and file.suffix not in keep_suffix:
+                        try:
+                            file.unlink()
+                        # read-only files can't be deleted on Windows
+                        # so remove the flag and try again.
+                        except PermissionError:
+                            file.chmod(S_IWRITE)
+                            file.unlink()
+        for path in sorted(args.output.rglob('*'), key=lambda l: len(str(l)), reverse=True):
+            if not path.is_symlink() and '.git' not in path.parts:
+                if path.is_file() and ('out' in path.parts or path.name.startswith('ChangeLog')):
+                    try:
+                        path.unlink()
+                    except PermissionError:
+                        path.chmod(S_IWRITE)
+                        path.unlink()
+                elif path.is_dir() and not any(path.iterdir()):
+                    try:
+                        path.rmdir()
+                    except PermissionError:
+                        path.chmod(S_IWRITE)
+                        path.rmdir()
+
+        get_logger().info('Source cloning complete')
+    except:
+        raise
+        sys.exit(1)
+
+
+def main():
+    """CLI Entrypoint"""
+    parser = ArgumentParser(description=__doc__)
+    parser.add_argument(
+        '-o',
+        '--output',
+        type=Path,
+        metavar='DIRECTORY',
+        default='chromium',
+        help='Output directory for the cloned sources. Default: %(default)s')
+    parser.add_argument(
+        '-c',
+        '--custom-config',
+        type=Path,
+        metavar='FILE',
+        help='Supply a replacement for the default gclient config.')
+    parser.add_argument(
+        '-p',
+        '--pgo',
+        default='linux',
+        choices=('linux', 'mac', 'mac-arm', 'win32', 'win64'),
+        help='Specifiy which pgo profile to download.  Default: %(default)s')
+    add_common_params(parser)
+    args = parser.parse_args()
+    clone(args)
+
+
+if __name__ == '__main__':
+    main()

+ 81 - 0
utils/depot_tools.patch

@@ -0,0 +1,81 @@
+# Changes to gclient that:
+#   move dotfiles into the staging directory
+#   skip cipd binary downloads
+#   replace 'src' in checkout paths with the output directory
+#   ensure shallow fetches
+--- a/gclient.py
++++ b/gclient.py
+@@ -130,8 +130,8 @@
+ # one, e.g. if a spec explicitly says `cache_dir = None`.)
+ UNSET_CACHE_DIR = object()
+ 
+-PREVIOUS_CUSTOM_VARS_FILE = '.gclient_previous_custom_vars'
+-PREVIOUS_SYNC_COMMITS_FILE = '.gclient_previous_sync_commits'
++PREVIOUS_CUSTOM_VARS_FILE = 'UC_STAGING'+os.sep+'.gclient_previous_custom_vars'
++PREVIOUS_SYNC_COMMITS_FILE = 'UC_STAGING'+os.sep+'.gclient_previous_sync_commits'
+ 
+ PREVIOUS_SYNC_COMMITS = 'GCLIENT_PREVIOUS_SYNC_COMMITS'
+ 
+@@ -405,6 +405,7 @@
+                custom_vars, custom_hooks, deps_file, should_process,
+                should_recurse, relative, condition, protocol='https',
+                print_outbuf=False):
++    if name and name[0:3] == "src": name = "UC_OUT"+name[3:]
+     gclient_utils.WorkItem.__init__(self, name)
+     DependencySettings.__init__(
+         self, parent, url, managed, custom_deps, custom_vars,
+@@ -700,6 +701,7 @@
+ 
+       condition = dep_value.get('condition')
+       dep_type = dep_value.get('dep_type')
++      if dep_type == 'cipd': continue
+ 
+ 
+       if condition and not self._get_option('process_all_deps', False):
+@@ -799,6 +801,8 @@
+ 
+     self._gn_args_from = local_scope.get('gclient_gn_args_from')
+     self._gn_args_file = local_scope.get('gclient_gn_args_file')
++    if self._gn_args_file and self._gn_args_file[0:3] == "src":
++        self._gn_args_file = "UC_OUT"+self._gn_args_file[3:]
+     self._gn_args = local_scope.get('gclient_gn_args', [])
+     # It doesn't make sense to set all of these, since setting gn_args_from to
+     # another DEPS will make gclient ignore any other local gn_args* settings.
+--- a/gclient_scm.py
++++ b/gclient_scm.py
+@@ -770,7 +770,7 @@
+     self._SetFetchConfig(options)
+ 
+     # Fetch upstream if we don't already have |revision|.
+-    if not scm.GIT.IsValidRevision(self.checkout_path, revision, sha_only=True):
++    if False:
+       self._Fetch(options, prune=options.force)
+ 
+       if not scm.GIT.IsValidRevision(self.checkout_path, revision,
+@@ -785,7 +785,7 @@
+ 
+     # This is a big hammer, debatable if it should even be here...
+     if options.force or options.reset:
+-      target = 'HEAD'
++      target = 'FETCH_HEAD'
+       if options.upstream and upstream_branch:
+         target = upstream_branch
+       self._Scrub(target, options)
+@@ -799,7 +799,6 @@
+       # system. The best we can do is carry forward to the checkout step.
+       if not (options.force or options.reset):
+         self._CheckClean(revision)
+-      self._CheckDetachedHead(revision, options)
+       if self._Capture(['rev-list', '-n', '1', 'HEAD']) == revision:
+         self.Print('Up-to-date; skipping checkout.')
+       else:
+@@ -1465,8 +1464,7 @@
+       fetch_cmd.append('--no-tags')
+     elif quiet:
+       fetch_cmd.append('--quiet')
+-    if depth:
+-      fetch_cmd.append('--depth=' + str(depth))
++    fetch_cmd.append('--depth=1')
+     self._Run(fetch_cmd, options, show_header=options.verbose, retry=True)
+ 
+   def _SetFetchConfig(self, options):

+ 1 - 1
utils/downloads.py

@@ -223,7 +223,7 @@ def _download_if_needed(file_path, url, show_progress, disable_ssl_verification)
     if shutil.which('curl'):
         get_logger().debug('Using curl')
         try:
-            subprocess.run(['curl', '-L', '-o', str(tmp_file_path), '-C', '-', url], check=True)
+            subprocess.run(['curl', '-fL', '-o', str(tmp_file_path), '-C', '-', url], check=True)
         except subprocess.CalledProcessError as exc:
             get_logger().error('curl failed. Re-run the download command to resume downloading.')
             raise exc

+ 65 - 6
utils/prune_binaries.py

@@ -14,16 +14,41 @@ import sys
 import os
 import stat
 
+# List of paths to prune if they exist, excluded from domain_substitution and pruning lists
+# These allow the lists to be compatible between cloned and tarball sources
+CONTINGENT_PATHS = (
+    # Sources
+    'third_party/angle/third_party/VK-GL-CTS/src/',
+    'third_party/llvm/',
+    # Binaries
+    'buildtools/linux64/',
+    'buildtools/reclient/',
+    'third_party/android_rust_toolchain/',
+    'third_party/apache-linux/',
+    'third_party/checkstyle/',
+    'third_party/dawn/third_party/ninja/',
+    'third_party/dawn/tools/golang/',
+    'third_party/depot_tools/external_bin/',
+    'third_party/devtools-frontend/src/third_party/esbuild/',
+    'third_party/libei/',
+    'third_party/ninja/',
+    'third_party/updater/chrome_linux64/',
+    'third_party/updater/chromium_linux64/',
+    'tools/luci-go/',
+    'tools/resultdb/',
+    'tools/skia_goldctl/linux/',
+)
 
-def prune_dir(unpack_root, prune_files):
+
+def prune_files(unpack_root, prune_list):
     """
-    Delete files under unpack_root listed in prune_files. Returns an iterable of unremovable files.
+    Delete files under unpack_root listed in prune_list. Returns an iterable of unremovable files.
 
     unpack_root is a pathlib.Path to the directory to be pruned
-    prune_files is an iterable of files to be removed.
+    prune_list is an iterable of files to be removed.
     """
     unremovable_files = set()
-    for relative_file in prune_files:
+    for relative_file in prune_list:
         file_path = unpack_root / relative_file
         try:
             file_path.unlink()
@@ -37,14 +62,48 @@ def prune_dir(unpack_root, prune_files):
     return unremovable_files
 
 
+def _prune_path(path):
+    """
+    Delete all files and directories in path.
+
+    path is a pathlib.Path to the directory to be pruned
+    """
+    for node in sorted(path.rglob('*'), key=lambda l: len(str(l)), reverse=True):
+        if node.is_file() or node.is_symlink():
+            try:
+                node.unlink()
+            except PermissionError:
+                node.chmod(stat.S_IWRITE)
+                node.unlink()
+        elif node.is_dir() and not any(node.iterdir()):
+            try:
+                node.rmdir()
+            except PermissionError:
+                node.chmod(stat.S_IWRITE)
+                node.rmdir()
+
+
+def prune_dirs(unpack_root):
+    """
+    Delete all files and directories in pycache and CONTINGENT_PATHS directories.
+
+    unpack_root is a pathlib.Path to the source tree
+    """
+    for pycache in unpack_root.rglob('__pycache__'):
+        _prune_path(pycache)
+    for cpath in CONTINGENT_PATHS:
+        _prune_path(unpack_root / cpath)
+
+
 def _callback(args):
     if not args.directory.exists():
         get_logger().error('Specified directory does not exist: %s', args.directory)
         sys.exit(1)
     if not args.pruning_list.exists():
         get_logger().error('Could not find the pruning list: %s', args.pruning_list)
-    prune_files = tuple(filter(len, args.pruning_list.read_text(encoding=ENCODING).splitlines()))
-    unremovable_files = prune_dir(args.directory, prune_files)
+    prune_dirs(args.directory)
+    prune_list = tuple(filter(len, args.pruning_list.read_text(encoding=ENCODING).splitlines()))
+    unremovable_files = prune_files(args.directory, prune_list)
     if unremovable_files:
         get_logger().error('%d files could not be pruned.', len(unremovable_files))
         get_logger().debug('Files could not be pruned:\n%s',

Some files were not shown because too many files changed in this diff