{{summary_info["rpm_name"]}}兼容性评估报告
报告生成时间:{{summary_info["start_time"]}}
{% if summary_info["result"] == 0 %} 兼容性分析结论:通过 {% elif summary_info["result"] == 1 %} 兼容性分析结论:需人工分析 {% elif summary_info["result"] == 2 %} 兼容性分析结论:不通过 {% else %} 兼容性分析结论:扫描异常 {% endif %}
输入参数:
{{summary_info["input_data"]}}
系统架构:
{{summary_info["sys_arch"]}}
扫描软件包:
{{summary_info["target_srpm"]}}
对比软件包:
{{summary_info["origin_srpm"]}}
提交仓库地址:
{{summary_info["koji_repo"]}}
操作类型:
{% if summary_info["tag_action"] == "remove" %}
删除tag
{% else %}
新增tag
{% endif %}
二进制包兼容结论
{% for item in rpm_analyser_res_list%} {% endfor %}
软件包名称 兼容性等级 结论
{{item["rpm_name"]}} {{item["rpm_level"]}} {% if item["res"] == 0 %} {{item["res_desc"]}} {% elif item["res"] == 1 %} {{item["res_desc"]}} {% elif item["res"] == 2 %} {{item["res_desc"]}} {% else %} 扫描结果异常 {% endif %}
{% for rpm_item in rpm_analyser_info_list %}
{{rpm_item["rpm_name"]}}包兼容性详情
{% if not rpm_item["target_rpm_name"] or summary_info["tag_action"] == "remove" %}
依赖兼容性
{% if not rpm_item["target_rpm_name"] %} 子包删除 {% endif %} ( {% if rpm_item["rpm_compare"] %} {% if rpm_item["rpm_compare"]["pro_comp"] == 2%} provides关系异常 {% elif rpm_item["rpm_compare"]["pro_comp"] == 1%} provides关系需人工分析 {% elif rpm_item["rpm_compare"]["pro_comp"] == 0 %} provides关系正常 {% else %} provides扫描异常 {% endif %} {% endif %} )
{% if summary_info["tag_action"] == "remove" %}
{{rpm_item["target_rpm_name"]}}
{% else %}
{{rpm_item["origin_rpm_name"]}}
{% endif %}
差异项
影响范围
    {% if rpm_item["rpm_compare"] and rpm_item["rpm_compare"]["provides_compare_res"] |length %} {% for item in rpm_item["rpm_compare"]["provides_compare_res"] %}
  • {{item["compare_item"]}}
    减少
    {{item["effect_range"] | safe}}
  • {% endfor %} {% else %}
    暂无数据
    {% endif %}
{% else %} {% if rpm_item["file_comp"] != 'NA' %}
文件兼容性
{% if rpm_item["file_comp"] == 0 %} 兼容 {% elif rpm_item["file_comp"] == 1 %} 需人工分析 {% elif rpm_item["file_comp"] == 2 %} 不兼容 {% else %} 文件兼容性扫描异常 {% endif %} {% if rpm_item["file_comp"] != 0 %} ( {% endif %} {% if rpm_item["comp_info"]["ret config"] == 2%} 配置文件删除 ; {% elif rpm_item["comp_info"]["ret config"] == 0 %} 配置文件兼容 ; {% endif %} {% if rpm_item["comp_info"]["ret cmds"] == 2%} 可执行文件删除 ; {% elif rpm_item["comp_info"]["ret cmds"] == 0 %} 可执行文件兼容 ; {% endif %} {% if rpm_item["comp_info"]["ret services"] == 2%} 服务文件删除 ; {% elif rpm_item["comp_info"]["ret services"] == 0 %} 服务文件兼容 ; {% endif %} {% if rpm_item["file_compare"]["ret link"] == 1%} 软连接文件指向文件非本组rpm包 ; {% endif %} {% if rpm_item["comp_info"]["ret static"] == 1%} 静态文件删除 ; {% endif %} {% if rpm_item["file_comp"] != 0 %} ) {% endif %}
{% if rpm_item["comp_info"]["ret config"] == 2 %}
配置文件删除列表
    {% for del_conf_item in rpm_item["file_compare"]["rpm config"][2] %}
  • {{del_conf_item[0]}}
  • {% endfor %}
{% endif %} {% if rpm_item["comp_info"]["ret cmds"] == 2 %}
可执行文件删除列表
    {% for del_cmd_item in rpm_item["file_compare"]["rpm cmds"][2] %}
  • {{del_cmd_item[0]}}
  • {% endfor %}
{% endif %} {% if rpm_item["comp_info"]["ret services"] == 2 %}
服务文件删除列表
    {% for del_service_item in rpm_item["file_compare"]["rpm services"][2] %}
  • {{del_service_item[0]}}
  • {% endfor %}
{% endif %} {% if rpm_item["file_compare"]["rpm static"]|length %}
静态文件删除列表
    {% for static_file in rpm_item["file_compare"]["rpm static"] %}
  • {{static_file}}
  • {% endfor %}
{% endif %} {% if rpm_item["file_compare"]["link_file"]|length %}
软连接文件指向为空列表
    {% for src_path, target_path in rpm_item["file_compare"]["link_file"].items() %}
  • {{src_path}} -> {{target_path}}
  • {% endfor %}
{% endif %}
{% endif %} {% if rpm_item["rpm_compare"] %}
依赖兼容性
{% if rpm_item["dep_comp"] == 0 %} 依赖关系兼容 {% elif rpm_item["dep_comp"] == 1 %} 依赖关系需人工分析 {% elif rpm_item["dep_comp"] == 2 %} 依赖关系不兼容 {% else %} 依赖关系扫描异常 {% endif %} ( {% if rpm_item["rpm_compare"]["req_comp"] == 2 %} requires关系异常 {% elif rpm_item["rpm_compare"]["req_comp"] == 1 %} requires关系需人工分析 {% elif rpm_item["rpm_compare"]["req_comp"] == 0 %} requires关系正常 {% else %} requires关系扫描异常 {% endif %} {% if rpm_item["rpm_compare"]["pro_comp"] == 2%} provides关系异常 {% elif rpm_item["rpm_compare"]["pro_comp"] == 1%} provides关系需人工分析 {% elif rpm_item["rpm_compare"]["pro_comp"] == 0%} provides关系正常 {% else %} provides关系扫描异常 {% endif %} )
{% if rpm_item["origin_rpm_name"] %}
{{rpm_item["origin_rpm_name"]}}
{% else %}
{% endif %}
{{rpm_item["target_rpm_name"]}}
差异项
影响范围
    {% if rpm_item["rpm_compare"]["requires_compare_res"]|length %} {% for item in rpm_item["rpm_compare"]["requires_compare_res"] %}
  • {% if rpm_item["origin_rpm_name"] %}
    {{item["compare_item"]}}
    {% else%}
    {% endif %}
    {{item["check_item"]}}
    {% if item["change_type"]=='add' %} 新增 {% elif item["change_type"]=='change' %} 变更 {% endif %}
    {{ item["effect_range"] | safe}}
  • {% endfor %} {% else %}
    暂无数据
    {% endif %}
    {% if rpm_item["rpm_compare"]["provides_compare_res"] |length %} {% for item in rpm_item["rpm_compare"]["provides_compare_res"] %}
  • {% if rpm_item["origin_rpm_name"] %}
    {{item["compare_item"]}}
    {% else %}
    {% endif %}
    {{item["check_item"]}}
    {% if item["change_type"]=='add' %} 新增 {% elif item["change_type"]=='delete' %} 减少 {% elif item["change_type"]=='change' %} 变更 {% endif %}
    {{item["effect_range"] | safe}}
  • {% endfor %} {% else %}
    暂无数据
    {% endif %}
{% endif %} {% if rpm_item["origin_rpm_name"] %}
接口兼容性
C接口兼容性检查
{% if rpm_item["comp_info"]["ret elf"] == 0 %} 接口兼容 {% elif rpm_item["comp_info"]["ret elf"] == 1 %} 接口变更需人工分析 {% else %} 接口不兼容 {% endif %}
接口兼容库数量: {{rpm_item["count_info"]["count elf"]["same"]}} 存在接口变更库数量: {{rpm_item["count_info"]["count elf"]["change"]}} 存在接口删除库数量: {{rpm_item["count_info"]["count elf"]["remove"]}}
{{rpm_item["origin_rpm_name"]}}
{{rpm_item["target_rpm_name"]}}

