From Fedora Project Wiki

Revision as of 14:26, 1 January 2011

什么是 Eclipse Fedora Packager?

Eclipse Fedora Packager 是一个 Eclipse 插件。它帮助习惯于使用 IDE (比如 Eclipse IDE)的 Fedora 打包者们在 Eclipse 中完成 Fedora 打包 RPM 的工作,而无须纠结于命令行中(大多数情况 :-))。

Eclipse Fedora Packager 包含的部分功能为:

  • 方便的 Git 克隆和分支切换
  • 包含语法高亮、自动补全、更新日志完善的 RPM Spec 文件编辑器(快捷键 <Ctrl>+<Alt>+C)
  • 下载代码包以及上传新代码包
  • 准备本地编译(仅执行 spec 文件中的 %prep 部分)
  • 按照当前 Spec 文件生成 SRPM 包
  • 执行本地编译
  • 推送至 Koji(Fedora 编译系统)
  • Mock 编译
  • 推送 Bodhi 更新
  • Eclipse Git 支持(通过 EGit, 请参考 EGit 文档)

Eclipse Fedora Packager 自 F14 对于所有 Fedora 用户可用。想要尝试?使用如下命令来安装:

$ pkcon install eclipse-fedorapackager

使用 Eclipse Fedorapackager

从 Fedora 14 开始, Fedora 使用 Git 版本控制系统来跟踪需要打包的文件。参阅 dist-git 文档 来深入了解 dist-git 的信息。幸运的是,dist-git 如何工作对于使用 Eclipse Fedora Packager plug-in 并不重要。和以往的 CVS 相比,Git 只是采取了略有不同的途径去完成打包工作。

初始设定

这一步对于使用未设定 FAS 证书的新打包者只需要完成一次。如果确认已经完成过此设置并且正常的话,可以跳过此步骤。下面的步骤解释如何为FAS account 设定这些证书。

首先,安装 fedora-packager RPM 包:

$ pkcon install fedora-packager

然后运行以下命令,然胡根据提示操作:

$ fedora-packager-setup

这些完成后就可以使用 Eclipse Fedorapackager 了。启动 Eclipse,赶紧开始吧~

导入一个 Fedora Git 项目

开始很简单的,使用 "File" => "Import" => "Git" => "Projects from Fedora Git"。这将克隆所指定的 Git 仓库并且创建需要的本地分支。方便期间,"Git Repositories" 视图将会在克隆进程结束后开启。

ImportFedoraGit.png

该图显示 Fedora Git 导入对话框的样子。下一步,指定准备打包的包名称。

Image:SelectPackageNameGit.png

下图显示的是新项目创建完成的样子。注意在 Git 仓库视图中的分支和项目右侧的 "[eclipse-fedorapackager master]" 标示。在这里,eclipse-fedorapackager 代表 Git 仓库名,master 代表当前导出的分支。

GitProjectBranchesView.png

Fedora 打包工作

在 Fedora Git 项目创建完成后,为目标发行版打包所需的所有文件都可以直接在刚刚创建的 Eclipse 项目中找到。例如,为 Fedora 13 打包所需的文件都放置在分支 f13/master 中。分支 master 对应当前的 Fedora 开发版本 Fedora rawhide。下面将简要描述下打包软件所需要注意的一系列事宜。如果不按照这个顺序去做也是可以的,但是记住一定要在尝试 Koji 编译前推送本地修改到公共仓库

上传需要打包的的源代码文件

要在 Eclipse Fedora Packager 中上传新的源代码,首先下载上有的源代码并将下载好的的源代码和 Eclipse 项目放在同一个文件夹下。 如果这个步骤是在 Eclipse 之外完成的,别忘记刷新项目(F5)让文件被识别出来。另一个下载源代码的方式是直接使用 RPM 编辑器。查阅他的文档获取更这方面的多信息。 一旦新的源代码文件在项目中就绪,就可以上传到临时缓冲区中:右键点击文件 => "Fedora Packager" => Upload This File => Replace/Add File。这样既可以添加新文件到编译软件包,亦可以替换 sources 中的当前内容,并包含一个当前选中文件的 MD5 校验和。

上传到临时缓冲区需要一个有效的证书。若是过期了,可以通过在终端执行以下命令生成一个新的:

$ fedora-cert -n

下载打包所需的源代码文件

要为已有的软件包下载编译所需要的源代码,右键点击 spec 文件 => "Fedora Packager" => Download Sources。这将下载所有列举在 sources 部分的源代码。

使用 Spec 文件编辑器

