6.2. Review of existing packages

To review all build content of the project, one may have a look into the ports/packages/ dir:

        ls ports/packages/
Each package with directory and anybuild inside it is available for the build.

The lspkg(1) utility prints the packages which are explicitly included into the project.

        lspkg id
It prints package names, which are included in distro and ready for the build at the current configuration. The argument id refers to the default configuration of the project.

Package sets, grouped by some relations, are kept in plain text files in the ports/list/ directory. The files are called lists. There may be arbitrary quantity of them. Strings with first symbol # are comments. Comments and empty strings are ignored in the lists.

Lists serve to assign explicitly the sets of packages with certain purposes: packages with core distribution of your project core.src, packages of extensions more.src, packages for host environment host.src and so on.

The program lspkg(1) reads the given text files and outputs package names by one at a string. With the call with single argument, as in the example above, lspkg(1) prints the content of key list ports/list/all.src. That is the file with reserved name all.src, which must contain overall package base, available for the build at the moment.

It is possible to assign another package list to output:

        lspkg id tools.src
In that case packages from the list ports/list/tools.src will be printed.

The difference between the content of ports/packages/ and the file ports/list/all.src:

The list allows to set up explicitly those packages, which are included in the release or the distribution of the project.
It is possible to add arbitrary content into ports/packages/ (for example, debugging or experimental), but the set of built packages will not be changed because of that.
The changes in the content of the project will occur only after some addition or removing from text lists in ports/list/.