Skip to content

pylzss: add build-pylzss.yml for riscv64 wheels - #1434

Merged
luhenry merged 2 commits into
mainfrom
pylzss
Sep 7, 2026
Merged

pylzss: add build-pylzss.yml for riscv64 wheels#1434
luhenry merged 2 commits into
mainfrom
pylzss

Conversation

@luhenry

@luhenry luhenry commented Sep 7, 2026

Copy link
Copy Markdown
Member

Compiles a single setuptools Extension (src/pylzss.c) implementing LZSS compression/decompression as compress/decompress. Upstream publishes no riscv64 wheel.

Mirrors upstream's pypi-build-publish.yml.

Differs from upstream

  • Nothing beyond the riscv64 image.

Testing

  • Compress/decompress round-trip, plus a check that COPYING, COPYING.LESSER and LICENSE.py3c land under .dist-info/licenses/; upstream's checked-in test.py calls a non-existent lzss.encode()/decode() API and is never run by upstream's own CI.

License: Wheel bundles the vendored py3c compat headers (MIT, Red Hat) compiled straight into the extension, whose notice otherwise ships nowhere; the build adds LICENSE.py3c.

Patches

  • 0001-ship-py3c-s-MIT-LICENSE-in-the-wheel-s-dist-info.patch - To upstream [not filed against m1stadev/pylzss from this automated port]. Without it the wheel ships py3c's compiled-in MIT code with no licence text. Reproduces on any architecture, not riscv64-only.

Built on cp312/cp313/cp314/cp314t, manylinux and musllinux; all 8 wheels built and smoke-tested, publish dry-run OK.

Pure-C LZSS compression/decompression extension, no native
dependencies. Builds against the manylinux_2_39/musllinux_1_2
riscv64 images for cp312-cp314t.

Adds patches/pylzss/0.3.8/0001-*.patch to ship py3c's MIT LICENSE in
dist-info/licenses/ - the vendored src/include/py3c headers compile
straight into the extension but their notice lives only as a header
comment, so setuptools' default root LICEN[CS]E*/COPYING* glob never
picks it up (verified against the real PyPI wheel, which ships only
COPYING/COPYING.LESSER).

The CI test command exercises a real compress/decompress round trip
rather than upstream's checked-in test.py, which calls
lzss.encode()/decode() - an API the extension has never exported
(it's compress()/decompress()); neither of upstream's own CI
workflows runs test.py, so that mismatch has gone unnoticed there.
luhenry added a commit that referenced this pull request Sep 7, 2026
…pening-quote line

YAML folds the newline after "python -c "" into a single space, giving
the resolved command a leading space before the first statement. cp312/
cp313 reject that with IndentationError: unexpected indent (cp314+
tolerates it, per gotcha 247), which is exactly why every cp312/cp313
job failed while cp314/cp314t passed on the first CI run.
luhenry added a commit that referenced this pull request Sep 7, 2026
@luhenry
luhenry merged commit d42304d into main Sep 7, 2026
14 checks passed
@luhenry
luhenry deleted the pylzss branch September 7, 2026 18:08
@luhenry luhenry linked an issue Sep 7, 2026 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

pylzss riscv64 support

1 participant