From Fedora Project Wiki

Revision as of 20:03, 26 August 2010 by Jerboaa (talk | contribs)

What is Eclipse Fedora Packager?

Eclipse Fedora Packager is a plugin for Eclipse which helps Fedora packagers used to IDEs to package their Fedora RPMs from within Eclipse without needing to resort to the command line.

Eclipse Fedora Packager features include:

  • RPM-spec-file editor with syntax highlighting, auto-completion and changelog support (<Ctrl>+<Alt>+C keyboard shortcut)
  • Download sources, upload new sources
  • Prepare local builds
  • Do local builds
  • Push build to Koji (the Fedora build system)
  • Eclipse Git support (via EGit)
  • Mock builds
  • Push Bodhi updates

Eclipse Fedora Packager is available for Fedora users since F14. Want to try it out? Install it by issuing the following command:

yum install eclipse-fedorapackager

Dist-Git Support

Since release 14 Fedora uses the Git version control system for keeping track of files required for Fedora packaging. See the [documentation] for in depth information about dist-git. Fortunately, you don't have to worry about how dist-git works when you are using the Eclipse Fedora Packager plug-in, except for the slightly different approach of doing your packaging work.

Importing a Fedora Git Project

= Do Your Fedora Packaging Work

Inside the newly created project you'll see a rather familiar file structure, such as branches for Fedora releases (e.g. F-13). Inside each branch you are good to work on your spec file.

Using the Spec-File Editor

Eclipse Fedora Packager uses the RPM Editor and ChangeLog plug-in of the Eclipse Linux Tools project (http://www.eclipse.org/linuxtools). For instance you can easily create a new ChangeLog entry in your spec file by using the <CTRL>+<ALT>+C keyboard shortcut (you may want to set appropriate "ChangeLog" preferences first). Using <CTRL>+<SPACE> auto-completes locally installed packages. Also, you can run rpmlint by right-clicking on your spec file => "Run Rpmlint". For more information have a look at the spec file editor screencast: http://www.eclipse.org/downloads/download.php?file=/technology/linuxtools/videos/specfile-demo.ogg or at the "Specfile Editor User Guide": Help => Help Contents => Specfile Editor User Guide.

Pushing a Build to Koji

Once you are satisfied with your spec file, make sure to upload sources of your package, commit your changes to your local repository and then push your local changes to the remote repository. When this is done, you can push a build to Koji by right-clicking on your spec file => "Fedora Packager" => "Push Build to Koji".

EclipseFedoraPackagerPushBuildToKoji.jpg

Eclipse will pop up a message telling you the Koji URL to track your build.

Reporting Bugs

If you think you've found a bug in Eclipse Fedora Packager, please feel free to open a ticket at: https://fedorahosted.org/eclipse-fedorapackager (you have to log in with your FAS username in order to be able to create tickets). Thanks!

Dist-CVS Support (Deprecated)

For historical reasons Eclipse Fedora Packager supports dist-cvs, which has been rendered obsolete by the switch to dist-git with Fedora 14. This documentation has been kept for reference.

Importing a Fedora CVS Project

Make sure you have run fedora-packager-setup before you start. This you have to do once on the command line (If you have used fedora-cvs before, this is not necessary). Then, you need to get your Fedora CVS module. Go to "File" => "Import" => "CVS" => "Projects from Fedora CVS"

EclipseFedoraPackagerImportFedoraCVS.jpg

After you hit "Next" twice, you are ready to specify the module you'd like to check out.

EclipseFedoraPackagerSpecifyModuleForCheckout.jpg

After you hit "Finish" you should have a new project in Eclipse named after the Fedora CVS module you just checked out. Note: If you click "Next" at this step, checkout will most likely fail. This is a bug (https://fedorahosted.org/eclipse-fedorapackager/ticket/5) we are currently working on.

See section "Do Your Fedora Packaging Work" for information on the steps required to carry out your packaging tasks.