Commit bb0ed566f6399041c55a6d409d5399f5b0ca9cb3 ("x11-libs/cairo: Drop IUSE=xcb") removed the xcb USE flag and conflated it with USE="X". This works when building with USE="X" (e.g. desktop profile) but breaks when building e.g. on a headless server. I need cairo with USE="-X" on my server due to a dependency chain of cups -> cups-filters -> mupdf -> harfbuzz -> cairo. While in theory I could enable "X" and pull in a bunch of new dependencies this seems like a step backwards, since things worked just fine before. Reproducible: Always Steps to Reproduce: 1. try to build cairo-1.16.0-r3 with USE="-X" 2. build aborts due to lack of xcb (see below) 3. :( Actual Results: Previously working build now aborts with: --snip-- checking for X... disabled checking for cairo's XCB surface backend feature... checking for xcb... no checking whether cairo's XCB surface backend feature could be enabled... no (requires xcb >= 1.6 xcb-render >= 1.6 https://xcb.freedesktop.org) configure: error: XCB surface backend feature could not be enabled --snap-- Expected Results: Successful build as before, with no added X dependencies. After a quick look at the ebuild I think the unconditional --enable-xcb/--enable-xcb-shm needs to be guarded by $(use_with X).
Looks like this got already fixed in 808f2b7342710bca96885e8a247eaf88c2c9a5ac.