blob: b14bcd135bf13e8bd7b1f9f53a8c9b292731b332 [file] [log] [blame]
portage-3.0.37 (2022-09-23)
--------------
Bug fixes:
* _emerge: SpawnProcess: Avoid sandbox violations with PROPERTIES="interactive"
when accessing /dev/tty* (bug #870310).
* _emerge: Binpkg: Don't create empty stray binpkgs (bug #870283).
* bin: gpkg-sign: Check gpg configuration before using (bug #869470).
* portage: gpkg: Allow missing files (needed for when ebuilds touch
${EROOT} in pkg_*) when creating binpkgs with quickpkg (bug #870229).
* portage: getbinpkg: Fix --getbinpkgonly command list with e.g. rsync (bug #866197).
* portage: checksum: Fix PORTAGE_CHECKSUM_FILTER. Regression from 3.0.31.
portage-3.0.36 (2022-09-09)
--------------
Bug fixes:
* The layout of gpkg (new binpkg format) packages has been fixed (bug #865905).
* Fix getbinpkg fetching (bug #864160).
portage-3.0.35 (2022-08-23)
--------------
Features:
* Portage can now set scheduling policies using the PORTAGE_SCHEDULING_POLICY
and PORTAGE_SCHEDULING_PRIORITY variables. See make.conf.example for details.
See also https://wiki.gentoo.org/wiki/Portage_niceness.
* The header of build.log now contains the package's slot (bug #864382).
Bug fixes:
* xml: Fix XML node parsing (resulted in duplicate USE flag descriptions
in gentoolkit, bug 858791). This code is thought to have only one
consumer (gentoolkit, and only as of its most recent releases), so
impact is not severe.
* portage: dbapi: porttree: fix _set_porttrees() to operate correctly if passed
a generator. Fixes e.g. blank emerge --metadata caches in /var/cache/edb
which affected eix (bug #865635). Regression from 3.0.31.
* logging: don't clutter with a global logger and instead scope to
each module. Allows further logging refactoring in future.
* estrip: fix double slash for older EAPIs (bug #862600).
* estrip: avoid spurious NEEDED warning when no ELF files installed for
< EAPI 7 (bug #749624, bug #862606).
* estrip: apply scanelf optimisation for EAPI 7+ too (bug #749624, bug #862606).
* dispatch-conf: respect (E)ROOT
* install-qa-check.d: 60pkgconfig: drop noisy pkg-config mismatched Version
field check (bug 857654).
* install-qa-check.d: 60pkgconfig: fix --validate check by adding
${ED}/usr/{lib*,share} to search path.
* install-qa-check.d: 60pkgconfig: only check defined variables for
${EPREFIX} compliance (bug 860825).
* install-qa-check.d: 60pkgconfig: display the detected version from
the .pc file (improves the QA warning output), and hint to the user/developer
about the existence of QA_PKGCONFIG_VERSION to silence the warning.
* install-qa-check.d: 60pkgconfig: use eqatag for nicer output.
* install-qa-check.d: 60pkgconfig: use ver_test where possible in version
comparison checks to avoid warning if the Version field in the .pc file
is equivalent to the ebuild version.
* install-qa-check.d: 80libraries: include Darwin/Mach-O objects in checks.
* install-qa-check.d: 80multilib-strict: use file/find from Prefix instead
of absolute paths in /usr/bin.
* install-qa-checks.d: 90gcc-warnings: add arm64, aarch64 (used by Apple),
loongarch64, riscv64, s390x to list of 64-bit arches which affects the
severity of some warnings (like pointer truncation).
* install-qa-check.d: 90world-writable: include EPREFIX in paths.
* portage: output: update obsolete /etc/init.d/functions.sh path.
* bin: style tweaks to conform to Gentoo style (mostly variable bracing).
* doins: fix D check, add EPREFIX check
* misc-functions.sh: add Prefix fixups, like including EPREFIX in
INSTALL_MASK for /usr/share for noman, noinfo, nodoc.
* phase-function.sh: mark ED, EROOT read-only variables
* eapi.sh: cleanup obsolete references to unofficial 5-hdepend EAPI.
* isolated-functions.sh: sync __makeopts_jobs implementation with
multiprocessing.eclass.
* ebuild(1): improve descriptions of various phase functions.
* emerge(1): mention --with-bdeps=n behavior for both --usepkg (-k) and
--usepkgonly (-K) (bug #863422).
* ecompress: add option to lz4 in order to be able to compress multiple
files at once (bug #672916).
portage-3.0.34 (2022-07-20)
--------------
Bug fixes:
* checksum: fix trying to use discard on a frozenset().
* ebuild(5): mention doexe behavior is undefined if exeinto not yet called.
* ebuild(5): fix typos.
portage-3.0.33 (2022-07-18)
--------------
Bug fixes:
* env-update: Handle BROOT vs ROOT distinction for PATH (and other
variables like PREROOTPATH and ROOTPATH). The issue being that
only some variables are relevant for execution (and hence need
to be derived from BROOT), while others need to correspond to
EROOT for e.g. library paths. This should help with Clang
stage building.
* Build: Fix test suite file data processing (copying of .gnupg data
for the gpkg tests led to a failure in src_test in the portage ebuild).
* emerge: drop obsolete fixpackages warning (as a result of refactoring,
started to show on every emerge, but is harmless and left over
from many years ago). Bug #858407.
* quickpkg: Fix quoting/splitting of BINPKG_COMPRESS_FLAGS arguments. Bug #857933.
* estrip: fix double prefix (regression from "don't call estrip twice" fix
in 3.0.31). Bug #858818.
* ebuild(5): dolib, libopts: mention dolib, libopts being banned in EAPI 7.
* ebuild(5): dohtml: mention dohtml is banned in EAPI 7.
* ebuild(5): hasv: mention hasv is banned in EAPI 8.
* ebuild(5): dosym: mention dosym -r for EAPI 8.
* ebuild(5): einstall: mention einstall was banned in EAPI 6.
* ebuild(5): econf: add --docdir and --htmldir for EAPI 6,
add --with-sysroot for EAPI 7, add --datarootdir and --disable-static for EAPI
8.
* ebuild(5): econf: drop --disable-dependency-tracking from "example"
because it's confusing (implies it was always added, even before EAPI 4).
* ebuild(5): modernize examples slightly.
portage-3.0.32 (2022-07-11)
--------------
Bug fixes:
* Fix marking all news items as relevant. See bug #857669.
* Allow nested ebegin again while there's a lack of consensus on banning it.
* Fix use of deprecated (now removed) getchildren() call in XML parser,
which caused failures with gentoolkit. See bug #857537. (Note that this
was not originally in the release notes for 3.0.32, but the fix was in
3.0.32).
* Fix doc generation by removing reference to removed EAPIs. See bug #857486.
portage-3.0.31 (2022-07-10)
--------------
Breaking changes:
* repoman support dropped. Please migrate to pkgcheck. See bug 835013.
* Remove support for never-official EAPIs: "4-python", "5-progress".
Further cleanups as a result allowed removal of "USE alias" support too.
* Drop support for Python 3.6. It's been EOL upstream since 2021-12-23.
The minimum version of Python for Portage is now Python 3.7.
Features:
* GLEP 78 "gpkg" binary package format support, including the ability to sign
binpkgs! See bug 500630, bug 659864, bug 672672, bug 773259, bug 820578.
This is still somewhat experimental!
To try it out:
- set BINPKG_FORMAT="gpkg" in make.conf;
- optionally, set FEATURES="binpkg-signing binpkg-request-signature", and so on.
See cnf/make.conf.example for the full details, options, and documentation.
* emerge: Add -X short option for --exclude.
* emerge: Support the "foot" terminal for title updates.
* Recognize LoongArch ABIs in multilib_category.
* depclean: Return failure via exit code if requested packages
aren't depcleaned. See bug 851750.
* estrip: Optimize calls (avoid duplicate call) by using previously
collected scanelf data. See bug 749624
* autoclean: Optimize unmerges by only enabling autoclean for global
updates and/or depcleans. This avoids needing to iterate over all
installed packages after each individual removal.
* vartree: Optimize by skipping `env-update` call (which is expensive, as
it ends up calling `ldconfig` to regenerate ld.so.cache) if no files
were installed (e.g. virtual/).
* vartree: Optimize by avoiding VDB lock contention (avoid taking
lock if no blockers).
* QA: warn if 'eend' is called without a corresponding 'ebegin',
and vice-versa: if 'ebegin' is called without a corresponding 'eend'.
See bug 835824 and bug 835823.
* QA: install-qa-check.d: Add 60pkgconfig check which:
- checks libdir in installed .pc files
- checks paths not respecting EPREFIX in .pc files
- runs pkg-config --validate on .pc files
- checks for mismatched version in .pc files vs ${PV}. Ebuilds can override
this using QA_PKGCONFIG_VERSION.
* QA: install-qa-check.d: Update 20runtime-directories to warn on /var/tmp
usage too.
* emerge: Deduplicate atoms in 'dropped' message for --keep-going.
* dispatch-conf: Warn about changing the 'use-rcs' setting. See bug 837533.
* Lots of general refactoring and code cleanups.
Bug fixes:
* Disable SONAME dependencies by default again (i.e. set --ignore-soname-deps=y
to default on). See bug 687956 and bug 829623.
This was done because of problems caused with depcleans.
* git: Mark repository as safe for newer versions of git (>= git-2.35.2).
See bug 838223 and bug 838271.
* dosym: Fix EAPI check for '-r' (relative) flag. It would previously allow
using an EAPI 8 only feature.
* ebuild: Fix re-sourcing IDEPEND (EAPI 8+).
* estrip: Fix race when creating build-id debug symlinks. See bug 831927.
* MergeProcess: Fix bug causing unnecessary ld.so.cache regeneration even
when no libraries were installed. This used to work in the past, so is viewed
as a bug fix, rather than an optimization, although it's a bit of both.
See bug 836375.
* MiscFunctionsProcess: Avoid clobbering the main sandbox.log if a "die hook"
is invoked. This should prevent sandbox.log being blank in many cases.
* Drop /run warning as it ended up being too noisy and we've decided
to workaround/fix (depending on your perspective) the issues in packages
themselves, given only one package was actually at fault here: bug 832853.
* movefile: Merge symlinks atomically. This should reduce the risk of build
failures during parallel builds (multiple emerge jobs). See bug 836400.
* Improve error message when Bash version is too old for an ebuild
to be read.
* Minor improvements to 'die' output.
* Undo dep_zapdeps change in 3.0.29 as it introduced a regression w.r.t solving
blockers for gentoo-kernel. See bug 833014.
* QA: install-qa-check.d: update 95empty-dirs to mention Portage behavior
change for EAPI 8+.
* QA: install-qa-check.d: Fix usage of obsolete 'egrep' and 'fgrep' which
now emit warnings with an upcoming grep release (> 3.7).
* portageq: Ditto re egrep/fgrep.
* util: Fix Whirlpool implementation breaking (crashing/failing tests) with
OpenSSL 3. This wasn't noticed before as previously, OpenSSL exposed its
Whirlpool implementation by default, whereas it's now marked as legacy.
See bug 846389.
* socks5-server: Fix Python 3.10 DeprecationWarning. See bug 794115.
* portage.eapi: Include workaround for consumers with misconfigured
logger to avoid needing a newer gentoolkit. See bug 838406.
* CI: Run 'black' on remaining files missed in the previous conversion and fix
CI to catch regressions related to this.
* CI: Test with Python 3.11.
* CI: Drop references to unsupported Python 3.6.
* make.conf: document MAKEOPTS defaulting to the number of processors for
the number of jobs in make.conf(5).
* dispatch-conf: fix description of 'frozen-files' format in dispatch-conf.conf
man page. See bug 830618.
portage-3.0.30
--------------
* fix warning/crash on bad PROVIDES in package. See bug 828966.
* avoid infinite loop in _optimized_copyfile. See bug 828844.
portage-3.0.29
--------------
* check for inconsistent/missing PROVIDES during package (and binpkg)
installation. See bug 811462.
* avoid pulling in newer slots for upgrades in some cases. See bug 828136.
* enable SONAME dependencies for binpkgs by default. See bug 687956.
* add new options to allow avoiding building/using binpkgs for live ebuilds:
FEATURES="binpkg-live" and --usepkg-exclude-live.
* add emphasis in output to user patches being applied.
portage-3.0.27
--------------
* improve blocker output to make it clear which blockers
are not satisfied.
* use distinct colors for einfo/elog and ewarn/eqawarn.
portage-3.0.26
--------------
* fix broken FILESDIR copying logic.
portage-3.0.25 (yanked)
-----------------------
* fix Python < 3.8 compatibility of FILESDIR copying code.
portage-3.0.24
--------------
* remove doebuild(dbkey=...) support that was deprecated since 2013.
* pass metadata internally using key=value format.
* include INHERIT key md5-cache to match pkgcore.
* reformat Portage code using black.
* fix Python 3.10 deprecation warnings.
* replace compat_coroutine use with modern async.
portage-3.0.23
--------------
* enable autogroup scheduling with pid-sandbox if possible. This should
make the kernel respect niceness better.
* add support conf-update.d hooks.
* display all preserved libraries with --verbose.
* restore QA warnings when EXPORT_FUNCTIONS is called before inherit.
* catch more setuptools warnings via the respective QA check.
portage-3.0.22
--------------
* USE flags are now sorted with respect to numerical segments in emerge
output (e.g. python3_10 comes after python3_9).
* setuptools version normalization warnings are now ignored.
* FEATURES=installsources no longer copies irrelevant directory trees
with gcc-11.
* sdist archives built using "build" now include setup.py.
portage-3.0.21
--------------
* EAPI 8 fixups.
portage-3.0.20
--------------
* Finalize EAPI 8.
portage-3.0.19
--------------
* Enable EAPI 8.
portage-3.0.18
--------------
* profile-repo-deps is supported in layout.conf profile-formats.
portage-3.0.16
--------------
* emirrordist supports the content-hash distfiles mirror layout.
portage-3.0.15
--------------
* FEATURES=binpkg-multi-instance is now enabled by default.
portage-3.0.13
--------------
* FETCHCOMMAND now supports a \${DIGESTS} placeholder which expands
to a space separated list of digests. Refer to the FETCHCOMMAND
documentation in the make.conf(5) man page.
portage-3.0.6
--------------
* emerge --search now detects regular expressions automatically. This
behavior is controlled by the --regex-search-auto option.
* make.conf now treats variable names that begin with two underscores
as local variables which are not displayed by emerge --info --verbose.
* egencache --update-pkg-desc now has a --verbose option which causes
it to emulate esync --verbose output.
* env-update now generates a systemd user-session environment in a file
named /etc/environment.d/10-gentoo-env.conf.
* binrepos.conf is a new configuration file that acts as a substitute
for the PORTAGE_BINHOST variable, and allows each repository to have
a separate FETCHCOMMAND which can be used to customize authentication.
This file is documented in the portage(5) man page.
portage-3.0.0
--------------
* Dropped support for Python 2.x.
portage-2.3.101
--------------
* The new PORTAGE_LOG_FILTER_FILE_CMD make.conf(5) variable specifies a
command that filters build log output to a log file. In order to
filter ANSI escape codes from build logs, ansifilter(1) is a
convenient setting for this variable.
portage-2.3.100
--------------
* New BINPKG_COMPRESS=zstd default (does not apply to installed systems
using the old bzip2 default).
portage-2.3.97
--------------
* Support for the PORTAGE_LOG_FILTER_FILE_CMD variable has been
temporarily removed due to bug 716636.
portage-2.3.90
--------------
* The new PORTAGE_LOG_FILTER_FILE_CMD make.conf(5) variable specifies a
command that filters build log output to a log file. In order to
filter ANSI escape codes from build logs, ansifilter(1) is a
convenient setting for this variable.
portage-2.3.80
--------------
* The emerge --quickpkg-direct option enables use of installed packages
directly as binary packages. It can be used to create minimal runtime
container images (which need not include a package manager), or to
enable a live image to act as a binary installer that uses packages
installed in the live image as a source of binary packages. This
option is especially useful in combination with --usepkgonly and
--ignore-soname-deps=n options, allowing implicit system dependencies
such as libc to be automatically accounted for.
portage-2.3.77
--------------
* The emerge --autounmask option is now disabled by default, except for
portions of behavior which are controlled by the --autounmask-use and
--autounmask-license options. For backward compatibility, previous
behavior of --autounmask=y and --autounmask=n is entirely preserved.
Users can get the old behavior simply by adding --autounmask to the
make.conf EMERGE_DEFAULT_OPTS variable.
portage-2.3.72
--------------
* The glsa-check program is now provided by portage, and it has been
removed from gentoolkit. See bug 463952.
portage-2.3.70
--------------
* The @live-rebuild package set now searches for PROPERTIES=live, see
bug 233589. The @deprecated-live-rebuild package set provides the
old behavior which was based on inherited eclasses.
portage-2.3.64
--------------
* New (council approved) default locations for the Gentoo repository,
distfiles, and binary packages (does not apply to installed systems
using the old defaults):
/usr/portage -> /var/db/repos/gentoo
/usr/portage/distfiles -> /var/cache/distfiles
/usr/portage/packages -> /var/cache/binpkgs
portage-2.3.53
--------------
* Renamed PORT_LOGDIR and PORT_LOGDIR_CLEAN variables to
PORTAGE_LOGDIR and PORTAGE_LOGDIR_CLEAN to match other existing
similar variables
* Enable FEATURES={ipc,network,pid}-sandbox by default
portage-2.3.42
----------------
* Sync with rsync quarantines data prior to verification, using the
rsync --link-dest option (can be disabled by setting
"sync-allow-hardlinks = no" in repos.conf).
* Sync with git quarantines data prior to verification, see
https://wiki.gentoo.org/wiki/Portage_Security#git-mirror_repo.
* Sync with shallow git pull is supported, by "setting sync-depth = 1"
in repos.conf.
portage-2.3.32
----------------
* EAPI 7 support.
portage-2.3.29
----------------
* Portage API consumers can use asyncio with portage's internal event
loop, see portage.util.futures.unix_events.DefaultEventLoopPolicy.
portage-2.3.25
----------------
* Experimental support for EAPI 7_pre1.
portage-2.3.20
----------------
* Support RESTRICT=network-sandbox in ebuilds.
portage-2.3.17
----------------
* The doins ebuild helper has been rewritten in python for performance, and
it does in-kernel file copying on Linux.
portage-2.3.14
----------------
* Repository metadata/layout.conf supports manifest-required-hashes
attribute (default value is SHA512).
portage-2.3.12
----------------
* better_cache implemented to use less expensive os.listdir() instead of
os.stat() operations to scan for ebuilds. Avoids exhaustively scanning
overlays for all ebuilds which allows Portage to not slow down significantly
with lots of overlays enabled. (Daniel Robbins)
portage-2.3.7
-----------------
* eapply_user combines patch basenames from all matched directories into a
list, and applies them in POSIX sorted order. This allows patches in
more-specific directories to override patches of the same basename found
in less-specific directories. An empty patch (or /dev/null symlink) negates
a patch with the same basename found in a less-specific directory.
* FEATURES=multilib-strict no longer recurses into subdirectories, in order
to avoid false-positives. The MULTILIB_STRICT_EXEMPT variable only served
to filter false-positives that were triggered by recursion, so it will no
longer be needed.
* New emerge --autounmask-keep-keywords and --onlydeps-with-rdeps=<y|n>
options.
* Set compression method for binpackages via BINPKG_COMPRESS variable
* Support for environment variables for git cmd in repos.conf via sync-git-env
portage-2.3.5
-----------------
* Numerous patches updating checksums code and python module imports for them
including new checksum methods
* New linux in kernel movefile support via a new "C" extension module
portage-2.3.3
-----------------
* Reverted commits:
- Bug 552814 Revert "GitSync.update: respect sync-depth
(Shallow fetch is not a practical default at this time,
given performance issues introduced by `git update-index`
and `git prune` (see bug 599008).
)
portage-2.3.1
-----------------
* Support News-Item-Format 2.0
* emerge: add --fuzzy-search and --search-similarity
* Add emerge --autounmask-continue option
portage-2.3.0
-----------------
* Final release
* Includes numerous bugfixes
portage-2.3.0_rc1
-----------------
* New split release for the repoman Q/A tool
* Includes the stage2 rewite of the repoman code base
portage-2.2.26
--------------
* EAPI 6 stable portage release
portage-2.2.25
--------------
* EAPI 6 final fully implemented.
portage-2.2.22
-------------
* Stage 1 of the repoman re-write code merged in to master branch
This is the first release of the new code base.
portage-2.2.19
-------------
* The squashdelta sync module was removed for separate installation
and development work
portage-2.2.19
-------------
* websync module now fully renamed to webrsync
* New squashdelta sync module for downloading full or updates for a squasfs tree
requires dev-util/squashmerge be installed
* New binpkg-multi-instance feature allows for multiple variations
(USE settings) to be saved in the pkgdir and index.
portage-2.2.16
-------------
* New portage plug-in sync system.
Read the news anouncement for more details of the changes in config
settings and operation.
* New native portage postsync.d capability
* New native portage repo.postsync.d capability
* New native indexed search capability for decent search speed
* Tentative EAPI 6 patches for additional testing
portage-2.2.14
-------------
* Remaining bugs in build/install system should be fixed.
portge-2.2.14_rc1
-------------
* Many new build/installation system errors fixed.
portage-2.2.13
-------------
* New setup.py build system and distutils-r1 ebuild at EAPI 5
* PORTAGE_{BIN,PYM}_PATH variables. If you want to call internal portage tools,
you need to query PORTAGE_BIN_PATH and PORTAGE_PYM_PATH, use them
and re-export them.
* New @changed-deps set to update packages which need dependecy change updates.
portage-2.2.12
-------------
* New emaint module "merges" for finding and fixing failed merges
If a pkg fails to merge to the live filesystem correctly, that pkg may
not work correctly if at all. This module scans the installed pkg database
for those failures and can re-emerge those packages.
portage-2.2.1
-------------
* Add cgroups, ipc-sandbox, and network-sandbox FEATURES.
portage-2.2
-------------
* Add extended set configuration via /etc/portage/sets.conf. See
/usr/share/portage/config/sets/portage.conf for examples.
portage-2.1.11.20
-------------
* Add support for EAPI 5. Refer to the PMS EAPI Cheat Sheet, portage's html
docs installed with USE=doc, or `man 5 ebuild` for more info about EAPI 5.
* Add support for FEATURES=preserve-libs which preserves libraries when the
sonames change during upgrade or downgrade, and the @preserved-rebuild
package set which rebuilds consumers of preserved libraries.
* Add link level dependency awareness to emerge --depclean and --prune actions
in order to protect against uninstallation of required libraries. Refer to
the --depclean-lib-check option in the emerge(1) man page.
portage-2.1.11
-------------
* Add support for experimental EAPI "4-slot-abi". Refer to the corresponding
html documentation that is installed with USE=doc, and also to the emerge(1)
man page for information about the related --ignore-built-slot-operator-deps and
--rebuild-if-new-slot options.
portage-2.1.10
-------------
* Improve handling of repositories/overlays for cases in which the same ebuild
is provided by multiple repositories but with different masking status, and
support for repository constraints on atoms (atom::repo) in configuration
files.
* Add emerge --rebuild-if-* options that trigger rebuilds of reverse
dependencies when packages are rebuilt or updated. Related --rebuild-exclude
and --rebuild-ignore options can be used to avoid rebuilds for specific
packages.
* Add emerge --reinstall-atoms, --useoldpkg-atoms, and --usepkg-exclude options
which can be used to alter selection rules for specific packages.
* Add FEATURES=parallel-install and ebuild-locks, allowing for greater
parallelization when installing packages (by using finer-grained locks).
portage-2.1.9.27
-------------
* Add support for EAPI 4. Refer to the PMS EAPI Cheat Sheet, portage's html
docs installed with USE=doc, or `man 5 ebuild` for more info about EAPI 4.
Bug #273620 tracks EAPI 4 implementation in portage.
portage-2.1.9
-------------
* There is a new ipc (inter-process communication) USE flag which is enabled
by default. This allows portage to communicate with running ebuild processes,
for things like best_version, has_version, and die calls in nested processes.
This flag should remain enabled unless it is found to be incompatible with a
specific profile or environment. When enabled, it fixes bug #278895,
bug #315615, and makes subshell die support more robust (so that repoman's
ebuild.nesteddie check is irrelevant).
portage-2.1.8
-------------
* The top-level __init__.py for the portage python package has been split into
many smaller python modules, making the code easier to navigate and allowing
small parts of the portage api to be imported with less overhead.
portage-2.1.7.17
-------------
* Add support for EAPI 3. This adds support for installation prefix, including
new EPREFIX, ED, and EROOT variables which are used by econf and einstall
helpers. Also, EAPI 3 adds xz extension support to the unpack helper.
portage-2.1.7
-------------
* Add license visibility filtering (GLEP 23)
* Add --accept-properties option for emerge which allows you to use
--accept-properties=-interactive in order to temporarily exclude
interactive updates.
* Add support for Python 3.0. At least Python 2.6 is now required in order to
support the new syntax which is used by Python 3.0.
portage-2.1.6
-------------
* Add support for a new EAPI="2" value. For more information about new EAPI
features, refer to the "Ebuild" chapter of the html documentation that is
installed with portage.
* Add PORTAGE_IONICE_COMMAND setting for make.conf which is called to adjust
IO priority on portage and it's subprocesses.
* Add emerge --jobs and --load-average options which specify behavior
for building packages in parallel or for generating metadata in parallel
with emerge --regen.
* Add emerge --keep-going option to 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. The --skipfirst option automatically drops
packages in the same way, and also drops any masked packages.
* Add git and subversion support for repoman.
* It is now possible to use `emerge <file>` to reinstall the package that
installed a particular file. Package contents entries are indexed to
improve performance. A command such as `emerge /lib/modules` can serve
as a decent substitute for module-rebuild.
* Namespace sanitizing: move all portage related code into portage.* namespace,
rename portage_foo modules to portage.foo (but keep symlinks for compability)
* Add support for news items (GLEP 42)
* Add FEATURES=protect-owned which is identical to the collision-protect
feature except that files may be overwritten if they are not explicitly
listed in the contents of a currently installed package.
portage-2.1.5
-------------
* For extra careful dependency handling, emerge has a new --complete-graph
option that causes it to consider the deep dependencies of all packages from
the system and world sets. With this option enabled, emerge will bail out
if it determines that the given operation will break any dependencies of
the packages that have been added to the graph. Unlike the --deep option,
the --complete-graph option does not cause any more packages to be updated
than would have otherwise been updated with the option disabled.
* Blockers are now resolved automatically in many more cases
than before. When it's safe, blocked packages are uninstalled
automatically so that users are no longer inconvenienced with the
task. Automatically uninstalled packages are displayed in the merge
list, marked "uninstall" and highlighted in red. With the --tree
option enabled, it's possible to see which package(s) caused other
ones to be automatically uninstalled.
* The dependency resolver now has a feedback mechanism that helps make atom
selections more consistent with previous selections that have been added to
the graph. This solves some common cases of bug #1343.
portage-2.1.4
-------------
* After the initial setup phase, the original ebuild and eclasses are no
longer needed because the same ebuild environment is reused for the
entire lifecycle of the package, including uninstallation.
* The emerge --search action supports searching of both installed and binary packages
The --usepkg and --usepkgonly options control which repositories are searched.
portage-2.1.3
-------------
* Allow per-module setting of PORTAGE_ELOG_CLASSES
* Add new elog module "echo" to simply display messages when emerge exits
* Add ** as new token for package.keywords to bypass the keyword visibility layer
* USE_EXPAND variables such as LINGUAS support a * wildcard that will enable
all of the corresponding flags that are listed in IUSE for a given package.
USE_EXPAND wildcards such as linguas_* are supported in USE and package.use.
* The merge process preserves the modification timestamp of files that it
installs. The unmerge process will not uninstall files that are claimed by
another package in the same slot.
* PDEPEND is now installed as soon as possible so that it behaves more like
RDEPEND. This makes PDEPEND more useful for breaking the dependency cycles
that are sometimes triggered by RDEPEND and DEPEND.
* Enable "echo" and "save_summary" elog modules by default
* Fix -* handling in package.keywords to work as intended (reset the accepted
keywords list), also see RELEASE-NOTES.
* Make elog functionality available to python code
portage-2.1.2
-------------
* Ebuilds support default USE flags via +flag in IUSE.
* New-style virtuals are now usable for packages that depend on themselves for
bootstrap.
* Profiles support multiple inheritance and package.use.
* CONFIG_PROTECT and CONFIG_PROTECT_MASK both support files (not just
directories).
* Collision protection handles symlinks properly.
* Dependencies can be satisfied by installed packages that do not have matching
ebuilds in the portage tree or overlay.
* Emerge automatically ignores blockers that are made irrelevant by an upgrade.
* Emerge supports "reverse blocker detection" which means that the blockers of
installed packages will always be respected.
* Emerge builds a complete dependency graph in order to ensure correct merge
order and detection of circular dependencies.
* The world and system sets allow automatic update of all installed slots.
* DEPEND atoms support SLOT dependencies of the form ${CATEGORY}/${PN}:${SLOT}.
* Development: Extend PYTHONPATH support to allow overriding the hardcoded
/usr/lib/portage/pym for development/testing purposes
* New "finalize" hook for elog modules enabling modules to perform actions on
shutdown (like dispatching collected messages).
* New elog modules mail_summary and save_summary that act like the mail/save
modules except that they merge messages from multiple packages in a single
file/mail.
* New QA loglevel and matching eqawarn function
* `ebuild foo test` now always runs src_test if available
* If DOC_SYMLINK_DIR is set portage installs symlinks to html documention there
* FEATURES="test" automatically implies USE="test".
portage-2.1.1
-------------
* Profiles support use.force, package.use.force, and package.use.mask files.
portage-2.1 (ongoing via pre releases)
------------
* FEATURES="confcache" integration; global caching to speed up configure calls,
requires dev-util/confcache
* elog framework and accompanying modules for logging ebuild warnings, errors
and general notices. Collects eerror/ewarn/elog/einfo messages.
* New elog function (should replace einfo in many cases)
* version syntax enhancements allowing multiple suffixes and a new 'cvs'
version prefix for denoting "live sources" ebuilds.
* config files as directories enabling more flexible settings management.
* Addition of an register_die_hook method that allows ebuild/eclasses to
register functions to be called for better debugging on errors.
* Addition of pre and post user hookable functions for each ebuild phase, accessible
via portage bashrc. Example would be pre_src_unpack .
* cache refactoring- runtime improvement from 35% -> 65%.
* Intelligently handle and display USE_EXPAND-based IUSE variables.
* FEATURES="parallel-fetch". Download in parallel to compilation.
* Include a "changed or new" USE flag output when --verbose isn't specified.
* Support for splitting out debug information into separate files in
/usr/lib{,32,64}.
* exec subsystem refactoring (now with less bugs!)
* Added sha256 and rmd160 hashes for digests/manifests
* Make --emptytree only apply to ${ROOT} rather than always including /.
* Allow packages to be upgraded that are only depended on via a
"|| ( =cat/pkg-1* =cat/pkg-2* )" construct.
* Ebuild output is no longer cut off early when using PORTAGE_LOGDIR.
* Distfiles indirection- $DISTFILES access goes through a tmp dir to fail
access to files not listed in SRC_URI.
* Emerge now uses --resume to restart itself after portage upgrade.
* Atomic file updates via the new atomic_ofstream class.
* Global updates and fixpackages performance optimizations.
* Tests show that file locking is now more reliable.
* A bash call stack is printed when an ebuild dies in ebuild.sh.
* New rsync option handling by using a generic PORTAGE_RSYNC_EXTRA_OPTS variable
* Manifest2 support that will allow digest-* files to be eliminated from the tree.