any-conf – set of configuration options of any(1) engine.

Description

any-conf describes all options, used by any(1) for configuration of build at user-level, i.e. without code writing. Options are stored in configuration files. rdd(1) extracts them, converts to shell variables and creates executable scripts. Scripts are resided in var/dump/. Variables, converted from options, initialise all anybuild-oriented variables from API, such as ROOT, D or DEPEND.

To view configuration data without building, datardd(1) may be used.

    datardd amd64

To view constructed executable shell script (or dump) with all input data prepared, dumprdd(1) may be used.

    dumprdd amd64

Path to constructed executable script for current package is available inside shell code in variable DUMP.

Options

All paths, stored in options, are relative to the working directory. The engine prepends them with needed base so user variables contain absolute paths. So for directory /home/user/work/ and absolute path /home/user/work/build/src/ the option value in config files would be build/src. The exception are:
any_base_dir and any_rdd_root, which are properly initialised with rdd(1) variable;
any_abs_path, which contains set of predefined known to work absolute paths.

Options any_root_*, any_engine_* are engine related and are much more obscure, then the rest ones. Their description is separated to own subsection. That options are unlikely needed for general user. Refer to image_setup_paths(3) and pkg_install(3) for in-depth description of any_root_* area.

any_abs_path
PATH inside containerised build environment is reset to predefined value. This option keeps the start entry for that value. Resulting path is expanded with several more entries, any_inner_path keeps them. Resetting is done to ensure needed PATH is at the state as expected by sandbox host environment.
When environment is considered as non-containered (automatically or explicitly with the option any_bool_sandbox=0), any_abs_path is not used.
Default value is: /usr/bin:/bin:/usr/sbin:/sbin

any_admin_groupid, any_admin_userid
Primary group id and user id, respectively. That is used in containerised environment when switching between general and privileged user.

any_arch
Detailed cpu architecture for binaries. Possible examples are armv7, power6, ultrasparc3.
Initialises variable ANYARCH.

any_arch_capacity
Capacity of binaries: 32 or 64.
Initialises variable ANYARCHCAP.

any_arch_flags
Architecture-dependent flags for compiler at compiling stage to generate correct code for chosen architecture.
Initialises variable ARCH_FLAGS.

any_arch_endian
Endianness of binaries: little or big.
Initialises variable ANYARCHENDIAN.

any_arch_family
Generalised binary architecture. Possible examples are arm, power, sparc.
Initialises variable ANYARCHMODE.

any_arch_ldflags
Architecture-dependent flags for compiler at linking stage to generate correct code for chosen architecture.
Initialises variable ARCH_LDFLAGS.

any_base_dir
Option to contain the root directory, where engine is extracted. Current implementation relies on the value of / for containerised environment.
Initialises variable BASEDIR.

any_base_inner_version
Integer positive number, which is added to inner version of a package, when it is calculated automatically inside fetch_dev(3). Used to rise the inner versions centrally, but with remaining dynamic part.
Initialises variable base_INNER_VERSION.

any_bool_autobpi
If set to 1, variable BPI is calculated by first two major numbers of the version. For example, for version 1.2.3 the value of BPI will be 1.2.
Unset by default.
Initialises variable BPI.

any_bool_loaddump
Option is generated inside engine unlike all others. If set to 1, option marks, that current process is launched from the shell dump. That means further loading dumps of other packages is forbidden to avoid recursion. It can be used as command line option as well to forbid nested dump loads.

any_bool_sandbox
If set to 1, environment is considered as sandboxed. If set otherwise, it is considered the opposite. If it is not set, container status is defined automatically.
Initialises variable base_SANDBOX.

any_builddir_keep
If set to 1, interface fetch_build_remove(3) will not remove build directory.

any_context_save
If set to 0, interface root_save_context(3) will not save a tar file with the context, provided by the current package for other packages. Unset by default.

any_dev_src_dir
Location of development sources, or sources with changes for the package. Such sources are expected to be kept in version control system (git, mercury, cvs) and engine module is required for its support.
Initialises variable ANYDEVSRCDIR.

any_dev_src_version
Space separated list of possible versions for development sources to use. If the version in remote repository exists as given in option entry, it is used. If not, check is repeated for next entry.

any_dump
Explicit location of dump file (constructed shell script) with build context. The option is not set by default. When it is empty, dump location is calculated, basing on rdd_atom_dumpdir variable.
Initialises variable DUMP.

any_host_arch
Architecture of the host platform.
Initialises variable HOSTARCH.

any_host_update
If not set, stops the work of admin_host interface, so host environment will not be modified automatically during the build. Unset by default.

any_image_exec
Holds directories with executable files inside packages. Directories are relative to values from any_program_prefix. Initialises variable image_TRACKED_EXEC_DIRS. Default value is: bin sbin

