Index: general/genlib/brotli.xml
===================================================================
--- general/genlib/brotli.xml	(revision 47d5a9e54500ab90d9617606e3eac6c753dab76d)
+++ general/genlib/brotli.xml	(revision 47d5a9e54500ab90d9617606e3eac6c753dab76d)
@@ -0,0 +1,244 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+  <!ENTITY % general-entities SYSTEM "../../general.ent">
+  %general-entities;
+
+  <!ENTITY brotli-download-http "https://github.com/google/brotli/archive/v&brotli-version;.tar.gz">
+  <!ENTITY brotli-download-ftp  " ">
+  <!ENTITY brotli-md5sum        "7b6edd4f2128f22794d0ca28c53898a5">
+  <!ENTITY brotli-size          "23 MB">
+  <!ENTITY brotli-buildsize     "43 MB (add 5 MB if installing both sets of python bindings, add 9 MB for the main test and 5MB for testing the bindings)">
+  <!-- time for testing without the bindings is minimal, each set takes similar tiem and space -->
+  <!ENTITY brotli-time          "0.2 SBU (add 0.3 SBU for the python bindings, and 1.2 SBU if testing them)">
+]>
+
+<sect1 id="brotli" xreflabel="Brotli-&brotli-version;">
+  <?dbhtml filename="brotli.html"?>
+
+  <sect1info>
+    <othername>$LastChangedBy$</othername>
+    <date>$Date$</date>
+  </sect1info>
+
+  <title>Brotli-&brotli-version;</title>
+
+  <indexterm zone="brotli">
+    <primary sortas="a-brotli">Brotli</primary>
+  </indexterm>
+
+  <sect2 role="package">
+    <title>Introduction to Brotli</title>
+
+    <para>
+      <application>Brotli</application> provides a general-purpose lossless
+      compression algorithm that compresses data using a combination of a
+      modern variant of the LZ77 algorithm, Huffman coding and 2nd order
+      context modeling. Its libraries are particularly used for WOFF2 fonts
+      on webpages.
+    </para>
+
+    &lfs90_checked;
+
+    <bridgehead renderas="sect3">Package Information</bridgehead>
+    <itemizedlist spacing="compact">
+      <listitem>
+        <para>
+          Download (HTTP): <ulink url="&brotli-download-http;"/>
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Download (FTP): <ulink url="&brotli-download-ftp;"/>
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Download MD5 sum: &brotli-md5sum;
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Download size: &brotli-size;
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Estimated disk space required: &brotli-buildsize;
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Estimated build time: &brotli-time;
+        </para>
+      </listitem>
+    </itemizedlist>
+
+    <note>
+      <para>
+        The <application>Brotli</application> source tarball shown above
+        downloads with the correct name, brotli-&brotli-version;.tar.gz,
+        if using a browser such as Firefox. If you prefer to use a command line
+        program such as wget, you normally would obtain
+        v&brotli-version;.tar.gz. To obtain this package with the proper
+        filename, run:
+
+<screen><userinput>wget -c https://github.com/google/brotli/archive/v&brotli-version;.tar.gz \
+     -O brotli-&brotli-version;.tar.gz</userinput></screen>.
+      </para>
+    </note>
+
+    <bridgehead renderas="sect3">Brotli Dependencies</bridgehead>
+
+    <bridgehead renderas="sect4">Required</bridgehead>
+    <para role="required">
+      <xref linkend="cmake"/>
+    </para>
+
+    <bridgehead renderas="sect4">Optional</bridgehead>
+    <para role="optional">
+      <xref linkend="python2"/> (to create the bindings for that)
+    </para>
+
+    <para condition="html" role="usernotes">
+      User Notes: <ulink url="&blfs-wiki;/brotli"/>
+    </para>
+  </sect2>
+
+
+  <sect2 role="installation">
+    <title>Installation of Brotli</title>
+
+    <para>
+      Install <application>brotli</application> by running the following
+      commands:
+    </para>
+
+<screen><userinput>mkdir out &amp;&amp;
+cd out    &amp;&amp;
+
+cmake -DCMAKE_INSTALL_PREFIX=/usr \
+      -DCMAKE_BUILD_TYPE=Release  \
+      ..  &amp;&amp;
+make</userinput></screen>
+
+
+    <para>
+      To test the results, issue: <command>make test</command>.
+    </para>
+
+    <para>
+      If desired, either or both sets of python bindings can be built and
+      installed without any conflicts. If you need the
+      <application>Python2</application> bindings, add or substitute
+      <command>python2</command> for <command>python3</command> in the
+      following instructions:
+    </para>
+
+<screen><userinput>pushd ..               &amp;&amp;
+python3 setup.py build &amp;&amp;
+popd</userinput></screen>
+
+    <para>
+      If you wish to test the bindings, go back to the top-level directory and
+      run python3 setup.py test.
+    </para>
+
+    <para>
+      Now, as the <systemitem class="username">root</systemitem> user:
+    </para>
+
+<screen role="root"><userinput>make install &amp;&amp;
+cd ..</userinput></screen>
+
+    <para>
+      If you have built either or both sets of <application>python</application>
+      bindings, install them as the <systemitem class="username">root</systemitem>
+      user (as before, use the appropriate version(s) of
+      <application>python</application>:
+    </para>
+
+<!-- EDITORS: for DESTDIR style installs use
+python3 setup.py install \-\-root /some/where -->
+<screen role="root"><userinput>python3 setup.py install --optimize=1</userinput></screen>
+
+  </sect2>
+
+  <sect2 role="content">
+    <title>Contents</title>
+
+    <segmentedlist>
+      <segtitle>Installed Programs</segtitle>
+      <segtitle>Installed Libraries</segtitle>
+      <segtitle>Installed Directory</segtitle>
+
+      <seglistitem>
+        <seg>
+          brotli.
+        </seg>
+        <seg>
+          libbrotlicommon{-static.a,.so}, libbrotlidec{,-static,.so} and libbrotlienc{,-static,.so}.
+        </seg>
+        <seg>
+          /usr/include/brotli
+        </seg>
+      </seglistitem>
+    </segmentedlist>
+
+    <variablelist>
+      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
+      <?dbfo list-presentation="list"?>
+      <?dbhtml list-presentation="table"?>
+
+      <varlistentry id="brotli-prog">
+        <term><command>brotli</command></term>
+        <listitem>
+          <para>
+            can compress or decompress files, or test the integrity of
+            compressed files.
+          </para>
+          <indexterm zone="brotli brotli-prog">
+            <primary sortas="b-brotli">brotli</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="libbrotlicommon">
+        <term><filename class="libraryfile">libbrotlicommon{-static.a,.so}</filename></term>
+        <listitem>
+          <para>
+            is the Brotli common dictionary library.
+          </para>
+          <indexterm zone="brotli libbrotlicommon">
+            <primary sortas="c-libbrotlicommon">libbrotlicommon{,-static.a,.so}</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="libbrotlidec">
+        <term><filename class="libraryfile">libbrotlidec{-static.a,.so}</filename></term>
+        <listitem>
+          <para>
+            is the Brotli decoder library.
+          </para>
+          <indexterm zone="brotli libbrotlidec">
+            <primary sortas="c-libbrotlidec">libbrotlidec{,-static.a,.so}</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry id="libbrotlienc">
+        <term><filename class="libraryfile">libbrotlienc{-static.a,.so}</filename></term>
+        <listitem>
+          <para>
+            is the Brotli common encoder library.
+          </para>
+          <indexterm zone="brotli libbrotlienc">
+            <primary sortas="c-libbrotlienc">libbrotlienc{,-static.a,.so}</primary>
+          </indexterm>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+
+  </sect2>
+</sect1>
