botch(1)

✨ botch β€” bootstrap/build order tool chain ✨

okay bestie, sit down, hydrate, because botch is a whole tool chain and it is lowkey iconic πŸ’–


🌸 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. no cap, that's the whole vibe πŸ’«

Also consider browsing the HTML based doc-base Manual at /usr/share/doc/botch/wiki/Home.html β€” it's giving very much "read the docs, bestie" energy πŸ“–βœ¨

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. absolute legends, fr fr πŸ‘‘


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.


πŸ’Œ okay that's the whole page bestie β€” this one's perl v5.36.0, dated 2023-02-17, and it's the botch(1) page. go forth and bootstrap, you absolute main character πŸ¦‹βœ¨
πŸ“¦ where this page comes from