[yocto] Unset task_name[noexec] in bbappend

Stath, Paul PStath at Axxcelera.com
Wed Feb 4 06:19:18 PST 2015


> On Monday 02 February 2015 19:51:15 Stath, Paul wrote:
> > If there any way in the bbappend file to override <task_name>[noexec] = "1"
> > specified in the parent .bb file?
> >
> > I want to extend the package-index task, and need to fetch a couple of
> > configuration files. The package-index.bb task contains do_fetch[noexec] =
> > "1", so the fetch is not performed.
> 
> This is a little tricky - you need to actually delete the varflag not just
> unset it. (You'll almost certainly need to do the same for do_unpack so that
> the files end up in the workdir as well.) You can do this from an anonymous
> python section within the recipe e.g.:
> 
> python __anonymous() {
>     d.delVarFlag('do_fetch', 'noexec')
>     d.delVarFlag('do_unpack', 'noexec')
> }

Thanks for the quick response.  That did the trick.

It seems strange that bitbake allows these varFlag values to be set,
yet doesn't provide a way to clear them.  I guess there is not much call for it,
or it is considered an anti-pattern.

In addition, I also needed to override:

addtask do_package_index before do_build

to be:
 
addtask do_package_index after do_unpack before do_build

Otherwise, the do_package_index might run before the do_unpack task,
which will result in a failure to copy one of the fetched files.

> 
> (I'm not sure what you're doing this for, but in case it's not obvious, bear
> mind this will only affect explicit calls to bitbake package-index and won't be
> automatically incorporated into the indexes created when building images.)

It didn't occur to me until you pointed it out, but that is exactly what I'm looking for.
I am invoking 'bitbake package-index' after a 'bitbake <image>' build.
When the build server completes the build, the tmp/deploy/deb sub-tree is archived.
This archive can be used directly via apt-get on the target devices to upgrade
to the latest software.

The default 'package_update_index_deb' function uses the
'dpkg-scanpackages' command to generate the Packages file.

Instead of dpkg-scanpackages, I use apt-ftparchive,
The apt-ftparchive command is a superset of dpkg-scanpackages,
and will generate checksums of the packages.

I needed to do_fetch/do_unpack to get the apt-ftparchive.conf
configuration file, and a deb-extra-override format file to add
supplementary overrides to some of the packages.

--
Paul Stath
Axxcelera Broadband Wireless



More information about the yocto mailing list