Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/workflows/build-brotlicffi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,12 @@ jobs:
# cffi, needed to build and to import the extension, has no riscv64
# wheel on PyPI.
CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=https://pypi.riseproject.dev/simple/
# Recent hypothesis releases are compiled (Rust) and ship no
# py3-none-any wheel; their riscv64 wheel is cp311-abi3 only, so on
# cp314t pip falls back to the sdist, which needs a Rust toolchain
# rustup cannot install on riscv64. Wheel-only makes pip back off to
# the newest release that still has a usable (pure-Python) wheel.
CIBW_TEST_ENVIRONMENT: PIP_ONLY_BINARY=hypothesis
# Upstream tests its wheels in a separate tox job; test_requirements.txt
# minus pytest-cov, which measures nothing on an installed wheel.
CIBW_TEST_REQUIRES: pytest hypothesis
Expand Down
1 change: 1 addition & 0 deletions docs/packages/brotlicffi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ versions:
- filename: brotlicffi-1.2.0.2-cp39-abi3-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl
sha256: 5c571498e2d3ede2e5709359aab2270e967adef49833db5fa0eec492e78537ee
requires-python: '>=3.8'
- version: 1.2.1.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
From 978d784581efd36b294bd0d20dc7a3b9d7acb4bb Mon Sep 17 00:00:00 2001
From: Ludovic Henry <git@ludovic.dev>
Date: Fri, 28 Aug 2026 08:32:01 +0200
Subject: [PATCH] ship libbrotli's licence alongside brotlicffi's own

Upstream-Status: To upstream [not yet submitted; the same gap exists in every brotlicffi wheel on PyPI, so this needs a maintainer discussion rather than a drive-by PR]

The extension statically links the bundled libbrotli C sources
(libbrotli/c, compiled as the "libbrotli" static library by setup.py), which
carry their own MIT notice from the Brotli Authors. Those terms require the
copyright notice to travel with binary redistributions, but setup.cfg's
explicit license_files list names only brotlicffi's LICENSE, so the built
wheel ships a single notice covering the wrapper alone.

Naming the vendored file in place keeps the patch to one line and lets it
track the submodule: setuptools preserves each license_files entry's path
relative to the project root, so it lands in the wheel as
dist-info/licenses/libbrotli/LICENSE.

Signed-off-by: Ludovic Henry <git@ludovic.dev>
---
setup.cfg | 1 +
1 file changed, 1 insertion(+)

diff --git a/setup.cfg b/setup.cfg
index 8b7eaaf..d3d94fa 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -6,3 +6,4 @@ markers =
[metadata]
license_files =
LICENSE
+ libbrotli/LICENSE
Loading