Comments

On 11/20/2018 09:21 PM, Alexey Brodkin wrote:
> This utility is used for creation of images containing> usable in run-time U-Boot environment.> > As of today this utility is added per-board like here [1]> for Intel Edison board.> > [1] http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel-edison/tree/meta-intel-edison-bsp/recipes-bsp/u-boot/u-boot-tools_2014.04.bb> > Given there're quite some U-Boot tools that we may want to add later> this recipe name switch from "u-boot-mkimage" to generic "u-boot-tools"> still for compatibility we provide "u-boot-mkimage" with help> of PROVIDES as well as proposed "u-boot-mkenvimage".> > Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>> Cc: Richard Purdie <richard.purdie@linuxfoundation.org>> Cc: Otavio Salvador <otavio@ossystems.com.br>> Cc: Martin Jansa <martin.jansa@gmail.com>> Cc: Ross Burton <ross.burton@intel.com>> Cc: Marek Vasut <marex@denx.de>> ---> > I may "git grep u-boot-mkimage" in more places:> 1. meta/classes/image_types.bbclass:311:CONVERSION_DEPENDS_u-boot = "u-boot-mkimage-native"> 2. meta/classes/kernel-fitimage.bbclass:7: depends = "%s u-boot-mkimage-native dtc-native" % depends> 3. meta/classes/kernel-uimage.bbclass:6: depends = "%s u-boot-mkimage-native" % depends> 4. meta/conf/distro/include/distro_alias.inc:357:DISTRO_PN_ALIAS_pn-u-boot-mkimage = "Ubuntu=uboot-mkimage Debian=uboot-mkimage"> > But that's not clear for me if it's required to swap "u-boot-mkimage"> to "u-boot-tools" see:> 1. "u-boot-mkimage" is still a valid recipe as we export ot via PROVIDES> (or I'm mixing package name with recipe name which very well might be> the case)> 2. I don't fully understand a mening of "DISTRO_PN_ALIAS".> If that's a name of a package from some big Linux distro or how target> utility is named in that distro. For example in Debian Sid there's> a package named "u-boot-tools" which includes "mkimage", "mkenvimage",> "fw_printenv", "fw_setenv" and many more while in "distro_alias.inc"> we still have:> ---------------->8----------------> DISTRO_PN_ALIAS_pn-u-boot-mkimage = "Ubuntu=uboot-mkimage Debian=uboot-mkimage"> ---------------->8----------------
Just make u-boot-tools RPROVIDE the u-boot-mkimage, and make it generate
a u-boot-mkimage package , no ?

On Tue, 2018-11-20 at 23:21 +0300, Alexey Brodkin wrote:
> This utility is used for creation of images containing> usable in run-time U-Boot environment.> > As of today this utility is added per-board like here [1]> for Intel Edison board.> > [1] > http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel-edison/tree/meta-intel-edison-bsp/recipes-bsp/u-boot/u-boot-tools_2014.04.bb> > Given there're quite some U-Boot tools that we may want to add later> this recipe name switch from "u-boot-mkimage" to generic "u-boot-> tools"> still for compatibility we provide "u-boot-mkimage" with help> of PROVIDES as well as proposed "u-boot-mkenvimage".> > Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>> Cc: Richard Purdie <richard.purdie@linuxfoundation.org>> Cc: Otavio Salvador <otavio@ossystems.com.br>> Cc: Martin Jansa <martin.jansa@gmail.com>> Cc: Ross Burton <ross.burton@intel.com>> Cc: Marek Vasut <marex@denx.de>> ---> > I may "git grep u-boot-mkimage" in more places:> 1. meta/classes/image_types.bbclass:311:CONVERSION_DEPENDS_u-boot => "u-boot-mkimage-native"> 2. meta/classes/kernel-fitimage.bbclass:7: depends = "%s u-> boot-mkimage-native dtc-native" % depends> 3. meta/classes/kernel-uimage.bbclass:6: depends = "%s u-> boot-mkimage-native" % depends> 4. meta/conf/distro/include/distro_alias.inc:357:DISTRO_PN_ALIAS_pn-> u-boot-mkimage = "Ubuntu=uboot-mkimage Debian=uboot-mkimage"> > But that's not clear for me if it's required to swap "u-boot-mkimage"> to "u-boot-tools" see:> 1. "u-boot-mkimage" is still a valid recipe as we export ot via> PROVIDES> (or I'm mixing package name with recipe name which very well> might be> the case)> 2. I don't fully understand a mening of "DISTRO_PN_ALIAS".> If that's a name of a package from some big Linux distro or how> target> utility is named in that distro. For example in Debian Sid> there's> a package named "u-boot-tools" which includes "mkimage",> "mkenvimage",> "fw_printenv", "fw_setenv" and many more while in> "distro_alias.inc"> we still have:> ---------------->8----------------> DISTRO_PN_ALIAS_pn-u-boot-mkimage = "Ubuntu=uboot-mkimage> Debian=uboot-mkimage"> ---------------->8----------------
Sorry, the tests in meta-oe have exposed another issue:
https://8n1.org/14048/3f99
which means the PROVIDES isn't quite right. The reason is there is
magic in the recipe which extends it to the native and nativesdk cases
but its not quite working.
I think the easiest way to address this may be
PROVIDES = "${MLPREFIX}u-boot-mkimage ${MLPREFIX}u-boot-mkenvimage"
PROVIDES_class-native = "u-boot-mkimage-native u-boot-mkenvimage-
native"
since in the nativesdk case, MLPREFIX expands to nativesdk-. The second
class-native line may not be needed. You could check with:
bitbake u-boot-tools -e | grep ^PROVIDES=
and see if it computes the value without manually overriding it.
Cheers,
Richard

