mirror of
https://git.yoctoproject.org/poky
synced 2026-06-04 14:09:47 +00:00
patch.bbclass: allow importing patches into other dirs
This is taken from openembedded.master: commit 9d0d70da60ca8ef278916f442125d41161846f38 Author: Chris Larson <chris_larson@mentor.com> Date: Mon Aug 23 13:03:55 2010 -0400 patch: allow importing patches into other dirs Use the 'patchdir' flag. If relative, it's assumed to be relative to ${S}. It creates a patchset class per patch directory, so for quilt this results i multiple .pc/patches directories to manage each of the patchsets. (From OE-Core rev: 01e4609ee8441c8212725fd062782313caae0708) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Tom Rini <tom_rini@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -31,10 +31,8 @@ python patch_do_patch() {
|
|||||||
|
|
||||||
path = os.getenv('PATH')
|
path = os.getenv('PATH')
|
||||||
os.putenv('PATH', bb.data.getVar('PATH', d, 1))
|
os.putenv('PATH', bb.data.getVar('PATH', d, 1))
|
||||||
patchset = cls(s, d)
|
|
||||||
patchset.Clean()
|
|
||||||
|
|
||||||
resolver = rcls(patchset)
|
classes = {}
|
||||||
|
|
||||||
workdir = bb.data.getVar('WORKDIR', d, 1)
|
workdir = bb.data.getVar('WORKDIR', d, 1)
|
||||||
for url in src_uri:
|
for url in src_uri:
|
||||||
@@ -117,6 +115,21 @@ python patch_do_patch() {
|
|||||||
bb.note("Patch '%s' doesn't apply to revision" % pname)
|
bb.note("Patch '%s' doesn't apply to revision" % pname)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
if "patchdir" in parm:
|
||||||
|
patchdir = parm["patchdir"]
|
||||||
|
if not os.path.isabs(patchdir):
|
||||||
|
patchdir = os.path.join(s, patchdir)
|
||||||
|
else:
|
||||||
|
patchdir = s
|
||||||
|
|
||||||
|
if not patchdir in classes:
|
||||||
|
patchset = cls(patchdir, d)
|
||||||
|
resolver = rcls(patchset)
|
||||||
|
classes[patchdir] = (patchset, resolver)
|
||||||
|
patchset.Clean()
|
||||||
|
else:
|
||||||
|
patchset, resolver = classes[patchdir]
|
||||||
|
|
||||||
bb.note("Applying patch '%s' (%s)" % (pname, oe.path.format_display(local, d)))
|
bb.note("Applying patch '%s' (%s)" % (pname, oe.path.format_display(local, d)))
|
||||||
try:
|
try:
|
||||||
patchset.Import({"file":local, "remote":url, "strippath": striplevel}, True)
|
patchset.Import({"file":local, "remote":url, "strippath": striplevel}, True)
|
||||||
|
|||||||
Reference in New Issue
Block a user