结论

兼容
变更
删除
    {% if rpm_item["abi_compare"]["ret elf"]%} {% for item in rpm_item["abi_compare"]["elf abi"] %} {% if item["abi_comp"] == 1 %}
  • {{item["old_so_name"]}}
    {{item["new_so_name"]}}
    变更
      函数名
      原函数定义
      目标函数定义
      定义源文件
      ABI检查
      API检查
      {% for chg_item in item["changed_detail"] %} {% if chg_item["type"] != "added" %}
      {{loop.index}}
      {{chg_item["func_name"]}}
      {{chg_item["old_func_def"]}}
      {{chg_item["new_func_def"]}}
      {{chg_item["file_name"]}}
      {% if chg_item["type"] == "removed" %} {% else %} {% endif %} {% if chg_item["is_api"] == "true" %} {% else %} {% endif%}
      {% endif %} {% endfor %}
  • {% elif item["abi_comp"] == 2 %} {% if item["changed_detail"] %}
  • {{item["old_so_name"]}}
    {{item["new_so_name"]}}
    变更
      函数名
      原函数定义
      目标函数定义
      定义源文件
      ABI检查
      API检查
      {% for chg_item in item["changed_detail"]%} {% if chg_item["type"] != "added" %}
      {{loop.index}}
      {{chg_item["func_name"]}}
      {{chg_item["old_func_def"]}}
      {{chg_item["new_func_def"]}}
      {{chg_item["file_name"]}}
      {% if chg_item["type"] == "removed" %} {% else %} {% endif %} {% if chg_item["is_api"] == "true" %} {% else %} {% endif%}
      {% endif %} {% endfor %}
  • {% else %}
  • {{item["old_so_name"]}}
    {{item["new_so_name"]}}
    删除
  • {% endif %} {% else %}
  • {{item["old_so_name"]}}
    {{item["new_so_name"]}}
    兼容
  • {% endif %} {% endfor %}
    暂无数据
    {% else %} {% if rpm_item["abi_compare"]["elf abi"]|length %} {% for item in rpm_item["abi_compare"]["elf abi"] %} {% if item["abi_comp"] == 0 %}
  • {{item["old_so_name"]}}
    {{item["new_so_name"]}}
    兼容
  • {% endif %} {% endfor %} {% endif %}
    暂无数据
    {% endif %}
{% if rpm_item["java_compare"] %}
Java接口兼容性检查
{% if rpm_item["comp_info"]["ret java"] == 0 %} 接口兼容 {% else %} 接口不兼容 {% endif %}
接口兼容数量: {{rpm_item["java_compare"]["unchanged"]}} 接口新增数量: {{rpm_item["java_compare"]["added"]}} 接口变更数量: {{rpm_item["java_compare"]["changed"]}} 接口删除数量: {{rpm_item["java_compare"]["removed"]}}
objectName
objectType
className

