I’ve implemented new @live-rebuild and @module-rebuild package sets, and added them to the default sets.conf file for the next sys-apps/portage release (that will be 2.2_rc6). Here are the relevant sections from sets.conf:
# Installed ebuilds that inherit from known live eclasses.
class = portage.sets.dbapi.InheritSet
world-candidate = False
inherits = cvs darcs git mercurial subversion
# Installed packages that own files inside /lib/modules.
class = portage.sets.dbapi.OwnerSet
world-candidate = False
files = /lib/modules
Given the new InheritSet and OwnerSet classes, it’s easy to define similar sets based on inherited eclasses and installed files, respectively.
Version 2.2_rc5 of sys-apps/portage adds support for EAPI=”2_pre1″ which has some changes in conditional USE dependency syntax. The previous experimental EAPI=”2_pre0″ value is no longer supported.
For more information about experimental EAPI features, refer to bug #233213 and also see the “Ebuild” chapter of the html documentation that is installed with portage when USE=doc is enabled. I’ve posted a copy of the EAPI=”2_pre1″ documentation here:
Language codes in file names are now used for path translation.
Table 6.1. Man Page Path Translation
Unconditional USE Dependencies
Table 6.2. Syntax Examples
foo[bar] foo must have bar enabled
foo[bar,baz] foo must have both bar and baz enabled
foo[-bar,baz] foo must have bar disabled and baz enabled
Conditional USE Dependencies
Table 6.3. Syntax Examples
Compact Form Equivalent Expanded Form
foo[bar?] bar? ( foo[bar] ) !bar? ( foo )
foo[!bar?] bar? ( foo ) !bar? ( foo[-bar] )
foo[bar=] bar? ( foo[bar] ) !bar? ( foo[-bar] )
foo[!bar=] bar? ( foo[-bar] ) !bar? ( foo[bar] )
In >=portage-2.2_rc2 there are a few new emerge options that many Gentoo users will probably be interested in:
Specifies the number of packages to build simultaneously.
Also see the related --load-average option.
Continue as much as possible after an error. When an error
occurs, dependencies are recalculated for remaining packages
and any with unsatisfied dependencies are automatically
dropped. Also see the related --skipfirst option.
Specifies that no new builds should be started if there are
other builds running and the load average is at least LOAD (a
floating-point number). This option is recommended for use in
combination with --jobs in order to avoid excess load. See
make(1) for information about analogous options that should
be configured via MAKEOPTS in make.conf(5).
Here is some sample parallel build output from a catalyst stage2 build, with emerge’s new –jobs option enabled:
>>> Building (1 of 10) sys-devel/gettext-0.17 for /
>>> Building (2 of 10) sys-libs/zlib-1.2.3-r1 for /
>>> Building (3 of 10) virtual/libintl-0 for /
>>> Building (4 of 10) dev-util/unifdef-1.20 for /
>>> Installing virtual/libintl-0 to /
>>> Installing dev-util/unifdef-1.20 to /
>>> Building (5 of 10) sys-kernel/linux-headers-2.6.23-r3 for /
>>> Installing sys-libs/zlib-1.2.3-r1 to /
>>> Jobs: 3 of 10 complete, 2 running Load avg: 3.44, 1.46, 0.69