Frenzy Handbook    

   start => doc_en

Building the distributive

Frenzy is built with a set of building scripts.

Building scripts structure

Directory Description
FRENZY/cd Frenzy CD content
FRENZY/fs Frenzy root filesystem
ISO The directory where the ISO image will be created
packages/FreeBSD.std FreeBSD packages, Frenzy standard set
packages/FreeBSD.ext FreeBSD packages, Frenzy extended set
packages/Frenzy Special Frenzy packages
packages/frenzypkg Some Frenzy packages source code
packages/tools Packages building utilities
stages Building scripts main catalogue
stages/base Kernel config file and make.conf for Frenzy build
stages/boot Set of frenzyroot boot image
stages/iso ISO image build files
stages/lite List of files which are deleted from the base system
stages/patches Patches to be applied after the installation of system and packages
stages/pkglite/files Installed packages pathes (deleting and modifying files)
stages/pkglite/lib Unneeded libraries deleting script
stages/pkglite/locales Unneeded locales deleting script
systemroot This files are placed overwriting into root directory
of Frenzy without modification
tools/mkmenu Building fluxbox menu

Configuration

Build parameters are set using config file. The variables which could be changed are:

Variable Parameter
BLOCKSIZE Blocksize for uzip compression. Maximum size is 130560. The bigger the block is, the more compression is, but it will take more time to uncompress the archive on slow machines.
FRENZY_TYPE May be “std” (standard build) or “ext” (extended build). The name of the directory with packages and the fluxbox menu depend on it.
FRENZY_LANG May be “ru” (Russian) or “en” (English). Sets default locale, package list, locales to be deleted list, Translation and view of the menu.
FRENZY_ISOIMAGE The name of Frenzy ISO image.
FRENZY_VOL Frenzy ISO image volume label.
VERSION System version. This message will be shown in the boot loader and after every system login. In order to fit on screen, this message must fit into the “|” symbols of the ruler over the message.

Building process

Building process takes a few stages. Make sure, the application packages and frenzy packages are already built and placed in respective directories (see above).

The main building script is frbuild.

Command Action
./frbuild build Make a build stage
./frbuild install Make an install stage
./frbuild frenzy Make a frenzy stage
./frbuild iso Make an iso stage
./frbuild all Make all stages

You can make any stage by yourself by entering stages directory and running the appropriate script with “all” parameter.

FRENZY

First build stage is always performed. During this stage depending of chosen language preparing of locale list is performed, bootmanager localization and fluxbox menu generation.

build

Building from kernel and system sources

world-build

System build from the sources. Configuration file for building is stages/base/make.conf

kernel-build

Building the kernel from the sources. Kernel configuration file is stages/base/FRENZY. This file is createed by utility stages/base/mkkernel from modules located in stages/base/kernel/ directory.

install

Installing built system and kernel to FRENZY/fs directory.

world-install

System installation.

kernel-install

Installing kernel and modules.

frenzy

Building Frenzy itself - adding packages, patches and so on.

bootloader

Building MFS bootable image. All necessary files are in stages/boot. After the building you will get a file stages/boot/frenzyroot.gz that contains an image.

world-lite

Deleting useless files from base system. File and directory list to delete is stored in file stages/lite/rmfiles.

packages-install-frenzy

Installing packages from packages/Frenzy directory.

packages-install-freebsd

Installing packages from directory packages/FreeBSD.std or packages/FreeBSD.ext (depends on build type).

packages-lite-locales

Deleting useless localizations. Script for deleting and locale list is in stages/pkglite/locales.

packages-lite-files

Deleting useless files and directories, creating useful symbolic links depending of package type. Scripts for these operations are in stages/pkglite/files.

packages-lite-lib

Deleting useless static link libraries (you need them only for building statically linked applications, we don’t need this). Script for this operation is in stages/pkglite/lib.

system-patch

Miscellaneous system patches (creating additional directiries and symbolic links, patches for configuration files, etc). Patches are in stages/patches.

iso

Building Frenzy iso image

iso-prepare

Preparing directory structure on CD in directory FRENZY/cd. Configuration files are in stages/iso.

iso-mkuzip

Creating compressed image of root file system. This is a very prolonged process.

iso-build

Building iso image. This image is stored in ISO directory.