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

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.

