1 Copyright (c) 2003 The Trustees of Princeton University (Trustees).
3 $Id: README,v 1.2 2004/04/14 21:22:09 mlh-pl_rpm Exp $
5 Here are some general guidelines for writing spec files.
7 * RPM does not allow you to use dashes in version or release
8 numbers. Use dots, or nothing.
10 * Most versions of RPM poorly handle version and release numbers that
11 do not begin with a number. Start your version and release number with
12 at least one number. Append as many minor numbers as you want, but
13 leave alphabetic characters at the end of the string.
15 * Always define BuildRoot based in %{_tmppath}.
17 * In the %install step, always install files based in $RPM_BUILD_ROOT.
19 * Don't be overly restrictive with Requires or BuildRequires tags. RPM
20 is already pretty smart about analyzing your package for necessary
21 dependencies. Usually, you only need to specify Requires tags to make
22 sure a set of packages get installed in the right order (if there is
23 one). Otherwise, it's likely your users will end up in awful
24 situations requiring manual bootstrap.
26 Here are some specific guidelines for writing spec files for this setup.
28 * Write your spec file as you would normally. It should be an
29 operational spec file on its own.
31 * Explicitly %define %{name}, %{version}, %{release}, or don't use
32 them. You should do this anyway to support older versions of RPM. This
33 Makefile does not implicitly define these variables (based on the
34 Name:, Version:, and Release: tags) as RPM does.
36 * Run cvsps(1) manually on your repository, and synchronize the PatchSet
37 numbers with any Patch: tags in your spec file that you would like
40 * This Makefile assumes that the build directory (as specified by the -n
41 option to %setup, or the RPM default %{name}-%{version}) is the
42 basename of the Source file (i.e. without .tar[.gz|.bz2]).
44 * Add %{?date:.%{date}} to your %{release} tag. When executed, this
45 Makefile will define the variable to be the current date in YYYY.MM.DD
46 form. This will help automated nightly upgrades. Tagged releases will
47 not define this variable.
49 * Unless you have a very good reason not to, use the following tags:
52 Packager: PlanetLab Central <support@planet-lab.org>
53 Distribution: PlanetLab 2.0
54 URL: http://www.planet-lab.org