Re: Excluding recipe u-boot-fw-utils from a target build #yocto


Quentin Schulz
 

Hi Richard,

On Mon, Jan 20, 2020 at 09:38:21PM -0800, Richard.W wrote:
I am using Yocto "Rocko" and an older u-boot bootloader with it (2013.10). The machine target is an i.mx6 and so I am including the freescale imx layers.

Within the freescale layer is a recipe for a u-boot-fw-utils which I understand just generates 2 methods to access u-boot env variables from the linux user space. I don;t think I need this and so I am trying to stop it from being built as is is failing when trying to make the target with some *_defconfig which I cannot determine how it is getting that.

| make -f ./scripts/Makefile.build obj=scripts/basic
| rm -f .tmp_quiet_recordmcount
| make -f ./scripts/Makefile.build obj=scripts/kconfig mx6_cubox-i_config
| scripts/kconfig/conf  --defconfig=arch/../configs/mx6_cubox-i_defconfig Kconfig
| ***
| *** Can't find default configuration "arch/../configs/mx6_cubox-i_defconfig"!
| ***
| scripts/kconfig/Makefile:121: recipe for target 'mx6_cubox-i_defconfig' failed
| make[1]: *** [mx6_cubox-i_defconfig] Error 1
| Makefile:479: recipe for target 'mx6_cubox-i_config' failed
| make: *** [mx6_cubox-i_config] Error 2
| ERROR: oe_runmake failed
| WARNING: <path>/u-boot-fslc-fw-utils/v2017.11+gitAUTOINC+a07698f0bf-r0/temp/run.do_compile.23669:1 exit 1 from 'exit 1'
| ERROR: Function failed: do_compile (log file is located at <path>/u-boot-fslc-fw-utils/v2017.11+gitAUTOINC+a07698f0bf-r0/temp/log.do_compile.23669)
ERROR: Task (<path>/meta-freescale/recipes-bsp/u-boot/u-boot-fslc-fw-utils_2017.11.bb:do_compile) failed with exit code '1'

Note: the u-boot-fw-utils in this case would be set to: u-boot-fslc-fw-utils_2017.11 (for rocko)
Note: my u-boot recipe builds fine.

I put the following lines into my conf/layer.conf file, to no effect:
IMAGE_INSTALL_remove += " u-boot-fslc-fw-utils"
IMAGE_INSTALL_remove += " u-boot-fw-utils"
Some packages are pulled as runtime dependencies (RDEPENDS from a
package that is installed, or via the auto-RDEPENDS mechanism which
detects if a package is a provider of a shlib required by another
package).
Some packages are pulled as runtime recommendations (RRECOMMENDATIONS
from a package that is installed).
Also, packages can be pulled for the same reasons by a machine conf file
(c.f. MACHINE_[ESSENTIAL_]EXTRA_*).

For RDEPENDS, except removing the package RDEPENDS-ing on the package you don't
want to install, or removing the package you don't want to install from
the list of RDEPENDS and adapting the package's recipe to build without
(if even possible), there is no real way.

To detect all recipes requiring this package at runtime, you can use
PACKAGE_EXCLUDE = "<idontwantthispackage>" in your conf/local.conf and
fix all the packages which are failing to build when that variable is
set.

For RRECOMMENDATIONS, you can try to use BAD_RECOMMENDATIONS in your
image recipe. NO_RECOMMENDATIONS should work as well but it's more
aggressive.

Please have a look at all those variables in the mega-manual:
https://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html

Hopefully you don't need the tools from u-boot-fw-utils but know that it
is sometimes used by upgrade SW such as SWUpdate if I'm not mistaken.

BR,
Quentin

Join yocto@lists.yoctoproject.org to automatically receive all group messages.