Section: New Results
Formal management of software dependencies
In the context of the European project EDOS (Environment for the development and Distribution of Open Source software), we participate in an effort led by University Paris 7 to formally understand the dependencies between the software packages that typically constitute a Linux or BSD distribution. The goal is to develop efficient algorithms and tools to help with automatic installation and upgrading of packages on the users' side and with distribution building and detection of broken packages on the distributors' side.
This year, Roberto Di Cosmo (Paris 7) and Ralf Treinen (ENS Cachan) formalized a dependency model based on three kinds of dependencies: ``requires'', ``provides'' and ``conflicts with''. They showed that the installability problem (``is it possible to satisfy all dependencies of a given package?'') is NP-complete and that existing tools solve it either very incompletely (Debian's APT tool) or can take exponential time (Mandriva's Smart tool).
Di Cosmo and Treinen encoded the installability problem in constraint logic programming, using integer unary constraints. Attempts to solve this problem using the Mozart/Oz environment were unsuccessful (exponential time). Xavier Leroy then proposed a different encoding as a satisfiability problem over boolean formulae, and implemented a solver based on the Grasp SAT solver that appears efficient in practice: it takes a few seconds to solve the hardest instances found in the Debian package pool. The solver was successfully applied to the whole Debian pool and found a number of broken packages (not installable in any configuration).
Berke Durak was hired in september 2005 to work on the EDOS project. He pursues the boolean satisfiability approach to the problem, in particular the development of custom SAT solvers that should provide explanations of failures. He also develops other tools for package management, such as the Ara package indexer and tools to graphically display dependency graphs.