docs/spec: clarify targets definition
[CDN/Mosi.git] / docs / spec
1 docs/        - Project documentation
2   spec       - Specification
3 script/      - Build scripts
4   lib/       - Script libraries (shlib compatible)
5   burn       - Burn a firmware to a card (uses misc/clpbar for status)
6   gencard    - Assemble everything into a card image
7   geniso     - Assemble root filesystem into an iso9660 image (requires sysutils/cdrtools)
8   gentree    - Assemble filesystem from world, pkgs, and overlay; carve out confpacks
9   genufs     - Create a UFS filesystem and populate it with files (superseded by makefs)
10   genuzip    - Compress iso9660 image into geom_uzip image
11   loadconf   - I'm not sure...
12   makepkg    - Libraries to build packages against a specific world
13   makeworld  - Script to build a world from a seed and src
14   push       - Push source tree to build server (requires net/rsync)
15 src/         - Going away
16 targets/     - Contains system targets (world, ports, runtime config)
17   amd64/     - Arch-specific targets
18     GENERIC/ - Generic target, relies on worlds/amd64/GENERIC
19   i386/      - Arch-specific targets
20     GENERIC/ - Generic target, relies on worlds/i386/GENERIC
21 worlds/      - Contains worlds (config and root tree of a given base system build)
22   amd64/     - Arch-specific worlds
23     GENERIC/ - Generic world (Empty src.conf, GENERIC kernel config file)
24   i386/      - Arch-specific worlds
25     GENERIC/ - Generic world (Empty src.conf, GENERIC kernel config file)
26 seed/        - Contains seed builds for building a world
27   base/      - Location of base tarballs
28     amd64/   - Arch-specific seed
29     i386/    - Arch-specific seed
30   distfiles/ - Distfile tarballs for port builds
31 Makefile     - Makefile to build it all
32
33
34 seed/ is used to seed the initial chroot for building a world.
35
36 A world is a set of config files (src.conf, kernconf) that generates a particular base system build, along with the base system build generated by those config files. These are built off of whatever is in /usr/src at the moment.
37
38 A target is a set of config files (make.conf, leaf_ports, port_options) and a system overlay that takes a given world and transforms it into a viable system, which is then carved up and packaged into a firmware.
39
40 Packages are built for a world, but specific to a target because they may have target-specific port_options or make.conf tweaks applied.