| Summary: | www-client/chromium-89.0.4389.128: multiple definition of 'enum _VA_TEE_EXEC_FUNCTION_ID' | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | Alexander Sergeyev <sergeev917> |
| Component: | Current packages | Assignee: | Chromium Project <chromium> |
| Status: | RESOLVED OBSOLETE | ||
| Severity: | normal | CC: | dschridde+gentoobugs |
| Priority: | Normal | ||
| Version: | unspecified | ||
| Hardware: | AMD64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
| Attachments: | build.log | ||
|
Description
Alexander Sergeyev
2021-04-15 08:46:43 UTC
Created attachment 699993 [details]
build.log
Excerpt from build log for one of errors:
In file included from ../../media/gpu/vaapi/vaapi_video_decoder_delegate.h:23,
from ../../media/gpu/vaapi/h264_vaapi_video_decoder_delegate.h:12,
from ../../media/gpu/vaapi/h264_vaapi_video_decoder_delegate.cc:5:
../../third_party/libva_protected_content/va_protected_content.h:136:14: error: multiple definition of 'enum _VA_TEE_EXEC_FUNCTION_ID'
136 | typedef enum _VA_TEE_EXEC_FUNCTION_ID {
| ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/va/va.h:5139,
from ../../third_party/libva_protected_content/va_protected_content.h:37,
from ../../media/gpu/vaapi/vaapi_video_decoder_delegate.h:23,
from ../../media/gpu/vaapi/h264_vaapi_video_decoder_delegate.h:12,
from ../../media/gpu/vaapi/h264_vaapi_video_decoder_delegate.cc:5:
/usr/include/va/va_prot.h:405:14: note: previous definition here
405 | typedef enum _VA_TEE_EXEC_FUNCTION_ID {
| ^~~~~~~~~~~~~~~~~~~~~~~~
Seemingly the problem is not from a new libva version, but likely a collision between system libva and chromium-vendored libva.
Can you try with chromium-90? We won't stabilize chromium-89.0.4389.128, but go directly for chromium-90. (In reply to Stephan Hartmann from comment #3) > Can you try with chromium-90? We won't stabilize chromium-89.0.4389.128, but > go directly for chromium-90. Yes, no problem. I'll go for 90.0.4430.70, but chromium tends to take time to build. As a side note -- after downgrading to x11-libs/libva-2.10.0, the source file which caused problem before was successfully compiled (chromium-89.0.4389.128). While the build is going, I've briefly looked into the source code and my understanding is: 1) chromium does not vendor libva itself; 2) chromium adds a particular functionality to be used with libva (that is, protected content/drm); 3) this functionality was moved from chromium code base into libva (libva-2.11.0). So, looks like <www-client/chromium-90 should depend on <x11-libs/libva-2.11.0. References: https://github.com/intel/libva/commit/0dd8d8af3980c0958b64cbad2ac1b2874f69f60e https://github.com/chromium/chromium/commit/e0b362edd9b49143b89fc76c4a31dd5603b6fbd0 > So, looks like <www-client/chromium-90 should depend on <x11-libs/libva-2.11.0.
And (if the understanding is correct) in other direction as well: >=www-client/chromium-90 should depend on >=x11-libs/libva-2.11.0
(In reply to Alexander Sergeyev from comment #6) > > So, looks like <www-client/chromium-90 should depend on <x11-libs/libva-2.11.0. > > And (if the understanding is correct) in other direction as well: > >=www-client/chromium-90 should depend on >=x11-libs/libva-2.11.0 The encrypted VA-API stuff is only used in ChromeOS. (In reply to Stephan Hartmann from comment #7) > The encrypted VA-API stuff is only used in ChromeOS. Does it make sense to drop "third_party/libva_protected_content" from keeplibs in the ebuild? One of the structs defined there is used only under IS_CHROMEOS_ASH build flag. By no means not a thorough check. https://github.com/chromium/chromium/search?q=VACencSliceParameterBufferH264 https://github.com/chromium/chromium/blob/d7da0240cae77824d1eda25745c4022757499131/media/gpu/vaapi/h264_vaapi_video_decoder_delegate.cc#L273 (In reply to Alexander Sergeyev from comment #8) > By no means not a thorough check. (I meant only a partial check there) (In reply to Alexander Sergeyev from comment #8) > (In reply to Stephan Hartmann from comment #7) > > The encrypted VA-API stuff is only used in ChromeOS. > > Does it make sense to drop "third_party/libva_protected_content" from > keeplibs in the ebuild? One of the structs defined there is used only under > IS_CHROMEOS_ASH build flag. By no means not a thorough check. > > https://github.com/chromium/chromium/search?q=VACencSliceParameterBufferH264 > https://github.com/chromium/chromium/blob/ > d7da0240cae77824d1eda25745c4022757499131/media/gpu/vaapi/ > h264_vaapi_video_decoder_delegate.cc#L273 There are dependencies in the build system on "third_party/libva_protected_content" that we would need to patch out. Anyways, chromium-90 compiles with libva-2.10 and libva-2.11. (In reply to Stephan Hartmann from comment #10) > Anyways, chromium-90 compiles with libva-2.10 and libva-2.11. The build has completed overnight, no problems with the browser so far. |