From Fedora Project Wiki
Line 83: Line 83:
  
 
=== 创建一个 RPM 软件包: ===
 
=== 创建一个 RPM 软件包: ===
To start with creating an RPM package using Eclipse, perform the steps in [[#Creating_a_Local_Fedora_RPM_Project|creating Local Fedora Packager Project of the user guide]].
+
要开始使用 Eclipse 创建一个 RPM 软件包,完成[[#创建本地 _Fedora_RPM_项目|创建 本地Fedora 打包项目用户指南]]中的步骤。
Note that you can populate your project using one of these three options:
+
注意您可以使用时那面三种方式之一生成您的项目:
 
: 1. [[#4.a._Start_a_plain_project|Start a plain project]] using .spec file template or an existing .spec file.
 
: 1. [[#4.a._Start_a_plain_project|Start a plain project]] using .spec file template or an existing .spec file.
 
: 2. [[#4.b._Use_existing_.spec_file_and_sources_by_importing_SRPM_file|Extract .spec file and resources]] by importing an existing SRPM file  
 
: 2. [[#4.b._Use_existing_.spec_file_and_sources_by_importing_SRPM_file|Extract .spec file and resources]] by importing an existing SRPM file  
Line 91: Line 91:
 
After you created the project, you can use rpm build commands available through the [[#Local_Menu|local context menu]] to build the package and create SRPM file.  
 
After you created the project, you can use rpm build commands available through the [[#Local_Menu|local context menu]] to build the package and create SRPM file.  
 
In next step you need to submit your .spec file and your SRPM file for review.
 
In next step you need to submit your .spec file and your SRPM file for review.
 
  
 
== 导入一个 Fedora Git 项目 ==
 
== 导入一个 Fedora Git 项目 ==

Revision as of 09:26, 29 December 2011

什么是 Fedora Packager for Eclipse?

Fedora Packager for Eclipse 是一个自从 F14 开始为 Fedora 用户设计的 Eclipse 插件。它帮助 Fedora 打包者们在 Eclipse 中完成 Fedora 打包 RPM 的工作,而无须纠结于命令行中(大多数情况)。 可以将 Fedora Packager for Eclipse 认为是 fedpkg 的图形化界面,尽管实际上在后台并未使用它。

首先,安装 Fedora Packager for Eclipse:

$ pkcon install eclipse-fedorapackager

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

  • 方便的克隆 Fedora Git 项目
  • RPM .spec 文件编辑器,包含语法高亮、自动补全 Requires/BuildRequires 模板的包名、%changelog支持 (快捷键 <Ctrl>+<Alt>+C)等。
  • 下载源代码包以及上传新源代码包
  • 准备本地编译(仅执行 spec 文件中的 %prep 部分)
  • 按照当前 .spec 文件生成 SRPM 包
  • 执行本地编译
  • 推送至 Koji(Fedora 编译系统)
  • Mock 编译
  • 推送 Bodhi 更新
  • 创建一个本地 Fedora RPM 项目来简化新 Fedora 打包者的入门过程
  • Eclipse Git 支持(通过 EGit, 请参考 EGit 文档

升级至 Fedora Packager for Eclipse 0.2.0

旧版本的 Fedora Packager for Eclipse (0.1.12 及更早) 并未像 Fedora Packager for Eclipse 0.2 一样严格过滤上下文菜单内容的可见性。为了保证上下文菜单中正确的过滤,0.2.0 及更新版本在从 Fedora Git 导入项目时设定了一些固有状态。 这将会影响使用 Fedora Packager for Eclipse 0.1.12 及更早版本导入的项目上下文菜单不显示。注意我们的更新的版本包含了一个用于升级这些项目的小工具。需要的步骤如下:

1. 打开 Fedora Packaging 视图 Window => Open Perspective => Other.

OpenFedoraPackagingPerspective.png

2. 点击转换工具图标 (如下图所示)

Conversion Tool Icon as Shown in the Fedora Packaging Perspective

3. 在您的工作空间中选择需要升级的项目

SelectProjectsToConvert.png

4. 点击 OK 然后此时您选择的项目应该已经升级完毕了。

在以上步骤之后,Fedora Packager for Eclipse 的上下文菜单应该可以正常显示了。

如果您已经是维护者并且知道怎样为 Fedora 打包软件包的话,请 跳转到"使用 Fedora Packager for Eclipse" 章节

以维护者的身份创建新的 Fedora 软件包

如果您之前从未给 Fedora 打包过软件,该指南将指引您直到完成首次软件包的提交。 fedora package process

以新贡献者的身份创建帐号

如果您是新的软件包维护者:

在 Fedora 账户系统中创建账户

  • 第一步是在 Fedora 账户系统 (FAS) 中创建账户。
  • 点击 新账户 并填写空白处。
  • 在创建账户之后,请确定签署了 CLA (如果您点击右上角的 我的帐户 链接的话,您应该看到 CLA: CLA Done)。
  • 您同时需要上传一个RSA SSH 公钥。您需要匹配的私钥来通过 SSH 访问 Fedora 远程主机。

创建 Bugzilla 账户

红帽 bugzilla 创建账户。

  • 对于所有的 Fedora 打包工作,您在 bugzilla 账户中使用的电子邮件地址应该和在 Fedora 账户系统 中的一致。
  • 为了让您的工作和错误追踪更加简便,有一个适用于 Eclipse 的任务管理插件叫 Mylyn。您可以根据这里的指导 You can follow these instructions on 将您的 bugizlla 账户和您 Eclipse Mylyn 插件整合起来

初始设定

对于新打包者或者在未包含所需 FAS 证书的机器上只需要执行一次。如果确认已经完成过此设置并且正常的话,可以跳过此步骤。下面的步骤解释如何为 FAS 账户 设定这些证书。

  • 首先,安装 fedora-packager RPM 包:
  pkcon install fedora-packager 

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

 fedora-packager-setup 

如果您已经是维护者并且知道怎样为 Fedora 创建新软件包,请 跳过下个章节

制作软件包

打包指南

创建一个 RPM 软件包:

要开始使用 Eclipse 创建一个 RPM 软件包,完成创建 本地Fedora 打包项目用户指南中的步骤。 注意您可以使用时那面三种方式之一生成您的项目:

1. Start a plain project using .spec file template or an existing .spec file.
2. Extract .spec file and resources by importing an existing SRPM file

to the project.

3. Using RPM Stubby on feature.xml or pom.xml.

After you created the project, you can use rpm build commands available through the local context menu to build the package and create SRPM file. In next step you need to submit your .spec file and your SRPM file for review.

导入一个 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)