chore(build): Add support for building with RHEL 9+ / Fedora 38+ / modern Podman alongside Docker / tested on Fedora 44 - #9728
Open
rahst12 wants to merge 2 commits into
Open
Conversation
Author
|
I'm looking for feedback on the fedora 44 supports. What's needed to get this going? |
rahst12
force-pushed
the
fedora-44-make-support
branch
from
August 8, 2026 06:27
5208ee6 to
4066f05
Compare
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
Podman / Fedora 44 / RHEL 9+ support for
make testNOTE: RedHat 8 was End of Life May 2024.
Docker CE is no longer installable or functional on Fedora 38+ and RHEL 9+ from the official
Docker repository. Podman (with
podman-dockerandpodman-compose) is the supportedreplacement on those platforms. This release makes the
./trunner andtestutilcomposepaths runtime-agnostic so that
make testworks with either Docker or Podman transparently.Changes by area:
testutil/runtime.go(new): central runtime detection; auto-detects whether Docker orPodman is in use (including
podman-dockershims), setsDOCKER_HOSTto the Podman socketso the Docker SDK can communicate with it, and exposes
ContainerRuntime()andContainerComposeCmdPrefix()helpers used everywhere elset/t.goandtestutil/bulk.go: all hardcodeddocker compose --compatibilityinvocations replaced with
ContainerComposeCmdPrefix(); alldocker logs,docker cp, anddocker execcalls replaced withContainerRuntime()contrib/Dockerfile: pre-creates all/data/zero*,/data/alpha*,/data/dg1, and/data/dg0.1directories; Podman'scrunOCI runtime does not auto-create a container'sworking_dirat startup (unlike Docker'srunc), which left containers stuck in "Created"state
t/Makefile: newinstall-deps-docker-linux-dnftarget installspodman podman-docker podman-composeand enables the Podman socket instead of attempting thebroken Docker CE install path on Fedora/RHEL
t/scripts/check-deps-docker.sh: rewritten to detect and validate Podman ondnf-based systems instead of requiring Docker CEt/scripts/check-docker-available-memory.sh: reads/proc/meminfodirectly on Linux(works for both Docker and Podman) rather than calling
docker infoMakefile(root): new$(DOCKER)variable falls back topodmanwhendockerisabsent, used for image build targets
Fixed
&&(was;) so a failed compile no longerfalls through to
make install, and clear any stale/tmp/jemalloc-tempbefore rebuildingAdded
contrib/smoke-test.shto bring up a local zero+alpha and verifyschema/mutation/query against a freshly built binary
Changed
linux-dependencynow auto-detects the package manager (apt/dnf/pacman) and installs theC/C++ toolchain + protobuf-compiler, so build prerequisites work on Fedora/RHEL and Arch in
addition to Debian/Ubuntu
Docs
Checklist
Conventional Commits syntax, leading
with
fix:,feat:,chore:,ci:, etc.docs repo staged and linked here. This process can
be simplified by going to the public docs site and clicking the
"Edit this page" button at the bottom of page(s) relevant to your changes. Ensure that you
indicate in the PR that this is an unreleased feature so that it does not get merged into
the main docs prematurely.