Ceve

Ceve is a generalized package metadata parser; i.e. it can read package metadata in several different formats and, after some simple manipulations, output them in another format.

Installation

See http://gforge.inria.fr/projects/sodiac/

From source

Needed packages

Unless stated otherwise, these packages need to be installed with their headers (normally, the -devel packages).

  • ocaml (no development package needed; but threads must be enabled)
  • GNU make
  • expat
  • rpm
  • popt
Standard OCaml packages

  • ocaml-expat (which probably needs some expat-devel package, depending on your OS/distribution);
  • camlzip (which, by default, doesn't install using ocamlfind; a patch is here)
  • ocaml-calendar (for Dose)
  • OcamlDuce
  • Only for the unstable version: ocaml-mysql (more specifically a patched version that includes prepared statements and can be found here)
(Of course, there may already be packages for your specific OS and/or distribution - if so, those packages should work with the exception of ocaml-mysql; ceve (again, only the unstable version) really needs the patched package)

Dose

Ceve needs some components from Dose (the library behind pkglab), more specifically dosebase and lifetime. In order to compile them, get dose version 2 from SVN (https://gforge.inria.fr/projects/sodiac/) and run:

CFLAGS="-I/usr/local/lib/ocaml" make lifetime dosebase

where the directory indicated in CFLAGS should be the ocaml lib directory, i.e. it should contain a directory "caml" with some .h files. The example works under FreeBSD; for Mandriva, it is /usr/lib/ocaml. Replace "make" with "gmake" if your standard make is not a GNU make.

Then, run the following command from the main dose directory:

for i in util io mmap lifetime dosebase
do (cd $i; make -I ../make install)
done
(or, of course, the equivalent for your shell, OS, distribution etc.)

It should also be possible to use the new ocamlbuild tool which will be included with OCaml 3.10, but this hasn't been maintaned for some time, so it might not work.

Ceve

Now you should be able to compile Ceve. Go to the ceve directory and run:

CFLAGS="-I/usr/local/lib/ocaml -I/usr/local/include -I/usr/local/include/rpm -I/usr/local/include/mysql" LDFLAGS="-L/usr/local/lib/mysql" make ceve.opt
This command line works for unstable under FreeBSD. In the CFLAGS variable, you should include the paths to the standard OCaml headers (see above), the popt.h file, the rpmlib.h file and, if you are using unstable, the MySQL header files. In the LDFLAGS, you should include any non-standard locations for librpm, libpopt, and, for unstable, libmysqlclient.

If you want to build the bytecode version of Ceve, use "ceve" as the make target instead of "ceve.opt".

Usage

Ceve usage:

ceve [options] [repository files]

(If you want the native code version, call ceve.opt instead of ceve).

If no repository file is given. ceve will use the standard input.

Options

  • -p or -input-type Type of input; possible values:
    • debian One Debian package per file (default)
    • debian-cache One debian repository/cache per file
    • rpm RPM package files
    • hdlist RPM hdlist files
    • egraph EGraph (GraphML-like) files
  • -t or -output-type Type of output; possible values:
    • prettyprint (default): pretty printing, in debian-like format
    • dgraph or egraph: EGraph format
    • rpmfind: Fill an RPMfind database (experimental)
    • dose: DOSE (anla & pkglab) format
    • oz: File for inclusion in an OZ program
    • graphviz: Graph representation of the repository for usage with dot
    • tart or tart-cnf: CNF form for usage with TART
  • -o or -output-file The file to output to (default: standard output)
  • -output-dir (only with dose output type) Output directory
  • -x or -extract-cone pkg: Extract dependency cone of a given package (with version, format: pkg=version)
  • -cone-dep-types type,type,...: Dependency types to use for cone extraction (default: all)
  • -stop-extraction pkg: Stop extracting the dependency cone when this package is reached (format: pkg=version)
  • -r or -resolve-dependencies: Resolve virtual dependencies, i.e. replace a dependency on a virtual dependency by a dependency on the packages providing it
  • -vr or -rpm-versions: Force usage of RPM versions (default for RPM packages and hdlists)
  • -vd or -debian-versions: Force usage of Debian versions (default for Debian packages and repositories, as well as for EGraph files)
  • -dose-date (dose only): Set the date for the DOSE archive (format: yyyy-mm-dd)
  • -dose-archive (dose only): Set DOSE archive name
  • -dose-architecture (dose only): Set default architecture for DOSE archive
Version 3.1 last modified by StephaneLauriere on 10/09/2008 at 14:59

Comments 0

No comments for this document

Attachments 0

No attachments for this document

Creator: StephaneLauriere on 2005/09/05 17:41
Copyright EDOS Consortium
1.1.1