[Build] Install complete Perl runtime in Linux packaging images - #31724
Merged
Tianlei Wu (tianleiwu) merged 4 commits intoAug 8, 2026
Conversation
Tianlei Wu (tianleiwu)
enabled auto-merge (squash)
August 8, 2026 00:31
Sunghoon Choi (hanbitmyths)
previously approved these changes
Aug 8, 2026
Baiju Meswani (baijumeswani)
previously approved these changes
Aug 8, 2026
Tianlei Wu (tianleiwu)
dismissed stale reviews from Baiju Meswani (baijumeswani) and Sunghoon Choi (hanbitmyths)
via
August 8, 2026 07:47
10705b1
Tianlei Wu (tianleiwu)
requested review from
Baiju Meswani (baijumeswani) and
Sunghoon Choi (hanbitmyths)
August 8, 2026 18:08
Baiju Meswani (baijumeswani)
approved these changes
Aug 8, 2026
Tianlei Wu (tianleiwu)
deleted the
tlwu/20260807/fix-linux-packaging-ipc-cmd
branch
August 8, 2026 22:45
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Minimal AlmaLinux packaging images do not include all Perl standard-library modules required by vcpkg's OpenSSL build. This change installs the complete Perl runtime in the affected Linux images instead of only
perl-IPC-Cmd.Rebuilding the ARM64 Python image also exposed an independent compatibility issue: current unpinned
mypyreleases pull native dependencies that cannot be built for free-threaded CPython 3.13 on ARM64. The change therefore constrains mypy to<1.19only for thecp313tenvironment, while leaving all other Python environments unconstrained.The rebuilt ARM64 C API packaging image also revealed that its
flatbuffersinstall did not consume thePIP_INDEX_URLsecret supplied by the pipeline. The Dockerfile now mounts and exports that optional secret, matching the existing x64 packaging image while preserving public PyPI fallback for local builds.Summary of Changes
Complete Perl runtime
perl-coreand clean the dnf cacheperl-coreand clean the dnf cacheperl-coreon AlmaLinux 8 andperlon AlmaLinux 9AlmaLinux 8 provides
perl-coreas the complete upstream Perl metapackage. On AlmaLinux 9, theperlpackage brings in required modules includingperl-FindBin,perl-IPC-Cmd, andperl-lib.CPython 3.13t compatibility
tools/ci_build/github/linux/docker/inference/aarch64/python/cpu/scripts/install_deps.shmypy<1.19when populating the ARM64cp313timage environmenttools/ci_build/github/linux/build_linux_python_package.shcp313tmypy 1.18.2does not depend onlibrtorast-serialize. The constraint therefore avoids both unsupported native packages rather than pinning their transitive versions directly.ARM64 package-index configuration
tools/ci_build/github/linux/docker/inference/aarch64/default/cpu/DockerfilePIP_INDEX_URLBuildKit secret before installingflatbuffersThe C API packaging template already passes
--secret id=PIP_INDEX_URLto both x64 and ARM64 image builds. Previously, only the x64 Dockerfile consumed it, causing the ARM64 build to fall back to public PyPI and fail after repeated connection timeouts.Testing
bash -non the modified shell scripts.perl-coreas the complete upstream Perl metapackage.perlrequiresperl-FindBin,perl-IPC-Cmd, andperl-lib.cp313tresolver selectsmypy 1.18.2withoutlibrtorast-serialize.PIP_INDEX_URLsecret supplied by the C API packaging template.PIP_INDEX_URL, and the CUDA 12 and CUDA 13 images do not invoke pip.lintrunner -a.git diff --checkagainst the complete PR diff.Linux_C_API_Packaging_CPU_aarch64CI are in progress to validate the rebuilt image and wheel-build paths.Motivation and Context
Installing only
perl-IPC-Cmdsatisfies vcpkg's initial OpenSSL prerequisite check, but OpenSSL'sConfigurescript later fails when other core modules such asFindBinandlibare unavailable. Installing the complete Perl runtime provides the module set expected by the build.The Perl change did not cause the Python dependency failure. The Docker image action hashes the Dockerfile and its complete build context; changing the ARM64
install_centos.shproduced a new image tag and forced a clean build. That build resolved recently publishedast-serialize 0.8.0andlibrt 0.15.0, neither of which provides an ARM64cp313twheel, and their source builds failed against free-threaded CPython 3.13. Other PRs using the previous image tag remained green because the action pulled the cached image and skipped dependency installation.The subsequent C API packaging failure was also unrelated to Perl semantics. Pip timed out on every request to public
pypi.org; its final "No matching distribution found" message reflected an unavailable package index, not a missingflatbuffersrelease. Consuming the pipeline-provided package-index secret routes CI through its configured feed and avoids that public-network dependency.Checklist