All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bob Cochran <yocto@mindchasers.com>
To: Paul Eggleton <paul.eggleton@linux.intel.com>,
	 "Stevens, Nick" <Nick.Stevens@etherios.com>
Cc: yocto@yoctoproject.org
Subject: Re: Layer Priority with Wildcard .bbappend Files
Date: Tue, 25 Nov 2014 15:38:47 -0500	[thread overview]
Message-ID: <5474E8D7.601@mindchasers.com> (raw)
In-Reply-To: <4839222.tS45RDzaJt@peggleto-mobl5.ger.corp.intel.com>

On 11/25/2014 06:12 AM, Paul Eggleton wrote:
> Hi Bob / Nick,
>
> On Monday 24 November 2014 16:25:58 Bob Cochran wrote:
>> On 11/24/2014 03:22 PM, Stevens, Nick wrote:
>>> I think I've encountered a bug with how multiple bbappend files are
>>> processed when one of the bbappends contains a filename wildcard, but I
>>> want to make sure there's not something I'm missing before filing a bug
>>> report.>
>>> I have a BSP layer and a customization layer that are based on the OE/poky
>>> Daisy release. The output of `bitbake-layers show-layers` looks like:
>>>       layer                 path                 priority
>>>       =====================================================
>>>       meta                  poky/meta            5
>>>       meta-yocto            poky/meta-yocto      5
>>>       meta-yocto-bsp        poky/meta-yocto-bsp  5
>>>       ...ellided...
>>>       meta-bsp              meta-bsp             6
>>>       meta-custom           meta-custom          8
>>>
>>> In meta-bsp there is a bbappend for base-files named base-
>>> files_3.0.14.bbappend. The meta-bsp bbappend adds a sysctl.conf to /etc -
>>> pretty straightforward:
>>>       FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
>>>       SRC_URI += "file://sysctl.conf"
>>>       do_install_append() {
>>>
>>>           install -m 0644 ${WORKDIR}/sysctl.conf ${D}${sysconfdir}/
>>>
>>>       }
>>>
>>> Now what I want to do is add a file called base-files_%.bbappend to meta-
>>> custom. It has its own version of sysctl.conf, and the recipe looks like
>>> this:
>>>       FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
>>>
>>> Here's where things get weird. If I run `bitbake -e base-files` and pull
>>> out the section for FILESEXTRAPATHS, this is what I get (note that I've
>>> stripped out the huge absolute paths to make this easier to read):
>>>       # $FILESEXTRAPATHS [5 operations]
>>>       #   set poky/meta/conf/documentation.conf:172
>>>       #     [doc] "Extends the search path the OpenEmbedded build system
>>>       uses when looking for files and patches as it processes recipes and
>>>       append files." #   _prepend
>>>       meta-custom/recipes-core/base-files/base-files_%.bbappend:6 #
>>>       "meta-custom/recipes-core/base-files/base-files:"
>>>       #   _prepend
>>>       meta-bsp/recipes-core/base-files/base-files_3.0.14.bbappend:3
>>>       #     "meta-bsp/recipes-core/base-files/base-files:"
>>>       #   set data_smart.py:432 [finalize]
>>>       #     "meta-custom/recipes-core/base-files/base-files:"
>>>       #   set data_smart.py:432 [finalize]
>>>       #
>>>       "meta-bsp/recipes-core/base-files/base-files:meta-custom/recipes-cor
>>>       e/base-files/base-files:" # computed:
>>>       #
>>>       "meta-bsp/recipes-core/base-files/base-files:meta-custom/recipes-cor
>>>       e/base-files/base-files:"
>>>       FILESEXTRAPATHS="meta-bsp/recipes-core/base-files/base-files:meta-cu
>>>       stom/recipes-core/base-files/base-files:">
>>> For some reason meta-bsp is coming before meta-custom in FILESEXTRAPATHS,
>>> even though meta-custom has a higher priority!
>>
>> I also have some questions about how FILESEXTRAPATHS is supposed to work
>> with append files and layer priorities.
>>
>> Does a higher layer priority mean that the FILESEXTRAPATHS operation
>> should occur first?
>
> No. bbappends are parsed in ascending layer priority order. It wouldn't make
> sense to do it in the reverse - you want the higher priority layer's settings
> to take precedence
>
>> If this is the case, then a lower priority layer prepend will appear to the
>> left of the higher layer prepend since it runs later, and this will probably
>> not provide the result you want.
>
> The highest priority layer's bbappend will prepend last, thus anything it
> prepends will be first in the list.
>
>> The prepend and layer logic seems messy to me.  I would like to have a
>> way to write my custom layer and specify that what I include in my
>> SRC_URI in each recipe is definitive and can not be overwritten.
>> Suggestions on how to best accomplish this will be greatly appreciated.
>
> I think this is pretty much already the case. Is the problem that you can't
> follow the current behaviour, or that you don't completely trust the layers
> you are pulling in?


