openubmc-bingo 0.5.240__py3-none-any.whl → 0.5.242__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.5.240'
12
+ __version__ = '0.5.242'
@@ -255,7 +255,10 @@ class IncrementalCov(object):
255
255
  cmds.append(f"grep -E '({commit})'")
256
256
  cmds.append("awk -F' *|)' '{print $7}'")
257
257
 
258
- output, _ = tools.pipe_command(cmds, capture_output=True, command_echo=False)
258
+ # 存在文件只有删除行时, git blame -f xx | grep -E '(xx)' 匹配不到修改行, grep会返回1状态码
259
+ output, _ = tools.pipe_command(cmds, capture_output=True, command_echo=False, ignore_error=True)
260
+ if not output:
261
+ continue
259
262
  changes[f] = [int(i) for i in output.split("\n") if i.isdigit()]
260
263
 
261
264
  return changes
@@ -213,7 +213,7 @@ class BmcgoCommand:
213
213
  def copy_stable2rc(comp: str):
214
214
  com_folder = os.path.join(tool.conan_data, comp)
215
215
  for version in os.listdir(com_folder):
216
- pkg = f"{comp}/{version}@{CONAN_USER}/{STAGE_STABLE}"
216
+ pkg = f"{comp}/{version}@{CONAN_USER}.release/{STAGE_STABLE}"
217
217
  if not os.path.exists(os.path.join(tool.conan_data, pkg.replace("@", "/"))):
218
218
  continue
219
219
  tool.run_command(f"conan copy {pkg} {CONAN_USER}.release/{STAGE_RC} --all --force")
bmcgo/misc.py CHANGED
@@ -70,6 +70,9 @@ TEST = "test"
70
70
  GEN = "gen"
71
71
  HELP = "help"
72
72
 
73
+ ROOTCA_DER = "rootca.der"
74
+ CMS_CRL = "cms.crl"
75
+
73
76
 
74
77
  class StageEnum(Enum):
75
78
  STAGE_DEV = "dev"
bmcgo/tasks/task.py CHANGED
@@ -28,6 +28,7 @@ from bmcgo.utils.config import Config
28
28
  from bmcgo.utils.tools import Tools
29
29
  from bmcgo import errors
30
30
  from bmcgo.utils.component_post import ComponentPost
31
+ from bmcgo.functional.simple_sign import BmcgoCommand as SimpleSign
31
32
 
32
33
 
33
34
  class Task(Process):
@@ -43,6 +44,7 @@ class Task(Process):
43
44
  self.tools: Tools = Tools(work_name, log_file=log_file)
44
45
  self.log = self.tools.log
45
46
  self.config: Config = config
47
+ self.built_type_check()
46
48
  self.work_name = work_name
47
49
 
48
50
  @property
@@ -126,7 +128,7 @@ class Task(Process):
126
128
  if os.path.dirname(dst) != "":
127
129
  os.makedirs(os.path.dirname(dst), exist_ok=True)
128
130
  # 直接复制文件
129
- self.info(f"复制 {src} 到 {dst} 并保留权限", uptrace=uptrade)
131
+ self.info(f"复制 {src} 到 {dst}", uptrace=uptrade)
130
132
  shutil.copyfile(src, dst)
131
133
 
132
134
  def manufacture_version_check(self, filename) -> bool:
@@ -149,7 +151,7 @@ class Task(Process):
149
151
 
150
152
  # 依赖manifest的files复制文件
151
153
  def copy_manifest_files(self, files, exclude_files=None):
152
- if files is None:
154
+ if not files:
153
155
  return
154
156
  exclude_files = exclude_files or []
155
157
  file_list = []
@@ -174,7 +176,7 @@ class Task(Process):
174
176
  self.debug(f"Skip copy {filename} because in exclude list")
175
177
  continue
176
178
  if not os.path.isfile(filename):
177
- self.error("{} 不是一个文件或者不存在".format(filename))
179
+ raise FileNotFoundError("{} 不是一个文件或者不存在".format(filename))
178
180
  dst = time.strftime(dst, self.config.date)
179
181
  if "/" in dst:
180
182
  dst = str(Template(dst).safe_substitute(self.config.get_template()))
@@ -212,7 +214,7 @@ class Task(Process):
212
214
  return self.tools.get_profile_config(self.config.profile)
213
215
 
214
216
  def prepare_conan(self):
