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

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.

