6.1. Keeping sources

With default configuration from rdd.def anybuilds are stored just in the root of working directory. With few packages that location is the most simple and straightforward. But when we start handling tens and hundreds of packages, another organisation scheme is needed.

ports directory and plainpath

The system implies the next key directories:

./ports/packages/ for anybuilds.
./ports/list/ for lists (they are described later).
To keep anybuilds in ports/, you need to remove the word plainpath from config in section [all]:
[all]
#rdd_prf_id = plainroot, plaincc, tch, plainroot
rdd_prf_id = plainroot, plaincc, tch

Dedicated ports/ directory provides more capabilities for keeping large amount of sources, for example, it may be stored in version control system.

It is possible to position anybuilds by the hash from the first letter of the package. Example:

./ports/packages/m/m4-1.2.3/
./ports/packages/x/xz-5.2.5/
./ports/packages/x/xview-3.4.5/

Sources in dedicated directory

Examples above instructed you to locate archives with sources inside directory of anybuild. If we want flexible control over anybuild source, the archives will bother us.

There is dedicated directory for all source archives:

./ports/srcstatic/

The priority of archive inside anybuild is higher, then of dedicated directory. So the archives from ports/srcstatic/ would be used only in case, when directories with anybuilds do not have them.

Patches in dedicated directory

There is similar dedicated directory for patches.

./ports/patch/

The priority of patches inside anybuild directory is higher, then of dedicated directory.