ebuild: fetch: Flatten conditionals in _get_fetch_resume_size
[portage.git] / RELEASE-NOTES
index c20dfc9181c6f73b61babc5bb79bef7613f312d9..8a35b556d1d6318a86703fe8d40301419ecaa0ea 100644 (file)
@@ -1,6 +1,248 @@
 Release Notes; upgrade information mainly.
 Features/major bugfixes are listed in NEWS
 
+portage-2.2.8
+==================================
+* Bug Fixes:
+    - Bug 488972 - sys-apps/portage-2.2.7:
+      "egencache --update --rsync" does not create metadata/timestamp.chk
+    - For a complete list of bug fixes, changes, See the Changelog installed at
+      /usr/share/doc/portage-2.2.8/ChangeLog.bz2
+
+
+portage-2.2
+==================================
+
+* 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.
+
+portage-2.1.13
+==================================
+
+* FEATURES=userpriv and usersandbox are enabled by default.
+* FEATURES=usersync is enabled by default.
+* New sync-cvs-repo, sync-type and sync-uri attributes in repos.conf replace
+  SYNC variable.
+
+portage-2.1.12
+==================================
+
+* FEATURES=preserve-libs is enabled by default.
+* ACCEPT_RESTRICT variable may be used to mask packages based on RESTRICT.
+
+portage-2.1.11
+==================================
+* User-defined package sets can now be created by placing files in the
+  /etc/portage/sets/ directory. Refer to the emerge(1) and portage(5) man
+  pages for more information.
+* The "selected" package set, which includes packages listed in
+  /var/lib/portage/world, has been extended to include nested sets that may
+  be listed /var/lib/portage/world_sets.
+
+portage-2.1.10.61
+==================================
+* FEATURES=config-protect-if-modified is now enabled by default. This causes
+  the CONFIG_PROTECT behavior to be skipped for files that have not been
+  modified since they were installed.
+
+portage-2.1.10.27
+==================================
+* FEATURES=fixpackages is now enabled unconditionally. Set --package-moves=n
+  in EMERGE_DEFAULT_OPTS if you need to temporarily avoid package moves for
+  some reason.
+
+portage-2.1.10
+==================================
+* The emerge --autounmask option is now enabled by default. The
+  --autounmask-write option can be used to have config changes automatically
+  written to the appropriate files (respecting --ask and CONFIG_PROTECT). If
+  --autounmask behavior is not desired as the default behavior, then it can
+  be disabled by adding --autounmask=n to the EMERGE_DEFAULT_OPTS variable in
+  make.conf. Refer to the emerge(1) man page for more information.
+
+portage-2.1.9
+==================================
+* The emerge "world" set now includes separate "selected" and "system" sets,
+  where the "selected" set includes packages listed in /var/lib/portage/world.
+* Package set names in emerge arguments have to be prefixed with @ (exceptions:
+  'world' and 'system' can be used without the prefix).
+* Configuration files now support atoms with wildcards inside the category and
+  package name parts of the atoms.
+* The functionality of the autounmask program is emulated by the new emerge
+  --autounmask option, which outputs required configuration changes for
+  package.accept_keywords and package.use.
+* The new emerge --exclude option allows packages to be excluded from the
+  dependency resolution. Doing so might result in a fatal error. See the
+  emerge(1) man page for details.
+* Per-package environment variables can be set with the new package.env
+  configuration file in /etc/portage/. See the portage(5) man page for details.
+* Support for per-package bashrc files in /etc/portage/env. See the portage(5)
+  man page for details.
+* The package.keywords configuration file in /etc/portage/ is now deprecated.
+  Instead use the package.accept_keywords file which has the same format and
+  behavior. See the portage(5) man page for details.
+* FEATURES="fixlafiles" (enabled by default): Rewrites newly installed .la
+  files in the same way dev-util/lafilefixer does. Note that this won't fix
+  your installed .la files.
+
+portage-2.1.8
+==================================
+* The new --rebuilt-binaries option will replace installed packages with binary
+  packages that have been rebuilt. Rebuilds are detected by comparison of
+  BUILD_TIME package metadata. This option is enabled automatically when using
+  binary packages (--usepkgonly or --getbinpkgonly) together with --update and
+  --deep.
+
+portage-2.1.7
+==================================
+* Default behavior for emerge commands has changed so that packages are only
+  updated when necessary. In order to ensure that all packages are updated
+  when possible, you must now specify the -u/--update option. See bug #275945
+  for the rationale behind this change.
+* If using python3, you may notice that some types of program output which
+  require a tty device (like the wget progress bar) will be disabled. This
+  is due to an upstream python issue: http://bugs.python.org/issue5380. See
+  bug #287648 for more information.
+* Licenses in the @EULA license group are now masked by the default
+  ACCEPT_LICENSE setting. You can unmask all licenses by setting
+  ACCEPT_LICENSE="*" in /etc/make.conf. See the make.conf(5) man page for
+  more information about ACCEPT_LICENSE.
+
+portage-2.1.6.12
+==================================
+* 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.
+* -* 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.
+* 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
+* 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,9 +251,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 --upgradeonly has been removed, use /etc/portage/package.* 
+* 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 
+* '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.
+