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 14:24] – [基于 OBS 构建 RPM 包] misaka00251openeuler_risc-v_obs [2022/03/01 14:39] – [使用 OSC 构建 RPM 包] misaka00251
Line 111: Line 111:
  
 文件上传成功之后,OBS 会自动开始构建。 文件上传成功之后,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>
 +
 +==== 创建 subproject ====
 +
 +假设我要在 home:misaka00251 下创建一个 Subproject 叫 NewMeta,可以新建一个文件:
 +
 +<file test>
 +<project name="home:misaka00251:NewMeta">
 +  <title/>
 +  <description/>
 +  <person userid="misaka00251" role="maintainer"/>
 +  <publish>
 +    <enable/>
 +  </publish>
 +  <useforbuild>
 +    <disable/>
 +  </useforbuild>
 +  <repository name="AmogOS">
 +    <path project="openEuler:Mainline:RISC-V" repository="standard_riscv64"/>
 +    <arch>riscv64</arch>
 +  </repository>
 +</project>
 +</file>
 +
 +然后使用 ''osc meta prj home:misaka00251:NewMeta --file=test'' 就可以啦~