Eclipse Fedora Packager 使用来自 Eclipse Linux Tools 项目 的 RPM Editor 和 ChangeLog 插件。举例来说,一条新的更新日志可以通过快捷键 <CTRL>+<ALT>+C 轻松的插入到 spec 文件中(当然首先应该定下合理的“更新日志”要求)。使用 <CTRL>+<SPACE> 自动补全本地安装的软件包。同时,可以使用右键点击 spec文件 => “Run Rpmlint”的方式运行 rpmline。更多的内容请察看 spec 文件编辑器视频录像:http://www.eclipse.org/downloads/download.php?file=/technology/linuxtools/videos/specfile-demo.ogg 或者 "Specfile Editor User Guide": Help => Help Contents => Specfile Editor User Guide.

提交更改到本地 Git 仓库

在添加/更改 spec 文件、补丁之后,需要将这些变化提交到仓库去。这样操作:

  1. 选择需要提交的文件(或者选择 Fedora Git Project 然后在提交对话框出现时选择需要提交的 unstaged 文件)。
  2. 右键,选择 "Team" => "Commit..."

GitCommit.png

切换分支(Git 导出)

双击需要的本地分支就可以切换分支。当前导出的分支在右侧项目名称上有标示。在切换分支前确定已经提交、还原或者隐藏了更改。参考 GitEGit 文档来了解更多这方面内容。

为本地编译准备源代码

通过右键点击 spec 文件 => “Fedora Packager” => “Prepare Sources for Build”,Eclipse Fedora Packager 将会为本地编译下载并准备源代码。

PrepareSourcesForBuild.png

为本地架构编译 RPM

这是测试 spec 文件是否能成功编译的好方法。一旦本地编译成功 RPM,推荐使用 {{{mock}}} 在 chroot 环境中测试编译。这两种方式 Eclipse Fedora Packager 都支持。

要进行本地编译 RPM 操作,右键点击 spec 文件 => “Fedora Packager” => “Build for Local Architecture”。RPM 编译的结果将在 Eclipse 控制台显示。

使用 mock-builds 是一个测试 spec 文件 “Requires/BuildRequires” 部分的好方法。右键点击 spec 文件 => “Fedora Packager” => “Local Build Using Mock”. 注意这将需要更长的时间(一般超过20分钟)并且需要安装 mock 软件包。方便期间,可以使用 Eclipse 的 “Run in Background” 功能。

公开本地提交的更改(Git 推送)

如果对于本地提交的变化满意的话,就可以准备将这些变化公开(发布)。 Remember, Git allows history to be rewritten before changes are made public. 参考 GitEGit 文档获得更多信息。要让本地仓库和 origin 同步:

  1. 选择 Fedora Git project
  2. 右击, "Team" => "Push..."
  3. 选择要推送的 Git 仓库(通常这将保持不变)
  4. 选择要推送的 Git 引用
  5. 执行推送操作

Git 推送对话框。

Git push dialog

选择要推送的 Git 引用。在本例中,将推送分支 masterf14/master。 记住对于 Eclipse Fedora Packager 来说来源地和目的地的 Git 引用是一样的。点击“Add all branches spec” 按钮将会把所有本地分支的修改全部推送。

Select Git References

推送编译到 Koji

如果对于 spec 文件感到满意,那么可以上传打包所需软代码、提交更改到本地仓库、推送本地更改到远程仓库。当这些都完成了之后,可以将其推送到 Koji 编译系统进行编译:右键点击 spec 文件 => “Fedora Packager” => “Push to Koji”.

EclipseFedoraPackagerPushBuildToKoji.png

Eclipse 将弹出一个包含 Koji URL 窗口以便跟踪编译状态。这是一个该消息外观的例子:

KojiBuildPopupMessage.png

这里面应该已经包含了足够跟踪编译状态的信息。

推送 Bohi 更新

在成功编译 RPM 之后,使用 Eclipse Fedora Packager 来推送该软件包的更新。要实现此目的,右键点击 spec => "Fedora Packager" => "Bodhi Update"。使用 Eclipse Fedora Packager 创建一个 Bodhi 更新的需要的信息和使用 Bodhi 网页界面的一致。一旦正确的建立的更新,将可以在 Bodhi 更新页面上察看到更新记录。同时也可以追踪更新状态。

反馈/错误汇报

如果发现了一个 Eclipse Fedora Packager 的 Bug, 请汇报至 https://fedorahosted.org/eclipse-fedorapackager/report/1 (需要 FAS 用户名)。或者,尝试在 RedHat Bugzilla 上的这个搜索来获得所有已知 Bug 的信息。谢谢!

翻译:--Lovenemesis 16:16, 27 October 2010 (UTC)