diff --git a/doc/manual.txt b/doc/manual.txt index 35447723ba..f4d637adf5 100644 --- a/doc/manual.txt +++ b/doc/manual.txt @@ -596,6 +596,72 @@ libfoo.so.1 foo-1.0_1 - The second field specified the package name and minimal version required. - A third optional field specifies the architecture (rarely used). +Creating users/groups at runtime +-------------------------------- + +There's a trigger along with some variables that are specifically to create +**system users and groups** when the binary package is being configured. +The following variables can be used for this purpose: + +*system_groups*:: + This specifies the names of the new *system groups* to be created, separated +by blanks. Optionally the **gid** can be specified by delimiting it with a +colon, i.e `system_groups="mygroup:78"` or `system_groups="foo blah:8000"`. + +*system_accounts*:: + This specifies the names of the new **system users/groups** to be created, +separated by blanks, i.e `system_accounts="foo blah"`. Additional variables +for the **system accounts** can be specified to change its behavior: + + - `_homedir`: the home directory for the user. If unset defaults to + `/`. + - `_shell`: the shell for the new user. If unset defaults to + `/sbin/nologin`. + - `_descr`: the description for the new user. If unset defaults to + ` unprivileged user`. + - `_groups`: additional groups to be added to for the new user. + +The **system user** is created by using a dynamically allocated **uid/gid** in your system +and it's created as a `system account`. A new group will be created for the +specified `system account` and used exclusived for this purpose. + +32bit packages +-------------- + +32bit packages are built automatically when the builder is x86 (32bit), but +there are some variables that can change the behavior: + +*lib32depends*:: + If this variable is set, dependencies listed here will be used rather than +those detected automatically by xbps-src and **depends**. Please note that +dependencies must be specified with version comparators, i.e +`lib32depends="foo>=0 blah<2.0"`. + +*lib32disabled*:: + If this variable is set, no 32bit package will be built. Please note that +this variable if used in the global scope it will disable 32bit packages for +the **main package and its subpackages**. + +*lib32files*:: + Additional files to be added to the **32bit** package. This expect absolute + paths separated by blanks, i.e `lib32files="/usr/bin/blah +/usr/include/blah."`. + +*lib32mode*:: + If unset, only shared libraries and pkg-config files will be copied to the +**32bit** package. If set to `full` all files will be copied as is. + +Notes +----- + +- Make sure that all software is configured to use the `/usr` prefix. +- Binaries should always be installed at `/usr/bin` and `/usr/sbin`. +- Manual pages should always be installed at `/usr/share/man` and +uncompressed. +- If a software provides **shared libraries** and headers, probably you should +create a `development package` that contains `headers`, `static libraries` +and other files required for development (not required at runtime). + Contributing via git -------------------- You can fork the `xbps-packages` git repository on github and then set up