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

Hans Beckerus hans.beckerus at gmail.com
Thu Mar 7 11:43:24 PST 2013


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


>
>
>
>
> On Thu, Mar 7, 2013 at 7:33 AM, Hans Beckérus <hans.beckerus at gmail.com 
> <mailto:hans.beckerus at gmail.com>> wrote:
>
>     On Thu, Mar 7, 2013 at 1:12 PM, Hans Beckérus
>     <hans.beckerus at gmail.com <mailto:hans.beckerus at gmail.com>> wrote:
>     > Hi. More problems ;)
>     > I have a patch file that needs to be applied to a source tree
>     and the
>     > patch file is copied properly to the ${WORKDIR} directory.
>     > So far so good. But, the problem with this source tree is that it is
>     > not built from the traditional root folder of the repo.
>     > This means I need to change ${S} to point somewhere else. This also
>     > causes the patch system to fail!
>     > I did an override of do_patch() in my .bb and that seems to
>     work, but
>     > I do not like to use overrides unless I really have to.
>     > So basically, is there some way to tell the built-in patch system to
>     > use a different -pnum value?
>     > If there is, I could stick with the do_patch() as provided by
>     default.
>     >
>     > Hans
>
>     Hmm, ok a correction from my side. Forget parts of what I said ;)
>     The patch system does not seem to use the value of ${S}, it is using
>     ${WORKDIR} as the root for patching, this is also where the patch file
>     is placed. The problem in my case does not seem to be that is built
>     from a non-standard path. The reason why it fails seems to be because
>     the actual source is not in ${WORKDIR}, it is in ${WORKDIR}/git. The
>     patch file does include git as part of the source path for obvious
>     reasons. What am I doing wrong? Having actual source code in
>     ${WORKDIR}/git I assume is very common for git based downloads.
>
>     Hans
>     _______________________________________________
>     yocto mailing list
>     yocto at yoctoproject.org <mailto:yocto at yoctoproject.org>
>     https://lists.yoctoproject.org/listinfo/yocto
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20130307/b8d5ffda/attachment.html>


More information about the yocto mailing list