Hey Mikko

On 01/12/2017 06:52 AM, Ylinen, Mikko wrote:


On Wed, Jan 11, 2017 at 9:55 PM, Alejandro Hernandez <alejandro.hernan...@linux.intel.com <mailto:alejandro.hernan...@linux.intel.com>> wrote:

    From: Tom Zanussi <tom.zanu...@linux.intel.com
    <mailto:tom.zanu...@linux.intel.com>>

    Rather than create an actual image, just put the image artifacts in an
    'artifacts' directory that can then be picked up by wic.

I thought about changing it to boot-artifacts-only, but once I did, since it is based on image-live the code looked more confusing in my opinion. Also, we wanted what image-live does in some parts, in this case do_bootimg, but we also avoid other things from image-live.

This is a desired goal now that wic is more widely used. However, any particular reason why the implementation talks about "live" and copies what the live image
do_bootimg gives?

    Signed-off-by: Alejandro Hernandez
    <alejandro.hernan...@linux.intel.com
    <mailto:alejandro.hernan...@linux.intel.com>>
    Signed-off-by: Tom Zanussi <tom.zanu...@linux.intel.com
    <mailto:tom.zanu...@linux.intel.com>>
    ---
     meta/classes/image-live-artifacts.bbclass | 40
    +++++++++++++++++++++++++++++++
     meta/classes/image.bbclass                |  3 +++
     meta/classes/image_types.bbclass          |  2 ++
     3 files changed, 45 insertions(+)
     create mode 100644 meta/classes/image-live-artifacts.bbclass

    diff --git a/meta/classes/image-live-artifacts.bbclass
    b/meta/classes/image-live-artifacts.bbclass
    new file mode 100644
    index 0000000..1501a9b
    --- /dev/null
    +++ b/meta/classes/image-live-artifacts.bbclass
    @@ -0,0 +1,40 @@
    +# Create the artifacts only on an ARTIFACTS_DIR,
    +# which can be later picked up by wic
    +
    +inherit live-vm-common
    +
    +do_bootimg[depends] += "dosfstools-native:do_populate_sysroot \


Again, this was thought based on what image-live does, I'm not saying I disagree with you regarding handling the dependencies, but in this case you're saying you have the same issue with image-live?

perhaps have 'do_image_artifacts' and let users/other classes set additional dependencies.

    +                   mtools-native:do_populate_sysroot \
    +                        cdrtools-native:do_populate_sysroot \
    +                        virtual/kernel:do_deploy \
    +                        ${MLPREFIX}syslinux:do_populate_sysroot \
    +                        syslinux-native:do_populate_sysroot \


For example, if I use systemd-boot I don't need syslinux built at all. The EFI_CLASS/PCBIOS_CLASS could define the additional depends here (like they are currently doing for bootimg/bootdirectdisk).

The defaults should be just kernel and initrd(s) (if defined).

    +                   ${@oe.utils.ifelse(d.getVar('COMPRESSISO',
    False),'zisofs-tools-native:do_populate_sysroot','')} \
    +                        "
    +
    +
    +LABELS_LIVE ?= "boot install"
    +
    +ARTIFACTS_DIR = "${DEPLOY_DIR_IMAGE}/artifacts"
    +
    +populate_bootloader() {
    +       populate_kernel ${ARTIFACTS_DIR}
    +
    +       if [ "${PCBIOS}" = "1" ]; then
    +               syslinux_hddimg_populate ${ARTIFACTS_DIR}
    +       fi
    +       if [ "${EFI}" = "1" ]; then
    +               efi_hddimg_populate ${ARTIFACTS_DIR}
    +       fi
    +}
    +
    +python do_bootimg() {
    +    set_live_vm_vars(d, 'LIVE')
    +    if d.getVar("PCBIOS", True) == "1":
    +        bb.build.exec_func('build_syslinux_cfg', d)
    +    if d.getVar("EFI", True) == "1":
    +        bb.build.exec_func('build_efi_cfg', d)
    +    bb.build.exec_func('populate_bootloader', d)
    +}
    +
    +addtask bootimg before do_image_complete
    diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
    index 04fd5f9..fd249c8 100644
    --- a/meta/classes/image.bbclass
    +++ b/meta/classes/image.bbclass
    @@ -130,6 +130,9 @@ do_rootfs[vardeps] += "${@rootfs_variables(d)}"
     do_build[depends] += "virtual/kernel:do_deploy"

     def build_live(d):
    +    if bb.utils.contains("IMAGE_FSTYPES", "live-artifacts-only",
    "live-artifacts-only", "0", d) == "live-artifacts-only":
    +         return "image-live-artifacts"


Not as far as I know, but so that would work when building something AND the artifacts, but what if you want to build the artifacts only?, you would have to build everything else as well wouldn't you?

I'm trying to think if this change is not more related to actually changing image-live, but I could be misunderstanding things
Is there a need for the image artifacts for other than wic? It could be made so that if wic is in IMAGE_FSTYPES, image-artifacts are built by default. This means the logic of inheriting image-artifacts has a better place, e.g.,
in it's own build_wic() check.

-- Mikko

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to