Section: eclass-manpages (5)
Updated: May 2020
Index Return to Main Contents


eutils.eclass - many extra (but common) functions that are used in ebuilds


The eutils eclass contains a suite of functions that complement the ones that already contain. The idea is that the functions are not required in all ebuilds but enough utilize them to have a common home rather than having multiple ebuilds implementing the same thing.

Due to the nature of this eclass, some functions may have maintainers different from the overall eclass!


emktemp [temp dir]
Cheap replacement for when debianutils (and thus mktemp) does not exist on the users system.
edos2unix <file> [more files ...]
A handy replacement for dos2unix, recode, fixdos, etc... This allows you to remove all of these text utilities from DEPEND variables because this is a script based solution. Just give it a list of files to convert and they will all be changed from the DOS CRLF format to the UNIX LF format.
strip-linguas [<allow LINGUAS>|<-i|-u> <directories of .po files>]
Make sure that LINGUAS only contains languages that a package can support. The first form allows you to specify a list of LINGUAS. The -i builds a list of po files found in all the directories and uses the intersection of the lists. The -u builds a list of po files found in all the directories and uses the union of the lists.
make_wrapper <wrapper> <target> [chdir] [libpaths] [installpath]
Create a shell wrapper script named wrapper in installpath (defaults to the bindir) to execute target (default of wrapper) by first optionally setting LD_LIBRARY_PATH to the colon-delimited libpaths followed by optionally changing directory to chdir.
use_if_iuse <flag>
Return true if the given flag is in USE and IUSE.

Note that this function should not be used in the global scope.

optfeature <short description> <package atom to match> [other atoms]
Print out a message suggesting an optional package (or packages) not currently installed which provides the described functionality.

The following snippet would suggest app-misc/foo for optional foo support, app-misc/bar or app-misc/baz[bar] for optional bar support and either both app-misc/a and app-misc/b or app-misc/c for alphabet support.

optfeature "foo support" app-misc/foo
optfeature "bar support" app-misc/bar app-misc/baz[bar]
optfeature "alphabet support" "app-misc/a app-misc/b" app-misc/c
usex <USE flag> [true output] [false output] [true suffix] [false suffix]
Proxy to declare usex for package managers or EAPIs that do not provide it and use the package manager implementation when available (i.e. EAPI >= 5). If USE flag is set, echo [true output][true suffix] (defaults to "yes"), otherwise echo [false output][false suffix] (defaults to "no").
Install documentation using DOCS and HTML_DOCS, in EAPIs that do not provide this function. When available (i.e., in EAPI 6 or later), the package manager implementation should be used instead.

If DOCS is declared and non-empty, all files listed in it are installed. The files must exist, otherwise the function will fail. In EAPI 4 and 5, DOCS may specify directories as well; in earlier EAPIs using directories is unsupported.

If DOCS is not declared, the files matching patterns given in the default EAPI implementation of src_install will be installed. If this is undesired, DOCS can be set to empty value to prevent any documentation from being installed.

If HTML_DOCS is declared and non-empty, all files and/or directories listed in it are installed as HTML docs (using dohtml).

Both DOCS and HTML_DOCS can either be an array or a whitespace- separated list. Whenever directories are allowed, '<directory>/.' may be specified in order to install all files within the directory without creating a sub-directory in docdir.

Passing additional options to dodoc and dohtml is not supported. If you needed such a thing, you need to call those helpers explicitly.

in_iuse <flag>
Determines whether the given flag is in IUSE. Strips IUSE default prefixes as necessary. In EAPIs where it is available (i.e., EAPI 6 or later), the package manager implementation should be used instead.

Note that this function must not be used in the global scope.

eqawarn [message]
Proxy to ewarn for package managers that don't provide eqawarn and use the PM implementation if available. Reuses PORTAGE_ELOG_CLASSES as set by the dev profile.



Please report bugs via







This document was created by man2html, using the manual pages.
Time: 00:27:02 GMT, August 10, 2020