Thanks Paul.  Something is amiss when I try to prepend my recipes. I 
suspect it has something to do with OVERRIDE interactions.    I'm 
digging and will report later.



>
>> I have been trying to accomplish this with FILESOVERRIDES, but this
>> logic seems counterintuitive since  DISTROOVERRIDES take precedence over
>> MACHINEOVERRIDES in building the file search path during the unpack task.
>>
>> It seems to me that the file search path should be built using
>> FILESOVERRIDES from left to right:  TRANSLATED_TARGET_ARCH,
>> MACHINEOVERRIDES, and then DISTROOVERRIDES (specific to generic), but
>> this isn't what I'm seeing.  Still investigating how it's all put
>> together...
>>
>>
>> I verified this by building an image - the sysctl.conf that ends up in
>> the final image is the one from meta-bsp, not the one from meta-custom.
>> But if I switch the name of base-files_%.bbappend in meta-custom to
>> base-files_3.0.14.bbappend, this is what I get:
>>>       # $FILESEXTRAPATHS [5 operations]
>>>       #   set poky/meta/conf/documentation.conf:172
>>>       #     [doc] "Extends the search path the OpenEmbedded build system
>>>       uses when looking for files and patches as it processes recipes and
>>>       append files." #   _prepend
>>>       meta-bsp/recipes-core/base-files/base-files_3.0.14.bbappend:3 #
>>>       "meta-bsp/recipes-core/base-files/base-files:"
>>>       #   _prepend
>>>       meta-custom/recipes-core/base-files/base-files_3.0.14.bbappend:6 #
>>>         "meta-custom/recipes-core/base-files/base-files:"
>>>       #   set data_smart.py:432 [finalize]
>>>       #     "meta-bsp/recipes-core/base-files/base-files:"
>>>       #   set data_smart.py:432 [finalize]
>>>       #
>>>       "meta-custom/recipes-core/base-files/base-files:meta-bsp/recipes-cor
>>>       e/base-files/base-files:" # computed:
>>>       #
>>>       "meta-custom/recipes-core/base-files/base-files:meta-bsp/recipes-cor
>>>       e/base-files/base-files:"
>>>       FILESEXTRAPATHS="meta-custom/recipes-core/base-files/base-files:meta
>>>       -bsp/recipes-core/base-files/base-files:">
>>> And now the sysctl.conf file is being pulled from meta-custom.
>
> That absolutely should not happen. If you change it back does it revert to the
> version from meta-bsp? The wildcarding should not change the order in which
> the files are applied. The only corner case I can think of would be if the
> layer priority values are the same number - this isn't the case is it?
>
> Cheers,
> Paul
>



  parent reply	other threads:[~2014-11-25 20:38 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-24 20:22 Layer Priority with Wildcard .bbappend Files Stevens, Nick
2014-11-24 21:25 ` Bob Cochran
2014-11-25 11:12   ` Paul Eggleton
2014-11-25 18:04     ` Stevens, Nick
2014-11-25 20:38     ` Bob Cochran [this message]
  -- strict thread matches above, loose matches on Subject: below --
2015-05-16 11:10 Christian Magnusson
2015-05-16 18:42 ` Christopher Larson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5474E8D7.601@mindchasers.com \
    --to=yocto@mindchasers.com \
    --cc=Nick.Stevens@etherios.com \
    --cc=paul.eggleton@linux.intel.com \
    --cc=yocto@yoctoproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.