From 354069216ea32e4ef52c86994cb462b007e40a85 Mon Sep 17 00:00:00 2001 From: CJH <1819874027@qq.com> Date: Sat, 23 Sep 2023 09:43:04 +0800 Subject: [PATCH] openeuler.bbclass: resolve some package do_fetch failure Resolve some package do_fetch failure, such as mtd-utils Change openeuler.bbclass::do_openeuler_fetch logic Do_fetch packages that are not in the manifest enters the else branch Signed-off-by: chenjiahong <1819874027@qq.com> --- meta-openeuler/classes/openeuler.bbclass | 28 ++++++++++++++++-------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/meta-openeuler/classes/openeuler.bbclass b/meta-openeuler/classes/openeuler.bbclass index 5ef65ae435b..ada847db891 100644 --- a/meta-openeuler/classes/openeuler.bbclass +++ b/meta-openeuler/classes/openeuler.bbclass @@ -158,7 +158,7 @@ python do_openeuler_fetch() { return repo_dir = os.path.join(srcDir, localName) - repo_url = os.path.join(gitUrl, repoName) + repo_url = os.path.join(gitUrl, repoName + ".git") except_str = None try: @@ -167,7 +167,9 @@ python do_openeuler_fetch() { manifest_list = get_manifest(d.getVar("MANIFEST_DIR")) if localName in manifest_list: repo_item = manifest_list[localName] - download_repo(repo_dir = repo_dir, repo_url = repo_item['remote_url'], version = repo_item['version']) + download_repo(repo_dir = repo_dir, repo_url = repo_item['remote_url'], repo_branch = repoBranch, version = repo_item['version']) + else: + download_repo(repo_dir = repo_dir, repo_url = repo_url, repo_branch = repoBranch) else: bb.fatal("openEuler Embedded build need manifest.yaml") except GitError: @@ -204,8 +206,8 @@ def init_repo_dir(repo_dir): wr.set_value('http', 'sslverify', 'false').release() return repo -# init repo in repo_dir from manifest file -def download_repo(repo_dir, repo_url ,version = None): +# init repo in repo_dir +def download_repo(repo_dir, repo_url , repo_branch, version = None): import git from git import GitCommandError @@ -223,11 +225,19 @@ def download_repo(repo_dir, repo_url ,version = None): remote_name = "upstream" remote = git.Remote.add(repo = repo, name = remote_name, url = repo_url) - remote.fetch(version, depth=1) - # if repo is modified, restore it - if repo.is_dirty(): - repo.git.checkout(".") - repo.git.checkout(version) + # determine whether the variable version is None + if version is not None: + remote.fetch(version, depth=1) + # if repo is modified, restore it + if repo.is_dirty(): + repo.git.checkout(".") + repo.git.checkout(version) + else: + remote.fetch() + # if repo is modified, restore it + if repo.is_dirty(): + repo.git.checkout(".") + repo.git.checkout(repo_branch) bb.utils.unlockfile(lf) -- Gitee