[yocto] Incremental rebuild doesn't pick up FILES changes.

Kaz Kylheku (poky) 442-103-8455 at kylheku.com
Wed Mar 6 12:10:42 PST 2019


On 2019-03-06 10:23, Richard Purdie wrote:
> On Tue, 2019-03-05 at 18:28 -0800, Kaz Kylheku (poky) wrote:
>> How do we get Yocto to react to FILES changes, short of blowing away
>> the entire build tree?
> 
> Maybe related to this change:
> 
> http://git.yoctoproject.org/cgit.cgi/poky/commit/bitbake/lib/bb/data_smart.py?id=f7f5e30667e1ad8e1ca76ee331be2843f2976bfa

Actually, the problem was that I had an accidental local change applied
to the .json manifest file; that's where the 
"${libdir}/python2.7/encodings" was
being deleted.

So, the issues are now is that

FILES_${PN}_remove = "${libdir}/python2.7/encodings"

in fact does not work, as I believed.  It doesn't register at all. If I 
run "bitbake -e", to find the places that influence the value of $FILES, 
this _remove assignment doesn't appear anywhere. In fact, the name of my 
.bbpappend file doesn't even appear anywhere in that listing.

If I change it to just FILES_remove = ...  then it does show up in 
"bitbake -e" (early, before all the base recipe manipulations of 
$FILES). It doesn't work; the encodings do not disappear:


      $FILES [527 operations]
     #   set /mnt/sdb4/kaz/proj/poky/meta/conf/bitbake.conf:288
     #     ""
     #   set /mnt/sdb4/kaz/proj/poky/meta/conf/documentation.conf:169
     #     [doc] "The list of directories or files that are placed in 
packages."
     #   _remove 
/mnt/sdb4/kaz/proj/meta-custom/common/recipes-devtools/python/python_%.bbappend:15
     #     "${libdir}/python2.7/encodings"

     [ big snip ]

     #   override[python-core]:append python_2.7.15.bb:220 
[__anon_238__mnt_sdb4_kaz_y25_wp76_poky_meta_recipes_devtools_python_python_2_7_15_bb]
     #     " ${libdir}/python2.7/encodings"

I think this override might be winning over the _remove or something. 
The output never shows the final, settled value of FILES. At the bottom 
of this section about the $FILES variable we just have:

     # pre-expansion value:
     #   ""
     FILES=""

which is uninformative; obviously there is a populated FILES because the 
package has files in it.

Should I just add some install append steps to "rm -f" the unwanted 
material and be done with it?

I feel there should be a sane way to customize the FILES variable (and 
any other) emanating from a base recipe, though.





More information about the yocto mailing list