On Tue, 2018-11-20 at 23:21 +0300, Alexey Brodkin wrote:
> This utility is used for creation of images containing> usable in run-time U-Boot environment.> > As of today this utility is added per-board like here [1]> for Intel Edison board.> > [1] > http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel-edison/tree/meta-intel-edison-bsp/recipes-bsp/u-boot/u-boot-tools_2014.04.bb> > Given there're quite some U-Boot tools that we may want to add later> this recipe name switch from "u-boot-mkimage" to generic "u-boot-> tools"> still for compatibility we provide "u-boot-mkimage" with help> of PROVIDES as well as proposed "u-boot-mkenvimage".> > Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>> Cc: Richard Purdie <richard.purdie@linuxfoundation.org>> Cc: Otavio Salvador <otavio@ossystems.com.br>> Cc: Martin Jansa <martin.jansa@gmail.com>> Cc: Ross Burton <ross.burton@intel.com>> Cc: Marek Vasut <marex@denx.de>> ---> > I may "git grep u-boot-mkimage" in more places:> 1. meta/classes/image_types.bbclass:311:CONVERSION_DEPENDS_u-boot => "u-boot-mkimage-native"> 2. meta/classes/kernel-fitimage.bbclass:7: depends = "%s u-> boot-mkimage-native dtc-native" % depends> 3. meta/classes/kernel-uimage.bbclass:6: depends = "%s u-> boot-mkimage-native" % depends> 4. meta/conf/distro/include/distro_alias.inc:357:DISTRO_PN_ALIAS_pn-> u-boot-mkimage = "Ubuntu=uboot-mkimage Debian=uboot-mkimage"> > But that's not clear for me if it's required to swap "u-boot-mkimage"> to "u-boot-tools" see:> 1. "u-boot-mkimage" is still a valid recipe as we export ot via> PROVIDES> (or I'm mixing package name with recipe name which very well> might be> the case)> 2. I don't fully understand a mening of "DISTRO_PN_ALIAS".> If that's a name of a package from some big Linux distro or how> target> utility is named in that distro. For example in Debian Sid> there's> a package named "u-boot-tools" which includes "mkimage",> "mkenvimage",> "fw_printenv", "fw_setenv" and many more while in> "distro_alias.inc"> we still have:> ---------------->8----------------> DISTRO_PN_ALIAS_pn-u-boot-mkimage = "Ubuntu=uboot-mkimage> Debian=uboot-mkimage"> ---------------->8----------------
I meant to say, for cleanliness, all the references you mentioned
should also be converted in this patch. Most will work with PROVIDES
mapping but we should improve them.
Cheers,
Richard

On Tue, Nov 20, 2018 at 6:22 PM Marek Vasut <marex@denx.de> wrote:
> On 11/20/2018 09:21 PM, Alexey Brodkin wrote:> > This utility is used for creation of images containing> > usable in run-time U-Boot environment.> >> > As of today this utility is added per-board like here [1]> > for Intel Edison board.> >> > [1] http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel-edison/tree/meta-intel-edison-bsp/recipes-bsp/u-boot/u-boot-tools_2014.04.bb> >> > Given there're quite some U-Boot tools that we may want to add later> > this recipe name switch from "u-boot-mkimage" to generic "u-boot-tools"> > still for compatibility we provide "u-boot-mkimage" with help> > of PROVIDES as well as proposed "u-boot-mkenvimage".> >> > Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>> > Cc: Richard Purdie <richard.purdie@linuxfoundation.org>> > Cc: Otavio Salvador <otavio@ossystems.com.br>> > Cc: Martin Jansa <martin.jansa@gmail.com>> > Cc: Ross Burton <ross.burton@intel.com>> > Cc: Marek Vasut <marex@denx.de>> > ---> >> > I may "git grep u-boot-mkimage" in more places:> > 1. meta/classes/image_types.bbclass:311:CONVERSION_DEPENDS_u-boot = "u-boot-mkimage-native"> > 2. meta/classes/kernel-fitimage.bbclass:7: depends = "%s u-boot-mkimage-native dtc-native" % depends> > 3. meta/classes/kernel-uimage.bbclass:6: depends = "%s u-boot-mkimage-native" % depends> > 4. meta/conf/distro/include/distro_alias.inc:357:DISTRO_PN_ALIAS_pn-u-boot-mkimage = "Ubuntu=uboot-mkimage Debian=uboot-mkimage"> >> > But that's not clear for me if it's required to swap "u-boot-mkimage"> > to "u-boot-tools" see:> > 1. "u-boot-mkimage" is still a valid recipe as we export ot via PROVIDES> > (or I'm mixing package name with recipe name which very well might be> > the case)> > 2. I don't fully understand a mening of "DISTRO_PN_ALIAS".> > If that's a name of a package from some big Linux distro or how target> > utility is named in that distro. For example in Debian Sid there's> > a package named "u-boot-tools" which includes "mkimage", "mkenvimage",> > "fw_printenv", "fw_setenv" and many more while in "distro_alias.inc"> > we still have:> > ---------------->8----------------> > DISTRO_PN_ALIAS_pn-u-boot-mkimage = "Ubuntu=uboot-mkimage Debian=uboot-mkimage"> > ---------------->8---------------->> Just make u-boot-tools RPROVIDE the u-boot-mkimage, and make it generate> a u-boot-mkimage package , no ?
In fact, it should:
PROVIDE += "u-boot-mkimage"
So dependencies are going to keep working; as Richard said, it should
use the new name for the sake of correctness though.
The package split will define how it will need to be handled for the
runtime counterpart.
If we adopt:
PACKAGES += "${PN}-mkimage ${PN}-mkenvimage"
Then we need to add:
RPROVIDES_${PN}-mkimage = "u-boot-mkimage"
RREPLACES_${PN}-mkimage = "u-boot-mkimage"
RCONFLICTS_${PN}-mkimage = "u-boot-mkimage"
So it provides the upgrade path to the original package.
(this is my vote, btw)

