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.