neulab/tldr huggingface dataset:
FB2 OUTPUT OPTIONS --fb2-genre Genre for the book. Choices: sf_history, sf_action, sf_epic, sf_heroic, sf_detective, sf_cyberpunk, sf_space, sf_social, sf_horror, sf_humor, sf_fantasy, sf, det_classic, det_police, det_action, det_irony, det_history, det_espionage, det_crime, det_political, det_maniac, det_hard, thriller, detective, prose_classic, prose_history, prose_contemporary, prose_counter, prose_rus_classic, prose_su_classics, love_contemporary, love_history, love_detective, love_short, love_erotica, adv_western, adv_history, adv_indian, adv_maritime, adv_geo, adv_animal, adventure, child_tale, child_verse, child_prose, child_sf, child_det, child_adv, child_education, children, poetry, dramaturgy, antique_ant, antique_european, antique_russian, antique_east, antique_myths, antique, sci_history, sci_psychology, sci_culture, sci_religion, sci_philosophy, sci_politics, sci_business, sci_juris, sci_linguistic, sci_medicine, sci_phys, sci_math, sci_chem, sci_biology, sci_tech, science, comp_www, comp_programming, comp_hard, comp_soft, comp_db, comp_osnet, computers, ref_encyc, ref_dict, ref_ref, ref_guide, reference, nonf_biography, nonf_publicism, nonf_criticism, design, nonfiction, religion_rel, religion_esoterics, religion_self, religion, humor_anecdote, humor_prose, humor_verse, humor, home_cooking, home_pets, home_crafts, home_entertain, home_health, home_garden, home_diy, home_sport, home_sex, home   See: http://www.fictionbook.org/index.php/Eng:FictionBook_2.1_genres for a complete list with descriptions.
--sectionize Specify how sections are created:  * nothing: A single section  * files: Section per file  * toc: Section per entry in the ToC If ToC based generation fails, adjust the "Structure detection" and/or "Table of Contents" settings (turn on "Force use of auto-generated Table of Contents").
--extract-to Extract the contents of the generated ZIP file to the specified folder. WARNING: The contents of the folder will be deleted.
--template-css CSS file used for the output instead of the default file
--template-html Template used for the generation of the HTML contents of the book instead of the default file
--template-html-index Template used for generation of the HTML index file instead of the default file
--htmlz-class-style How to handle the CSS when using css-type = 'class'. Default is external. external: Use an external CSS file inline: Use a <style> tag in the HTML file
--htmlz-css-type Specify the handling of CSS. Default is class. class: Use CSS classes inline: Use the style attribute tag: Use HTML tags wherever possible
--htmlz-title-filename If set this option causes the file name of the HTML file inside the HTMLZ archive to be based on the book title.
--enable-autorotation Enable auto-rotation of images that are wider than the screen width.
--header Add a header to all the pages with title and author.
--header-format Set the format of the header. %a is replaced by the author and %t by the title. Default is %t by %a
--header-separation Add extra spacing below the header. Default is 0 pt.
--minimum-indent Minimum paragraph indent (the indent of the first line of a paragraph) in pts. Default: 0
--mono-family The monospace family of fonts to embed
--render-tables-as-images This option has no effect
--sans-family The sans-serif family of fonts to embed
--serif-family The serif family of fonts to embed
--text-size-multiplier-for-rendered-tables Multiply the size of text in rendered tables by this factor. Default is 1.0
--wordspace Set the space between words in pts. Default is 2.5
--dont-compress Disable compression of the file contents.
--extract-to Extract the contents of the generated MOBI file to the specified folder. The contents of the folder are first deleted, so be careful.
--mobi-file-type By default calibre generates MOBI files that contain the old MOBI 6 format. This format is compatible with all devices. However, by changing this setting, you can tell calibre to generate MOBI files that contain both MOBI 6 and the new KF8 format, or only the new KF8 format. KF8 has more features than MOBI 6, but only works with newer Kindles. Allowed values: old, both, new
--mobi-ignore-margins Ignore margins in the input document. If False, then the MOBI output plugin will try to convert margins specified in the input document, otherwise it will ignore them.
--mobi-keep-original-images By default calibre converts all images to JPEG format in the output MOBI file. This is for maximum compatibility as some older MOBI viewers have problems with other image formats. This option tells calibre not to do this. Useful if your document contains lots of GIF/PNG images that become very large when converted to JPEG.
--personal-doc Tag for MOBI files to be marked as personal documents. This option has no effect on the conversion. It is used only when sending MOBI files to a device. If the file being sent has the specified tag, it will be marked as a personal document when sent to the Kindle.
--format, -f Format to use inside the PDB container. Choices are: ['doc', 'ereader', 'ztxt']
--inline-toc Add Table of Contents to beginning of the book.
--pdb-output-encoding Specify the character encoding of the output document. The default is cp1252. Note: This option is not honored by all formats.
--custom-size Custom size of the document. Use the form widthxheight e.g. 123x321 to specify the width and height. This overrides any specified paper-size.
--paper-size The size of the paper. This size will be overridden when a non default output profile is used. Default is letter. Choices are a0, a1, a2, a3, a4, a5, a6, b0, b1, b2, b3, b4, b5, b6, legal, letter
--pdf-add-toc Add a Table of Contents at the end of the PDF that lists page numbers. Useful if you want to print out the PDF. If this PDF is intended for electronic use, use the PDF Outline instead.
--pdf-default-font-size The default font size
--pdf-footer-template An HTML template used to generate footers on every page. The strings _PAGENUM_, _TITLE_, _AUTHOR_ and _SECTION_ will be replaced by their current values.
--pdf-header-template An HTML template used to generate headers on every page. The strings _PAGENUM_, _TITLE_, _AUTHOR_ and _SECTION_ will be replaced by their current values.
--pdf-hyphenate Break long words at the end of lines. This can give the text at the right margin a more even appearance.
--pdf-mark-links Surround all links with a red box, useful for debugging.
--pdf-mono-family The font family used to render monospace fonts. Will work only if the font is available system-wide.
--pdf-mono-font-size The default font size for monospaced text
--pdf-odd-even-offset Shift the text horizontally by the specified offset (in pts). On odd numbered pages, it is shifted to the right and on even numbered pages to the left. Use negative numbers for the opposite effect. Note that this setting is ignored on pages where the margins are smaller than the specified offset. Shifting is done by setting the PDF CropBox, not all software respects the CropBox.
--pdf-page-margin-bottom The size of the bottom page margin, in pts. Default is 72pt. Overrides the common bottom page margin setting, unless set to zero.
--pdf-page-margin-left The size of the left page margin, in pts. Default is 72pt. Overrides the common left page margin setting.
--pdf-page-margin-right The size of the right page margin, in pts. Default is 72pt. Overrides the common right page margin setting, unless set to zero.
--pdf-page-margin-top The size of the top page margin, in pts. Default is 72pt. Overrides the common top page margin setting, unless set to zero.
--pdf-page-number-map Adjust page numbers, as needed. Syntax is a JavaScript expression for the page number. For example, "if (n < 3) 0; else n - 3;", where n is current page number.
--pdf-page-numbers Add page numbers to the bottom of every page in the generated PDF file. If you specify a footer template, it will take precedence over this option.
--pdf-sans-family The font family used to render sans-serif fonts. Will work only if the font is available system-wide.
--pdf-serif-family The font family used to render serif fonts. Will work only if the font is available system-wide.
--pdf-standard-font The font family used to render monospace fonts
--pdf-use-document-margins Use the page margins specified in the input document via @page CSS rules. This will cause the margins specified in the conversion settings to be ignored. If the document does not specify page margins, the conversion settings will be used as a fallback.
--preserve-cover-aspect-ratio Preserve the aspect ratio of the cover, instead of stretching it to fill the full first page of the generated PDF.
--toc-title Title for generated table of contents.
--uncompressed-pdf Generate an uncompressed PDF, useful for debugging.
--unit, -u The unit of measure for page sizes. Default is inch. Choices are millimeter, centimeter, point, inch, pica, didot, cicero, devicepixel Note: This does not override the unit for margins!
--use-profile-size Instead of using the paper size specified in the PDF Output options, use a paper size corresponding to the current output profile. Useful if you want to generate a PDF for viewing on a specific device.
--full-image-depth Do not reduce the size or bit depth of images. Images have their size and depth reduced by default to accommodate applications that can not convert images on their own such as Dropbook.
--pml-output-encoding Specify the character encoding of the output document. The default is cp1252.
--snb-dont-indent-first-line Specify whether or not to insert two space characters to indent the first line of each paragraph.
--snb-full-screen Resize all the images for full screen mode.
--snb-hide-chapter-name Specify whether or not to hide the chapter title for each chapter. Useful for image-only output (eg. comics).
--snb-insert-empty-line Specify whether or not to insert an empty line between two paragraphs.
--snb-max-line-length The maximum number of characters per line. This splits on the first space before the specified value. If no space is found the line will be broken at the space after and will exceed the specified value. Also, there is a minimum of 25 characters. Use 0 to disable line splitting.
--snb-output-encoding Specify the character encoding of the output document. The default is utf-8.
--tcr-output-encoding Specify the character encoding of the output document. The default is utf-8.
--force-max-line-length Force splitting on the max-line-length value when no space is present. Also allows max-line-length to be below the minimum
--keep-color Do not remove font color from output. This is only useful when TXT output formatting is set to textile. Textile is the only formatting that supports setting font color. If this option is not specified font color will not be set and default to the color displayed by the reader (generally this is black).
--keep-image-references Do not remove image references within the document. This is only useful when paired with a TXT output formatting option that is not none because links are always removed with plain text output.
--keep-links Do not remove links within the document. This is only useful when paired with a TXT output formatting option that is not none because links are always removed with plain text output.
--max-line-length The maximum number of characters per line. This splits on the first space before the specified value. If no space is found the line will be broken at the space after and will exceed the specified value. Also, there is a minimum of 25 characters. Use 0 to disable line splitting.
--newline, -n Type of newline to use. Options are ['old_mac', 'system', 'unix', 'windows']. Default is 'system'. Use 'old_mac' for compatibility with Mac OS 9 and earlier. For macOS use 'unix'. 'system' will default to the newline type used by this OS.
--txt-output-encoding Specify the character encoding of the output document. The default is utf-8.
--txt-output-formatting Formatting used within the document. * plain: Plain text * markdown: Markdown formatted text * textile: TexTile formatted text
Kovid Goyal
dc(1)                        General Commands Manual                       dc(1)
dc - an arbitrary precision calculator
dc [-V] [--version] [-h] [--help] [-e scriptexpression] [--expression=scriptexpression] [-f scriptfile] [--file=scriptfile] [file ...]
dc is a reverse-polish desk calculator which supports unlimited precision arithmetic.  It also allows you to define and call macros.  Normally dc reads from the standard input; if any command arguments are given to it, they are filenames, and dc reads and executes the contents of the files before reading from standard input.  All normal output is to standard output; all error output is to standard error.
A reverse-polish calculator stores numbers on a stack.  Entering a number pushes it on the stack.  Arithmetic operations pop arguments off the stack and push the results.
To enter a number in dc, type the digits (using upper case letters A through F as "digits" when working with input bases greater than ten), with an optional decimal point.  Exponential notation is not supported. To enter a negative number, begin the number with ``_''.  ``-'' cannot be used for this, as it is a binary operator for subtraction instead.  To enter two numbers in succession, separate them with spaces or newlines. These have no meaning as commands.
dc may be invoked with the following command-line options:
--version Print out the version of dc that is being run and a copyright notice, then exit.
--help Print a usage message briefly summarizing these command-line options and the bug-reporting address, then exit.
-e script
--expression=script Add the commands in script to the set of commands to be run while processing the input.
-f script-file
--file=script-file Add the commands contained in the file script-file to the set of commands to be run while processing the input.
If any command-line parameters remain after processing the above, these parameters are interpreted as the names of input files to be processed. A file name of - refers to the standard input stream.  The standard input will processed if no script files or expressions are specified.
Printing Commands p      Prints the value on the top of the stack, without altering the stack.  A newline is printed after the value.
n      Prints the value on the top of the stack, popping it off, and does not print a newline after.
P      Pops off the value on top of the stack.  If it it a string, it is simply printed without a trailing newline.  Otherwise it is a number, and the integer portion of its absolute value is printed out as a "base (UCHAR_MAX+1)" byte stream.  Assuming that (UCHAR_MAX+1) is 256 (as it is on most machines with 8-bit bytes), the sequence KSK0k1/_1Ss [ls*]Sxd0>x [256~Ssd0<x]dsxxsx[q]Sq[Lsd0>qaPlxx] dsxxsx0sqLqsxLxLK+k could also accomplish this function.  (Much of the complexity of the above native-dc code is due to the ~ computing the characters backwards, and the desire to ensure that all registers wind up back in their original states.)
f      Prints the entire contents of the stack without altering anything. This is a good command to use if you are lost or want to figure out what the effect of some command has been.
Arithmetic +      Pops two values off the stack, adds them, and pushes the result. The precision of the result is determined only by the values of the arguments, and is enough to be exact.
-      Pops two values, subtracts the first one popped from the second one popped, and pushes the result.
*      Pops two values, multiplies them, and pushes the result.  The number of fraction digits in the result depends on the current precision value and the number of fraction digits in the two arguments.
/      Pops two values, divides the second one popped from the first one popped, and pushes the result.  The number of fraction digits is specified by the precision value.
%      Pops two values, computes the remainder of the division that the / command would do, and pushes that.  The value computed is the same as that computed by the sequence Sd dld/ Ld*- .
~      Pops two values, divides the second one popped from the first one popped.  The quotient is pushed first, and the remainder is pushed next.  The number of fraction digits used in the division is specified by the precision value.  (The sequence SdSn lnld/ LnLd% could also accomplish this function, with slightly different error checking.)
^      Pops two values and exponentiates, using the first value popped as the exponent and the second popped as the base.  The fraction part of the exponent is ignored.  The precision value specifies the number of fraction digits in the result.
|      Pops three values and computes a modular exponentiation.  The first value popped is used as the reduction modulus; this value must be a non-zero number, and should be an integer.  The second popped is used as the exponent; this value must be a non-negative number, and any fractional part of this exponent will be ignored. The third value popped is the base which gets exponentiated, which should be an integer.  For small integers this is like the sequence Sm^Lm%, but, unlike ^, this command will work with arbitrarily large exponents.
v      Pops one value, computes its square root, and pushes that.  The maximum of the precision value and the precision of the argument is used to determine the number of fraction digits in the result.
Most arithmetic operations are affected by the ``precision value'', which you can set with the k command.  The default precision value is zero, which means that all arithmetic except for addition and subtraction produces integer results.
Stack Control c      Clears the stack, rendering it empty.
d      Duplicates the value on the top of the stack, pushing another copy of it.  Thus, ``4d*p'' computes 4 squared and prints it.
r      Reverses the order of (swaps) the top two values on the stack. (This can also be accomplished with the sequence SaSbLaLb.)
R      Pops the top-of-stack as an integer n.  Cyclically rotates the top n items on the updated stack.  If n is positive, then the rotation direction will make the topmost element the second-from top; if n is negative, then the rotation will make the topmost element the n-th element from the top.  If the stack depth is less than n, then the entire stack is rotated (in the appropriate direction), without any error being reported.
Registers dc provides at least 256 memory registers, each named by a single character.  You can store a number or a string in a register and retrieve it later.
sr     Pop the value off the top of the stack and store it into register r.
lr     Copy the value in register r and push it onto the stack.  The value 0 is retrieved if the register is uninitialized.  This does not alter the contents of r.
Each register also contains its own stack.  The current register value is the top of the register's stack.
Sr     Pop the value off the top of the (main) stack and push it onto the stack of register r.  The previous value of the register becomes inaccessible.
Lr     Pop the value off the top of register r's stack and push it onto the main stack.  The previous value in register r's stack, if any, is now accessible via the lr command.
Parameters dc has three parameters that control its operation: the precision, the input radix, and the output radix.  The precision specifies the number of fraction digits to keep in the result of most arithmetic operations.  The input radix controls the interpretation of numbers typed in; all numbers typed in use this radix.  The output radix is used for printing numbers.
The input and output radices are separate parameters; you can make them unequal, which can be useful or confusing.  The input radix must be between 2 and 16 inclusive.  The output radix must be at least 2.  The precision must be zero or greater.  The precision is always measured in decimal digits, regardless of the current input or output radix.
i      Pops the value off the top of the stack and uses it to set the input radix.
o      Pops the value off the top of the stack and uses it to set the output radix.
k      Pops the value off the top of the stack and uses it to set the precision.
I      Pushes the current input radix on the stack.
O      Pushes the current output radix on the stack.
K      Pushes the current precision on the stack.
Strings dc has a limited ability to operate on strings as well as on numbers; the only things you can do with strings are print them and execute them as macros (which means that the contents of the string are processed as dc commands).  All registers and the stack can hold strings, and dc always knows whether any given object is a string or a number.  Some commands such as arithmetic operations demand numbers as arguments and print errors if given strings.  Other commands can accept either a number or a string; for example, the p command can accept either and prints the object according to its type.
[characters] Makes a string containing characters (contained between balanced [ and ] characters), and pushes it on the stack.  For example, [foo]P prints the characters foo (with no newline).
a      The top-of-stack is popped.  If it was a number, then the low- order byte of this number is converted into a string and pushed onto the stack.  Otherwise the top-of-stack was a string, and the first character of that string is pushed back.
x      Pops a value off the stack and executes it as a macro.  Normally it should be a string; if it is a number, it is simply pushed back onto the stack.  For example, [1p]x executes the macro 1p which pushes 1 on the stack and prints 1 on a separate line.
Macros are most often stored in registers; [1p]sa stores a macro to print 1 into register a, and lax invokes this macro.
>r     Pops two values off the stack and compares them assuming they are numbers, executing the contents of register r as a macro if the original top-of-stack is greater.  Thus, 1 2>a will invoke register a's contents and 2 1>a will not.
!>r    Similar but invokes the macro if the original top-of-stack is not greater than (less than or equal to) what was the second-to-top.
<r     Similar but invokes the macro if the original top-of-stack is less.
!<r    Similar but invokes the macro if the original top-of-stack is not less than (greater than or equal to) what was the second-to-top.
=r     Similar but invokes the macro if the two numbers popped are equal.
!=r    Similar but invokes the macro if the two numbers popped are not equal.
?      Reads a line from the terminal and executes it.  This command allows a macro to request input from the user.
q      exits from a macro and also from the macro which invoked it.  If called from the top level, or from a macro which was called directly from the top level, the q command will cause dc to exit.
Q      Pops a value off the stack and uses it as a count of levels of macro execution to be exited.  Thus, 3Q exits three levels.  The Q command will never cause dc to exit.
Status Inquiry Z      Pops a value off the stack, calculates the number of decimal digits it has (or number of characters, if it is a string) and pushes that number.  The digit count for a number does not include any leading zeros, even if those appear to the right of the radix point.
X      Pops a value off the stack, calculates the number of fraction digits it has, and pushes that number.  For a string, the value pushed is 0.
z      Pushes the current stack depth: the number of objects on the stack before the execution of the z command.
Miscellaneous !      Will run the rest of the line as a system command.  Note that parsing of the !<, !=, and !> commands take precedence, so if you want to run a command starting with <, =, or > you will need to add a space after the !.
#      Will interpret the rest of the line as a comment.
:r     Will pop the top two values off of the stack.  The old second-to- top value will be stored in the array r, indexed by the old top- of-stack value.
;r     Pops the top-of-stack and uses it as an index into the array r. The selected value is then pushed onto the stack.
Note that each stacked instance of a register has its own array associated with it.  Thus 1 0:a 0Sa 2 0:a La 0;ap will print 1, because the 2 was stored in an instance of 0:a that was later popped.
Email bug reports to bug-dc@gnu.org.
XETEX(1)                     General Commands Manual                    XETEX(1)
xetex - extended TeX with native support for Unicode, OpenType, system fonts
xetex [options] [&format] [file|\commands]
XeTeX (xetex) is a TeX engine with native support for Unicode, OpenType, and system-installed fonts, using third-party libraries (such as ICU, HarfBuzz, and Freetype). It was developed by Jonathan Kew for SIL.
XeTeX includes the e-TeX extensions and many extensions from pdfTeX, sometimes with different primitive names.
XeTeX is now released as part of TeX Live <https://tug.org/texlive>.
XeTeX's handling of its command-line arguments is similar to that of the other TeX programs in the Web2C implementation.  Here we list only additions/deletions of command line options which are specific to XeTeX; see etex(1) for common options. Additions:
-no-pdf Generate XeTeX's extended DVI (.xdv) output instead of pdf.
-output-driver cmd Run cmd instead of xdvipdfmx to translate xdv to pdf.
-papersize string Set pdf media size to string.
Removals: -draftmode, -enc, -ipc, -ipc-start, -translate-file.
tex(1), etex(1), latex(1). Home page: <https://tug.org/xetex> CTAN page: <https://ctan.org/pkg/xetex> Reference manual: <https://ctan.org/pkg/xetexref>
XeTeX is maintained by Jonathan Kew and others. Public discussion list: <http://lists.tug.org/xetex> Bug reports: <http://sourceforge.net/p/xetex/bugs/>
This manual page was written by Karl Berry. It is released to the public domain.
NSIS(1)                          makensis manual                         NSIS(1)
makensis - A program to create Windows installers.
makensis [script.nsi] [-CMDHELP item] [-HDRINFO] [-LICENSE] [-VERSION] [-Vx] [-WX] [-Ofile] [-PAUSE] [-NOCONFIG] [-NOCD] [-INPUTCHARSET charset] [-PPO] [-SAFEPPO] [-Ddefine=value] [-Xscriptcmd]
This manual page documents briefly the makensis command.
This manual page was written for the Debian (TM) distribution because the original program does not have a manual page. Instead, it has documentation in the HTML format; see below.
makensis is a program that creates installer programs for Windows.
Parameters are processed by order (-Ddef ins.nsi != ins.nsi -Ddef) for script file name, you can use - to read from the standard input. For a complete description, see the HTML files.
-Vx Verbosity where x is 4=all, 3=no script, 2=no info, 1=no warnings, 0=none.
-WX Treat warnings as errors
-Ofile Specifies a text file to log compiler output (default is stdout).
-PAUSE Pauses after execution.
-NOCONFIG Disables inclusion of /etc/nsisconf.nsh.
-NOCD Disable changing the current directory to that of the .nsi file.
-INPUTCHARSET charset Specifies a specific codepage for files without a BOM. The following choice of charsets is supported: <ACP|OEM|CP#|UTF8|UTF16<LE|BE>>
-PPO Run only the preprocessor and print the result to stdout.
-SAFEPPO Same as -PPO but instructions like !appendfile or !system are not executed.
-Ddefine=value Defines the symbol "define" for the script to [value].
-Xscriptcmd Executes scriptcmd in the script (i.e. "-XOutFile poop.exe")
-CMDHELP item Prints out help for 'item', or lists all commands.
-HDRINFO Prints information about what options makensis was compiled with.
-LICENSE Prints the makensis software license.
-VERSION Prints the makensis version and exits.
/etc/nsisconf.nsh System wide configuration file.
~/.nsisconf.nsh Per-user configuration file.
NSIS is documented more fully in the HTML files in /usr/share/doc/nsis/Docs.
Paul Wise <pabs@debian.org> This manual page was written initially by Paul Wise <pabs@debian.org> for the Debian (TM) system.
Thomas Gaugler updated the man page to reflect changes introduced with version 3.0.
Copyright Â© 2005-2016 Paul Wise, Thomas Gaugler
DIFFOSCOPE(1)                     User Commands                    DIFFOSCOPE(1)
diffoscope - in-depth comparison of files, archives, and directories
diffoscope --help diffoscope [OPTIONS] [--json output_diff] path1 path2 diffoscope [OPTIONS] diff diffoscope [OPTIONS] < diff
()                                                                            ()
diffoscope will try to get to the bottom of what makes files or directories different. It will recursively unpack archives of many kinds and transform various binary formats into more human-readable form to compare them. It can compare two tarballs, ISO images, or PDF just as easily.
It can be scripted through error codes, and a report can be produced with the detected differences. The report can be text or HTML.  When no type of report has been selected, diffoscope defaults to write a text report on the standard output.
diffoscope was initially started by the "reproducible builds" Debian project and now being developed as part of the (wider) ???Reproducible Builds??? initiative.  It is meant to be able to quickly understand why two builds of the same package produce different outputs. diffoscope was previously named debbindiff.
See the COMMAND-LINE EXAMPLES section further below to get you started, as well as more detailed explanations of all the command-line options. The same information is also available in /usr/share/doc/diffoscope/README.rst or similar.
path1  First file or directory to compare.
path2  Second file or directory to compare.
optional arguments: --debug Display debug messages
--pdb  Open the Python pdb debugger in case of crashes
--status-fd FD Send machine-readable status to file descriptor FD
--progress, --no-progress Show an approximate progress bar. Default: yes if stdin is a tty, otherwise no.
--no-default-limits Disable most default output limits and diff calculation limits.
--load-existing-diff INPUT_FILE Load existing diff from file. Specify "-" to read a diffoscope diff from stdin.
output types: --text OUTPUT_FILE Write plain text output to given file (use - for stdout)
--text-color WHEN When to output color diff. WHEN is one of {never, auto, always}. Default: auto, meaning yes if the output is a terminal, otherwise no.
--output-empty If there was no difference, then output an empty diff for each output type that was specified. In --text output, an empty file is written.
--html OUTPUT_FILE Write HTML report to given file (use - for stdout)
--html-dir OUTPUT_DIR Write multi-file HTML report to given directory
--css URL Link to an extra CSS for the HTML report
--jquery URL URL link to jQuery, for --html and --html-dir output.  If this is a non-existent relative URL, diffoscope will create a symlink to a system installation. (Paths searched: /usr/share/javascript/jquery/jquery.js.) If not given, --html output will not use JS but --htmldir will if it can be found; give "disable" to disable JS on all outputs.
--json OUTPUT_FILE Write JSON text output to given file (use - for stdout)
--markdown OUTPUT_FILE Write Markdown text output to given file (use - for stdout)
--restructured-text OUTPUT_FILE Write RsT text output to given file (use - for stdout)
--difftool TOOL Compare differences one-by-one using the specified external command similar to git-difftool(1)
--profile [OUTPUT_FILE] Write profiling info to given file (use - for stdout)
output limits: --diff-context LINES Lines of unified diff context to show. (default: 7)
--max-text-report-size BYTES Maximum bytes written in --text report. (0 to disable, default: 0)
--max-report-size BYTES Maximum bytes of a report in a given format, across all of its pages. Note that some formats, such as --html, may be restricted by even smaller limits such as --max-page-size. (0 to disable, default: 41943040)
--max-diff-block-lines LINES Maximum number of lines output per unified-diff block, across all pages. (0 to disable, default: 1024)
--max-page-size BYTES Maximum bytes of the top-level (--html-dir) or sole (--html) page. (default: 41943040, remains in effect even with --no-default-limits)
--max-page-diff-block-lines LINES Maximum number of lines output per unified-diff block on the top-level (--html-dir) or sole (--html) page, before spilling it into a child page (--html-dir) or skipping the rest of the diff block. (default: 128, remains in effect even with --no-default-limits)
diff calculation: --new-file Treat absent files as empty
--exclude GLOB_PATTERN Exclude files whose names (including any directory part) match GLOB_PATTERN. Use this option to ignore files based on their names.
--exclude-command REGEX_PATTERN Exclude commands that match REGEX_PATTERN. For example '^readelf.*\s--debug-dump=info' and '^radare2.*' can takea long time and differences here are likely secondary differences caused by something represented elsewhere. Use this option to disable commands that use a lot of resources.
--exclude-directory-metadata {auto,yes,no,recursive} Exclude directory metadata. Useful if comparing files whose filesystem-level metadata is not intended to be distributed to other systems. This is true for most distributions package builders, but not true for the output of commands such as `make install`. Metadata of archive members remain un-excluded except if "recursive" choice is set. Use this option to ignore permissions, timestamps, xattrs etc. Default: 'no' if comparing two directories, else 'yes'. Note that "file" metadata is actually a property of its containing directory and is not relevant when distributing the file across systems.
--extended-filesystem-attributes, --no-extended-filesystem-attributes Check potentially-expensive filesystem extended attributes such as POSIX ACLs, lsattr(1)/chattr(1) attributes etc. (default: False)
--diff-mask REGEX_PATTERN Replace/unify substrings that match regular expression REGEX_PATTERN from output strings before applying diff. For example, to filter out a version number or changed path.
--fuzzy-threshold FUZZY_THRESHOLD Threshold for fuzzy-matching (0 to disable, 110 is default, 400 is high fuzziness)
--tool-prefix-binutils PREFIX Prefix for binutils program names, e.g.  "aarch64-linux-gnu-" for a foreign-arch binary or "g" if you're on a non-GNU system.
--max-diff-input-lines LINES Maximum number of lines fed to diff(1) (0 to disable, default: 4194304)
--max-container-depth DEPTH Maximum depth to recurse into containers. (Cannot be disabled for security reasons, default: 50)
--max-diff-block-lines-saved LINES Maximum number of lines saved per diff block. Most users should not need this, unless you run out of memory. This truncates diff(1) output before emitting it in a report, and affects all types of output, including --text and --json. (0 to disable, default: 0)
--use-dbgsym WHEN When to automatically use corresponding -dbgsym packages when comparing .deb files. WHEN is one of {no, auto, yes}. Default: auto, meaning yes if two .changes or .buildinfo files are specified, otherwise no.
--force-details Force recursing into the depths of file formats even if files have the same content, only really useful for debugging diffoscope. Default: False
information commands: --help, -h Show this help and exit
--version Show program's version number and exit
--list-tools [DISTRO] Show external tools required and exit. DISTRO can be one of {arch, debian, FreeBSD, guix}. If specified, the output will list packages in that distribution that satisfy these dependencies.
--list-debian-substvars List packages needed for Debian in 'substvar' format.
--list-missing-tools [DISTRO] Show missing external tools and exit. DISTRO can be one of {arch, debian, FreeBSD, guix}. If specified, the output will list packages in that distribution that satisfy these dependencies.
file formats supported: Android APK files, Android boot images, Apple Xcode mobile provisioning files, ar(1) archives, ASM Function, Berkeley DB database files, bzip2 archives, character/block devices, ColorSync colour profiles (.icc), Coreboot CBFS filesystem images, cpio archives, Dalvik .dex files, Debian .buildinfo files, Debian .changes files, Debian source packages (.dsc), Device Tree Compiler blob files, directories, ELF binaries, ext2/ext3/ext4/btrfs/fat filesystems, Flattened Image Tree blob files, FreeDesktop Fontconfig cache files, FreePascal files (.ppu), Gettext message catalogues, GHC Haskell .hi files, GIF image files, Git repositories, GNU R database files (.rdb), GNU R Rscript files (.rds), Gnumeric spreadsheets, GPG keybox databases, Gzipped files, Hierarchical Data Format database, ISO 9660 CD images, Java .class files, Java .jmod modules, JavaScript files, JPEG images, JSON files, LLVM IR bitcode files, LZ4 compressed files, macOS binaries, Microsoft Windows icon files, Microsoft Word .docx files, Mono 'Portable Executable' files, Mozilla-optimized .ZIP archives, Multimedia metadata, OCaml interface files, Ogg Vorbis audio files, OpenOffice .odt files, OpenSSH public keys, OpenWRT package archives (.ipk), PDF documents, PE32 files, PGP signatures, PGP signed/encrypted messages, PNG images, PostScript documents, Public Key Cryptography Standards (PKCS) files (version #7), Python .pyc files, RPM archives, Rust object files (.deflate), Sphinx inventory files, SQLite databases, SquashFS filesystems, symlinks, tape archives (.tar), tcpdump capture files (.pcap), text files, TrueType font files, U-Boot legacy image files, WebAssembly binary module, XML binary schemas (.xsb), XML files, XZ compressed files, ZIP archives and Zstandard compressed files.
diffoscope homepage: <https://diffoscope.org/>
bugs/issues: <https://salsa.debian.org/reproducible-builds/diffoscope/issues>
Exit status is 0 if inputs are the same, 1 if different, 2 if trouble.
COMMAND-LINE EXAMPLES To compare two files in-depth and produce an HTML report, run something like:
$ diffoscope --html output.html build1.changes build2.changes
diffoscope will exit with 0 if there's no differences and 1 if there are.
diffoscope can also compare non-existent files:
$ diffoscope /nonexistent archive.zip
To get all possible options, run:
$ diffoscope --help
If you have enough RAM, you can improve performance by running:
$ TMPDIR=/run/shm diffoscope very-big-input-0/ very-big-input-1/
By default this allowed to use up half of RAM; for more add something like:
tmpfs   /run/shm    tmpfs   size=80%    0   0
to your /etc/fstab; see man mount for details.
diffoscope requires Python 3 and the following modules available on PyPI: libarchive-c, python-magic.
The various comparators rely on external commands being available. To get a list of them, please run:
$ diffoscope --list-tools
Lunar, Reiner Herrmann, Chris Lamb, Mattia Rizzolo, Ximin Luo, Helmut Grohne, Holger Levsen, Daniel Kahn Gillmor, Paul Gevers, Peter De Wachter, Yasushi SHOJI, Clemens Lang, Ed Maste, Joachim Breitner, Mike McQuaid. Baptiste Daroussin, Levente Polyak.
The preferred way to report bugs about diffoscope, as well as suggest fixes and requests for improvements is to submit reports to the issue tracker at: https://salsa.debian.org/reproducible-builds/diffoscope/issues
For more instructions, see CONTRIBUTING.rst in this directory.
Join the users and developers mailing-list: <‐ https://lists.reproducible-builds.org/listinfo/diffoscope>
diffoscope website is at <https://diffoscope.org/>
diffoscope is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
diffoscope is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with diffoscope.  If not, see <https://www.gnu.org/licenses/>.
• <https://diffoscope.org/>
• <https://wiki.debian.org/ReproducibleBuilds>
PATCHWORK(1)                 General Commands Manual                PATCHWORK(1)
patchwork - filter for drawing clustered graphs as treemaps
patchwork [-(G|N|E)name=value] [-Tlang] [-llibfile] [-ooutfile] [-O] [-P] [-v] [-V] [files]
patchwork draws clustered graphs using a squarified treemap layout.  As input, it takes any graph in the dot format. Each cluster is given an area based on the areas specified by the clusters and nodes it contains. The areas of nodes and empty clusters can be specified by the area attribute.  The default value is 1.
The root graph is laid out as a square. Then, recursively, the region of a cluster or graph is partitioned among its top-level nodes and clusters, with each given a roughly square subregion with its specified area.
Patchwork uses an extensible plugin mechanism for its output renderers, so to see what output formats your installation of patchwork supports you can use ``patchwork -Txxx'' (where xxx is an unlikely format) and check the warning message.  Also, The plugin mechanism supports multiple implementations of the output formats.  To see what variants are available, use, for example: ``patchwork -Tpng:'' and to force a particular variant, use, for example: ``patchwork -Tpng:gd''
Traditionally, patchwork supports the following: -Tps (PostScript), -Tsvg -Tsvgz (Structured Vector Graphics), -Tfig (XFIG graphics), -Tmif (FrameMaker graphics), -Thpgl (HP pen plotters), and -Tpcl (Laserjet printers), -Tpng -Tgif (bitmap graphics), -Timap (imagemap files for httpd servers for each node or edge that has a non‐null "href" attribute.), -Tcmapx (client‐side imagemap for use in html and xhtml). Additional less common or more special‐purpose output formats can be found at https://www.graphviz.org/doc/info/output.html.)
Alternative plugins providing support for a given output format can be found from the error message resulting from appending a ':' to the format. e.g. -Tpng: The first plugin listed is always the default.
Here is a synopsis of the graph file language, normally using the extension .gv, for graphs:
[strict] (graph|digraph) name { statement‐list } Is the top level graph. If the graph is strict then multiple edges are not allowed between the same pairs of nodes.  If it is a directed graph, indicated by digraph, then the edgeop must be "->". If it is an undirected graph then the edgeop must be "--".  Statements may be:
name=val; node [name=val]; edge [name=val]; Set default graph, node, or edge attribute name to val.  Any subgraph, node, or edge appearing after this inherits the new default attributes.
n0 [name0=val0,name1=val1,...]; Creates node n0 (if it does not already exist) and sets its attributes according to the optional list.
n0 edgeop n1 edgeop ... edgeop nn [name0=val0,name1=val1,...]; Creates edges between nodes n0, n1, ..., nn and sets their attributes according to the optional list.  Creates nodes as necessary.
[subgraph name] { statement‐list } Creates a subgraph.  Subgraphs may be used in place of n0, ..., nn in the above statements to create edges.  [subgraph name] is optional; if missing, the subgraph is assigned an internal name.
Comments may be /*C‐like*/ or //C++‐like.
Attribute names and values are ordinary (C‐style) strings.  The following sections describe attributes that control graph layout.
size="x,y" sets bounding box of drawing in inches.
page="x,y" sets the PostScript pagination unit.
ratio=f sets the aspect ratio to f which may be a floating point number, or one of the keywords fill, compress, or auto.
pagedir=[TBLR][TBLR] sets the major and minor order of pagination.
rotate=90 sets landscape mode.  (orientation=land is backward compatible but obsolete.)
center=n a non‐zero value centers the drawing on the page.
layers="id:id:id:id" is a sequence of layer identifiers for overlay diagrams.  The PostScript array variable layercolorseq sets the assignment of colors to layers. The least index is 1 and each element must be a 3‐element array to be interpreted as a color coordinate.
color=colorvalue sets foreground color (bgcolor for background).
href="url" the default url for image map files; in PostScript files, the base URL for all relative URLs, as recognized by Acrobat Distiller 3.0 and up.
URL="url" ("URL" is a synonym for "href".)
stylesheet="file.css" includes a reference to a stylesheet in -Tsvg and -Tsvgz outputs.  Ignored by other formats.
splines. If set to true, edges are drawn as splines.  If set to polyline, edges are drawn as polylines.  If set to ortho, edges are drawn as orthogonal polylines.  In all of these cases, the nodes may not overlap. If splines=false or splines=line, edges are drawn as line segments.  The default is false.
height=d or width=d sets minimum height or width.  Adding fixedsize=true forces these to be the actual size (text labels are ignored).
shape=record polygon epsf builtin_polygon builtin_polygon is one of: plaintext ellipse oval circle egg triangle box diamond trapezium parallelogram house hexagon octagon note tab box3d component.  (Polygons are defined or modified by the following node attributes: regular, peripheries, sides, orientation, distortion and skew.)  epsf uses the node's shapefile attribute as the path name of an external EPSF file to be automatically loaded for the node shape.
label=text where text may include escaped newlines \n, \l, or \r for center, left, and right justified lines.  The string '\N' value will be replaced by the node name.  The string '\G' value will be replaced by the graph name.  Record labels may contain recursive box lists delimited by { | }.  Port identifiers in labels are set off by angle brackets < >.  In the graph file, use colon (such as, node0:port28).
fontsize=n sets the label type size to n points.
fontname=name sets the label font family name.
color=colorvalue sets the outline color, and the default fill color if style=filled and fillcolor is not specified.
fillcolor=colorvalue sets the fill color when style=filled.  If not specified, the fillcolor when style=filled defaults to be the same as the outline color.
fontcolor=colorvalue sets the label text color.
A colorvalue may be "h,s,v" (hue, saturation, brightness) floating point numbers between 0 and 1, or an X11 color name such as white black red green blue yellow magenta cyan or burlywood, or a "#rrggbb" (red, green, blue, 2 hex characters each) value.
style=filled solid dashed dotted bold invis or any Postscript code.
layer=id or id:id or "all" sets the node's active layers.  The empty string means no layers (invisible).
The following attributes apply only to polygon shape nodes:
regular=n if n is non‐zero then the polygon is made regular, i.e. symmetric about the x and y axis, otherwise the polygon takes on the aspect ratio of the label.  builtin_polygons that are not already regular are made regular by this attribute.  builtin_polygons that are already regular are not affected (i.e.  they cannot be made asymmetric).
peripheries=n sets the number of periphery lines drawn around the polygon.  This value supersedes the number of periphery lines of builtin_polygons.
sides=n sets the number of sides to the polygon. n<3 results in an ellipse.  This attribute is ignored by builtin_polygons.
orientation=f sets the orientation of the first apex of the polygon counterclockwise from the vertical, in degrees.  f may be a floating point number.  The orientation of labels is not affected by this attribute.  This attribute is added to the initial orientation of builtin_polygons.
distortion=f sets the amount of broadening of the top and narrowing of the bottom of the polygon (relative to its orientation).  Floating point values between -1 and +1 are suggested.  This attribute is ignored by builtin_polygons.
skew=f sets the amount of right‐displacement of the top and left‐ displacement of the bottom of the polygon (relative to its orientation). Floating point values between -1 and +1 are suggested.  This attribute is ignored by builtin_polygons.
href="url" sets the url for the node in imagemap, PostScript and SVG files.  The substrings '\N' and '\G' are substituted in the same manner as for the node label attribute.  Additionally the substring '\L' is substituted with the node label string.
target="target" is a target string for client‐side imagemaps and SVG, effective when nodes have a URL.  The target string is used to determine which window of the browser is used for the URL.  Setting it to "_graphviz" will open a new window if it doesn't already exist, or reuse it if it does.  If the target string is empty, the default, then no target attribute is included in the output.  The substrings '\N' and '\G' are substituted in the same manner as for the node label attribute. Additionally the substring '\L' is substituted with the node label string.