# EAPI 4-python

Also see the official EAPI 4-python Specification.

## Helpers

### Extended default list of extensions in dohtml

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

### Helpers Banned in Global Scope

- diropts

- docompress

- exeopts

- insopts

- libopts

- use

- use_enable

- use_with

- useq

- usev

## 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.

#### 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]

## 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

- use.force

- use.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

- use.force

- use.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.

### use.aliases Example

real_flag1 alias1 alias2
real_flag2 alias3 alias4

### 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