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:44] – [OBS 命令] misaka00251openeuler_risc-v_obs [2022/02/24 15:32] misaka00251
Line 92: Line 92:
  
 在我这个例子内,我把 ''url'' 改成了我自己的 Repo,并指明了最新的 Revision(可以指定为 branch 或者 commit),剩下的都没有动。保存之后就会开始自动编译。 在我这个例子内,我把 ''url'' 改成了我自己的 Repo,并指明了最新的 Revision(可以指定为 branch 或者 commit),剩下的都没有动。保存之后就会开始自动编译。
 +
 +
 +=== 新增软件包 ===
 +
 +前提条件:你已经根据依赖关系确认了你要把新增的包加入到社区的哪个工程里面
 +
 +  * 进入 Project 页面
 +  * 找到要新增的包所属的工程,并在详情页面点击任意软件包
 +  * 点击 "branch package" 创建子工程
 +  * 然后点击 "delete package" 删除该软件包,随后会自动进入 Branch 工程页面详情
 +
 +如果之前已经 branch 过该工程下面的软件包,就不要这么做了,直接点击右上角的 Home project,进入之后点击 Subprojects,然后进入对应的 branch 工程页面详情即可。
 +
 +至于删除操作是为了获得工程 metadata 文件的依赖关系。
 +
 +  * 点击 "create package" 并填写相关信息
 +  * 点击 "Add file" 上传要新增软件包的 spec 文件及对应的源码包文件
 +
 +文件上传成功之后,OBS 会自动开始构建。
 +
 +
 +==== 使用 OSC 构建 RPM 包 ====
 +
 +先打个预防针:本地的磁盘空间要够哦!
 +
 +=== 构建社区已有软件包 ===
 +
 +假设我们要将 Mainline 的 nano 包 branch 到个人分支:
 +
 +<code>
 +$ osc branch openEuler:Mainline nano
 +</code>
 +
 +随后将软件包配置信息下载到本地(上一步会有提示哦):
 +
 +<code>
 +$ osc co home:misaka00251:branches:openEuler:Mainline/nano
 +</code>
 +
 +接下来,修改 _service 文件为个人 Git Repo 地址(同在线构建方法一样修改即可)。随后上传你的更改:
 +
 +<code>
 +$ osc ci -m "Update _service"
 +</code>
 +
 +修改提交成功后,OBS 会自动开始构建软件包。通过以下命令可以查看编译日志情况:
 +
 +<code>
 +$ osc buildlog standard_riscv64 riscv64
 +</code>
 +
 +如果需要将远程软件包代码同步到本地,可以使用如下命令:
 +
 +<code>
 +$ osc up -S
 +</code>
 +
 +可以发现这样拉下来的文件开头都有 _service 一样的开头,在本地编译时会出问题,此时要删除掉:
 +
 +<code>
 +$ rm -f _service;for file in `ls`;do new_file=${file##*:};mv $file $new_file;done
 +</code>
 +
 +修改源代码和 spec 文件之后,提交刀 OBS 服务器进行构建:
 +
 +<code>
 +$ osc up
 +$ osc addremove *
 +$ osc ci -m "Update source and spec"
 +</code>
 +
 +修改提交成功后,OBS 会自动开始构建软件包。
 +
 +如果提示 Entity Too Large 的话,大于 1 MB 的都无法被上传成功,为平台的已知问题。我们也不推荐这么做,最好用 _service 文件!
 +
 +=== 新增软件包 ===
 +
 +前提条件:你已经根据依赖关系确认了你要把新增的包加入到社区的哪个工程里面
 +
 +首先,基于工程 openEuler:Mainline,选择该工程下面的任意软件包并 branch 到个人分支:
 +
 +<code>
 +$ osc branch openEuler:Mainline nano
 +</code>
 +
 +随后将软件包配置信息下载到本地(上一步会有提示哦):
 +
 +<code>
 +$ osc co home:misaka00251:branches:openEuler:Mainline/nano
 +</code>
 +
 +接下来,删除创建工程时的 branch 到个人分支的无用软件包:
 +
 +<code>
 +$ cd home:misaka00251:branches:openEuler:Mainline
 +$ osc rm nano
 +$ osc commit -m "Delete nano"
 +</code>
 +
 +然后就可以在个人工程下创建新增的软件包:
 +
 +<code>
 +$ mkdir my-first-package
 +</code>
 +
 +接下来,添加你准备好的源代码和 spec 文件到目录下,并上传至 OBS 服务器:
 +
 +<code>
 +$ cd ..
 +$ osc add my-first-package
 +$ osc ci -m "Add my-first-package"
 +</code>
 +
 +修改提交成功后,OBS 会自动开始构建软件包。通过以下命令可以查看编译日志情况:
 +
 +<code>
 +$ osc buildlog standard_riscv64 riscv64
 +</code>