Skip to content

chromium-ozone-wayland: add virtual/libgbm to DEPENDS#988

Open
Ashwin-Prabhakar wants to merge 1 commit into
OSSystems:masterfrom
Ashwin-Prabhakar:master
Open

chromium-ozone-wayland: add virtual/libgbm to DEPENDS#988
Ashwin-Prabhakar wants to merge 1 commit into
OSSystems:masterfrom
Ashwin-Prabhakar:master

Conversation

@Ashwin-Prabhakar
Copy link
Copy Markdown

Add virtual/libgbm to DEPENDS to fix a build failure caused by missing GBM headers or libraries when compiling the Chromium Ozone Wayland backend.

Copy link
Copy Markdown
Contributor

@lumag lumag left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please provide details in the commit message, what / how it is failing. I assume that the lack of the GBM would have been an issue that should have been detected already.

@Ashwin-Prabhakar
Copy link
Copy Markdown
Author

Please provide details in the commit message, what / how it is failing. I assume that the lack of the GBM would have been an issue that should have been detected already.

| DEBUG: Python function extend_recipe_sysroot finished
| DEBUG: Executing shell function do_configure
| ERROR at //build/config/linux/pkg_config.gni:152:19: Script returned non-zero exit code.
| pkgresult = exec_script(pkg_config_script, _script_args, "json")
| ^----------
| Current dir: /home/qualcomm/Ashwin/kas_rc3/build/tmp/work/armv8-2a-qcom-linux/chromium-ozone-wayland/147.0.7727.55/sources/chromium-147.0.7727.55/out/Release/
| Command: python3 /home/qualcomm/Ashwin/kas_rc3/build/tmp/work/armv8-2a-qcom-linux/chromium-ozone-wayland/147.0.7727.55/sources/chromium-147.0.7727.55/build/config/linux/pkg-config.py gbm
| Returned 1.
| stderr:
|
| Package gbm was not found in the pkg-config search path.
| Perhaps you should add the directory containing `gbm.pc'
| to the PKG_CONFIG_PATH environment variable
| Package 'gbm' not found
| Could not run pkg-config.
|
| See //third_party/minigbm/BUILD.gn:104:3: whence it was called.
| pkg_config("libgbm") {
| ^---------------------
| See //ui/ozone/platform/wayland/BUILD.gn:346:7: which caused the file to be included.
| "//third_party/minigbm",
| ^----------------------
| WARNING: exit code 1 from a shell command.
ERROR: Task (/home/qualcomm/Ashwin/kas_rc3/build/../meta-browser/meta-chromium/recipes-browser/chromium/chromium-ozone-wayland_147.0.7727.55.bb:do_configure) failed with exit code '1'
NOTE: Tasks Summary: Attempted 15712 tasks of which 15701 didn't need to be rerun and 1 failed.
NOTE: Build completion summary:
NOTE: do_create_recipe_spdx: 0.0% sstate reuse(0 setscene, 1 scratch)
NOTE: Writing buildhistory
NOTE: Writing buildhistory took: 5 seconds

is the build failure I see.

@lumag
Copy link
Copy Markdown
Contributor

lumag commented May 26, 2026

@Ashwin-Prabhakar you've posted the log rather than the explanation. And it's not a part of the commit message. From my point of view, you still need to explain, what is going on (e.g. virtual/egl isn't required to depend / provide virtual/libgbm thus in the ... build configuration ... happens).

@Ashwin-Prabhakar
Copy link
Copy Markdown
Author

@Ashwin-Prabhakar you've posted the log rather than the explanation. And it's not a part of the commit message. From my point of view, you still need to explain, what is going on (e.g. virtual/egl isn't required to depend / provide virtual/libgbm thus in the ... build configuration ... happens).

@lumag I have updated the commit message incorporating your review comments. Please check and let me know if it is to your satisfaction.

Copy link
Copy Markdown
Contributor

@lumag lumag left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is In the current build configuration,?

@Ashwin-Prabhakar
Copy link
Copy Markdown
Author

What is In the current build configuration,?

bitbake -e chromium-ozone-wayland | grep -E '^PREFERRED_PROVIDER_virtual/(egl|libgbm|libgl)'"
PREFERRED_PROVIDER_virtual/egl="libglvnd"
PREFERRED_PROVIDER_virtual/libgl="libglvnd"
PREFERRED_PROVIDER_virtual/libgl-native="libglvnd-native"
PREFERRED_PROVIDER_virtual/libgles1="libglvnd"
PREFERRED_PROVIDER_virtual/libgles2="libglvnd"
PREFERRED_PROVIDER_virtual/libgles3="libglvnd"

This is in my current build configuration.

@lumag
Copy link
Copy Markdown
Contributor

lumag commented May 26, 2026

What is In the current build configuration,?

bitbake -e chromium-ozone-wayland | grep -E '^PREFERRED_PROVIDER_virtual/(egl|libgbm|libgl)'" PREFERRED_PROVIDER_virtual/egl="libglvnd" PREFERRED_PROVIDER_virtual/libgl="libglvnd" PREFERRED_PROVIDER_virtual/libgl-native="libglvnd-native" PREFERRED_PROVIDER_virtual/libgles1="libglvnd" PREFERRED_PROVIDER_virtual/libgles2="libglvnd" PREFERRED_PROVIDER_virtual/libgles3="libglvnd"

This is in my current build configuration.

And how does one guess it from your commit message?

…tups

The Chromium Ozone Wayland backend relies on minigbm, which executes a
pkg-config check for 'gbm' during the configure task.

In the current build configuration, virtual/egl is provided by libglvnd.
Unlike some monolithic vendor graphics drivers, libglvnd only acts as a
vendor-neutral dispatch layer and does not provide or implicitly pull in
GBM headers or libraries. As a result, 'gbm.pc' is missing from the
recipe sysroot, causing the GN build configuration to fail.

Explicitly adding virtual/libgbm to DEPENDS ensures that the necessary
GBM pkg-config files are populated into the Chromium recipe sysroot
regardless
of the chosen EGL provider.

Signed-off-by: Ashwin Prabhakar <ashwin.prabhakar@qti.qualcomm.com>
@Ashwin-Prabhakar
Copy link
Copy Markdown
Author

What is In the current build configuration,?

bitbake -e chromium-ozone-wayland | grep -E '^PREFERRED_PROVIDER_virtual/(egl|libgbm|libgl)'" PREFERRED_PROVIDER_virtual/egl="libglvnd" PREFERRED_PROVIDER_virtual/libgl="libglvnd" PREFERRED_PROVIDER_virtual/libgl-native="libglvnd-native" PREFERRED_PROVIDER_virtual/libgles1="libglvnd" PREFERRED_PROVIDER_virtual/libgles2="libglvnd" PREFERRED_PROVIDER_virtual/libgles3="libglvnd"
This is in my current build configuration.

And how does one guess it from your commit message?

Thanks, I have updated the commit message.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants