Skip to content

Latest commit

 

History

History
58 lines (47 loc) · 4.32 KB

2024.1.30-btop-王跃翔.md

File metadata and controls

58 lines (47 loc) · 4.32 KB

问题描述:验证并引入 btop 包到 openEuler 社区

解决方法:编写spec文件,并进行编译,针对报错进行修改,引入到openeuler社区

流程:

  • 编写软件包对应的spec文件,并压缩源码文件,提交到gitee自己fork的仓库上
  • 通过引入gitee链接,直接提交到obs平台上
  • 通过obs拉取,在本地构建验证
  • 针对报错进行修改
  • 修改完成后,先引入openeuler,再init src-openeuler

涉及到的知识点

  • spec如何编写:

  • obs如何通过gitee引入:

    • 在obs平台你本人创建的包中有_service文件 image
    • 可以以上述代码为模版,更改_service文件,将url改写为自己对应的软件包gitee链接,然后save,obs平台会自动拉取gitee的代码到平台上
    • 引入新仓:先在openeuler/community下对应的sig下sig-info.yaml和src-openeuler下对应软件包开头的首字母下的软件包.yaml进行修改
    • 修改如下(供参考):
    • https://gitee.com/openeuler/community/pulls/5405/files
      image image
  • 引入obs无权限:

    • 如果要修改别人仓库出现无权限,可以将软件包从自己的仓库提交到别人的仓库

遇到的问题:

  • 在我编写完spec文件后,尝试执行构建命令,依次出现以下两个问题:
    • [ 798s] + desktop-file-validate /home/abuild/rpmbuild/BUILDROOT/btop-1.3.0-3.oe2309.riscv64/usr/share/applications/btop.desktop
    • [ 798s] /home/abuild/rpmbuild/BUILDROOT/btop-1.3.0-3.oe2309.riscv64/usr/share/applications/btop.desktop: error: file contains at least one line ending with a carriage return, while lines should only be separated by a line feed character. First such line is: "[Desktop Entry]"
    • [ 798s] error: Bad exit status from /var/tmp/rpm-tmp.SIitiw (%install)
      • 我的判断:desktop-file-validate 工具在验证桌面文件(btop.desktop)时发现了一个问题,即文件中至少有一行以回车符结束,而应该使用换行符。
      • 解决方法:在spec文件的 %install 部分,添加 dos2unix %{buildroot}%{_datadir}/applications/btop.desktop ,使得在执行desktop-file-validate之前将btop.desktop文件中的行结束符转换为LF,解决问题。
  • 解决第一个问题后出现第二个错误:
    • [ 790s] + dos2unix /home/abuild/rpmbuild/BUILDROOT/btop-1.3.0-3.oe2309.riscv64/usr/share/applications/btop.desktop
    • [ 790s] /var/tmp/rpm-tmp.zW1bXC: line 40: dos2unix: command not found
    • [ 790s] error: Bad exit status from /var/tmp/rpm-tmp.zW1bXC (%install)
      • 我的判断:构建过程中找不到 dos2unix 命令,导致构建失败。应该是因为在构建环境中缺少提供 dos2unix 命令的相关软件包。
      • 解决方法: spec 文件中添加一个额外的软件包依赖,在spec文件的%buildrequires部分,添加:BuildRequires: dos2unix

问题描述:升级一些简单的包的流程

解决办法:在src—openeuler更新包的版本,改一下spec文件

流程:

  • 有一些包的升级流程比较简单,大概为以下几个步骤
  • 先看要求是升级到哪个版本,然后到源码包网站找对应的源码包,进行压缩,在gitee上更新,重新引入
  • 然后在spec更改版本号字段,并更改对应的源码包网站,并在源码包字段更改源码包链接
  • 可能该软件包在升级的时候添加了一些依赖之类的,根据构建错误进行修改就好

遇到的问题:

  • 在升级一个包的时候,他的源码包地址完全更改了,而我误认为包原地址不会更改(思维误区),后来更改源地址就好了