mirror of
https://git.yoctoproject.org/poky
synced 2026-02-26 19:39:40 +01:00
bitbake: Revert "fetch2/gitsm: use configparser to parse .gitmodules"
This reverts commit a4f42e396e2942fde94b8b4944487c1c45f7a295. Unfortunately configparser is a bit more strict and fails to parse e.g.:e104dd7f27/.gitmodules[submodule "components/bt/controller/lib_esp32"] path = components/bt/controller/lib_esp32 url = ../../espressif/esp32-bt-lib.git The url is using 8 spaces while path 1 tab causing: Exception: configparser.NoOptionError: No option 'url' in section: 'submodule "components/bt/controller/lib_esp32"' It was fixed in:62ca8e2fb4 (diff-fe7afb5c9c916e521401d3fcfb4277d5071798c3baf83baf11d6071742823584)but mcuboot is using a bit older esp-idf revision in: https://github.com/ATmobica/mcuboot/blame/main/.gitmodules and mcuboot is then used as submodule in: https://github.com/project-chip/connectedhomeip/blob/master/.gitmodules so it might take a while for the fix to be propagated everywhere. Not sure how common these issues are, but configparser parses "url = ../../espressif/esp32-bt-lib.git" as 2nd line of "path" value (because it's indented differently) while git submodule and old gitsm implementation parses it as separate path and url keys. (Bitbake rev: d9eb2650256292a524a0c0bb1c0562d87bedcbc4) Signed-off-by: Martin Jansa <martin.jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
7004840f3d
commit
1e6e8cb896
@@ -47,20 +47,18 @@ class GitSM(Git):
|
||||
subrevision = {}
|
||||
|
||||
def parse_gitmodules(gitmodules):
|
||||
"""
|
||||
Parse .gitmodules and return a dictionary of submodule paths to dictionaries with path and url members.
|
||||
"""
|
||||
import configparser
|
||||
cp = configparser.ConfigParser()
|
||||
cp.read_string(gitmodules)
|
||||
|
||||
modules = {}
|
||||
for section in [s for s in cp.sections() if s.startswith("submodule ")]:
|
||||
module = section.split('"')[1]
|
||||
modules[module] = {
|
||||
'path': cp.get(section, 'path'),
|
||||
'url': cp.get(section, 'url')
|
||||
}
|
||||
module = ""
|
||||
for line in gitmodules.splitlines():
|
||||
if line.startswith('[submodule'):
|
||||
module = line.split('"')[1]
|
||||
modules[module] = {}
|
||||
elif module and line.strip().startswith('path'):
|
||||
path = line.split('=')[1].strip()
|
||||
modules[module]['path'] = path
|
||||
elif module and line.strip().startswith('url'):
|
||||
url = line.split('=')[1].strip()
|
||||
modules[module]['url'] = url
|
||||
return modules
|
||||
|
||||
# Collect the defined submodules, and their attributes
|
||||
|
||||
Reference in New Issue
Block a user