About recipes

A recipe is implemented as a directory. It must contain at least the following files

The recipe file: recipe
The recipe itself.
The meta information file: info.yaml
A file in yaml format containing some meta information about the recipe like short and long description.
The settings file: settings.yaml
A file in yaml format containing variables that are destined for a user to overwrite. This variables are available in the recipe file. Stuff like installation path and build directories should be set here.

If a recipe provides files for the users convenience they have to be put into a directory named files/. See TODO

The custom build system expects the scripts in a sub directory named custom/. See TODO

Global recipe and local overrides

The script look for recipes in two locations. Use [recipe]-build info to see where. Here i see


Recipe
------
Name: kde
Short: Build the kde 4.x development branch.
Long: A recipe to build the kde4 development branch. The core modules and some
additional extragear and playground modules are provided.

Warning: This is the development branch for the next kde release. It is not
necessarily stable!

Full Path: /home/mjansen/projects/ruby/build-tool/recipes/kde/recipe

Configuration
-------------
Settings: /home/mjansen/.build-tool/kde.yaml
Overrides: /home/mjansen/.build-tool/kde/recipe

The script load the recipe in the following order:

  1. The settings file from /home/mjansen/.build-tool/kde.yaml if it exists.
  2. The original recipe from /home/mjansen/projects/ruby/build-tool/recipes/kde/recipe. It is first loaded as a erb file and with the values from the settings file in the variable settings. Then it's parsed. It is not recommended to use more advanced erb features like loops because it makes the error fixing pretty hard.
  3. The local override file /home/mjansen/.build-tool/kde/recipe is read exactly like the original recipe. It can overwrite, slightly change or remove stuff from the recipe.

If a recipe looks for additional files it first looks in the users ~/.build-tool/[recipe] directory and if it finds a file there uses that one. This makes it possible to adapt a script without contaminating the installation and losing changes when updating the script.

Recent comments