长期支持版本

    社区创新版本

      概述

      本特性可以按照用户自定义需求,修改、定制、迭代软件包的构建文件,使构建文件的各版本、包间宏定义差异性管理。

      安装与卸载

      安装
      pip install merge_configs-0.0.6-py3-none-any.whl
      
      卸载
      pip uninstall merge-configs
      

      使用方法

      命令行
      merge-configs --help
      -p PACKAGES, --packages PACKAGES: 设置需要merge的软件包,多个软件包用空格隔开。
      -c CONFIG_FILE, --config_file CONFIG_FILE: 设置分层根目录文件config.yaml。
      -o OUTPUT, --output OUTPUT: 设置输出文件的路径。
      -d --debug : 是否需要设置日志模式为debug。
      -l LIST_FEATURES, --list-features LIST_FEATURES: 不为空时显示用户配置信息,设置存在于-p参数值中的软件包,多个软件包用逗号隔开。
      -a TARGET_ARCH, --arch TARGET_ARCH: 设置merge的目标架构,例如:x86_64,aarch64。
      

      常用命令:merge-configs -p \${package} -c \${config_path}/config.yaml -o \${output_path} -a \${target_arch_name} -l \${package}

      常见的yaml结构如下:

      经过转换后:

      软件包定制

      软件包编译信息经过的分层的架构分开保存,分成yaml主要配置、files.yaml文件配置、编译执行脚本、运行时执行脚本和changelog。其各个文件中定制的内容经由merge-configs工具解析转换,会在编译中生效。

      参数定制
      1. 参数名定制: 参数名可以根据定制需求修改,通常只修改source,patch的编号,随意修改可能导致spec语法不支持。

      2. 参数值定制: 参数值定制的范围比较大,根据需求可随意修改内容,但是尽量不要修改值类型,如string类型改为list类型,可能导致转换错误。

      修改Patch编号和它的值:

      经过转换后:

      条件定制

      条件定制的方式是在yaml配置层的key中添加when条件。

      Source:
          0: http://ftp.gnu.org/gnu/libtool/libtool-%{version}.tar.xz
      source when arch in aarch64:
          100: libtool-aarch-%{version}.tar.xz
      

      有三种方式定制:

      1. 架构定制。

        buildRequires:
            - "gcc"
        buildRequires when arch in x86_64:
            - "gcc-c++"
        buildRequires when arch not in x86_64:
            - "gzip"
        
      2. 标签定制: defineFlags字段将会转换为bcond_with/bcond_without。

        defineFlags:
            +auto_compile: ""
        patchset when +auto_compile:
            1001: libtool-0.0.1-auto_compile.patch
        
      3. 宏定制: %%{rpmGlobal.}表示在包信息中定义的宏,%%%{rpmGlobal.}表示在rpm系统中定义的宏。

        rpmGloal:
            posttest: 0
        source when %%{rpmGlobal.posttest}:
            1: posttest.sh
        source when %%%{rpmGlobal._debugsource_packages}:
            2: openEuler_setup.py
        

      定制后:

      经过定制再转换后:

      转换

      目前eulermaker仅支持yaml->spec的转换,仅支持rpmbuild编译rpm包的编译方式。

      文档捉虫

      “有虫”文档片段

      问题描述

      提交类型 issue

      有点复杂...

      找人问问吧。

      PR

      小问题,全程线上修改...

      一键搞定!

      问题类型
      规范和低错类

      ● 错别字或拼写错误;标点符号使用错误;

      ● 链接错误、空单元格、格式错误;

      ● 英文中包含中文字符;

      ● 界面和描述不一致,但不影响操作;

      ● 表述不通顺,但不影响理解;

      ● 版本号不匹配:如软件包名称、界面版本号;

      易用性

      ● 关键步骤错误或缺失,无法指导用户完成任务;

      ● 缺少必要的前提条件、注意事项等;

      ● 图形、表格、文字等晦涩难懂;

      ● 逻辑不清晰,该分类、分项、分步骤的没有给出;

      正确性

      ● 技术原理、功能、规格等描述和软件不一致,存在错误;

      ● 原理图、架构图等存在错误;

      ● 命令、命令参数等错误;

      ● 代码片段错误;

      ● 命令无法完成对应功能;

      ● 界面错误,无法指导操作;

      风险提示

      ● 对重要数据或系统存在风险的操作,缺少安全提示;

      内容合规

      ● 违反法律法规,涉及政治、领土主权等敏感词;

      ● 内容侵权;

      您对文档的总体满意度

      非常不满意
      非常满意
      提交
      根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。
      文档捉虫
      编组 3备份