Warning:
Error with navigation contributor "BrowserModule"
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
- /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.
- first run (cold buffers):
| $ time pmerge -p portage > /dev/null | $ time emerge -p portage > /dev/null
|
| real 0m15.680s | real 0m56.778s
|
| $ time pquery portage > /dev/null | $ time emerge -s portage > /dev/null
|
| real 0m7.748s | real real 0m25.653s
|
- second run (hot buffers):
| $ time pmerge -p pkgcore > /dev/null | $ time emerge -p pkgcore > /dev/null
|
| real 0m0.825s | real 0m17.414s
|
| $ time pquery pkgcore > /dev/null | $ time emerge -s pkgcore > /dev/null
|
| real 0m0.718s | real 0m4.705s
|
Download in other formats: