{{rpm_name}}扫描报告
报告生成时间:{{start_time}}
软件包等级:
level{{rpm_level}}
源软件包:
{% if origin_rpm_name %}
{{rpm_name}}-{{origin_rpm_name}}.rpm
{% else %}
{{origin_rpm_name}}
{% endif %}
目标软件包:
{% if target_rpm_name %}
{{rpm_name}}-{{target_rpm_name}}.rpm
{% else %}
{{target_rpm_name}}
{% endif %}
Source软件包:
{{source_rpm}}
扫描结论:
{% if abi_comp == 0 %} 二进制接口检查:通过 {% elif abi_comp == 1 %} 二进制接口检查:需人工分析 {% elif abi_comp == 2 %} 二进制接口检查:不通过 {% endif %} {% if file_comp == 0 %} 文件检查:通过 {% elif file_comp == 1 %} 文件检查:需人工分析 {% elif file_comp == 2 %} 文件检查:不通过 {% endif %} {% if comp_info["ret base requires"] == 0 %} 基础仓requires检查:通过 {% elif comp_info["ret base requires"] == 1 %} 基础仓requires检查:不通过 {% endif %} {% if comp_info["ret other requires"] == 0 %} 对比仓requires检查:通过 {% elif comp_info["ret other requires"] == 1 %} 对比仓requires检查:不通过 {% endif %}
{{rpm_name}}包扫描详情
{% if file_compare and file_comp != 'NA' %}
文件扫描
{% if file_comp == 0 %} 兼容 {% elif file_comp == 1 %} 需人工分析 {% elif file_comp == 2 %} 不兼容 {% endif %} ( {% if comp_info["ret config"] == 0%} 配置文件兼容 ; {% elif comp_info["ret config"] == 1%} 配置文件变更 ; {% elif comp_info["ret config"] == 2 %} 配置文件删除 ; {% endif %} {% if comp_info["ret cmds"] == 0%} 可执行文件兼容 ; {% elif comp_info["ret cmds"] == 1%} 可执行文件变更 ; {% elif comp_info["ret cmds"] == 2 %} 可执行文件删除 ; {% endif %} {% if comp_info["ret services"] == 0%} 服务文件兼容 ; {% elif comp_info["ret services"] == 1%} 服务文件变更 ; {% elif comp_info["ret services"] == 2 %} 服务文件删除 ; {% endif %} {% if comp_info["ret static"] == 1%} 静态文件删除 {% endif %} )
{% if comp_info["ret config"] != 'NA' %}
配置文件检查
remove: {{count_info["count config"]["remove"]}} change: {{count_info["count config"]["change"]}} add: {{count_info["count config"]["add"]}} same: {{count_info["count config"]["same"]}}
{{origin_rpm_name}}
{{target_rpm_name}}

结论

删除
变更
增加
相同
{% if file_compare["rpm config"][2]|length %}
    {%else%}
      {% endif %} {% for del_conf_item in file_compare["rpm config"][2] %}
    • {{del_conf_item[0]}}
      {{del_conf_item[1]}}
    • {% endfor %}
    {% if file_compare["rpm config"][1] |length%}
      {% else %}
        {% endif %} {% for chg_conf_item in file_compare["rpm config"][1] %}
      • {{chg_conf_item[0]}}
        {{chg_conf_item[1]}}
      • {% endfor %}
      {% if file_compare["rpm config"][3] |length%}
        {% else %}
          {% endif %} {% for add_conf_item in file_compare["rpm config"][3] %}
        • {{add_conf_item[0]}}
          {{add_conf_item[1]}}
        • {% endfor %}
        {% if file_compare["rpm config"][0] |length%}
          {% else %}
            {% endif %} {% for same_conf_item in file_compare["rpm config"][0] %}
          • {{same_conf_item[0]}}
            {{same_conf_item[1]}}
          • {% endfor %}
            暂无数据
{% endif %} {% if comp_info["ret cmds"] != 'NA' %}
可执行文件检查
remove: {{count_info["count cmds"]["remove"]}} change: {{count_info["count cmds"]["change"]}} add: {{count_info["count cmds"]["add"]}} same: {{count_info["count cmds"]["same"]}}
{{origin_rpm_name}}
{{target_rpm_name}}

