Brotli 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.
![[Note]](../images/note.png)
Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.
Download (HTTP): https://github.com/google/brotli/archive/v1.1.0/brotli-1.1.0.tar.gz
Download MD5 sum: 3a6a3dba82a3604792d3cb0bd41bca60
Download size: 500 KB
Estimated disk space required: 33 MB (with python3 bindings)
Estimated build time: 0.3 SBU (with python3 bindings; parallelism=4)
pytest-7.4.3 (for testing Python3 bindings)
Install brotli by running the following commands:
mkdir build &&
cd build &&
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
.. &&
makeTo test the results, issue: make test.
Now, as the root user:
make install
If desired, build the Python3 bindings:
cd .. &&
sed "/c\/.*\.[ch]'/d;\
/include_dirs=\[/\
i libraries=['brotlicommon','brotlidec','brotlienc']," \
-i setup.py &&
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Install the Python3
bindings as the root user:
pip3 install --no-index --find-links=dist --no-cache-dir --no-user Brotli
To test the Python3 binding, issue: pytest.
sed ... -i setup.py: Stop
setup.py from rebuilding the entire package all
over again, use the already installed libraries for the
Python3 binding instead.
--disable-static: This switch prevents
installation of static versions of the libraries.