------------------------
Features
========
- Hardlinks are now preserved during merging and when creating binpkgs.
- Add pmerge support for globbed targets, this means that commands such as
**pmerge "*"** or slightly more sane **pmerge "dev-python/*::repo"** will
work. Note that this usage is apt to run into blockers and other resolver
issues, but it can be handy in certain cases.
- Drop pmerge support for -s/--set in favor of pkgset syntax.
- Add pmerge support for -b/--buildpkg and change --with-built-depends to
--with-bdeps to match emerge.
- Nearly complete EAPI=5 support just missing subslot rebuilds.
- Add support for pebuild to run against a given ebuild file target from a
configured repo. This is the standard workflow when using `ebuild` from
portage.
- Add unmasks, iuse_effective, bashrcs, keywords, accept_keywords, pkg_use,
masked_use, stable_masked_use, forced_use, and stable_forced_use as `pinspect
profile` subcommands. Also, note that 'profile' is now used instead of
'profiles'.
- Add support for FEATURES=protect-owned (see make.conf man page for details).
- Add `pinspect query get_profiles` support.
- Add support for COLLISION_IGNORE and UNINSTALL_IGNORE variables (see
make.conf man page for details).
- Add support for FEATURES=test-fail-continue. This allows the remaining
phases after src_test to continue executing if the test phase fails.
- Add eqawarn support.
- Add support for profile-defined PROFILE_ONLY_VARIABLES to prevent critical
variables from being changed by the user in make.conf or the env.
- Move to using portage's keepdir file naming scheme (.keep_CAT_PN-SLOT)
while still supporting pkgs using the previous ".keep" method.
- Support the portage-2 profile format.
- Update pmerge's portage-like output to more closely approximate current
portage releases.
- Add pmerge options -O and -n to match --nodeps and --noreplace similar
to portage.
- Add profile-based package.accept_keywords, package.keywords, and
package.unmask support and force the profile base to be loaded by default so
related settings in the profile root dir are respected.
Fixes
=====
- Fix granular license filtering support via /etc/portage/package.license.
- Don't localize file system paths by resolving symlinks to provide a
consistent view of merged files between pmerge output and the vdb.
- Fix installing symlinks via doins for >= EAPI-4.
- Define SLOT and USE for pkg_pretend (mirroring portage) so checking for
enabled use flags during pkg_pretend works as expected.
- Run pkg_nofetch phase when any files in SRC_URI fail to be fetched.
- Apply use flags from make.defaults before package.use in profiles.
API Changes
===========
- Deprecated pkgcore.chksum compatibility shim removed.
- .eapi attribute on packages is now mostly unsupported; should instead use
.eapi_obj instead (an alias will be left in place for that long term).
- format_magic attribute was dropped from ebuild repositories; shouldn't
have been used (was always a hack).
Other
=====
- Add tox config to allow running the testsuite across all supported python
versions.
- Handle SIGINT signals better with regards to spawned processes that might
alter them. Now hitting Ctrl-C once should force pkgcore to exit as expected
instead of having to hit Ctrl-C multiple times at certain points during
package builds such as when a spawned python process is running and captures
the signal instead of relaying it to its children.
- Old virtuals support deprecated by GLEP 37 has been dropped.
- No longer depend on config files from portage. Global config files are now
stored in /usr/share/pkgcore/config and bash-related functionality is stored
in /usr/lib/pkgcore instead of each pkgcore module's namespace.
- Throw warnings for EAPI support in development instead of erroring out.
- Define ${T} for pkg_pretend phase, allows things like check-reqs for disk
tempspace to work properly.
- Support for multiple slots in a single atom dependency was removed;
never made it into a mainline EAPI and isn't useful these days.
- Pkgcore now parses EAPI from the ebuild itself, rather than from the
metadata calculated value.
--------------------------