215
- #先删除profiles
217
+ # 先删除profile文件
216
218
  self.run_command(f"rm -rf {self.conan_profiles_dir}/profile.dt.ini", ignore_error=True)
217
219
  self.run_command(f"rm -rf {self.conan_profiles_dir}/profile.ini", ignore_error=True)
218
220
  self.run_command(f"rm -rf {self.conan_profiles_dir}/profile.luajit.ini", ignore_error=True)
@@ -254,24 +256,51 @@ class Task(Process):
254
256
  def pipe_command(self, commands, out_file=None, **kwargs):
255
257
  return self.tools.pipe_command(commands, out_file, **kwargs)
256
258
 
257
- def signature(self, unsigned_file, output_file):
258
- """自签名方法"""
259
- unsigned_file = os.path.realpath(unsigned_file)
260
- output_file = os.path.realpath(output_file)
261
- tmp_dir = tempfile.TemporaryDirectory()
262
- cwd = os.getcwd()
263
- self.chdir(tmp_dir.name)
264
- rootca_der = self.config.rootca_der
265
- rootca_crl = self.config.rootca_crl
266
- signer_pem = self.config.signer_pem
267
- ts_signer_pem = self.config.ts_signer_pem
268
- ts_signer_cnf = self.config.ts_signer_cnf
269
- self.run_command(f"openssl x509 -in {rootca_der} -inform der -outform pem -out rootca.pem")
270
- self.run_command(f"openssl crl -in {rootca_crl} -inform der -outform pem -out cms.crl.pem")
271
- cmd = f"hpm_signer -s {signer_pem} -t {ts_signer_pem} -T {ts_signer_cnf} -i {unsigned_file} -o {output_file}"
272
- self.run_command(cmd)
273
- self.run_command(f"hpm_verify -r rootca.pem -C cms.crl.pem -c {unsigned_file} -s {output_file}")
274
- self.chdir(cwd)
259
+ def signature(self, unsigned_file, cms_output, crl_output, ca_output):
260
+ sign_server = self.get_manufacture_config("base/signature/simple_signer_server")
261
+ if not sign_server:
262
+ """自签名方法"""
263
+ unsigned_file = os.path.realpath(unsigned_file)
264
+ cms_output = os.path.realpath(cms_output)
265
+ tmp_dir = tempfile.TemporaryDirectory()
266
+ cwd = os.getcwd()
267
+ self.chdir(tmp_dir.name)
268
+ rootca_der = self.config.rootca_der
269
+ rootca_crl = self.config.rootca_crl
270
+ signer_pem = self.config.signer_pem
271
+ ts_signer_pem = self.config.ts_signer_pem
272
+ ts_signer_cnf = self.config.ts_signer_cnf
273
+ self.run_command(f"openssl x509 -in {rootca_der} -inform der -outform pem -out rootca.pem")
274
+ self.run_command(f"openssl crl -in {rootca_crl} -inform der -outform pem -out cms.crl.pem")
275
+ cmd = f"hpm_signer -s {signer_pem} -t {ts_signer_pem} -T {ts_signer_cnf} -i {unsigned_file} -o {cms_output}"
276
+ self.run_command(cmd)
277
+ self.run_command(f"hpm_verify -r rootca.pem -C cms.crl.pem -c {unsigned_file} -s {cms_output}")
278
+ self.chdir(cwd)
279
+ self.tools.copy(rootca_crl, crl_output)
280
+ self.tools.copy(rootca_der, ca_output)
281
+ else:
282
+ cert_id = sign_server.get("cert_id")
283
+ url = sign_server.get("url")
284
+ ssl_verify = sign_server.get("ssl_verify")
285
+ rootca_der = sign_server.get("rootca_der")
286
+ if not os.path.isfile(rootca_der):
287
+ raise FileNotFoundError(f"签名根证书{rootca_der}不存在")
288
+ unsigned_file = os.path.realpath(unsigned_file)
289
+ cms_output = os.path.realpath(cms_output)
290
+ crl_output = os.path.realpath(crl_output)
291
+ ca_output = os.path.realpath(ca_output)
292
+ cwd = os.getcwd()
293
+ tmpdir = tempfile.TemporaryDirectory()
294
+ self.chdir(tmpdir.name)
295
+ args = ["-i", unsigned_file, "-s", cert_id, "-u", url, "-v", ssl_verify]
296
+ cmd = SimpleSign(self.config.bconfig, args)
297
+ cmd.run()
298
+ # 签名工具会输出rootca.crl和signed.cms
299
+ self.tools.copy("signed.cms", cms_output)
300
+ self.tools.copy("rootca.crl", crl_output)
301
+ # 签名根证书在manifest.yml中配置
302
+ self.tools.copy(rootca_der, ca_output)
303
+ os.chdir(cwd)
275
304
 
