Package Repositories
Repositories have the following basic file structure:
./profiles/repo_name
./CATEGORY_NAME/metadata.yaml
./CATEGORY_NAME/PACKAGE_NAME/PACKAGE_NAME-VER.pybuild
./CATEGORY_NAME/PACKAGE_NAME/PACKAGE_NAME-OTHER_VER.pybuild
./CATEGORY_NAME/PACKAGE_NAME/Manifest
./CATEGORY_NAME/PACKAGE_NAME/metadata.yaml
Profiles
Categories
Any category must be listed in profiles/categories
and contain a
metadata.yaml file.
Packages
Mod directories must be in a subdirectory of a category and their directory name should be the same as the base name of the mod’s pybuilds (excluding version).
The Manifest
file is optional, but is required to contain a manifest
entry for each source file listed in SRC_URI (i.e. only optional for
pybuilds without sources).
metadata.yaml is optional.
Profiles Directory
The files in profiles are optional, except for repo_name.
File |
Description |
---|---|
arch.list |
A newlline-separated list of architectures. An architecture may refer to a game-engine variant or an operating system, and is used to distinguish configurations where a package may be stable when used in the context of one, but unstable in the context of another. |
categories |
A newline-separated list of categories. These determine which directories in the root of the repository are considered categories containing packages. Directories not listed in this file will not be detected as containing packages. |
license_groups.yaml |
A yaml file containing a mapping from license
groups to a whitespace-separated list of license
names. Each group can be referenced within
ACCEPT_LICENSE by prefixing it with an |
package.mask |
A package.mask file which applies regardless of profile |
profiles.yaml |
A yaml file containing profile declarations. See Profiles. |
repo_name |
A file containing a single line with the name of this repository |
use.yaml |
A file describing the global use flags, containing a mapping of use flag names to descriptions |
use.alias.yaml |
A file describing global use flags which have their values tied to packages. Contains a mapping of use flag names to package atoms. |
desc |
A directory containing USE_EXPAND descriptor
files. Each file has the same form as
|
Metadata Directory
The metadata directory is optional
File |
Description |
---|---|
groups.yaml |
Defines maintainer groups |
layout.conf |
See layout.conf |
news |
See GLEP 42, noting that news files are in yaml format rather than XML. Specification for the files can be found here (TODO: Rustdoc), and the directory structure follows GLEP 42. |