feat(registry): install-deps via dnf on Fedora and RHEL family#40840
Open
yury-s wants to merge 4 commits into
Open
feat(registry): install-deps via dnf on Fedora and RHEL family#40840yury-s wants to merge 4 commits into
yury-s wants to merge 4 commits into
Conversation
- Add isDnfBasedDistroSync() in linuxUtils, also exposing id_like so Rocky/Alma/Oracle/Amazon Linux 2023 inherit the same path. - validateDependenciesLinux now produces a "sudo dnf install ..." hint on dnf-based distros (instead of bare "Missing libraries" list) by querying `dnf repoquery --whatprovides <soname>` for each missing library. - installDependenciesFedora ldds the installed browser dirs, resolves each missing soname to a Fedora package, and shells out to `dnf install -y`. - Fix the chrome-linux/chrome-linux64 mismatch in chromium and chromium- headless-shell ldd directories: on linux-x64 the CFT layout uses chrome-linux64/ and chrome-headless-shell-linux64/, so the previous `['chrome-linux']` list silently no-op'd host validation on every x64 Linux. Include both so arm64 (chrome-linux/) keeps working.
- Rename installDependenciesFedora to installDependenciesDnf to match
isDnfBasedDistroSync / DNF_DISTRO_IDS and cover the RHEL family.
- Extract runPackageInstall shared by apt and dnf paths.
- Extract reportDnfResolution for the dry-run output.
- Parallelize per-browser ldd scans in installDependenciesDnf.
- Take a {lddDirectories, dlOpenLibraries} struct in
_validateHostRequirements so each entry mentions its dirs once.
- Use getEmbedderName().embedderName instead of hand-rolled
process.env.PW_LANG_NAME fallback.
…changes Exercises the new dnf-based install-deps path against a stock fedora:latest image whenever the browser revisions change.
Drop the explicit chromium/firefox/webkit/ffmpeg list — running `install` and `install-deps` with no arguments installs the default set, which matches what an end-user on Fedora is most likely to do.
pavelfeldman
approved these changes
May 14, 2026
Contributor
Test results for "MCP"2 failed 7084 passed, 1104 skipped Merge workflow run. |
Contributor
Test results for "tests 1"2 flaky41785 passed, 850 skipped Merge workflow run. |
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.
Summary
playwright install-depsfor Fedora and the RHEL family (RHEL, CentOS Stream, Rocky, Alma, Oracle, Amazon Linux 2023).dnf repoquery --whatprovidesagainst installed browser binaries, then either prints the list (--dry-run) or runsdnf install -yvia the existing root-elevation helper.@smoketests inside a stockfedora:latestcontainer wheneverpackages/playwright-core/browsers.jsonchanges.Note: Chromium and Firefox work; WebKit currently fails because it links against Ubuntu's libicu/libjpeg/libx264 SONAMEs that Fedora does not ship — that needs a separate Fedora WebKit build and is out of scope here.
Towards #37812
Towards microsoft/playwright-cli#309