[yocto] Unable to modify patch files in u-boot recipe - quilt applies direct from layer files

Chris Hallinan challinan at gmail.com
Thu Nov 5 08:25:18 PST 2015


On Thu, Nov 5, 2015 at 4:25 AM, Paul Eggleton
<paul.eggleton at linux.intel.com> wrote:
> On Wednesday 04 November 2015 17:16:32 Khem Raj wrote:
>> > On Nov 4, 2015, at 11:57 AM, Chris Hallinan <challinan at gmail.com> wrote:
>> > I was trying to "patch a patch" in a u-boot recipe using standard
>> > bbappends technique.  I added a task before do_patch after do_unpack
>> > to munge the patch that was broken.  Here is what seems to happen:
>> >
>> > do_unpack:
>> >    copies all the patch files from the metadata layer into ${WORKDIR}
>> >
>> > do_fix_patch (my additional task)
>> >
>> >    uses sed or patch to apply a local fix to a broken patch in ${WORKDIR}
>> >
>> > do_patch
>> >
>> >    creates a subdirectory in ${S} called "patches", and puts links to
>> >
>> > the actual files in the layer and uses those links back to the layer
>> > files to apply the patches.
>> >
>> > It seems quilt is using the actual layer files instead of the ones in
>> > ${WORKDIR}??
>> >
>> > This seems odd and somehow wrong.  We copy the layer files into
>> > WORKDIR, and the unsuspecting user (me) thinks those are the files
>> > that do_patch will use.
>> >
>> > This one took me some time (and help) to figure out!
>> >
>> > Comments?  Is this a bug?  halfway in the middle of some architectural
>> > changes?  Expected behavior?
>>
>> while what you are doing is quite questionable. You seem to have a point.
>> Most probably copy of the files in workdir should be removed from
>> happening.
>>
>> > My workaround was to simply replace the entire patch.
>>
>> you should use the quilt workflow and edit/refresh the patch once and copy
>> it back to metadata once for all yes.
>
> Or devtool modify, change the patch in the resulting git repository, then
> devtool update-recipe -a.
>

Thanks for comments.  But the point here is that in some workflows
(especially with a commercial vendor's implementation) we strongly
encourage users _NOT_ to modify the distributed sources, but to make
all modifications in users layers.  This provides a more manageable
upgrade path.  I guess the strangeness is that files from
recipe/metadata are copied to WORKDIR, but are not used, and I found
that very confusing at first.  Lesson learned! ;)

I guess I find it a bit strange that quilt (I assume it's quilt) links
back to the layer/metadata files directly and not back to the files in
WORKDIR, which seems more reasonable and easier to modify.  I could
label this as a "bug" rather than a "feature".  Matter of perspective,
perhaps.

-Chris



-- 
Life is like Linux - it never stands still.



More information about the yocto mailing list