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?
>>
>> 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.
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
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])
Michael