On 11/21/2018 04:45 PM, Otavio Salvador wrote:
> On Tue, Nov 20, 2018 at 6:22 PM Marek Vasut <marex@denx.de> wrote:>> On 11/20/2018 09:21 PM, Alexey Brodkin wrote:>>> This utility is used for creation of images containing>>> usable in run-time U-Boot environment.>>>>>> As of today this utility is added per-board like here [1]>>> for Intel Edison board.>>>>>> [1] http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel-edison/tree/meta-intel-edison-bsp/recipes-bsp/u-boot/u-boot-tools_2014.04.bb>>>>>> Given there're quite some U-Boot tools that we may want to add later>>> this recipe name switch from "u-boot-mkimage" to generic "u-boot-tools">>> still for compatibility we provide "u-boot-mkimage" with help>>> of PROVIDES as well as proposed "u-boot-mkenvimage".>>>>>> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>>>> Cc: Richard Purdie <richard.purdie@linuxfoundation.org>>>> Cc: Otavio Salvador <otavio@ossystems.com.br>>>> Cc: Martin Jansa <martin.jansa@gmail.com>>>> Cc: Ross Burton <ross.burton@intel.com>>>> Cc: Marek Vasut <marex@denx.de>>>> --->>>>>> I may "git grep u-boot-mkimage" in more places:>>> 1. meta/classes/image_types.bbclass:311:CONVERSION_DEPENDS_u-boot = "u-boot-mkimage-native">>> 2. meta/classes/kernel-fitimage.bbclass:7: depends = "%s u-boot-mkimage-native dtc-native" % depends>>> 3. meta/classes/kernel-uimage.bbclass:6: depends = "%s u-boot-mkimage-native" % depends>>> 4. meta/conf/distro/include/distro_alias.inc:357:DISTRO_PN_ALIAS_pn-u-boot-mkimage = "Ubuntu=uboot-mkimage Debian=uboot-mkimage">>>>>> But that's not clear for me if it's required to swap "u-boot-mkimage">>> to "u-boot-tools" see:>>> 1. "u-boot-mkimage" is still a valid recipe as we export ot via PROVIDES>>> (or I'm mixing package name with recipe name which very well might be>>> the case)>>> 2. I don't fully understand a mening of "DISTRO_PN_ALIAS".>>> If that's a name of a package from some big Linux distro or how target>>> utility is named in that distro. For example in Debian Sid there's>>> a package named "u-boot-tools" which includes "mkimage", "mkenvimage",>>> "fw_printenv", "fw_setenv" and many more while in "distro_alias.inc">>> we still have:>>> ---------------->8---------------->>> DISTRO_PN_ALIAS_pn-u-boot-mkimage = "Ubuntu=uboot-mkimage Debian=uboot-mkimage">>> ---------------->8---------------->>>> Just make u-boot-tools RPROVIDE the u-boot-mkimage, and make it generate>> a u-boot-mkimage package , no ?> > In fact, it should:> > PROVIDE += "u-boot-mkimage"> > So dependencies are going to keep working; as Richard said, it should> use the new name for the sake of correctness though.> > The package split will define how it will need to be handled for the> runtime counterpart.> > If we adopt:> > PACKAGES += "${PN}-mkimage ${PN}-mkenvimage"> > Then we need to add:> > RPROVIDES_${PN}-mkimage = "u-boot-mkimage"> RREPLACES_${PN}-mkimage = "u-boot-mkimage"> RCONFLICTS_${PN}-mkimage = "u-boot-mkimage"> > So it provides the upgrade path to the original package.> > (this is my vote, btw)
Cool, all right.