Add note about repos.conf eclass overrides.
[portage.git] / RELEASE-NOTES
index 030ebfd1f6cca202f372d54efc3f3787c5baf005..ec6ed4deddcbd59104b2fe139a544e973425a66a 100644 (file)
@@ -4,25 +4,115 @@ Features/major bugfixes are listed in NEWS
 portage-2.2
 ==================================
 
-* Portage now requires >=python-2.4, but doesn't need pycrypto anymore if 
-  >=python-2.5 is installed and openssl supports the rmd160 hash.
+* 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" no longer includes "system" unconditionally, but you can add
+  "@system" to the world_sets file to restore the old state.
+
+portage-2.1.6.11
+==================================
+* If you want overlay eclasses to override eclasses from other repos then see
+  the portage(5) man page for information about the new layout.conf and
+  repos.conf configuration files.
+
+portage-2.1.6
+==================================
+
+* The default behavior has changed for `emerge world` and `emerge system`
+  commands. These commands will reinstall all packages from the given set
+  unless an option such as --noreplace, --update, or --newuse is specified.
+* FEATURES=fixpackages is now enabled by default via make.globals. Set
+  FEATURES="-fixpackages" in make.conf if you'd like to disable it.
+* File collision protection is now enabled by default via make.globals with
+  FEATURES=protect-owned. In order to protect files from be overwritten or
+  removed a inappropriate times, it is recommended to leave protect-owned
+  (or the similar collision-protect feature) enabled at all times. If you
+  want to disable collision protection completely (not recommended), then
+  you need to ensure that neither protect-owned nor collision-protect are
+  enabled.
 * 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.
+  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="-*", 
+  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 a ebild 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.
+  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.
+* When generating manifests, existing distfiles digests will not be updated
+  in cases when the current file in $DISTDIR does not match. In order to
+  force digests to be updated, run `ebuild --force <ebuild file> manifest`.
+  This is a safety measure which protects valid distfiles digests from being
+  accidentally replaced by invalid digests.
+* If you have overridden FETCHCOMMAND or RESUMECOMMAND variables, for
+  compatibility with EAPI 2, you must ensure that these variables are written
+  such that the downloaded file will be placed at \"\${DISTDIR}/\${FILE}\".
+  Refer to make.conf(5) for information about FETCHCOMMAND and RESUMECOMMAND.
+
+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.
+
+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
@@ -37,6 +127,12 @@ portage-2.1.3
   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
 ==================================