[yocto] Problem with applying a patch using default -pnum

Jerrod Peach peachj at lexmark.com
Thu Mar 7 13:01:43 PST 2013


On Thu, Mar 7, 2013 at 2:43 PM, Hans Beckerus <hans.beckerus at gmail.com>wrote:

>  On 2013-03-07 8:11, Jerrod Peach wrote:
>
> Hans,
>
>  Are you sure you're seeing the patch system use $WORKDIR instead of $S
> as the root for patching?  I've had to do a lot of patching in our own
> layers recently and I've always seen $S used as the root for the patch.
>  Are you explicitly setting S = "${WORKDIR}/git"?  That's what we do for
> our git recipes.  That's how you get the system to recognize the source
> somewhere other than just $WORKDIR.
>
>  As for specifying a different -pnum, you absolutely can do that like so:
>
>  *SRC_URI += "file://my-change.patch;striplevel=X"*
>
>  X is the pnum that you want.  Its default value is 1.
>
>  You may also find this page useful -- it contains all sorts of hints for
> setting up your recipes in a Yocto-standard way:
>
>  https://wiki.yoctoproject.org/wiki/Recipe_&_Patch_Style_Guide
>
>  That's where I learned about striplevel and the preference for it over
> the deprecated pnum parameter.
>
>  Kind regards,
>
>  Jerrod
>
>
>   Hi Jarod. Thanks, the pointer you gave will most certainly be of great
> aid. I will try the striplevel approach
> instead of writing my own do_patch() override.
> Regarding how certain I am that the root folder is ${WORKDIR} when
> patching, not at all ;)
> In my do_patch() function is simply did `pwd` and it was not set to ${S}
> as I set it to.
> That does not mean that the built-in patch system is using ${WORKDIR}, I
> am aware of that.
> Things here is, even though my patch is placed in ${W} and I set ${S} to
> eg. ${W}/git/some/folder,
> why would it not work? In another package I set ${S} to ${WORKDIR}/git and
> it works
> just fine. I can not understand why setting ${S} to something else breaks
> the logic?
> It's not that bitbake can not find the patch file, it definitely does
> that, but the -pnum seems to get
> messed up. But maybe that is the whole point of having the striplevel=X in
> the first place.
>
> Hans
>
>
pnum/striplevel's purpose is to strip off the leading paths from a patch
file.  If you're having trouble understanding how that works, this link
might help:

http://drupal.org/patch/apply#comment-239397

Changing $S to a different depth and having do_patch() fail is certainly
expected behavior if you don't change the value of striplevel.  Does that
answer your question?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20130307/9b22aec6/attachment.html>


More information about the yocto mailing list