Summary: | app-portage/porthole-0.6.1-r1 shows unknown USE flags like "video_cards_intel" | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Jonas Stein <jstein> |
Component: | Third-Party Tools | Assignee: | Portage Tools Team <tools-portage> |
Status: | RESOLVED WONTFIX | ||
Severity: | normal | CC: | dolsen, jer, tools-portage, treecleaner, zmedico |
Priority: | Normal | Keywords: | PMASKED |
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Deadline: | 2020-03-18 |
Description
Jonas Stein
2013-05-30 20:12:06 UTC
These flags are actual use flags as reported by the portage API used. They are translated from the USE_INPUT= VIDEO_CARDS= statements in make.conf. They are then expanded into the ones reported by portage and then displayed by porthole. The majority of USE_EXPAND type use flags are filtered out as they are considered hidden, (by the portage API). At this time, I do not believe that there is a portage API available that will separate out those. That "emerge -pv" output was performed by emerge's output formatting, which special cases those. If I am correct, I would have to special case those also. I am cc'ing zmedico on this. Maybe that API has changed since I last worked on that code. The number of packages using USE_EXPAND type use flags has been growing. I might also add that these flags can also be set in /etc/portage/package.use like all other USE flags. One of the now more widely used USE_EXPAND flags is now PYTHON_TARGETS eg: big_daddy catalyst # emerge -pv dev-python/astng These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] dev-python/astng-0.24.2 USE="{-test}" PYTHON_TARGETS="python2_6 python2_7 python3_2 -pypy1_9 -pypy2_0" 0 kB The new python eclasses add those flags to the IUSE in the ebuild using: PYTHON_COMPAT=( python{2_6,2_7,3_2} pypy{1_9,2_0} ) into: IUSE: test, python_targets_python2_6, python_targets_python2_7, python_targets_python3_2, python_targets_pypy1_9, python_targets_pypy2_0 Zac, is there a method (API) to get a list of USE_EXPAND variables not hidden, much like portdbapi.settings["categories"]? That would make it possible to keep up with an ever changing exception list. (In reply to Brian Dolbec from comment #1) > The majority of USE_EXPAND type use flags are filtered out as they are > considered hidden, (by the portage API). At this time, I do not believe > that there is a portage API available that will separate out those. That > "emerge -pv" output was performed by emerge's output formatting, which > special cases those. If I am correct, I would have to special case those > also. There's no public portage API for this. These are the locations of the relevant private portage functions: pym/_emerge/resolver/output.py: def _display_use(self, pkg, pkg_info): pym/_emerge/resolver/output.py: def map_to_use_expand(self, myvals, forced_flags=False, pym/_emerge/UseFlagDisplay.py:def pkg_use_display(pkg, opts, modified_use=None): (In reply to Brian Dolbec from comment #2) > Zac, is there a method (API) to get a list of USE_EXPAND variables not > hidden, much like portdbapi.settings["categories"]? > That would make it possible to keep up with an ever changing exception list. For example, see that pkg_use_display function in pym/_emerge/UseFlagDisplay.py. It goes through everything in USE_EXPAND, and searches for flags in IUSE that start with the corresponding lowercase flag_prefix. In the display, it excludes any flags corresponding to USE_EXPAND_HIDDEN variables. Removed. |