EAPI 5-progress

Helpers
master_repositories
repository_path
available_eclasses
eclass_path
license_path
package_manager_build_user
package_manager_build_group
Extended default list of extensions in dohtml
Case-insensitive matching of extensions in unpack
Helpers Banned in Global Scope
Metadata
Support for Period Characters in Package Names
Support for Period Characters in USE Flags
Repository Dependencies
Automatic Unpack Dependencies
globstar shell option enabled by default
Variables
REPOSITORY Variable
Extended Repository-Level Configuration
Directories Allowed for Profile-Level and Repository-Level Configuration
USE Flag Aliases

Also see the official EAPI 5-progress Specification.

Helpers

master_repositories

New master_repositories function prints space-separated list of master repositories for specified repository.

repository_path

New repository_path function prints path to specified repository.

available_eclasses

New available_eclasses function prints space-separated list of available eclasses for current repository.

eclass_path

New eclass_path function prints path to specified eclass for current repository.

license_path

New license_path function prints path to specified license for current repository.

package_manager_build_user

New package_manager_build_user function prints name of user used by package manager in build phases.

package_manager_build_group

New package_manager_build_group function prints name of group used by package manager in build phases.

Extended default list of extensions in dohtml

dohtml by default additionally installs files with .ico, .svg, .xhtml and .xml extensions.

Case-insensitive matching of extensions in unpack

unpack matches extensions case-insensitively.

Helpers Banned in Global Scope

  • diropts

  • docompress

  • exeopts

  • insopts

  • libopts

  • use

  • use_enable

  • use_with

  • useq

  • usev

  • usex

Metadata

Support for Period Characters in Package Names

The "." character is allowed in package names.

Support for Period Characters in USE Flags

The "." character is allowed in USE flags.

Repository Dependencies

Repository dependencies are supported in atoms in DEPEND, PDEPEND and RDEPEND and atoms passed to best_version and has_version functions. Repository dependency is specified by two colons followed by repository name.

Table 6.12. Repository Dependency Examples

Atom
dev-lang/python::progress
>=dev-lang/python-3.2::progress
dev-lang/python:3.2::progress
dev-lang/python::progress[xml]
dev-lang/python:3.2::progress[xml]

Automatic Unpack Dependencies

Dependencies on packages required to unpack archives specified in SRC_URI are automatically appended to DEPEND. These dependencies are calculated from filename extensions of archives specified in SRC_URI. Dependencies (for ebuilds using given EAPI) corresponding to given filename extensions are configured in ${repository_path}/profiles/unpack_dependencies/${EAPI} files.

Table 6.13. Unpack Dependencies Configuration Examples

bz2 app-arch/bzip2
gz app-arch/gzip
tar app-arch/tar
tar.bz2 app-arch/tar app-arch/bzip2
tar.gz app-arch/tar app-arch/gzip
zip app-arch/unzip

globstar shell option enabled by default

globstar shell option is enabled by default, which enables recursive expansion of ** pattern in pathname expansion context.

Variables

REPOSITORY Variable

The new REPOSITORY variable is set in ebuild environment. This variable contains name of repository, which contains currently used ebuild.

Extended Repository-Level Configuration

Repository-level configuration in ${repository_path}/profiles is supported for the following files:

  • make.defaults

  • package.use

  • package.use.force

  • package.use.mask

  • package.use.stable.force

  • package.use.stable.mask

  • use.force

  • use.mask

  • use.stable.force

  • use.stable.mask

Directories Allowed for Profile-Level and Repository-Level Configuration

The following files can be directories:

  • package.mask

  • package.use

  • package.use.force

  • package.use.mask

  • package.use.stable.force

  • package.use.stable.mask

  • use.force

  • use.mask

  • use.stable.force

  • use.stable.mask

USE Flag Aliases

USE flag aliases are supported to allow to satisfy dependencies of packages from other repositories, which require differently named USE flags. USE flag aliases are defined in ${repository_path}/profiles/use.aliases and ${repository_path}/profiles/package.use.aliases files.

Table 6.14. use.aliases Example

real_flag1 alias1 alias2
real_flag2 alias3 alias4

Table 6.15. package.use.aliases Example

category/package1 real_flag1 alias1 alias2
category/package1 real_flag2 alias3 alias4
=category/package2-1* real_flag3 alias5 alias6
=category/package2-2* real_flag4 alias5 alias6