remove TODO list as it's not maintained anyway
[portage.git] / RELEASE-NOTES
index b449272f2cc493d7019571ba6367128cf0bb4df2..a7ff16ad87de92ab360f60e31d3067943b376ce4 100644 (file)
@@ -1,6 +1,137 @@
 Release Notes; upgrade information mainly.
 Features/major bugfixes are listed in NEWS
 
+portage-2.2
+==================================
+
+* The python namespace for portage has been sanitized, all portage related code
+  is now contained within the portage namespace. External script should be updated
+  accordingly, though links exist for backward compability.
+* -* support in package.keywords was changed as it was inconsistent with 
+  ACCEPT_KEYWORDS behavior (also see http://dev.gentoo.org/~genone/docs/KEYWORDS.stupid).
+  Previously having -* in package.keywords matched packages with KEYWORDS="-*", 
+  now it resets the ACCEPT_KEYWORDS list for the given atom like it does when
+  used in ACCEPT_KEYWORDS.
+  For packages that don't specify any other KEYWORDS you can use the new ** token
+  as documented in portage(5) to disable KEYWORDS filtering completely.
+* Portage now warns if an ebuild repository does not have a name, as several new
+  features in 2.2 make use of or require named repositories. The repository name
+  is stored in profiles/repo_name in each repository.
+* Package set support: There are several important notes regarding package sets:
+  - setnames have to be prefixed with @ (exceptions: 'world' and 'system' can be 
+    used without the prefix)
+  - they may currently only include simple and versioned atoms or other sets, use
+    conditionals or any-of constructs aren't possible yet
+  - sets can be referenced either in other file-based sets or as argument to emerge, but
+    not in ebuilds, config files or other tools at this time.
+  - packages won't be unmerged if they are referenced by an installed package
+    set (with the exception of the world set, and installed being determined
+       by the world_sets file).
+* "world" does no longer include "system" unconditionally, but you can add
+  "@system" to the world_sets file to restore the old state.
+
+portage-2.1.5
+==================================
+
+* The pkg_postinst phase is now called after the previous version of a
+  package has been removed. As a consequence, it is no longer possible
+  to call has_version in pkg_postinst to detect whether the current
+  install operation is an upgrade or downgrade. If this information is
+  needed during the pkg_postinst phase, do the has_version call in an
+  earlier phase (such as pkg_preinst) and store the result in a global
+  variable to be accessed by pkg_postinst when it is called. Bug #226505
+  tracks all issues related to this phase execution order change.
+
+* The metadata-transfer feature is now disabled by default. This disables the
+  "Updating Portage cache" routine that used to run at the tail end of each
+  `emerge --sync` operation. If you use something like the sqlite module and
+  want to keep all metadata in that format alone (useful for querying), enable
+  FEATURES="metadata-transfer" in make.conf. You should also enable
+  FEATURES="metadata-transfer" if you have any eclasses from PORTDIR_OVERLAY
+  that override eclasses from PORTDIR (in this case, you may have disabled
+  a relevant warning message by setting PORTAGE_ECLASS_WARNING_ENABLE="0" in
+  make.conf).
+
+* The parallel-fetch feature is now enabled by default. It is optimized
+  to avoid doing redundant checksums for previously downloaded files that have
+  the correct size. Run `tail -f /var/log/emerge-fetch.log` in a
+  terminal to view parallel-fetch progress. Add FEATURES="-parallel-fetch"
+  to /etc/make.conf if you want to disable this feature.
+
+* 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.
+
+portage-2.1.4.1
+==================================
+
+* If you have an overlay then you should remove **/files/digest-*
+  files (Manifest1) because they are no longer supported.
+* If earlier versions of portage will be used to generate manifests
+  for your overlay then you should add a file named manifest1_obsolete
+  to the root of the repository in order to disable generation of the
+  Manifest1 digest files.
+
+portage-2.1.4
+==================================
+
+* Visibility filtering is now supported for binary packages, so masking behavior
+  is essentially equivalent to that of ebuilds.
+* There is no need to have a complete portage tree available when installing binary
+  packages or uninstalling packages, but a warning message will still be displayed if
+  it appears that a valid profile is not available.
+
+portage-2.1.3
+==================================
+
+* Portage now requires >=python-2.4, but doesn't need pycrypto anymore if
+  >=python-2.5 is installed and openssl supports the rmd160 hash.
+* The "save_summary" and "echo" elog modules are now enabled by default. Setting
+  PORTAGE_ELOG_SYSTEM in make.conf will override this, so if you don't want elog
+  set PORTAGE_ELOG_SYSTEM="" in make.conf
+* The unmerge process will remove any file that is not claimed by another
+  package in the same slot and is not protected by CONFIG_PROTECT, even if the
+  modification time or checksum differs from the file that was originally
+  installed.  The old behavior is still available by adding -unmerge-orphans
+  to FEATURES.
+* The world file now supports slot atoms such as 'sys-devel/gcc:3.4'. In some
+  cases, emerge --depclean may remove slots that it would not have removed
+  in the past. The emerge --noreplace command can be used to add an atom to the
+  world file and prevent matching packages from being removed.  A slot atom
+  will be recorded in the world file for any atom that is precise enough to
+  identify a specific slot.
+* For safer operation, emerge --prune will not unmerge packages that have
+  reverse dependencies. Use --verbose to display reverse dependencies. Use
+  --nodeps to completely ignore dependencies.
+* emerge --depclean now accepts atoms and will unmerge only the specified
+  packages if nothing depends on them. Use --verbose to display reverse
+  dependencies.
+
+portage-2.1.2
+==================================
+
+* Depending on the number of packages installed, users may notice a difference
+  in the time taken for dependency calculations.  This performance penalty is
+  due to the addition of important new features which include the ability to
+  detect reverse blockers, the building of a complete dependency graph, and the
+  ability to use installed packages to satisify dependencies even after their
+  ebuilds have been removed from the portage tree.
+* emerge does not necessarily update build time dependencies that are not
+  strictly required.  See the --with-bdeps option in the emerge(1) man page.
+
+portage-2.1.1
+==================================
+
+* emerge --search doesn't use regular expressions now anymore by default, so
+  emerge --search dvd+rw-tools now works as expected. Regular expressions can be enabled
+  by prefixing the search string with %. 
+* emerge --depclean algorithm is much safer than the old one.
+* emerge --newuse detects changes in IUSE that previously went undetected.
+
 portage-2.1
 ==================================
 
@@ -9,10 +140,18 @@ portage-2.1
 * USE flag output ordering has changed.  The old ordering is now an option
   by the name of --alphabetical.  Adding the option to EMERGE_DEFAULT_OPTS
   in make.conf will restore the old behaviour permanently.
-* The deprecated --inject has been removed, use /etc/portage/profiles/package.provided
+* The deprecated --inject has been removed, use /etc/portage/profile/package.provided
 * The deprecated --upgradeonly has been removed, use /etc/portage/package.* 
   instead.
 * 'emerge sync' has been deprecated, use 'emerge --sync' instead (same 
   for other actions)
 * Tools that call emerge should override the EMERGE_DEFAULT_OPTS environment
   variable or use the emerge --ignore-default-opts option.
+* rsync option handling has been redesigned, instead of RSYNC_* variables
+  use PORTAGE_RSYNC_EXTRA_OPTS from now on.
+* autouse (use.defaults) has been deprecated by specifying USE_ORDER in make.defaults
+  Users may still turn this back on by specifying USE_ORDER="env:pkg:conf:auto:defaults"
+  in make.conf.  Interested in figuring out what use flags were turned off?  Check out
+  /usr/portage/profiles/base/use.defaults and other use.defaults files that correspond 
+  to your profile.
+