|
Usage: opkg-graph-deps [-h] [-d] [-o feed.dot] [-u <Base_feed_URL>]
<Paths_to_Packages_files>
Generates a dot formatted dependency graph of an IPK feed.
The feed is specified by a list of IPK index (Packages) files, which
are sourced in the order specified to build a dependency graph. Last
index to declare a package wins, but also generates a warning to stderr.
Only the flat index format is supported -- I.e. only Packages files,
not Packages.gz files.
Possible warnings:
Duplicate package: package appears in more than one index.
Broken dependency: no package satisfies a declared dependency.
Self alias: package declares an alias on it's own name.
Virtual-real alias: package attempts to provide a real package.
Missing field: package is missing a required field.
If a base feed URL is specified (-u), each node will include an 'href'
to the associated IPK file. This is purely cosmetic. E.g. It can be used
to create clickable links on a rendered graph. Using it has no effect
on the set of packages or dependencies. It's assumed the specified
base feed URL hosts the current working directory, so the resulting
href's are generated by joining the base and a relative IPK path.
The resulting feed graph is written to './feed.dot' or an alternate
path specified by the caller. Nodes represent real packages (not
aliases)
and edges represent dependencies.
Node attributes:
(node name): Package name from feed index (without version or arch)
label: [Package name] [ipkArchitecture] [ipkVersion]
ipkArchitecture: Architecture name from feed index
ipkVersion: The full version number from feed index
ipkMissing: Set to "1" when the ipk is not actually in feed, but has
one or inbound dependencies.
href: URL to the IPK file. Only if optional base URL is specified.
Edge attributes:
(from) The package name declaring a dependency
(to) The (de-aliased) package name (from) depends on
ipkProvides: The alias of (to) which (from) depends on. Only set when
the alias != (to).
ipkBrokenDep: Set to "1" if (to) is missing from the feed.
Signed-off-by: Haris Okanovic <haris.okanovic@ni.com>
Reviewed-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
|