first cut at docs for this package
[build.git] / README
1 Copyright (c) 2003  The Trustees of Princeton University (Trustees).
2
3 $Id$
4
5 Here are some general guidelines for writing spec files.
6
7 * RPM does not allow you to use dashes in version or release
8   numbers. Use dots, or nothing.
9
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.
14
15 * Always define BuildRoot based in %{_tmppath}.
16
17 * In the %install step, always install files based in $RPM_BUILD_DIR.
18
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.
25
26 Here are some specific guidelines for writing spec files for this setup.
27
28 * Explicitly %define %{name}, %{version}, %{release}. You should do this
29   anyway to support older versions of RPM. This Makefile does not
30   implicitly define these variables (based on the Name:, Version:, and
31   Release: tags) as RPM does.
32
33 * Run cvsps(1) manually on your repository, and synchronize the PatchSet
34   numbers with any Patch: tags in your spec file that you would like
35   explicitly named.
36
37 * This Makefile assumes that the build directory (as specified by the -n
38   option to %setup, or the RPM default %{name}-%{version}) is the
39   basename of the Source file (i.e. without .tar[.gz|.bz2]).
40
41 * Add %{?date:.%{date}} to your %{release} tag. When executed, this
42   Makefile will define the variable to be the current date in YY.MM.DD
43   form. This will help automated nightly upgrades. Tagged releases
44   will not define this variable.
45
46 * Unless you have a very good reason not to, use the following tags:
47
48 Vendor: PlanetLab
49 Packager: PlanetLab Central <support@planet-lab.org>
50 Distribution: PlanetLab 2.0
51 URL: http://www.planet-lab.org