结论

删除
变更
增加
相同
{% if file_compare["rpm cmds"][2] |length%}
    {% else %}
      {% endif %} {% for del_cmd_item in file_compare["rpm cmds"][2] %}
    • {{del_cmd_item[0]}}
      {{del_cmd_item[1]}}
    • {% endfor %}
    {% if file_compare["rpm cmds"][1] |length%}
      {% else %}
        {% endif %} {% for chg_cmd_item in file_compare["rpm cmds"][1] %}
      • {{chg_cmd_item[0]}}
        {{chg_cmd_item[1]}}
      • {% endfor %}
      {% if file_compare["rpm cmds"][3] |length%}
        {% else %}
          {% endif %} {% for add_cmd_item in file_compare["rpm cmds"][3] %}
        • {{add_cmd_item[0]}}
          {{add_cmd_item[1]}}
        • {% endfor %}
        {% if file_compare["rpm cmds"][0] |length%}
          {% else %}
            {% endif %} {% for same_cmd_item in file_compare["rpm cmds"][0] %}
          • {{same_cmd_item[0]}}
            {{same_cmd_item[1]}}
          • {% endfor %}
            暂无数据
{% endif %} {% if comp_info["ret services"] != 'NA' %}
服务文件检查
remove: {{count_info["count services"]["remove"]}} change: {{count_info["count services"]["change"]}} add: {{count_info["count services"]["add"]}} same: {{count_info["count services"]["same"]}}
{{origin_rpm_name}}
{{target_rpm_name}}

结论

删除
变更
增加
相同
{% if file_compare["rpm services"][2] |length %}
    {%else%}
      {% endif %} {% for del_service_item in file_compare["rpm services"][2] %}
    • {{del_service_item[0]}}
      {{del_service_item[1]}}
    • {% endfor %}
    {% if file_compare["rpm services"][1] |length%}
      {% else %}
        {% endif %} {% for chg_service_item in file_compare["rpm services"][1] %}
      • {{chg_service_item[0]}}
        {{chg_service_item[1]}}
          原始值
          目标值
          配置项
          {% for detail_item in chg_service_item[3][1] %}
          {{detail_item[1]}}
          {{detail_item[2]}}
          {{detail_item[0]}}
          {% endfor%} {% for detail_item in chg_service_item[3][2] %}
          {{detail_item[1]}}
          {{detail_item[2]}}
          {{detail_item[0]}}
          {% endfor%}
      • {% endfor %}
      {% if file_compare["rpm services"][3] |length%}
        {% else %}
          {% endif %} {% for add_service_item in file_compare["rpm services"][3] %}
        • {{add_service_item[0]}}
          {{add_service_item[1]}}
        • {% endfor %}
        {% if file_compare["rpm services"][0] |length%}
          {% else %}
            {% endif %} {% for same_service_item in file_compare["rpm services"][0] %}
          • {{same_service_item[0]}}
            {{same_service_item[1]}}
          • {% endfor %}
            暂无数据
{% endif %} {% if file_compare["rpm static"]|length %}
静态文件删除列表
    {% for static_file in file_compare["rpm static"] %}
  • {{static_file}}
  • {% endfor %}
{% endif %}
{% endif %}
依赖扫描
{% if comp_info["ret base requires"] == 1 or comp_info["ret other requires"] == 1 %}
依赖自洽性检查
{% if comp_info["ret base requires"] == 1%} 源仓库 {{rpm_name}}-{{origin_rpm_name}}.rpm缺少安装依赖 {% endif %} {% if comp_info["ret other requires"] == 1 %} 目标仓库 {{rpm_name}}-{{target_rpm_name}}.rpm缺少安装依赖 {% endif %}
{% if base_rpm_error|length %}
{{rpm_name}}-{{origin_rpm_name}}.rpm
{% for item in base_rpm_error %}
{{item.name}}
{% endfor %}
{% endif %} {% if other_rpm_error|length %}
{{rpm_name}}-{{target_rpm_name}}.rpm
{% for item in other_rpm_error %}
{{item.name}}
{% endfor %}
{% endif %}
{% endif %}
依赖关系变化详情
requires增加数量: {{count_info["count requires"]["add"]}} requires减少数量: {{count_info["count requires"]["remove"]}} requires变更数量: {{count_info["count requires"]["change"]}} requires相同数量: {{count_info["count requires"]["same"]}}
provides增加数量: {{count_info["count provides"]["add"]}} provides减少数量: {{count_info["count provides"]["remove"]}} provides变更数量: {{count_info["count provides"]["change"]}} provides相同数量: {{count_info["count provides"]["same"]}}
{{origin_rpm_name}}
provides
{{target_rpm_name}}
provides

