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.
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.2.0/brotli-1.2.0.tar.gz
Download MD5 sum: 8fbfae9a5ecbc278ae7f761ecb6d1285
Download size: 632 KB
Estimated disk space required: 33 MB (with python3 bindings)
Estimated build time: 0.3 SBU (with python3 bindings; parallelism=4)
pytest-8.4.2 (for testing Python3 bindings)
Install brotli by running the following commands:
mkdir build &&
cd build &&
cmake -D CMAKE_INSTALL_PREFIX=/usr \
-D CMAKE_BUILD_TYPE=Release \
-G Ninja .. &&
ninja
To test the results, issue: ninja test.
Now, as the root user:
ninja install
If desired, build the Python3 bindings:
cd .. &&
sed -e '/libraries +=/s/=.*/= [required_system_library[3:]]/' \
-e '/package_configuration/d' \
-e '/pkgconfig/d' \
-i setup.py &&
USE_SYSTEM_BROTLI=1 \
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-user Brotli
To test the Python3 binding, issue: pytest.
sed ... -i setup.py:
Allow building the Python3 binding
with USE_SYSTEM_BROTLI=1 but without the
Python 3 pkgconfig module (that BLFS does not provide) installed.
USE_SYSTEM_BROTLI=1: Stop setup.py from rebuilding the entire package all
over again, use the already installed libraries for the
Python3 binding instead.