botch(1)

bootstrap/build order tool chain

Section 1 botch bookworm source

Description

botch

NAME

botch - bootstrap/build order tool chain

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 doc-base Manual at /usr/share/doc/botch/wiki/Home.html

The tools that botch ships allow one to:
set operations on Packages or Sources files

botch-packages-difference: calculate the asymmetric set difference
botch-packages-intersection
: calculate the set intersection
botch-packages-union
: calculate the set union

transform Packages and Sources control files

botch-latest-version: only keep the latest version
botch-bin2src
: convert binary packages to their source packages
botch-src2bin
: turn source packages into their binary packages
botch-clean-repository
: clean errors in a repository by removing
transitively uninstallable or compilable packages
botch-add-arch
: add architecture to source packages
botch-convert-arch
: convert the architecture of a Packages file
botch-remove-virtual-disjunctions
: remove virtual dependency
disjunctions
botch-optuniv
: self contained repository with minimal number of source
packages
botch-fix-cross-problems
: fix Packages files with the output of
botch-cross-problems
botch-filter-src-builds-for
: filter a Sources file for the packages
building for a certain architecture

analysis of Packages and Sources control files

botch-packages-diff: create a diff between two Packages or Sources
files
botch-ma-diff
: diff two packages files for differences in their
multiarch values
botch-apply-ma-diff
: applies a multiarch diff as created by
botch-ma-diff
botch-check-ma-same-versions
: check if Multi-Arch:same versions are in
sync

create graphs of different types

botch-create-graph: create graph based on installation sets, strong
dependency sets or dependency closures
botch-annotate-strong
: add strong dependency information to a
dependency graph

conversion of graphs

botch-buildgraph2srcgraph: converts a buildgraph into a srcgraph
botch-graphml2dot
: converts graphml to dot
botch-collapse-srcgraph
: make a srcgraph acyclic by collapsing its
strongly connected components
botch-profile-build-fvs
: remove droppable dependencies from graph
botch-buildgraph2packages
: convert buildgraph to packages
botch-graph-tred
: find the transitive reduction of a graph in GraphML
or dot format
botch-graph2text
: for each vertex in a graph print a formatted line on
standard output

extract regions from graphs

botch-graph-neighborhood: extract the neighborhood around a vertex
botch-extract-scc
: extract all strongly connected components
botch-graph-ancestors
: find all ancestors of a vertex in a graph in
GraphML or dot format
botch-graph-descendants
: find all descendants of a vertex in a graph in
GraphML or dot format
botch-graph-shortest-path
: find the shortest path(s) between two
vertices of a graph in GraphML or dot format
botch-graph-sinks
: find all sinks (vertices without successors) in a
graph in GraphML or dot format
botch-graph-sources
: find all sources (vertices without predecessors)
in a graph in GraphML or dot format

dose3 wrappers

botch-dose2html: turn the yaml output by dose-builddebcheck into html
botch-buildcheck-more-problems
: a tool like dose-builddebcheck but
return more than the first reason
botch-distcheck-more-problems
: a tool like dose-distcheck but return
more than the first reason

analyze graphs

botch-calcportsmetric: calculate source package importance
botch-calculate-fas
: calculate a feedback arc set
botch-find-fvs
: calculate a feedback vertex set
botch-graph-difference
: graph diff
botch-graph-info
: show info about a buildgraph or sourcegraph
botch-partial-order
: calculate the partial vertex order
botch-print-stats
: find cycles, selfcycles, amount of cycles through
edges, feedback arc and vertex set, strong articulation points and
bridges
botch-multiarch-interpreter-problem
: find all arch:all packages that
allow switching architectures

create build orders

botch-build-fixpoint: find build order until dependency cycles occur
botch-build-order-from-zero
: find a build order for a non-existing
architecture
botch-wanna-build-sortblockers
: importance of source packages for ports

handling of botch-internal formats

botch-stat-html: turn the JSON output of botch-print-stats into human
readable HTML
botch-droppable-diff
: difference between two *.droppable files
botch-droppable-union
: union of two *.droppable files
botch-checkfas
: check which edges in the fas are not droppable
botch-fasofstats
: extract feedback arc set from output of
botch-print-stats
botch-download-pkgsrc
: download Packages and Sources

shell scripts connecting the tools for meaningful operations

botch-cross: execute botch tools in the cross phase
botch-native
: execute botch tools in the native phase
botch-transition
: calculate a transition order
botch-y-u-no-bootstrap
: Find out why Debian cannot be bootstrapped.
botch-y-u-b-d-transitive-essential
: Find out why source packages are
B-D transitive essential.

SEE ALSO

Debian doc-base Manual /usr/share/doc/botch/wiki/Home.html

AUTHOR

This man page was written by Johannes Schauer. Botch is written by Johannes Schauer and Pietro Abate.

COPYRIGHT

Copyright 2012-2014 Johannes Schauer, Pietro Abate

This 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.