package/edk2-platforms: fix installation

There are currently three issues with the installation step:

 1. it does not ensure the parent destination directory exists before
    copying into it, so if /usr/share has not been created in the
    dependency chain of edk2-platforms, the installation fails, which
    may very well happen easily as edk2-plaforms has nothing in its
    dependency chain (except the toolchain et al.);

 2. all our dot-stampfiles and .files-list are also copied, as well as
    the Readme, license files, and maintainers file. All of those are
    useless on the target (and the .files-list introduce
    non-reproduciiblity);

 3. of a lesser importance, the construct to install, and specifically
    to reinstall, does not match what we usually do in Buildroot
    (removal of the directory to copy).

We fix all three in one fell swoop:

 1. create the destination directory if needed;
 2. copy just the directories with the actual platform descriptions

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Dick Olsson <hi@senzilla.io>
Cc: Kory Maincent <kory.maincent@bootlin.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
This commit is contained in:
Yann E. MORIN 2021-10-04 22:17:37 +02:00 committed by Arnout Vandecappelle (Essensium/Mind)
parent 883f9fc754
commit dbf381c199

View File

@ -15,8 +15,8 @@ EDK2_PLATFORMS_INSTALL_STAGING = YES
# There is nothing to build for edk2-platforms. All we need to do is to copy
# all description files to staging, for other packages to build with.
define EDK2_PLATFORMS_INSTALL_STAGING_CMDS
rm -rf $(STAGING_DIR)/usr/share/edk2-platforms
cp -rf $(@D) $(STAGING_DIR)/usr/share/edk2-platforms
mkdir -p $(STAGING_DIR)/usr/share/edk2-platforms
cp -rf $(@D)/*/ $(STAGING_DIR)/usr/share/edk2-platforms/
endef
$(eval $(generic-package))