xref: /aosp_15_r20/external/cronet/android/tools/license/constants.py (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker# Copyright (C) 2024 The Android Open Source Project
2*6777b538SAndroid Build Coastguard Worker#
3*6777b538SAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License");
4*6777b538SAndroid Build Coastguard Worker# you may not use this file except in compliance with the License.
5*6777b538SAndroid Build Coastguard Worker# You may obtain a copy of the License at
6*6777b538SAndroid Build Coastguard Worker#
7*6777b538SAndroid Build Coastguard Worker#      http://www.apache.org/licenses/LICENSE-2.0
8*6777b538SAndroid Build Coastguard Worker#
9*6777b538SAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
10*6777b538SAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS,
11*6777b538SAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*6777b538SAndroid Build Coastguard Worker# See the License for the specific language governing permissions and
13*6777b538SAndroid Build Coastguard Worker# limitations under the License.
14*6777b538SAndroid Build Coastguard Worker
15*6777b538SAndroid Build Coastguard Workerfrom typing import Callable, Dict, List
16*6777b538SAndroid Build Coastguard Workerfrom mapper import Mapper
17*6777b538SAndroid Build Coastguard Worker
18*6777b538SAndroid Build Coastguard Worker
19*6777b538SAndroid Build Coastguard Workerdef create_license_post_processing(*args: Mapper) -> Callable:
20*6777b538SAndroid Build Coastguard Worker  def __update_metadata(metadata: Dict[str, str | List[str]]) -> Dict[
21*6777b538SAndroid Build Coastguard Worker    str, str | List[str]]:
22*6777b538SAndroid Build Coastguard Worker    for mapper in args:
23*6777b538SAndroid Build Coastguard Worker      mapper.write(metadata)
24*6777b538SAndroid Build Coastguard Worker    return metadata
25*6777b538SAndroid Build Coastguard Worker
26*6777b538SAndroid Build Coastguard Worker  return __update_metadata
27*6777b538SAndroid Build Coastguard Worker
28*6777b538SAndroid Build Coastguard Worker
29*6777b538SAndroid Build Coastguard Worker# This is relative to the repo_directory passed in |update_license|
30*6777b538SAndroid Build Coastguard Worker# post-processing is necessary for the cases where the license is not in the
31*6777b538SAndroid Build Coastguard Worker# standard format, this can include two or more license (eg: "Apache 2 and MPL")
32*6777b538SAndroid Build Coastguard Worker# or a single license that is not easily identifiable (eg: "BSDish")
33*6777b538SAndroid Build Coastguard Worker#
34*6777b538SAndroid Build Coastguard Worker# The current structure is Mapper(dictionary_key, expected_value, value_to_write)
35*6777b538SAndroid Build Coastguard WorkerPOST_PROCESS_OPERATION = {
36*6777b538SAndroid Build Coastguard Worker    "base/third_party/nspr/README.chromium": create_license_post_processing(
37*6777b538SAndroid Build Coastguard Worker        Mapper("License", ['MPL 1.1/GPL 2.0/LGPL 2.1'], ["MPL 1.1"])),
38*6777b538SAndroid Build Coastguard Worker    "url/third_party/mozilla/README.chromium": create_license_post_processing(
39*6777b538SAndroid Build Coastguard Worker        Mapper("License", ['BSD and MPL 1.1/GPL 2.0/LGPL 2.1'],
40*6777b538SAndroid Build Coastguard Worker               ["BSD"])),
41*6777b538SAndroid Build Coastguard Worker    "third_party/libc++abi/README.chromium": create_license_post_processing(
42*6777b538SAndroid Build Coastguard Worker        Mapper("License",
43*6777b538SAndroid Build Coastguard Worker               ['MIT',
44*6777b538SAndroid Build Coastguard Worker                'University of Illinois/NCSA Open Source License'],
45*6777b538SAndroid Build Coastguard Worker               ["MIT"])),
46*6777b538SAndroid Build Coastguard Worker    "third_party/libc++/README.chromium": create_license_post_processing(
47*6777b538SAndroid Build Coastguard Worker        Mapper("License",
48*6777b538SAndroid Build Coastguard Worker               ['MIT',
49*6777b538SAndroid Build Coastguard Worker                'University of Illinois/NCSA Open Source License'],
50*6777b538SAndroid Build Coastguard Worker               ["MIT"])),
51*6777b538SAndroid Build Coastguard Worker    "third_party/boringssl/README.chromium": create_license_post_processing(
52*6777b538SAndroid Build Coastguard Worker        Mapper("License", ['BSDish'], ["BSD"]),
53*6777b538SAndroid Build Coastguard Worker        # TODO(b/360316861): Fix upstream by setting an explicit version to boringssl.
54*6777b538SAndroid Build Coastguard Worker        Mapper("Version", "git", None)),
55*6777b538SAndroid Build Coastguard Worker    "net/third_party/quiche/METADATA": create_license_post_processing(
56*6777b538SAndroid Build Coastguard Worker        # TODO(b/360316861): Fix upstream by setting an explicit version to QUICHE.
57*6777b538SAndroid Build Coastguard Worker        Mapper("Version", "git", None)),
58*6777b538SAndroid Build Coastguard Worker    # TODO(b/360316861): Fix this upstream in Chromium.
59*6777b538SAndroid Build Coastguard Worker    "third_party/quic_trace/README.chromium": create_license_post_processing(
60*6777b538SAndroid Build Coastguard Worker        Mapper("Version", "git", "caa0a6eaba816ecb737f9a70782b7c80b8ac8dbc")),
61*6777b538SAndroid Build Coastguard Worker    "third_party/metrics_proto/README.chromium": create_license_post_processing(
62*6777b538SAndroid Build Coastguard Worker        Mapper("URL", "This is the canonical public repository", "Piper")),
63*6777b538SAndroid Build Coastguard Worker    "third_party/boringssl/src/pki/testdata/nist-pkits/README.chromium": create_license_post_processing(
64*6777b538SAndroid Build Coastguard Worker        Mapper("License", [
65*6777b538SAndroid Build Coastguard Worker            'Public Domain: United States Government Work under 17 U.S.C. 105'],
66*6777b538SAndroid Build Coastguard Worker               ["unencumbered"]),
67*6777b538SAndroid Build Coastguard Worker        Mapper("License File", "", "N/A")),
68*6777b538SAndroid Build Coastguard Worker    "third_party/rust/unicode_ident/v1/README.chromium": create_license_post_processing(
69*6777b538SAndroid Build Coastguard Worker        Mapper("License", [
70*6777b538SAndroid Build Coastguard Worker            'Apache 2.0 AND Unicode License Agreement - Data Files and Software (2016)'],
71*6777b538SAndroid Build Coastguard Worker               ["Apache 2.0", "Unicode"])),
72*6777b538SAndroid Build Coastguard Worker}
73*6777b538SAndroid Build Coastguard Worker
74*6777b538SAndroid Build Coastguard Worker# This is relative to the repo_directory passed in |update_license|
75*6777b538SAndroid Build Coastguard WorkerIGNORED_README = {
76*6777b538SAndroid Build Coastguard Worker    # Not a third-party.
77*6777b538SAndroid Build Coastguard Worker    "testing/android/native_test/README.chromium",
78*6777b538SAndroid Build Coastguard Worker    # Not a third-party.
79*6777b538SAndroid Build Coastguard Worker    "build/internal/README.chromium",
80*6777b538SAndroid Build Coastguard Worker    # b/369075726, those crates are missing LICENSE files upstream, once fixed
81*6777b538SAndroid Build Coastguard Worker    # and imported, we will create a README for those.
82*6777b538SAndroid Build Coastguard Worker    "third_party/rust/rstest/v0_17/README.chromium",
83*6777b538SAndroid Build Coastguard Worker    "third_party/rust/rustc_demangle_capi/v0_1/README.chromium",
84*6777b538SAndroid Build Coastguard Worker    "third_party/rust/rstest_macros/v0_17/README.chromium",
85*6777b538SAndroid Build Coastguard Worker    "third_party/rust/codespan_reporting/v0_11/README.chromium",
86*6777b538SAndroid Build Coastguard Worker    "third_party/rust/rstest_reuse/v0_5/README.chromium",
87*6777b538SAndroid Build Coastguard Worker}
88