The architecture of the new solver in pkg
Channel: Andrea Ross
Date: 30/05/2014

by Vsevolod Stakhov

The architecture of the new solver in pkg

In the context of package management, the solver is an algorithm (or set of algorithms) to resolve dependencies and conflicts. The solver must handle options, upgrades, multiple repos, locally installed software, as well as other factors. The upcoming 1.3 release of pkg will have the new solver that has some important consequences.

This talk is dedicated to the design concepts of the new solver in pkg management system (pkg-ng initially). In this talk, I describe the basic architecture of the solver, ideas used and the consequences of using this algorithm. Moreover, this talk describes the proposed pkg and ports architecture to simplify binary packages and ports using for all FreeBSD users.

The proposed talk is oriented to the wide auditory of FreeBSD users and describes the architectural design of pkg and ports that is going to be implemented. I concentrate on the following topics:

the interaction of ports and packages
how pkg may be used for ports management
what are the alternatives used by other packages management systems (yum/apt/zypper/MacPorts)
the basic description of the SAT problem and how this algorithm can be applied to packages management
multiple repos handling
the improved support of custom options
advanced conflicts and dependencies
fine-grained packages distribution
base system interaction
the speed estimations
This talk is intended to improve the understanding of pkg internals and the future plans of FreeBSD packages and ports development.