any_image_libs
Holds directories with library files inside packages. Directories are relative to values from any_program_prefix. Initialises variable image_TRACKED_LIB_DIRS. Default value is: lib

any_inner_paths
Space separated list of relative paths, which are prepended to PATH variable for the build environment (both in container or not).
Default value is: rrr/bin

any_list_all
List of all packages, available for the build. It is used by methods, which gather build tree by dependencies. Assigned with all.src by default, like rdd_list_entry. If option is not set, the value of rdd_list_entry is taken.

any_list_required
Option provides the opportunity to define explicitly set of packages, which needs to operate with. The set is independent from current value of rdd_list_entry. Format is the same as in rdd_list_entry and lsrdd(1): whether file with a list or direct string with packages, separated by comma.
Unset by default. If it is unset, rdd_list_entry used at its place.

any_local_src_hashing
If set to 1, turns on the hashing by first letter of local sources names. The storage scheme without hashing:
a_package
abb_package
c_package
The storage scheme with hashing:
a/a_package
a/abb_package
c/c_package

any_make_opts
The options for make(1) command, passed through amake interface from aplain module. Most often contains options for parallel make launch.
Initialises variable MAKEOPTS.

any_meta_dir
Location of METADIR in working directory.
Initialises variable METADIR.

any_morebuild_cflags, any_morebuild_cxxflags, any_morebuild_ldflags
Additional compile-time C, compile-time C++ and link-time flags, respectively. These can be used to add custom flags to ENGINE_* series, besides the engine-generated values. That series of variables is added automatically to build strings for appropriate code and search paths. Options are not set by default.
Initialise variables ENGINE_CFLAGS, ENGINE_CXXFLAGS, ENGINE_LDFLAGS.

any_os
The operation system of target packages.
Initialises variable ANYOS.

any_out_basedir
The former absolute path to the working directory out of container. Used for user diagnostic. Generated by any-do(1) and not set manually.
Initialises variable out_BASEDIR.

any_pack_list
One more option to keep lists of packages. That one is used in package and release methods. Unset by default.

any_prof_core, any_prof_postfix, any_prof_prefix
Components of build profile, text identificator of the build tree inside working directory. That identificator is available as APROFILE in shell. Profile is part of the paths like build/image/APROFILE/ or build/pool/APROFILE/. That means changing the profile name leads to independent build tree. So the options with profile name should be included in that sections, which mean incompatibility: they declare new ABI, operation system or binary architecture. For example, config sections for mips and sparc should set up unique profiles, as packages for them are needed to be built separately from each other.
Three different options to name profiles are used for the capability to add prefixes or postfixes to already existing profile name. Thus the build will be separated, but visually will be related with the parent. For example, dataword cap64 may include any_prof_postfix=64. If generic architectures mips or arm have the profile ids as mips and arm, with additional dataword mips,cap64 and arm,cap64 they have new build profiles mips64 and arm64. At the same time cap64 is universal: it may be added equally to all other datawords.
Initialise variable APROFILE.

any_profile_engine
Space separated list of directories for modular inclusion. Included engine modules end with .sh extension.
Default value is: any/include local/include

any_profile_lib
Space separated list of directories for modular inclusion of library code. The code must not change because of API variables changing. Therefore it is not reincluded second time when shell dumps of other packages are loaded into current context. That allows to speed up dump loading. The required condition is always done when library code contains only methods. Included library engine modules end with .sh extension.
Default value is: any/lib local/lib

any_program_linguas
Space separated list of language codes. May be used to reduce internationalisation texts to selected minimum.
Initialises variable LINGUAS.

any_program_prefix
Essential prefix to locate programs inside install tree. Used in build interfaces like aconf. Examples are /usr or /usr/pkg.
Default value is: /usr
Initialises variable PREFIX.

any_program_prefix_list
Space separated list of prefixes, used among all programs in distro project. Used when all packages are not configured for single prefix. First entry from the list is used for PREFIX, if one is not set. The option is used for engine-related compilation flags: for each entry of the list search path for headers and libraries inside ROOT with that prefix is added.
Initialises variables PREFIX_LIST, PREFIX, ROOT_CFLAGS, ROOT_LDFLAGS, ROOT_DIRS.

any_program_subfs
Additional root path inside D, so that compiler deals with $ROOT$SUBFS instead of simple $ROOT. This is needed for packages, configured to something like /opt/prog/usr (where /opt/usr would be SUBFS). Empty by default.
Initialises variable SUBFS.

any_rdd_root
Reserved for future use.

any_release_dir
Directory for final built release material (whatever should it be). When option is not set, value release for RELEASEDIR is taken.
Initialises variable RELEASEDIR.

