brotli-1.1.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.

[注記]

注記

LFS や依存パッケージが本ブックに示す最新安定バージョンでなかった場合には、BLFS 開発版においては、パッケージのビルドや処理実行が適切に行われないことがあります。

パッケージ情報

  • ダウンロード (HTTP): https://github.com/google/brotli/archive/v1.1.0/brotli-1.1.0.tar.gz

  • ダウンロード MD5 sum: 3a6a3dba82a3604792d3cb0bd41bca60

  • ダウンロードサイズ: 500 KB

  • 必要ディスク容量: 33 MB (python3 バイディング込み)

  • 概算ビルド時間: 0.3 SBU (python3 バイディング込み; parallelism=4)

Brotli の依存パッケージ

必須

CMake-3.28.1

Optional

pytest-7.4.3 (for testing Python3 bindings)

Brotli のインストール

以下のコマンドを実行して brotli をビルドします。

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      ..  &&
make

ビルド結果をテストする場合は make test を実行します。

root ユーザーになって以下を実行します。

make install

必要な場合は Python3 バインディングをビルドします。

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.

Command Explanations

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.

パッケージ構成

インストールプログラム: brotli
インストールライブラリ: libbrotlicommon.so, libbrotlidec.so, libbrotlienc.so
インストールディレクトリ: /usr/include/brotli and /usr/lib/python3.12/site-packages/Brotli-1.1.0.dist-info (Python3 バインディングをビルドしてインストールした場合)

概略説明

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