openubmc-bingo 0.6.21__py3-none-any.whl → 0.6.25__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.21'
12
+ __version__ = '0.6.25'
bmcgo/cli/cli.py CHANGED
@@ -342,6 +342,8 @@ class Command(object):
342
342
  if not rtos_version:
343
343
  log.info(f"未检测到/opt/RTOS目录下的构建工具,可能未安装构建工具,请正确安装构建工具(可以manifest仓执行init.py或{misc.tool_name()} build)")
344
344
  return
345
+ if not os.path.isdir(bingo_profiles):
346
+ return
345
347
  for file in os.listdir(bingo_profiles):
346
348
  os.makedirs(profile_dir, exist_ok=True)
347
349
  src_file = os.path.join(bingo_profiles, file)
@@ -487,7 +487,7 @@ class ModelLuaUtils(Base, Utils):
487
487
  for key, value in input_dict.items():
488
488
  if isinstance(value, dict):
489
489
  _ = self.remove_description(value)
490
- if key == 'description':
490
+ if key in ['description', 'constraint', 'example']:
491
491
  keys_to_delete.append(key)
492
492
  for key in keys_to_delete:
493
493
  del input_dict[key]
bmcgo/component/build.py CHANGED
@@ -79,7 +79,7 @@ class BuildComp():
79
79
  options = ""
80
80
  if self.info.enable_luajit:
81
81
  luac_path = os.path.join(conan_bin, "luajit")
82
- options = "-0 skynet:enable_luajit=True"
82
+ options = "-o skynet:enable_luajit=True"
83
83
  skynet_flag += "_luajit"
84
84
  else:
85
85
  skynet_flag += "luac"
bmcgo/tasks/task.py CHANGED
@@ -33,7 +33,7 @@ from bmcgo.functional.simple_sign import BmcgoCommand as SimpleSign
33
33
 
34
34
  class Task(Process):
35
35
  name = "WorkBase"
36
- timeout = 1200
36
+ timeout = 1800
37
37
  description = "基础类"
38
38
  work_name = ""
39
39
  manifest_obj = None
@@ -407,6 +407,21 @@ class TaskClass(Task):
407
407
  file_handler.write(" - conan: \"{}\"\n".format(conan))
408
408
  self.success(f"获取到依赖: {conan}")
409
409
  self.depdencies.append(conan)
410
+ self.profile_tools_change(conan)
411
+
412
+ def profile_tools_change(self, pkg):
413
+ if pkg.startswith("luajit/"):
414
+ cmd = f"sed -i 's|^user.tools:luajit=.*|user.tools:luajit={pkg}|g'"
415
+ elif pkg.startswith("skynet/"):
416
+ cmd = f"sed -i 's|^user.tools:skynet=.*|user.tools:skynet={pkg}|g'"
417
+ else:
418
+ return
419
+ profile_file = os.path.join(self.tools.conan_profiles_dir, "profile.ini")
420
+ if os.path.isfile(profile_file):
421
+ self.run_command(f"{cmd} {profile_file}")
422
+ profile_file = os.path.join(self.tools.conan_profiles_dir, "profile.luajit.ini")
423
+ if os.path.isfile(profile_file):
424
+ self.run_command(f"{cmd} {profile_file}")
410
425
 
411
426
  def merge_manifest_v2(self):
412
427
  comps = []
@@ -561,6 +576,7 @@ class TaskClass(Task):
561
576
  require_list = list(bundle.keys())
562
577
  list.sort(require_list)
563
578
  package_info_list = deepcopy(require_list)
579
+ dst_file = os.path.join(self.config.rootfs_path, dst_file)
564
580
  self.run_command(f"rm -rf {dst_file}", sudo=True)
565
581
  with os.fdopen(os.open(self.package_info, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, stat.S_IWUSR | stat.S_IRUSR |
566
582
  stat.S_IWGRP | stat.S_IRGRP | stat.S_IWOTH | stat.S_IROTH), 'w') as fp:
@@ -570,7 +586,8 @@ class TaskClass(Task):
570
586
  else:
571
587
  package_info_list.remove(package)
572
588
  fp.close()
573
- self.run_command(f"cp -df {self.package_info} {dst_file}", sudo=True)
589
+ os.makedirs(os.path.dirname(dst_file), exist_ok=True)
590
+ self.run_command(f"cp -f {self.package_info} {dst_file}", sudo=True)
574
591
 
575
592
  def sensitive_data_conf_gen(self, comps, dst_file):
576
593
  self.run_command(f"rm -rf {dst_file}", sudo=True)
@@ -697,6 +714,8 @@ class TaskClass(Task):
697
714
  graph_cmd = f"conan graph info . {base_cmd} -f json --lockfile={self.lockfile} --out-file={self.graphfile}"
