openubmc-bingo 0.5.240__py3-none-any.whl → 0.5.241__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 +1 -1
- bmcgo/component/coverage/incremental_cov.py +4 -1
- bmcgo/functional/full_component.py +1 -1
- bmcgo/misc.py +3 -0
- bmcgo/tasks/task.py +53 -24
- bmcgo/tasks/task_buildgppbin.py +57 -6
- bmcgo/tasks/task_hpm_envir_prepare.py +8 -1
- bmcgo/tasks/task_prepare.py +1 -1
- bmcgo/tasks/task_sign_and_pack_hpm.py +1 -1
- bmcgo/utils/config.py +5 -2
- bmcgo/utils/installations/README.md +1 -0
- bmcgo/utils/installations/install_plans/bingo.yml +1 -1
- bmcgo/utils/tools.py +9 -4
- {openubmc_bingo-0.5.240.dist-info → openubmc_bingo-0.5.241.dist-info}/METADATA +1 -1
- {openubmc_bingo-0.5.240.dist-info → openubmc_bingo-0.5.241.dist-info}/RECORD +18 -17
- {openubmc_bingo-0.5.240.dist-info → openubmc_bingo-0.5.241.dist-info}/WHEEL +0 -0
- {openubmc_bingo-0.5.240.dist-info → openubmc_bingo-0.5.241.dist-info}/entry_points.txt +0 -0
- {openubmc_bingo-0.5.240.dist-info → openubmc_bingo-0.5.241.dist-info}/top_level.txt +0 -0
bmcgo/__init__.py
CHANGED
|
@@ -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
|
-
|
|
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
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}
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
258
|
-
""
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
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}
|
|
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)
|
bmcgo/tasks/task_buildgppbin.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#!/usr/bin/env
|
|
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.
|
|
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
|
|
93
|
+
def move_dependency(self):
|
|
83
94
|
# 移动到tools/build_tools目录中
|
|
84
95
|
self.chdir(self.config.sdk_path)
|
|
85
|
-
|
|
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
|
-
|
|
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):
|
bmcgo/tasks/task_prepare.py
CHANGED
|
@@ -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.
|
|
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.
|
|
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
|
|
145
|
-
|
|
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/
|
|
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.
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
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,10 +1,10 @@
|
|
|
1
|
-
bmcgo/__init__.py,sha256=
|
|
1
|
+
bmcgo/__init__.py,sha256=S9cLDyiIE1bnqSwEqBQ9nTExolNAyx6-7PVLyYEzJaw,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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
218
|
-
bmcgo/tasks/task_sign_and_pack_hpm.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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.
|
|
239
|
-
openubmc_bingo-0.5.
|
|
240
|
-
openubmc_bingo-0.5.
|
|
241
|
-
openubmc_bingo-0.5.
|
|
242
|
-
openubmc_bingo-0.5.
|
|
239
|
+
openubmc_bingo-0.5.241.dist-info/METADATA,sha256=Gx0g3M4UK621seJ5bx149eYbgzJnJYEZmQbhgbYF77k,904
|
|
240
|
+
openubmc_bingo-0.5.241.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
|
241
|
+
openubmc_bingo-0.5.241.dist-info/entry_points.txt,sha256=UUoUP-vAWTgg9vEYbRwYqOBHgpRtkngdzMPb-ocz90g,42
|
|
242
|
+
openubmc_bingo-0.5.241.dist-info/top_level.txt,sha256=9AcvCAt1nZcOgMsGt6T07mg2Bgtdet-3mHTwg91axgI,6
|
|
243
|
+
openubmc_bingo-0.5.241.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|