On 2013-03-07 10:01, Jerrod Peach wrote: > > > > On Thu, Mar 7, 2013 at 2:43 PM, Hans Beckerus > 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? Yes, I am fully aware of how -pnum works. My confusion was based on how bitbake will assume a certain depth and use that as default. Actually it could have been more clever by doing a comparison between $W (or patch file location), the patch itself, and $S. Anyway, you did answer my question. Thanks. I will try the striplevel tomorrow when I am back at work. Hans