Summary: | [Future EAPI] Restrict REQUIRED_USE (and *DEPEND) to meaningful constructs | ||
---|---|---|---|
Product: | Gentoo Hosted Projects | Reporter: | Michał Górny <mgorny> |
Component: | PMS/EAPI | Assignee: | Package Manager Specification <pms> |
Status: | RESOLVED OBSOLETE | ||
Severity: | normal | CC: | esigra, pacho |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: | https://bugs.gentoo.org/show_bug.cgi?id=609338 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 174380 |
Description
Michał Górny
![]() ![]() ![]() ![]() As pointed out by ulm, we should probably also look into || groups in *DEPEND. AFAIU the current confusing behavior of || () being satisfied boils down to the possibility of '|| ( a? ( ... ) b? ( ... ) )' collapsing to empty group with USE='-a -b'. Given that, I see two possible change routes: 1. We ban empty || and USE flag conditionals inside || entirely. This will be consistent and may improve readability and correctness of some ebuilds that achieve suspicious results using foo? in ||. 2. We ban explicit empty || and make indirect || evaluate to false (effectively banning it as well). If we go this route, we will require a QA check that will detect || containing only USE conditionals, and requiring appropriate REQUIRED_USE. Following further discussion on the topic, I think we'll actually leave PMS as-is and establish the bans on policy level. However, let's keep this open to see how well can GLEP73 be described without the explicit restrictions. Looks like I was word enforcing REQUIRED_USE quite reasonably without this, so we probably won't need it after all. (In reply to Michał Górny from comment #3) > Looks like I was word enforcing REQUIRED_USE quite reasonably without this, > so we probably won't need it after all. Can this bug be closed then? |