From dcd9cd0f9e117d5cc1440ddbf7582e3440d0cc66 Mon Sep 17 00:00:00 2001 From: Jens Rehsack Date: Fri, 16 Oct 2015 19:14:04 +0200 Subject: bitbake: fetcher: svn: Add support for checkout to a custom path Add support for the Subversion fetcher to checkout modules to a custom path than the module name to avoid checkout is always module - svn is path based and tag/branch-checkout might break builds because of invaid path specs. (Bitbake rev: af88f538e61afa1b115be4d7afe00d8477f61750) Signed-off-by: Jens Rehsack Signed-off-by: Richard Purdie --- bitbake/lib/bb/fetch2/svn.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'bitbake') diff --git a/bitbake/lib/bb/fetch2/svn.py b/bitbake/lib/bb/fetch2/svn.py index 1733c2beb6..8a291935c1 100644 --- a/bitbake/lib/bb/fetch2/svn.py +++ b/bitbake/lib/bb/fetch2/svn.py @@ -54,6 +54,11 @@ class Svn(FetchMethod): ud.module = ud.parm["module"] + if not "path_spec" in ud.parm: + ud.path_spec = ud.module + else: + ud.path_spec = ud.parm["path_spec"] + # Create paths to svn checkouts relpath = self._strip_leading_slashes(ud.path) ud.pkgdir = os.path.join(data.expand('${SVNDIR}', d), ud.host, relpath) @@ -102,7 +107,7 @@ class Svn(FetchMethod): if command == "fetch": transportuser = ud.parm.get("transportuser", "") - svncmd = "%s co %s %s://%s%s/%s%s %s" % (ud.basecmd, " ".join(options), proto, transportuser, svnroot, ud.module, suffix, ud.module) + svncmd = "%s co %s %s://%s%s/%s%s %s" % (ud.basecmd, " ".join(options), proto, transportuser, svnroot, ud.module, suffix, ud.path_spec) elif command == "update": svncmd = "%s update %s" % (ud.basecmd, " ".join(options)) else: @@ -149,7 +154,7 @@ class Svn(FetchMethod): os.chdir(ud.pkgdir) # tar them up to a defined filename - runfetchcmd("tar %s -czf %s %s" % (tar_flags, ud.localpath, ud.module), d, cleanup = [ud.localpath]) + runfetchcmd("tar %s -czf %s %s" % (tar_flags, ud.localpath, ud.path_spec), d, cleanup = [ud.localpath]) def clean(self, ud, d): """ Clean SVN specific files and dirs """ -- cgit v1.2.3-54-g00ecf