From f205ccaf48ac36f4b26efc4aeb2e9d2939b28646 Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Thu, 19 Feb 2015 16:39:51 +0000 Subject: lib/oe/patch: fix PATCHTOOL = "git" with source in a subdirectory For recipes that have their actual source in a subdirectory of what is fetched (e.g. mkelfimage), we need to find the root of the repository within the GitApplyTree code that attempts to set up the required git hooks and use that, rather than expecting the root to be the same as ${S}. (From OE-Core rev: d820303f64ea610338ec11ffd79269e7831d1da9) Signed-off-by: Paul Eggleton Signed-off-by: Richard Purdie --- meta/lib/oe/patch.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'meta/lib/oe/patch.py') diff --git a/meta/lib/oe/patch.py b/meta/lib/oe/patch.py index b838be80be..f68d40f8c8 100644 --- a/meta/lib/oe/patch.py +++ b/meta/lib/oe/patch.py @@ -313,9 +313,12 @@ class GitApplyTree(PatchTree): return runcmd(["sh", "-c", " ".join(shellcmd)], self.dir) # Add hooks which add a pointer to the original patch file name in the commit message - commithook = os.path.join(self.dir, '.git', 'hooks', 'commit-msg') + reporoot = (runcmd("git rev-parse --show-toplevel".split(), self.dir) or '').strip() + if not reporoot: + raise Exception("Cannot get repository root for directory %s" % self.dir) + commithook = os.path.join(reporoot, '.git', 'hooks', 'commit-msg') commithook_backup = commithook + '.devtool-orig' - applyhook = os.path.join(self.dir, '.git', 'hooks', 'applypatch-msg') + applyhook = os.path.join(reporoot, '.git', 'hooks', 'applypatch-msg') applyhook_backup = applyhook + '.devtool-orig' if os.path.exists(commithook): shutil.move(commithook, commithook_backup) -- cgit v1.2.3-54-g00ecf