结论

新增
变更
删除
    {% if rpm_item["java_compare"]["ret java"] %} {% for item in rpm_item["java_compare"]["info"] %} {% if item["change_type"] == "changed" %}
  • {{item["object_name"]}}
    {{item["object_type"]}}
    {{item["class_name"]}}
    变更
      src_object
      target_object
      desc
      {{item["src_object"]}}
      {{item["target_object"]}}
      {{item["change_info"]}}
  • {% elif item["change_type"] == "removed" %}
  • {{item["object_name"]}}
    {{item["object_type"]}}
    {{item["class_name"]}}
    删除
      src_object
      target_object
      desc
      {{item["src_object"]}}
      {{item["target_object"]}}
      {{item["change_info"]}}
  • {% endif %} {% endfor %}
    暂无数据
    {% else %} {% for item in rpm_item["java_compare"]["info"] %} {% if item["change_type"] == "added" %}
  • {{item["object_name"]}}
    {{item["object_type"]}}
    {{item["class_name"]}}
    新增
      src_object
      target_object
      desc
      {{item["src_object"]}}
      {{item["target_object"]}}
      {{item["change_info"]}}
  • {% endif %} {% endfor %}
    暂无数据
    {% endif %}
{% endif %}
{% endif %} {% endif %}
{% endfor %}

弹框标题

×