ROCK Linux Directory Tree
From RockWiki
Contents |
ROCK Linux Directory Tree
You can browse the latest revision of the ROCK Linux directory tree in our SVN repository.
Documentation/
The ROCK Linux Documentation. Read everything - if you can! You should also visit our homepage at http://www.rocklinux.org and subscribe to the mailing lists.
Documentation for developers is found in the Developers/ subdirectory.
scripts/
All the build and helper scripts can be found here. A detailed description of them can be found in chapter 2.
Make sure to always call them from the base directory (like ./scripts/Config)
and __do not__ change into scripts/ and execute the script there!
package/
The ROCK Linux specific part of the package sources are stored in this tree.
This is for every package at least a .desc file (read chapter 4 for more
details about the package format).
Within the package/ directory, every "package repository" has it's own
subdirectory. A package repository is an organisational unit to group
packages together. All packages within a repository do belong to the same
maintainer or maintainer team.
Within the repository directory, every package has it's own subdirectory.
E.g. the gcc package can be found in package/base/gcc/.
package/base/
The base repository contains the most important core packages. Stuff like
the compiler, the kernel, C libraries and the standard unix command packages (coreutils, ...).
The base packages are maintained by the ROCK Linux core developers.
package/x11/
The x11 repository contains the basic X11 packages. Everything you need
to set up a graphical workstation including the most important tools.
package/<architecture>/
There are some architecture specific repositories like alpha, powerpc,
sparc, x86, ... They contain packages that are only useful on this one
architecture.
package/<person>/
Other packages are grouped together into repositories named by the maintainer.
Those are e.g. clifford, esden, ... and many more.
But functional grouping like kde and gnome repositories are also possible.
misc/
Various stuff which doesn't fit elsewhere can be found here.
misc/archive/
Some small special-purpose scripts and C programs are stored here.
misc/config/
Generic (package, architecture and target independent) config.in files are placed in this directory.
misc/desktop/
Contains the parse-config responsible for automatic .desktop file adaptions during package builds.
misc/isomd5sum/
Contains C source code for implanting and checking md5sum checksums of ISO images.
misc/jailing/
Contains the files for jailing support (building packages in a "jail", protecting the build system from modifications).
misc/output/
Configuration files for various build output plugins are stored here.
misc/pkgsel/
Package preselection templates are placed here. The templates are defined using one or more package sets, which are located in the sets/ subdirectory.
misc/rockdialog/
The ROCK version of the dialog program, used in ./scripts/Config.
misc/tools-source/
The sources of ROCK build tools, like flist and other wrappers, the .desc file parser or the pseudo-native handler.
target/
A "target" is a set of rules to create ROCK Linux based distributions. The "normal ROCK Linux" is
the crystal target, built with the default configuration settings.
Every target has it's own subdirectory in this tree. Read chapter 5 and Creating Targets for details.
architecture/
Every architecture supported by ROCK Linux has it's own subdirectory in this tree.
download/
The original package tar files are downloaded to that directory by the
./scripts/Download script. Only the files required for building the selected
target will be downloaded.
Re-distributable files are downloaded to a subdirectory of download/mirror/, non-distributable
file to the equivalent download/nodist/ directory. Only re-distributable files are available on
ROCK Linux mirrors.
src*/ And build/
This directories are created by the Build scripts. They can be easily removed
using ./scripts/Cleanup.
Compiled build tools are placed in src/, as well as some intermediate files from ./scripts/Config. ./scripts/Download stores a list of failed downloads in src/Download-Errors.
For each package build a separate src.<pkg>-<id>/ directory is created. This package build directory contains the extracted package sources (if any), the wrapper logs, a debug script and supplemental data. Symbolic links to all download files of this package exist in the archdir/ subdirectory.
Target builds create and use a separate directory below build/ for each configuration. It is used as the root directory of the target distribution. The ROCK/ subdirectory is linked to the ROCK base directory during the build process (for the chroot environment).
config/*
The build configurations (created with ./scripts/Config) are stored in
the config/ tree. Every configuration has it's own subdirectory there.
Read chapter 3 for details.
