After I changed VIDEO_CARDS I have: $ eix dev-libs/libclc [I] dev-libs/libclc Available versions: 14.0.6{tbz2} 15.0.6{tbz2} **15.0.6.9999*l **16.0.0_pre20230101 **16.0.0_pre20230107 **16.0.0.9999*l {spirv verify-sig VIDEO_CARDS="nvidia r600 radeonsi"} Installed versions: 15.0.6{tbz2}(17:50:37 01/13/23)(-spirv -verify-sig VIDEO_CARDS="-nvidia -r600 -radeonsi") It became interesting to me what dev-libs/libclc does if all USE flags are turned off. We have https://gitweb.gentoo.org/repo/gentoo.git/tree/dev-libs/libclc/libclc-15.0.6.ebuild#n73 : [[ ${#libclc_targets[@]} ]] || die "libclc target missing!" But seems like it doesn't work. Indeed: 1. libclc_targets is a list, 2. ${#libclc_targets[@]} is "0", 3. [[ ]] tests for an empty string in my hands. So? BTW, is it really checked if "at least one USE flag is on"? It's REQUIRED_USE, then: REQUIRED_USE="|| (spirv video_cards_nvidia video_cards_r600 video_cards_radeonsi)"
Well, yes, the code is wrong. However, I'm not sure whether we should indeed enforce this via REQUIRED_USE or perhaps remove it entirely. @x11, any opinion? libclc is currently only used by mesa[opencl]. Is there a semi-valid use case for installing mesa[opencl] but not enabling any backend on libclc? I'm particularly wondering whether: a. it's better to enforce at least one backend, so that people notice if they're building libclc without any backend and wouldn't end up WTF-ing why something doesn't work, or b. it's better to let people install libclc without any backend, so if it gets pulled in as a dependency but they don't need it, they don't have to go through special hassle.
Sorry about my foreign opinion but isn't more important whether the upstream allows such situation? (Mistakenly or not -0 is another question.) I perceive Gentoo as close-to-upstream (a source-based distribution).