698
715
  self.run_command(graph_cmd)
699
716
  self.success(f"start build dependency packages of {self.config.board_name}")
717
+ if self.skip_install_comp:
718
+ return
700
719
  bcp = BuildConans(self.graphfile, self.lockfile, base_cmd, self.config.from_source, self.config.log_path)
701
720
  bcp.build()
702
721
 
@@ -741,11 +760,13 @@ class TaskClass(Task):
741
760
  self.run_command(install_cmd, command_echo=True, warn_log="缓存安装失败,可能缺少某个依赖项制品,开始从源码构建缺失的软件包")
742
761
  except Exception:
743
762
  ret = -1
763
+ shutil.copyfile(self.lockfile, f"{self.conan_install}/conan.lock")
764
+ if self.skip_install_comp:
765
+ return
744
766
  if ret != 0:
745
767
  bundle_parse = ConanLockParse("openubmc.bundle", self)
746
768
  bundle_parse.conan_parallel_build(cmd, self.config.build_path)
747
769
  self.run_command(install_cmd, command_echo=True)
748
- shutil.copyfile(self.lockfile, f"{self.conan_install}/conan.lock")
749
770
  # 检查使用到的组件是否都在单板目录 manifest.yml 中配置了
750
771
  self.component_check.run()
751
772
  self.clean_luac_out()
@@ -846,14 +867,17 @@ class TaskClass(Task):
846
867
  def package_info_gen_v2(self, bmc_lock, dst_file):
847
868
  with open(bmc_lock, "r") as bmc_lock_fp:
848
869
  lock_info = json.load(bmc_lock_fp)
849
- require_list = lock_info.get("requires")
850
- self.run_command(f"rm -rf {dst_file}", sudo=True)
870
+ require_list = lock_info.get("requires", [])
851
871
  with os.fdopen(os.open(self.package_info, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, stat.S_IWUSR | stat.S_IRUSR |
852
872
  stat.S_IWGRP | stat.S_IRGRP | stat.S_IWOTH | stat.S_IROTH), 'w') as fp:
853
873
  for package in require_list:
854
874
  fp.write(f"{package}\n")
855
875
  fp.close()
856
- self.run_command(f"cp -df {self.package_info} {dst_file}", sudo=True)
876
+ dst_file = os.path.join(self.config.rootfs_path, dst_file)
877
+ self.run_command(f"rm -rf {dst_file}", sudo=True)
878
+ os.makedirs(os.path.dirname(dst_file), exist_ok=True)
879
+ self.run_command(f"cp -f {self.package_info} {dst_file}", sudo=True)
880
+
857
881
 
858
882
  def sensitive_data_conf_gen_v2(self, dst_file):
859
883
  self.run_command(f"rm -rf {dst_file}", sudo=True)
@@ -1066,8 +1090,9 @@ class TaskClass(Task):
1066
1090
  self.run_command(cmd)
1067
1091
  cmd = f"cp temp/.deploy/luajit/usr/lib64/liblua.so {conan_bin}"
1068
1092
  self.run_command(cmd)
1069
- cmd = f"cp -r temp/.deploy/luajit/usr/bin/jit {conan_bin}"
1070
- self.run_command(cmd)
1093
+ if os.path.isfile("temp/.deploy/luajit/usr/bin/jit"):
1094
+ cmd = f"cp -r temp/.deploy/luajit/usr/bin/jit {conan_bin}"
1095
+ self.run_command(cmd)
1071
1096
  self.link(luac, luac_back)
1072
1097
  # 仅在覆盖率使能场景下,对luac进行打桩
1073
1098
  if self.config.enable_arm_gcov:
@@ -1086,6 +1111,10 @@ class TaskClass(Task):
1086
1111
  if self.only_manifest_yml:
1087
1112
  return
1088
1113
  self.package_lock()
1114
+ if misc.conan_v2():
1115
+ self.package_info_gen_v2(self.lockfile, "etc/package_info")
1116
+ else:
1117
+ self.package_info_gen(f"{self.conan_source}/all/openubmc.bundle", "etc/package_info")
1089
1118
  if not self.skip_package:
1090
1119
  self.package()
1091
1120
 
@@ -94,7 +94,8 @@ class BuildConans(object):
94
94
  if self.force_build:
95
95
  cmd += f" --build=\"{node.name}/*\""
96
96
  try:
97
- for i in range(1, 2):
97
+ # 最多重试5次
98
+ for i in range(1, 5):
98
99
  logfile = f"{self.log_dir}/conan_build_{node.name}.log"
99
100
  log.debug(f">>>> {cmd}")
100
101
  log.info(f">>>> build {node.ref} start, logfile: {logfile}")
@@ -116,12 +117,18 @@ class BuildConans(object):
116
117
  cmd += f" --build=\"{node.name}/*\""
