On Wed, Jul 1, 2020 at 4:47 PM Andrey Zhizhikin via lists.openembedded.org <[email protected]> wrote: > > On Wed, Jul 1, 2020 at 3:32 PM Bruce Ashfield <[email protected]> > wrote: > > > > On Wed, Jul 1, 2020 at 9:26 AM Bruce Ashfield <[email protected]> > > wrote: > > > > > > On Wed, Jul 1, 2020 at 9:01 AM Bruce Ashfield via > > > lists.openembedded.org > > > <[email protected]> wrote: > > > > > > > > On Wed, Jul 1, 2020 at 8:58 AM Bruce Ashfield > > > > <[email protected]> wrote: > > > > > > > > > > On Wed, Jul 1, 2020 at 6:46 AM Andrey Zhizhikin <[email protected]> > > > > > wrote: > > > > > > > > > > > > Fetcher provides full paths to defconfig and scc files, which awk > > > > > > comparison operator does not catch during construction of > > > > > > src_uri_defconfig and sccs_from_src_uri lists. This causes the > > > > > > src_uri_defconfig variable to come out empty, and fails further > > > > > > validation if defconfig is only supplied via SRC_URI. > > > > > > > > > > > > Replace comparison operator with awk index function which searches > > > > > > for > > > > > > sub-string during filtering, effectively placing defconfig from > > > > > > SRC_URI > > > > > > into src_uri_defconfig and scc files in sccs_from_src_uri > > > > > > respectively. > > > > > > > > > > > > > > > > Hmm. This passed all of my testing (defconfigs were picked up > > > > > properly), can you share your test configuration ? I'd like to test > > > > > this across my kernels, since I have even more corner cases than most. > > > > > > > > > > What issues did it cause in your build ? Was the defconfig skipped > > > > > completely ? > > > > > > > > Ooops. I see you did mention this in the log. > > > > > > > > I do have an additional question though .. we only want to match > > > > on"defconfig", not a substring of something else that contains > > > > defconfig. Won't the replacement awk expression match more than just a > > > > single 'deconfig' word ? > > > > > > > > Which is again why I'd like to see your test config, because I was > > > > testing against cases like that, and they all worked here. > > > > > > I re-ran my tests, and I can see why my defconfig was being chopped > > > off, it was supplied through some KMETA variables and wasn't actually > > > an absolute path. > > Yeap, that is correct. I use a meta-freescale layer, and defconfig is > supplied along with a recipe on a per-machine basis. This is picked up > by the fetcher with an absolute path, hence causing sccs_from_src_uri > to be filled in with fully-qualified name for defconfig which gets > filtered out. If the defconfig would come up via "side-channel" (say > KMETA) then the implementation would work perfectly though. > > > > > > > I also mocked up a subtring test, and I can see that it is yanking out > > > something like "i_am_not_defconfig.scc" as well. > > True, I missed this out with the awk index() function. However, this > case is rather unusual to get, and you might not even accept such scc > in kernel-yocto-cache... On the other hand: people go mysterious ways > and you never know if someone would come up with such a name in it's > own repo. > > > > > > > This doesn't have to use awk, I'll poke around and see if I can come > > > up with something that handles both cases > > > > Sorry for all the email, I was trying to get something out before > > anyone else started working on this, so we wouldn't duplicate efforts, > > and it just ends up being more email. > > No problem! I was offline for a bit now, and it just took me some time > to catch up with the thread. :) > > > > > This solves the problem here: > > > > src_uri_defconfig=$(echo $sccs_from_src_uri | awk '(match($0, > > "defconfig$") != 0) { print $0 }' RS=' ') > > This would be better IMHO, I missed this one out since normally I tend > to use index() :) > > > > > And my first boot/configuration looked fine. > > > > Did you want to update and send a v2, or did you want me to do the update ? > > I'll take your suggestion in, test the build and come up with v2 of this > patch.
Build went through with flying colors, v2 is already submitted. > > > > > Bruce > > > > > > > > .. and then run some boot tests with the patch in my queue to ensure > > > what I ran before, continues to boot. > > > > > > Cheers, > > > > > > Bruce > > > > > > > > > > > Bruce > > > > > > > > > > > > > > Bruce > > > > > > > > > > > Fixes: 23dcff0d396c (kernel/yocto: ensure that defconfigs are > > > > > > processed first) > > > > > > Cc: Bruce Ashfield <[email protected]> > > > > > > Signed-off-by: Andrey Zhizhikin <[email protected]> > > > > > > --- > > > > > > meta/classes/kernel-yocto.bbclass | 5 +++-- > > > > > > 1 file changed, 3 insertions(+), 2 deletions(-) > > > > > > > > > > > > diff --git a/meta/classes/kernel-yocto.bbclass > > > > > > b/meta/classes/kernel-yocto.bbclass > > > > > > index 41d8620e67..059d78b7dc 100644 > > > > > > --- a/meta/classes/kernel-yocto.bbclass > > > > > > +++ b/meta/classes/kernel-yocto.bbclass > > > > > > @@ -156,9 +156,10 @@ do_kernel_metadata() { > > > > > > # a quick check to make sure we don't have duplicate > > > > > > defconfigs If > > > > > > # there's a defconfig in the SRC_URI, did we also have one > > > > > > from the > > > > > > # KBUILD_DEFCONFIG processing above ? > > > > > > - src_uri_defconfig=$(echo $sccs_from_src_uri | awk '{ if > > > > > > ($0=="defconfig") { print $0 } }' RS=' ') > > > > > > + src_uri_defconfig=$(echo $sccs_from_src_uri | awk > > > > > > '(index($0, "defconfig") != 0) { print $0 }' RS=' ') > > > > > > # drop and defconfig's from the src_uri variable, we > > > > > > captured it just above here if it existed > > > > > > - sccs_from_src_uri=$(echo $sccs_from_src_uri | awk '{ if > > > > > > ($0!="defconfig") { print $0 } }' RS=' ') > > > > > > + sccs_from_src_uri=$(echo $sccs_from_src_uri | awk > > > > > > '(index($0, "defconfig") == 0) { print $0 }' RS=' ') > > > > > > + > > > > > > if [ -n "$in_tree_defconfig" ]; then > > > > > > sccs_defconfig=$in_tree_defconfig > > > > > > if [ -n "$src_uri_defconfig" ]; then > > > > > > -- > > > > > > 2.17.1 > > > > > > > > > > > > > > > > > > > > > -- > > > > > - Thou shalt not follow the NULL pointer, for chaos and madness await > > > > > thee at its end > > > > > - "Use the force Harry" - Gandalf, Star Trek II > > > > > > > > > > > > > > > > -- > > > > - Thou shalt not follow the NULL pointer, for chaos and madness await > > > > thee at its end > > > > - "Use the force Harry" - Gandalf, Star Trek II > > > > > > > > > > > > > > > > -- > > > - Thou shalt not follow the NULL pointer, for chaos and madness await > > > thee at its end > > > - "Use the force Harry" - Gandalf, Star Trek II > > > > > > > > -- > > - Thou shalt not follow the NULL pointer, for chaos and madness await > > thee at its end > > - "Use the force Harry" - Gandalf, Star Trek II > > > > -- > Regards, > Andrey. > -- Regards, Andrey.
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#140192): https://lists.openembedded.org/g/openembedded-core/message/140192 Mute This Topic: https://lists.openembedded.org/mt/75232082/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
