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>
(cherry picked from commit dbf381c199)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
Yann E. MORIN 2021-10-04 22:17:37 +02:00 committed by Peter Korsgaard
parent 3de74dc334
commit b8bc852f63

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))