Merge "Add NetworkStackApi34Shims to allowed deps"
diff --git a/build/mainline_modules_sdks.py b/build/mainline_modules_sdks.py
index 132c426..eebb389 100755
--- a/build/mainline_modules_sdks.py
+++ b/build/mainline_modules_sdks.py
@@ -485,36 +485,6 @@
producer.produce_bundled_dist_for_build_release(build_release, modules)
-def create_legacy_dist_structures(build_release: BuildRelease,
- producer: "SdkDistProducer",
- modules: List["MainlineModule"]):
- """Creates legacy file structures."""
-
- # Only put unbundled modules in the legacy dist and stubs structures.
- modules = [m for m in modules if not m.is_bundled()]
-
- snapshots_dir = producer.produce_unbundled_dist_for_build_release(
- build_release, modules)
-
- # Create the out/dist/mainline-sdks/stubs structure.
- # TODO(b/199759953): Remove stubs once it is no longer used by gantry.
- # Clear and populate the stubs directory.
- dist_dir = producer.dist_dir
- stubs_dir = os.path.join(dist_dir, "stubs")
- shutil.rmtree(stubs_dir, ignore_errors=True)
-
- for module in modules:
- apex = module.apex
- dest_dir = os.path.join(dist_dir, "stubs", apex)
- for sdk in module.sdks:
- # If the sdk's name ends with -sdk then extract sdk library
- # related files from its zip file.
- if sdk.endswith("-sdk"):
- sdk_file = sdk_snapshot_zip_file(snapshots_dir, sdk, "current")
- extract_matching_files_from_zip(sdk_file, dest_dir,
- sdk_library_files_pattern())
-
-
Q = BuildRelease(
name="Q",
# At the moment we do not generate a snapshot for Q.
@@ -546,8 +516,7 @@
# before LATEST.
# The build release for the latest build supported by this build, i.e. the
-# current build. This must be the last BuildRelease defined in this script,
-# before LEGACY_BUILD_RELEASE.
+# current build. This must be the last BuildRelease defined in this script.
LATEST = BuildRelease(
name="latest",
creator=create_latest_sdk_snapshots,
@@ -556,20 +525,6 @@
soong_env={},
)
-# The build release to populate the legacy dist structure that does not specify
-# a particular build release. This MUST come after LATEST so that it includes
-# all the modules for which sdk snapshot source is available.
-LEGACY_BUILD_RELEASE = BuildRelease(
- name="legacy",
- # There is no build release specific sub directory.
- sub_dir="",
- # Create snapshots needed for legacy tools.
- creator=create_legacy_dist_structures,
- # There are no build release specific environment variables to pass to
- # Soong.
- soong_env={},
-)
-
@dataclasses.dataclass(frozen=True)
class SdkLibrary:
@@ -611,11 +566,7 @@
# source was first included. So, a module that was added in build T
# could potentially be used in an S release and so its SDK will need
# to be made available for S builds.
- #
- # Defaults to the latest build, i.e. the build on which this script is run
- # as the snapshot is assumed to be needed in the build containing the sdk
- # source.
- first_release: BuildRelease = LATEST
+ first_release: BuildRelease
# The configuration variable, defaults to ANDROID:module_build_from_source
configVar: ConfigVar = ConfigVar(
@@ -660,6 +611,10 @@
A bundled module is always preloaded into the platform images.
"""
+ # Defaults to the latest build, i.e. the build on which this script is run
+ # as bundled modules are, by definition, only needed in this build.
+ first_release: BuildRelease = LATEST
+
def is_bundled(self):
return True
@@ -740,6 +695,11 @@
]),
),
MainlineModule(
+ apex="com.android.scheduling",
+ sdks=["scheduling-sdk"],
+ first_release=S,
+ ),
+ MainlineModule(
apex="com.android.sdkext",
sdks=["sdkextensions-sdk"],
first_release=R,
@@ -773,7 +733,7 @@
),
]
-# List of Mainline modules that currently are never built unbundled. They should
+# List of Mainline modules that currently are never built unbundled. They must
# not specify first_release, and they don't have com.google.android
# counterparts.
BUNDLED_MAINLINE_MODULES = [
diff --git a/build/mainline_modules_sdks_test.py b/build/mainline_modules_sdks_test.py
index 6d06303..7cad583 100644
--- a/build/mainline_modules_sdks_test.py
+++ b/build/mainline_modules_sdks_test.py
@@ -15,7 +15,6 @@
# limitations under the License.
"""Unit tests for mainline_modules_sdks.py."""
import dataclasses
-import pathlib
import re
import typing
from pathlib import Path
@@ -128,19 +127,12 @@
mm.R,
mm.S,
mm.LATEST,
- mm.LEGACY_BUILD_RELEASE,
]
self.produce_dist(modules, build_releases)
# pylint: disable=line-too-long
self.assertEqual(
[
- # Legacy copy of the snapshots, for use by tools that don't support build specific snapshots.
- "mainline-sdks/current/com.android.art/host-exports/art-module-host-exports-current.zip",
- "mainline-sdks/current/com.android.art/sdk/art-module-sdk-current.zip",
- "mainline-sdks/current/com.android.art/test-exports/art-module-test-exports-current.zip",
- "mainline-sdks/current/com.android.ipsec/sdk/ipsec-module-sdk-current.zip",
- "mainline-sdks/current/com.google.android.wifi/sdk/wifi-module-sdk-current.zip",
# Build specific snapshots.
"mainline-sdks/for-R-build/current/com.android.ipsec/sdk/ipsec-module-sdk-current.zip",
"mainline-sdks/for-R-build/current/com.google.android.wifi/sdk/wifi-module-sdk-current.zip",
@@ -154,19 +146,6 @@
"mainline-sdks/for-latest-build/current/com.android.art/test-exports/art-module-test-exports-current.zip",
"mainline-sdks/for-latest-build/current/com.android.ipsec/sdk/ipsec-module-sdk-current.zip",
"mainline-sdks/for-latest-build/current/com.google.android.wifi/sdk/wifi-module-sdk-current.zip",
- # Legacy stubs directory containing unpacked java_sdk_library artifacts.
- "stubs/com.android.art/sdk_library/public/art-removed.txt",
- "stubs/com.android.art/sdk_library/public/art-stubs.jar",
- "stubs/com.android.art/sdk_library/public/art.srcjar",
- "stubs/com.android.art/sdk_library/public/art.txt",
- "stubs/com.android.ipsec/sdk_library/public/android.net.ipsec.ike-removed.txt",
- "stubs/com.android.ipsec/sdk_library/public/android.net.ipsec.ike-stubs.jar",
- "stubs/com.android.ipsec/sdk_library/public/android.net.ipsec.ike.srcjar",
- "stubs/com.android.ipsec/sdk_library/public/android.net.ipsec.ike.txt",
- "stubs/com.google.android.wifi/sdk_library/public/framework-wifi-removed.txt",
- "stubs/com.google.android.wifi/sdk_library/public/framework-wifi-stubs.jar",
- "stubs/com.google.android.wifi/sdk_library/public/framework-wifi.srcjar",
- "stubs/com.google.android.wifi/sdk_library/public/framework-wifi.txt",
],
sorted(self.list_files_in_dir(self.tmp_dist_dir)))
@@ -246,30 +225,6 @@
],
sorted(self.list_files_in_dir(self.tmp_dist_dir)))
- def test_legacy_release(self):
- modules = [
- MAINLINE_MODULES_BY_APEX["com.android.art"], # An unnbundled module
- MAINLINE_MODULES_BY_APEX["com.android.runtime"], # A bundled module
- MAINLINE_MODULES_BY_APEX["platform-mainline"], # Platform SDK
- ]
- build_releases = [mm.LEGACY_BUILD_RELEASE]
- self.produce_dist(modules, build_releases)
-
- # pylint: disable=line-too-long
- self.assertEqual(
- [
- # Legacy copy of the snapshots.
- "mainline-sdks/current/com.android.art/host-exports/art-module-host-exports-current.zip",
- "mainline-sdks/current/com.android.art/sdk/art-module-sdk-current.zip",
- "mainline-sdks/current/com.android.art/test-exports/art-module-test-exports-current.zip",
- # Legacy stubs directory containing unpacked java_sdk_library artifacts.
- "stubs/com.android.art/sdk_library/public/art-removed.txt",
- "stubs/com.android.art/sdk_library/public/art-stubs.jar",
- "stubs/com.android.art/sdk_library/public/art.srcjar",
- "stubs/com.android.art/sdk_library/public/art.txt",
- ],
- sorted(self.list_files_in_dir(self.tmp_dist_dir)))
-
def create_build_number_file(self):
soong_dir = os.path.join(self.tmp_out_dir, "soong")
os.makedirs(soong_dir, exist_ok=True)
@@ -305,7 +260,6 @@
mm.R,
mm.S,
mm.LATEST,
- mm.LEGACY_BUILD_RELEASE,
]
producer.produce_dist(modules, build_releases)
@@ -328,15 +282,6 @@
],
),
(
- "legacy",
- {},
- ["current"],
- [
- "com.android.art", "com.android.ipsec",
- "com.google.android.wifi"
- ],
- ),
- (
"S",
{
"SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": "S"
diff --git a/generate_ml_bundle.sh b/generate_ml_bundle.sh
deleted file mode 100755
index 06fd6c4..0000000
--- a/generate_ml_bundle.sh
+++ /dev/null
@@ -1,150 +0,0 @@
-#!/bin/bash -ex
-
-# Usage:
-# generate_ml_bundle.sh [args] source_tree dest_tree api_level
-#
-# Args:
-# -p Sets prefer=true in generated java_sdk_library_import rules
-# -a Also update artifects; default behaviour is just to generate build rules.
-
-PREFER=false
-UPDATE_ARTIFACTS=false
-while getopts "pa" opt; do
- case ${opt} in
- p ) PREFER=true;;
- a ) UPDATE_ARTIFACTS=true;;
- \? ) echo "Invalid option."
- exit
- ;;
- esac
-done
-shift $((OPTIND -1))
-
-SOURCE_TREE=$1
-DESTINATION_TREE=$2
-API_LEVEL=$3
-SOURCE_TREE_TYPE=$(test -e ${DESTINATION_TREE}/vendor/unbundled_google/modules && echo GOOGLE || echo PARTNER)
-
-function sdk_lib_bp() {
- modulename=$1
- apexname=$2
- shared_library=$(test \( "$apexname" == com.android.ipsec \) -a \( "$API_LEVEL" -lt 31 \) && echo true || echo false)
- cat << EOF
-java_sdk_library_import {
- name: "${modulename}",
- owner: "google",
- prefer: ${PREFER},
- shared_library: ${shared_library},
- apex_available: [
- "${apexname}",
- "test_${apexname}",
- ],
- public: {
- jars: ["current/public/${modulename}.jar"],
- stub_srcs: ["current/public/${modulename}.srcjar"],
- current_api: "current/public/${modulename}.txt",
- removed_api: "current/public/${modulename}-removed.txt",
- sdk_version: "module_current",
- },
- system: {
- jars: ["current/system/${modulename}.jar"],
- stub_srcs: ["current/system/${modulename}.srcjar"],
- current_api: "current/system/${modulename}.txt",
- removed_api: "current/system/${modulename}-removed.txt",
- sdk_version: "module_current",
- },
- module_lib: {
- jars: ["current/module_lib/${modulename}.jar"],
- stub_srcs: ["current/module_lib/${modulename}.srcjar"],
- current_api: "current/module_lib/${modulename}.txt",
- removed_api: "current/module_lib/${modulename}-removed.txt",
- sdk_version: "module_current",
- },
-}
-EOF
-}
-
-function make_sdk_library() {
- libnames=$1
- destdir=$2
- apexname=$3
- bp=${destdir}/Android.bp
-
- #test -e "$bp"
- mkdir -p "$(dirname "$bp")"
-
- # Remove existing java_sdk_library_import and double newlines
- existing_bp="$(sed -e '/java_sdk_library_import {/,/^}/d' "$bp" | tr -s \\n)"
- echo "$existing_bp" > "$bp"
- for libname in $libnames; do
- echo >> "$bp"
- echo "$(sdk_lib_bp ${libname} ${apexname})" | grep -v test_com.android.tethering >> "$bp"
- done
- #echo >> "$bp"
-
- if [ "${UPDATE_ARTIFACTS}" == "true" ] ; then
- rm -rf "${destdir}/current"
- mkdir -p "${destdir}/current/"{public,system,module_lib}
- for libname in $libnames; do
- cp public/{${libname}.jar,api/${libname}.txt,api/${libname}-removed.txt} "${destdir}/current/public"
- cp system/{${libname}.jar,api/${libname}.txt,api/${libname}-removed.txt} "${destdir}/current/system"
- cp module-lib/{${libname}.jar,api/${libname}.txt,api/${libname}-removed.txt} "${destdir}/current/module_lib"
- done
- fi
-}
-
-function copy_notices() {
- destdir=$1
- apks=$(find $destdir -name '*.apks' | head -1)
- if [[ -z "$apks" ]]; then
- echo "no apks found in $destdir" >&2
- exit
- fi
- filename=$(zipinfo -1 "$apks" *.apex */base-master.apk | head -1)
- # com.android.ipsec is not expected to have a LICENSE, so don't fail if it doesn't.
- unzip -p "$apks" "$filename" | bsdtar -xOf- assets/NOTICE.html.gz > "${destdir}/NOTICE.html.gz" || test "$2" == "com.android.ipsec"
-}
-
-function get_dest_dir() {
- if [[ "$SOURCE_TREE_TYPE" == "PARTNER" ]]; then
- echo "${DESTINATION_TREE}/vendor/partner_modules/${1}"
- elif [[ "$SOURCE_TREE_TYPE" == "GOOGLE" ]]; then
- echo -n "${DESTINATION_TREE}/prebuilts/module_sdk/"
- case "$1" in
- "IKEPrebuilt") echo "IPsec";;
- "MediaFrameworkPrebuilt") echo "Media";;
- "MediaProviderPrebuilt") echo "MediaProvider";;
- "PermissionControllerPrebuilt") echo "Permission";;
- "SdkExtensionsPrebuilt") echo "SdkExtensions";;
- "StatsdPrebuilt") echo "StatsD";;
- "TetheringPrebuilt") echo "Connectivity";;
- "WiFiPrebuilt") echo "Wifi";;
- *) exit 1;;
- esac
- else
- # Unknown tree type
- exit 2
- fi
- #ConscryptPrebuilt ???
-}
-
-function setup_stub_prebuilts() {
- destdir=$(get_dest_dir $2)
-
- make_sdk_library "$1" "$destdir" "$3"
- #copy_notices "$destdir" "$3"
-}
-
-cd "$SOURCE_TREE/prebuilts/sdk/$API_LEVEL"
-setup_stub_prebuilts android.net.ipsec.ike IKEPrebuilt com.android.ipsec
-setup_stub_prebuilts framework-media MediaFrameworkPrebuilt com.android.media
-setup_stub_prebuilts framework-mediaprovider MediaProviderPrebuilt com.android.mediaprovider
-if [[ "$API_LEVEL" -ge 31 ]]; then
- setup_stub_prebuilts 'framework-permission framework-permission-s' PermissionControllerPrebuilt com.android.permission
-else
- setup_stub_prebuilts framework-permission PermissionControllerPrebuilt com.android.permission
-fi
-setup_stub_prebuilts framework-sdkextensions SdkExtensionsPrebuilt com.android.sdkext
-setup_stub_prebuilts framework-statsd StatsdPrebuilt com.android.os.statsd
-setup_stub_prebuilts framework-tethering TetheringPrebuilt com.android.tethering
-setup_stub_prebuilts framework-wifi WiFiPrebuilt com.android.wifi
diff --git a/tools/finalize_sdk.py b/tools/finalize_sdk.py
index 004a793..32b2fb7 100755
--- a/tools/finalize_sdk.py
+++ b/tools/finalize_sdk.py
@@ -22,7 +22,7 @@
# This build target is used when fetching from a non-train build (XXXXXXXX)
BUILD_TARGET_CONTINUOUS = 'mainline_modules-user'
# The glob of sdk artifacts to fetch
-ARTIFACT_PATTERN = 'mainline-sdks/current/{module_name}/sdk/*.zip'
+ARTIFACT_PATTERN = 'mainline-sdks/for-latest-build/current/{module_name}/sdk/*.zip'
COMMIT_TEMPLATE = """Finalize artifacts for extension SDK %d
Import from build id %s.