mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 21:09:03 +02:00
devtool: fix devtool upgrade with reproducible_builds class
If the reproducible_build class is inherited then there may be a "source-date-epoch" subdirectory in a fetched source tree; devtool upgrade was not expecting that in the upgraded source. Take a small snippet of code from recipetool create which already handles this, and make it a shared function that can be used in both places. Additionally, fix an assumption that the source is always in a subdirectory in the cleanup code that blocked debugging this. [YOCTO #13635] (From OE-Core rev: 0d642861cd9cf034b8d4951433980addc215d4fd) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
81cd5f7714
commit
ea01bd31c3
|
@ -32,7 +32,7 @@ def _run(cmd, cwd=''):
|
||||||
|
|
||||||
def _get_srctree(tmpdir):
|
def _get_srctree(tmpdir):
|
||||||
srctree = tmpdir
|
srctree = tmpdir
|
||||||
dirs = os.listdir(tmpdir)
|
dirs = scriptutils.filter_src_subdirs(tmpdir)
|
||||||
if len(dirs) == 1:
|
if len(dirs) == 1:
|
||||||
srctree = os.path.join(tmpdir, dirs[0])
|
srctree = os.path.join(tmpdir, dirs[0])
|
||||||
return srctree
|
return srctree
|
||||||
|
@ -281,6 +281,7 @@ def _extract_new_source(newpv, srctree, no_patch, srcrev, srcbranch, branch, kee
|
||||||
logger.info('Preserving temporary directory %s' % tmpsrctree)
|
logger.info('Preserving temporary directory %s' % tmpsrctree)
|
||||||
else:
|
else:
|
||||||
shutil.rmtree(tmpsrctree)
|
shutil.rmtree(tmpsrctree)
|
||||||
|
if tmpdir != tmpsrctree:
|
||||||
shutil.rmtree(tmpdir)
|
shutil.rmtree(tmpdir)
|
||||||
|
|
||||||
return (rev, md5, sha256, srcbranch, srcsubdir_rel)
|
return (rev, md5, sha256, srcbranch, srcsubdir_rel)
|
||||||
|
|
|
@ -495,9 +495,7 @@ def create_recipe(args):
|
||||||
if ftmpdir and args.keep_temp:
|
if ftmpdir and args.keep_temp:
|
||||||
logger.info('Fetch temp directory is %s' % ftmpdir)
|
logger.info('Fetch temp directory is %s' % ftmpdir)
|
||||||
|
|
||||||
dirlist = os.listdir(srctree)
|
dirlist = scriptutils.filter_src_subdirs(srctree)
|
||||||
filterout = ['git.indirectionsymlink', 'source-date-epoch']
|
|
||||||
dirlist = [x for x in dirlist if x not in filterout]
|
|
||||||
logger.debug('Directory listing (excluding filtered out):\n %s' % '\n '.join(dirlist))
|
logger.debug('Directory listing (excluding filtered out):\n %s' % '\n '.join(dirlist))
|
||||||
if len(dirlist) == 1:
|
if len(dirlist) == 1:
|
||||||
singleitem = os.path.join(srctree, dirlist[0])
|
singleitem = os.path.join(srctree, dirlist[0])
|
||||||
|
|
|
@ -268,3 +268,13 @@ def is_src_url(param):
|
||||||
elif param.startswith('git@') or ('@' in param and param.endswith('.git')):
|
elif param.startswith('git@') or ('@' in param and param.endswith('.git')):
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def filter_src_subdirs(pth):
|
||||||
|
"""
|
||||||
|
Filter out subdirectories of initial unpacked source trees that we do not care about.
|
||||||
|
Used by devtool and recipetool.
|
||||||
|
"""
|
||||||
|
dirlist = os.listdir(pth)
|
||||||
|
filterout = ['git.indirectionsymlink', 'source-date-epoch']
|
||||||
|
dirlist = [x for x in dirlist if x not in filterout]
|
||||||
|
return dirlist
|
||||||
|
|
Loading…
Reference in New Issue
Block a user