BSDCan2014 - Final

BSDCan 2014
The Technical BSD Conference

Vsevolod Stakhov
Day Talks - Day 2 - Sat May 17 - 2014-05-17
Room Montpetit 202
Start time 11:30
Duration 01:00
ID 473
Event type Lecture
Track FreeBSD Developers Summit
Language used for presentation English

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.