| Summary: | libavif and dav1d should live under ThirdParty/ | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Michael Catanzaro <mcatanzaro> |
| Component: | Platform | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | ap, mcatanzaro, mmaxfield, ntim, sabouhallawa, webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | All | ||
| See Also: | https://bugs.webkit.org/show_bug.cgi?id=246598 | ||
|
Description
Michael Catanzaro
2022-11-21 12:04:27 PST
Um, same problem with dav1d, except that one is even tricker since it's layered underneath libavif with no indication that it's yet another upstream source. I would have missed that entirely if not for the title of bug #246598. A ideal layout for this would be: Source/ThirdParty/libavif, Source/ThirdParty/dav1d. Alternatively, if keeping dav1d underneath the libavif directory is really desired, then it should be named differently to make clear that it is another third-party source, e.g. Source/ThirdParty/libavif/ThirdParty/dav1d. We intentionally chose to put it inside WebCore because putting it outside WebCore would make it very difficult to integrate with Apple's build system. The idea is that we would stop bundling it (and delete the checked-in copy!) in the future when all of Apple's OSes that ToT WebKit runs on would support avif natively. So we thought that all the pain of integrating with Apple's build system wouldn't be worth it for just a few years. How do you feel about putting a few years' deadline on the amount of time that third party sources are in multiple directories to keep track of? (In reply to Myles C. Maxfield from comment #4) > We intentionally chose to put it inside WebCore because putting it outside > WebCore would make it very difficult to integrate with Apple's build system. This is strange because WebCore already has an unavoidable hard dependency on Source/ThirdParty due to both ANGLE and libwebrtc. But anyway, if it really needs to be under WebCore, how about Source/WebCore/ThirdParty? Either: Source/WebCore/ThirdParty/libavif Source/WebCore/ThirdParty/dav1d Or: Source/WebCore/ThirdParty/libavif Source/WebCore/ThirdParty/libavif/ThirdParty/dav1d (Notably, I suggest avoiding Source/WebCore/ThirdParty/libavif/dav1d, to make it clear that's a second third-party source.) If one of those suggestions works for you, then we can dodge the problem and not bother with discussing how long it's OK for things to be messy. :) Can we keep it in PAL? > We intentionally chose to put it inside WebCore because putting it outside WebCore would make it very difficult to integrate with Apple's build system. PDF.js is prior art of integrating a ThirdParty directory into WebCore for XCode build purposes (see bug 241117) (In reply to Myles C. Maxfield from comment #6) > Can we keep it in PAL? Seems like an odd place, but sure: Source/WebCore/PAL/ThirdParty/libavif Source/WebCore/PAL/ThirdParty/dav1d Or: Source/WebCore/PAL/ThirdParty/libavif Source/WebCore/PAL/ThirdParty/libavif/ThirdParty/dav1d Just stuffing ThirdParty into the path will help a lot. I'm working on this tonight. Okay, I have a patch that works with local builds. Let's make sure it builds with Apple's build system before uploading. Committed 258646@main (8a6b8098b05c): <https://commits.webkit.org/258646@main> Reviewed commits have been landed. Closing PR #8368 and removing active labels. |