News (mainly features/major bug fixes) portage-2.2 ------------- * Allow per-module setting of PORTAGE_ELOG_CLASSES * Namespace sanitizing: move all portage related code into portage.* namespace, rename portage_foo modules to portage.foo (but keep symlinks for compability) * Add license visibility filtering (GLEP 23) * Add new elog module "echo" to simply display messages when emerge exits * 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. * Experimental support for preserving old library files on package upgrades based on FEATURES=preserve-libs, USE AT YOUR OWN RISK!!! * Make elog functionality available to python code * Add support for news items (GLEP 42) portage-2.1.3 ------------- * 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. 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 PORT_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.