m (1 revision(s)) |
|||
Line 1: | Line 1: | ||
= The anatomy of a package checkout = | = The anatomy of a package checkout = | ||
There are two all-important modules that are of concern to developers: | There are two all-important modules that are of concern to developers: | ||
*The '''common''' module contains the Makefile rules for downloading, unpacking, building, testing and packaging your rpm as well as various scripts used in the management of a package module. | * The '''common''' module contains the Makefile rules for downloading, unpacking, building, testing and packaging your rpm as well as various scripts used in the management of a package module. In the common module, Makefile.common is the workhorse of each rpm build. This file is meant to be included from each module's own Makefile and provides a host of make targets that are explained in detail later in this document. | ||
In the common module, Makefile.common is the workhorse of each rpm build. This file is meant to be included from each module's own Makefile and provides a host of make targets that are explained in detail later in this document. | * The '''rpms''' module is the main container for all the package modules. The structure of a package module is explained below. | ||
*The '''rpms''' module is the main container for all the package modules. The structure of a package module is explained below. | |||
== General Structure of a checked-out package == | == General Structure of a checked-out package == |
Revision as of 18:28, 28 May 2008
The anatomy of a package checkout
There are two all-important modules that are of concern to developers:
- The common module contains the Makefile rules for downloading, unpacking, building, testing and packaging your rpm as well as various scripts used in the management of a package module. In the common module, Makefile.common is the workhorse of each rpm build. This file is meant to be included from each module's own Makefile and provides a host of make targets that are explained in detail later in this document.
- The rpms module is the main container for all the package modules. The structure of a package module is explained below.
General Structure of a checked-out package
All non-tarball/non-large components of a source package will be kept in CVS. All tarball and large components (think: pristine upstream sources) will be kept in the look-aside repository, and an md5sum of their contents will be kept in CVS in the sources file.
system-config-display/ |-- F-7 | |-- Makefile | |-- branch | |-- sources | <code>-- system-config-display.spec |-- Makefile |-- common | |-- Makefile | |-- Makefile.common | |-- branches | <code>-- cvs-import.sh |-- devel | |-- Makefile | |-- sources | <code>-- system-config-display.spec <code>-- import.log
For example, the CVS repository on the F-7 branch for a small package might contain:
Makefile foo.spec branch sources
The ./sources
file lists of the sources that are stored in the lookaside cache; in this case, it would just consist of:
3da5afb85bcdce51113d4b32bd79093f foo-1.2.3.tar.gz
The look-aside repository will contain a directory named foo (after the name of the package module) and a copy of the foo-1.2.3.tar.gz
file referenced from the sources file.
To check out the sources stored in the lookaside cache, you can simply do a
make sources
in the package checkout. make sources
is also the default Makefile target, so a simple make will also have the same effect.