any_release_id
Short text identificator of the release files. It is used in inner versions of binary packages to identify the release they belong to: slack14.2, debian9.
Initialises variable RELEASE.

any_release_version
Full version of the release to write down in changelog: Debian-9.0, Slackware-14.2.
Initialises variable RELEASE_VERSION.

any_remote_src_hashing
If set to 1, turns on the hashing by first letter of development sources names. That suggests sources are kept at remote server by hashing scheme. See description of any_local_src_hashing.

any_src_dir
Directory with original package sources: they are taken as is from here. Patches or modifications are applied on top of them later.
Default value is: build/srcstatic
Initialises variable ANYSRCDIR.

any_static_patch_dir
Directory with plain patches, kept separately from ports. This is one of possible patch sources.
Default value is: ports/patch
Initialises variable static_PATCHDIR.

any_static_root
If set to 1, the work with ROOT moves to static mode without dependencies handling: single ROOT directory is created for all packages, and pkg_root(3) of each one mirrors its files into that general directory. Files of entire ROOT are available to the package while its building instead of materials of dedicated packages, requested by DEPEND. Unset by default.
Initialises variables static_ROOT, ROOT.

any_tch_cc, any_tch_ccld, any_tch_cxx, any_tch_cxxld
Elements of C and C++ toolchain: C compiler, C link string, C++ compiler, C++ link string.
Initialise variables PLAIN_CC, PLAIN_CXX, PLAIN_CCLD, PLAIN_CXXLD, PLAIN_CPP, CC, CXX, CCLD, CXXLD, CPP.

[any_tch_host_cc, any_tch_host_ccld, any_tch_host_cxx, any_tch_host_cxxld] Elements of C and C++ toolchain in host environment. When no cross-compiling is used, host toolchain equals to the main toolchain and host series of options is not needed.
Initialise variables HOST_CC, HOST_CXX, HOST_CCLD, HOST_CXXLD, HOST_CPP.

any_util_root
Option with the name of utility to create root-owned materials, when running as general user.

any_write_root
Base directory to write everything during the work of any(1), possibly excluding the release production.
Default value is: build

Options of engine tuning

any_engine_dump
Scheme of work with multiple dumps. The scheme defines how dump of a new (non-current) package will be got when its context is needed. Available ones are:
plain
heavy
crooked
plain scheme is the default. It creates new dump, basing on already existing dump of the current package.
heavy scheme generates new dump with dumprdd(1).
crooked scheme relies on dump, created beforehand.

any_root_exec_editable
Space separated list of file types, which should be automatically edited by image_setup_paths(3) inside pkg_install(3). That method aims to remove all inclusion of build-related paths, such as ROOT, from installable files. File type is defined by file(1) with the call of:
            file -b --mime-type filename 
Default value is: text/ application/xml application/x-shellscript inode/symlink

any_root_exec_name_template
Space separated list of templates for find(1) to determine names of executable non-binary scripts, which should be installed to ROOT as real copies (instead of symlinks) and edited to work from that directory. The scripts are searched in prefixes from PREFIX_LIST, concatenated with each entry of root_TRACKED_BIN_DIRS (according option any_root_tracked_bin_dirs).
For example, when PREFIX_LIST contains /usr and /usr/local, and root_TRACKED_BIN_DIRS contains bin and sbin, search for executables will go in /usr/bin/, /usr/sbin/, /usr/local/bin/, /usr/local/sbin/.
Default value is: *-config *-config-*

any_root_textbuild_files
Space separated list of templates for grep(1) to determine names of text files, which should be installed to ROOT as real copies (instead of symlinks) and edited to work from that directory. The files are searched in prefixes from PREFIX_LIST, concatenated with each entry from root_TRACKED_DIRS (according option any_root_tracked_dirs).
For example, when PREFIX_LIST contains /usr and /usr/local, and root_TRACKED_DIRS contains lib and include, search for files will go in /usr/lib/, /usr/include/, /usr/local/lib/, /usr/local/include/.
By default .pc files are edited: they are part of pkg-config(1) scheme to provide information about includes and libraries. Search template in default value is regular expression instead of simple text.
Default value is: \.pc$
Initialises variable root_TEXTBUILD_FILES.

any_root_tracked_bin_dirs
Space separated list of directories, where executable files for ROOT edit are searched. See any_root_exec_name_template description.
Default value is: bin
Initialises variable root_TRACKED_BIN_DIRS.

any_root_tracked_dirs
Space separated list of directories, where simple text files for ROOT edit are searched. See any_root_textbuild_files description.
Default value is: lib include
Initialises variable root_TRACKED_DIRS.

See also

any(1), any-do(1), rdd(1), datardd(1), dumprdd(1), lsrdd(1), any-api(7), any-build(7)