From ef95d0907601cb676499c00ea14810cb1a127f9d Mon Sep 17 00:00:00 2001 From: Justin Yun Date: Mon, 30 Nov 2020 10:19:43 +0900 Subject: [PATCH] Deprecate VNDK v27 Remove the code for old VNDK snapshot v27. The script also checks the minimum VNDK version it supports. Bug: 159433338 Test: python3 development/vndk/snapshot/update.py \ --local {snapshot_dir} --use-current-branch -vv 27 Change-Id: I00587ab3e6c97df7d43e81aaa8795042f89aaf3e --- vndk/snapshot/check_gpl_license.py | 5 +++-- vndk/snapshot/gen_buildfiles.py | 25 ++++++------------------- vndk/snapshot/update.py | 30 +++++------------------------- vndk/snapshot/utils.py | 15 +++++++++++++++ 4 files changed, 29 insertions(+), 46 deletions(-) diff --git a/vndk/snapshot/check_gpl_license.py b/vndk/snapshot/check_gpl_license.py index 7edbb6af5..4451c9b27 100644 --- a/vndk/snapshot/check_gpl_license.py +++ b/vndk/snapshot/check_gpl_license.py @@ -256,8 +256,9 @@ def get_args(): parser = argparse.ArgumentParser() parser.add_argument( 'vndk_version', - type=int, - help='VNDK snapshot version to check, e.g. "27".') + type=utils.vndk_version_int, + help='VNDK snapshot version to check, e.g. "{}".'.format( + utils.MINIMUM_VNDK_VERSION)) parser.add_argument('-b', '--branch', help='Branch to pull manifest from.') parser.add_argument('--build', help='Build number to pull manifest from.') parser.add_argument( diff --git a/vndk/snapshot/gen_buildfiles.py b/vndk/snapshot/gen_buildfiles.py index 237e1c5b7..73f29b36e 100644 --- a/vndk/snapshot/gen_buildfiles.py +++ b/vndk/snapshot/gen_buildfiles.py @@ -72,7 +72,7 @@ class GenBuildFile(object): Args: install_dir: string, absolute path to the prebuilts/vndk/v{version} directory where the build files will be generated. - vndk_version: int, VNDK snapshot version (e.g., 27, 28) + vndk_version: int, VNDK snapshot version (e.g. 30) """ self._install_dir = install_dir self._vndk_version = vndk_version @@ -191,9 +191,7 @@ class GenBuildFile(object): pass variant_subpath = arch - # For O-MR1 snapshot (v27), 32-bit binder prebuilts are not - # isolated in separate 'binder32' subdirectory. - if is_binder32 and self._vndk_version >= 28: + if is_binder32: variant_subpath = os.path.join(arch, utils.BINDER32) variant_path = os.path.join(self._install_dir, variant_subpath) bpfile_path = os.path.join(variant_path, 'Android.bp') @@ -226,16 +224,6 @@ class GenBuildFile(object): logging.info('Successfully generated {}'.format(bpfile_path)) - if self._vndk_version == 27: - # For O-MR1 snapshot (v27), 32-bit binder prebuilts are not - # isolated in separate 'binder32' subdirectory. - for arch in self._snapshot_archs: - if arch in ('arm', 'x86'): - gen_for_variant(arch, is_binder32=True) - else: - gen_for_variant(arch) - return - for arch in self._snapshot_archs: if os.path.isdir( os.path.join(self._install_dir, arch, utils.BINDER32)): @@ -481,9 +469,7 @@ class GenBuildFile(object): return arch_props src_root = os.path.join(self._install_dir, arch) - # For O-MR1 snapshot (v27), 32-bit binder prebuilts are not - # isolated in separate 'binder32' subdirectory. - if is_binder32 and self._vndk_version >= 28: + if is_binder32: src_root = os.path.join(src_root, utils.BINDER32) src_paths = utils.find(src_root, [prebuilt]) @@ -542,8 +528,9 @@ def get_args(): parser = argparse.ArgumentParser() parser.add_argument( 'vndk_version', - type=int, - help='VNDK snapshot version to install, e.g. "27".') + type=utils.vndk_version_int, + help='VNDK snapshot version to install, e.g. "{}".'.format( + utils.MINIMUM_VNDK_VERSION)) parser.add_argument( '-v', '--verbose', diff --git a/vndk/snapshot/update.py b/vndk/snapshot/update.py index 64cd24c3c..c7d2da27f 100644 --- a/vndk/snapshot/update.py +++ b/vndk/snapshot/update.py @@ -116,40 +116,19 @@ def gather_notice_files(install_dir): def post_processe_files_if_needed(vndk_version): - """For O-MR1, replaces unversioned VNDK directories with versioned ones. - Also, renames ld.config.txt, llndk.libraries.txt and vndksp.libraries.txt + """Renames vndkcore.libraries.txt and vndksp.libraries.txt files to have version suffix. - Unversioned VNDK directories: /system/${LIB}/vndk[-sp] - Versioned VNDK directories: /system/${LIB}/vndk[-sp]-27 - Args: vndk_version: int, version of VNDK snapshot """ def add_version_suffix(file_name): - logging.info('Rename {} to have version suffix'.format(vndk_version)) + logging.info('Rename {} to have version suffix'.format(file_name)) target_files = glob.glob( os.path.join(utils.CONFIG_DIR_PATH_PATTERN, file_name)) for target_file in target_files: name, ext = os.path.splitext(target_file) os.rename(target_file, name + '.' + str(vndk_version) + ext) - if vndk_version == 27: - logging.info('Revising ld.config.txt for O-MR1...') - re_pattern = '(system\/\${LIB}\/vndk(?:-sp)?)([:/]|$)' - VNDK_INSTALL_DIR_RE = re.compile(re_pattern, flags=re.MULTILINE) - ld_config_txt_paths = glob.glob( - os.path.join(utils.CONFIG_DIR_PATH_PATTERN, 'ld.config*')) - for ld_config_file in ld_config_txt_paths: - with open(ld_config_file, 'r') as file: - revised = VNDK_INSTALL_DIR_RE.sub(r'\1-27\2', file.read()) - with open(ld_config_file, 'w') as file: - file.write(revised) - - files_to_add_version_suffix = ('ld.config.txt', - 'llndk.libraries.txt', - 'vndksp.libraries.txt') - for file_to_rename in files_to_add_version_suffix: - add_version_suffix(file_to_rename) files_to_enforce_version_suffix = ('vndkcore.libraries.txt', 'vndkprivate.libraries.txt') @@ -191,8 +170,9 @@ def get_args(): parser = argparse.ArgumentParser() parser.add_argument( 'vndk_version', - type=int, - help='VNDK snapshot version to install, e.g. "27".') + type=utils.vndk_version_int, + help='VNDK snapshot version to install, e.g. "{}".'.format( + utils.MINIMUM_VNDK_VERSION)) parser.add_argument('-b', '--branch', help='Branch to pull build from.') parser.add_argument('--build', help='Build number to pull.') parser.add_argument( diff --git a/vndk/snapshot/utils.py b/vndk/snapshot/utils.py index 1f033f9af..7d3a94a37 100644 --- a/vndk/snapshot/utils.py +++ b/vndk/snapshot/utils.py @@ -16,6 +16,7 @@ # """Utility functions for VNDK snapshot.""" +import argparse import glob import logging import os @@ -35,6 +36,7 @@ MODULE_PATHS_FILE_NAME = 'module_paths.txt' NOTICE_FILES_DIR_NAME = 'NOTICE_FILES' NOTICE_FILES_DIR_PATH = os.path.join(COMMON_DIR_PATH, NOTICE_FILES_DIR_NAME) BINDER32 = 'binder32' +MINIMUM_VNDK_VERSION = 28 def set_logging_config(verbose_level): @@ -57,6 +59,19 @@ def check_output(cmd): return output +def vndk_version_int(vndk_version): + """Used for a type keyword argument in the argparse. + It checks if vndk version is in the supported versions. + """ + version_int = int(vndk_version) + if version_int < MINIMUM_VNDK_VERSION: + raise argparse.ArgumentTypeError( + 'The VNDK version {input} is not supported. ' + 'It must be no smaller than {min_vndk}.'.format( + input=version_int, min_vndk=MINIMUM_VNDK_VERSION)) + return version_int + + def get_android_build_top(): ANDROID_BUILD_TOP = os.getenv('ANDROID_BUILD_TOP') if not ANDROID_BUILD_TOP: