Edit Info Other
Create account
Login

Contributors

1. Contributing to RPM Fusion

So, you've decided to become a contributor to RPM Fusion? This guide will lead you through your first package submission and teach you how to update your package(s) in the future.

2. Becoming a RPM Fusion contributor

Having packaging experience in Fedora is much preferred, but newcomers are welcome too. However if you are a newcomer (i.e. you're not a Fedora sponsored packager) you must first get sponsored, which means find someone to guide you while you learn the procedures.

2.1. Create a Bugzilla Account

In either scenario you should create your first RPM Fusion package and submit it for review as described below. The review process is handled through Bugzilla, as will be any bugs reported against your packages.

Make sure you have an account in Bugzilla.

The email address that you use for your Bugzilla account should be the same email address as you use for all other things related to RPM Fusion.

2.2. Join the Mailing List

Once this is done, join the Developers Mailing Lists and introduce yourself there. Include a link to the review request for your first package in your introduction, and if you're a newcomer also mention that you need someone to sponsor you.

If you have questions about the packaging process, this is the place to ask.

Also join the RPM Fusion CVS commits mailing list. The CVS commits mailing list is used for commit messages from the CVS repository. You should subscribe to this list to track the changes to all the packages.

3. Submitting a new package

3.1. Read the packaging guidelines

RPM Fusion follows the Fedora packaging guidelines, make sure you've read and understood these:

It is also a good idea to read the items which will be checked during the review of your package and to verify yourself that these are all ok:

Please read the Kmod standard if you will be packaging an external kernel module:

3.2. Create a package review request

Before posting a review request, you should upload your SRPM and SPEC file to any accessible location on the internet.

Before your package can become part of RPM Fusion it must first be reviewed, create a new bug report as follows :

Please do not submit more than one package per per Bugzilla entry. It would be very very difficult to follow the review otherwise. If you have related packages, it can be handy to trace all the dependencies using the "Depends On" or "Block" Bugzilla features.

3.3. Wait for your package to be reviewed

As time permits, a reviewer will review your package. A reviewer is either a Fedora sponsored packager or an RPM Fusion only sponsored packager. If you need a sponsor, the reviewer must be a Fedora sponsors. Sometimes other people add a few comments, this does not constitute a review.

When a proper review gets done the reviewer will assign the bug to him, remove the blocker on RF_NEW and set it to block the tracker bug RF_REVIEW (bug #3). This indicates that a review is in progress.

The reviewer should follow the Fedora Review Guidelines as close as possible, obviously taking into account any differences between Fedora and RPM Fusion. As RPM Fusion is more permissive with the content it allows, exceptions to these guidelines are allowed in some circumstances but care and common sense should prevail. The reviewer should ensure that any deviations from the Fedora Packaging Guidelines are sane and justified in the package they are reviewing. If in doubt, please ask on the RPM Fusion mailing list. The reviewer should inform the contributor of any changes that need to be made to their package, if any. The contributor should update their package as necessary, including bumping the release version and submit the new SPEC file and source rpm URL. The reviewer should verify the changes. This is repeated as many times as necessary until the contributor and reviewer are happy with the final package.

3.4. Get an RPM Fusion Account

Create an account in the RPM Fusion Account System

3.5. Your package gets approved

When the reviewer approves the package, he adds a comment saying that the package has been approved, he removes the blocker RF_REVIEW bug and sets the review request to block the tracker bug RF_ACCEPT (bug #4).

After that, you can ask for the creation of a directory for your package in the CVS repository by adding a comment as follow

Package CVS request
======================
Package Name:
Short Description:
Owners:
Branches:
InitialCC:
----------------------
License tag: [free|nonfree]

The license tag specifies the repository in which you want to import your package:

And also set to your review to block the bug tracker RF_CVSsync by adding bug number #33 to the blocks list. If you have a new CVS request in the future, then you have to add #33 to the blocks list again. #33 is used as a list of bugs which currently require CVS.

3.6. Import your package

Once the CVS directory has been created, the package must be imported.
The only file that you have to import is the "src.rpm" file, no more and one at time.

First, set your environment :

export CVSROOT=:ext:<RPMFusion_username>@cvs.rpmfusion.org:/cvs/<tree>
export CVS_RSH=ssh

Start ssh-agent to ensure that cvs uses your id_rsa key:

ssh-agent $SHELL

Then, checkout the common tool and import your SRPM as follow :

cvs co common
cd common

./cvs-import.sh -b <branch> <my_srpm>

During the CVS import procedure, your source files will be automatically tagged for the requested branch.

{i} <tree> is the cvs tree where your source files should be imported/go (free or nonfree).

{i} <branch> is the cvs branch where your source files should be imported/go (devel , F-14 , F-15 , etc.).

3.7. Request a build

First of all, configure your plague-client to work with RPM Fusion.

If you have already done that, go on and request a build. Move to the directory where the source files are:

cd ..
cvs co <package_name>
cd <branch>

Then request a build to the plague-server:

$ make build

This will trigger a build request for the branch. Easy! You can check the status of the build process from the web interface.

Note: On Fedora 21 and higher, the command will fail due to bug 3200, as a workaround, use:

$ OPENSSL_ENABLE_MD5_VERIFY=1 make build

Once the package built successfully, go back to your bug review and add a comment to the review to notify the import and build have been done correctly. Then close the bug as RESOLVED FIXED.

If there is a request for your package in the RPM Fusion Wishlist, please remove the related entry and commit the change in the wiki with a comment saying that the package is now in RPM Fusion.

4. Co-maintaining an existing package

You can offer to co-maintain a package in RPM Fusion. Please see Fedora's documentation on co-maintainership. To get commit privileges to an existing package, see "Package Change Requests for existing packages" in the CVS Requests documentation.

Even if you don't have an RPM Fusion account, it can be useful to anonymously checkout a package's CVS module for various reasons. In such case, you can use the following command :

cvs -d :pserver:anonymous@cvs.rpmfusion.org:/cvs/<tree> co <module>

where <tree> is either free or nonfree and <module> is the package's name.

5. Updating an existing package

Make sure you have your environment set as in the Import your package subsection. You can then follow the Fedora Package Update HOWTO.

Example:

# Set the environment:
export CVSROOT=:ext:<RPMFusion_username>@cvs.rpmfusion.org:/cvs/<tree>
export CVS_RSH=ssh

# Check-out your package "foo":
cvs co foo

# Download the new upstream source and save it to the branch directory you are updating (if applies):
cd foo/devel
wget -N http://dl.sf.net/foo/foo-0.0.2.tar.bz2

# Upload the tarball to an external lookaside cache:
make new-sources FILES="foo-0.0.2.tar.bz2"

# Small patches, initscripts or otherwise plain text files can be commited directly to CVS:
cvs add foo-fix-the-bar.patch

# Change the required things in the specfile:
emacs foo.spec

# Check that the changes you made are correct:
cvs diff -u

# Create a changelog entry (clog):
make clog

# Commit the changes:
cvs commit -F clog

# Remove clog:
rm clog

# Tag and request build:
make tag build

# Resubmit a failed build:
plague-client-rf requeue <job id>

Note: On Fedora 21 and higher, the build command will fail due to bug 3200, as a workaround, use:

$ OPENSSL_ENABLE_MD5_VERIFY=1 make build

A package built for devel (i.e. rawhide) will directly go to the "devel" repository.

A package built for a stable release (e.g. F-15, F-14) will go to the "updates-testing" repository. You'll have to wait a period ranging from 10 to 14 days for your package to be transferred to the "updates" repository. It's a manual action, somebody real actually does that, so don't panic.

You can also find packages which are built but not yet pushed here: http://buildsys.rpmfusion.org/plague-results/

6. Retiring a package

In order to retire a branch of a package, the maintainer needs to delete all but the Makefile file and add a dead.package file containing an explanation of why the package/branch has been retired. Once that's done, the maintainer must file a bugzilla ticket in the '''Infrastructure''' product and '''Repo''' component.

7. Requesting a buildroot override

FIXME : This is only a placeholder. It is said to be possible, but is not documented anywhere.

CategoryContributing

Contributors (last edited 2014-12-16 22:04:20 by churchyard)