Repository navigation
Tags: markusfoo/php-apt-builder
Tags
chore(ci): move dispatch defaults to the 8.6.0RC4 cycle workflow_dispatch defaults: php_tag=php-8.6.0RC4, pkg_upstream_version=8.6.0~rc4. Also document the run #12 fix (0045 patch re-anchor) in the README changelog and update the inputs table.
chore(ci): move dispatch defaults to the 8.6.0RC2 cycle php-8.6.0RC2 is the current pre-release; defaults now prefill php_tag=php-8.6.0RC2 / pkg_upstream_version=8.6.0~rc2 so the form cannot accidentally rebuild RC1. README inputs table and changelog updated accordingly.
chore(ci): move dispatch defaults to the 8.6.0RC2 cycle php-8.6.0RC2 is the current pre-release; defaults now prefill php_tag=php-8.6.0RC2 / pkg_upstream_version=8.6.0~rc2 so the form cannot accidentally rebuild RC1. README inputs table and changelog updated accordingly.
fix(pecl): make redis NUL-termination patch idempotent for phpredis 6… ….3.0RC1 Run #7 (the first PHP 8.6.0RC1 build) failed in the PECL job with 'library.c patch does not match exactly once': the PECL job clones phpredis from master, and upstream released 6.3.0RC1 between run #5 (2026-09-09, green) and run #7, changing library.c. Verified in the 6.3.0RC1 source: upstream now NUL-terminates all three decompress buffers itself (lzf: safe_erealloc(..., 1) + data[res] = '\0'; zstd / lz4: emalloc(len + 1) + terminator) -- the same fix this repo has carried since 2026-09-01, so the local patch had become redundant. Changes: - fix_redis_library_nul.py is now idempotent: for each codec (lzf / zstd / lz4) it first checks whether the tree already NUL-terminates the buffer right after the decompress call (upstream fixed -> skip with a notice); it applies the patch only when the known unfixed shape matches verbatim; if neither shape is recognized it fails loudly instead of silently shipping a redis package with the PHP 8.6 json EOI bug - README: changelog entry Validation: executed against the real 6.3.0RC1 tree (all three codecs detected as fixed, file untouched), a synthesized pre-6.3.0 tree (all three patches applied, re-run is a no-op) and an unrecognized refactor (hard error, exit 1). Configure flags and the bundled liblzf/ static fallback confirmed unchanged in 6.3.0RC1.
fix(ci): check out repo in build-pecl so patch scripts resolve The build-pecl job runs $GITHUB_WORKSPACE/.github/patches/fix_redis_library_nul.py to NUL-terminate phpredis decompressed buffers (PHP >= 8.6 json scanner EOI), but the job never checked out this repository, so on the runner the script did not exist and the job died right after the igbinary prebuild with: python3: can't open file '.github/patches/fix_redis_library_nul.py': No such file or directory (seen on the php-8.6.0beta3 run). The build-redis workflow is not affected because it does have a checkout step. Add an actions/checkout step at the top of build-pecl, mirroring the "Check out this repo" step the smoke-test job already uses. The patch script itself is committed and verified to still apply cleanly against current phpredis develop (lzf/zstd/lz4 anchors each match exactly once).