diff --git a/README b/README index 00af654ce89aadff042e7b7a903ac3c17dd73b2d..2d50c634ff6822eaccbcbf4dd7ee87a0ed31cbc4 100644 --- a/README +++ b/README @@ -6,10 +6,7 @@ ├── oneshot_push_code │   ├── demo │   └── push_code.sh -├── README └── spec_revise ├── spec_revise_brief.md ├── spec_revise_detail.md └── spec_revise_guide.md - -4 directories, 8 files diff --git a/docker_build/docker_rpmbuild.md b/docker_build/docker_rpmbuild.md index 411f6b5e73771eb5ed543cc04b1a6d63e4cb79d0..ef7ab472557da92b419012f04459d5f38b86c3a4 100644 --- a/docker_build/docker_rpmbuild.md +++ b/docker_build/docker_rpmbuild.md @@ -1,4 +1,4 @@ -#docker +# rpmbuild in docker ## in vm 1. docker pull sugarfillet/openeuler:aarch64 @@ -11,21 +11,31 @@ 7. rpm-build PKG -[1] openeuler mirrors (tmp) +[1]:(here) +``` cat > /etc/yum.repos.d/a.repo < rpm rpmbuild dnf osc # 建议把每个子命令都测试一遍 -### 敏感信息备注项填写标准 +### 敏感信息 1. tar包是否一致 2. patch 是否有 bz 对应 || patch 是否可在上游社区找到 || 备注patch功能 && 删除后的影响分析 - bz 去原始spec文件中查找 || google 3. 配置文件倾向于删除 || 保留要说明原因 4. susu 对于以上文件的处理意见 -### example byteman remove_submit_integration_test_verification.patch +``` +example byteman remove_submit_integration_test_verification.patch + 1. patch没有bugzilla对应, 2. 上游社区无该补丁, 3. patch功能: 删除部分集成测试 4. 删掉patch是否可行: 删除patch,编译会失败,意味着上游社区源码直接编译会有问题,需要基于编译报错定位 5. suse 无该包,不可参考 - +``` > oe的主要工作内容其实并不是基于fc的包进行整改,而是基于当前版本的最上游社区代码进行整改,并以fc.src为参考 -> 针对spec整改-敏感信息的开发原则之一:以上游社区和bz社区为准,社区没有的东西能删就删掉 - - - - +> 针对spec整改-敏感信息的开发原则之一:以上游社区和bz社区为准,最上游社区没有的东西能删就删掉 -### 主表阶段介绍 -四阶段是mainline安装失败的安装依赖,五阶段是四阶段包的一级编译依赖。 -### obs仓库介绍 -[1]:(http://ftp.rpm.org/max-rpm/s1-rpm-build-creating-spec-file.html) +[1]:(https://gitee.com/sugarfillet/docs_tools/blob/master/spec_revise/spec_revise_detail.md) +[2]:(https://gitee.com/sugarfillet/docs_tools/blob/master/docker_build/docker_rpmbuild.md) [suse]:(https://build.opensuse.org/project/show/openSUSE:Factory) [fedora]:(https://src.fedoraproject.org/) diff --git a/spec_revise/spec_revise_detail.md b/spec_revise/spec_revise_detail.md index 2b96ee0d1f5c73d7dcd4501223f1e94166fae04d..fed800e801b729f7a548ef4debe0d1a268247f64 100644 --- a/spec_revise/spec_revise_detail.md +++ b/spec_revise/spec_revise_detail.md @@ -1,7 +1,14 @@ # spec整改明细 - - + - [开头定义的宏](#%e5%bc%80%e5%a4%b4%e5%ae%9a%e4%b9%89%e7%9a%84%e5%ae%8f) + - [spec中的缩进统一格式,使用空格,保持对齐](#spec%e4%b8%ad%e7%9a%84%e7%bc%a9%e8%bf%9b%e7%bb%9f%e4%b8%80%e6%a0%bc%e5%bc%8f%e4%bd%bf%e7%94%a8%e7%a9%ba%e6%a0%bc%e4%bf%9d%e6%8c%81%e5%af%b9%e9%bd%90) + - [软件包依赖](#%e8%bd%af%e4%bb%b6%e5%8c%85%e4%be%9d%e8%b5%96) + - [预处理阶段(%prep)](#%e9%a2%84%e5%a4%84%e7%90%86%e9%98%b6%e6%ae%b5prep) + - [编译阶段(%build)](#%e7%bc%96%e8%af%91%e9%98%b6%e6%ae%b5build) + - [安装阶段(%install)](#%e5%ae%89%e8%a3%85%e9%98%b6%e6%ae%b5install) + - [%file阶段](#file%e9%98%b6%e6%ae%b5) + - [拆包](#%e6%8b%86%e5%8c%85) ## 开头定义的宏 +``` 宏(Macros)是使用变量和功能来控制rpm和rpmbuild的自定义的行为,宏指令一般地定义在 spec文件中。 语法:%define macro value。 @@ -24,6 +31,7 @@ global用来定义变量,方便开关。 如果%{rhel}被定义了,则 %{?rhel} 返回 %{rhel},不然%{?rhel}视为未定义。 所以,当%{rhel}被定义过的话, 0%{?rhel}就执行这个if block; 反之,0%{?rhel}等于0,不执行这个if block。 +``` ## spec中的缩进统一格式,使用空格,保持对齐 @@ -246,7 +254,7 @@ Help包 ① man、info的相关文档②不含版权信息的README 说明: 1)运行相关(实现主要功能)的都收编合并为一个主包,包含命令、配置、so动态库、以及本软件对外提供的动态库 -2)头文件/静态库.a(关键字%package static/%file static) 合并为devel包 +2)头文件/静态库.a(关键字%package static/%file static) 合并为devel包 3)帮助文档(man) 合并为help包 4)当收编一个包时,被收编包如有Requires依赖关系要继承(不删),与被收编Package对应的Files描述全部删掉;添加Obsoletes声明丢弃原包、Proviedes来指明功能继承,实现兼容。 5)拆分出去的包(devel/help等),%files内容保留并保持一致;