Release Notes; upgrade information mainly.
Features/major bugfixes are listed in NEWS

NOTE: As of Portage 3.0.31, this file is obsolete and will no longer be updated.
      Please see the NEWS file instead!

portage-3.0.29
==================================
    - Bug 811462: fixes to detect package (and binpkg) corruption due to broken
                  scanelf.

portage-3.0.28
==================================
    - Bug 816291: revert FILESDIR to symlink to fix SELinux regression.

portage-3.0.27
==================================
    - Bug 815871: fix creating FILESDIR when FEATURES=keepwork is used

portage-3.0.25 (yanked)
==================================
    - Bug 703520: output a QA notice when eend is called without
                  an argument
    - Bug 815196: files copied to shadow FILESDIR are now owned
                  by portage:portage to fix access issues

portage-3.0.24
==================================
    - Bug 814857: create a local copy of FILESDIR in order to avoid
                  leaking xattrs from user's repository
    - Bug 811462: fix ignoring scanelf(1) exit status when generating
                  NEEDED* entries

portage-3.0.20
==================================
    - Bug 777492: PORTAGE_NICENESS: Consider autogroup scheduling
    - Bug 794166: setup.py: prefer setuptools over distutils

portage-3.0.19
==================================
    - Bug 520378: allow emerge --fetchonly to log to emerge-fetch.log
    - Bug 698244: portage(5) document user patch / eapply_user
    - Bug 781854: Suggest PORTAGE_LOG_FILTER_FILE_CMD cat fallback
    - Bug 782724: sort emerge --unmerge order for determinism
    - Bug 783957: lazily evaluate cnf_* variables in tests
    - Bug 784566: make emerge insensitive to relative order of optional
                  and positional arguments
    - Bug 787545: emerge CTRL C may be ignored when running pkg_pretend
    - Bug 787563: ebuild-ipc could handle KeyboardInterrupt
    - Bug 788967: emerge --jobs= triggers TypeError

portage-3.0.18
==================================
* Bug Fixes:
    - Bug 651208 profile-repo-deps profile-formats support
    - Bug 719260 remove glsa --quiet blank line
    - Bug 722748 suppress emerge --oneshot portage suggestion

portage-3.0.17
==================================
* Bug Fixes:
    - Bug 773469 emerge --binpkg-respect-use=y implies --autounmask-use=n

portage-3.0.16
==================================
* Bug Fixes:
    - Bug 721680 Add emirrordist shelve dump/restore
	- Bug 749333 PORTAGE_REPOSITORIES: don't override repos with aliases
	- Bug 756778 emirrordist --content-db for content-hash layout support
	- Bug 772785 don't enable binpkg-multi-instance for existing installs
	- Bug 772806 prevent infinite loop after empty os.path.dirname result

portage-3.0.15
==================================
* Bug Fixes:
    - Bug 715112 default enable FEATURES=binpkg-multi-instance
    - Bug 756778 content-hash distfiles layout
    - Bug 766459 emirrordist: prevent distfiles_db _pkg_str pickle problems
    - Bug 766767 emaint --fix merges: add -y, --yes option
    - Bug 766773 emerge: disable --autounmask-license by default
    - Bug 767913 portage.getpid: call os.getpid() lazily
    - Bug 770712 PopenProcess: use call_soon for _async_waipid in _start
    - Bug 771549 prevent USE="${USE} ..." misbehavior

portage-3.0.14
==================================
* Bug Fixes:
    - Bug 571126 KeyError during package moves "global updates"
                 triggered by FEATURES=binpkg-multi-instance (same
                 root cause as bug 765847)
    - Bug 739004 Add @changed-subslot package set
    - Bug 765847 Spurious package file renames during application of
                 package moves with FEATURES=binpkg-multi-instance
    - Bug 766012 Copy on write when applying a package move to a binary
                 package, so that the old version of a binary package
                 will remain available until eclean-pkg deletes it

portage-3.0.13
==================================
* Bug Fixes:
    - Bug 763339 always allow event loops to run in threads
    - Bug 764764 fix virtual/dist-kernel slot operator rebuilds
    - Bug 764905 wrap asyncio child watcher for thread safety

portage-3.0.12
==================================
* Bug Fixes:
    - Bug 758740 Use default asyncio event loop in child processes
    - Bug 758755 Use default asyncio event loop in API consumer threads

portage-3.0.11
==================================
* Bug Fixes:
    - Bug 756961 handle dev-lang/rust[system-bootstrap] dependency cycle
    - Bug 757306 backtracking: fix virtual choices for circular deps

portage-3.0.10
==================================
* Bug Fixes:
    - Bug 753497 profiles should not inherit deprecated messages
    - Bug 754903 minimize use of installed packages to break cycles
    - Bug 755950 compare_files: handle missing xattr support

portage-3.0.9
==================================
* Bug Fixes:
    - Bug 199722 Enable QA Notice for deprecated hasq/useq in *rm phases
    - Bug 704498 Fix pid-sandbox to handle Ctrl+Z correctly
    - Bug 752066 Add emerge --quickpkg-direct-root option
    - Bug 752147 Fix make.conf to expand special *ROOT variables
    - Bug 752153 Add @golang-rebuild package set

portage-3.0.8
==================================
* Bug Fixes:
    - Bug 404157 emerge: --keep-going support pkg_pretend failures
    - Bug 644246 Add mercurial sync support
    - Bug 710432 emerge: Enable parallel-fetch during pkg_pretend
    - Bug 743115 emerge: Fix slot conflict backtracking to group similar
      missed updates into a single backtracking try
    - Bug 743631 emerge: Fix slot conflict backtracking to prefer
      choices that satisfy all dependencies

portage-3.0.7
==================================
* Bug Fixes:
    - Bug 737470 egencache: add --external-cache-only option
    - Bug 741474 get_mirror_url: urlquote only for ftp, http, and https
    - Bug 742446 support riscv ilp32 and ilp32d ABIs

portage-3.0.6
==================================
* Bug Fixes:
    - Bug 668302 binrepos.conf: support fetchcommand customization
    - Bug 668334 Add binrepos.conf to replace PORTAGE_BINHOST
    - Bug 704416 env-update: create systemd user-session environment
    - Bug 737470 egencache --update-pkg-desc: emulate esync --verbose
    - Bug 737480 emerge --search: auto-detect regular expressions
    - Bug 739908 @change-deps: fix erroneous repeated rebuilds
    - Bug 740588 make.conf: Treat __* variables as local
    - Bug 740898 PORTAGE_BINHOST urlopen proxy support
    - Bug 740904 rsync and gemato proxy support

portage-3.0.5
==================================
* Bug Fixes:
    - Bug 439688 dephgraph: Allow elimination of highest version after
      slot conflict, which prevents unecessary rebuilds for dev-lang/go
      after backtracking for a missed update
    - Bug 739540 Use cached portage.getpid() function to avoid syscalls

portage-3.0.4
==================================
* Bug Fixes:
    - Bug 737698 fix hang for API consumers, involving support for local
      event loops which may run in threads

portage-3.0.3
==================================
* Bug Fixes:
    - Bug 448462 repoman: avoid "RuntimeError: Event loop is closed"
      after SIGINT with --jobs > 1.
    - Bug 699256 emerge: Remove deprecated --changelog option
    - Bug 699256 emerge: Add short -l option for --load-average
    - Bug 711174 SpawnProcess: fix _cancel to cleanup PipeLogger quickly

portage-3.0.2
==================================
* Bug Fixes:
    - Bug 711174 Identified and fixed some FEATURES=compress-build-logs
      corruption issues
    - Bug 734990 Fix sync-rcu to recover from removed sync-rcu-store-dir
    - Bug 735626 Add example postsync hook to call egencache
      --update-pkg-desc-index
    - Bug 736334 Add fork safety to sqlite cache module

portage-3.0.1
==================================
* Bug Fixes:
    - Bug 730192 Replace os.fork with multiprocessing.Process, and fix
      regression in portage-3.0.0 involving eerror messages for fetch
      failures

portage-3.0.0
==================================
* Bug Fixes:
    - Bug 703698 Improve repos.conf handling of boolean settings
    - Bug 721516 ecompress complains about compressed files that have
          been excluded by docompress -x
    - Bug 729852 Set XTerm titles for konsole
    - Bug 731114 Drop support for python2.7
    - Bug 731246 man ebuild(5) has incorrect example of $P and $PN
    - Bug 732378 Use lru_cache for use_reduce, vercmp, and catpkgsplit
    - Bug 733154 List of ignored warnings in .desktop files should be
          updated for compatibility with >=desktop-file-utils-0.25

portage-2.3.103
==================================
* Bug Fixes:
    - Bug 709746 set non-blocking for build_logger stdin in EbuildPhase
                 _elog method
    - Bug 727522 ecompress: fix "Argument list too long" for sed

portage-2.3.102
==================================
* Bug Fixes:
    - Bug 716636 Fix emerge hang triggered by unsafe remove_reader and
      remove_writer calls related to bug 709746

portage-2.3.101
==================================
* Bug Fixes:
    - Bug 661518 repos.conf: Add bool sync-openpgp-key-refresh option
    - Bug 709746 New PORTAGE_LOG_FILTER_FILE_CMD variable specifies a
          command that filters build log output to a log file
    - Bug 719810 Escape percent-signs in mirror url
    - Bug 725934 _better_cache._scan_cat: Avoid stat calls
    - Bug 728046 ecompress: Prefix eqawarn messages with QA Notice

portage-2.3.100
==================================
* Bug Fixes:
    - Bug 715108 Change default BINPKG_COMPRESS to zstd
    - Bug 719456 Add dependency on app-arch/zstd
    - Bug 720866 Do not set PKG_CONFIG_PATH
    - Bug 721402 Hostname UnicodeEncodeError surrogates not allowed
    - Bug 721516 Suppress precompressed QA notice for docompress -x

portage-2.3.99
==================================
* Bug Fixes:
    - Bug 717140 dev-libs/libgit2 upgrade/downgrade loop triggered by
      dev-libs/libgit2-glib dependency on <dev-libs/libgit2-1:0=[ssh]

portage-2.3.98
==================================
* Bug Fixes:
    - Bug 711322 always wakeup for empty merge queue

portage-2.3.97
==================================
* Bug Fixes:
    - Bug 709746 temporarily remove PORTAGE_LOG_FILTER_FILE_CMD support
    - Bug 715162 infer implicit soname from file basename, for musl
    - Bug 716636 emerge hangs in releases after 2.3.89-r1

portage-2.3.96
==================================
* Bug Fixes:
    - Bug 714480 DirectoryNotFound: /var/tmp/portage/category-directory

portage-2.3.95
==================================
* Bug Fixes:
    - Bug 713100 fix FEATURES=userpriv $HOME permissions
    - Bug 713726 emerge --info: Filter variables for credentials
    - Bug 713818 eqawarn: output to build log regardless of --quiet

portage-2.3.94
==================================
* Bug Fixes:
    - Bug 692492 secure ebuild ${D} permissions
    - Bug 710444 omit zstd --long=31 for decompress on 32-bit arch
    - Bug 712298 respect emerge --deep=<depth> with --update

portage-2.3.93
==================================
* Bug Fixes:
    - Bug 711322 schedule exit listeners via call_soon
    - Bug 711688 BinpkgFetcher sync_timestamp KeyError regression

portage-2.3.92
==================================
* Bug Fixes:
    - Bug 601252 emerge --pretend --fetchonly event loop recursion
    - Bug 709334 socks5-server.py async and await coroutine syntax
    - Bug 709746 Rename PORTAGE_LOG_FILTER_FILE_CMD from
      PORTAGE_LOG_FILTER_FILE
    - Bug 711322 emerge hang after src_install
    - Bug 711362 egencache AttributeError: 'NoneType' object has no
      attribute 'ebuild'
    - Bug 711400 AttributeError: 'NoneType' object has no attribute
      'depth'

portage-2.3.91
==================================
* Bug Fixes:
    - Bug 705910 remove pdb.set_trace() from exception handler
    - Bug 711174 FEATURES=compress-build-logs EOFError regression
    - Bug 711178 emerge --getbinpkg event loop recursion regression

portage-2.3.90
==================================
* Bug Fixes:
    - Bug 601252 DISTDIR NFS root_squash support
    - Bug 709746 new PORTAGE_LOG_FILTER_FILE_CMD variable specifies a
          command that filters build log output to a log file
    - Bug 710076 einstalldocs: Fix test for DOCS being unset

portage-2.3.89
==================================
* Bug Fixes:
    - Bug 649622 depclean: ensure consistency with update actions, via
      consistent order of dependency traversal

portage-2.3.88
==================================
* Bug Fixes:
    - Bug 649622 prevent unecessary installation of virtual/w3m followed
      by removal by depclean
    - Bug 705736 preserve-libs: prevent unecessary preservation of system
      libraries which a package bundles
    - Bug 707820 generate API documentation with sphinx-apidoc
    - Bug 708448 support FEATURES=qa-unresolved-soname-deps so that the
      QA warning from bug 704320 can be disabled
    - Bug 708660 phase-helpers.sh: avoid passing an empty root value to
      portageq when ebuild IPC is disabled

portage-2.3.87
==================================
* Bug Fixes:
    - Bug 691798 treat GLEP 81 acct-* categories like virtual
    - Bug 707108 depclean: do not eliminate upgrades


portage-2.3.86
==================================
* Bug Fixes:
    - Bug 706278 Adjust || preference for slot upgrades
    - Bug 706298 Suppress package.keywords warning for API consumers


portage-2.3.85
==================================
* Bug Fixes:
    - Bug 615594 dosym: revert deprecated prefix compat
    - Bug 704256 emerge-webrsync: chmod 755 temp dir
    - Bug 704320 Add QA check for unresolved soname dependencies
    - Bug 704848 doebuild: export SANDBOX_LOG=${T}/sandbox.log
    - Bug 705986 solve pypy / pypy-exe dependency cycle

portage-2.3.84
==================================
* Bug Fixes:
    - Bug 690436 limit scope of dropped circular dependencies, which
      should solve some cases of bug 199856 such as bug 703676 (also
      see tracker bug 689644)


portage-2.3.83
==================================
* Bug Fixes:
    - Bug 384107 adjust || preference to break dependency cycles,
      which solves bug 382421 and bug 703440
    - Bug 703348 emerge --with-test-deps: allow circular deps


portage-2.3.82
==================================
* Bug Fixes:
    - Bug 310009 emerge: Show package USE in conflict messages
    - Bug 680456 display relevant FEATURES when unshare fails
    - Bug 693454 emerge-webrsync: support gentoo-YYYYMMDD snapshots
    - Bug 702146 emerge: drop FEATURES=distcc-pump support
    - Bug 702970 emerge-webrsync: enable xz snapshots for tarsync


portage-2.3.81
==================================
* Bug Fixes:
    - Bug 681312 add emerge --implicit-system-deps <y|n> option
    - Bug 701996 fix virtual/wine handling to avoid pulling in multiple
      wine implementations in some cases


portage-2.3.80
==================================
* Bug Fixes:
    - Bug 667432 Rename DCO_SIGNED_OFF_BY config variable to SIGNED_OFF_BY.
    - Bug 674562 eapply: Drop -s option for patch.
    - Bug 689226 emerge --buildpkgonly: respect buildtime hard blockers
    - Bug 699986 emerge: add --quickpkg-direct option


portage-2.3.79
==================================
* Bug Fixes:
    - Bug 673400 emerge: fix error message for unknown options
    - Bug 698046 fetch: remove symlink created by FETCHCOMMAND_RSYNC
    - Bug 698474 fetch: respect try_mirrors parameter for local mirrors
    - Bug 699392 emirrordist: _recycle_copier_exit UnboundLocalError
    - Bug 699400 emirrordist: clean up FileCopier exception logging
    - Bug 699548 install.py: ignore -Z / --context


portage-2.3.78
==================================
* Bug Fixes:
    - Bug 697566 fetch: Use FETCHCOMMAND to fetch mirror layout.conf
    - Bug 697890 emirrordist: Fix DeletionTask layout assumptions
    - Bug 697906 emirrordist: Delete potential symlinks for all layouts
    - Bug 698046 make.globals: Change FETCHCOMMAND_RSYNC to --copy-links


portage-2.3.77
==================================
* Bug Fixes:
    - Bug 220533 Fix FEATURES=skiprocheck read-only DISTDIR support
    - Bug 646898 Support GLEP 75 mirror structure
    - Bug 658648 Disable emerge --autounmask by default, except for
                 package.use and package.license changes
    - Bug 695870 Improvements to ebuild(5) man page


portage-2.3.76
==================================
* Bug Fixes:
    - Bug 693836 erroneous firefox downgrade
    - Bug 693980 x11-module-rebuild: support SYMLINK_LIB=no
    - Bug 694000 OwnerSet: fix exclude-files support


portage-2.3.75
==================================
* Bug Fixes:
    - Bug 235970 glsa-check: add --reverse option
    - Bug 692134 glsa-check: fix truncated CVE ids in listmode
    - Bug 692746 missed virtual/libmysqlclient update
    - Bug 693242 premature backtracking termination


portage-2.3.74
==================================
* Bug Fixes:
    - Bug 587930 glsa-check: add exit code for affected GLSAs
    - Bug 688902 Add FEATURES=pkgdir-index-trusted
    - Bug 690758 Use RTNETLINK to configure the loopback interface
    - Bug 692872 glsa-check: forward port --quiet option from
      gentoolkit
    - Bug 693026 rsync: proxychains compatibility
    - Bug 693088 glsa-check: forward port remaining changes from
      gentoolkit
    - Bug 693096 emerge: deprecate --changelog option


portage-2.3.73
==================================
* Bug Fixes:
    - Bug 692698 preserve-libs: ignore dropped non-soname symlink


portage-2.3.72
==================================
* Allow ESYSROOT and BROOT in the pkg_setup phase, following a recent
  change to PMS.
* Bug Fixes:
    - Bug 463952 glsa-check: install in /usr/bin
    - Bug 646090 preserve-libs: get dep graph from EROOT
    - Bug 690484 detect internal collisions for /usr merge
    - Bug 690786 repoman: support metadata/layout.conf restrict-allowed
    - Bug 691776 unpack: Unconditionally die if an unpacker returns
      an error
    - Bug 691638 Show get/setfattr stderr
    - Bug 692024 econf: Unconditionally die on error in EAPIs 0 to 3
    - Bug 692262 QA Notice: EXPORT_FUNCTIONS is called before inherit
      in kernel-2.eclass
    - Bug 692412 emerge IndexError for ambiguous package atom with pypy


portage-2.3.71
==================================
* Bug Fixes:
    - Bug 691290 Fix RTNETLINK answers: Operation not supported messages
      when IPv6 is disabled


portage-2.3.70
==================================
* Bug Fixes:
    - Bug 233589 Support PROPERTIES=live
    - Bug 690304 dispatch-conf unicode safety
    - Bug 690446 emaint -c binhost support for binpkg-multi-instance
    - Bug 690758 network-sandbox support for AI_ADDRCONFIG


portage-2.3.69
==================================
* Bug Fixes:
    - Bug 642604 handle empty EPREFIX, ROOT, SYSROOT, etc settings
    - Bug 680810 ebuild.sh: suppress export error messages for eix-update
    - Bug 689072 default repo.conf sync-openpgp-keyserver to
      hkps://keys.gentoo.org in order to prevent key poisoning
    - Bug 689506 default repos.conf sync-webrsync-verify-signature


portage-2.3.68
==================================
* Bug Fixes:
    - Bug 687814 config: don't swallow IOError for "packages" files
    - Bug 688124 fix emerge fetch download size calculation for resume
    - Bug 688648 fix emerge --sync keyserver None message


portage-2.3.67
==================================
* Bug Fixes:
    - Bug 516016 install-qa-check.d/80libraries: Fix false positive
    - Bug 662468 Add bash ___is_indexed_array_var function
    - Bug 685482 repoman: Check IUSE in _match_use for USE defaults
    - Bug 685532 estrip: Fix inconsistent behavior with EAPI >= 7
    - Bug 685854 get_vm_info: Set C locale for subprocesses
    - Bug 686194 Recognize riscv ABIs
    - Bug 686282 estrip: Strip __gentoo_check_ldflags__ symbol
    - Bug 686356 install-qa-check.d/10ignored-flags: Fix false positive
    - Bug 686406 Fix ACCEPT_LICENSE=-* to behave as intended


portage-2.3.66
==================================
* Bug Fixes:
    - Bug 175612 download distfiles to temp file and rename atomically
    - Bug 651678 enable FEATURES=strict-keepdir behavior for new EAPIs


portage-2.3.65
==================================
* Bug Fixes:
    - Bug 478544 fix duplicate repo warning triggered by PORTDIR
    - Bug 553224 emerge --info per-package FEATURES
    - Bug 684232 don't set permissions on /dev/null emerge.log symlink


portage-2.3.64
==================================
* Bug Fixes:
    - Bug 378603 New (council approved) default locations for the Gentoo
      repository, distfiles, and binary packages


portage-2.3.63
==================================
* Bug Fixes:
    - Bug 672540 enable SIGINT in emerge exception handler
    - Bug 674932 document BDEPEND in ebuild(5) man page
    - Bug 680810 optimize bash IUSE checks by not using regexp
    - Bug 680908 repos.conf: add sync-openpgp-keyserver option
    - Bug 683040 fix distcc/network-sandbox-proxy socket permission


portage-2.3.62
==================================
* Bug Fixes:
    - Bug 678278 unprivileged sync emergelog lock permission denied


portage-2.3.61
==================================
* Bug Fixes:
    - Bug 677776 gnome2_icon_cache_update -> xdg_icon_cache_update
    - Bug 677800 Don't define a default for ACCEPT_LICENSE
    - Bug 678218 locks: handle sshfs hardlink inode numbers
    - FL-6227 cpuinfo: use better available CPU calculation


portage-2.3.60
==================================
* Bug Fixes:
    - Bug 636798 handle lock file removal on NFS


portage-2.3.59
==================================
* Bug Fixes:
    - Bug 675868 pid-sandbox: pid-ns-init TIOCSCTTY after setsid


portage-2.3.58
==================================
* Bug Fixes:
    - Bug 675868 run pid-sandbox pid-ns-init as root
    - Bug 675870 setsid for pid-sandbox process group signals
    - Bug 676014 use local ECLASS variable during ebuild inherit


portage-2.3.57
==================================
* Bug Fixes:
    - Bug 675756 emerge: compare new SLOT USE to installed SLOT
    - Bug 675826 INSTALL_MASK scalability: minimize fnmatch calls
    - Bug 675828 pid-sandbox: fix child process signal disposition


portage-2.3.56
==================================
* Bug Fixes:
    - Bug 675284 restore canonicalize func
    - Bug 675312 pid-sandbox: execute pid-ns-init as pid 1


portage-2.3.55
==================================
* Bug Fixes:
    - Bug 673794 pid-sandbox: whitelist selected pkg_* phases


portage-2.3.54
==================================
* Bug Fixes:
    - Bug 671808 rsync: fix usersync timestamp file permission issue
    - Bug 673738 fix PORTAGE_TMPDIR=/ edge case
    - Bug 673900 validate unshare calls


portage-2.3.53
==================================
* Bug Fixes:
    - Bug 585986 prepend EPREFIX PATH, omit host PATH by default
    - Bug 668538 add PORTAGE_LOGDIR alias for PORT_LOGDIR
    - Bug 669496 drop privileges for git merge
    - Bug 671472 compat_corouting save throw return
    - Bug 671824 EBUILD_PHASES: add instprep
    - Bug 672440 portage.process.spawn default env to os.environ
    - Bug 673224 ExtractKernelVersion ParseError


portage-2.3.52
==================================
* Bug Fixes:
    - Bug 603594 Run RANLIB after stripping static archives to fix LTO
    - Bug 659582 Support FEATURES=pid-sandbox
    - Bug 668206 doebuild: skip timestamp check for deleted distfiles
    - Bug 668638 *-qa-check.d: fix entering EROOT in EAPI 7
    - Bug 670082 portageq get_repo_path: fix <eroot> parameter


portage-2.3.51
==================================
* Bug Fixes:
    - Bug 666554 HardlinkQuarantineRepoStorage: exclude distfiles and packages
    - Bug 667008 delete *.ecompress for empty PORTAGE_COMPRESS
    - Bug 667072 ecompress: Detect and report colliding (un)compressed files
    - Bug 667604 move install-qa-check.d/08gentoo-paths to gentoo repo


portage-2.3.50
==================================
* Bug Fixes:
    - Bug 662070 sync-rcu support for rsync
    - Bug 666940 portdbapi: add async_xmatch method


portage-2.3.49
==================================
* Bug Fixes:
    - Bug 665038 enable has/best_version -b in any phase for prefix


portage-2.3.48
==================================
* Bug Fixes:
    - Bug 664104 fix package.env conditional RESTRICT interaction


portage-2.3.47
==================================
* Bug Fixes:
    - Bug 636674 add make.conf.example for arm
    - Bug 663848 fix bugs in FEATURES=test to USE=test mapping
    - Bug 663904 map empty ROOT environment variable to /


portage-2.3.46
==================================
* Bug Fixes:
    - Bug 630292 use gxargs for USERLAND=BSD
    - Bug 661006 SYSROOT InvalidLocation exception for binary package
    - Bug 663278 map RESTRICT=test to USE=-test


portage-2.3.45
==================================
* Bug Fixes:
    - Bug 373209 FEATURES=test/USE=test mapping via USE_ORDER
    - Bug 629398 QA Notice for executables writable by non-root user
    - Bug 634980 zstd --long=31 binary package decompression support
    - Bug 662388 asyncio.create_subprocess_exec support for python2
    - Bug 662668 emerge --keep-going AttributeError
    - Bug 663022 FileNotFoundError with FEATURES=metadata-transfer


portage-2.3.44
==================================
* Bug Fixes:
    - Bug 630292 parallel pngfix
    - Bug 661834 rsync: fix _commit_download to drop privileges
    - Bug 661838 webrsync: support sync-openpgp-key-path
    - Bug 661906 git: fix key refresh failure to trigger abort


portage-2.3.43
==================================
* Bug Fixes:
    - Bug 640058 failure to unmerge gentoo-sources include-prefixes
      directory
    - Bug 649806 eliminate redundant stat calls on profile.bashrc files
    - Bug 650814 eliminate unnecessary access syscalls on ebuilds
    - Bug 660982 repoman incorrectly reports IUSE.missing
    - Bug 661276 fix make.conf PORTDIR override when path does not exist


portage-2.3.42
==================================
* Bug Fixes:
    - Bug 552814 support shallow git pull by setting sync-depth = 1
      in repos.conf
    - Bug 659564 AttributeError unevaluated_atom with emerge
      --ignore-soname-deps=n
    - Bug 660372 GitSync: abort checkout for signature problem
    - Bug 660410 rsync: quarantine data prior to verification
    - Bug 660426 Add python2 compatible coroutine support
    - Bug 660732 GitSync: add key refresh retry


portage-2.3.41
==================================
* Bug Fixes:
    - Bug 600804 revert portage uid/gid mapping behavior for PMS
    - Bug 656542 ebuild command PermissionError from prepare_build_dirs
    - Bug 656750 PollSelectAdapter has no attribute close
    - Bug 656942 event loop recursion for emerge --nodeps --keep-going
    - Bug 657360 event loop recursion for emerge --pretend --fetch
    - Bug 657420 'str' has no attribute 'soname' for emerge --depclean
    - Bug 657422 "[Errno 7] Argument list too long" with --usepkgonly
    - Bug 657436 CancelledError triggered by Ctrl-C/SIGINT/TERM
    - Bug 658322 support trailing slash in INSTALL_MASK patterns
    - Bug 658684 fix emerge hang after unhandled exception with no tty
    - Bug 658806 compress-build-logs EOFError
    - Bug 659228 fix QA_FLAGS_IGNORED for EAPI 7


portage-2.3.40
==================================
* Bug Fixes:
    - Bug 656492 AttributeError: 'set' object has no attribute 'items'


portage-2.3.39
==================================
* Bug Fixes:
    - Bug 646190 exclude soname deps for internal libs without DT_SONAME
    - Bug 655656 signal wakeup fd BlockingIOError messages
    - Bug 655996 SELinux enhancements for musl and cleanups
    - Bug 656394 emerge -pf RuntimeError event loop is already running


portage-2.3.38
==================================
* Bug Fixes:
    - Bug 655656 signal wakeup fd BlockingIOError messages


portage-2.3.37
==================================
* repos.conf: Use openpgp-keys-* as key provider for gemato
* Bug Fixes:
    - Bug 654390 use asyncio's default event loop
    - Bug 655414 fix has/best_version for cross-prefix portageq
    - Bug 655860 fix ROOT overrides for has/best_version


portage-2.3.36
==================================
* Bug Fixes:
    - Bug 654782 autounmask fails on non satisfiable REQUIRED_USE
    - Bug 654812 category directory left after successful merge
    - Bug 654838 ecompress spurious imageusr directory in EAPI 7


portage-2.3.35
==================================
* Bug Fixes:
    - Bug 317337 fix normalization of empty SYSROOT setting


portage-2.3.34
==================================
* Bug Fixes:
    - Bug 654600 SYSROOT=/ setting breaks eautoconf for firefox
    - Bug 654664 silence emerge --sync --quiet signature info


portage-2.3.33
==================================
* Bug Fixes:
    - Bug 317337 fix best/has_version -b for cross-prefix
    - Bug 654456 allow empty BINPKG_COMPRESS to disable compression


portage-2.3.32
==================================
* Bug Fixes:
    - Bug 317337 cross BDEPEND, BROOT, SYSROOT, etc
    - Bug 403697 waitpid TypeError: an integer is required
    - Bug 614104 AbstractPollTask._unregister_if.. event loop recursion
    - Bug 614108 _LockProcess.unlock event loop recursion
    - Bug 614110 BinpkgFetcher.lock event loop recursion
    - Bug 614112 EbuildBuildDir.lock event loop recursion
    - Bug 649276 surface key refresh exceptions early
    - Bug 653638 emerge --config exit status is 0 after pkg_config calls die
    - Bug 653810 EbuildFetcher._get_uri_map() event loop recursion
    - Bug 653844 EbuildBuild._start() event loop recursion
    - Bug 653848 EbuildMerge._merge_exit event loop recursion
    - Bug 653856 use run_until_complete for asyncio compat
    - Bug 653946 ManifestScheduler._iter_tasks() event loop recursion
    - Bug 654038 FetchIterator.__iter__ event loop recursion
    - Bug 654224 Larry's tail looks wrong
    - Bug 654276 AbstractChildWatcher.add_child_handler asyncio compat
    - Bug 654382 AbstractEventLoop add_reader/writer asyncio compat
    - Bug 654472 Please implement EAPI 7


portage-2.3.31
==================================
* Bug Fixes:
    - Bug 653508 AssertionError: idle callback recursion
    - Bug 640318 emerge --usepkgonly: propagate implicit IUSE and USE_EXPAND


portage-2.3.30
==================================
* Bug Fixes:
    - Bug 653372 emerge --search AttributeError: '_pkg_str' object has
      no attribute '_db'


portage-2.3.29
==================================
* Bug Fixes:
    - Bug 649588 asyncio.AbstractEventLoop implementation based on
      internal event loop
    - Bug 652938 binary packages built against older subslot trigger
      downgrade of installed package
    - Bug 653230 app-portage/porthole PORTDIR KeyError
    - Bug 650696 default to sync-rsync-verify-jobs = 1
    - Bug 653352 Stripping of files broken with >=sys-apps/file-5.33


portage-2.3.28
==================================
* Bug Fixes:
    - Bug 649276 gpg key refresh needs exponential backoff with jitter


portage-2.3.27
==================================
* Bug Fixes:
    - Bug 651952 INSTALL_MASK: honor install time config for binary packages


portage-2.3.26
==================================
* Bug Fixes:
    - Bug 651826 STRIP_MASK not working, regression


portage-2.3.25
==================================
* Bug Fixes:
    - Bug 582140 Portage does not reduce values of USE_EXPAND variables
      to IUSE_EFFECTIVE in some cases
    - Bug 608564 add emerge --ignore-world option to disregard @world
      when solving dependencies
    - Bug 622462 emerge --autounmask tries to wrongly unmask a hardmasked
      package instead of telling user to change USE conflicting flags
    - Bug 631358 add emerge --changed-slot option
    - Bug 647654 filter-bash-environment.py input is not buffered, it reads
      1 byte at a time
    - Bug 647940 "emerge --search" fails to find a package when provided
      with an exact match, $CAT/$PKG
    - Bug 648062 portageq repositories_configuration <eroot> does not
      override PORTAGE_CONFIGROOT
    - Bug 648432 File merging is ultra-slow on FreeBSD
    - Bug 648790 add parallel aux_get method for things like repoman to use
    - Bug 649418 security.capability extended attribute not preserved
      between different filesystems
    - Bug 649464 dev-util/gtk-update-icon-cache-3.22.19 - QA Notice: new
      icons were found installed but GTK+ icon cache has not been updated
    - Bug 649524 prepstrip: Preservation of extended attributes using
      getfattr+setfattr does not preserve extended attributes outside of
      user namespace
    - Bug 649528 prepstrip: Preservation of extended attributes using
      xattr-helper.py broken
    - Bug 650754 emerge --info is broken without git installed if PORTDIR
      is a git checkout and sync-type = git
    - Bug 651214 {PKG_,}INSTALL_MASK support for exclusions


portage-2.3.24
==================================
* Bug Fixes:
    - Bug 645002 dep_zapdeps: sort by new_slot_count for DNF only
    - Bug 645780 emerge: disable --changed-deps-report by default
    - Bug 646458 emerge: enable --dynamic-deps=y by default once again


portage-2.3.23
==================================
* Bug Fixes:
    - Bug 646314 fix "gpg: Can't check signature: No public key"


portage-2.3.22
==================================
* Bug Fixes:
    - Bug 646184 prevent gemato call with USE="-rsync-verify"


portage-2.3.21
==================================
* Bug Fixes:
    - Bug 612972 fix global scope DISTDIR setting to be consistent
    - Bug 645416 dep_zapdeps: fix virtual/rust handling
    - Bug 645780 add --changed-deps-report option
* Rync tree verification with gemato and gentoo-keys


portage-2.3.20
==================================
* Bug Fixes:
    - Bug 642672 fix preserve-libs for symlinks to other dirs
    - Bug 642632 doins: implement install -p option
    - Bug 643974 prefer || dep choices that install a new package in order
      to allow upgrade of another package
    - Bug 645002 fix perl-cleaner || dep handling for catalyst stage1
    - Bug 645190 fix dev-manager || dep handling for catalyst stage1
* The emerge --dynamic-deps option is now disabled by default. Any problems
  that this may case can be avoided by adding either --dynamic-deps=y or
  --changed-deps=y to the emerge options. Refer to `man emerge` for details
  about these options.
* Repository metadata/layout.conf default "manifest-hashes = BLAKE2B SHA512"
  setting, consistent with gentoo repository.


portage-2.3.19
==================================
* Bug Fixes:
    - Bug 640934 doins: fix PYTHONPATH setting
    - Bug 641088 file_copy: handle EOPNOTSUPP for NFS


portage-2.3.18
==================================
* Bug Fixes:
    - Bug 640290 PORTAGE_XATTR_EXCLUDE: add common user.* attributes
    - Bug 640318 handle binary package IUSE_IMPLICIT divergence
    - Bug 640376 doins: remove file before creating symlink
    - Bug 640450 fix binary package extraction for USERLAND_BSD


portage-2.3.17
==================================
* Bug Fixes:
    - Bug 586214 fix KeyError when profile is missing ARCH variable
    - Bug 615620 disable pygcrypt checksum backend
    - Bug 624526 rewrite doins in python
    - Bug 639346 eval disjunctive build deps earlier


portage-2.3.16
==================================
* Bug Fixes:
    - Bug 638292 avoid unnecessary $PKGDIR/Packages index re-write
    - Bug 638320 emaint binhost: use _populate_local instead of _populate


portage-2.3.15
==================================
* Bug Fixes:
    - Bug 607872 UseManager: reject atoms with USE flags
    - Bug 636798 binarytree.populate: avoid lock when possible
    - Bug 637902 quickpkg: fix stat sanity check for binpkg-multi-instance
    - Bug 638148 Fix mis-parsing Manifests with numerical checksums


portage-2.3.14
==================================
* Bug Fixes:
    - Bug 635540 dep_zapdeps: install new package, avoid downgrade
    - Bug 637284 vardbapi.removeFromContents: update NEEDED
    - Bug 632026 dep_check: use DNF to optimize overlapping virtual || deps


portage-2.3.13
==================================
* Bug Fixes:
    - Bug 497596 fix PORTAGE_RSYNC_RETRIES
    - Bug 635116 is_prelinkable_elf: fix for python3
    - Bug 635126 file_copy: use sendfile return value to measure bytes copied
    - Bug 635474 postinst_qa_check: initialize preinst state


portage-2.3.12
==================================
* Bug Fixes:
    - Bug 455232 fix ignored LDFLAGS check, enabled by adding
      "-Wl,--defsym=__gentoo_check_ldflags__=0" to LDFLAGS
    - Bug 630132 remove trailer when decompressing binary packages
    - Bug 633842 PORTAGE_LOG_FILE KeyError
    - Bug 634210 optimize portdbapi performance to handle large numbers of
      repositories (Daniel Robbins)
    - Bug 634378 use debugedit from rpm if necessary


portage-2.3.11
==================================
* Bug Fixes:
    - Bug 631820 postinst-qa-check.d/50xdg-utils unconditionally calls binaries
      it doesn't depend on and gets confused
    - Bug 631894 depgraph _minimize_children method randomly chooses packages to
      eliminate
    - Bug 632202 slot conflict solver interferes with @preserved-rebuild
    - Bug 632210 SlotConflictUpdateTestCase fails with @world
    - Bug 632598 --autounmask USE changes can trigger unnecessary backtracking
    - Bug 632696 Files found by xdg_desktop_database_check() leak to
      xdg_mimeinfo_database_check()


portage-2.3.10
==================================
* Bug Fixes:
    - Bug 631454 First run of postinst_qa_check consumes too much time
      and reports false positives


portage-2.3.9
==================================
* Bug Fixes:
    - Bug 627106 Add DOCS to environment blacklist
    - Bug 628386 dev-python/pycparser-2.18 breaks "ebuild" command
    - Bug 629010 Ban get_libdir in global scope
    - Bug 629146 RepoConfigLoader: Fix compatibility with Python 3.7
    - Bug 629148 gnome2-utils postinst: Restrict file types for false positives
    - Bug 630538 Fix emerge --info when using webrsync (regression)
    - Bug 630730 AsynchronousLock: missing dummy_threading for Python 3.7


portage-2.3.8
==================================
* Bug Fixes:
    - Bug 628010 quickpkg: revert accidental changes to "protect" function
    - Bug 628060 quickpkg: revert premature return from quickpkg_atom


portage-2.3.7
==================================
* Bug Fixes:
    - Bug 424423 multilib-strict: disable recursion into subdirectories
    - Bug 608880 eapply_user: combine sort for all dirs
    - Bug 610670 man/portage.5: document -* in profile "packages" files
    - Bug 619612 emerge: warn for --autounmask-continue with --autounmask=n
    - Bug 619620 depgraph: account for binpkg-multi-instance in unused warning
    - Bug 619626 depgraph: prune unnecessary rebuilds for --autounmask-continue
    - Bug 622480 emerge: add --autounmask-keep-keywords option
    - Bug 623648 fuzzy search: weigh category similarity independently
    - Bug 625246 emerge --getbinpkg: https support for If-Modified-Since


portage-2.3.6
==================================
* Bug Fixes:
    - Bug 612874 depgraph: avoid missed update with slot operator and circ dep
    - Bug 612960 emerge: fix --use-ebuild-visibility to reject binary packages
    - Bug 613360 emerge: fix --usepkg when ebuild is not available
    - Bug 591760 EventLoop: implement call_soon for asyncio compat
                 Future: implement add_done_callback for asyncio compat
                 emerge: use asyncio interfaces for spinner during owner lookup
    - Bug 613132 phase-helpers.sh: Loop over A rather than SRC_URI in __eapi0_pkg_nofetch
    - Bug 313990 SpawnProcess: fix event loop recursion in _pipe_logger_exit
    - Bug 490562 pkg_use_display: show masked/forced state of USE_EXPAND flags
    - Bug 614390 depgraph: trigger slot operator rebuilds via _complete_graph
    - Bug 614474 emerge: fix --autounmask-continue to work with --getbinpkg
    - Bug 614108 AsynchronousLock: add async_unlock method
    - Bug 614116 EbuildBuild: eliminate call to digestgen
                 EbuildBuild: async spawn_nofetch in _fetchonly_exit
    - Bug 615238 Prevent crash if os.nice() fails
    - Bug 379899 dosym: Make implicit basename a fatal error
    - Bug 615982 depgraph._in_blocker_conflict: call _validate_blockers if needed
    - Bug 612262 man/emerge.1: fix quickpkg input in tb2file section
    - Bug 617550 Eventloop: fix deadlock involving idle_add/call_soon
    - Bug 617778 file_copy: replace loff_t with off_t for portability
    - Bug 618086 file_copy: fix lseek offset after EINTR
    - Bug 615680 emerge: terminate backtracking early for autounmask changes
    - Bug 540562 emerge: default --backtrack=10
    - Bug 294719 emerge: add --onlydeps-with-rdeps=<y|n> option


portage-2.3.5
==================================
* Bug Fixes:
    - Bug 598444 auto-enable --with-bdeps if --usepkg is not enabled
    - Bug 611838 use_reduce: reserve missing_white_space_check for invalid tokens
    - Bug 612042 depgraph: fix backtracking for slot operator rebuilds
    - Bug 612094 depgraph: fix runtime package mask interaction with slot
                           operator rebuilds
    - Bug 611896 config.setcpv: fix handling of IUSE changes
    - Bug 597736 Support STREEBOG{256,512} hash function
    - Bug 607868 movefile: support in-kernel file copying on Linux
    - Bug 612772 depgraph: fix slot operator rebuild for llvm:0 to llvm:4 upgrade
    - Bug 612846 depgraph: fix missed atom_not_selected initialization
* Numerous patches updating checksums code and python module imports for them
  including new checksum methods
* New linux in kernel movefile support via a new "C" extension module


portage-2.3.4
==================================
* Bug Fixes:
    - Bug 575178 emaint typo fix
    - Bug 602964 slot_conflict_handler: report packages that can't be rebuilt
    - Bug 598080 LinkageMapELF: compute multilib category for preserved libs
    - Bug 603826 binarytree._read_metadata: return empty strings for undefined values
    - Bug 602854 depgraph: clarify "update has been skipped" message
    - Bug 604164 portageq: allow disabling regex matching of maintainer emails
    - Bug 554070 _dep_check_composite_db: select highest in slot conflict
    - Bug 532100 env-update: call ldconfig if found in EROOT
    - Bug 604474 bin/socks5-server.py: convert address from bytes to str
    - Bug 583962 __multijob_init: work around Cygwin FIFO shortcoming
    - Bug 400763 glsa-check: Apply list only affected versions
    - Bug 606464 depgraph: fix 'SonameAtom' object is not subscriptable
    - Bug 567478 emaint: exit with non-zero status code when module fails
    - Bug 605612 Properly retrieve the count attribute and adjust logic to
                 properly support both GLSA formats
    - Bug 606832 env-update: skip os.access call when ldconfig is None
    - Bug 606588 action_sync: fix TypeError: 'int' object is not subscriptable
    - Bug 607236 emerge: fix error handling for clean_logs
    - Bug 582098 spawn: instantiate userpriv_groups before fork
    - Bug 607418 Fix Python 3.6 "DeprecationWarning: invalid escape sequence" warnings
    - Bug 607922 SyncManager: rename async method to sync_async
    - Bug 608594 PopenProcess: suppress ResourceWarning subprocess "still running"
    - Bug 610328 emerge: sync given repos even if auto-sync is false
    - Bug 609462 compression_probe: support zstandard (zstd) decompression
    - Bug 552814 repos.conf: rename sync-depth option to clone-depth
    - Bug 544440 etc-update: fix hang when using_editor is set
    - Bug 610670 grabfile_package: support -* in profile "packages" files
    - Bug 610708 GitSync: fix spurious "sync-depth is deprecated" messages
    - Bug 567478, 576282, 601054 sync.py: validate repos in _get_repos()
    - Bug 610852 sync.py: recognize repo aliases when updating repositories


portage-2.3.3
==================================
* Bug Fixes:
    - Bug 597752 _expand_new_virtuals: constrain output for dep_zapdeps
    - Bug 599060 parse_metadata_use: apply English language preference
    - Bug 599240 preserve-libs: handle manually removed libraries better
    - Bug 600346 dep_zapdeps: make package selections internally consistent
    - Bug 600128 repos.conf: support strict-misc-digests attribute
    - Bug 600660 unpack: fix txz unpack support
    - Bug 600804 _post_src_install_uid_fix: allow files with portage group
                 permissions
    - Bug 601466 bin/ebuild: fix EBUILD_FORCE_TEST / RESTRICT interaction
    - Bug 554070 depgraph: select highest version involved in slot conflict
    - Bug 598116 _emerge/depgraph.py: Autounmask-write fails when there isn't
                 a file in package.*/
* Reverted commits:
    - Bug 597918 Revert "emerge-webrsync: use gkeys to verify OpenPGP signatures
                 (too soon, needs some additional gkeys work and release,
                 this code was not yet in a portage release)
    - Bug 552814 Revert "GitSync.update: respect sync-depth
                 (Shallow fetch is not a practical default at this time,
                  given performance issues introduced by `git update-index`
                  and `git prune` (see bug 599008).
                 )


    portage-2.3.2
==================================
* Bug Fixes:
    - Bug 594822 GitSync.update: handle git rev-list failure
    - Bug 594982 doebuild_environment: disable ccache/distcc/icecc when necessary
    - Bug 595028 ebuild.sh: start phases in temporary HOME if available
    - Bug 595146 locks: use fcntl.flock if fcntl.lockf is broken
    - Bug 596102 einstalldocs: check whether default docs are indeed files
    - Bug 594744 setup.py: enable libc bindings optionally


portage-2.3.1
==================================
* Bug Fixes:
    - Bug 587198 chpathtool.py: fix byte comparison logic for python3
    - Bug 584626 Add a unit test which reproduces the bug and
                 depgraph: fix missed llvm update
    - Bug 582624 Add emerge --autounmask-continue option
    - Bug 568934 portage.cache: write md5 instead of mtime
    - Bug 552814 GitSync.update: respect sync-depth
                 use git reset --merge instead of --hard
    - Bug 590514 depgraph._serialize_tasks: improve runtime cycle handling
    - Bug 65566  emerge: add --fuzzy-search and --search-similarity
    - Bug 425554 Scheduler._terminate_tasks: purge _running_tasks
    - Bug 591760 EventLoop: add run_until_complete method
    - Bug 584328 config.environ: handle missing ctypes for check_locale
                 locale.py: fix decoding for python2 plus some locales
                 locale.py: add a C module to help check locale
    - Bug 577372 Support News-Item-Format 2.0
    - Bug 594284 writeable_check: handle/warn about invalid entries in
                 /proc/self/mountinfo
    - selinux: fix crash for invalid context
    - Chromium-Bug 477727 flat_hash: use mkstemp in _setitem


portage-2.3.0
==================================
* Bug Fixes:
    - Bug 576888 dblink: add locks for parallel-install with blockers
    - Bug 579626 __eapi6_src_prepare: handle empty PATCHES array
    - Bug 579292 egencache --update-changelogs: fix timestamp assumptions
    - Bug 578204 EbuildBuild: call _record_binpkg_info earlier
    - Bug 577862 localized_size: handle UnicodeDecodeError
    - Bug 582388 Manifest._apply_max_mtime: handle EPERM from utime
    - Bug 576788 dispatch-conf: fix popen UnicodeDecode error
    - Bug 583560 news.py: Check only for major version when parsing
    - Bug 577720 Revert "Colorize packages in user sets
    - Bug 583164 Colorize packages in world_sets
    - Bug 584530 xtermTitle: support tmux
    - Bug 572494 binarytree._populate: suppress PORTAGE_SSH_OPTS KeyError
    - Bug 582802 Account for EPREFIX in ccache and distcc dirs
    - Bug 583754 LinkageMapELF: Account for EPREFIX in scanelf path
    - Bug 574626 eapply: use gpatch for bsd userland
    - Bug 586410 unmerge-backup: check BUILD_TIME of existing binary package


portage-2.3.0_rc1
==================================
* Initial test release of the now split portage/repoman pkgs
* Bug Fixes:
    - Bug 577720 Colorize packages in user sets
    - Bug 577126 egencache --write-timestamp: use write_atomic
* portageq: Case-insensitive match maintainer emails
* qa: gcc-warnings: force text mode w/grep
* qa-checks: change "herd" to "maintainer"
* qa-checks: executable-issues: improve logic & output

portage-2.2.28
==================================
* Bug Fixes:
    - Bug 572494 BinpkgFetcher: suppress PORTAGE_SSH_OPTS KeyError message
    - Bug 572476 binarytree: fix PORTAGE_BINHOST KeyError
    - Bug 572826 Fix KeyError for ACCEPT_KEYWORDS and ARCH
    - Bug 540882 repoman: Re-add an if that bypasses the changes scan
    - Bug 573070 Clarify no binary packages error
    - Bug 573056 isolated-functions.sh: Output error message for nofatal die
    - Bug 573386 UserQuery: handle unicode
    - Bug 543706 Make config update tools stand out
    - Bug 527004 Be extra clear on INSTALL_MASK & dirs
    - Bug 574082 repoman: Deprecate games.eclass
    - Bug 576488 portdbapi.aux_get: don't cache in memory unless frozen
    - Bug 573920 eapply_user: allow empty directories
    - Bug 576958 repoman: Make the output quiet when options.quiet=True
* Add sync-git-clone-extra-opts and sync-git-pull-extra-opts
* GLEP 67 portageq updates
* repoman: Fix _here_doc_re for "Unquoted Variable" false positives

portage-2.2.27
==================================
* Bug Fixes:
    - Bug 532224 Fixes commit 28828655da86 @profile pkg set support
    - Bug 566024 Fix logic when deep is True
    - Bug 567932 SyncManager.sync: always return 4-tuple
    - Bug 561686 _dep_check_composite_db._visible: verify that highest_visible
                 matches
    - Bug 567920 Manifest._apply_max_mtime: account for removals and renames
    - Bug 567746 repoman: use metadata.dtd from rsync tree if available
    - Bug 568354 depgraph._resolve: consider unresolved @system atoms fatal
    - Bug 567360 doebuild: Support finding lib* for ccache/distcc/icecc
                 masquerade dir
    - Bug 568054 repoman: Do not check for PATCHES array in EAPI 6 and later.
    - Bug 568934 flat_hash: enable md5 validation for /var/cache/edb/dep
    - Bug 569942 elog/mod_save: fix CATEGORY KeyError
    - Bug 486362 repoman: add clutter to inherit.deprecated
    - Bug 562652 emaint/.../merges: Rename --purge-tracker option
    - Bug 570530 INSTALL_MASK: enable matching of broken symlinks
    - Bug 570672 emerge: Add --autounmask-only parameter
    - Bug 570798 support bsddb3 module



portage-2.2.26
==================================
* Bug Fixes:
    - Bug 566372 enable absolute_import
                 fix python2.7 setlocale ValueError
    - Bug 566414 SpawnProcess: make _cancel kill all processes in cgroup
    - Bug 566420 SpawnProcess: re-check cgroup.procs until empty
    - Bug 566654 einstalldocs: use lazy docinto calls (prevent empty dir)
    - Bug 566132 SyncManager: redirect command stderr to stdout
    - Bug 566704 depgraph: autounmask for conditional USE deps
* other EAPI 6 code changes: eapply_user, several corrections


portage-2.2.25
==================================
* Bug Fixes:
    - Bug 564988 Rsync and Git Sync: skip metadata-transfer when appropriate
    - Bug 565172 repos.conf: support sync-hooks-only-on-change attribute
    - Bug 565540 egencache: parallelize --update-changelogs
    - Bug 565626 egencache: Delay updating Manifests until all other
                 tasks complete
* EAPI 6 final updates and changes.
* locale: Warn when locale does not conform to ASCII rules for case conversions.
          Force sane LC_COLLATE & LC_CTYPE as required in EAPI 6.


portage-2.2.24
==================================
* Bug Fixes:
    - Bug 562964 handle missing cgroup IOError
    - Bug 562808 repoman: Set max DESCRIPTION length to 80
    - Bug 563482 emerge(1): document --oneshot caveats
    - Bug 563740 calc_depclean: fix AttributeError for
                 SonameAtom.unevaluated_atom
    - Bug 563844 calc_depclean: do not abort for broken soname dependencies
    - Bug 563876 BinpkgFetcher._set_returncode: fix ftp _mtime_ handling
    - Bug 563546 repoman: check deps of stable ebuilds for unstable
                 configurations
    - Bug 563836 RepoConfigLoader: allow subsitution of variables like ROOT in
                 repos.conf
    - Bug 564222 vardbapi.aux_get: treat cache as valid if mtime is truncated
    - Bug 561264 AbstractEbuildProcess: validate cgroup release agent
* Egencache changes for the new git tree changelog generation.


portage-2.2.23
==================================
* Bug Fixes:
    - Bug 561474 Add check that we need commit signing
    - Bug 561596 Fix typo in function call
    - Bug 561264 AbstractEbuildProcess: remove cgroup with release_agent
                 SyncRepos.async: group sync and callback as composite task
    - Bug 554084 unpack: use chmod-lite helper
    - Bug 562108 repoman/argparser.py: _unicode_decode the commitmsg
    - Bug 561846 dohtml: handle unicode
    - Bug 534022 scanner.py: Fix options.output_style for column output
