DESCRIPTION
botch is a collection of tools to create and analyze dependency graphs. This task is facilitated by a range of individual tools which use the deb822 and graphml formats to exchange information with each other.Also consider browsing the HTML based docbase Manual at /usr/share/doc/botch/wiki/Home.html
The tools that botch ships allow one to:
 analyze graphs


 botchcalcportsmetric: calculate source package importance
 botchcalculatefas: calculate a feedback arc set
 botchfindfvs: calculate a feedback vertex set
 botchgraphdifference: graph diff
 botchgraphinfo: show info about a buildgraph or sourcegraph
 botchpartialorder: calculate the partial vertex order
 botchprintstats: find cycles, selfcycles, amount of cycles through edges, feedback arc and vertex set, strong articulation points and bridges
 botchmultiarchinterpreterproblem: find all arch:all packages that allow switching architectures

 transform Packages and Sources control files


 botchlatestversion: only keep the latest version
 botchbin2src: convert binary packages to their source packages
 botchsrc2bin: turn source packages into their binary packages
 botchcleanrepository: clean errors in a repository by removing transitively uninstallable or compilable packages
 botchaddarch: add architecture to source packages
 botchconvertarch: convert the architecture of a Packages file
 botchremovevirtualdisjunctions: remove virtual dependency disjunctions
 botchoptuniv: self contained repository with minimal number of source packages
 botchfixcrossproblems: fix Packages files with the output of botchcrossproblems
 botchfiltersrcbuildsfor: filter a Sources file for the packages building for a certain architecture

 create graphs of different types


 botchcreategraph: create graph based on installation sets, strong dependency sets or dependency closures
 botchannotatestrong: add strong dependency information to a dependency graph

 analysis of Packages and Sources control files


 botchpackagesdiff: create a diff between two Packages or Sources files
 botchmadiff: diff two packages files for differences in their multiarch values
 botchapplymadiff: applies a multiarch diff as created by botchmadiff
 botchcheckmasameversions: check if MultiArch:same versions are in sync

 handling of botchinternal formats


 botchstathtml: turn the JSON output of botchprintstats into human readable HTML
 botchdroppablediff: difference between two *.droppable files
 botchdroppableunion: union of two *.droppable files
 botchcheckfas: check which edges in the fas are not droppable
 botchfasofstats: extract feedback arc set from output of botchprintstats
 botchdownloadpkgsrc: download Packages and Sources

 dose3 wrappers


 botchdose2html: turn the yaml output by dosebuilddebcheck into html
 botchbuildcheckmoreproblems: a tool like dosebuilddebcheck but return more than the first reason
 botchdistcheckmoreproblems: a tool like dosedistcheck but return more than the first reason

 set operations on Packages or Sources files


 botchpackagesdifference: calculate the asymmetric set difference
 botchpackagesintersection: calculate the set intersection
 botchpackagesunion: calculate the set union

 create build orders


 botchbuildfixpoint: find build order until dependency cycles occur
 botchbuildorderfromzero: find a build order for a nonexisting architecture
 botchwannabuildsortblockers: importance of source packages for ports

 conversion of graphs


 botchbuildgraph2srcgraph: converts a buildgraph into a srcgraph
 botchgraphml2dot: converts graphml to dot
 botchcollapsesrcgraph: make a srcgraph acyclic by collapsing its strongly connected components
 botchprofilebuildfvs: remove droppable dependencies from graph
 botchbuildgraph2packages: convert buildgraph to packages
 botchgraphtred: find the transitive reduction of a graph in GraphML or dot format
 botchgraph2text: for each vertex in a graph print a formatted line on standard output

 shell scripts connecting the tools for meaningful operations


 botchcross: execute botch tools in the cross phase
 botchnative: execute botch tools in the native phase
 botchtransition: calculate a transition order
 botchyunobootstrap: Find out why Debian cannot be bootstrapped.
 botchyubdtransitiveessential: Find out why source packages are BD transitive essential.

 extract regions from graphs


 botchgraphneighborhood: extract the neighborhood around a vertex
 botchextractscc: extract all strongly connected components
 botchgraphancestors: find all ancestors of a vertex in a graph in GraphML or dot format
 botchgraphdescendants: find all descendants of a vertex in a graph in GraphML or dot format
 botchgraphshortestpath: find the shortest path(s) between two vertices of a graph in GraphML or dot format
 botchgraphsinks: find all sinks (vertices without successors) in a graph in GraphML or dot format
 botchgraphsources: find all sources (vertices without predecessors) in a graph in GraphML or dot format

AUTHOR
This man page was written by Johannes Schauer. Botch is written by Johannes Schauer and Pietro Abate.COPYRIGHT
Copyright 20122014 Johannes Schauer, Pietro AbateThis program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. A special linking exception to the GNU Lesser General Public License applies to this library, see the COPYING file for more information.