From aad39b32817a5f5ccfc75676be9df5c618fe1618 Mon Sep 17 00:00:00 2001 From: Chris Gross Date: Thu, 13 Jun 2019 09:43:26 -0700 Subject: [PATCH] Include extra licenses in vendor image NOTICE file If building with a vendor image, ensure that the licenses from extra partitions are included in the vendor NOTICE file (possibly in addition to having them in the system NOTICE file) since they could come from disperate source trees. This change does not affect existing NOTICE files outside of the system partition. (e.g. product and system_ext). Bug: 134679603 Test: Built a vendor image enabled target and ensured the notices were in the proper file Change-Id: Ib17c7d7f84805734de09e686a4835b9b680b4192 --- core/Makefile | 38 ++++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/core/Makefile b/core/Makefile index e9cd51f0e..02f170166 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1172,7 +1172,8 @@ endif # TARGET_NO_KERNEL .PHONY: notice_files # Create the rule to combine the files into text and html/xml forms -# $(1) - xml_excluded_vendor_product|xml_vendor|xml_product|xml_odm|html +# $(1) - xml_excluded_system_product_odm|xml_excluded_vendor_product_odm +# xml_product|xml_odm|xml_system_ext|xml_system|html # $(2) - Plain text output file # $(3) - HTML/XML output file # $(4) - File title @@ -1197,12 +1198,13 @@ $(2) $(3): PRIVATE_DIR := $(5) $(2) : $(3) $(3) : $(6) $(BUILD_SYSTEM)/Makefile build/make/tools/generate-notice-files.py build/make/tools/generate-notice-files.py --text-output $(2) \ - $(if $(filter $(1),xml_excluded_extra_partitions),-e vendor -e product -e system_ext -e odm --xml-output, \ - $(if $(filter $(1),xml_vendor),-i vendor --xml-output, \ + $(if $(filter $(1),xml_excluded_vendor_product_odm),-e vendor -e product -e system_ext -e odm --xml-output, \ + $(if $(filter $(1),xml_excluded_system_product_odm),-e system -e product -e system_ext -e odm --xml-output, \ $(if $(filter $(1),xml_product),-i product --xml-output, \ $(if $(filter $(1),xml_system_ext),-i system_ext --xml-output, \ - $(if $(filter $(1),xml_odm),-i odm --xml-output, \ - --html-output))))) $(3) \ + $(if $(filter $(1),xml_system),-i system --xml-output, \ + $(if $(filter $(1),xml_odm),-i odm --xml-output, \ + --html-output)))))) $(3) \ -t $$(PRIVATE_MESSAGE) -s $$(PRIVATE_DIR)/src notice_files: $(2) $(3) endef @@ -1268,26 +1270,38 @@ license_modules := $(ALL_DEFAULT_INSTALLED_MODULES) $(kernel_notice_file) $(pdk_ license_modules := $(filter-out $(TARGET_OUT_FAKE)/%,$(license_modules)) # testcases are not relevant to the system image. license_modules := $(filter-out $(TARGET_OUT_TESTCASES)/%,$(license_modules)) +license_modules_system := $(filter $(TARGET_OUT)/%,$(license_modules)) license_modules_vendor := $(filter $(TARGET_OUT_VENDOR)/%,$(license_modules)) license_modules_product := $(filter $(TARGET_OUT_PRODUCT)/%,$(license_modules)) license_modules_system_ext := $(filter $(TARGET_OUT_SYSTEM_EXT)/%,$(license_modules)) license_modules_odm := $(filter $(TARGET_OUT_ODM)/%,$(license_modules)) -license_modules_agg := $(license_modules_vendor) \ +license_modules_agg := $(license_modules_system) \ + $(license_modules_vendor) \ $(license_modules_product) \ $(license_modules_system_ext) \ $(license_modules_odm) -license_modules_rest := $(filter-out $(license_modules_agg),$(license_modules)) +license_modules_vendor += $(filter-out $(license_modules_agg),$(license_modules)) +system_xml_directories := xml_system +system_notice_file_message := "Notices for files contained in the system filesystem image in this directory:" -$(eval $(call combine-notice-files, xml_excluded_extra_partitions, \ +# If we are building in a configuration that includes a prebuilt vendor.img, we can't +# update its notice file, so include those notices in the system partition instead +ifdef BOARD_PREBUILT_VENDORIMAGE +license_modules_system += $(filter-out $(license_modules_agg),$(license_modules)) +system_xml_directories := xml_excluded_vendor_product_odm +system_notice_file_message := "Notices for files contained in all filesystem images except vendor/system_ext/product/odm in this directory:" +endif + +$(eval $(call combine-notice-files, $(system_xml_directories), \ $(target_notice_file_txt), \ $(target_notice_file_xml), \ - "Notices for files contained in the filesystem images in this directory:", \ + $(system_notice_file_message), \ $(TARGET_OUT_NOTICE_FILES), \ - $(license_modules_rest))) -$(eval $(call combine-notice-files, xml_vendor, \ + $(license_modules_system))) +$(eval $(call combine-notice-files, xml_excluded_system_product_odm, \ $(target_vendor_notice_file_txt), \ $(target_vendor_notice_file_xml), \ - "Notices for files contained in the vendor filesystem image in this directory:", \ + "Notices for files contained in all filesystem images except system/system_ext/product/odm in this directory:", \ $(TARGET_OUT_NOTICE_FILES), \ $(license_modules_vendor))) $(eval $(call combine-notice-files, xml_product, \