长期支持版本

    概述

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

    安装与卸载

    安装
    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备份