RPM Community Forums

Mailing List Message of <rpm-devel>

Embedding a CUDF parser -> embedding OCAML in RPM

From: Jeff Johnson <n3npq@mac.com>
Date: Fri 18 Dec 2009 - 17:51:26 CET
Message-id: <CC57F0FF-D6F2-41DF-A1E4-C35FD404EB43@mac.com>
Background
==========

The Mancoosi project is a 3 year effort to look at the scalability
and reliability of package management:
	http://mancoosi.org

There are 7 workgroups within Mancoosi, the two most
immediately relevant to RPM are
	WP3 Transactional --rollback
	WP5 SAT based dependency solver competition

The WP5 workgroup is representing package upgrade metadata in
something called CUDF:
	http://www.mancoosi.org/cudf/#libcudf
and has just released
	http://gforge.info.ucl.ac.be/frs/download.php/156/cudf-0.5.94.tar.gz
a parser library (in C w00t!) for CUDF and OCAML tools for validating CUDF.

Rationale
=========

So I'm likely to attempt the wrappings needed to link against libcudf
in the next week or so for these reasons:

The rationale for reading (and writing) CUDF from RPM is that the
CUDF markup is well designed and documented, known to describe package
manager install/upgrade operations, and will soon have SAT solvers from
WP5 prepared to read CUDF as input.

Adding some --queryformat templates to be able to write per-package
CUDF spewage will assist in generating CUDF for WP5 dependency
problems. The libcudf parser is needed to validate CUDF generated
by RPM.

The (or at least my ;) eventual goal is to be able to support multiple
dependency solver assertion checkers, not just what is already in rpmlib.
The libcudf parser (and perhaps OCAML, depending on what language
the SAT solvers from WP5 end-up being written in) will be needed
somewhen (in the next year? dunno) to read cudf before checking
dependency assertions.

Yes, a fair amount of work is needed to make a dependency
assertion checker "pluggable" in rpmlib.

Ya gotta start someplace, embedding libcudf is as good a place as any other imho.

73 de Jeff
	
Received on Fri Dec 18 17:51:47 2009
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.