* [PATCH] image_types.bbclass: get rid of IMAGE_DEPENDS
@ 2017-06-15 11:59 Ed Bartosh
2017-06-15 13:25 ` Burton, Ross
0 siblings, 1 reply; 12+ messages in thread
From: Ed Bartosh @ 2017-06-15 11:59 UTC (permalink / raw)
To: openembedded-core
The IMAGE_DEPENDS variable can be overriden 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.
Also, the IMAGE_DEPENDS variable is not documented anywhere.
Replaced usage of IMAGE_DEPENDS with explicitly added
dependencies to do_image_<image type> tasks.
[YOCTO #11302]
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
---
meta/classes/image_types.bbclass | 36 ++++++++++++++----------------------
1 file changed, 14 insertions(+), 22 deletions(-)
diff --git a/meta/classes/image_types.bbclass b/meta/classes/image_types.bbclass
index 7749b00..ea55c05 100644
--- a/meta/classes/image_types.bbclass
+++ b/meta/classes/image_types.bbclass
@@ -29,12 +29,6 @@ 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:
adddep(d.getVar("CONVERSION_DEPENDS_%s" % ctype), deps)
@@ -101,7 +95,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 +203,19 @@ 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"
+do_image_jffs2[depends] += "mtd-utils-native:do_populate_sysroot"
+do_image_cramfs[depends] += "util-linux-native:do_populate_sysroot"
+do_image_ext2[depends] += "e2fsprogs-native:do_populate_sysroot"
+do_image_ext3[depends] += "e2fsprogs-native:do_populate_sysroot"
+do_image_ext4[depends] += "e2fsprogs-native:do_populate_sysroot"
+do_image_btrfs[depends] += "btrfs-tools-native:do_populate_sysroot"
+do_image_squashfs[depends] += "squashfs-tools-native:do_populate_sysroot"
+do_image_squashfs-xz[depends] += "squashfs-tools-native:do_populate_sysroot"
+do_image_squashfs-lzo[depends] += "squashfs-tools-native:do_populate_sysroot"
+do_image_elf[depends] += "virtual/kernel-native:do_populate_sysroot mkelfimage-native:do_populate_sysroot"
+do_image_ubi[depends] += "mtd-utils-native:do_populate_sysroot"
+do_image_ubifs[depends] += "mtd-utils-native:do_populate_sysroot"
+do_image_multiubi[depends] += "mtd-utils-native:do_populate_sysroot"
# This variable is available to request which values are suitable for IMAGE_FSTYPES
IMAGE_TYPES = " \
--
2.1.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH] image_types.bbclass: get rid of IMAGE_DEPENDS
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
0 siblings, 1 reply; 12+ messages in thread
From: Burton, Ross @ 2017-06-15 13:25 UTC (permalink / raw)
To: Ed Bartosh; +Cc: OE-core
[-- Attachment #1: Type: text/plain, Size: 492 bytes --]
On 15 June 2017 at 12:59, Ed Bartosh <ed.bartosh@linux.intel.com> wrote:
> The IMAGE_DEPENDS variable can be overriden 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.
>
Other layers such as meta-raspberrypi use IMAGE_DEPENDS, should we move
oe-core to use [depends] but handle IMAGE_DEPENDS (with a deprecation
warning) for some of the 2.4 cycle?
Ross
[-- Attachment #2: Type: text/html, Size: 904 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] image_types.bbclass: get rid of IMAGE_DEPENDS
2017-06-15 13:25 ` Burton, Ross
@ 2017-06-15 13:27 ` Richard Purdie
2017-06-15 16:19 ` [PATCH v2] " Ed Bartosh
0 siblings, 1 reply; 12+ messages in thread
From: Richard Purdie @ 2017-06-15 13:27 UTC (permalink / raw)
To: Burton, Ross, Ed Bartosh; +Cc: OE-core
On Thu, 2017-06-15 at 14:25 +0100, Burton, Ross wrote:
>
> On 15 June 2017 at 12:59, Ed Bartosh <ed.bartosh@linux.intel.com>
> wrote:
> > The IMAGE_DEPENDS variable can be overriden 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.
> >
> Other layers such as meta-raspberrypi use IMAGE_DEPENDS, should we
> move oe-core to use [depends] but handle IMAGE_DEPENDS (with a
> deprecation warning) for some of the 2.4 cycle?
Yes, a fatal error if IMAGE_DEPENDS is set and telling the user what to
change it to would be best IMO.
Cheers,
Richard
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2] image_types.bbclass: get rid of IMAGE_DEPENDS
2017-06-15 13:27 ` Richard Purdie
@ 2017-06-15 16:19 ` Ed Bartosh
2017-06-15 16:51 ` Leonardo Sandoval
0 siblings, 1 reply; 12+ messages in thread
From: Ed Bartosh @ 2017-06-15 16:19 UTC (permalink / raw)
To: openembedded-core
The IMAGE_DEPENDS variable can be overriden 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.
Also, the IMAGE_DEPENDS variable is not documented anywhere.
Replaced usage of IMAGE_DEPENDS with explicitly added
dependencies to do_image_<image type> tasks.
[YOCTO #11302]
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
---
meta/classes/image_types.bbclass | 41 +++++++++++++++++++---------------------
1 file changed, 19 insertions(+), 22 deletions(-)
diff --git a/meta/classes/image_types.bbclass b/meta/classes/image_types.bbclass
index 7749b00..cca2a07 100644
--- a/meta/classes/image_types.bbclass
+++ b/meta/classes/image_types.bbclass
@@ -29,12 +29,6 @@ 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:
adddep(d.getVar("CONVERSION_DEPENDS_%s" % ctype), deps)
@@ -101,7 +95,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 +203,24 @@ 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 () {
+ if d.getVar('IMAGE_DEPENDS') != None:
+ bb.fatal('IMAGE_DEPENDS is deprecated. Use do_image_<type>[depends] += "<recipe>:<task>>" instead')
+}
+
+do_image_jffs2[depends] += "mtd-utils-native:do_populate_sysroot"
+do_image_cramfs[depends] += "util-linux-native:do_populate_sysroot"
+do_image_ext2[depends] += "e2fsprogs-native:do_populate_sysroot"
+do_image_ext3[depends] += "e2fsprogs-native:do_populate_sysroot"
+do_image_ext4[depends] += "e2fsprogs-native:do_populate_sysroot"
+do_image_btrfs[depends] += "btrfs-tools-native:do_populate_sysroot"
+do_image_squashfs[depends] += "squashfs-tools-native:do_populate_sysroot"
+do_image_squashfs-xz[depends] += "squashfs-tools-native:do_populate_sysroot"
+do_image_squashfs-lzo[depends] += "squashfs-tools-native:do_populate_sysroot"
+do_image_elf[depends] += "virtual/kernel-native:do_populate_sysroot mkelfimage-native:do_populate_sysroot"
+do_image_ubi[depends] += "mtd-utils-native:do_populate_sysroot"
+do_image_ubifs[depends] += "mtd-utils-native:do_populate_sysroot"
+do_image_multiubi[depends] += "mtd-utils-native:do_populate_sysroot"
# This variable is available to request which values are suitable for IMAGE_FSTYPES
IMAGE_TYPES = " \
--
2.1.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH v2] image_types.bbclass: get rid of IMAGE_DEPENDS
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
1 sibling, 1 reply; 12+ messages in thread
From: Burton, Ross @ 2017-06-15 16:47 UTC (permalink / raw)
To: Leonardo Sandoval; +Cc: OE-core
[-- Attachment #1: Type: text/plain, Size: 208 bytes --]
On 15 June 2017 at 17:51, Leonardo Sandoval <
leonardo.sandoval.gonzalez@linux.intel.com> wrote:
> also, should it be a warning instead?
>
Not if the logic to use the value has been deleted!
Ross
[-- Attachment #2: Type: text/html, Size: 623 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2] image_types.bbclass: get rid of IMAGE_DEPENDS
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-16 8:40 ` [PATCH v3] " Ed Bartosh
0 siblings, 2 replies; 12+ messages in thread
From: Leonardo Sandoval @ 2017-06-15 16:51 UTC (permalink / raw)
To: Ed Bartosh; +Cc: openembedded-core
On Thu, 2017-06-15 at 19:19 +0300, Ed Bartosh wrote:
> + if d.getVar('IMAGE_DEPENDS') != None:
> + bb.fatal('IMAGE_DEPENDS is deprecated. Use do_image_<type>[depends] += "<recipe>:<task>>" instead')
s/>>/>/
also, should it be a warning instead?
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2] image_types.bbclass: get rid of IMAGE_DEPENDS
2017-06-15 16:47 ` Burton, Ross
@ 2017-06-15 17:07 ` Leonardo Sandoval
0 siblings, 0 replies; 12+ messages in thread
From: Leonardo Sandoval @ 2017-06-15 17:07 UTC (permalink / raw)
To: Burton, Ross; +Cc: OE-core
On Thu, 2017-06-15 at 17:47 +0100, Burton, Ross wrote:
>
> On 15 June 2017 at 17:51, Leonardo Sandoval
> <leonardo.sandoval.gonzalez@linux.intel.com> wrote:
> also, should it be a warning instead?
>
>
>
> Not if the logic to use the value has been deleted!
Oh, I see that logic removal! sorry for the noise.
>
> Ross
>
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v3] image_types.bbclass: get rid of IMAGE_DEPENDS
2017-06-15 16:51 ` Leonardo Sandoval
2017-06-15 16:47 ` Burton, Ross
@ 2017-06-16 8:40 ` Ed Bartosh
2017-06-16 8:52 ` Richard Purdie
1 sibling, 1 reply; 12+ messages in thread
From: Ed Bartosh @ 2017-06-16 8:40 UTC (permalink / raw)
To: openembedded-core
The IMAGE_DEPENDS variable can be overriden 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.
Also, the IMAGE_DEPENDS variable is not documented anywhere.
Replaced usage of IMAGE_DEPENDS with explicitly added
dependencies to do_image_<image type> tasks.
[YOCTO #11302]
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
---
meta/classes/image_types.bbclass | 41 +++++++++++++++++++---------------------
1 file changed, 19 insertions(+), 22 deletions(-)
diff --git a/meta/classes/image_types.bbclass b/meta/classes/image_types.bbclass
index 7749b00..0d7c27e 100644
--- a/meta/classes/image_types.bbclass
+++ b/meta/classes/image_types.bbclass
@@ -29,12 +29,6 @@ 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:
adddep(d.getVar("CONVERSION_DEPENDS_%s" % ctype), deps)
@@ -101,7 +95,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 +203,24 @@ 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 () {
+ if d.getVar('IMAGE_DEPENDS') != None:
+ bb.fatal('IMAGE_DEPENDS is deprecated. Use do_image_<type>[depends] += "<recipe>:<task>" instead')
+}
+
+do_image_jffs2[depends] += "mtd-utils-native:do_populate_sysroot"
+do_image_cramfs[depends] += "util-linux-native:do_populate_sysroot"
+do_image_ext2[depends] += "e2fsprogs-native:do_populate_sysroot"
+do_image_ext3[depends] += "e2fsprogs-native:do_populate_sysroot"
+do_image_ext4[depends] += "e2fsprogs-native:do_populate_sysroot"
+do_image_btrfs[depends] += "btrfs-tools-native:do_populate_sysroot"
+do_image_squashfs[depends] += "squashfs-tools-native:do_populate_sysroot"
+do_image_squashfs-xz[depends] += "squashfs-tools-native:do_populate_sysroot"
+do_image_squashfs-lzo[depends] += "squashfs-tools-native:do_populate_sysroot"
+do_image_elf[depends] += "virtual/kernel-native:do_populate_sysroot mkelfimage-native:do_populate_sysroot"
+do_image_ubi[depends] += "mtd-utils-native:do_populate_sysroot"
+do_image_ubifs[depends] += "mtd-utils-native:do_populate_sysroot"
+do_image_multiubi[depends] += "mtd-utils-native:do_populate_sysroot"
# This variable is available to request which values are suitable for IMAGE_FSTYPES
IMAGE_TYPES = " \
--
2.1.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH v3] image_types.bbclass: get rid of IMAGE_DEPENDS
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
0 siblings, 1 reply; 12+ messages in thread
From: Richard Purdie @ 2017-06-16 8:52 UTC (permalink / raw)
To: Ed Bartosh, openembedded-core
On Fri, 2017-06-16 at 11:40 +0300, Ed Bartosh wrote:
> The IMAGE_DEPENDS variable can be overriden 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.
>
> Also, the IMAGE_DEPENDS variable is not documented anywhere.
>
> Replaced usage of IMAGE_DEPENDS with explicitly added
> dependencies to do_image_<image type> tasks.
>
> [YOCTO #11302]
>
> Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
> ---
> meta/classes/image_types.bbclass | 41 +++++++++++++++++++-----------
> ----------
> 1 file changed, 19 insertions(+), 22 deletions(-)
>
> diff --git a/meta/classes/image_types.bbclass
> b/meta/classes/image_types.bbclass
> index 7749b00..0d7c27e 100644
> --- a/meta/classes/image_types.bbclass
> +++ b/meta/classes/image_types.bbclass
> @@ -29,12 +29,6 @@ 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)
You need to do the compatibility checking here I'm afraid
since d.getVar('IMAGE_DEPENDS') is not the same thing
as d.getVar('IMAGE_DEPENDS_%s' % base.
Cheers,
Richard
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v4] image_types.bbclass: get rid of IMAGE_DEPENDS
2017-06-16 8:52 ` Richard Purdie
@ 2017-06-16 14:15 ` Ed Bartosh
2017-06-16 14:41 ` Richard Purdie
0 siblings, 1 reply; 12+ messages in thread
From: Ed Bartosh @ 2017-06-16 14:15 UTC (permalink / raw)
To: openembedded-core
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))
+}
+
+do_image_jffs2[depends] += "mtd-utils-native:do_populate_sysroot"
+do_image_cramfs[depends] += "util-linux-native:do_populate_sysroot"
+do_image_ext2[depends] += "e2fsprogs-native:do_populate_sysroot"
+do_image_ext3[depends] += "e2fsprogs-native:do_populate_sysroot"
+do_image_ext4[depends] += "e2fsprogs-native:do_populate_sysroot"
+do_image_btrfs[depends] += "btrfs-tools-native:do_populate_sysroot"
+do_image_squashfs[depends] += "squashfs-tools-native:do_populate_sysroot"
+do_image_squashfs-xz[depends] += "squashfs-tools-native:do_populate_sysroot"
+do_image_squashfs-lzo[depends] += "squashfs-tools-native:do_populate_sysroot"
+do_image_elf[depends] += "virtual/kernel-native:do_populate_sysroot mkelfimage-native:do_populate_sysroot"
+do_image_ubi[depends] += "mtd-utils-native:do_populate_sysroot"
+do_image_ubifs[depends] += "mtd-utils-native:do_populate_sysroot"
+do_image_multiubi[depends] += "mtd-utils-native:do_populate_sysroot"
# This variable is available to request which values are suitable for IMAGE_FSTYPES
IMAGE_TYPES = " \
--
2.1.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH v4] image_types.bbclass: get rid of IMAGE_DEPENDS
2017-06-16 14:15 ` [PATCH v4] " Ed Bartosh
@ 2017-06-16 14:41 ` Richard Purdie
2017-06-16 15:21 ` [PATCH v5] " Ed Bartosh
0 siblings, 1 reply; 12+ messages in thread
From: Richard Purdie @ 2017-06-16 14:41 UTC (permalink / raw)
To: Ed Bartosh, openembedded-core
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
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v5] image_types.bbclass: get rid of IMAGE_DEPENDS
2017-06-16 14:41 ` Richard Purdie
@ 2017-06-16 15:21 ` Ed Bartosh
0 siblings, 0 replies; 12+ messages in thread
From: Ed Bartosh @ 2017-06-16 15:21 UTC (permalink / raw)
To: openembedded-core
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 | 45 ++++++++++++++++++++++++----------------
1 file changed, 27 insertions(+), 18 deletions(-)
diff --git a/meta/classes/image_types.bbclass b/meta/classes/image_types.bbclass
index 7749b00..82ef65f 100644
--- a/meta/classes/image_types.bbclass
+++ b/meta/classes/image_types.bbclass
@@ -26,20 +26,31 @@ def imagetypes_getdepends(d):
fstypes = set((d.getVar('IMAGE_FSTYPES') or "").split())
fstypes |= set((d.getVar('IMAGE_FSTYPES_DEBUGFS') or "").split())
+ deprecated = set()
deps = set()
for typestring in fstypes:
basetype, resttypes = split_types(typestring)
- adddep(d.getVar('IMAGE_DEPENDS_%s' % basetype) , deps)
+
+ var = "IMAGE_DEPENDS_%s" % basetype
+ if d.getVar(var) is not None:
+ deprecated.add(var)
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
+ var = "IMAGE_DEPENDS_%s" % base
+ if d.getVar(var) is not None:
+ deprecated.add(var)
+
for ctype in resttypes:
adddep(d.getVar("CONVERSION_DEPENDS_%s" % ctype), deps)
adddep(d.getVar("COMPRESS_DEPENDS_%s" % ctype), deps)
+ if deprecated:
+ bb.fatal('Deprecated variable(s) found: "%s". '
+ 'Use do_image_<type>[depends] += "<recipe>:<task>" instead' % ', '.join(deprecated))
+
# Sort the set so that ordering is consistant
return " ".join(sorted(deps))
@@ -101,7 +112,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 +220,19 @@ 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"
+do_image_jffs2[depends] += "mtd-utils-native:do_populate_sysroot"
+do_image_cramfs[depends] += "util-linux-native:do_populate_sysroot"
+do_image_ext2[depends] += "e2fsprogs-native:do_populate_sysroot"
+do_image_ext3[depends] += "e2fsprogs-native:do_populate_sysroot"
+do_image_ext4[depends] += "e2fsprogs-native:do_populate_sysroot"
+do_image_btrfs[depends] += "btrfs-tools-native:do_populate_sysroot"
+do_image_squashfs[depends] += "squashfs-tools-native:do_populate_sysroot"
+do_image_squashfs-xz[depends] += "squashfs-tools-native:do_populate_sysroot"
+do_image_squashfs-lzo[depends] += "squashfs-tools-native:do_populate_sysroot"
+do_image_elf[depends] += "virtual/kernel-native:do_populate_sysroot mkelfimage-native:do_populate_sysroot"
+do_image_ubi[depends] += "mtd-utils-native:do_populate_sysroot"
+do_image_ubifs[depends] += "mtd-utils-native:do_populate_sysroot"
+do_image_multiubi[depends] += "mtd-utils-native:do_populate_sysroot"
# This variable is available to request which values are suitable for IMAGE_FSTYPES
IMAGE_TYPES = " \
--
2.1.4
^ permalink raw reply related [flat|nested] 12+ messages in thread
end of thread, other threads:[~2017-06-16 15:22 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
2017-06-16 15:21 ` [PATCH v5] " Ed Bartosh
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox