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

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.

