8000 Update stacked: lz4 1.10.0 -> 1.11.0 by bryan-minimal · Pull Request #1385 · gominimal/pkgs · GitHub
[go: up one dir, main page]

Skip to content

Update stacked: lz4 1.10.0 -> 1.11.0 - #1385

Open
bryan-minimal wants to merge 5 commits into
mainfrom
update-stacked-lz4-1.11.0
Open

bryan-minimal wants to merge 5 commits into
mainfrom
update-stacked-lz4-1.11.0

Conversation

@bryan-minimal
@bryan-minimal bryan-minimal commented Nov 7, 2026 •
Copy link
Copy Markdown
Member

Update stacked: lz4 1.10.0 -> 1.11.0

Note

World rebuild. lz4 declares replace_on_cycle in build.ncl (bedrock-root
prebuilt), so it takes part in the toolchain rebuild graph and its hash change
cascades through the tree, the same shape as #1351 (zlib 1.3.2 -> 1.4).
Direct dependents in this tree: file, postgres, rizin, zstd, and through
zstd most of the world.

Summary

Package Old New Source
lz4 1.10.0 1.11.0 github:lz4/lz4 release asset lz4-1.11.0.tar.gz
  • SHA256: 537512904744b35e... -> 247e5fa64da5f7b75ee3dd3bed484076396c9ebe8254d9ccf693eb62800c5e26
  • Source: gs://minimal-staging-archives/lz4-1.10.0.tar.gz -> gs://minimal-staging-archives/lz4-1.11.0.tar.gz
  • Released: 2026-11-04 (release notes)
  • Recipe changes beyond version + sha256 (both found by a local clean-room build):
    1. findutils added to build_deps. 1.11.0's new make layer (build/make/multiconf.make)
      discovers sources with find. Without it, make fails with find: command not found / no source for lz4.o ....
    2. build.sh builds through make install only. In 1.11.0, lib: still requires
      liblz4.a, but the liblz4.a rule is only defined when BUILD_STATIC=yes. So the default
      target fails under our BUILD_STATIC=no (No rule to make target 'liblz4.a', needed by 'lib').
      install builds exactly the shared lib and CLI. -DNDEBUG (previously from lz4-release)
      is now set through CPPFLAGS, because multiconf's phony lz4 target is re-resolved with
      install's flags and would otherwise yield an assert-enabled CLI.

Verification

  • Downloaded with gh release download v1.11.0 --repo lz4/lz4. The sha256 matches
    both GitHub's published asset digest (releases/tags/v1.11.0, .assets[].digest)
    and upstream's lz4-1.11.0.tar.gz.sha256 asset.
  • Upstream publishes no signature for this release, so there was nothing to verify with sq.
  • Mirrored with gcloud storage cp --no-clobber. The public object at
    https://storage.googleapis.com/minimal-staging-archives/lz4-1.11.0.tar.gz was
    re-downloaded and re-hashed: it matches.
  • Build files diffed from tarball to tarball (lib/Makefile, programs/Makefile, lib/liblz4.pc.in):
    • The soname stays liblz4.so.1 (LZ4_VERSION_MAJOR 1).
    • BUILD_STATIC=no and PREFIX/DESTDIR install are still honored.
    • The installed program set (lz4, lz4c, lz4cat, unlz4) and output globs are unchanged.
    • The new Makefile layer (build/make/multiconf.make) keeps user CFLAGS/LDFLAGS, so the reproducibility flags still apply.
  • nickel format run on build.ncl.
  • Existing standalone smoke test (/usr/bin/lz4 --version) kept.
  • Local clean-room build (min session exec <s> -- min package build --rebuild --verbose lz4, fresh session per run):
    • run 1, version bump only: FTBFS, find: command not found -> fix 1;
    • run 2, with findutils: the CLI compiled and linked ("built with multithreading support"),
      then the library failed on the liblz4.a rule -> fix 2;
    • fix 2 has NOT been built locally (session budget used up). Build-bot is the first build of the final recipe.

Reviewer heads-up (build risk)

  • Header API removal: functions deprecated since v1.7/v1.8 (LZ4_compress,
    LZ4_uncompress, LZ4_compress_limitedOutput, ...) and the unprefixed lz4frame enums
    are no longer declared in headers. liblz4 still exports them, so already-built
    binaries are ABI-compatible, but a dependent whose source still calls them will now
    fail to build. The direct dependents to watch in the world rebuild are file,
    postgres, rizin and zstd.
  • LZ4F_compressOptions_t must now be zero-initialized (positional initializers break).
  • The dynamic library is now multithreaded by default: it links -pthread, detected by a
    configure-time probe that uses mktemp. With glibc >= 2.34, pthread is in libc.