276
305
  def error(self, msg, *args, **kwargs):
277
306
  uptrace = kwargs.get("uptrace", None)
@@ -348,7 +377,7 @@ class Task(Process):
348
377
  cust = os.path.join(conan_install, comp, "include", "customization.py")
349
378
  if not os.path.isfile(cust):
350
379
  continue
351
- self.info(f">>>>>>>>>> 开始执行 {cust} post_rootfs 定制化")
380
+ self.info(f">>>>>>>>>> 开始执行 {cust} {action} 定制化")
352
381
  self.info(f"执行脚本 {comp}/include/customization.py 开始")
353
382
  post = ComponentPost(self.config, os.path.join(conan_install, comp), profile)
354
- post.post_work(os.getcwd(), action)
383
+ post.post_work(os.getcwd(), action)
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env python
1
+ #!/usr/bin/env python3
2
2
  # coding: utf-8
3
3
  # Copyright (c) 2024 Huawei Technologies Co., Ltd.
4
4
  # openUBMC is licensed under Mulan PSL v2.
@@ -25,12 +25,21 @@ from bmcgo import misc
25
25
 
26
26
  class TaskClass(Task):
27
27
  def copy_files(self):
28
+ rootca = os.path.join(self.config.work_out, misc.ROOTCA_DER)
29
+ crl = os.path.join(self.config.work_out, misc.CMS_CRL)
30
+ exclude_files = []
31
+ if os.path.isfile(rootca):
32
+ self.tools.copy(rootca, misc.ROOTCA_DER)
33
+ exclude_files.append(misc.ROOTCA_DER)
34
+ if os.path.isfile(crl):
35
+ self.tools.copy(crl, misc.CMS_CRL)
36
+ exclude_files.append(misc.CMS_CRL)
28
37
  # 复制gpp需要使用的文件,记录rootfs.img、rootfs.img.cms、cms.crl、rootca.der、Hi1711_boot_4096.bin、Hi1711_boot_pmode.bin共六个文件
29
38
  files = self.get_manufacture_config(f"gpp/files")
30
39
  if files is None:
31
- raise errors.BmcGoException("获取 manifest.yml 中 gpp 配置失败, 退出码: -1")
40
+ raise errors.BmcGoException("获取 manifest.yml 中 gpp/files 配置失败, 退出码: -1")
32
41
  # 复制构建emmc gpp镜像所需的文件
33
- self.copy_manifest_files(files)
42
+ self.copy_manifest_files(files, exclude_files)
34
43
 
35
44
  def copy_gpp_headers_files(self):
36
45
  files = self.get_manufacture_config(f"gpp/pkg_headers")
@@ -40,6 +49,8 @@ class TaskClass(Task):
40
49
  else:
41
50
  files = []
42
51
  files.append({"file": "/usr/local/bin/hpm_header.config", "dst": "hpm_header.config"})
52
+ files.append({"file": "/usr/local/bin/emmc_uboot_header.config", "dst": "emmc_uboot_header.config"})
53
+
43
54
  self.copy_manifest_files(files)
44
55
 
45
56
  def build_gpp_hpm_bin(self):
@@ -75,14 +86,54 @@ class TaskClass(Task):
75
86
  self.pipe_command([cmd], target_path)
76
87
 
77
88
  def run(self):
78
- self._move_dependency()
89
+ self.move_dependency()
79
90
  self.build_gpp_hpm_bin()
80
91
  self.info(f"目录 {self.config.work_out} 包含文件:\n{os.listdir(self.config.work_out)}")
81
92
 
82
- def _move_dependency(self):
93
+ def move_dependency(self):
83
94
  # 移动到tools/build_tools目录中
84
95
  self.chdir(self.config.sdk_path)
