On 6/16/20 6:38 PM, Michael Lienhardt wrote: > > > On 6/16/20 9:31 PM, Zac Medico wrote: >> On 6/16/20 11:07 PM, Michael Lienhardt wrote: >>> I'm sorry, my client didn't allow to send plain text email anymore... >>> >>> So, here is my original email. >>> >>> Dear all, >>> >>> My bad for not noticing it sooner, but when there is a dependency like >>> ">=sys-fs/udev-208-r1:0/0[static-libs?]" (that occurs in >>> virtual/libgudev-215-r3), >>> since 'static-libs' is not a use flags of sys-fs/udev-242, that cpv is >>> silently not considered during dependency solving by emerge. >>> However, the PMS states: >>> - it is an error for a use dependency to be applied to an ebuild which >>> does not have the flag in question in IUSE_REFERENCEABLE >>> - For EAPIs listed in table 5.4 as not supporting profile defined IUSE >>> injection, IUSE_REFERENCEABLE is equal to the calculated IUSE value. For >>> EAPIs where profile defined IUSE injection is supported, IUSE_REFERENCEABLE >>> is equal to IUSE_EFFECTIVE >>> And 'static-libs' is not in the IUSE_EFFECTIVE of sys-fs/udev-242 (that >>> ebuild has EAPI=6). >>> So it seems to me that this current behavior of emerge should be considered >>> an error, no? Or the PMS should be updated?
Yes, according to PMS it's a "error" but emerge has never reported it as such. Adding an error message to emerge sounds fine to me. >>> This is related to the tool I'm working on: should my tool allow this >>> behavior, or fail like it is currently doing (I guess the former)? > >> It's valid as a 4-style dependency with use-dep-defaults. Actually, it doesn't have use-dep-defaults but somehow my brain associated it with that because you were talking about IUSE. > I know. Except that in virtual/libgudev-215-r3.ebuild we have in the DEPEND: > > >=sys-fs/udev-208-r1:0/0[${MULTILIB_USEDEP},gudev(-),introspection(-)?,static-libs?] > It is a 2-style dependency (following the PMS). > > I checked with 3 dummy packages > > 1. app-misc/dummy-master-1 > EAPI=6 > SLOT=0 > KEYWORDS="amd64" > IUSE="static-libs" > DEPEND=">=app-misc/dummy-slave-1[static-libs?]" > #DEPEND="=app-misc/dummy-slave-1[static-libs?]" > > 2. app-misc/dummy-slave-1 > EAPI=6 > SLOT=0 > KEYWORDS="amd64" > IUSE="" > DEPEND="" > > 3. app-misc/dummy-slave-2 > EAPI=6 > SLOT=0 > KEYWORDS="amd64" > IUSE="static-libs" > DEPEND="" > > With the first version of DEPEND, emerge succeed: > # emerge -pv app-misc/dummy-master > > These are the packages that would be merged, in order: > > Calculating dependencies... done! > [ebuild N ] app-misc/dummy-slave-2::gentoo USE="-static-libs" 0 KiB > [ebuild N ] app-misc/dummy-master-1::gentoo USE="-static-libs" 0 KiB This success is expected, yes? Do you suggest to change the behavior somehow? > With the second version of DEPEND, emerge fails: > # emerge -pv app-misc/dummy-master > > These are the packages that would be merged, in order: > > Calculating dependencies... done! > > emerge: there are no ebuilds built with USE flags to satisfy > "=app-misc/dummy-slave-1[static-libs?]". > !!! One of the following packages is required to complete your request: > - app-misc/dummy-slave-1::gentoo (Missing IUSE: static-libs) > (dependency required by "app-misc/dummy-master-1::gentoo" [ebuild]) > (dependency required by "app-misc/dummy-master" [argument]) This failure is expected, yes? Do you suggest to change the behavior somehow? -- Thanks, Zac
signature.asc
Description: OpenPGP digital signature