Update: zstd fix, and the final recipe builds locally

A local clean-room build of the earlier head failed in zstd 1.5.7, which is in lz4's own build closure: programs/fileio.c:1424: 'contentChecksum_t' undeclared. lz4 1.11.0 removed the unprefixed lz4frame names together with LZ4F_ENABLE_OBSOLETE_ENUMS, and zstd dev (49bf1d1, line 1690) still uses the same cast.

381909f fixes it in zstd's build.sh:

  • It rewrites the cast to LZ4F_contentChecksum_t, a name that has existed since lz4 1.7.
  • It then fails the build if any unprefixed use is left.
  • The rewrite was checked against the pinned zstd 1.5.7 tarball (sha256 eb33e51f…).

Local results at 381909f (fresh pkgbuild session, --rebuild):

Step Result
lz4 build PASS: liblz4.so.1.11.0 built, lz4 installation completed
zstd build PASS: the rewrite ran, release build completed
min check for lz4 and zstd all Pass, standalone tests included

lz4's other direct dependents (file, postgres, rizin) are only covered by the world build.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Updates
    • Updated LZ4 to version 1.11.0.
  • Bug Fixes
    • Improved build compatibility for LZ4 and Zstandard, helping ensure both packages can be built and installed successfully.

bryan-minimal and others added 3 commits November 6, 2026 21:07
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ILD_STATIC=no); NDEBUG via CPPFLAGS

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bryan-minimal
bryan-minimal requested a review from a team as a code owner November 7, 2026 05:28
@coderabbitai
coderabbitai Bot commented Nov 7, 2026 •
Copy link
Copy Markdown
Contributor

Explain Change →

No actionable comments were generated in the recent review.

Walkthrough

The LZ4 package now uses version 1.11.0 and updated build settings. The Zstandard build script rewrites and checks checksum type casts in programs/fileio.c.

Changes: LZ4 and Zstandard builds

Layer / File(s) Summary
Update LZ4 package build
packages/lz4/build.ncl, packages/lz4/build.sh
The package uses LZ4 1.11.0 and its updated checksum, adds findutils as a build dependency, and changes the make invocation settings.
Rewrite Zstandard checksum casts
packages/zstd/build.sh
The build script replaces contentChecksum_t casts in programs/fileio.c with LZ4F_contentChecksum_t. It exits with an error if a whole-word contentChecksum_t occurrence remains.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested reviewers: msample, norrietaylor

Merge Risk: Minimal · up to 14fce

Merge Risk: ⚪ Minimal · up to 14fce

LZ4 is updated to 1.11.0 with a Zstandard compatibility rewrite. No merge-blocking issue was established.

Pre-merge checks: Passed 5

Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title "Update stacked: lz4 1.10.0 -> 1.11.0" names the main change: the lz4 version bump from 1.10.0 to 1.11.0. The changeset updates the lz4 build.ncl and build.sh to 1.11.0 and its checksum. The…
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Title check

Explanation

The title "Update stacked: lz4 1.10.0 -> 1.11.0" names the main change: the lz4 version bump from 1.10.0 to 1.11.0. The changeset updates the lz4 build.ncl and build.sh to 1.11.0 and its checksum. The title also omits the supporting changes, which include adding findutils as a build dependency, the build script changes, and the zstd build script fix for the contentChecksum_t cast. Those are expected to be left out of a short title. The word "stacked" describes the PR's stacking workflow, not the code change, but it does not make the title misleading.

Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 2 files. (1 skipped: 1 unsupported.)

Finishing Touches

Generate docstrings

  • Commit to this branch
  • Create a new PR
Generate unit tests (beta)

  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Recent review info

Run configuration

Commits

Reviewing files that changed from the base of the PR and between 22201ed and 381909f.

Files selected for processing: 3

  • packages/lz4/build.ncl
  • packages/lz4/build.sh
  • packages/zstd/build.sh

Included review availability: This review used your included allowance. 0 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

bryan-minimal and others added 2 commits November 6, 2026 21:51
… old name)

The local clean-room build of this PR failed in zstd 1.5.7:
fileio.c:1424: contentChecksum_t undeclared. lz4 1.11.0 removed
LZ4F_ENABLE_OBSOLETE_ENUMS, and zstd dev (49bf1d1) has the same cast.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ools, transient)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.

1 participant

0