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 improve the quality of distributions, for instance by detecting package inconsistencies and potential upgrading problems.
In 2005, we developed a formal model of package dependencies and designed algorithms based on reductions to Boolean satisfiability problems. In 2006, these results were presented at the Automated Software Engineering conference, the FRCSS workshop, and the Workshop on Free Software  ,  ,  .
This year, Berke Durak's work on the EDOS project concentrated on the design and development of a complete toolchain for downloading, storing, indexing, verifying, browsing and searching Debian package metadata.
Berke Durak tested various database backends and found severe performance limitations in RDBMS for storing the large graph-like structure of package metadata. He and Jaap Boender developed an alternative storage backend (dosebase ).
Tools for interconverting package dependency problems with boolean satisfiability formulas were developed. Limitations in the constraint solving logic of existing package management tools (such as APT or urpmi ) were found. Well-known SAT solvers (sat-grasp , zchaff ) were used to assess the feasibility of the SAT approach for veryfing the integrity of package distributions with respect to installability. Since these solvers are not free software and therefore not suitable for inclusion in most Linux distributions, Berke Durak designed, implemented and benchmarked custom SAT-solving algorithms based on simple backtracking, the Davis-Putnam approach, and conflict propagation.
Distribution editors are routinely faced with the problem of fitting a large number of packages in a given number of physical media (typically DVDs or CDs) while respecting size, dependency and disk order constraints. Berke Durak developed an algorithm that solves this problem while maximizing the total utility of the selected packages. This algorithm extends the conflict-propagating SAT-solving algorithm previously mentioned. It was implemented as a standalone tool called tart .
Finally, Berke Durak designed a functional query language for operating on Linux package metadata using Boolean set operators and dependency operators (such as dependency closure of a set). An implementation of this query language was developed as a library and integrated in two tools, a command-line interface (history ) and a Web interface (console ). This library integrates the dependency solving algorithm developed by Jérôme Vouillon at PPS, and initially used in his debcheck and rpmcheck tools.