.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "DOSE-CEVE 1" .TH DOSE-CEVE 1 2024-04-09 " " "DOSE Tools" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME ceve \- parse package metadata .SH SYNOPSIS .IX Header "SYNOPSIS" .IP "\fBceve\fR [\-h] [\-v] [\-c \fIpkgspec\fR] [\-r \fIpkgspec\fR] [\-\-depth=\fIn\fR]\fR [\-T \fIformat\fR] [\-G \fIgraph type\fR] [\-o \fIfilename\fR] \fIinput-spec\fR [\fIinput-spec\fR...]" 4 .IX Item "ceve [-h] [-v] [-c pkgspec] [-r pkgspec] [--depth=n] [-T format] [-G graph type] [-o filename] input-spec [input-spec...]" .SH DESCRIPTION .IX Header "DESCRIPTION" 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. .PP \&\fIinput-spec\fR is a url specifying the input format and the file to get the input from. For a possible list of schemes, see the \fB\-t\fR parameter. .PP Some examples of URLs: .IP . 4 deb://Packages.gz (the Debian file packages.gz in the current directory) .IP . 4 cudf:///home/examples/cudf/test.cudf (the CUDF file /home/examples/cudf/test.cudf) .SH OPTIONS .IX Header "OPTIONS" .SS "MISC OPTIONS" .IX Subsection "MISC OPTIONS" .IP "\fB\-h, \-\-help\fR" 8 .IX Item "-h, --help" This option displays the help message. .IP "\fB\-v, \-\-verbose\fR" 8 .IX Item "-v, --verbose" Be verbose. This option can be repeated for more verbosity. .IP \fB\-\-version\fR 8 .IX Item "--version" Show program's version and exit. .IP \fB\-\-progress\fR 8 .IX Item "--progress" Print progress bars. .IP \fB\-\-timers\fR 8 .IX Item "--timers" Print timing information. .IP \fB\-\-quiet\fR 8 .IX Item "--quiet" Do no print any messages. .SS "INPUT OPTIONS" .IX Subsection "INPUT OPTIONS" Dose3 accepts files compressed with \fBgzip\fR\|(1) or \fBbzip2\fR\|(1), depending on compile-time options. .IP "\fB\-t \fR\fIinput-spec\fR" 8 .IX Item "-t input-spec" Select the input type. Possible values are: .IP . 8 \&\fBcudf\fR Cudf file format .IP . 8 \&\fBpef\fR PEF file format. The PEF format (Package Exchange Format) is a generic 822 file format used to encode package dependencies. \fBdeb\fR, \fBopam\fR, \fBdebsrc\fR and \&\fBedsp\fR are all based on the pef format .IP . 8 \&\fBcsw\fR OpenCSW Solaris packages binary format .IP . 8 \&\fBopam\fR Opam Package universe in Opam/PEF format. This format is a 822 textual format encoding the opam universe. .IP . 8 \&\fBdeb\fR for Debian binary package files, also known as Packages files. .IP . 8 \&\fBdebsrc\fR for Debian source package files, also knows as Sources files. .IP . 8 \&\fBedsp\fR apt-get External Dependency Solver Protocol .IP . 8 \&\fBhdlist\fR RPM hdlists. Binary file format. .IP . 8 \&\fBsynthesis\fR urpmi synthesis hdlists. XML Based format .IP \fB\-\-trim\fR 8 .IX Item "--trim" Consider only installable packages. .IP "\fB\-\-latest\fR \fIn\fR" 8 .IX Item "--latest n" Consider only the latest \-\fIn\fR most recent versions of each package, older versions of packages are ignored. .IP "\fB\-c, \-\-cone=\fR\fIvpkglist\fR" 8 .IX Item "-c, --cone=vpkglist" The \fBmatch\fR 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 \fIpkgspec\fR is a list of packages (separated by a semicolon), where each package is specified as follows: (\fIname\fR,\fIversion\fR). .Sp This option extracts the union of the dependency cones of all packages selected by \fIvpkglist\fR. .Sp Example: =over 12 .IP "\-c 'golang\-golang\-x\-tools (= 1:0.0~git20150716.0.87156cb+dfsg1\-4),golang\-golang\-x\-tools\-dev'" 8 .IX Item "-c 'golang-golang-x-tools (= 1:0.0~git20150716.0.87156cb+dfsg1-4),golang-golang-x-tools-dev'" .PD 0 .IP "\fB\-r, \-\-rcone=\fR\fIvpkglist\fR" 8 .IX Item "-r, --rcone=vpkglist" .PD Using the same syntax as in \fB\-c\fR, this option use the reverse dependency relation to make the transitive closure. .IP "\fB\-\-depth \fR\fIn\fR" 8 .IX Item "--depth n" In combination with the \fB\-c\fR or \fB\-r\fR options, this specifies the maximum depth for the transitive closure. .IP "\fB\-\-request \fR\fIinstallation-request\fR" 8 .IX Item "--request installation-request" Specifies an installation request of the form "\fBinstall:\fR \fIvpkglist\fR" or "\fBremove:\fR \fIvpkglist\fR" or "\fBupgrade:\fR \fIvpkglist\fR" where \fIvpkglist\fR 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. .Sp Examples: .RS 8 .IP "\-\-request ""install: bash (< 2.0), exim (= 3.1\-debian1)"" \-\-request ""upgrade: apt-cudf""" 12 .IX Item "--request ""install: bash (< 2.0), exim (= 3.1-debian1)"" --request ""upgrade: apt-cudf""" .RE .RS 8 .RE .SS "OUTPUT OPTIONS" .IX Subsection "OUTPUT OPTIONS" .PD 0 .IP "\fB\-o, \-\-outfile=\fR\fIfilename\fR" 8 .IX Item "-o, --outfile=filename" .PD Instead of stdout, send output to the file \fIfilename\fR. .IP "\fB\-d, \-\-outdir=\fR\fIdirectory\fR" 8 .IX Item "-d, --outdir=directory" Set the output directory (default current directory) .IP \fB\-\-dot\fR 8 .IX Item "--dot" Save the explanation graph (one for each package) in dot format. .IP "\fB\-G \fR\fIgraph type\fR" 8 .IX Item "-G graph type" Specifies the graph type format to compute. This option must be used together with the option \fB\-T \fR\fIdot|gml|grml\fR. Default is \fBsyn\fR. Possible values are: .IP . 8 \&\fBsyn\fR for the syntactic graph where disjunctions nodes and conflicts are explicitly added to the graph. .IP . 8 \&\fBpkg\fR for the package graph where all dependencies are threated uniformly and conflicts are not added to the graph. .IP . 8 \&\fBstrdeps\fR the strong dependency graph. A package p strong depends on q iff p cannot be installed if q is not installed. .IP . 8 \&\fBstrcnf\fR .IP . 8 \&\fBconj\fR the conjunctive graph where only conjunctive dependencies are considered. .IP . 8 \&\fBdom\fR .IP "\fB\-T \fR\fIformat\fR" 8 .IX Item "-T format" Specifies the output format to use. Default is \fBcnf\fR. Possible values are: .IP . 8 \&\fBcnf\fR output in CNF format. .IP . 8 \&\fBdimacs\fR output in DIMACS format for CNF formulae. .IP . 8 \&\fBcudf\fR pretty-printed output in an RFC 822\-like format .IP . 8 \&\fBdeb\fR binary packages in deb822 format. .IP . 8 \&\fBdebsrc\fR source packages in deb822 format. .IP . 8 \&\fBdot\fR a graph in Dot/GraphViz format. .IP . 8 \&\fBgml\fR a graph in GML format. .IP . 8 \&\fBgrml\fR a graph in GraphML format. .IP . 8 \&\fBtable\fR 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. .SS "DEBIAN SPECIFIC OPTIONS" .IX Subsection "DEBIAN SPECIFIC OPTIONS" 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. .IP \fB\-\-deb\-native\-arch=\fR\fIname\fR 8 .IX Item "--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. .IP "\fB\-\-deb\-foreign\-archs=\fR\fIname\fR [,\fIname\fR] ..." 8 .IX Item "--deb-foreign-archs=name [,name] ..." Specify a comma-separated list of foreign architectures. The default is an empty list of foreign architectures. .IP \fB\-\-deb\-ignore\-essential\fR 8 .IX Item "--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. .IP \fB\-\-deb\-host\-arch=\fR\fIname\fR 8 .IX Item "--deb-host-arch=name" Native/cross compile host architecture, defaults to native architecture. .IP \fB\-\-deb\-builds\-from\fR 8 .IX Item "--deb-builds-from" Add builds-from relationship of binary packages on source packages as dependency. This allows one to create graphs for bootstrapping purposes. .IP "\fB\-P, \-\-deb\-profiles=\fR\fIname\fR[,\fIname\fR...]" 8 .IX Item "-P, --deb-profiles=name[,name...]" Comma separated list of activated build profiles. .IP \fB\-\-deb\-drop\-b\-d\-indep\fR 8 .IX Item "--deb-drop-b-d-indep" Drop Build-Depends-Indep dependencies from Debian source packages. .IP \fB\-\-deb\-drop\-b\-d\-arch\fR 8 .IX Item "--deb-drop-b-d-arch" Drop Build-Depends-Arch dependencies from Debian source packages. .SH EXAMPLES .IX Header "EXAMPLES" Find all the reverse binary dependencies of the package \fBpatchutils\fR: .PP .Vb 3 \& dose\-ceve \-\-deb\-native\-arch amd64 \-r patchutils \-T deb \e \& deb:///var/lib/apt/lists/*_dists_sid_main_binary\-amd64_Packages \e \& | grep\-dctrl \-n \-s Package \*(Aq\*(Aq | sort \-u .Ve .PP Find all the source packages that (directly or indirectly) build depend on \&\fBpatchutils\fR: .PP .Vb 4 \& dose\-ceve \-T debsrc \-\-deb\-native\-arch=amd64 \-r patchutils \e \& debsrc:///var/lib/apt/lists/*_dists_sid_main_source_Sources \e \& deb:///var/lib/apt/lists/*_dists_sid_main_binary\-amd64_Packages \e \& | grep\-dctrl \-n \-s Package \*(Aq\*(Aq | sort \-u .Ve .PP Find the source packages (\-T debsrc) that have in a relation builds-from with all the binary package in the reverse dependency cone of \fBlibssl-dev\fR (a specific version constraint). .PP .Vb 3 \& dose\-ceve \-\-deb\-builds\-from \-\-deb\-native\-arch=amd64 \-T debsrc \e \& \-r \*(Aqlibssl\-dev (>= 0.9.8)\*(Aq deb://Sid\-amd64\-Packages\-050812.bz2 \e \& debsrc://Sid\-Sources\-050812.bz2 .Ve