EDOS Objectives
Problems raised by software packages
Software packages are files in the RPM or Debian packaging format that contain executable programs or libraries, their files, along with metadata describing what's in the package and what conditions are needed to use it.- Dependencies Software packages may need other software packages to run, and often they don't tell exactly what other packages they need but leave a large room for choice. Also, some software packages cannot be installed at the same time. This makes the job of tools that automatically download required software packages difficult. Distribution maintainers want to make sure that there is always a way of selecting available packages to correctly install every piece of software they include, and that users can upgrade their systems without loosing functionality. (Work package 2 handles these issues).
- Downloading Users need to download software packages from somewhere. That requires a lots of bandwidth and puts strains on mirrors that host those packages. This problem would be better solved with peer-to-peer methods. (Work package 4 handles these issues).
- Quality assurance The complexity of the quality assurance process increases exponentialy with the number of packages and the number of platforms. To maintain the workload manageable, Linux distribution developers are forced to reduce system quality, reduce the number of packages, or accept long delays before final releases of high quality system. (Work package 3 handles these issues).
- Metrics Following the ``release early, release often'' philosophy, free and open source software is always in constant development and any serious project has many versions floating around : older but stable versions, and newer versions with new features but with more bugs. Free software can be of wildly varying quality. We are defining quality metrics, assessing their relevance and implementing them. (Work package 5 handles these issues).
How EDOS helps solving these problems
We use formal methods coming from the academic research groups in the project, to address in a novel way three outstanding problems:- dependency management among large, heterogeneous collections of software packages,
- testing and QA for large, complex software systems,
- and the efficient distribution of large software systems, using peer-to-peer and distributed data-base technology.
- Java software for the peer-to-peer distribution of software packages.
- debcheck/rpmcheck is a very efficient piece of Ocaml software for verifying that a Debian or RPM collection of packages does not contain non-installable packages.
- The day-to-day evolution of the Debian packages, that is, its detailed history, can be browsed using anla. This also gives, for every day, reports on installable software packages and a global installability index for every day (Debian weather).
- That history can be queried in the EDOS-designed Debian Query Language using the command-line tool history or the AJAX-based EDOS Console.
- ara is a search engine for Debian packages that allows arbitrary boolean combinations of field-limited regular-expressions, and that ranks results by popularity (again in Ocaml)
How are these problems solved today
Open source distribution editors package and assemble a large number of programs and applications into a single tested distribution, together with a set of tools to install and administer the system. They have to perform the following two key functions:- Producing a new version of a distribution: starting from a complete version of the distribution, the editor adds, deletes, reconfigure, and updates packages with respect to the external sources, etc.
- Customizing a distribution for a specific user: this includes adding, deleting, updating and configuring packages.
More information
- The project is divided into work packages, so you may find it useful to browse our wiki in the same way.
- We have public Mailing lists.
- All our software and all our technical reports and presentations can be checked at our public Subversion repository.
- You may also directly chat with us on our Jabber chat server.
Version 1.2 last modified by slauriere on 21/08/2007 at 00:14
Document data
Attachments:
No attachments for this document
Comments: 0