Make using python 2 an error

Except if BUILD_BROKEN_USES_SOONG_PYTHON2_MODULES is set, and except for
some core py2 modules that can't be removed until python2 is fully gone.

Bug: 203436762
Test: m nothing
Change-Id: I62ccb6f5687eab1e79c372ffc234a90ca5b566ac
This commit is contained in:
Cole Faust
2022-09-09 19:39:25 -07:00
parent ae3e4cc2fd
commit edc4c505f9
3 changed files with 11 additions and 0 deletions

View File

@@ -1759,6 +1759,10 @@ func (c *deviceConfig) BuildBrokenTrebleSyspropNeverallow() bool {
return c.config.productVariables.BuildBrokenTrebleSyspropNeverallow
}
func (c *deviceConfig) BuildBrokenUsesSoongPython2Modules() bool {
return c.config.productVariables.BuildBrokenUsesSoongPython2Modules
}
func (c *deviceConfig) BuildDebugfsRestrictionsEnabled() bool {
return c.config.productVariables.BuildDebugfsRestrictionsEnabled
}

View File

@@ -442,6 +442,7 @@ type productVariables struct {
BuildBrokenDepfile *bool `json:",omitempty"`
BuildBrokenEnforceSyspropOwner bool `json:",omitempty"`
BuildBrokenTrebleSyspropNeverallow bool `json:",omitempty"`
BuildBrokenUsesSoongPython2Modules bool `json:",omitempty"`
BuildBrokenVendorPropertyNamespace bool `json:",omitempty"`
BuildBrokenInputDirModules []string `json:",omitempty"`

View File

@@ -263,6 +263,12 @@ func versionSplitMutator() func(android.BottomUpMutatorContext) {
versionProps = append(versionProps, props.Version.Py3)
}
if proptools.BoolDefault(props.Version.Py2.Enabled, false) {
if !mctx.DeviceConfig().BuildBrokenUsesSoongPython2Modules() &&
mctx.ModuleName() != "par_test" &&
mctx.ModuleName() != "py2-cmd" &&
mctx.ModuleName() != "py2-stdlib" {
mctx.PropertyErrorf("version.py2.enabled", "Python 2 is no longer supported, please convert to python 3. This error can be temporarily overridden by setting BUILD_BROKEN_USES_SOONG_PYTHON2_MODULES := true in the product configuration")
}
versionNames = append(versionNames, pyVersion2)
versionProps = append(versionProps, props.Version.Py2)
}