#### # Copyright 2021 Intel Corporation # # Add a class to support serving license info through bmcweb. # # bmcweb serves static content from the /usr/share/www folder, so this class # copies the license info from /usr/share/common-licenses to # /usr/share/www/common-licenses so it will be statically served by bmcweb. # # Requires 'COPY_LIC_DIRS' to be enabled to create /usr/share/common-licenses. # # Class can be inherited in a project bbclass to copy the license info. # # Example: # inherit license_static #### STATIC_LICENSE_DIR = "${IMAGE_ROOTFS}/usr/share/www/common-licenses" def add_index_html_header(f): f.write("") f.write("") f.write("") f.write("

") def add_index_html_footer(f): f.write("

") f.write("") f.write("") def create_index_files(d): import os static_license_dir = d.getVar('STATIC_LICENSE_DIR') for dirpath, dirnames, filenames in os.walk(static_license_dir): with open(os.path.join(dirpath, "index.html"), "w") as f: add_index_html_header(f) full_list = filenames+dirnames full_list.sort() f.write("
".join(full_list)) add_index_html_footer(f) def copy_license_files(d): import shutil rootfs_license_dir = d.getVar('ROOTFS_LICENSE_DIR') static_license_dir = d.getVar('STATIC_LICENSE_DIR') shutil.copytree(rootfs_license_dir, static_license_dir) python do_populate_static_lic() { copy_lic_dirs = d.getVar('COPY_LIC_DIRS') if copy_lic_dirs == "1": copy_license_files(d) create_index_files(d) else: bb.warn("Static licenses not copied because 'COPY_LIC_DIRS' is disabled.") } ROOTFS_POSTPROCESS_COMMAND:append = "do_populate_static_lic; "