====== 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.