* Add icecream feature support


portage-2.2.22
==================================
* Bug Fixes:
    - Bug 559636 repoman: ignore unadded files when possible
    - Bug 510840 repoman: Remove profiles TODO comment
    - Bug 561234 SyncManager.async: initialize attributes before fork
    - Bug 561240 repository/config.py: Fix propogation of module_specific_options
* First release of the repoman re-write code (stage 1)


portage-2.2.21
==================================
* Bug Fixes:
    - Bug 550006 quickpkg: support FEATURES=xattr
    - Bug 550324 Fix missed rename of cleanconfig to cleanconfmem
    - Bug 550898 rename ia to ia64
    - Bug 550886 enable absolute_import for Python 2
    - Bug 550906 handle submodule import in _LazyImportFrom._get_target
    - Bug 552340 Redirect /dev/fd bash test to /dev/null
    - Bug 554084 unpack: avoid useless chmods to improve speed
    - Bug 554108 use mkdtemp to avoid cgroup interference
    - Bug 554578 convert str to Atom for DbapiProvidesIndex
    - Bug 554928 depgraph._want_update_pkg: handle _UNREACHABLE_DEPTH
    - Bug 556172 slot_conflict_handler: suggest --verbose-conflicts
    - Bug 556464 depgraph._select_files: use _iter_match_pkgs for tbz2 arguments
    - Bug 555698 circular_dependency_handler: limit USE combination search
    - Bug 556764 similar_name_search: used indexed repos where appropriate
    - Bug 557426 sync repositories in parallel
    - Bug 557962 Manifest.write: stable/predictable Manifest mtime for rsync
    - Bug 558322 SyncRepos._sync: call postsync.d hooks earlier
    - Bug 557192 egencache: stable use.local.desc mtime for rsync
    - Bug 559044 emerge --search: fix duplication of results
    - Bug 296085 RsyncSync: add sync-rsync-vcs-ignore option
    - Bug 559122 sync: include metadata/layout.conf with profile submodule
    - Bug 560466 match_from_list: restrict =* to match only on version part boundaries
* git sync: Respect PORTAGE_QUIET
* several man page updates
* rsync: per repo repos.conf rsync options via the 'sync-rsync-extra-opts' option


portage-2.2.20.1
==================================
# Note this was a branch release based of the 2.2.20 release
# expressly for the new git based ebuild tree
* Bug Fixes:
    - Bug 550324 Fix missed rename of cleanconfig to cleanconfmem
    - included a few man page updates
    - a couplerepoman changes for the new git based tree


portage-2.2.20
==================================
* Bug Fixes:
    - Bug 539510 make.conf: point people to ccache(1) for cache size details
    - Bug 549666 binarytree.get_pkgindex_uri: handle --gebinpkg=n
    - Bug 549616 egencache --update-pkg-desc-index: handle read-only repo
    - Bug 549826 portage/sync/modules/rsync: Fix UnicodeDecodeError:
    - Bug 534022 bin/repoman: Use pformat and newlines to *DEPEND output
          for clarity


portage-2.2.19
==================================
* New repoman --straight-to-stable, -S option
* Use consistent rules for filenames of ebuils and misc files
* New squashdelta sync module for downloading full or updates for a squasfs tree
    requires dev-util/squashmerge be installed
* New binpkg-multi-instance feature allows for multiple variations
    (USE settings) to be saved in the pkgdir and index.
* Bug Fixes:
    - Bug 542732 WorldSelectedSet: fix load method
    - Bug 501866 dispatch-conf.conf: less-opts --quit-if-one-screen
    - Bug 543818 Fix an AssertionError if the multilib category of an
                 ELF file is not recognized
    - Bug 545252 Fix binpkg-multi-instance _pkg_paths corruption
    - Bug 545270 Fix dispatch-conf unicode handling
    - Bug 544624 ro_checker: skip parents of EPREFIX dir
    - Bug 525376 repoman: fix dependency.unknown to ignore USE deps
    - Bug 546010 repoman: handle removed packages in vcs_files_to_cps
    - Bug 546176 new_protect_filename: fix _unicode_decode TypeError
                 with symlink
    - Bug Fix missed renames of websync to webrsync
    - Bug 547086 _doebuild_path: add fallback for temp PORTAGE_BIN_PATH
    - Bug 546512 UseManager: handle newlines for USE_EXPAND prefixes
    - Bug 547414 Fix postsync hook regression
    - Bug 542796 LinkageMapElf.rebuild: pass error_leader to varexpand
    - Bug 547532 VdbMetadataDelta.applyDelta: remove replaced versions,
                 handle "remove" events properly
    - Bug 547086 ebuild-helpers: avoid exec loops or fork bombs in wrappers
    - Bug 547390 ro_checker: only check nearest parent
    - Bug 325009 Make the USE variable readonly
    - Bug 547736 search: fix addCP so only the specified results are displayed
    - Bug 428098 _unmerge_protected_symlinks: suggest UNINSTALL_IGNORE
    - Bug 547778 dblink: elog failed postinst
                 Scheduler: increase visiblity of postinst failures
    - Bug 548438 gcc_warn_check: filter grep results with uniq
    - Bug 532784 bintree.populate: binhost connection failure triggers TypeError
    - Bug 548516 PORTAGE_XATTR_EXCLUDE: preserve security.capability
    - Bug 548556 varexpand: fix IndexError
    - Bug 548710 Disable SOCKSv5-over-UNIX-socket proxy by default
    - Bug 547732 Bundle a minimalistic derivation of Python's formatter module
    - Bug 488836 repoman: enable copyright date check without vcs
    - Bug portage/sync/modules/webrsync: Fileter out
          uid, gid, groups from kwargs
    - Bug 256376 dispatch-conf: handle file/directory collisions
    - Bug 549072 Allow read-only PKGDIR if no ebuilds will be built
    - Bug 549322 Fix deprecated logging.warn() calls


portage-2.2.18
==================================
* Bug Fixes:
    - Bug 539706 Fix Syncbase _has_bin()
    - Bug 538980 Add early check for broken /dev/s
    - Bug 282639 Generate soname dependency metadata
    - Bug 540882 repoman: skip vcs calls for manifest modes
    - Bug 541188 man/portage.5: document sets.conf
    - Bug 541198 use_reduce: support non-string token_class
    - Bug 541302 actions.py: fix missing localization import
    - Bug 500436 Do not interrupt on SIGCONT
    - Bug 540482 Add man page entries for "emaint merges"
                 and egencache's "--write-timestamp"
    - Bug 511806 make.conf: expand PORTAGE_CONFIGROOT
    - Bug 541754 depgraph: fix 'operation' AttributeError
    - Bug 542052 Don't spawn socks5-server.py for pkg_nofetch


portage-2.2.17
==================================
* Bug Fixes:
    - Bug 539746 WorldSelectedSet: fix breakage
    - Bug 539478 Fix missed self.portdb assignment for
        metadata-transfer feature
    - Bug 539402 fix overlay mask logic


portage-2.2.16
==================================
* New portage plug-in sync system.
* New auto-sync setting for repos.conf repos
* New sync-depth setting for git sync module
* New --sub-submodule option for emaint sync module
* New native portage postsync.d capability
* New native portage repo.postsync.d capability
* New socks5 module to allow builds to escape the network-sandbox
* Tentative EAPI 6 changes for testing
* New search index creation and fast search code for emerge -s, -S
* Bug Fixes:
    - Bug 538512 Deprecate make.conf SYNC variable
    - Bug 538314 handle EINTR
    - Bug 537298 Fix typo in new_protect_filename()
    - Bug 534722 update LOGNAME variable when appropriate
    - Bug 536926 emerge: default --backtrack=3
    - Bug 536392 More >= atoms for autounmask USE changes
    - Bug 492932 TestFakedbapi: override EPREFIX
    - Bug 142579 BinpkgExtractorAsync: xz and gzip decompression
    - Bug 282927 emerge: add --changed-deps/--binpkg-changed-deps
    - Bug 535850 dispatch-conf: avoid symlink "File exists" error
    - Bug 533036 man/emerge.1: clarify --buildpkg-exclude wrt *-backup FEATURES
    - Bug 463266 man pages: note that make.conf can be a directory
    - Bug 533884 emerge --autounmask-write: fix CONFIG_PROTECT for
                 PORTAGE_CONFIGROOT
    - Bug 531656 Solve more slot-operator conflicts
    - Bug 531724 AbstractPollTask._read_buf: read regardless of event flags
    - Bug 534070 Add --sync-submodule <glsa|news|profiles>
    - Bug 532670 Support override of default profile EAPI
    - Bug 532784 bintree.py: fix str() calls for Python 2
    - Bug 532594 faulty variable assignment inside _compute_abi_rebuild_info
    - Bug 525718 search._xmatch: handle aux_get KeyError
    - Bug 532224 Support @profile package set
    - Bug 504116 man/emerge.1: --quiet-build=n overridden by --jobs
    - Bug 412471 Display emerge search results incrementally
    - Bug 531690 bin/ebuild: fix --color=n
    - Bug 531854 dblink._protect: disable config protect for identical files
    - Bug 522032 add a one time only post-sync hook call
    - Bug 471776 Support USE_EXPAND prefixes in package.use and relevant files


