1
0
mirror of https://git.yoctoproject.org/poky synced 2026-06-02 01:19:52 +00:00

devtool: standard: cleanup imports; stop relying on transitive bb imports

(From OE-Core rev: 8457e24f60a9a84e0f1cfc4a28a39989534fa7de)

Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Chris Laplante
2025-01-29 15:20:12 -05:00
committed by Richard Purdie
parent 49f9970c75
commit 1923c62fee
2 changed files with 24 additions and 18 deletions
+23 -18
View File
@@ -19,9 +19,12 @@ import scriptutils
import errno import errno
import glob import glob
from collections import OrderedDict from collections import OrderedDict
from devtool import exec_build_env_command, setup_tinfoil, check_workspace_recipe, use_external_build, setup_git_repo, recipe_to_append, get_bbclassextend_targets, update_unlockedsigs, check_prerelease_version, check_git_repo_dirty, check_git_repo_op, DevtoolError from devtool import exec_build_env_command, setup_tinfoil, check_workspace_recipe, use_external_build, setup_git_repo, recipe_to_append, get_bbclassextend_targets, update_unlockedsigs, check_prerelease_version, check_git_repo_dirty, check_git_repo_op, DevtoolError
from devtool import parse_recipe from devtool import parse_recipe
import bb.utils
logger = logging.getLogger('devtool') logger = logging.getLogger('devtool')
override_branch_prefix = 'devtool-override-' override_branch_prefix = 'devtool-override-'
@@ -29,7 +32,8 @@ override_branch_prefix = 'devtool-override-'
def add(args, config, basepath, workspace): def add(args, config, basepath, workspace):
"""Entry point for the devtool 'add' subcommand""" """Entry point for the devtool 'add' subcommand"""
import bb import bb.data
import bb.process
import oe.recipeutils import oe.recipeutils
if not args.recipename and not args.srctree and not args.fetch and not args.fetchuri: if not args.recipename and not args.srctree and not args.fetch and not args.fetchuri:
@@ -304,6 +308,7 @@ def add(args, config, basepath, workspace):
def _check_compatible_recipe(pn, d): def _check_compatible_recipe(pn, d):
"""Check if the recipe is supported by devtool""" """Check if the recipe is supported by devtool"""
import bb.data
if pn == 'perf': if pn == 'perf':
raise DevtoolError("The perf recipe does not actually check out " raise DevtoolError("The perf recipe does not actually check out "
"source and thus cannot be supported by this tool", "source and thus cannot be supported by this tool",
@@ -373,7 +378,7 @@ def _copy_file(src, dst, dry_run_outdir=None, base_outdir=None):
def _git_ls_tree(repodir, treeish='HEAD', recursive=False): def _git_ls_tree(repodir, treeish='HEAD', recursive=False):
"""List contents of a git treeish""" """List contents of a git treeish"""
import bb import bb.process
cmd = ['git', 'ls-tree', '-z', treeish] cmd = ['git', 'ls-tree', '-z', treeish]
if recursive: if recursive:
cmd.append('-r') cmd.append('-r')
@@ -388,7 +393,7 @@ def _git_ls_tree(repodir, treeish='HEAD', recursive=False):
def _git_modified(repodir): def _git_modified(repodir):
"""List the difference between HEAD and the index""" """List the difference between HEAD and the index"""
import bb import bb.process
cmd = ['git', 'status', '--porcelain'] cmd = ['git', 'status', '--porcelain']
out, _ = bb.process.run(cmd, cwd=repodir) out, _ = bb.process.run(cmd, cwd=repodir)
ret = [] ret = []
@@ -426,8 +431,6 @@ def _ls_tree(directory):
def extract(args, config, basepath, workspace): def extract(args, config, basepath, workspace):
"""Entry point for the devtool 'extract' subcommand""" """Entry point for the devtool 'extract' subcommand"""
import bb
tinfoil = setup_tinfoil(basepath=basepath, tracking=True) tinfoil = setup_tinfoil(basepath=basepath, tracking=True)
if not tinfoil: if not tinfoil:
# Error already shown # Error already shown
@@ -450,8 +453,6 @@ def extract(args, config, basepath, workspace):
def sync(args, config, basepath, workspace): def sync(args, config, basepath, workspace):
"""Entry point for the devtool 'sync' subcommand""" """Entry point for the devtool 'sync' subcommand"""
import bb
tinfoil = setup_tinfoil(basepath=basepath, tracking=True) tinfoil = setup_tinfoil(basepath=basepath, tracking=True)
if not tinfoil: if not tinfoil:
# Error already shown # Error already shown
@@ -474,9 +475,9 @@ def sync(args, config, basepath, workspace):
def _extract_source(srctree, keep_temp, devbranch, sync, config, basepath, workspace, fixed_setup, d, tinfoil, no_overrides=False): def _extract_source(srctree, keep_temp, devbranch, sync, config, basepath, workspace, fixed_setup, d, tinfoil, no_overrides=False):
"""Extract sources of a recipe""" """Extract sources of a recipe"""
import oe.recipeutils
import oe.patch
import oe.path import oe.path
import bb.data
import bb.process
pn = d.getVar('PN') pn = d.getVar('PN')
@@ -677,8 +678,6 @@ def _extract_source(srctree, keep_temp, devbranch, sync, config, basepath, works
def _add_md5(config, recipename, filename): def _add_md5(config, recipename, filename):
"""Record checksum of a file (or recursively for a directory) to the md5-file of the workspace""" """Record checksum of a file (or recursively for a directory) to the md5-file of the workspace"""
import bb.utils
def addfile(fn): def addfile(fn):
md5 = bb.utils.md5_file(fn) md5 = bb.utils.md5_file(fn)
with open(os.path.join(config.workspace_path, '.devtool_md5'), 'a+') as f: with open(os.path.join(config.workspace_path, '.devtool_md5'), 'a+') as f:
@@ -697,7 +696,6 @@ def _add_md5(config, recipename, filename):
def _check_preserve(config, recipename): def _check_preserve(config, recipename):
"""Check if a file was manually changed and needs to be saved in 'attic' """Check if a file was manually changed and needs to be saved in 'attic'
directory""" directory"""
import bb.utils
origfile = os.path.join(config.workspace_path, '.devtool_md5') origfile = os.path.join(config.workspace_path, '.devtool_md5')
newfile = os.path.join(config.workspace_path, '.devtool_md5_new') newfile = os.path.join(config.workspace_path, '.devtool_md5_new')
preservepath = os.path.join(config.workspace_path, 'attic', recipename) preservepath = os.path.join(config.workspace_path, 'attic', recipename)
@@ -739,6 +737,7 @@ def get_staging_kver(srcdir):
return staging_kerVer return staging_kerVer
def get_staging_kbranch(srcdir): def get_staging_kbranch(srcdir):
import bb.process
staging_kbranch = "" staging_kbranch = ""
if os.path.exists(srcdir) and os.listdir(srcdir): if os.path.exists(srcdir) and os.listdir(srcdir):
(branch, _) = bb.process.run('git branch | grep \\* | cut -d \' \' -f2', cwd=srcdir) (branch, _) = bb.process.run('git branch | grep \\* | cut -d \' \' -f2', cwd=srcdir)
@@ -757,7 +756,8 @@ def get_real_srctree(srctree, s, workdir):
def modify(args, config, basepath, workspace): def modify(args, config, basepath, workspace):
"""Entry point for the devtool 'modify' subcommand""" """Entry point for the devtool 'modify' subcommand"""
import bb import bb.data
import bb.process
import oe.recipeutils import oe.recipeutils
import oe.patch import oe.patch
import oe.path import oe.path
@@ -1183,7 +1183,7 @@ def _get_patchset_revs(srctree, recipe_path, initial_rev=None, force_patch_refre
"""Get initial and update rev of a recipe. These are the start point of the """Get initial and update rev of a recipe. These are the start point of the
whole patchset and start point for the patches to be re-generated/updated. whole patchset and start point for the patches to be re-generated/updated.
""" """
import bb import bb.process
# Get current branch # Get current branch
stdout, _ = bb.process.run('git rev-parse --abbrev-ref HEAD', stdout, _ = bb.process.run('git rev-parse --abbrev-ref HEAD',
@@ -1309,6 +1309,7 @@ def _export_patches(srctree, rd, start_revs, destdir, changed_revs=None):
""" """
import oe.recipeutils import oe.recipeutils
from oe.patch import GitApplyTree from oe.patch import GitApplyTree
import bb.process
updated = OrderedDict() updated = OrderedDict()
added = OrderedDict() added = OrderedDict()
seqpatch_re = re.compile('^([0-9]{4}-)?(.+)') seqpatch_re = re.compile('^([0-9]{4}-)?(.+)')
@@ -1378,6 +1379,7 @@ def _export_patches(srctree, rd, start_revs, destdir, changed_revs=None):
def _create_kconfig_diff(srctree, rd, outfile): def _create_kconfig_diff(srctree, rd, outfile):
"""Create a kconfig fragment""" """Create a kconfig fragment"""
import bb.process
# Only update config fragment if both config files exist # Only update config fragment if both config files exist
orig_config = os.path.join(srctree, '.config.baseline') orig_config = os.path.join(srctree, '.config.baseline')
new_config = os.path.join(srctree, '.config.new') new_config = os.path.join(srctree, '.config.new')
@@ -1415,6 +1417,8 @@ def _export_local_files(srctree, rd, destdir, srctreebase):
- for removed dict, the absolute path to the existing file in recipe space - for removed dict, the absolute path to the existing file in recipe space
""" """
import oe.recipeutils import oe.recipeutils
import bb.data
import bb.process
# Find out local files (SRC_URI files that exist in the "recipe space"). # Find out local files (SRC_URI files that exist in the "recipe space").
# Local files that reside in srctree are not included in patch generation. # Local files that reside in srctree are not included in patch generation.
@@ -1506,7 +1510,7 @@ def _determine_files_dir(rd):
def _update_recipe_srcrev(recipename, workspace, srctree, rd, appendlayerdir, wildcard_version, no_remove, no_report_remove, dry_run_outdir=None): def _update_recipe_srcrev(recipename, workspace, srctree, rd, appendlayerdir, wildcard_version, no_remove, no_report_remove, dry_run_outdir=None):
"""Implement the 'srcrev' mode of update-recipe""" """Implement the 'srcrev' mode of update-recipe"""
import bb import bb.process
import oe.recipeutils import oe.recipeutils
dry_run_suffix = ' (dry-run)' if dry_run_outdir else '' dry_run_suffix = ' (dry-run)' if dry_run_outdir else ''
@@ -1607,7 +1611,6 @@ def _update_recipe_srcrev(recipename, workspace, srctree, rd, appendlayerdir, wi
def _update_recipe_patch(recipename, workspace, srctree, rd, appendlayerdir, wildcard_version, no_remove, no_report_remove, initial_rev, dry_run_outdir=None, force_patch_refresh=False): def _update_recipe_patch(recipename, workspace, srctree, rd, appendlayerdir, wildcard_version, no_remove, no_report_remove, initial_rev, dry_run_outdir=None, force_patch_refresh=False):
"""Implement the 'patch' mode of update-recipe""" """Implement the 'patch' mode of update-recipe"""
import bb
import oe.recipeutils import oe.recipeutils
recipefile = rd.getVar('FILE') recipefile = rd.getVar('FILE')
@@ -1786,6 +1789,7 @@ def _update_recipe_patch(recipename, workspace, srctree, rd, appendlayerdir, wil
def _guess_recipe_update_mode(srctree, rdata): def _guess_recipe_update_mode(srctree, rdata):
"""Guess the recipe update mode to use""" """Guess the recipe update mode to use"""
import bb.process
src_uri = (rdata.getVar('SRC_URI') or '').split() src_uri = (rdata.getVar('SRC_URI') or '').split()
git_uris = [uri for uri in src_uri if uri.startswith('git://')] git_uris = [uri for uri in src_uri if uri.startswith('git://')]
if not git_uris: if not git_uris:
@@ -1807,6 +1811,8 @@ def _guess_recipe_update_mode(srctree, rdata):
return 'patch' return 'patch'
def _update_recipe(recipename, workspace, rd, mode, appendlayerdir, wildcard_version, no_remove, initial_rev, no_report_remove=False, dry_run_outdir=None, no_overrides=False, force_patch_refresh=False): def _update_recipe(recipename, workspace, rd, mode, appendlayerdir, wildcard_version, no_remove, initial_rev, no_report_remove=False, dry_run_outdir=None, no_overrides=False, force_patch_refresh=False):
import bb.data
import bb.process
srctree = workspace[recipename]['srctree'] srctree = workspace[recipename]['srctree']
if mode == 'auto': if mode == 'auto':
mode = _guess_recipe_update_mode(srctree, rd) mode = _guess_recipe_update_mode(srctree, rd)
@@ -1929,6 +1935,7 @@ def status(args, config, basepath, workspace):
def _reset(recipes, no_clean, remove_work, config, basepath, workspace): def _reset(recipes, no_clean, remove_work, config, basepath, workspace):
"""Reset one or more recipes""" """Reset one or more recipes"""
import bb.process
import oe.path import oe.path
def clean_preferred_provider(pn, layerconf_path): def clean_preferred_provider(pn, layerconf_path):
@@ -2032,8 +2039,6 @@ def _reset(recipes, no_clean, remove_work, config, basepath, workspace):
def reset(args, config, basepath, workspace): def reset(args, config, basepath, workspace):
"""Entry point for the devtool 'reset' subcommand""" """Entry point for the devtool 'reset' subcommand"""
import bb
import shutil
recipes = "" recipes = ""
+1
View File
@@ -169,6 +169,7 @@ def _get_uri(rd):
def _extract_new_source(newpv, srctree, no_patch, srcrev, srcbranch, branch, keep_temp, tinfoil, rd): def _extract_new_source(newpv, srctree, no_patch, srcrev, srcbranch, branch, keep_temp, tinfoil, rd):
"""Extract sources of a recipe with a new version""" """Extract sources of a recipe with a new version"""
import oe.patch
def __run(cmd): def __run(cmd):
"""Simple wrapper which calls _run with srctree as cwd""" """Simple wrapper which calls _run with srctree as cwd"""