openubmc-bingo 0.6.0__py3-none-any.whl → 0.6.3__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/cli/cli.py +9 -0
- bmcgo/codegen/lua/codegen.py +1 -1
- bmcgo/component/deploy.py +1 -1
- bmcgo/component/template/conanbase.py.mako +1 -0
- bmcgo/component/template_v2/conanbase.py.mako +155 -124
- bmcgo/component/test.py +8 -1
- bmcgo/functional/conan_index_build.py +26 -9
- bmcgo/tasks/task_build_conan.py +30 -7
- bmcgo/utils/component_post.py +0 -1
- bmcgo/utils/component_version_check.py +67 -13
- {openubmc_bingo-0.6.0.dist-info → openubmc_bingo-0.6.3.dist-info}/METADATA +1 -1
- {openubmc_bingo-0.6.0.dist-info → openubmc_bingo-0.6.3.dist-info}/RECORD +16 -16
- {openubmc_bingo-0.6.0.dist-info → openubmc_bingo-0.6.3.dist-info}/WHEEL +0 -0
- {openubmc_bingo-0.6.0.dist-info → openubmc_bingo-0.6.3.dist-info}/entry_points.txt +0 -0
- {openubmc_bingo-0.6.0.dist-info → openubmc_bingo-0.6.3.dist-info}/top_level.txt +0 -0
bmcgo/__init__.py
CHANGED
bmcgo/cli/cli.py
CHANGED
|
@@ -342,11 +342,20 @@ class Command(object):
|
|
|
342
342
|
return True
|
|
343
343
|
if need_conan_v2 and misc.conan_v1():
|
|
344
344
|
log.warning("检测到依赖conan2.0但仅安装了conan1.0,尝试重新安装conan2.0")
|
|
345
|
+
log.info("1. 组件仓支持conan2.0的依据:conanfile.py中未申明`required_conan_version`或依赖conan 2.x.x,\
|
|
346
|
+
如`quired_conan_version = '>=2.13.0'`")
|
|
347
|
+
log.info("2. manifest或ibmc_sdk仓等支持conan2.0的依据:.bmcgo/config或.bingo/config文件记录的conan.version配置版本以2开头,如配置为:")
|
|
348
|
+
log.info(" [conan]")
|
|
349
|
+
log.info(" version = 2.x.x")
|
|
350
|
+
log.info("3. conan_index仓使用参数`--conan2`控制是否构建conan2.0包(conan2.0包配方存储在recipes2目录)")
|
|
345
351
|
tools.run_command("pip3 install conan==2.13.0 --force-reinstall --break-system-packages")
|
|
346
352
|
log.warning("检测到依赖conan2.0但仅安装了conan1.0,已安装conan2.0,任务退出,请重新执行")
|
|
347
353
|
return False
|
|
348
354
|
if not need_conan_v2 and misc.conan_v2():
|
|
349
355
|
log.warning("检测到依赖conan1.0但仅安装了conan2.0,尝试重新安装conan1.0")
|
|
356
|
+
log.info("1. 组件仓支持conan1.0的依据:conanfile.py中未申明`required_conan_version`或依赖conan 1.x.x")
|
|
357
|
+
log.info("2. manifest或ibmc_sdk仓支持conan1.0的依据:.bmcgo/config或.bingo/config文件未记录的conan.version配置")
|
|
358
|
+
log.info("3. conan_index仓默认(不指定`--conan2`时)构建conan1.0包(conan1.0包配方存储在recipes目录)")
|
|
350
359
|
tools.run_command("pip3 install conan==1.62.0 --force-reinstall --break-system-packages")
|
|
351
360
|
log.warning("检测到依赖conan1.0但仅安装了conan2.0,已安装conan1.0,任务退出,请重新执行")
|
|
352
361
|
return False
|
bmcgo/codegen/lua/codegen.py
CHANGED
|
@@ -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"@{
|
|
113
|
+
channel = f"@{misc.conan_user()}/{misc.StageEnum.STAGE_RC.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"]
|
bmcgo/component/deploy.py
CHANGED
|
@@ -1,7 +1,20 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# coding=utf-8
|
|
3
|
+
# Copyright (c) 2024 Huawei Technologies Co., Ltd.
|
|
4
|
+
# openUBMC is licensed under Mulan PSL v2.
|
|
5
|
+
# You can use this software according to the terms and conditions of the Mulan PSL v2.
|
|
6
|
+
# You may obtain a copy of Mulan PSL v2 at:
|
|
7
|
+
# http://license.coscl.org.cn/MulanPSL2
|
|
8
|
+
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
|
9
|
+
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
|
10
|
+
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
|
11
|
+
# See the Mulan PSL v2 for more details.
|
|
1
12
|
import os
|
|
13
|
+
import concurrent.futures
|
|
2
14
|
import urllib3
|
|
15
|
+
% if not pkg.is_maintain:
|
|
3
16
|
import time
|
|
4
|
-
|
|
17
|
+
% endif
|
|
5
18
|
% if pkg.is_maintain:
|
|
6
19
|
import stat
|
|
7
20
|
import shutil
|
|
@@ -48,7 +61,7 @@ class ConanBase(ConanFile):
|
|
|
48
61
|
"enable_luajit": [True, False],
|
|
49
62
|
% endif
|
|
50
63
|
% for op, ctx in pkg.design_options.items():
|
|
51
|
-
"${op}": [${",".join(("\"" + i + "\"") if isinstance(i, str) else str(i) for i in ctx["option"])}],
|
|
64
|
+
"${op}": [${", ".join(("\"" + i + "\"") if isinstance(i, str) else str(i) for i in ctx["option"])}],
|
|
52
65
|
% endfor
|
|
53
66
|
}
|
|
54
67
|
default_options = {
|
|
@@ -64,13 +77,6 @@ class ConanBase(ConanFile):
|
|
|
64
77
|
% endfor
|
|
65
78
|
}
|
|
66
79
|
|
|
67
|
-
% if language == "c":
|
|
68
|
-
def _codegen(self):
|
|
69
|
-
args = ["-s", "mds/service.json"]
|
|
70
|
-
gen = GenComp(args)
|
|
71
|
-
gen.run(self._codegen_version)
|
|
72
|
-
% endif
|
|
73
|
-
|
|
74
80
|
def layout(self):
|
|
75
81
|
cmake_layout(self, build_folder=".build")
|
|
76
82
|
|
|
@@ -112,7 +118,7 @@ class ConanBase(ConanFile):
|
|
|
112
118
|
tag = git.run("tag --points-at HEAD")
|
|
113
119
|
update_conandata(self, {"sources": {self.version: {"branch": f"refs/tags/{tag}" if tag else commit, "url": url}}})
|
|
114
120
|
% endif
|
|
115
|
-
|
|
121
|
+
|
|
116
122
|
% if pkg.is_maintain:
|
|
117
123
|
def export_sources(self):
|
|
118
124
|
patches = self.conan_data.get("patches", {}).get(self.version, [])
|
|
@@ -125,76 +131,23 @@ class ConanBase(ConanFile):
|
|
|
125
131
|
dst = os.path.join(self.export_sources_folder, patch_file)
|
|
126
132
|
mkdir(os.path.dirname(dst))
|
|
127
133
|
shutil.copy2(src, dst)
|
|
128
|
-
% endif
|
|
129
134
|
|
|
135
|
+
% endif
|
|
130
136
|
def source(self):
|
|
131
137
|
git = Git(self)
|
|
132
138
|
sources = self.conan_data["sources"][self.version]
|
|
139
|
+
% if not pkg.is_maintain:
|
|
133
140
|
if sources["url"] and sources["branch"]:
|
|
134
141
|
git.fetch_commit(url=sources["url"], commit=sources["branch"].split("/")[-1])
|
|
135
142
|
else:
|
|
136
143
|
copy(self, "*", src=sources["pwd"], dst=".")
|
|
144
|
+
% else:
|
|
145
|
+
git.fetch_commit(url=sources["url"], commit=sources["branch"].split("/")[-1])
|
|
146
|
+
% endif
|
|
137
147
|
% if language == "c":
|
|
138
148
|
self._codegen()
|
|
139
149
|
% endif
|
|
140
150
|
|
|
141
|
-
def _pre_generate(self):
|
|
142
|
-
tc = CMakeToolchain(self)
|
|
143
|
-
tc.preprocessor_definitions["_FORTIFY_SOURCE"] = "2"
|
|
144
|
-
|
|
145
|
-
tc.variables["BUILD_MANUFACTURE"] = self.options.manufacture
|
|
146
|
-
% if len(pkg.design_options) > 0:
|
|
147
|
-
% for op, _ in pkg.design_options.items():
|
|
148
|
-
tc.variables["CONAN_DEFS_${op.upper()}"] = self.options.${op}
|
|
149
|
-
% endfor
|
|
150
|
-
% endif
|
|
151
|
-
% if language == "lua":
|
|
152
|
-
if self.options.enable_luajit:
|
|
153
|
-
tc.variables["CONAN_DEFS_ENABLE_LUAJIT"] = True
|
|
154
|
-
% endif
|
|
155
|
-
if self.options.test:
|
|
156
|
-
tc.variables["ENABLE_TEST"] = True
|
|
157
|
-
tc.preprocessor_definitions["ENABLE_TEST"] = True
|
|
158
|
-
# 向CMAKE传递版本号信息
|
|
159
|
-
version = self.version.split(".")
|
|
160
|
-
if len(version) >= 1:
|
|
161
|
-
tc.variables["PACKAGE_VERSION_MAJOR"] = version[0]
|
|
162
|
-
if len(version) >= 2:
|
|
163
|
-
tc.variables["PACKAGE_VERSION_MINOR"] = version[1]
|
|
164
|
-
if len(version) >= 3:
|
|
165
|
-
tc.variables["PACKAGE_VERSION_REVISION"] = version[2]
|
|
166
|
-
# 设置额外编译选项或者重定义CFLAGS CXXFLAGS,也可以设置其他开关
|
|
167
|
-
# 示例: os.environ['CFLAGS'] = f"{os.getenv('CFLAGS')} -fPIE"
|
|
168
|
-
|
|
169
|
-
if self.settings.arch in ["armv8", "x86_64"]:
|
|
170
|
-
tc.variables["CMAKE_INSTALL_LIBDIR"] = "usr/lib64"
|
|
171
|
-
else:
|
|
172
|
-
tc.variables["CMAKE_INSTALL_LIBDIR"] = "usr/lib"
|
|
173
|
-
|
|
174
|
-
if self.options.get_safe("asan", False):
|
|
175
|
-
print("Enable asan flags")
|
|
176
|
-
asan_flags = "-fsanitize=address -fsanitize-recover=address,all -fno-omit-frame-pointer -fno-stack-protector -O0"
|
|
177
|
-
tc.extra_cflags.append(asan_flags)
|
|
178
|
-
tc.extra_cxxflags.append(asan_flags)
|
|
179
|
-
tc.extra_sharedlinkflag.append("LDFLAGS", "-fsanitize=address")
|
|
180
|
-
tc.extra_exelinkflag.append("LDFLAGS", "-fsanitize=address")
|
|
181
|
-
|
|
182
|
-
# GCOV 标志设置
|
|
183
|
-
if self.options.get_safe("gcov", False):
|
|
184
|
-
print("Enable gcov flags")
|
|
185
|
-
gcov_flags = "-ftest-coverage -fprofile-arcs -fprofile-update=atomic"
|
|
186
|
-
tc.extra_cflags.append(gcov_flags)
|
|
187
|
-
tc.extra_cxxflags.append(gcov_flags)
|
|
188
|
-
# 配合generate添加宏定义
|
|
189
|
-
tc.variables["CMAKE_TOOLCHAIN_FILE"] = "conan_toolchain.cmake"
|
|
190
|
-
# rpath配置
|
|
191
|
-
tc.variables["CMAKE_SKIP_BUILD_RPATH"] = True
|
|
192
|
-
tc.variables["CMAKE_SKIP_RPATH"] = True
|
|
193
|
-
tc.variables["CMAKE_SKIP_INSTALL_RPATH"] = True
|
|
194
|
-
tc.variables["CMAKE_BUILD_WITH_INSTALL_RPATH"] = False
|
|
195
|
-
tc.variables["CMAKE_INSTALL_RPATH_USE_LINK_PATH"] = False
|
|
196
|
-
return tc
|
|
197
|
-
|
|
198
151
|
def generate(self):
|
|
199
152
|
tc = self._pre_generate()
|
|
200
153
|
tc.generate()
|
|
@@ -213,28 +166,7 @@ class ConanBase(ConanFile):
|
|
|
213
166
|
files[a_file] = b_file
|
|
214
167
|
return files
|
|
215
168
|
|
|
216
|
-
def _revise_renamed_files(self, changed_files):
|
|
217
|
-
for a_file, b_file in changed_files.items():
|
|
218
|
-
if a_file != b_file:
|
|
219
|
-
if a_file != "/dev/null" and b_file != "/dev/null":
|
|
220
|
-
os.rename(a_file, b_file)
|
|
221
|
-
cmd = f"git rm -f {a_file}"
|
|
222
|
-
self.run(cmd)
|
|
223
|
-
elif a_file != "/dev/null":
|
|
224
|
-
cmd = f"git rm -f {a_file}"
|
|
225
|
-
self.run(cmd)
|
|
226
|
-
continue
|
|
227
|
-
cmd = f"git add {b_file}"
|
|
228
|
-
self.run(cmd)
|
|
229
|
-
|
|
230
169
|
%endif
|
|
231
|
-
def _configure_cmake(self):
|
|
232
|
-
if self._cmake is not None:
|
|
233
|
-
return self._cmake
|
|
234
|
-
self._cmake = CMake(self)
|
|
235
|
-
self._cmake.configure()
|
|
236
|
-
return self._cmake
|
|
237
|
-
|
|
238
170
|
def build(self):
|
|
239
171
|
% if pkg.is_maintain:
|
|
240
172
|
for patch in self.conan_data.get("patches", {}).get(self.version, []):
|
|
@@ -267,15 +199,23 @@ class ConanBase(ConanFile):
|
|
|
267
199
|
cmake.install()
|
|
268
200
|
files_to_copy = [
|
|
269
201
|
("permissions.ini", self.source_folder, self.package_folder),
|
|
270
|
-
("model.json", os.path.join(self.source_folder, "mds"),
|
|
271
|
-
|
|
272
|
-
("
|
|
273
|
-
|
|
274
|
-
("*", os.path.join(self.source_folder, "
|
|
275
|
-
|
|
202
|
+
("model.json", os.path.join(self.source_folder, "mds"),
|
|
203
|
+
os.path.join(self.package_folder, "include/mds")),
|
|
204
|
+
("service.json", os.path.join(self.source_folder, "mds"),
|
|
205
|
+
os.path.join(self.package_folder, "include/mds")),
|
|
206
|
+
("*", os.path.join(self.source_folder, "customization"),
|
|
207
|
+
os.path.join(self.package_folder, "include")),
|
|
208
|
+
("*", os.path.join(self.source_folder, "mds"),
|
|
209
|
+
os.path.join(self.package_folder, "usr/share/doc/openubmc/${pkg.name}/mds")),
|
|
210
|
+
("*", os.path.join(self.source_folder, "docs"),
|
|
211
|
+
os.path.join(self.package_folder, "usr/share/doc/openubmc/${pkg.name}/docs")),
|
|
212
|
+
("*", os.path.join(self.source_folder, "build"),
|
|
213
|
+
os.path.join(self.package_folder, "include")),
|
|
276
214
|
("permissions.ini", os.path.join(self.source_folder, "dist"), self.package_folder),
|
|
277
|
-
("*.md", self.source_folder, os.path.join(self.package_folder,
|
|
278
|
-
|
|
215
|
+
("*.md", self.source_folder, os.path.join(self.package_folder,
|
|
216
|
+
"usr/share/doc/openubmc/${pkg.name}/docs")),
|
|
217
|
+
("*.MD", self.source_folder, os.path.join(self.package_folder,
|
|
218
|
+
"usr/share/doc/openubmc/${pkg.name}/docs"))
|
|
279
219
|
]
|
|
280
220
|
for pattern, src, dst in files_to_copy:
|
|
281
221
|
copy(self, pattern, src=src, dst=dst, keep_path=True)
|
|
@@ -287,15 +227,18 @@ class ConanBase(ConanFile):
|
|
|
287
227
|
os.chdir(self.package_folder)
|
|
288
228
|
with concurrent.futures.ThreadPoolExecutor(max_workers=4) as executor:
|
|
289
229
|
for root, _, files in os.walk("."):
|
|
290
|
-
|
|
291
|
-
if file.endswith(".lua") and not os.path.islink(os.path.join(root, file)):
|
|
292
|
-
file_path = os.path.join(root, file)
|
|
293
|
-
if self.options.enable_luajit:
|
|
294
|
-
executor.submit(self.compile_file, file_path, True)
|
|
295
|
-
else:
|
|
296
|
-
executor.submit(self.compile_file, file_path, False)
|
|
230
|
+
self.compile_files(root, files, executor)
|
|
297
231
|
rm(self, "luac.out", self.package_folder)
|
|
298
232
|
|
|
233
|
+
def compile_files(self, root, files, executor):
|
|
234
|
+
for file in files:
|
|
235
|
+
if file.endswith(".lua") and not os.path.islink(os.path.join(root, file)):
|
|
236
|
+
file_path = os.path.join(root, file)
|
|
237
|
+
if self.options.enable_luajit:
|
|
238
|
+
executor.submit(self.compile_file, file_path, True)
|
|
239
|
+
else:
|
|
240
|
+
executor.submit(self.compile_file, file_path, False)
|
|
241
|
+
|
|
299
242
|
def compile_file(self, file_path, enable_luajit):
|
|
300
243
|
if enable_luajit:
|
|
301
244
|
self.run(f"luajit -b -g {file_path} {file_path}")
|
|
@@ -320,27 +263,13 @@ class ConanBase(ConanFile):
|
|
|
320
263
|
dirs = []
|
|
321
264
|
for root, _, files in os.walk("."):
|
|
322
265
|
for file in files:
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
if dir not in dirs:
|
|
329
|
-
dirs.append(dir)
|
|
330
|
-
lib = file[3:-3]
|
|
331
|
-
libs.append(lib)
|
|
332
|
-
continue
|
|
333
|
-
if file.endswith(".a") and file.startswith("lib"):
|
|
334
|
-
if root.startswith("./"):
|
|
335
|
-
dir = root[2:]
|
|
336
|
-
else:
|
|
337
|
-
dir = root
|
|
338
|
-
if dir not in dirs:
|
|
339
|
-
dirs.append(dir)
|
|
340
|
-
libs.append(lib)
|
|
341
|
-
continue
|
|
266
|
+
dirname, libname = self.find_libraries(root, file)
|
|
267
|
+
if dirname and dirname not in dirs:
|
|
268
|
+
dirs.append(dirname)
|
|
269
|
+
if libname:
|
|
270
|
+
libs.append(libname)
|
|
342
271
|
|
|
343
|
-
if
|
|
272
|
+
if dirs:
|
|
344
273
|
self.cpp_info.components["${pkg.name}"].set_property("cmake_target_name", "${pkg.name}::${pkg.name}")
|
|
345
274
|
self.cpp_info.components["${pkg.name}"].set_property("cmake_target_aliass", ["${pkg.name}::${pkg.name}"])
|
|
346
275
|
self.cpp_info.components["${pkg.name}"].set_property("pkg_config_name", "${pkg.name}")
|
|
@@ -350,3 +279,105 @@ class ConanBase(ConanFile):
|
|
|
350
279
|
self.runenv_info.append("LD_LIBRARY_PATH", os.path.join(self.package_folder, dir))
|
|
351
280
|
self.buildenv_info.append("LD_LIBRARY_PATH", os.path.join(self.package_folder, dir))
|
|
352
281
|
|
|
282
|
+
def find_libraries(self, root, file):
|
|
283
|
+
if file.endswith(".so") and file.startswith("lib"):
|
|
284
|
+
if root.startswith("./"):
|
|
285
|
+
dirname = root[2:]
|
|
286
|
+
else:
|
|
287
|
+
dirname = root
|
|
288
|
+
libname = file[3:-3]
|
|
289
|
+
return (dirname, libname)
|
|
290
|
+
if file.endswith(".a") and file.startswith("lib"):
|
|
291
|
+
if root.startswith("./"):
|
|
292
|
+
dirname = root[2:]
|
|
293
|
+
else:
|
|
294
|
+
dirname = root
|
|
295
|
+
return (dirname, file)
|
|
296
|
+
return (None, None)
|
|
297
|
+
|
|
298
|
+
% if pkg.is_maintain:
|
|
299
|
+
def _revise_renamed_files(self, changed_files):
|
|
300
|
+
for a_file, b_file in changed_files.items():
|
|
301
|
+
if a_file != b_file:
|
|
302
|
+
if a_file != "/dev/null" and b_file != "/dev/null":
|
|
303
|
+
os.rename(a_file, b_file)
|
|
304
|
+
cmd = f"git rm -f {a_file}"
|
|
305
|
+
self.run(cmd)
|
|
306
|
+
elif a_file != "/dev/null":
|
|
307
|
+
cmd = f"git rm -f {a_file}"
|
|
308
|
+
self.run(cmd)
|
|
309
|
+
continue
|
|
310
|
+
cmd = f"git add {b_file}"
|
|
311
|
+
self.run(cmd)
|
|
312
|
+
|
|
313
|
+
%endif
|
|
314
|
+
def _configure_cmake(self):
|
|
315
|
+
if self._cmake is not None:
|
|
316
|
+
return self._cmake
|
|
317
|
+
self._cmake = CMake(self)
|
|
318
|
+
self._cmake.configure()
|
|
319
|
+
return self._cmake
|
|
320
|
+
|
|
321
|
+
% if language == "c":
|
|
322
|
+
def _codegen(self):
|
|
323
|
+
args = ["-s", "mds/service.json"]
|
|
324
|
+
gen = GenComp(args)
|
|
325
|
+
gen.run(self._codegen_version)
|
|
326
|
+
|
|
327
|
+
% endif
|
|
328
|
+
def _pre_generate(self):
|
|
329
|
+
tc = CMakeToolchain(self)
|
|
330
|
+
tc.preprocessor_definitions["_FORTIFY_SOURCE"] = "2"
|
|
331
|
+
|
|
332
|
+
tc.variables["BUILD_MANUFACTURE"] = self.options.manufacture
|
|
333
|
+
% if len(pkg.design_options) > 0:
|
|
334
|
+
% for op, _ in pkg.design_options.items():
|
|
335
|
+
tc.variables["CONAN_DEFS_${op.upper()}"] = self.options.${op}
|
|
336
|
+
% endfor
|
|
337
|
+
% endif
|
|
338
|
+
% if language == "lua":
|
|
339
|
+
if self.options.enable_luajit:
|
|
340
|
+
tc.variables["CONAN_DEFS_ENABLE_LUAJIT"] = True
|
|
341
|
+
% endif
|
|
342
|
+
if self.options.test:
|
|
343
|
+
tc.variables["ENABLE_TEST"] = True
|
|
344
|
+
tc.preprocessor_definitions["ENABLE_TEST"] = True
|
|
345
|
+
# 向CMAKE传递版本号信息
|
|
346
|
+
version = self.version.split(".")
|
|
347
|
+
if len(version) >= 1:
|
|
348
|
+
tc.variables["PACKAGE_VERSION_MAJOR"] = version[0]
|
|
349
|
+
if len(version) >= 2:
|
|
350
|
+
tc.variables["PACKAGE_VERSION_MINOR"] = version[1]
|
|
351
|
+
if len(version) >= 3:
|
|
352
|
+
tc.variables["PACKAGE_VERSION_REVISION"] = version[2]
|
|
353
|
+
# 设置额外编译选项或者重定义CFLAGS CXXFLAGS,也可以设置其他开关
|
|
354
|
+
# 示例: os.environ['CFLAGS'] = f"{os.getenv('CFLAGS')} -fPIE"
|
|
355
|
+
|
|
356
|
+
if self.settings.arch in ["armv8", "x86_64"]:
|
|
357
|
+
tc.variables["CMAKE_INSTALL_LIBDIR"] = "usr/lib64"
|
|
358
|
+
else:
|
|
359
|
+
tc.variables["CMAKE_INSTALL_LIBDIR"] = "usr/lib"
|
|
360
|
+
|
|
361
|
+
if self.options.get_safe("asan", False):
|
|
362
|
+
print("Enable asan flags")
|
|
363
|
+
asan_flags = "-fsanitize=address -fsanitize-recover=address,all -fno-omit-frame-pointer -fno-stack-protector -O0"
|
|
364
|
+
tc.extra_cflags.append(asan_flags)
|
|
365
|
+
tc.extra_cxxflags.append(asan_flags)
|
|
366
|
+
tc.extra_sharedlinkflag.append("LDFLAGS", "-fsanitize=address")
|
|
367
|
+
tc.extra_exelinkflag.append("LDFLAGS", "-fsanitize=address")
|
|
368
|
+
|
|
369
|
+
# GCOV 标志设置
|
|
370
|
+
if self.options.get_safe("gcov", False):
|
|
371
|
+
print("Enable gcov flags")
|
|
372
|
+
gcov_flags = "-ftest-coverage -fprofile-arcs -fprofile-update=atomic"
|
|
373
|
+
tc.extra_cflags.append(gcov_flags)
|
|
374
|
+
tc.extra_cxxflags.append(gcov_flags)
|
|
375
|
+
# 配合generate添加宏定义
|
|
376
|
+
tc.variables["CMAKE_TOOLCHAIN_FILE"] = "conan_toolchain.cmake"
|
|
377
|
+
# rpath配置
|
|
378
|
+
tc.variables["CMAKE_SKIP_BUILD_RPATH"] = True
|
|
379
|
+
tc.variables["CMAKE_SKIP_RPATH"] = True
|
|
380
|
+
tc.variables["CMAKE_SKIP_INSTALL_RPATH"] = True
|
|
381
|
+
tc.variables["CMAKE_BUILD_WITH_INSTALL_RPATH"] = False
|
|
382
|
+
tc.variables["CMAKE_INSTALL_RPATH_USE_LINK_PATH"] = False
|
|
383
|
+
return tc
|
bmcgo/component/test.py
CHANGED
|
@@ -408,10 +408,17 @@ class TestComp():
|
|
|
408
408
|
file.write(write_str)
|
|
409
409
|
|
|
410
410
|
def add_luacov_to_preloader(self):
|
|
411
|
+
_, return_code = self.tools.pipe_command([f"file {self.preloader}", "grep ' text$'"], ignore_error=True)
|
|
412
|
+
if return_code == 0:
|
|
413
|
+
log.info(f"添加luacov 依赖到 {self.preloader}")
|
|
414
|
+
insert_str = "require 'luacov'"
|
|
415
|
+
self.tools.run_command(f"sed -i \"1i {insert_str}\" {self.test_config}")
|
|
416
|
+
return
|
|
417
|
+
|
|
411
418
|
preloader_dir = os.path.dirname(self.preloader)
|
|
412
419
|
preloader_wrapper = "app_preloader_wrapper.lua"
|
|
413
420
|
preloader_wrapper_path = os.path.join(preloader_dir, preloader_wrapper)
|
|
414
|
-
log.info("添加 luacov 依赖到
|
|
421
|
+
log.info(f"添加 luacov 依赖到 {preloader_wrapper_path}")
|
|
415
422
|
with os.fdopen(os.open(preloader_wrapper_path, os.O_WRONLY | os.O_CREAT | os.O_TRUNC,
|
|
416
423
|
stat.S_IWUSR | stat.S_IRUSR), 'w') as file:
|
|
417
424
|
preloader_path = Path(self.preloader)
|
|
@@ -170,6 +170,9 @@ class BmcgoCommand:
|
|
|
170
170
|
self.version = split[1]
|
|
171
171
|
if misc.conan_v2():
|
|
172
172
|
self.version = self.version.lower()
|
|
173
|
+
# openubmcsdk采用的不是conandata.yml的方式,需特殊处理
|
|
174
|
+
if self.name == "openubmcsdk":
|
|
175
|
+
return
|
|
173
176
|
if self.stage != "dev":
|
|
174
177
|
self.tag_check()
|
|
175
178
|
|
|
@@ -188,16 +191,21 @@ class BmcgoCommand:
|
|
|
188
191
|
dt_stat = os.environ.get("BINGO_DT_RUN", "off")
|
|
189
192
|
show_log = True if dt_stat == "off" else False
|
|
190
193
|
pkg = self.name + "/" + self.version + "@" + self.user + "/" + self.channel
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
cmd += " --user={} --channel={}".format(self.user, self.channel)
|
|
197
|
-
if self.from_source:
|
|
198
|
-
cmd += " --build=*"
|
|
194
|
+
# openubmcsdk通过export发布,需特殊处理
|
|
195
|
+
if self.name == "openubmcsdk":
|
|
196
|
+
cmd = "conan export . --name {} --version {} --user {} --channel {}".format(
|
|
197
|
+
self.name, self.version, self.user, self.channel)
|
|
199
198
|
else:
|
|
200
|
-
|
|
199
|
+
append_cmd = f"-r {self.remote}" if self.remote else ""
|
|
200
|
+
cmd = "conan create . --name={} --version={} -pr={} {} {} {}".format(
|
|
201
|
+
self.name, self.version, self.profile, setting, append_cmd, options
|
|
202
|
+
)
|
|
203
|
+
|
|
204
|
+
cmd += " --user={} --channel={}".format(self.user, self.channel)
|
|
205
|
+
if self.from_source:
|
|
206
|
+
cmd += " --build=*"
|
|
207
|
+
else:
|
|
208
|
+
cmd += f" --build={self.name}/* --build=missing"
|
|
201
209
|
self.run_command(cmd, show_log=show_log)
|
|
202
210
|
|
|
203
211
|
if not self.upload:
|
|
@@ -236,11 +244,20 @@ class BmcgoCommand:
|
|
|
236
244
|
cmd += " --build=*"
|
|
237
245
|
else:
|
|
238
246
|
cmd += " --build=missing"
|
|
247
|
+
# openubmcsdk通过export发布,需特殊处理
|
|
248
|
+
if self.name == "openubmcsdk":
|
|
249
|
+
cmd = "conan export . {}".format(pkg)
|
|
239
250
|
self.run_command(cmd, show_log=show_log)
|
|
240
251
|
|
|
241
252
|
if not self.upload:
|
|
242
253
|
return
|
|
243
254
|
|
|
255
|
+
# openubmcsdk组件无conan info信息,需特殊处理
|
|
256
|
+
if self.name == "openubmcsdk":
|
|
257
|
+
cmd = "conan upload {} -r {}".format(pkg, self.remote)
|
|
258
|
+
self.run_command(cmd)
|
|
259
|
+
log.info("===>>>Upload package successfully, pkg: {}".format(pkg))
|
|
260
|
+
return
|
|
244
261
|
cmd = "conan info {} -pr={} -j".format(pkg, self.profile)
|
|
245
262
|
info_json = self.run_command(cmd, shell=True, capture_output=True).stdout
|
|
246
263
|
for line in info_json.split("\n"):
|
bmcgo/tasks/task_build_conan.py
CHANGED
|
@@ -278,8 +278,9 @@ class TaskClass(Task):
|
|
|
278
278
|
self.skip_install_comp = False
|
|
279
279
|
self.only_manifest_yml = False
|
|
280
280
|
self.update_path()
|
|
281
|
+
self.component_check = ""
|
|
281
282
|
# 记录每个组件的GraphNode信息
|
|
282
|
-
self.package_info = os.path.join(self.config.
|
|
283
|
+
self.package_info = os.path.join(self.config.build_path, "package_info")
|
|
283
284
|
|
|
284
285
|
@property
|
|
285
286
|
def subsys_dir(self):
|
|
@@ -320,6 +321,12 @@ class TaskClass(Task):
|
|
|
320
321
|
comp = comp.lower()
|
|
321
322
|
self.add_new_dependencies(comp, file_handler)
|
|
322
323
|
return
|
|
324
|
+
# 判断组件是否在openubmcsdk中定义
|
|
325
|
+
if search[:-1] in self.component_check.openubmcsdk_dict.keys():
|
|
326
|
+
if misc.conan_v2():
|
|
327
|
+
comp = comp.lower()
|
|
328
|
+
self.add_new_dependencies(comp, file_handler)
|
|
329
|
+
return
|
|
323
330
|
raise errors.ConfigException(f"未知组件: {search}, 请检查配置 !!!")
|
|
324
331
|
|
|
325
332
|
def update_path(self):
|
|
@@ -430,6 +437,16 @@ class TaskClass(Task):
|
|
|
430
437
|
deps = self.package_dependencies_parse(deps)
|
|
431
438
|
# 由于manifest.yml当中有对于此的新的配置,此处将配置读出,并重新分配
|
|
432
439
|
skynet_with_enable_luajit = False
|
|
440
|
+
# 获取manifest.yml中"base/sdk"字段值
|
|
441
|
+
openubmcsdk = self.get_manufacture_config("base/sdk", "")
|
|
442
|
+
if openubmcsdk:
|
|
443
|
+
self.add_new_dependencies(openubmcsdk, new_fd)
|
|
444
|
+
self.component_check = ComponentVersionCheck(
|
|
445
|
+
manifest_yml="manifest.yml",
|
|
446
|
+
ibmc_lock=IBMC_LOCK_FILE,
|
|
447
|
+
community_name="openubmc",
|
|
448
|
+
openubmcsdk=openubmcsdk
|
|
449
|
+
)
|
|
433
450
|
for dep in deps:
|
|
434
451
|
conan = dep.get(misc.CONAN)
|
|
435
452
|
if not conan:
|
|
@@ -482,6 +499,16 @@ class TaskClass(Task):
|
|
|
482
499
|
deps = self.package_dependencies_parse(deps)
|
|
483
500
|
# 由于manifest.yml当中有对于此的新的配置,此处将配置读出,并重新分配
|
|
484
501
|
skynet_with_enable_luajit = False
|
|
502
|
+
# 获取manifest.yml中定义"base/sdk"字段值
|
|
503
|
+
openubmcsdk = self.get_manufacture_config("base/sdk", "")
|
|
504
|
+
if openubmcsdk:
|
|
505
|
+
self.add_new_dependencies(openubmcsdk, new_fd)
|
|
506
|
+
self.component_check = ComponentVersionCheck(
|
|
507
|
+
manifest_yml="manifest.yml",
|
|
508
|
+
ibmc_lock=IBMC_LOCK_FILE,
|
|
509
|
+
community_name="openubmc",
|
|
510
|
+
openubmcsdk=openubmcsdk
|
|
511
|
+
)
|
|
485
512
|
for dep in deps:
|
|
486
513
|
conan = dep.get(misc.CONAN)
|
|
487
514
|
if not conan:
|
|
@@ -536,7 +563,6 @@ class TaskClass(Task):
|
|
|
536
563
|
list.sort(require_list)
|
|
537
564
|
package_info_list = deepcopy(require_list)
|
|
538
565
|
self.run_command(f"rm -rf {dst_file}", sudo=True)
|
|
539
|
-
self.package_info = f"{self.config.rootfs_path}/{os.path.basename(dst_file)}"
|
|
540
566
|
with os.fdopen(os.open(self.package_info, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, stat.S_IWUSR | stat.S_IRUSR |
|
|
541
567
|
stat.S_IWGRP | stat.S_IRGRP | stat.S_IWOTH | stat.S_IROTH), 'w') as fp:
|
|
542
568
|
for package in require_list:
|
|
@@ -685,8 +711,7 @@ class TaskClass(Task):
|
|
|
685
711
|
|
|
686
712
|
shutil.copyfile(lockfile, f"{self.conan_install}/conan.lock")
|
|
687
713
|
# 检查使用到的组件是否都在单板目录 manifest.yml 中配置了
|
|
688
|
-
component_check
|
|
689
|
-
component_check.run()
|
|
714
|
+
self.component_check.run()
|
|
690
715
|
self.clean_luac_out()
|
|
691
716
|
|
|
692
717
|
def install_ibmc(self):
|
|
@@ -728,8 +753,7 @@ class TaskClass(Task):
|
|
|
728
753
|
self.run_command(install_cmd, command_echo=True)
|
|
729
754
|
shutil.copyfile(IBMC_LOCK_FILE, f"{self.conan_install}/conan.lock")
|
|
730
755
|
# 检查使用到的组件是否都在单板目录 manifest.yml 中配置了
|
|
731
|
-
component_check
|
|
732
|
-
component_check.run()
|
|
756
|
+
self.component_check.run()
|
|
733
757
|
self.clean_luac_out()
|
|
734
758
|
|
|
735
759
|
def deploy(self):
|
|
@@ -830,7 +854,6 @@ class TaskClass(Task):
|
|
|
830
854
|
lock_info = json.load(bmc_lock_fp)
|
|
831
855
|
require_list = lock_info.get("requires")
|
|
832
856
|
self.run_command(f"rm -rf {dst_file}", sudo=True)
|
|
833
|
-
self.package_info = f"{self.config.rootfs_path}/{os.path.basename(dst_file)}"
|
|
834
857
|
with os.fdopen(os.open(self.package_info, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, stat.S_IWUSR | stat.S_IRUSR |
|
|
835
858
|
stat.S_IWGRP | stat.S_IRGRP | stat.S_IWOTH | stat.S_IROTH), 'w') as fp:
|
|
836
859
|
for package in require_list:
|
bmcgo/utils/component_post.py
CHANGED
|
@@ -15,15 +15,16 @@
|
|
|
15
15
|
功能: 对比manifest.yml生成的组件清单和自动生成的清单是否一致
|
|
16
16
|
注意: 这个文件名为work, 但不继承 Task 类 !!!!!!
|
|
17
17
|
"""
|
|
18
|
-
|
|
18
|
+
import os
|
|
19
19
|
import json
|
|
20
|
-
|
|
20
|
+
from pathlib import Path
|
|
21
21
|
import yaml
|
|
22
|
-
|
|
23
22
|
from bmcgo.logger import Logger
|
|
24
23
|
from bmcgo import misc
|
|
24
|
+
from bmcgo.utils.tools import Tools
|
|
25
25
|
|
|
26
26
|
log = Logger("component_version_check")
|
|
27
|
+
tools = Tools()
|
|
27
28
|
|
|
28
29
|
|
|
29
30
|
class ComponentVersionCheck:
|
|
@@ -31,18 +32,69 @@ class ComponentVersionCheck:
|
|
|
31
32
|
conan 目录的 manifest.yml 文件是由单板目录下的 manifest.yml 自动生成的
|
|
32
33
|
"""
|
|
33
34
|
|
|
34
|
-
def __init__(self, manifest_yml: str, ibmc_lock: str, community_name: str):
|
|
35
|
+
def __init__(self, manifest_yml: str, ibmc_lock: str, community_name: str, openubmcsdk: str):
|
|
35
36
|
"""读取 manifest.yml(conan目录) 文件与 openubmc.lock 文件
|
|
36
37
|
|
|
37
38
|
Args:
|
|
38
39
|
manifest_yml (str): manifest.yml文件路径
|
|
39
40
|
ibmc_lock (str): openubmc.lock文件路径
|
|
40
41
|
"""
|
|
41
|
-
|
|
42
|
+
self.manifest = ""
|
|
43
|
+
self.manifest_yml = manifest_yml
|
|
44
|
+
self.ibmc_lock = ibmc_lock
|
|
45
|
+
self.manifest_dict = {}
|
|
46
|
+
self.ibmc_lock_dict = {}
|
|
47
|
+
self.openubmcsdk_comp = openubmcsdk
|
|
48
|
+
self.openubmcsdk_dict = self.generate_openubmcsdk_dict(self.openubmcsdk_comp)
|
|
49
|
+
self.community_name = community_name
|
|
50
|
+
|
|
51
|
+
@staticmethod
|
|
52
|
+
def get_cache_path(component):
|
|
53
|
+
"""根据openubmcsdk的包名获取export文件夹路径
|
|
54
|
+
|
|
55
|
+
Returns:
|
|
56
|
+
str: 返回 openubmcsdk 的export路径
|
|
57
|
+
"""
|
|
58
|
+
if misc.conan_v1():
|
|
59
|
+
conan_home = Path(os.environ.get("CONAN_HOME", Path.home() / ".conan/data"))
|
|
60
|
+
openubmcsdk_file = os.path.join(conan_home, component.replace("@", "/"), "export", "requirements.yml")
|
|
61
|
+
else:
|
|
62
|
+
conan_home = f"conan cache path {component}"
|
|
63
|
+
openubmcsdk_file = os.path.join(
|
|
64
|
+
Tools().run_command(conan_home, capture_output=True).stdout(),
|
|
65
|
+
"requirements.yml"
|
|
66
|
+
)
|
|
67
|
+
return openubmcsdk_file
|
|
68
|
+
|
|
69
|
+
def openubmc_folder(self):
|
|
70
|
+
with open(self.manifest_yml, "r") as manifest_fp:
|
|
42
71
|
self.manifest = yaml.safe_load(manifest_fp)
|
|
43
|
-
with open(ibmc_lock, "r") as ibmc_lock_fp:
|
|
72
|
+
with open(self.ibmc_lock, "r") as ibmc_lock_fp:
|
|
44
73
|
self.ibmc_lock = json.load(ibmc_lock_fp)
|
|
45
|
-
|
|
74
|
+
|
|
75
|
+
def generate_openubmcsdk_dict(self, component) -> dict:
|
|
76
|
+
"""根据 requirement.yml(conan目录) 配置生成 组件名: 组件配置 的字典
|
|
77
|
+
|
|
78
|
+
Returns:
|
|
79
|
+
dict: 返回 组件名: 组件配置 的字典
|
|
80
|
+
"""
|
|
81
|
+
# component == ""表示manifest.yml未定义"base/sdk"
|
|
82
|
+
if component == "":
|
|
83
|
+
return {}
|
|
84
|
+
openubmcsdk_file = self.get_cache_path(component)
|
|
85
|
+
if not os.path.isfile(openubmcsdk_file):
|
|
86
|
+
tools.download_conan_recipes(component, misc.CONAN_REPO)
|
|
87
|
+
openubmcsdk_file = self.get_cache_path(component)
|
|
88
|
+
with open(openubmcsdk_file, "r") as openubmcsdk_fp:
|
|
89
|
+
self.openubmcsdk = yaml.safe_load(openubmcsdk_fp)
|
|
90
|
+
dependency_list = self.openubmcsdk[misc.CONAN_DEPDENCIES_KEY]
|
|
91
|
+
openubmc_dict = {x[misc.CONAN].split('/')[0]: x[misc.CONAN].split('@')[0] for x in dependency_list}
|
|
92
|
+
return openubmc_dict
|
|
93
|
+
|
|
94
|
+
def get_dict(self):
|
|
95
|
+
self.openubmc_folder()
|
|
96
|
+
self.manifest_dict = self.generate_manifest_dict()
|
|
97
|
+
self.ibmc_lock_dict = self.generate_ibmc_lock_dict()
|
|
46
98
|
|
|
47
99
|
def generate_manifest_dict(self) -> dict:
|
|
48
100
|
"""根据 manifest.yml(conan目录) 配置生成 组件名: 组件配置 的字典
|
|
@@ -73,16 +125,18 @@ class ComponentVersionCheck:
|
|
|
73
125
|
def run(self):
|
|
74
126
|
"""检查所有组件是否都在 manifest.yml(单板目录下) 中配置了
|
|
75
127
|
"""
|
|
76
|
-
manifest_dict = self.generate_manifest_dict()
|
|
77
|
-
ibmc_lock_dict = self.generate_ibmc_lock_dict()
|
|
78
128
|
# 这里使用报错退出, 为防止有多个组件未配置, 报错在方法结束后触发
|
|
129
|
+
self.get_dict()
|
|
79
130
|
report_error = False
|
|
80
|
-
for key, version in ibmc_lock_dict.items():
|
|
81
|
-
if key not in manifest_dict.keys():
|
|
131
|
+
for key, version in self.ibmc_lock_dict.items():
|
|
132
|
+
if key not in self.manifest_dict.keys() and key not in self.openubmcsdk_dict.keys():
|
|
82
133
|
log.error(f"{version} 组件没有在manifest中配置!!!!!!")
|
|
83
134
|
report_error = True
|
|
84
|
-
elif version !=
|
|
85
|
-
log.error(f"{version} 组件版本与
|
|
135
|
+
elif key in self.openubmcsdk_dict.keys() and version != self.openubmcsdk_dict.get(key, ""):
|
|
136
|
+
log.error(f"{version} 组件版本与openubmcsdk中配置{self.openubmcsdk_dict[key]}不匹配!!!!!!")
|
|
137
|
+
report_error = True
|
|
138
|
+
elif key in self.manifest_dict.keys() and version != self.manifest_dict.get(key, ""):
|
|
139
|
+
log.error(f"{version} 组件版本与manifest中配置{self.manifest_dict[key]}不匹配!!!!!!")
|
|
86
140
|
report_error = True
|
|
87
141
|
|
|
88
142
|
if report_error is True:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
bmcgo/__init__.py,sha256=
|
|
1
|
+
bmcgo/__init__.py,sha256=h5e5kGxl52AxFfae2B-UH2loCj3NNkmsu_yRg2nr27M,561
|
|
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=
|
|
10
|
+
bmcgo/cli/cli.py,sha256=KiQlFonVx0G7pZkETLKoWAPIZAOBgZgM1YRfeIUbhog,24938
|
|
11
11
|
bmcgo/cli/config.conan2.yaml,sha256=jB0u2jSPpEk6D1-I3xQKnDinnLHVoRV9Z0CA583dotg,289
|
|
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=
|
|
38
|
+
bmcgo/codegen/lua/codegen.py,sha256=tyIe6JQ6DGDkRuA7i79HZS59ffHuzBHVjuEQ3BVr3oA,9063
|
|
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
|
|
@@ -171,10 +171,10 @@ bmcgo/component/__init__.py,sha256=BDXz8BcSlCkfo5UYt6j2rm89-HiYA1ZzfpFhy99MH-0,5
|
|
|
171
171
|
bmcgo/component/build.py,sha256=gomdHTfscI4p_m2sev2vR9ws55N7ZyuMPNPGv126u9U,11630
|
|
172
172
|
bmcgo/component/component_dt_version_parse.py,sha256=-Rt6i2fZrmYNZGoMqB21D_T9fC7fhhtUFIFvdPsMICM,14188
|
|
173
173
|
bmcgo/component/component_helper.py,sha256=rNwfhagfz6E3BjKERq9oOPLRfeKQlqhLojb6oJLXcEA,7933
|
|
174
|
-
bmcgo/component/deploy.py,sha256=
|
|
174
|
+
bmcgo/component/deploy.py,sha256=Iy5CsiolKS1h5jDg13nYkfy6--BtbBZ8FLou2oVuoLQ,6544
|
|
175
175
|
bmcgo/component/gen.py,sha256=lhPe_VV08CDFSydSLCX7IC5m8obNvYZSSzIp9o84nd0,7248
|
|
176
176
|
bmcgo/component/package_info.py,sha256=5iOcS9gFnwBQo3uNivVjgeJw_xP3RDnnBA7nxjOc2vs,14472
|
|
177
|
-
bmcgo/component/test.py,sha256=
|
|
177
|
+
bmcgo/component/test.py,sha256=t_j0K_r5OrZ4T_2io8Kk53xYf0M6bD5yextANttaRKU,45373
|
|
178
178
|
bmcgo/component/analysis/analysis.py,sha256=VJpKdvQmlFQaeKWl3-JggsPq4ioObKOXuaBfzgd74hQ,8497
|
|
179
179
|
bmcgo/component/analysis/build_deps.py,sha256=cyQh5D3R1syQfMJcNxEIKKSJGanPMNRFPGlJRitDAa0,7324
|
|
180
180
|
bmcgo/component/analysis/data_deps.py,sha256=UkuqMhJseZIXMZWC2cJ4csko7rENPlpXJUU0eRWVZNM,16148
|
|
@@ -188,15 +188,15 @@ bmcgo/component/analysis/sr_validation.py,sha256=OrgPPjlOoLgRQyD_J6VZXAY0I6gtqGV
|
|
|
188
188
|
bmcgo/component/coverage/__init__.py,sha256=ZgUEyI86FTlOdBzcuTzz7UqTtfWcz416Gx4BCqcQlhA,557
|
|
189
189
|
bmcgo/component/coverage/c_incremental_cov_report.template,sha256=FPhK1DZtmWsjDxa32R1ViH3IGCtNHcx0zFfgRo0s2nI,1576
|
|
190
190
|
bmcgo/component/coverage/incremental_cov.py,sha256=Uf-UdY4CW9rpP4sbURkCXBWyYMXWaG3R1Pyo3cDNvcQ,16859
|
|
191
|
-
bmcgo/component/template/conanbase.py.mako,sha256=
|
|
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=
|
|
193
|
+
bmcgo/component/template_v2/conanbase.py.mako,sha256=X27JBoMWq_kUaxJpNHLuS9idmDENGmQNTI4nHg0ReJU,15599
|
|
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
|
|
197
197
|
bmcgo/functional/bmc_studio_action.py,sha256=Gg96UB8QtnhsaqSdMhXuS9fddzAFPhR6UYCpto9UOYA,3605
|
|
198
198
|
bmcgo/functional/check.py,sha256=ReGN_8RRM6isX_r7XXEuHzkooh8pasky5_GpAml5d_g,8356
|
|
199
|
-
bmcgo/functional/conan_index_build.py,sha256=
|
|
199
|
+
bmcgo/functional/conan_index_build.py,sha256=wQdrXA_ItIN0pO7If-21HyQftJsR76oahX-h4BBgQs4,12249
|
|
200
200
|
bmcgo/functional/config.py,sha256=ZQ-a9hegI0cV41iTo7t49ryBeUH4wPJ-qkVvWp8toV4,10824
|
|
201
201
|
bmcgo/functional/csr_build.py,sha256=JTIvbjn08xvdo7aUhKW4giwPayojyIeQolT14SuwJRo,41146
|
|
202
202
|
bmcgo/functional/deploy.py,sha256=2NsxCpoZjL4jTyRpbIp20-EKKbQkQe-Hsm20uxHK2Xc,10677
|
|
@@ -224,7 +224,7 @@ 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
226
|
bmcgo/tasks/task.py,sha256=ayh9mxKKLtk2XKzjqXOl6Pe8fcg7S1nTks153hKT9Rw,18321
|
|
227
|
-
bmcgo/tasks/task_build_conan.py,sha256=
|
|
227
|
+
bmcgo/tasks/task_build_conan.py,sha256=E-T64By3nGyjLqmntvxNPlcvNl1E4cTClaASPF5wGDo,50075
|
|
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
|
|
@@ -243,8 +243,8 @@ bmcgo/utils/basic_enums.py,sha256=L5VtHtzSvs6duAnphgqDGXX80Wit3Y7DjMlpi9MCxyI,13
|
|
|
243
243
|
bmcgo/utils/buffer.py,sha256=t1SkWntWksboNFMPsltslwRdXZi3FAe8eV0JAAE7Vto,4004
|
|
244
244
|
bmcgo/utils/build_conans.py,sha256=1kugt48GRf2P-IilkxFSBTl3i8_Xk5EB4cN2LeuZZJY,9330
|
|
245
245
|
bmcgo/utils/combine_json_schemas.py,sha256=08JrAlLeo_JgUqzYcZNgSwJZPLfjbWVJ4esPPt9bPMY,7967
|
|
246
|
-
bmcgo/utils/component_post.py,sha256=
|
|
247
|
-
bmcgo/utils/component_version_check.py,sha256=
|
|
246
|
+
bmcgo/utils/component_post.py,sha256=rTSMv36geI6rbm6ZFQenZfG0mn1nVPpdJqn7g8bYtKA,2330
|
|
247
|
+
bmcgo/utils/component_version_check.py,sha256=BKuQG49cGBTBt4oIODMzjjeKH0TIV2-4lk2jmYaLTjk,6264
|
|
248
248
|
bmcgo/utils/config.py,sha256=xCljGFk7m8IVsCSchJDAzollZEZyXoMDLIgqRMepL-I,49952
|
|
249
249
|
bmcgo/utils/fetch_component_code.py,sha256=gUjZX1m6tzUaleKrA3V42gbOFnNtepZaxItATc6nQa4,11159
|
|
250
250
|
bmcgo/utils/install_manager.py,sha256=XMZUuIHm7_DWRdLV4dAevsyamQ6rt8lb_7OqGWzNBC8,4927
|
|
@@ -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.
|
|
268
|
-
openubmc_bingo-0.6.
|
|
269
|
-
openubmc_bingo-0.6.
|
|
270
|
-
openubmc_bingo-0.6.
|
|
271
|
-
openubmc_bingo-0.6.
|
|
267
|
+
openubmc_bingo-0.6.3.dist-info/METADATA,sha256=gHEn92CmcZZoNsfhXoj_Ll4KihlK7L1mS44JFFTfUEw,1009
|
|
268
|
+
openubmc_bingo-0.6.3.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
|
269
|
+
openubmc_bingo-0.6.3.dist-info/entry_points.txt,sha256=UUoUP-vAWTgg9vEYbRwYqOBHgpRtkngdzMPb-ocz90g,42
|
|
270
|
+
openubmc_bingo-0.6.3.dist-info/top_level.txt,sha256=9AcvCAt1nZcOgMsGt6T07mg2Bgtdet-3mHTwg91axgI,6
|
|
271
|
+
openubmc_bingo-0.6.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|