brotli-1.2.0

Introduction to Brotli

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]

Note

This package is known to build and work properly using an LFS 13.0 platform.

Package Information

Brotli Dependencies

Required

CMake-4.2.3

Optional

pytest-9.0.2 (for testing Python3 bindings)

Installation of Brotli

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.

Command Explanations

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.

Contents

Installed Programs: brotli
Installed Libraries: libbrotlicommon.so, libbrotlidec.so, and libbrotlienc.so
Installed Directories: /usr/include/brotli and /usr/lib/python3.14/site-packages/Brotli-1.2.0.dist-info (if you built and installed the Python3 bindings)

Short Descriptions

brotli

can compress or decompress files, or test the integrity of compressed files

libbrotlicommon{-static.a,.so}

is the Brotli common dictionary library

libbrotlidec{-static.a,.so}

is the Brotli decoder library

libbrotlienc{-static.a,.so}

is the Brotli common encoder library