Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
openeuler_risc-v_obs [2022/02/24 13:07] misaka00251openeuler_risc-v_obs [2022/02/24 14:24] – [基于 OBS 构建 RPM 包] misaka00251
Line 40: Line 40:
  
 ===== OBS 命令 ===== ===== OBS 命令 =====
 +
 +==== OCS 的安装配置 ====
  
 首先安装 osc 软件包: ''dnf install osc'' 首先安装 osc 软件包: ''dnf install osc''
  
 +osc 的凭据位置为 ''~/.oscrc'',进行以下配置:
 +
 +<file oscrc .oscrc>
 +[general]
 +apiurl = https://build.openeuler.org/
 +no_verify = 1
 +
 +[https://build.openeuler.org]
 +user=<你的用户名>
 +pass=<你的密码>
 +</file>
 +
 +注意的是,密码在这里为明文密码。
 +
 +==== 基于 OBS 构建 RPM 包 ====
 +
 +=== 社区已有软件包 ===
 +
 +  - 进入 Project 页面
 +  - 找到要构建的包所在的工程,并在详情页面搜索需要构建的软件包
 +  - 点击 "branch package" 创建子工程
 +  - 点击 "_service" 文件进入编辑页面并修改
 +
 +如果不选择 **Stay on this revision** 的话,则会在创建子工程之后开始自动构建。
 +
 +根据流程,要想修复一个包首先要对其进行 Fork,去 [[https://gitee.com/openeuler/RISC-V|RISC-V]] 的 Repo 提交 PR Request(更改 configuration 目录下的 ''riscv_fork_list.yaml'' 即可),等待数分钟后便会在 [[https://gitee.com/organizations/openeuler-risc-v/projects|openEuler-RISC-V]] 下出现被 Fork 的 Repo。
 +
 +如果此处遇到了问题,请在微信群内汇报,会有专人处理。去[[https://jenkins.openeuler.org/job/Infra/job/RISC-V_fork_repos/|这里]]查看失败的原因会帮忙更快的解决问题。
 +
 +在自己的 Repo 做出更改之后,我们随后编辑 ''_service'' 文件来在 OBS 上自动编译:
 +
 +<code>
 +<services>
 +    <service name="tar_scm">
 +      <param name="scm">git</param>
 +      <param name="url">git@gitee.com:misaka00251/nano.git</param>
 +      <param name="exclude">.git</param>
 +      <param name="revision">3fe8a8d4985a4600816f699e491bba1666b32067</param>
 +    </service>
 +    <service name="extract_file">
 +        <param name="archive">*.tar</param>
 +        <param name="files">*/*</param>
 +    </service>
 +</services>
 +</code>
 +
 +在我这个例子内,我把 ''url'' 改成了我自己的 Repo,并指明了最新的 Revision(可以指定为 branch 或者 commit),剩下的都没有动。保存之后就会开始自动编译。
 +
 +
 +=== 新增软件包 ===
 +
 +前提条件:你已经根据依赖关系确认了你要把新增的包加入到社区的哪个工程里面
 +
 +  * 进入 Project 页面
 +  * 找到要新增的包所属的工程,并在详情页面点击任意软件包
 +  * 点击 "branch package" 创建子工程
 +  * 然后点击 "delete package" 删除该软件包,随后会自动进入 Branch 工程页面详情
 +
 +如果之前已经 branch 过该工程下面的软件包,就不要这么做了,直接点击右上角的 Home project,进入之后点击 Subprojects,然后进入对应的 branch 工程页面详情即可。
 +
 +至于删除操作是为了获得工程 metadata 文件的依赖关系。
 +
 +  * 点击 "create package" 并填写相关信息
 +  * 点击 "Add file" 上传要新增软件包的 spec 文件及对应的源码包文件
 +
 +文件上传成功之后,OBS 会自动开始构建。