Pursuant to our conversation in #gentoodev: <g2boojum> One plan in Portage2 would have been to have two classes of USE flags: global, such as "kde" or "gnome", that a user would always want on (or off), and local, meaning specific to a particular ebuild as a switch that doesn't really involve other ebuilds. <seemant> grant: that is an excellent idea, really <g2boojum> seemant: Yeah. At the same time, I think ebuild really need a way to register USE variables, so that "emerge --use foo" would return a list of possible USE variables. The second idea is especially attractive to me. I think that that would be an amazing addition to portage.
Also, a way to tell which USE flags are required for some dependency. There are two cases that come to mind. First is GTK/GDKpixbuf (for GTK themes) and GNOME/GDKpixbuf (for gnomified GTK themes). In some cases, gnome is a dependency, and requires the gnomified gdk-pixbuf. Currently, gdk-pixbuf adds gnome-bloat, where it really does not need to. The second case that comes to mind is something that woodchip can probably tell more about -- I have seen some mention of it in the postfix ebuilds -- involving SASL and SSL or some such. Woodchip?
It says # note: if sasl is built w/ pam, then postfix _MUST_ be built w/ pam in the postfix ebuild, i think jnelson made that comment... I think the underlying suggestion is to have support for: DEPEND="... >=net-misc/snort-1.8.3:mysql" This is an actual snip from an ebuild ive written, but never made it into portage: # mysql needs to have been in USE when snort was/is compiled. DEPEND="virtual/glibc virtual/mta >=net-www/apache-1.3.22 >=net-misc/snort-1.8.3 >=dev-db/mysql-3.23 net-misc/traceroute new-misc/bind-utils net-misc/whois net-www/lynx dev-perl/DBI dev-perl/CGI dev-perl/Digest-MD5 dev-perl/DBD-mysql" so theres no other way to do it currently other than making a note in the ebuild file, documenting the quirk, or come up with a portage API thing. Maybe there's no need for this in the first place, I dont know.. my $.02.
Eroaster would benifit from this. It requires gnome-python be built with the gnome.ui modules (which it won't be if -gnome is in your USE). The rest is self explanitory.
Having just installed Gentoo 1.4RC1 (for the second time), one additional (should be easy) change to the USE flags: Duplicate the content of /mnt/gentoo/usr/portage/profiles/use.desc in /etc/make.profile/use.defaults (or even symlink one to the other), and use the # (comment) where appropriate to signify the Gentoo "defaults". For instance, an /etc/make.profile/use.defaults file might look like: #3dfx - Adds support for 3dfx.... #3dnow - Adds support for 3dnow multimedia... aalib - Adds support for media-libs/aalib #acl - blah blah blah #afs - blah blah blah alsa - Adds support for media-libs/alsa-lib (Advanced Linux Sound Arch) When I installed Gentoo this afternoon, I had to have three terminals open in order to see all the available USE flags I might want (or not want): one to /etc/make.conf one to /etc/make.profile/use.defaults and one to /usr/portage/profiles/use.desc
John: there are packages already that can configure USE-vars (e.g. bug #2989) and i'm going to change the use-var generator to console using python-newt .. should be finished soon :)
Correct me if I'm wrong but this has been implemented and this bug can be closed.
yeah, global/local use flags have been implemented and you can `emerge -pv <pkg>` to see use flags that are utilized depending on use flags being enabled in some packages is another bug so we can clean this one