framework
* Abstracted configuration subsystem.
Via this, it's able to support multiple different configuration formats natively (including intermixing them).
- ini style format (used internally, and for high level pkgcore directives)
- make.conf and /etc/portage/ configuration
- dhcp akin format.
* unified metadata querying interface.
Same api is used for package matching, contents searching, description searching, and any general metadata query; supports boolean grouping, and defining your own query matching objects.
* Format agnostic resolver; proper format support implementation, nothing required of the resolver to support it.
Cyclical dependency detection and handling, configurable to enable/disable deep resolution, complete/incomplete dependency graph.
* Trigger based merging engine; extensible an designed to avoid unecessary IO for any sanity checks/modifications to the image to install/uninstall.
This enables user configuration to override/mangle the steps of merging, same capability for format plugins.
gentoo specific
* EBD, aka EBuild Daemon.
40% reduction of regen runtime, full environment reload/saving support required for glep33; additional benefit of it is that binpkgs and VDB (installed ebuilds) no longer are reliant on accessing eclasses from the tree. Finally, if you have a SMP system, can get near linear scaling (~90% scaling testing on a quad P3 500mhz) parallelization via source:pkgcore/bin/utilities/pregen.py, 7x faster for quad; stats available via pregen.
* Support for N parent inheritance in profiles
* USE/SLOT deps.
* /etc/portage/package.* extensions
Extended Atom syntax support- the short version is category, categoryless match, package globbing is supported, additionally the stacking is fully incremental.
* On disk data compatible, cache and vdb; nothing is added to vdb that portage won't properly handle, cache format is the same (it helps that portage 2.1's cache came from pkgcore).
* /etc/portage/sets support.
* native GLSA integration (no external xml deps required).
* metadata.xml integrated into the ebuild package API.
* merge straight from tbz2 without wasteful intermediate decompression to a temporary dir, then installing from the location- due to the semantics of the ebuild format, this only kicks in when the default pkg_preinst is in use.