85
- if self.config.chip == "1711":
96
+ unsigned_boot = None
97
+ for file in os.listdir("."):
98
+ if re.match("^Hi1711_[0-9]{8}_[0-9a-f]{40}.tar.gz$", file) is None:
99
+ continue
100
+ unsigned_boot = file
101
+ break
102
+
103
+ if self.config.self_sign:
104
+ if not unsigned_boot:
105
+ raise errors.BmcGoException("打开了自签名模式但未找到待签名的uboot文件,构建失败")
106
+ self.run_command(f"tar -xvf {file}")
107
+ # 解压uboot_debug未签名包
108
+ os.makedirs("origin_uboot_debug")
109
+ self.run_command(f"tar -xvf bin/original_bin/uboot_debug.tar.gz -C origin_uboot_debug")
110
+ self.self_sign_uboot("origin_uboot_debug", ".", True)
111
+ # 解压uboot未签名包
112
+ os.makedirs("origin_uboot")
113
+ self.run_command(f"tar -xvf bin/original_bin/uboot.tar.gz -C origin_uboot")
114
+ self.self_sign_uboot("origin_uboot", ".", False)
115
+ elif self.config.chip == "1711":
86
116
  self.run_command(f"dd if=Hi1711_boot_4096_pmode.bin of=Hi1711_boot_pmode.bin bs=1k count=1024 skip=768")
87
117
  self.run_command(f"dd if=Hi1711_boot_4096_pmode_debug.bin of=Hi1711_boot_pmode_debug.bin bs=1k " +
88
118
  "count=1024 skip=768")
119
+
120
+ def self_sign_uboot(self, uboot_dir, output_dir, is_debug):
121
+ """签名uboot包"""
122
+ cwd = os.getcwd()
123
+ output_dir = os.path.realpath(output_dir)
124
+ l0_kb_size = 768
125
+ debug_flag = "_debug" if is_debug else ""
126
+ run_cmd = f"dd if=Hi1711_boot_4096{debug_flag}.bin of={uboot_dir}/l0l1.bin bs=1K count={l0_kb_size}"
127
+ self.run_command(run_cmd)
128
+ self.run_command(f"cp bin/signed_bin/sdk/u-boot_cms{debug_flag}.bin {uboot_dir}/u-boot_cms.bin")
129
+ self.run_command(f"cp {uboot_dir}/u-boot.bin {uboot_dir}/uboot.bin")
130
+ self.chdir(uboot_dir)
131
+ self.signature("uboot.bin", "uboot.bin.cms", "cms.crl", "rootca.der")
132
+ self.copy_gpp_headers_files()
133
+ self.run_command("gpp_header uboot")
134
+ self.run_command("make_uboot_img.sh 768")
135
+ run_cmd = f"dd if=Hi1711_boot_4096.bin of={output_dir}/Hi1711_boot_pmode{debug_flag}.bin " \
136
+ f" bs=1K count=1024 skip={l0_kb_size}"
137
+ self.run_command(run_cmd)
138
+ self.run_command(f"cp Hi1711_boot_4096.bin {output_dir}/Hi1711_boot_4096{debug_flag}.bin")
139
+ self.chdir(cwd)
@@ -26,7 +26,14 @@ class SignProcess(Process):
26
26
  def run(self):
27
27
  self.work.work_name = "sign_rootfs_image"
28
28
  self.work.chdir(self.config.build_path)
29
- self.work.tools.pipe_command([f"echo 'cms placeholder'"], out_file=f"{self.config.work_out}/rootfs_BMC.img.cms")
29
+ if self.config.self_sign:
30
+ self.work.signature(f"{self.config.work_out}/rootfs_BMC.img",
31
+ f"{self.config.work_out}/rootfs_BMC.img.cms",
32
+ f"{self.config.work_out}/cms.crl",
33
+ f"{self.config.work_out}/rootca.der")
34
+ else:
35
+ out_file = f"{self.config.work_out}/rootfs_BMC.img.cms"
36
+ self.work.tools.pipe_command([f"echo 'cms placeholder'"], out_file=out_file)
30
37
 
31
38
 
32
39
  class TarImageProcess(Process):
@@ -65,7 +65,7 @@ class TaskClass(Task):
65
65
 
66
66
  def run_signature_prepare(self):
67
67
  self.chdir(self.config.board_path)
68
- if self.config.sign_certificates is None:
68
+ if not self.config.self_sign:
69
69
  # 复制签名需要使用的文件
70
70
  files = self.get_manufacture_config(f"base/signature/files")
71
71
  if files is None:
@@ -17,7 +17,7 @@ from bmcgo.tasks.task import Task
17
17
  class TaskClass(Task):
