已合并
fix(package): clean built-in AICPU artifacts on uninstall #15309
qzzzy1创建于 4 天前
fix(package): clean built-in AICPU artifacts on uninstall #15309
已合并
共 2 个文件变更+15-2
| @@ -13,8 +13,8 @@ | |||
| 13 | <file_info copy_type="delivery" src_path="" | 13 | <file_info copy_type="delivery" src_path="" |
| 14 | dst_path="opp/built-in/op_impl/aicpu/" | 14 | dst_path="opp/built-in/op_impl/aicpu/" |
| 15 | install_path="opp/built-in/op_impl/aicpu/" install_type="all" optional="true"> | 15 | install_path="opp/built-in/op_impl/aicpu/" install_type="all" optional="true"> |
| 16 | - <file value="config" entity="true" install_mod="755"/> | 16 | + <file value="config" install_mod="755"/> |
| 17 | - <file value="kernel" entity="true" install_mod="755"/> | 17 | + <file value="kernel" install_mod="755"/> |
| 18 | </file_info> | 18 | </file_info> |
| 19 | <file_info copy_type="delivery" src_path="" | 19 | <file_info copy_type="delivery" src_path="" |
| 20 | dst_path="opp/built-in/op_graph/inc" | 20 | dst_path="opp/built-in/op_graph/inc" |
| @@ -180,6 +180,17 @@ remove_init_py() { | |||
| 180 | [ -e ${built_in_impl_path}/dynamic/__init__.py ] && rm ${built_in_impl_path}/dynamic/__init__.py > /dev/null 2>&1 | 180 | [ -e ${built_in_impl_path}/dynamic/__init__.py ] && rm ${built_in_impl_path}/dynamic/__init__.py > /dev/null 2>&1 |
| 181 | } | 181 | } |
| 182 | 182 | ||
| 183 | +remove_builtin_aicpu_files() { | ||
W run 包这条路径是清干净了,不过 rpm/deb 那边的 custom_prerm.sh 没看到对应处理,whl 目录和 init.py 那些都是两边镜像着清的,确认下 rpm/deb 卸载时这两个 aicpu 文件会不会还残留?如果 rpm 文件清单本身能跟踪到就不用管,不然建议 prerm 里也补一份 ![]() ![]() | |||
| 184 | + local aicpu_impl_path=${TARGET_OPP_BUILT_IN}/op_impl/aicpu | ||
| 185 | + | ||
| 186 | + rm -f "${aicpu_impl_path}/config/aicpu_transformer.json" > /dev/null 2>&1 | ||
W 这两个文件名在 cmake/symbol.cmake 里也各定义了一份,和这边硬编码没有任何联动,后面 cmake 侧一改名,卸载清理就悄悄失效了,建议至少一边加个注释互相提醒,避免两边各自漂移 ![]() ![]() | |||
| 187 | + rm -f "${aicpu_impl_path}/kernel/libtransformer_aicpu_kernels.so" > /dev/null 2>&1 | ||
| 188 | + | ||
| 189 | + remove_dir_if_empty "${aicpu_impl_path}/config" | ||
| 190 | + remove_dir_if_empty "${aicpu_impl_path}/kernel" | ||
| 191 | + remove_dir_if_empty "${aicpu_impl_path}" | ||
| 192 | +} | ||
| 193 | + | ||
| 183 | remove_whl_package() { | 194 | remove_whl_package() { |
| 184 | local python_dir="${TARGET_VERSION_DIR}/python/site-packages" | 195 | local python_dir="${TARGET_VERSION_DIR}/python/site-packages" |
| 185 | 196 | ||
| @@ -218,6 +229,8 @@ remove_ops_transformer() { | |||
| 218 | 229 | ||
| 219 | remove_init_py | 230 | remove_init_py |
| 220 | 231 | ||
| 232 | + remove_builtin_aicpu_files | ||
| 233 | + | ||
| 221 | remove_whl_package | 234 | remove_whl_package |
| 222 | 235 | ||
| 223 | remove_module | 236 | remove_module |


【review】 问题分类:可维护性 位置:scripts/package/module/ascend/OpsTransformerInc.xml:16,代码: (同文件 17 行
kernel同理) 问题:这里把opp/built-in/op_impl/aicpu/{config,kernel}两个条目的entity="true"去掉,而同一仓库今天另有一个未合入的 PR(#15204)在完全相同的两行上新增了entity="true",两个 PR 对同一份打包清单做的是方向相反的修改。 可能导致的结果:两个 PR 若先后合入,最终行为取决于合入顺序且不会产生冲突告警(同一行文本改动在各自分支上都可编译/可打包):先合 15204 再合本 PR 会回到不带 entity 的旧行为,安装/卸载时对这两个目录的处理与作者预期不一致,遗留目录或删除范围出现回归。 建议的修改方法:与 #15204 的作者确认这两个条目最终应以哪种语义交付(entity 是否表示目录整体投递),只保留一个 PR 生效,并在 PR 描述中互相引用说明;若最终保留本 PR 的写法,请补充对应的安装/卸载验证结论。