On 2013-03-07 10:01, Jerrod Peach wrote:



On Thu, Mar 7, 2013 at 2:43 PM, Hans Beckerus <hans.becke...@gmail.com <mailto:hans.becke...@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?

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
_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to