117
118
  continue
118
119
 
119
- log.error(f"================== {node.name} 构建失败日志起始位置 ==================")
120
120
  f.seek(0)
121
121
  conan_log = f.read()
122
+ # conan的缓存数据库不支持并发访问,会概率性存在数据库锁错误,当前通过重试解决
123
+ if "sqlite3.OperationalError: database is locked" in conan_log:
124
+ log.info("rebuild because database is locked")
125
+ continue
126
+ log.error(f"================== {node.name} 构建失败日志起始位置 ==================")
122
127
  log.error(conan_log)
123
128
  log.error(f"================== {node.name} 构建失败日志结束位置 ==================")
124
129
  raise errors.BmcGoException(f"================== {node.name} 构建失败 ==================")
130
+ else:
131
+ break
125
132
  log.success(f"<<<< build {node.ref} finished")
126
133
  except Exception as e:
127
134
  self.exception = e
bmcgo/utils/tools.py CHANGED
@@ -645,7 +645,7 @@ class Tools():
645
645
  error_log = kwargs.get("error_log")
646
646
  warn_log = kwargs.get("warn_log")
647
647
  log_name = kwargs.get("log_name")
648
- timeout = kwargs.get("timeout", 1200)
648
+ timeout = kwargs.get("timeout", 1800)
649
649
  capture_output = kwargs.get("capture_output", False)
650
650
  if command_key:
651
651
  key = command_key + ":"
@@ -775,7 +775,7 @@ class Tools():
775
775
  tmpdir = TemporaryDirectory()
776
776
  graph_file = os.path.join(tmpdir.name, "package.json")
777
777
  cmd = f"conan install --requires='{package}' {install_args}"
778
- cmd += f" -f json --out-file={graph_file}"
778
+ cmd += f" -f json --out-file={graph_file} -of temp"
779
779
  self.run_command(cmd, ignore_error=False)
780
780
  return self.get_package_folder_from_graph_file(graph_file, package)
781
781
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openubmc-bingo
3
- Version: 0.6.21
3
+ Version: 0.6.25
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=Oam3SkOb8QiCRykhhHrp4EPrCj2Lo20xJkOI7vXC8p0,562
1
+ bmcgo/__init__.py,sha256=UIcAX3HFWIv4SVR6dvGzKjsZ-Hcy6x6_GwpA6css2D4,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=MY-DIvJ4q0roWfshZHkPaG1VGoWWrQcKDYx5ahE-IRg,27116
10
+ bmcgo/cli/cli.py,sha256=pgkIjjo3owY3tNbujIUGxJshanVElrwJ0gsXj8X3BXI,27181
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
@@ -91,7 +91,7 @@ bmcgo/codegen/lua/script/render_utils/ipmi_message_lua.py,sha256=Y-5pXMfAPDZqqoA
91
91
  bmcgo/codegen/lua/script/render_utils/mdb_lua.py,sha256=gKX_GUkIbYbbviBw9cEO3pfTwoLWurczYFmoOoWA1Us,6141
92
92
  bmcgo/codegen/lua/script/render_utils/message_lua.py,sha256=ZHJy35iJir1O149dafZnl-oEdU89-eP6VIeQmKjh9D8,1155
93
93
  bmcgo/codegen/lua/script/render_utils/messages_lua.py,sha256=eAe46JU1AJxfpifQCnioD1jxfDhfc-DLGRy8CmwCfBg,4948
94
- bmcgo/codegen/lua/script/render_utils/model_lua.py,sha256=LfNXUxpaMp2AcjRPg5Hgdr-U6GI79g5_zvpkdVP5NGA,18429
94
+ bmcgo/codegen/lua/script/render_utils/model_lua.py,sha256=kxlPkPboUKtUfK2HTWakmgKMFLLZ3UofPouWvng7UWY,18456
95
95
  bmcgo/codegen/lua/script/render_utils/old_model_lua.py,sha256=OFUPJOaiXDjXpknbh6Pw0TNC1dUVtjPbuIs-3fSN7p4,15611
96
96
  bmcgo/codegen/lua/script/render_utils/plugin_lua.py,sha256=-_r-MqjDNnoYel6zdsNSkqYI3w1DKJPwJy5Vsevl33s,1481
97
97
  bmcgo/codegen/lua/script/render_utils/redfish_proto.py,sha256=lAVo9pPxkc7Iv22enuqCOJVTFy8_63C57iADjzYWz5g,3130
@@ -168,7 +168,7 @@ bmcgo/codegen/lua/v1/templates/apps/service.lua.mako,sha256=wd_NJtiSSMbR-lxEqv-r
168
168
  bmcgo/codegen/lua/v1/templates/apps/utils/mdb_intf.lua.mako,sha256=msdj2SygZvV3RIEHLeVDfZvOzZ99Yy27SwPVrFVVcpc,1242