portage-2.2.15
==================================
* New option --rage-clean that does --unmerge without delay.
* package.bashrc: per profile, per-package bashrc mechanism
* Introduce eqalog and eqawarnlog functions.
* Introduce eqatag to output proper machine-readable QA logs
* Bug Fixes:
    - Bug 517310 emerge --read-news: prompt only if --ask
    - Bug 433453 Support unprivileged mode
    - Bug 519566 Remove g+w bit from $T for TPE
    - Bug 433453 portage.data._get_global: fix UnboundLocalError
    - Bug 526160 This fixes _dep_check_composite_db to mask packages
                 that aren't the highest visible match, but only if an
                 update is desirable.
    - Bug 523684 This fixes the ConfigProtect class, etc-update, and
                 dispatch-conf to account for non-existent files (rather than
                 directories) that are listed directly in CONFIG_PROTECT.
    - Bug 524964 bin/bashrc-functions.sh: remove portageq function
    - Bug 527636 Add btrfs.* to default PORTAGE_XATTR_EXCLUDE
    - Bug 485598 etc-update & dispatch-conf: symlink and protected
                 symlink support
    - Bug 527636 Remove redundant PORTAGE_XATTR_EXCLUDE defaults
    - Bug 528272 This fixes incorrect behavior of the "fetch" phase
    - Bug 456128 Add support for SUSE based distros in etc-update
    - Bug 528760 man/ebuild.5: document assert fix
    - Bug 525726 _selinux.setexec: improve failure message
    - Bug 529200 portageq: fix eroot parameter
    - Bug 529120 fs_template._ensure_dirs: handle EEXIST
    - Bug 528610 This fixes a case inside _slot_operator_update_probe where
                 it would select an inappropriate replacement_parent of a
                 lower version than desired.
    - Bug 490732 NewsManager.getUnreadItems: handle EROFS
    - Bug 524236 dblink: case insensitive support
    - Bug 515584 dep_zapdeps: avoid use.mask/force changes
    - Bug 490732 check for writable /var/db/pkg
    - Bug 520652 Add emerge --with-test-deps option
    - Bug 490732 check for writable PKGDIR
    - Bug 529660 Memoize the results of use_reduce calls inside
                 _slot_operator_update_probe, in order to improve performance.
    - Bug 530010 Implement selective invalidation of cache for the
                 depgraph._select_pkg_highest_available method...
    - Bug 530982 fix UnicodeDecodeError
    - Bug 531112 _pkg_use_enabled: return frozenset
    - Bug 387059 emerge: warn about @installed, don't deprecate
    - Bug 528274 ebuild.sh: force fresh env for pkg_setup
    - Bug 527996 emerge --info: show /bin/sh provider
    - Bug 527486 portage/util/writeable_check.py: Fix IndexError:
    - Bug 525552 Use a new _eintr_func_wrapper class to wrap waitpid calls and
                 handle EINTR by calling the function as many times as necessary
                 (until it returns without raising EINTR).


portage-2.2.14
==================================
* Bug Fixes:
    - Bug # 508364 Tweak the previous patch commit for the comma warning.
    - Bug # 524964 $PORTAGE_BIN_PATH/portageq no longer exists, which breaks
        bin/ebuild-helpers/portageq.
    - Bug # 524328 Use nonblocking write instead of a fork for writing to
            the fifo.
    - Bug # 523684 If a CONFIG_PROTECTed file was installed but no longer
        exists in the file system, then it may have been deleted or renamed
        by the admin.
    - Bug # 506192 This fixes the sync_local function so that it doesn't
        prematurely remove the whole TMPDIR when tarsync is not installed.
    - Bug # <no number> setup.py: Fix typo in logrotatedir path.


portage-2.2.14_rc1
==================================
* Bug Fixes:
    - Bug # 508364 Update gcc warning checks.
    - Bug # 523182 Rewrite default ebuild phase setting code
    - Bug # 517310 Offer to read news while calcing deps
    - Bug # 481578 emerge: --autounmask-write if --ask
    - Bug # 523494 Use PATH instead of PORTAGE_BIN_PATH to locate emerge.
    - Bug # 523532 This fixes depth increment to handle _UNREACHABLE_DEPTH.
    - Bug # 523152 This fixes the unmerge-backup and downgrade-backup features
        to be compatible with the new setup.py quickpkg install location...
    - Bug # 522084 Fix _solve_non_slot_operator_slot_conflicts to add all
        parents to the conflict_graph...
    - Bug # 523048 This fixes _backtrack_depgraph to immediately report
        necessary REQUIRED_USE changes instead of discarding the graph.
    - Bug # 521990 Since self._dynamic_config._slot_operator_deps only contains
        deps for packages added to the graph, it doesn't contain potentially
        relevant deps of installed packages that have not been added to the graph.


portage-2.2.13
==================================
* Bug Fixes:
    - Bug # 438976 Remove DESCRIPTION.punctuation check from repoman
    - Bug # 520542 Replace .append() with .add() for set variables
    - Bug # 515230 package_tracker.match: account for unevaluated_atom
    - Bug # 508762 _slot_operator_update_probe: This fixes the
        check_reverse_dependencies function.
    - Bug # 522362 Fix config.setcpv to regenerate USE settings in order to
        account for package.env USE settings from the previous package
        instance.
    - Bug # 507482 Run distcc-pump server throughout src_configure()
        to src_install()
    - Bug # 520950 This handles a case which occurs when
        _solve_non_slot_operator_slot_conflicts calls _create_graph.
    - Bug # 520752 Make email date, timestamp RFC-compliant
    - Bug # 520378 Fix hard-coded emerge-fetch.log locations
    - Bug # 522652 For cases such as || ( X <A-2 ), where X is unsatisfiable
        and A-1 is installed, fix dep_zapdeps to make the correct choice.
    - Bug # 510270 This fixes an IndexError in
        _solve_non_slot_operator_slot_conflicts which occurs when none of the
        conflict packages matched a particular atom.
* No longer include a Changelog with release tarball.
    For a complete log of the Changes please refer to the git log viewable
        online at https://github.com/gentoo/portage/commits/master


portage-2.2.12
==================================
* Bug Fixes:
    - Bug # 519074 fix invalid locale setting
    - Repoman: fix atom.blocker checks
    - Bug # 519124 properly decode formatted number for localized_size()
    - Revert an incorrect test fix from 2.2.11 which broke mime type detection
    - Bug # 518968 Fix and incorrect userquery change
    - QA systemd warning check for using /etc/conf.d
    - QA Use pngfix to find broken PNG files
    - Bug # 512578 Prepend '=' to unmerge atoms
    - Repoman: Do not report DESCRIPTION.punctuation warning for "etc."
    - Fix a py2/py3 discrepency involing integer division causing number output
      to be inconsistent
    - Fix an unicode-decode error in a gettaddrinfo() error message
* New emaint module "merges"  for finding and fixing failed merges
  If a pkg fails to merge to the live filesystem correctly, that pkg may
  not work correctly if at all.  This module scans the installed pkg database
  for those failures and can re-emerge those packages.


portage-2.2.11
==================================
* Bug Fixes:
    - Remove some broken old style virtual code
    - Bug # 505428 RO only filesystem check
    - Bug # 506186 TaskSequence starting bug.
    - Sort repoman check output
    - Remove obsolete repoman eclass checks
    - Bug # 505944 Improve mismatch checking
    - Bug # 488820 fix @security crash
    - Bug # 438976 Add DESCRIPTION.punctuation check to repoman
    - Add ruby18 warning for deprecated ruby target to repoman
    - Add Python version to Portage version line
    - Prevent rebuild code from performing unwanted repository changes
    - Include "::repository" more consistently in output
    - Make the slot conflict handler output more debug information
    - Bug # 487074 Don't split suggested commands when printing them
    - Handle 'mkdir -p /etc/portage/make.profile/packages' gracefully
      -- i.e. produce an error instead of crashing with a traceback
    - Implement --alert
    - Bug # 516428 Make repoman warn if non-virtuals depend on
      perl-core
    - Prefer install-xattr to install.py as a wrapper to coreutils'
    /usr/bin/install to preserve file system extended attribute.


portage-2.2.10
==================================
* Bug Fixes:
    - Fix broken --moo output
    - Bug # 505422 depgraph: "remove pkg" logic fix

portage-2.2.9
==================================
* Bug Fixes:
    - Bug # 450372 Russian translation update.
    - Bug #497238: Fix unnecessary rebuild caused by equal versions
      in different repositories.
    - Bug #501360 Only use Atoms with package_tracker.match
    - For a complete list of bug fixes, changes, See the Changelog installed at
      /usr/share/doc/portage-2.2.9/ChangeLog.bz2

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: https://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
  https://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
==================================

* new cache framework, breaking all old cache modules.
  If you're having problems with portage_db_cdb, this is likely the cause.
* 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/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.