18
18
  def sign_hpms(self):
19
19
  self.chdir(self.config.work_out)
20
- if self.config.sign_certificates is not None:
20
+ if self.config.self_sign:
21
21
  self.chdir(self.config.work_out)
22
22
  # 复制预置的ca, crl作为签名文件,并复制cms
23
23
  self.signature(f"rootfs_{self.config.board_name}.filelist",
bmcgo/utils/config.py CHANGED
@@ -141,8 +141,11 @@ class Config:
141
141
  return f"/opt/{self.rtos_offering}/{self.rtos_version}/arm64le_{self.rtos_kernel}/sdk"
142
142
 
143
143
  @property
144
- def sign_certificates(self):
145
- return self.get_manufacture_config("base/signature/certificates")
144
+ def self_sign(self):
145
+ certificates = self.get_manufacture_config("base/signature/certificates")
146
+ if not certificates:
147
+ certificates = self.get_manufacture_config("base/signature/simple_signer_server")
148
+ return certificates is not None
146
149
 
147
150
  @property
148
151
  def rootca_der(self):
@@ -0,0 +1 @@
1
+ #
@@ -5,7 +5,7 @@ install_steps:
5
5
  - type: apt
6
6
  package_name: openubmc-bingo
7
7
  config_file: bingo.list
8
- url: https://openubmc-apt-repo.obs.cn-north-4.myhuaweicloud.com/bingo_test_2
8
+ url: https://openubmc-apt-repo.obs.cn-north-4.myhuaweicloud.com/bingo/
9
9
  gpg: bingo.gpg
10
10
  public_key: gpg_key.public
11
11
 
bmcgo/utils/tools.py CHANGED
@@ -121,10 +121,15 @@ class Tools():
121
121
  参数:source 源文件 target 目标文件
122
122
  返回值:无
123
123
  """
124
- if os.path.exists(source):
125
- if os.path.exists(target):
126
- os.unlink(target)
127
- shutil.copy(source, target)
124
+ if not os.path.isfile(source):
125
+ raise FileNotFoundError(f"Source file {source} does not exist.")
126
+ if os.path.realpath(target) == os.path.realpath(source):
127
+ return
128
+ if os.path.isdir(target):
129
+ target = os.path.join(target, os.path.basename(source))
130
+ elif os.path.exists(target):
131
+ os.unlink(target)
132
+ shutil.copy(source, target)
128
133
 
129
134
  @staticmethod
130
135
  def sha256sum(file_path: str):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openubmc-bingo
3
- Version: 0.5.240
3
+ Version: 0.5.242
4
4
  Summary: Tools provided by openubmc
5
5
  Home-page: https://openubmc.cn
6
6
  Classifier: Programming Language :: Python :: 3
@@ -1,10 +1,10 @@
1
- bmcgo/__init__.py,sha256=w0aTP66FJIL3wDs6sZXuv6y5Y6KGKxMOTT-t6CVjQtw,562
1
+ bmcgo/__init__.py,sha256=-zMsR8qKvI9uoI1hptUjoq3NpnC3IvYhDRauW2t6Ww4,562
2
2
  bmcgo/bmcgo.py,sha256=uD4TsfjrFB5aQPIS6WRUVc9ShXX-dSImY9ezkB13g1w,685
3
3
  bmcgo/bmcgo_config.py,sha256=q8JtOHFVB5io-VHbUiazpidN1fkLHxDAagGuIl60mb8,7308
4
4
  bmcgo/errors.py,sha256=QW1ndrJcJ2Ws7riOznPKVvZsNlrYk73eZol7w8gJTPU,3076
5
5
  bmcgo/frame.py,sha256=OUIlplOGD9NXHdubhXSfmR4s5e29AsMyLUkkiWrdRsg,10378
6
6
  bmcgo/logger.py,sha256=4TPOkBA80Z00rSCOdEv_WkwE5Kr3HCDt-HuVe9waXck,6645
7
- bmcgo/misc.py,sha256=CuB_nZvb1v7485pbc13JAaDazBmRzcUcjC0ms3WgHks,3383
7
+ bmcgo/misc.py,sha256=VukODl7BdMZz8sZyQ5o0wHj9ixJfPZmmeLuDHoCiSBg,3430
8
8
  bmcgo/worker.py,sha256=-KxZIW4dziej5wCY-v5XEmtY-CDCL2-FO3VHFovlFbM,15228
9
9
  bmcgo/cli/__init__.py,sha256=BDXz8BcSlCkfo5UYt6j2rm89-HiYA1ZzfpFhy99MH-0,538
10
10
  bmcgo/cli/cli.py,sha256=hN5cQJuGorIgo3ZlPAQWGH3n7GLwQiqMudhK5cujHC4,21620
@@ -172,7 +172,7 @@ bmcgo/component/analysis/smc_dfx_whitelist.json,sha256=dy_6-FddhG6UY7D1KUCW3Vme2
172
172
  bmcgo/component/analysis/sr_validation.py,sha256=i1mlJb_D7RqE510LSAcCW81K1VUmZ7oSmLiMfUgdSJI,15598
173
173
  bmcgo/component/coverage/__init__.py,sha256=ZgUEyI86FTlOdBzcuTzz7UqTtfWcz416Gx4BCqcQlhA,557
174
174
  bmcgo/component/coverage/c_incremental_cov_report.template,sha256=FPhK1DZtmWsjDxa32R1ViH3IGCtNHcx0zFfgRo0s2nI,1576
175
- bmcgo/component/coverage/incremental_cov.py,sha256=DcXT8jDz3xs_2OzjGMcGwL6UfLZ7gFCO-XHsfUesTDs,17118
175
+ bmcgo/component/coverage/incremental_cov.py,sha256=jbcTC83xw_egnXW-6PigtwPAWbNX7x5i7NcuEafIyrU,17315
176
176
  bmcgo/component/template/conanbase.py.mako,sha256=MMZezCl5oFucRraOJt1WjmPL2S7wa4Hzfc7yDfTkW7Q,10949
177
177
  bmcgo/component/template/conanfile.deploy.py.mako,sha256=zpxluBjUFmJHfFrnBknxZ3cv3cxcqzJuGh2eN0uMXZA,889
178
178
  bmcgo/functional/__init__.py,sha256=BDXz8BcSlCkfo5UYt6j2rm89-HiYA1ZzfpFhy99MH-0,538
@@ -185,7 +185,7 @@ bmcgo/functional/csr_build.py,sha256=l2ELOvnT43ZzsUt_9xx-aJhi3jBYe2S6Mo-ULjmcl2s
185
185
  bmcgo/functional/deploy.py,sha256=2NsxCpoZjL4jTyRpbIp20-EKKbQkQe-Hsm20uxHK2Xc,10677
186
186
  bmcgo/functional/diff.py,sha256=L-FFytMtxWtcdJCRPG68yapXgju_qDVOHR3f7NQzqEY,10558
187
187
  bmcgo/functional/fetch.py,sha256=JE4iZt6a-vjuCrDg9RYDCTyLf5TvXZQvs0PgD3VBvtQ,10767
188
- bmcgo/functional/full_component.py,sha256=ESKPnrFc08MtSZw8Sk3uWJxPM2qZ5FNZ-CmUxrttngM,16269
188
+ bmcgo/functional/full_component.py,sha256=AqVpWHtzdK-XwzE_l6vPcVNIVkAzyE2X5nqSkgsdvhA,16277
189
189
  bmcgo/functional/maintain.py,sha256=8bUwaCsZAiBWDrf8NsdVoOvyMY2JOoXdzvahU9Hd8-0,17951
190
190
  bmcgo/functional/new.py,sha256=A4--cy3R-moFD8KtrGGIzMiVVwnB2rL8qlrJz1dGGMg,6157
191
191
  bmcgo/functional/schema_valid.py,sha256=jk4blLZgQCJv4eOY0YK2Fy0oRCdG1sfSssd2rGT-Eoc,3910
@@ -204,39 +204,40 @@ bmcgo/target/publish.yml,sha256=4V6oWdMkJP_hmqiTnOH7EM5GTAS-nNzSUCfTSaxYmRA,1497
204
204
  bmcgo/tasks/__init__.py,sha256=VapgzhPMmB7dzPIRohoVm1jjfVn_v97cYNCRmkxScaU,539
205
205
  bmcgo/tasks/download_buildtools_hm.py,sha256=f4UxStARc8Z8DnT_5O6ONajQ7P0sKyJ8brixr43fHVQ,5988
206
206
  bmcgo/tasks/misc.py,sha256=GK_bSDLGZW0FxywB2ICG1iIEz2y2QoCb1YQQk8SYOIA,711
207
- bmcgo/tasks/task.py,sha256=Ek16AuyHYIPPOmg3bx4Sv5j973kqBZroS3SOIpPcxbE,14245
207
+ bmcgo/tasks/task.py,sha256=e7GL0fh4vXwhwq5Hv-SixCw-lbNPJtdivhUmvHrfWI8,15788
208
208
  bmcgo/tasks/task_build_conan.py,sha256=3BtapZXt09cKWcR_Wa8fXhrQDCvKWQtYjxG5RSC8F-U,32823
209
209
  bmcgo/tasks/task_build_rootfs_img.py,sha256=uFrMfrpaAHB_2QQdEo46P8TgFrGMTG-xfZUlxzJLSQ0,30443
210
- bmcgo/tasks/task_buildgppbin.py,sha256=yhRKPflbN8V2xeg_MW54njzRH1pvtrtyzRODZE3m-jo,3709
210
+ bmcgo/tasks/task_buildgppbin.py,sha256=Xjfw6j8OsyS_XRiOt4vqIK1rDQ4sNKG__eurDu-M9bo,6341
211
211
  bmcgo/tasks/task_buildhpm_ext4.py,sha256=DBZnmU_eb14J0CW_wVoCc9VKnssFF1vXmRhLJQ6kR28,3482
212
212
  bmcgo/tasks/task_create_interface_config.py,sha256=rkFRGLrUgYCics-n1CKwCoQscU2BaRQkH7KP3zwJ6FI,5393
213
213
  bmcgo/tasks/task_download_buildtools.py,sha256=DC68Tp80eXu7LVleRtYhKeUKJJM5I8va-RvXS3aiFLo,4222
214
214
  bmcgo/tasks/task_download_dependency.py,sha256=IyWtgm7k70a6fhaCFlvAOCzFMxXxXGSfikbPIZ23BBU,3093
215
- bmcgo/tasks/task_hpm_envir_prepare.py,sha256=yrsjFZKEPpaw_bTuvhjxIELicLKBAhrktHNuONN3Xxw,3871
215
+ bmcgo/tasks/task_hpm_envir_prepare.py,sha256=oh-GcgdNmyn64oMIUNjfWEmjH8qKoAEeVN0tqL3NwC4,4244
216
216
  bmcgo/tasks/task_packet_to_supporte.py,sha256=eaNtri3YQfXFBnceM1-2C_6AgMgrGxEj4xKXTgNRPH8,4100
217
- bmcgo/tasks/task_prepare.py,sha256=PaP_yBnOGHDwokI7T7w43p5lZzekbPCHIoxS5_aSngY,4546
218
- bmcgo/tasks/task_sign_and_pack_hpm.py,sha256=QfkvGnA5jrKRv7-MmZV8JzIhttrPZxCAdLYr0QpxGNM,1985
217
+ bmcgo/tasks/task_prepare.py,sha256=vKHb5QPbIx0lHOGpcDjeAB7rMfERqMUCad2EzxLauBw,4534
218
+ bmcgo/tasks/task_sign_and_pack_hpm.py,sha256=X8m1WAj3c0bKi2JAaumR81Qxv1FnFi0SrRL-l6vDRAo,1965
219
219
  bmcgo/utils/__init__.py,sha256=BDXz8BcSlCkfo5UYt6j2rm89-HiYA1ZzfpFhy99MH-0,538
220
220
  bmcgo/utils/buffer.py,sha256=t1SkWntWksboNFMPsltslwRdXZi3FAe8eV0JAAE7Vto,4004
221
221
  bmcgo/utils/combine_json_schemas.py,sha256=08JrAlLeo_JgUqzYcZNgSwJZPLfjbWVJ4esPPt9bPMY,7967
222
222
  bmcgo/utils/component_post.py,sha256=b2sr2IVensmnvcB7VcbIHkzCtS-fbtjPb4k1LiNReQk,2296
223
223
  bmcgo/utils/component_version_check.py,sha256=ZhY3LUgmvuoDTlSjyFeh2blmcYbFcwtijNaOM0ntRtE,3457
224
- bmcgo/utils/config.py,sha256=U5nKBQ2s7nx7KS2yWIeofOAL_Wo-oJAr_kv4DZIdLd0,47767
224
+ bmcgo/utils/config.py,sha256=eNfGctRdrCbV3rbmPWCGmSGy0vBZz4HY5hsfqKH9hSw,47930
225
225
  bmcgo/utils/fetch_component_code.py,sha256=vH9rY2YcXK5tBUEK7fLmKVxK9cYDM39FHmManBQA2KQ,10011
226
226
  bmcgo/utils/install_manager.py,sha256=UswQ_q5Dd1dUlzfdvtDtQRbeQNL7lh2Gs-Ha6lYgD7k,2460
227
227
  bmcgo/utils/mapping_config_patch.py,sha256=_gKfZnrvsLPgHn1yXhEJRVTAeuGpeGD9T-Pqyw5Ydys,16827
228
228
  bmcgo/utils/perf_analysis.py,sha256=fh6lV9AAKVhpPkGPwAJ8EWfGfUoHjqGYQxrvc32Xiac,4767
229
- bmcgo/utils/tools.py,sha256=o2wKHuv5bX_iktbc-LqqXHOOzNmR3NDC2L9Yq6zEBxA,28592
229
+ bmcgo/utils/tools.py,sha256=fLKBz_FiNc0s8UBkXQ_TZrzldCYLGEH8ZuqLUgS9g30,28849
230
+ bmcgo/utils/installations/README.md,sha256=hKXnFYmeHEuROFMFE-vzlGLSHg71bei5ZYwyYZphWNk,2
230
231
  bmcgo/utils/installations/__init__.py,sha256=BDXz8BcSlCkfo5UYt6j2rm89-HiYA1ZzfpFhy99MH-0,538
231
232
  bmcgo/utils/installations/base_installer.py,sha256=QvAtfPgdwLSV5w3w1iVrpuWBAZUgNHp5C93gKtDjR0E,2827
232
233
  bmcgo/utils/installations/install_consts.py,sha256=qIktIJiX-TqdLMAuIx5htM5L_NPmcNksZ-S1gbPyt3U,1038
233
234
  bmcgo/utils/installations/install_workflow.py,sha256=VQRE697kflBtBXbRLtMMB1Z1HzAARsaVbIeyiQkTxII,1782
234
235
  bmcgo/utils/installations/version_util.py,sha256=xyubh5rwD8_xqLgL8mL5ecz83T98M94gPaBTVlZpCXQ,3232
235
- bmcgo/utils/installations/install_plans/bingo.yml,sha256=i-A7OwByvyDCew2RZTdK0n9ESgYfmPUof25IYtwo8Y8,292
236
+ bmcgo/utils/installations/install_plans/bingo.yml,sha256=S7h9dDNQYGkmC0h3tVJIR53iLB99oV1v6FUeFnXqDks,286
236
237
  bmcgo/utils/installations/installers/apt_installer.py,sha256=vvKEN6R7GWd8N5axsm0FFDMMzR7UhtOu_N_Tk3HcLmA,6741
237
238
  bmcgo/utils/installations/installers/pip_installer.py,sha256=hZtTB5KyhNp3pquBl0k5Xjp5_0RvrG_0jwnG9yGDXmk,1869
238
- openubmc_bingo-0.5.240.dist-info/METADATA,sha256=s1S1owj-ueYTLJNf1osm3OO_WsT1xCz1UAhEMnOnrSk,904
239
- openubmc_bingo-0.5.240.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
240
- openubmc_bingo-0.5.240.dist-info/entry_points.txt,sha256=UUoUP-vAWTgg9vEYbRwYqOBHgpRtkngdzMPb-ocz90g,42
241
- openubmc_bingo-0.5.240.dist-info/top_level.txt,sha256=9AcvCAt1nZcOgMsGt6T07mg2Bgtdet-3mHTwg91axgI,6
242
- openubmc_bingo-0.5.240.dist-info/RECORD,,
239
+ openubmc_bingo-0.5.242.dist-info/METADATA,sha256=xKxy8toQckcQfnYYVFjMATtbV9VHNB1YIdHij5hKvZo,904
240
+ openubmc_bingo-0.5.242.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
241
+ openubmc_bingo-0.5.242.dist-info/entry_points.txt,sha256=UUoUP-vAWTgg9vEYbRwYqOBHgpRtkngdzMPb-ocz90g,42
242
+ openubmc_bingo-0.5.242.dist-info/top_level.txt,sha256=9AcvCAt1nZcOgMsGt6T07mg2Bgtdet-3mHTwg91axgI,6
243
+ openubmc_bingo-0.5.242.dist-info/RECORD,,