News (mainly features/major bug fixes)

portage-2.2
-------------

* Add link level dependency awareness to emerge --depclean and --prune actions
  in order to protect against uninstallation of required libraries.
  packages in the same way, and also drops any masked packages.
* Add license visibility filtering (GLEP 23)
* Add support for generic package sets (also see RELEASE-NOTES)

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 link level dependency awareness to emerge --depclean and --prune actions
  in order to protect against uninstallation of required libraries.
* 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)

portage-2.1.5
-------------

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