My first RPM in Fedora dist-git – woohoo!
与 dist-git 一起工作接下来,fedpkg 是用于和 dist-git 仓库进行交互的工具。我改变当前目录到我的 git 工作目录,然后运行这个命令。
fedpkg clone brightlight
fedpkg 从 dist-git 克隆了我的包的仓库。对于这个仅有的第一个分支,你需要去导入 SRPM。
fedpkg import SRPMS/brightlight-5-1.fc26.src.rpm
fedpkg 导入你的包的 SRPM 到这个仓库中,然后设置源为你的 Git 仓库。这一步对于使用 fedpkg 是很重要的,因为它用一个 Fedora 友好的方去帮助规范这个仓库(与手动添加文件相比)。一旦你导入了 SRPM,推送这个改变到 dist-git 仓库。
git commit -m "Initial import (#1505026)."
git push
构建包自从你推送第一个包导入到你的 dist-git 仓库中,你已经准备好了为你的项目做一次真实的 Koji 构建。要构建你的项目,运行这个命令。
fedpkg build
它会在 Koji 中为 Rawhide 构建你的包,这是 Fedora 中的非版本控制的分支。在你为其它分支构建之前,你必须在 Rawhide 分支上构建成功。如果一切构建成功,你现在可以为你的项目的其它分支发送请求了。
fedrepo-req brightlight f27 -t 1505026
fedrepo-req brightlight f26 -t 1505026
fedrepo-req brightlight f25 -t 1505026
关于构建其它分支的注意事项一旦你最初导入了 SRPM,如果你选择去创建其它分支,记得合并你的主分支到它们。例如,如果你后面为 Fedora 27 请求一个分支,你将需要去使用这些命令。
fedpkg switch-branch f27
git merge master
git push
fedpkg build
提交更新到 Bodhi这个过程的最后一步是,把你的新包作为一个更新包提交到 Bodhi 中。当你初次提交你的更新包时,它将去测试这个仓库。任何人都可以测试你的包并且增加 karma 到该更新中。如果你的更新接收了 3 个以上的投票(或者像 Bodhi 称它为 karma),你的包将自动被推送到稳定仓库。否则,一周之后,推送到测试仓库中。
要提交你的更新到 Bodhi,你仅需要一个命令。
fedpkg update
它为你的包用一个不同的配置选项打开一个 Vim 窗口。一般情况下,你仅需要去指定一个 类型(比如,newpackage)和一个你的包评估的票据 ID。对于更深入的讲解,在 Fedora 维基上有一篇更新的指南。
在保存和退出这个文件后,fedpkg 会把你的包以一个更新包提交到 Bodhi,最后,同步到 Fedora 测试仓库。我也可以用这个命令去安装我的包。
sudo dnf install brightlight -y --enablerepo=updates-testing --refresh
稳定仓库最近提交了我的包到 Fedora 26 稳定仓库,并且不久将进入 Fedora 25 和 Fedora 27 稳定仓库。感谢帮助我完成我的第一个包的每个人。我期待有更多的机会为发行版添加包。
via: https://blog.justinwflory.com/2017/11/first-rpm-package-fedora/