[fedora-india] Packaging RPM presentation

Rahul Sundaram sundaram at fedoraproject.org
Sun May 10 15:39:15 UTC 2009

On 05/10/2009 08:34 PM, Shakthi Kannan wrote:

> Updated. Have also mentioned about "# %foo" in the Notes slide. Please
> use version 1.1. Thanks for your feedback.

A few more notes:

Source0 should point to the upstream url (ie) something like


That's important because in most cases, you are packaging something
written by another developer and others should be able to verify that
the tarball matches what is provided by the upstream project.

Fedora routinely runs source url checks as part of the QA process. If it
fails, it is flagged for manual review.

Also, any non-trivial package would have a non-empty BuildRequires and
Requires section. While GCC and other core utilities are part of the
default build root in Fedora, it can be included as a BR for the sake of
the example or perhaps it would be ideal to include a second example
with those.

Also you should include a README in the tarball and introduce %doc macro
in your sample spec file.

The macros section in your slide can refer to


In your notes, you should mention it is possible to define a custom
macro easily in the spec file and many package do make use of them
routinely. For example, the python packaging guidelines in Fedora state
that python package should start with pyfoo or python-foo when upstream
is named foo and I defined a custom macro

%define upstreamname foo

and used that in my spec file.

Also distributions tend to use custom macros either within particular
package types (Fedora font packages use font specific macros and the
macros are defined in /etc/rpm/macros.fonts, part of fontpackages-devel
package which is specified as a BR for all fonts) or system wide. The
Fedora system wide macros are defined by /usr/lib/rpm/redhat/macros
which is part of redhat-rpm-config package.

Hope that helps.


More information about the Fedora-india mailing list