• Patrick Ohly's avatar
    uefi-comboapp.bbclass: support multiple UEFI combo apps + fixes · 21086869
    Patrick Ohly authored
    
    
    The original code in intel-iot-refkit allows to create more than one
    UEFI combo app and uses that to create one for removable media and one
    for fixed media (after installation), with different boot=PARTUUID=xxx
    parameters. This way, an installed image never ended up booting from
    the install media.
    
    uefi-comboapp.bbclass now supports the same feature, with
    create_uefiapp() as the API function that can be used to create
    additional UEFI apps and create_uefiapps as the method where the call
    can be added.
    
    In addition, several shortcomings are getting addressed:
    - A UEFI combo app must be stored under a name that is specific
      to the image for which it gets created, otherwise different
      image recipes end up overwriting (or using) files from other
      images.
    - Signing must be done after creating the apps and before deploying
      them, otherwise the unsigned apps get copied to the image when
      using do_uefiapp_deploy.
    - The common code for deployment is now in uefiapp_deploy_at.
    - $dest is used instead of ${DEST} because the latter might get
      expanded by bitbake.
    - Because do_uefiapp always had to run anew to produce the
      clean, unsigned input for do_uefiapp_sign, having two different
      tasks just added unnecessary complexity. Now all code is in
      do_uefiapp.
    - Old files matching the output pattern get removed explicitly,
      because they might not get overwritten when the optional
      app suffix changes between builds, or when the task fails
      in the middle.
    
    Signed-off-by: default avatarPatrick Ohly <patrick.ohly@intel.com>
    Signed-off-by: default avatarSaul Wold <sgw@linux.intel.com>
    21086869