openubmc-bingo 0.6.13__py3-none-any.whl → 0.6.21__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of openubmc-bingo might be problematic. Click here for more details.

bmcgo/__init__.py CHANGED
@@ -9,4 +9,4 @@
9
9
  # MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
10
10
  # See the Mulan PSL v2 for more details.
11
11
 
12
- __version__ = '0.6.13'
12
+ __version__ = '0.6.21'
bmcgo/cli/cli.py CHANGED
@@ -20,6 +20,7 @@ import stat
20
20
  import json
21
21
  import re
22
22
  import traceback
23
+ from tempfile import NamedTemporaryFile
23
24
  from importlib.util import spec_from_file_location, module_from_spec
24
25
 
25
26
  import yaml
@@ -244,7 +245,8 @@ class Command(object):
244
245
  """
245
246
  if not self._check_conan():
246
247
  return 1
247
- self._check_conan_profile
248
+ self._check_conan_profile()
249
+
248
250
  try:
249
251
  command = args[0][0]
250
252
  except IndexError: # No parameters
@@ -310,16 +312,44 @@ class Command(object):
310
312
  studio_version = self._bmc_studio_version()
311
313
  if studio_version:
312
314
  log.info("bmc-studio 版本为: %s", studio_version)
315
+
316
+ def conan_init(self):
317
+ if misc.conan_v2():
318
+ tools.run_command("conan profile detect --force")
319
+ else:
320
+ tools.run_command("conan config init")
321
+ tools.run_command("conan config set general.revisions_enabled=1")
313
322
 
314
323
  def _check_conan_profile(self):
315
324
  profile_dir = os.path.join(tools.conan_home, "profiles")
316
- if os.path.isdir(profile_dir):
317
- return
325
+ if not os.path.isdir(profile_dir):
326
+ self.conan_init()
318
327
 
319
328
  if misc.conan_v2():
320
- log.info("检测到依赖conan2.0但未正确初始化,需要切换到产品仓执行一次构建,以安装和配置工具链")
329
+ bingo_profiles = "/usr/share/bingo/profiles_for_conan2"
321
330
  else:
322
- log.info("检测到依赖conan1.0但未正确初始化,需要切换到产品仓执行一次构建,以安装和配置工具链")
331
+ bingo_profiles = "/usr/share/bingo/profiles_for_conan1"
332
+ if not os.path.isdir("/opt/RTOS"):
333
+ log.info(f"未检测到/opt/RTOS目录,可能未安装构建工具,请正确安装构建工具(可以manifest仓执行init.py或{misc.tool_name()} build)")
334
+ return
335
+ rtos_version = ""
336
+ for ver in os.listdir("/opt/RTOS"):
337
+ if re.match("^208\\.[0-9]+\\.[0-9]+$", ver):
338
+ if rtos_version:
339
+ log.warning(f"/opt/RTOS安装了多个RTOS工具版本,版本不匹配将导致编译失败,建议只保留其中一个,本次将使用{rtos_version}构建。")
340
+ break
341
+ rtos_version = ver
342
+ if not rtos_version:
343
+ log.info(f"未检测到/opt/RTOS目录下的构建工具,可能未安装构建工具,请正确安装构建工具(可以manifest仓执行init.py或{misc.tool_name()} build)")
344
+ return
345
+ for file in os.listdir(bingo_profiles):
346
+ os.makedirs(profile_dir, exist_ok=True)
347
+ src_file = os.path.join(bingo_profiles, file)
348
+ dst_file = os.path.join(profile_dir, file)
349
+ if not os.path.isfile(dst_file):
350
+ log.info(f"复制 {src_file} 到 {dst_file}")
351
+ tools.run_command(f"cp {src_file} {dst_file}")
352
+ tools.run_command(f"sed -i 's/208\\.[0-9]\\+\\.[0-9]\\+/{rtos_version}/g' {dst_file}", command_echo=False)
323
353
 
324
354
  def _check_conan(self):
325
355
  need_conan_v2 = False
@@ -51,7 +51,7 @@ class CodeGen(object):
51
51
  return lua_format
52
52
 
53
53
  def get_mdb_interface_package(self):
54
- channel = f"@{misc.conan_user()}/{misc.StageEnum.STAGE_RC.value}"
54
+ channel = f"@{misc.conan_user()}/{misc.StageEnum.STAGE_STABLE.value}"
55
55
  package = f"mdb_interface/[>=0.0.1]{channel}"
56
56
  dependencies = self.read_service_json().get(misc.CONAN_DEPDENCIES_KEY)
57
57
  if not dependencies:
@@ -110,7 +110,7 @@ class CodeGen(object):
110
110
  mdb_interface_tmp_dir = os.path.join(conan_home, "latest_mdb_interface")
111
111
  env = dict(os.environ, CONAN_STORAGE_PATH=mdb_interface_tmp_dir)
112
112
 
113
- channel = f"@{misc.conan_user()}/{misc.StageEnum.STAGE_RC.value}"
113
+ channel = f"@{misc.conan_user()}/{misc.StageEnum.STAGE_STABLE.value}"
114
114
  package = f"mdb_interface/[>=0.0.1]{channel}"
115
115
 
116
116
  cmd = ["conan", "install", package, f"-if={temp_dir}", "--update", "--build=missing", "-g", "deploy"]
@@ -121,6 +121,45 @@ class CodeGen(object):
121
121
  subprocess.run(cmd, env=env)
122
122
  shutil.copytree(os.path.join(temp_dir, "mdb_interface/opt/bmc/apps/mdb_interface"), target_dir)
123
123
  shutil.rmtree(temp_dir, ignore_errors=True)
124
+
125
+ def setup_mdb_interfacev2(self):
126
+ target_dir = os.path.join(self.project_dir, 'temp/opt/bmc/apps/mdb_interface')
127
+ shutil.rmtree(target_dir, ignore_errors=True)
128
+ temp_dir = os.path.join(self.project_dir, 'temp/.mdb_interface_temp')
129
+ shutil.rmtree(temp_dir, ignore_errors=True)
130
+ os.makedirs(temp_dir, exist_ok=True)
131
+ if self.get_mdb_interface_url(temp_dir, target_dir):
132
+ shutil.rmtree(temp_dir, ignore_errors=True)
133
+ return
134
+ package = self.get_mdb_interface_package()
135
+ cmd = ["conan", "install", f"--requires={package}", f"-of={temp_dir}", "--build=missing", "-d", "direct_deploy",
136
+ f"--deployer-folder={temp_dir}"]
137
+ cmd += ["-pr=profile.dt.ini"]
138
+ if self.remote:
139
+ cmd += ["-r", self.remote]
140
+ subprocess.call(cmd)
141
+ shutil.copytree(os.path.join(temp_dir, "direct_deploy/mdb_interface/opt/bmc/apps/mdb_interface"), target_dir)
142
+ shutil.rmtree(temp_dir, ignore_errors=True)
143
+
144
+ def setup_latest_mdb_interfacev2(self):
145
+ target_dir = os.path.join(self.project_dir, 'temp/opt/bmc/apps/latest_mdb_interface')
146
+ shutil.rmtree(target_dir, ignore_errors=True)
147
+ temp_dir = os.path.join(self.project_dir, 'temp/.latest_mdb_interface_temp')
148
+ shutil.rmtree(temp_dir, ignore_errors=True)
149
+ os.makedirs(temp_dir, exist_ok=True)
150
+
151
+ channel = f"@{misc.conan_user()}/{misc.StageEnum.STAGE_STABLE.value}"
152
+ package = f"mdb_interface/[>=0.0.1]{channel}"
153
+
154
+ cmd = ["conan", "install", f"--requires={package}", f"-of={temp_dir}", "--build=missing", "-d", "direct_deploy",
155
+ "--update", f"--deployer-folder={temp_dir}"]
156
+ cmd += ["-pr=profile.dt.ini"]
157
+ if self.remote:
158
+ cmd += ["-r", self.remote]
159
+
160
+ subprocess.run(cmd)
161
+ shutil.copytree(os.path.join(temp_dir, "direct_deploy/mdb_interface/opt/bmc/apps/mdb_interface"), target_dir)
162
+ shutil.rmtree(temp_dir, ignore_errors=True)
124
163
 
125
164
  def is_valid_date(self, date_str):
126
165
  pattern = r'^-- Create: \d{4}-\d{1,2}-\d{1,2}$'
@@ -164,8 +203,12 @@ class CodeGen(object):
164
203
  def generate_code_run(self, args):
165
204
  shutil.rmtree(self.gen_tool_dir, ignore_errors=True)
166
205
  shutil.copytree(cwd, self.gen_tool_dir)
167
- self.setup_mdb_interface()
168
- self.setup_latest_mdb_interface()
206
+ if misc.conan_v2():
207
+ self.setup_mdb_interfacev2()
208
+ self.setup_latest_mdb_interfacev2()
209
+ else:
210
+ self.setup_mdb_interface()
211
+ self.setup_latest_mdb_interface()
169
212
  lua_format = self.get_lua_format()
170
213
  cmd = [
171
214
  "/usr/bin/make", "-j12", f"PROJECT_NAME={self.project_name}", f"TPL_DIR={self.gen_tool_dir}",
@@ -115,7 +115,10 @@ class ConanBase(ConanFile):
115
115
  if not url:
116
116
  update_conandata(self, {"sources": {self.version: {"branch": None, "url": None, "pwd": os.getcwd(), "timestamp": int(time.time())}}})
117
117
  return
118
- tag = git.run("tag --points-at HEAD")
118
+ try:
119
+ tag = git.run(f"tag --points-at HEAD | grep {self.version}")
120
+ except:
121
+ tag = ""
119
122
  update_conandata(self, {"sources": {self.version: {"branch": f"refs/tags/{tag}" if tag else commit, "url": url}}})
120
123
  % endif
121
124
 
bmcgo/tasks/task.py CHANGED
@@ -54,7 +54,7 @@ class Task(Process):
54
54
  # OPENUBMC_DEFAULT_VENDOR环境变量未设置时,使用openubmc
55
55
  self.vendor = self.get_manufacture_config("base/vendor", misc.vendor())
56
56
  os.environ["OPENUBMC_PRODUCT_VENDOR"] = self.vendor
57
- self.customization_dir = os.path.join(self.config.build_path, "customizations")
57
+ self.conan_install = os.path.join(self.config.build_path, "conan_install")
58
58
 
59
59
  @property
60
60
  def conan_home(self):
@@ -331,14 +331,17 @@ class Task(Process):
331
331
 
332
332
  def _component_cust_action_v2(self, action: str):
333
333
  profile, _ = self.get_profile_config()
334
- for name in os.listdir(self.customization_dir):
335
- path_dir = os.path.join(self.customization_dir, name)
334
+ for name in os.listdir(self.conan_install):
335
+ path_dir = os.path.join(self.conan_install, name)
336
+ cust = os.path.join(path_dir, "include", "customization.py")
337
+ if not os.path.isfile(cust):
338
+ continue
336
339
  self.info(f"开始执行组件 {name} 定制化 {action},定制脚本 {path_dir}/include/customization.py")
337
340
  post = ComponentPost(self.config, path_dir, profile)
338
341
  post.post_work(os.getcwd(), action)
339
342
 
340
343
  def _component_cust_action_v1(self, action: str):
341
- conan_install = f"{self.config.build_path}/conan_install"
344
+ conan_install = self.conan_install
342
345
 
343
346
  # 优先处理rootfs定制化脚本
344
347
  comps = ["rootfs"]
@@ -333,8 +333,6 @@ class TaskClass(Task):
333
333
  def update_path(self):
334
334
  # conan source folder
335
335
  self.conan_source = os.path.join(self.config.build_path, misc.community_name())
336
- # conan install folder
337
- self.conan_install = os.path.join(self.config.build_path, "conan_install")
338
336
  # openubmc install folder
339
337
  self.openubmc_ins_dir = os.path.join(self.conan_install, misc.community_name())
340
338
  # openubmc top rootfs folder
@@ -964,19 +962,19 @@ class TaskClass(Task):
964
962
  rootfs.package_folder = os.path.join(self.conan_install, misc.community_name())
965
963
  self.graph_nodes[misc.community_name()] = rootfs
966
964
 
967
- def make_customization_symlinks(self):
968
- if os.path.isdir(self.customization_dir):
969
- self.run_command(f"rm -rf {self.customization_dir}")
970
- self.run_command(f"mkdir -p {self.customization_dir}")
965
+ def copy_component_include_dirs(self):
971
966
  for name, node in self.graph_nodes.items():
967
+ if node.package_folder.startswith(self.conan_install):
968
+ continue
972
969
  cust = os.path.join(node.package_folder, "include", "customization.py")
973
970
  if not os.path.isfile(cust):
974
971
  continue
975
- os.symlink(node.package_folder, os.path.join(self.customization_dir, name))
972
+ comp_dir = os.path.join(self.conan_install, name)
973
+ shutil.copytree(node.package_folder, comp_dir)
976
974
 
977
975
  def package_v2(self):
978
976
  self.update_graph_nodes()
979
- self.make_customization_symlinks()
977
+ self.copy_component_include_dirs()
980
978
  self.run_command(f"sudo rm -rf {self.config.rootfs_path}")
981
979
  os.makedirs(self.config.rootfs_path)
982
980
  profile, _ = self.get_profile_config()
@@ -114,6 +114,7 @@ class BuildConans(object):
114
114
  # 首次增量构建失败时切换到源码构建模式
115
115
  if i == 1 and not self.force_build:
116
116
  cmd += f" --build=\"{node.name}/*\""
117
+ continue
117
118
 
118
119
  log.error(f"================== {node.name} 构建失败日志起始位置 ==================")
119
120
  f.seek(0)
@@ -45,6 +45,8 @@ class FetchComponentCode:
45
45
  def resolve_version_range(component_name, version_range):
46
46
  cmd = f"conan info '{version_range}' --package-filter={component_name}/*" \
47
47
  f" -r {misc.conan_remote()} --only None 2>/dev/null"
48
+ if misc.conan_v2():
49
+ cmd = f"conan graph info --requires='{version_range}' --filter {component_name}"
48
50
  ret, output = subprocess.getstatusoutput(cmd)
49
51
  output = output.strip()
50
52
  if ret != 0 or not output:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openubmc-bingo
3
- Version: 0.6.13
3
+ Version: 0.6.21
4
4
  Summary: Tools provided by openubmc
5
5
  Home-page: https://openubmc.cn
6
6
  Classifier: Programming Language :: Python :: 3
@@ -1,4 +1,4 @@
1
- bmcgo/__init__.py,sha256=Uh6sIl54OeKW_-VdwePJtnT2PnzcqBgPSynw8oQA4HQ,562
1
+ bmcgo/__init__.py,sha256=Oam3SkOb8QiCRykhhHrp4EPrCj2Lo20xJkOI7vXC8p0,562
2
2
  bmcgo/bmcgo.py,sha256=uD4TsfjrFB5aQPIS6WRUVc9ShXX-dSImY9ezkB13g1w,685
3
3
  bmcgo/bmcgo_config.py,sha256=-HZcTsnccE5wUsgGJ59kq8sDdu8feftIbpyoFvyvBhU,11264
4
4
  bmcgo/errors.py,sha256=QW1ndrJcJ2Ws7riOznPKVvZsNlrYk73eZol7w8gJTPU,3076
@@ -7,7 +7,7 @@ bmcgo/logger.py,sha256=rcMqJnyQ5Ag3k04KLEskrG8ZJ508OOU_JH4fMFiGOqQ,6644
7
7
  bmcgo/misc.py,sha256=w0vzsD7uzrsxTly5Y1viLgYTKHhLP4sxa499XwbqHnU,6986
8
8
  bmcgo/worker.py,sha256=OXz5Gam3pmZjgQeoGJrYy73ZrQszCOxk9X19nbeBI_A,15710
9
9
  bmcgo/cli/__init__.py,sha256=BDXz8BcSlCkfo5UYt6j2rm89-HiYA1ZzfpFhy99MH-0,538
10
- bmcgo/cli/cli.py,sha256=KhencIa6l77zCkf9ssxCG3kmK1O2u0RsK-Ge_AJly-Y,25556
10
+ bmcgo/cli/cli.py,sha256=MY-DIvJ4q0roWfshZHkPaG1VGoWWrQcKDYx5ahE-IRg,27116
11
11
  bmcgo/cli/config.conan2.yaml,sha256=SAtM_6_qOjZbkgUT5fzWbhbq4aWCayqE8o4xJ2vBRww,261
12
12
  bmcgo/cli/config.yaml,sha256=tbnFhz2TTrl2-ALpHHujbXB1ymZpjGC4f0zTfqfUZfM,194
13
13
  bmcgo/codegen/__init__.py,sha256=eplRBfR_obzVWMQtIeX1RRq6DOEezBx_l1EqcZYLRPM,775
@@ -35,7 +35,7 @@ bmcgo/codegen/c/template/server.h.mako,sha256=hZg1U64YKtlUm4wuKRobhjGW8e7rzFu9xg
35
35
  bmcgo/codegen/lua/.lua-format,sha256=h6RLqe84SjDqKO1mqoCW7XVtrAwDMTRM1Rj8nwzPGwQ,188
36
36
  bmcgo/codegen/lua/Makefile,sha256=wliuAhxhChrpsTnWuOlje3gtW2KRqayIhGRYBkvFi-c,3304
37
37
  bmcgo/codegen/lua/__init__.py,sha256=2yU9vzUVQmMJ0qBtNJ-AfKpnOzYZo4wAxlRnpFwgE7M,521
38
- bmcgo/codegen/lua/codegen.py,sha256=tyIe6JQ6DGDkRuA7i79HZS59ffHuzBHVjuEQ3BVr3oA,9063
38
+ bmcgo/codegen/lua/codegen.py,sha256=Ka2ZCkbhkB9b8QwMSE7tMPI9argikmWmbFm_YrTuRkY,11222
39
39
  bmcgo/codegen/lua/proto/Makefile,sha256=rS4nEBwWJEDYAb5XN9S7SfII7RMFb071jh0eh_KJePo,3098
40
40
  bmcgo/codegen/lua/proto/ipmi_types.proto,sha256=BX09mymhhPkWqZE1UCVJACpLBeQh1vQN31oBRVVieFY,377
41
41
  bmcgo/codegen/lua/proto/types.proto,sha256=_X8JCKZCvO6PfWh6tuWcEqKHROrh46rCZab-OCkfirA,1162
@@ -190,7 +190,7 @@ bmcgo/component/coverage/c_incremental_cov_report.template,sha256=FPhK1DZtmWsjDx
190
190
  bmcgo/component/coverage/incremental_cov.py,sha256=Uf-UdY4CW9rpP4sbURkCXBWyYMXWaG3R1Pyo3cDNvcQ,16859
191
191
  bmcgo/component/template/conanbase.py.mako,sha256=dNvbToMSYI7jod7maCpR0PBizvVoQHvXxglmN9LNflg,10984
192
192
  bmcgo/component/template/conanfile.deploy.py.mako,sha256=zpxluBjUFmJHfFrnBknxZ3cv3cxcqzJuGh2eN0uMXZA,889
193
- bmcgo/component/template_v2/conanbase.py.mako,sha256=X27JBoMWq_kUaxJpNHLuS9idmDENGmQNTI4nHg0ReJU,15599
193
+ bmcgo/component/template_v2/conanbase.py.mako,sha256=fz2i1A4LecWfsvKno7ru_jRAVqR7G8dyj54SgQPKAv4,15676
194
194
  bmcgo/component/template_v2/conanfile.deploy.py.mako,sha256=Xbd-PlfVHOWeRFLfvzINeykiZzzSHsgO_yUUvYrKqTw,512
195
195
  bmcgo/functional/__init__.py,sha256=BDXz8BcSlCkfo5UYt6j2rm89-HiYA1ZzfpFhy99MH-0,538
196
196
  bmcgo/functional/analysis.py,sha256=pXakxSojBH-dULngbmgMHR3bq9tphOaAN4euGKgEYoc,4016
@@ -223,8 +223,8 @@ bmcgo/target/publish.yml,sha256=WvaJAUZ0_6CMV3O1p1t6dagHe-DdLcXqLxKP11_ki1E,1615
223
223
  bmcgo/tasks/__init__.py,sha256=VapgzhPMmB7dzPIRohoVm1jjfVn_v97cYNCRmkxScaU,539
224
224
  bmcgo/tasks/download_buildtools_hm.py,sha256=f4UxStARc8Z8DnT_5O6ONajQ7P0sKyJ8brixr43fHVQ,5988
225
225
  bmcgo/tasks/misc.py,sha256=GK_bSDLGZW0FxywB2ICG1iIEz2y2QoCb1YQQk8SYOIA,711
226
- bmcgo/tasks/task.py,sha256=ayh9mxKKLtk2XKzjqXOl6Pe8fcg7S1nTks153hKT9Rw,18321
227
- bmcgo/tasks/task_build_conan.py,sha256=euVymOxVKwCv4FJMAh_dPU-Ii0WujWIXdg_I5l8Cj-A,49970
226
+ bmcgo/tasks/task.py,sha256=X1CFVHIjS9ej9S3euZtb7yiMdTCizuLvXbgZntT_duo,18424
227
+ bmcgo/tasks/task_build_conan.py,sha256=o08zhFXvipn-8mTzNtlTYu3m_a2rNr9rRDvsNC0Raxg,49803
228
228
  bmcgo/tasks/task_build_rootfs_img.py,sha256=JKEvldJnLWu2IdVSntuVowocQwdVtBQUpxzhplYauPI,29209
229
229
  bmcgo/tasks/task_build_wbd_up.py,sha256=X9-0Qqad-s3mGfJBMeBQvfZ99KlWcgaMluDr_zv6Z-o,3122
230
230
  bmcgo/tasks/task_buildgppbin.py,sha256=epBxxrYFPgoTzpBgPzSRXcUs-ia_BJWsLGflylEJS7I,6614
@@ -241,12 +241,12 @@ bmcgo/tasks/conan/conanfile.py,sha256=MI6c2QNKixrkA5Tx4i9EKw7bZ20GVDIKgkaMwNHQKc
241
241
  bmcgo/utils/__init__.py,sha256=BDXz8BcSlCkfo5UYt6j2rm89-HiYA1ZzfpFhy99MH-0,538
242
242
  bmcgo/utils/basic_enums.py,sha256=L5VtHtzSvs6duAnphgqDGXX80Wit3Y7DjMlpi9MCxyI,1348
243
243
  bmcgo/utils/buffer.py,sha256=t1SkWntWksboNFMPsltslwRdXZi3FAe8eV0JAAE7Vto,4004
244
- bmcgo/utils/build_conans.py,sha256=-60beCS_TqAdlFvmL5aAEm8MtNX6hcGa-PIdtB3RCj4,9711
244
+ bmcgo/utils/build_conans.py,sha256=lEaZFCTjRc8pLWXWw71n7zl4zwmWg1s561Atn-Y32HA,9748
245
245
  bmcgo/utils/combine_json_schemas.py,sha256=08JrAlLeo_JgUqzYcZNgSwJZPLfjbWVJ4esPPt9bPMY,7967
246
246
  bmcgo/utils/component_post.py,sha256=rTSMv36geI6rbm6ZFQenZfG0mn1nVPpdJqn7g8bYtKA,2330
247
247
  bmcgo/utils/component_version_check.py,sha256=nKfav7EnJ_JWfCvH_SiyhhIapGXUzhFs1QvLb58MPBs,6266
248
248
  bmcgo/utils/config.py,sha256=xCljGFk7m8IVsCSchJDAzollZEZyXoMDLIgqRMepL-I,49952
249
- bmcgo/utils/fetch_component_code.py,sha256=gUjZX1m6tzUaleKrA3V42gbOFnNtepZaxItATc6nQa4,11159
249
+ bmcgo/utils/fetch_component_code.py,sha256=WtPJ5h1nM87X6RicrAhMOJzOzh9A0jD3CbjPc4A-REo,11280
250
250
  bmcgo/utils/install_manager.py,sha256=XMZUuIHm7_DWRdLV4dAevsyamQ6rt8lb_7OqGWzNBC8,4927
251
251
  bmcgo/utils/json_validator.py,sha256=_k5wU78wfYGrzvSDaqOEtT4otgKUjquVhZNpVf2PW_c,7524
252
252
  bmcgo/utils/mapping_config_patch.py,sha256=_gKfZnrvsLPgHn1yXhEJRVTAeuGpeGD9T-Pqyw5Ydys,16827
@@ -264,8 +264,8 @@ bmcgo/utils/installations/install_plans/qemu.yml,sha256=lT7aKag60QUH6hTGFKa3hGRq
264
264
  bmcgo/utils/installations/install_plans/studio.yml,sha256=APR3GM-3Q11LFfe8vh7t3LztDn4LLEpNHRUNjkaVekA,143
265
265
  bmcgo/utils/installations/installers/apt_installer.py,sha256=nPaCb4cobSi9InN_aHsEPtQ0k4FgsCUWE5_VgBPvcRE,3769
266
266
  bmcgo/utils/installations/installers/pip_installer.py,sha256=dDdios1EQ7fzt90r02pZeoM3jCmjslLzkSvzd2hgRVM,3241
267
- openubmc_bingo-0.6.13.dist-info/METADATA,sha256=5np_r3mkW_I_pGTIl4TJWGclGljGW10m7yqFh-kyu9g,1010
268
- openubmc_bingo-0.6.13.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
269
- openubmc_bingo-0.6.13.dist-info/entry_points.txt,sha256=UUoUP-vAWTgg9vEYbRwYqOBHgpRtkngdzMPb-ocz90g,42
270
- openubmc_bingo-0.6.13.dist-info/top_level.txt,sha256=9AcvCAt1nZcOgMsGt6T07mg2Bgtdet-3mHTwg91axgI,6
271
- openubmc_bingo-0.6.13.dist-info/RECORD,,
267
+ openubmc_bingo-0.6.21.dist-info/METADATA,sha256=fd5aaiA7Dbttae0qPRFYfbNkBEtgm-gjWz_ycuHc_7o,1010
268
+ openubmc_bingo-0.6.21.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
269
+ openubmc_bingo-0.6.21.dist-info/entry_points.txt,sha256=UUoUP-vAWTgg9vEYbRwYqOBHgpRtkngdzMPb-ocz90g,42
270
+ openubmc_bingo-0.6.21.dist-info/top_level.txt,sha256=9AcvCAt1nZcOgMsGt6T07mg2Bgtdet-3mHTwg91axgI,6
271
+ openubmc_bingo-0.6.21.dist-info/RECORD,,