Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Ed Bartosh <ed.bartosh@linux.intel.com>,
	openembedded-core@lists.openembedded.org
Subject: Re: [PATCH v4] image_types.bbclass: get rid of IMAGE_DEPENDS
Date: Fri, 16 Jun 2017 15:41:14 +0100	[thread overview]
Message-ID: <1497624074.24449.14.camel@linuxfoundation.org> (raw)
In-Reply-To: <1497622532-8768-1-git-send-email-ed.bartosh@linux.intel.com>

On Fri, 2017-06-16 at 17:15 +0300, Ed Bartosh wrote:
> The IMAGE_DEPENDS_<type> variables can be set to add dependencies for
> individual image types.  Those dependencies are added to the
> do_rootfs
> task, while they really should be added to the specific image type
> tasks.
> 
> These variables are not documented anywhere.
> 
> Replaced usage of IMAGE_DEPENDS_<type> with explicitly added
> dependencies to do_image_<type> tasks.
> 
> [YOCTO #11302]
> 
> Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
> ---
>  meta/classes/image_types.bbclass | 40 +++++++++++++++++++++---------
> ----------
>  1 file changed, 21 insertions(+), 19 deletions(-)
> 
> diff --git a/meta/classes/image_types.bbclass
> b/meta/classes/image_types.bbclass
> index 7749b00..ae6ac7a 100644
> --- a/meta/classes/image_types.bbclass
> +++ b/meta/classes/image_types.bbclass
> @@ -29,11 +29,8 @@ def imagetypes_getdepends(d):
>      deps = set()
>      for typestring in fstypes:
>          basetype, resttypes = split_types(typestring)
> -        adddep(d.getVar('IMAGE_DEPENDS_%s' % basetype) , deps)
> -
>          for typedepends in (d.getVar("IMAGE_TYPEDEP_%s" % basetype)
> or "").split():
>              base, rest = split_types(typedepends)
> -            adddep(d.getVar('IMAGE_DEPENDS_%s' % base) , deps)
>              resttypes += rest
>  
>          for ctype in resttypes:
> @@ -101,7 +98,7 @@ IMAGE_CMD_squashfs-lzo = "mksquashfs
> ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAM
>  # you need special parameters (like --xattrs) which are only
> supported
>  # by GNU tar upstream >= 1.27, then override that default:
>  # IMAGE_CMD_TAR = "tar --xattrs --xattrs-include=*"
> -# IMAGE_DEPENDS_tar_append = " tar-replacement-native"
> +# do_image_tar[depends] += "tar-replacement-
> native:do_populate_sysroot"
>  # EXTRANATIVEPATH += "tar-native"
>  #
>  # The GNU documentation does not specify whether --xattrs-include is
> necessary.
> @@ -209,21 +206,26 @@ EXTRA_IMAGECMD_ext4 ?= "-i 4096"
>  EXTRA_IMAGECMD_btrfs ?= "-n 4096"
>  EXTRA_IMAGECMD_elf ?= ""
>  
> -IMAGE_DEPENDS = ""
> -IMAGE_DEPENDS_jffs2 = "mtd-utils-native"
> -IMAGE_DEPENDS_cramfs = "util-linux-native"
> -IMAGE_DEPENDS_ext2 = "e2fsprogs-native"
> -IMAGE_DEPENDS_ext3 = "e2fsprogs-native"
> -IMAGE_DEPENDS_ext4 = "e2fsprogs-native"
> -IMAGE_DEPENDS_btrfs = "btrfs-tools-native"
> -IMAGE_DEPENDS_squashfs = "squashfs-tools-native"
> -IMAGE_DEPENDS_squashfs-xz = "squashfs-tools-native"
> -IMAGE_DEPENDS_squashfs-lzo = "squashfs-tools-native"
> -IMAGE_DEPENDS_elf = "virtual/kernel mkelfimage-native"
> -IMAGE_DEPENDS_ubi = "mtd-utils-native"
> -IMAGE_DEPENDS_ubifs = "mtd-utils-native"
> -IMAGE_DEPENDS_multiubi = "mtd-utils-native"
> -IMAGE_DEPENDS_wic = "parted-native"
> +python () {
> +    vars = [key for key in d if key.startswith('IMAGE_DEPENDS')]
> +    if vars:
> +        bb.fatal('Deprecated variable(s) found: "%s". '
> +                 'Use do_image_<type>[depends] += "<recipe>:<task>"
> instead' % ', '.join(vars))
> +}

I appreciate this looks like a good idea but iterating the data store
is about the worst thing we can do for parsing performance. Please just
put the error message into the other function. I suspect if you time
parsing before and after this change you could see this on a profile
graph although since it only affects image recipes, it might be harder
to spot within the noise, not sure.

Cheers,

Richard


  reply	other threads:[~2017-06-16 14:45 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-15 11:59 [PATCH] image_types.bbclass: get rid of IMAGE_DEPENDS Ed Bartosh
2017-06-15 13:25 ` Burton, Ross
2017-06-15 13:27   ` Richard Purdie
2017-06-15 16:19     ` [PATCH v2] " Ed Bartosh
2017-06-15 16:51       ` Leonardo Sandoval
2017-06-15 16:47         ` Burton, Ross
2017-06-15 17:07           ` Leonardo Sandoval
2017-06-16  8:40         ` [PATCH v3] " Ed Bartosh
2017-06-16  8:52           ` Richard Purdie
2017-06-16 14:15             ` [PATCH v4] " Ed Bartosh
2017-06-16 14:41               ` Richard Purdie [this message]
2017-06-16 15:21                 ` [PATCH v5] " Ed Bartosh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1497624074.24449.14.camel@linuxfoundation.org \
    --to=richard.purdie@linuxfoundation.org \
    --cc=ed.bartosh@linux.intel.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox