Mancoosi Weblog

2.0-revamping of CUDF and its implementation

We are please to announce that we have just released version 2.0 of the CUDF specification.

Let me very briefly remind what CUDF is: a document format to describe upgrade scenarios as those we face everyday when we ask a package manager (synaptic, aptitude, urpmi, ..) to add/remove/upgrade a given package. Most peculiarly, CUDF permits to encode such scenarios in a way which is both distribution- and package-manager-independent, offering a lingua franca where upgrade scenarios coming from different distribution can be compared. Finally, CUDF is also a rigorous mathematical model which understand dependencies, features, conflicts, ... so that a clear semantics exists to check whether the response given by a package manager to the user request is correct or not.

According to Mancoosi's goals, CUDF will be mainly used to collect upgrade scenarios submitted by distribution users (a-la popcon) and then to run a solver competition on top of them to find the "best" dependency solver ever (don't worry, you will soon hear from us more on this topic ...). But we believe CUDF will be more than that: for instance it has been shown, by Mandriva and Caixa Magica distributions, to be a good device to collect user problems during upgrades and to spot bugs in package manager. Even more, it can be used to factorize out of package managers the actual dependency solving code, which can then be re-used across different package managers.

Now, going back to CUDF 2.0, the advancement with respect to 1.0 are significant, and we hope/believe to have now reached a rather stable point in the evolution of the format. In particular, in this release we have added support for custom package properties that can now be declared and appropriately typed. Such properties constitute they key ingredient on top of which we will be building a powerful user-preference language that will enable user to encode upgrade policies (e.g. minimize the total installed size among all possible solutions) and fine-grained preferences (e.g. blacklist packages from a given maintainer that I do not trust).

CUDF 2.0 specifications are available from our technical reports page and supersede the former project deliverable about CUDF 1.0. The new specs come with a handy Changelog appendix which highlights all differences with respect to CUDF 1.0.

If you are a developer, you might be interested in testing the pre-release of libCUDF 0.6 (version 0.5.92), which already implements CUDF 2.0. The library can be used from C and OCaml (Java bindings are being worked on). You can download it from our software page.

Mancoosi at the Fossa conference in Grenoble

On November 17th and 18th 2009, the first conference on Free and Open Source Software and Academia (Fossa) took place in Grenoble, and it was a nice occasion for presenting the work done in Mancoosi in a talk in the first day. Grenoble is a very interesting place for high-tech and software: it was possible to discuss interesting issues with people from Sun, Eclipse, and other groups. It appears that our work is definitely interesting for OpenSolaris, and we look forward to collaboration with people from Sun Microsystems on this.

Deliverable 3.2 is out now.

Release of D3.2 - First version of the DSL based on the model developed in WP2. Authored by Davide Di Ruscio, John Thomson, Patrizio Pelliccione, and Alfonso Pierantonio. Reviewed by Jeff Johnson and David Lutterkort.

Read the rest