ceve - parse package metadata
Ceve is a generalized metadata parser. It reads package
specifications, extracts package metadata from them, performs some
manipulations, and outputs the package metadata in one of several
formats.
input-spec is a url specifying the input format and the
file to get the input from. For a possible list of schemes, see the
-t parameter.
Some examples of URLs:
- .
- deb://Packages.gz (the Debian file packages.gz in the current
directory)
- .
- cudf:///home/examples/cudf/test.cudf (the CUDF file
/home/examples/cudf/test.cudf)
Dose3 accepts files compressed with gzip(1) or
bzip2(1), depending on compile-time options.
- -t input-spec
- Select the input type. Possible values are:
- .
- cudf Cudf file format
- .
- pef PEF file format. The PEF format (Package Exchange Format) is a
generic 822 file format used to encode package dependencies. deb,
opam, debsrc and edsp are all based on the pef
format
- .
- csw OpenCSW Solaris packages binary format
- .
- opam Opam Package universe in Opam/PEF format. This format is a 822
textual format encoding the opam universe.
- .
- deb for Debian binary package files, also known as Packages
files.
- .
- debsrc for Debian source package files, also knows as Sources
files.
- .
- edsp apt-get External Dependency Solver Protocol
- .
- hdlist RPM hdlists. Binary file format.
- .
- synthesis urpmi synthesis hdlists. XML Based format
- --trim
- Consider only installable packages.
- --latest
n
- Consider only the latest -n most recent versions of each package,
older versions of packages are ignored.
- -c,
--cone=vpkglist
- The match of an atomic dependency (a package name p possibly
together with a version constraint c) is the set of all packages in the
repository with name p, and a version that satisfies the constraint c. The
dependency cone of a package p is the set of all matches of all atomic
dependencies of p, together with their respective dependency cones. The
package specification pkgspec is a list of packages (separated by a
semicolon), where each package is specified as follows:
(name,version).
This option extracts the union of the dependency cones of all
packages selected by vpkglist.
Example: =over 12
- -c 'golang-golang-x-tools (=
1:0.0~git20150716.0.87156cb+dfsg1-4),golang-golang-x-tools-dev'
- -r,
--rcone=vpkglist
- Using the same syntax as in -c, this option use the reverse
dependency relation to make the transitive closure.
- --depth
n
- In combination with the -c or -r options, this specifies the
maximum depth for the transitive closure.
- --request
installation-request
- Specifies an installation request of the form "install:
vpkglist" or "remove: vpkglist" or
"upgrade: vpkglist" where vpkglist is a
list of (real) packages possibly associated with a constraint. Ex.: bash
(< 2.0), exim (= 3.1-debian1). This option can be repeated to specify
install, remove and upgrade actions.
Examples:
- -o,
--outfile=filename
- Instead of stdout, send output to the file filename.
- -d,
--outdir=directory
- Set the output directory (default current directory)
- --dot
- Save the explanation graph (one for each package) in dot format.
- -G graph type
- Specifies the graph type format to compute. This option must be used
together with the option -T dot|gml|grml. Default is
syn. Possible values are:
- .
- syn for the syntactic graph where disjunctions nodes and conflicts
are explicitly added to the graph.
- .
- pkg for the package graph where all dependencies are threated
uniformly and conflicts are not added to the graph.
- .
- strdeps the strong dependency graph. A package p strong depends on
q iff p cannot be installed if q is not installed.
- .
- strcnf
- .
- conj the conjunctive graph where only conjunctive dependencies are
considered.
- .
- dom
- -T format
- Specifies the output format to use. Default is cnf. Possible values
are:
- .
- cnf output in CNF format.
- .
- dimacs output in DIMACS format for CNF formulae.
- .
- cudf pretty-printed output in an RFC 822-like format
- .
- deb binary packages in deb822 format.
- .
- debsrc source packages in deb822 format.
- .
- dot a graph in Dot/GraphViz format.
- .
- gml a graph in GML format.
- .
- grml a graph in GraphML format.
- .
- table plain text output of three integer values: the universe size,
the number of edges in the dependency graph, the number of conflicts in
the universe.
Multi-arch annotations are handled by ceve. Packages whose's
architecture is neither the native architecture nor in the list of foreign
architectures (see below) are ignored.
- --deb-native-arch=name
- Specify the native architecture. The default behavior is to deduce the
native architecture from the first package stanza in the input that has an
architecture different from all.
- --deb-foreign-archs=name
[,name] ...
- Specify a comma-separated list of foreign architectures. The default is an
empty list of foreign architectures.
- --deb-ignore-essential
- By default all essential package are considered as a dependency of all
packages in the universe. This option allows the user to ignore essential
packages.
- --deb-host-arch=name
- Native/cross compile host architecture, defaults to native
architecture.
- --deb-builds-from
- Add builds-from relationship of binary packages on source packages as
dependency. This allows one to create graphs for bootstrapping
purposes.
- -P,
--deb-profiles=name[,name...]
- Comma separated list of activated build profiles.
- --deb-drop-b-d-indep
- Drop Build-Depends-Indep dependencies from Debian source packages.
- --deb-drop-b-d-arch
- Drop Build-Depends-Arch dependencies from Debian source packages.
Find all the reverse binary dependencies of the package
patchutils:
dose-ceve --deb-native-arch amd64 -r patchutils -T deb \
deb:///var/lib/apt/lists/*_dists_sid_main_binary-amd64_Packages \
| grep-dctrl -n -s Package '' | sort -u
Find all the source packages that (directly or indirectly) build
depend on patchutils:
dose-ceve -T debsrc --deb-native-arch=amd64 -r patchutils \
debsrc:///var/lib/apt/lists/*_dists_sid_main_source_Sources \
deb:///var/lib/apt/lists/*_dists_sid_main_binary-amd64_Packages \
| grep-dctrl -n -s Package '' | sort -u
Find the source packages (-T debsrc) that have in a relation
builds-from with all the binary package in the reverse dependency cone of
libssl-dev (a specific version constraint).
dose-ceve --deb-builds-from --deb-native-arch=amd64 -T debsrc \
-r 'libssl-dev (>= 0.9.8)' deb://Sid-amd64-Packages-050812.bz2 \
debsrc://Sid-Sources-050812.bz2