结论

删除
变更
增加
相同
    {% for req_item in rpm_compare["rpm requires"][2]%}
  • {{req_item[0]["name"]}}
    {{req_item[0]["package"]}}
    {{req_item[1]["name"]}}
    {{req_item[1]["package"]}}
  • {% endfor %}
    {% for req_item in rpm_compare["rpm requires"][1]%}
  • {{req_item[0]["name"]}}
    {{req_item[0]["package"]}}
    {{req_item[1]["name"]}}
    {{req_item[1]["package"]}}
  • {% endfor %}
    {% for req_item in rpm_compare["rpm requires"][3]%}
  • {{req_item[0]["name"]}}
    {{req_item[0]["package"]}}
    {{req_item[1]["name"]}}
    {{req_item[1]["package"]}}
  • {% endfor %}
    {% for req_item in rpm_compare["rpm requires"][0]%}
  • {{req_item[0]["name"]}}
    {{req_item[0]["package"]}}
    {{req_item[1]["name"]}}
    {{req_item[1]["package"]}}
  • {% endfor %}
    暂无数据
{{origin_rpm_name}}
{{target_rpm_name}}

结论

删除
变更
增加
相同
    {% for req_item in rpm_compare["rpm provides"][2]%}
  • {{req_item[0]["name"]}}
    {{req_item[1]["name"]}}
  • {% endfor %}
    {% for req_item in rpm_compare["rpm provides"][1]%}
  • {{req_item[0]["name"]}}
    {{req_item[1]["name"]}}
  • {% endfor %}
    {% for req_item in rpm_compare["rpm provides"][3]%}
  • {{req_item[0]["name"]}}
    {{req_item[1]["name"]}}
  • {% endfor %}
    {% for req_item in rpm_compare["rpm provides"][0]%}
  • {{req_item[0]["name"]}}
    {{req_item[1]["name"]}}
  • {% endfor %}
    暂无数据
{% if abi_compare %}
接口扫描
{% if abi_comp == 0 %} 接口兼容 {% elif abi_comp == 1 %} 接口变更需人工分析 {% elif abi_comp == 2 %} 接口不兼容 {% endif %}
接口兼容库数量: {{count_info["count elf"]["same"]}} 存在接口变更库数量: {{count_info["count elf"]["change"]}} 存在接口删除库数量: {{count_info["count elf"]["remove"]}}
{{origin_rpm_name}}
{{target_rpm_name}}

结论

兼容
变更
删除
    {% if abi_comp%} {% for item in 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 abi_compare["elf abi"]|length %} {% for item in abi_compare["elf abi"] %} {% if item["abi_comp"] == 0 %}
  • {{item["old_so_name"]}}
    {{item["new_so_name"]}}
    兼容
  • {% endif %} {% endfor %} {% endif %}
    暂无数据
    {% endif %}
{% endif %}

弹框标题

×