169
169
  bmcgo/codegen/lua/v1/templates/apps/utils/mdb_obj.lua.mako,sha256=oCzx2u3bjvCdNKX5oC8j6Q-Zb21q6SFCqd14_VzrWvo,349
170
170
  bmcgo/component/__init__.py,sha256=BDXz8BcSlCkfo5UYt6j2rm89-HiYA1ZzfpFhy99MH-0,538
171
- bmcgo/component/build.py,sha256=7ZYTxVOVO6T1caP3KCmyJ8yWE992g8gc6yU2f-bZx5s,12851
171
+ bmcgo/component/build.py,sha256=HWjgY1L1AXL7ndA35PKMFfweGSd8xXTRjY-ULW9ngGw,12851
172
172
  bmcgo/component/component_dt_version_parse.py,sha256=-Rt6i2fZrmYNZGoMqB21D_T9fC7fhhtUFIFvdPsMICM,14188
173
173
  bmcgo/component/component_helper.py,sha256=rNwfhagfz6E3BjKERq9oOPLRfeKQlqhLojb6oJLXcEA,7933
174
174
  bmcgo/component/deploy.py,sha256=Iy5CsiolKS1h5jDg13nYkfy6--BtbBZ8FLou2oVuoLQ,6544
@@ -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=X1CFVHIjS9ej9S3euZtb7yiMdTCizuLvXbgZntT_duo,18424
227
- bmcgo/tasks/task_build_conan.py,sha256=o08zhFXvipn-8mTzNtlTYu3m_a2rNr9rRDvsNC0Raxg,49803
226
+ bmcgo/tasks/task.py,sha256=w8tdU5NwoUfVF4xKFvSzcCWCf0FGTBHJAToNLlP0p4w,18424
227
+ bmcgo/tasks/task_build_conan.py,sha256=cpGFUgwzp2WmrZr9ISFdPUDO5kPuEWqJWTFFdL_1MLk,51173
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,7 +241,7 @@ 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=lEaZFCTjRc8pLWXWw71n7zl4zwmWg1s561Atn-Y32HA,9748
244
+ bmcgo/utils/build_conans.py,sha256=3uGn9MWlW3d8WNKZQPs4rEd6E6KxP_eyqSxSlSQQG4o,10172
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
@@ -252,7 +252,7 @@ bmcgo/utils/json_validator.py,sha256=_k5wU78wfYGrzvSDaqOEtT4otgKUjquVhZNpVf2PW_c
252
252
  bmcgo/utils/mapping_config_patch.py,sha256=_gKfZnrvsLPgHn1yXhEJRVTAeuGpeGD9T-Pqyw5Ydys,16827
253
253
  bmcgo/utils/merge_csr.py,sha256=JNxHCfW1au84WQshdz0aQy8wMTEOHonjQT3s6LjlZN4,4580
254
254
  bmcgo/utils/perf_analysis.py,sha256=fh6lV9AAKVhpPkGPwAJ8EWfGfUoHjqGYQxrvc32Xiac,4767
255
- bmcgo/utils/tools.py,sha256=ggG3_sS5FOcihv5SUqIkcDVDPR6eqGm1swrXGbBfDf0,32471
255
+ bmcgo/utils/tools.py,sha256=NrYd4bNzRiBGu7FklN6PT1gj-sdqUWB_lj11Q7TjI8Y,32480
256
256
  bmcgo/utils/installations/README.md,sha256=hKXnFYmeHEuROFMFE-vzlGLSHg71bei5ZYwyYZphWNk,2
257
257
  bmcgo/utils/installations/__init__.py,sha256=BDXz8BcSlCkfo5UYt6j2rm89-HiYA1ZzfpFhy99MH-0,538
258
258
  bmcgo/utils/installations/base_installer.py,sha256=3UZiKWoa41ygRbLD3QsE2FTp-VFp79V0I53QLRIf4E8,5902
@@ -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.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,,
267
+ openubmc_bingo-0.6.25.dist-info/METADATA,sha256=9npzn3E3oo6oiNlQGepfcjj0msWe2jDEmSlhBefEm5E,1010
268
+ openubmc_bingo-0.6.25.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
269
+ openubmc_bingo-0.6.25.dist-info/entry_points.txt,sha256=UUoUP-vAWTgg9vEYbRwYqOBHgpRtkngdzMPb-ocz90g,42
270
+ openubmc_bingo-0.6.25.dist-info/top_level.txt,sha256=9AcvCAt1nZcOgMsGt6T07mg2Bgtdet-3mHTwg91axgI,6
271
+ openubmc_bingo-0.6.25.dist-info/RECORD,,