<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://bugs.gentoo.org/bugzilla.dtd">

<bugzilla version="2.22.7"
          urlbase="http://bugs.gentoo.org/"
          maintainer="bugzilla@gentoo.org"
>

    <bug>
          <bug_id>2272</bug_id>
          
          <creation_ts>2002-04-30 06:24 0000</creation_ts>
          <short_desc>portage: ability to depend on USE flags being enabled</short_desc>
          <delta_ts>2009-01-27 14:32:26 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Portage Development</product>
          <component>Unclassified (old)</component>
          <version>unspecified</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <keywords>InSVN</keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>23464</blocked>
    
    <blocked>64289</blocked>
    
    <blocked>74435</blocked>
    
    <blocked>142941</blocked>
    
    <blocked>155723</blocked>
    
    <blocked>233213</blocked>
          
          <everconfirmed>1</everconfirmed>
          <reporter>erichey2@attbi.com</reporter>
          <assigned_to>dev-portage@gentoo.org</assigned_to>
          <cc>3.14159@gmx.net</cc>
    
    <cc>aaron123456789@gmail.com</cc>
    
    <cc>adrian.fruehwirth@gmx.at</cc>
    
    <cc>alpeterson@wsu.edu</cc>
    
    <cc>ansla80@yahoo.com</cc>
    
    <cc>aoz.syn@gmail.com</cc>
    
    <cc>aqu3l@go2.pl</cc>
    
    <cc>arne_bab@web.de</cc>
    
    <cc>azarah@gentoo.org</cc>
    
    <cc>basic@mozdev.org</cc>
    
    <cc>ben@xsusio.com</cc>
    
    <cc>blubb@gentoo.org</cc>
    
    <cc>bugs@dev.gentooexperimental.org</cc>
    
    <cc>carpaski@gentoo.org</cc>
    
    <cc>caster@gentoo.org</cc>
    
    <cc>chris_se@gmx.net</cc>
    
    <cc>chutz@gg3.net</cc>
    
    <cc>clmason@gmail.com</cc>
    
    <cc>daniel.goertzen@norscan.com</cc>
    
    <cc>darkside@gentoo.org</cc>
    
    <cc>dberkholz@gentoo.org</cc>
    
    <cc>efagerho@cc.hut.fi</cc>
    
    <cc>eprparadocs@gmail.com</cc>
    
    <cc>felix.schuster@gmx.at</cc>
    
    <cc>ferringb@gmail.com</cc>
    
    <cc>flash3001@yahoo.com</cc>
    
    <cc>flonai@gmx.de</cc>
    
    <cc>foser@gentoo.org</cc>
    
    <cc>frares@gmail.com</cc>
    
    <cc>gentoo-bugs@allenjb.me.uk</cc>
    
    <cc>george@gentoo.org</cc>
    
    <cc>h3y@esaurito.net</cc>
    
    <cc>hannes@gentoo.org</cc>
    
    <cc>hc@poweredbymice.com</cc>
    
    <cc>hkbst@gentoo.org</cc>
    
    <cc>hramrach@centrum.cz</cc>
    
    <cc>ikorot@earthlink.net</cc>
    
    <cc>imirkin@mit.edu</cc>
    
    <cc>jarausch@igpm.rwth-aachen.de</cc>
    
    <cc>jehan@zemarmot.net</cc>
    
    <cc>jer@gentoo.org</cc>
    
    <cc>john_r_graham@mindspring.com</cc>
    
    <cc>kanaka@gentoo.org</cc>
    
    <cc>latexer@gentoo.org</cc>
    
    <cc>m.debruijne@matrict.nl</cc>
    
    <cc>mail@eliasprobst.eu</cc>
    
    <cc>mail@peter-thomassen.de</cc>
    
    <cc>mcconachieneal@mail.com</cc>
    
    <cc>mholzer@gentoo.org</cc>
    
    <cc>michael.e.harris@gmail.com</cc>
    
    <cc>paolo.gabrielli@gmail.com</cc>
    
    <cc>parasietje@gmail.com</cc>
    
    <cc>redbaron@hitv.ru</cc>
    
    <cc>rockoo@gmail.com</cc>
    
    <cc>sdh33@cornell.edu</cc>
    
    <cc>seemant@gentoo.org</cc>
    
    <cc>serkan@gentoo.org</cc>
    
    <cc>simoneau@ele.uri.edu</cc>
    
    <cc>smithj@gentoo.org</cc>
    
    <cc>steffen@schaumburger.info</cc>
    
    <cc>StormByte@gmail.com</cc>
    
    <cc>tcunha@gentoo.org</cc>
    
    <cc>ticho@gentoo.org</cc>
    
    <cc>usata@gentoo.org</cc>
    
    <cc>uzytkownik2@gmail.com</cc>
    
    <cc>vrtladept@gmail.com</cc>
    
    <cc>wolf31o2@wolf31o2.org</cc>
    
    <cc>xoen.gnu@gmail.com</cc>
    
    <cc>znxster@gmail.com</cc>

      

      
          <long_desc isprivate="0">
            <who>erichey2@attbi.com</who>
            <bug_when>2002-04-30 06:24:07 0000</bug_when>
            <thetext>gdk-pixbuf works just fine without gnome, but the ebuild enforces inclusion of 
gnome.  I would suggest a gdk-pixbuf-gnome and a gdk-pixbuf (no gnome support) 
ebuild.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>seemant@gentoo.org</who>
            <bug_when>2002-04-30 06:45:32 0000</bug_when>
            <thetext>this has come up so many times, it is not even funny any more.

Daniel, we might want to give this some serious consideration.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>azarah@gentoo.org</who>
            <bug_when>2002-04-30 15:41:33 0000</bug_when>
            <thetext>Only way to properly fix this, is to have the ability to specify the USE
flags something should have been compiled with in DEPEND.  Otherwise
we will have half backed hacks which will only make things worse.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2002-09-26 10:13:35 0000</bug_when>
            <thetext>*** Bug 8401 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>azarah@gentoo.org</who>
            <bug_when>2002-10-12 14:11:17 0000</bug_when>
            <thetext>Any news on this front ?
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>hannes@gentoo.org</who>
            <bug_when>2002-10-20 17:00:11 0000</bug_when>
            <thetext>another package we need this feature for is vim (because vimpart needs a vim merged 
with dcop enabled (kde in use)) 
would be nice to have this soon in portage, than we can merge [g,k]vim[-core] ebuilds 
back into one ebuild. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>george@gentoo.org</who>
            <bug_when>2002-10-24 00:26:41 0000</bug_when>
            <thetext>Another &quot;case&quot;:
dev-ml/lablgl depends on dev-lang/ocaml and gtk. Ocaml has gtk as an *optional*
dependency.
Right now I can only do a dirty hack in ebuild which will only catch ~90% of
situations (namely check if gtk is defined system-wide and if not check if ocaml
is already installed). This is better than nothing, but still bad and ugly.
So yes, having this feature will be very nice.

George</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>azarah@gentoo.org</who>
            <bug_when>2002-12-02 05:14:56 0000</bug_when>
            <thetext>Could this be resolved some time soon ?  If you need help, just tell us how.
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>g2boojum@gentoo.org</who>
            <bug_when>2002-12-04 10:57:49 0000</bug_when>
            <thetext>*** Bug 7554 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>trapni@gentoo.org</who>
            <bug_when>2003-01-12 01:08:41 0000</bug_when>
            <thetext>has this been fixed in emerge now?  
I do ask because it isn&apos;t yet mentioned neither here nor in othe other (duplicated) bug 
report. 
 
otherwise, when will this be fixed? at which position is this on the portage todo-list?..... 
 
many thanks, 
Christian Parpart. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mholzer@gentoo.org</who>
            <bug_when>2003-10-12 15:11:48 0000</bug_when>
            <thetext>portage can do this now</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2003-12-01 21:04:01 0000</bug_when>
            <thetext>actually, it still cant</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2003-12-02 21:31:41 0000</bug_when>
            <thetext>*** Bug 34905 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2004-01-21 04:17:59 0000</bug_when>
            <thetext>*** Bug 38907 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>tom.gl@free.fr</who>
            <bug_when>2004-01-23 02:32:22 0000</bug_when>
            <thetext>Created an attachment (id=24275)
have_flags.patch

I don&apos;t really know what should be the behavior of a dependency on USE flags,
but at least here is a patch that adds a new portageq/ebuild.sh function to
test if a given pkg has been emerged with some given use flags. 

Usage from portageq is:
% portageq have_flags &lt;root&gt; &lt;depend_atom&gt; [&lt;use_flag&gt;]+
==&gt; exit with code 0 if all matching pkgs have been compiled with all the
required flags. Here &quot;all pkgs&quot; means that if there is no matching pkg, it will
also exit(0). (Use has_version if you want to ensure there is at least one
matching pkg, but this is not the goal of this function.)

Usage from an ebuild:
  have_flags &lt;depend_atom&gt; [&lt;use_flags&gt;]
==&gt; returns 0 or 1, with the same behavior as the portageq call.

I think the good way to use it would be in pkg_setup(), to display an error and
die if the user have to reemerge some pkg with different use flags. For
instance:

pkg_setup() {
    have_flags &quot;=dev-ml/lablgtk-2*&quot; glade \
       || { eerror &quot;Please reemerge dev-ml/lablgtk-2.x with the \&quot;glade\&quot; local
USE flag enabled.&quot; 
	    die &quot;You need to reemerge something.&quot; ; }
}</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>foser@gentoo.org</who>
            <bug_when>2004-02-10 15:12:38 0000</bug_when>
            <thetext>*** Bug 41170 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2004-02-13 10:58:05 0000</bug_when>
            <thetext>*** Bug 41452 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>ferringb@gmail.com</who>
            <bug_when>2004-07-22 00:48:55 0000</bug_when>
            <thetext>*** Bug 57828 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>latexer@gentoo.org</who>
            <bug_when>2004-08-05 08:08:35 0000</bug_when>
            <thetext>Let me add my voice to really wanting this in portage. Many of the various mono packages rely on the gtk-sharp package having certain USE flags enabled to build the different optional pieces (like gnome-sharp and gtkhtml-sharp in particular). It would be wonderful not to have to add silly checks for files all over the place instead of having USE based DEPENDs.

On IRC i&apos;ve heard conflicting &quot;this&apos;ll be in .51&quot; to &quot;i&apos;ve seen no code for this yet&quot;... so what&apos;s the status?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>foser@gentoo.org</who>
            <bug_when>2004-08-09 10:56:55 0000</bug_when>
            <thetext>*** Bug 53467 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>ferringb@gmail.com</who>
            <bug_when>2004-08-10 23:43:13 0000</bug_when>
            <thetext>*** Bug 20326 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jstubbs@gentoo.org</who>
            <bug_when>2004-08-11 04:22:50 0000</bug_when>
            <thetext>I guess I didn&apos;t do that properly.. :/</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>andrew@operationaldynamics.com</who>
            <bug_when>2004-11-10 16:29:08 0000</bug_when>
            <thetext>Just had an email &apos;round gentoo-dev about this: my use case is that I need to test if gcc was compiled such that the Java language module is present, ie USE=gcj resulting in `gcj` being available on the system.

So, +1 or whatever :)

AfC
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jstubbs@gentoo.org</who>
            <bug_when>2004-11-11 03:56:53 0000</bug_when>
            <thetext>/me hates duplicate mails.

Not a chance this will be in the 2.0.51 series, but should be in what comes after.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>tom.gl@free.fr</who>
            <bug_when>2004-12-06 19:14:56 0000</bug_when>
            <thetext>(From update of attachment 24275)
Marking this patch obsolete since a similar hack has been included in
eutils.eclass.
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2004-12-14 21:01:15 0000</bug_when>
            <thetext>*** Bug 74328 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>john@milsson.nu</who>
            <bug_when>2005-01-31 07:45:56 0000</bug_when>
            <thetext>So what is the recommended way of handling this situation? 

---snip---
# [FIXME] wxpython must be installed with USE=&quot;unicode&quot;
# [FIXME] tunepimp must be installed with USE=&quot;python&quot;
RDEPEND=&quot;
        &gt;=dev-python/wxpython-2.5.1.5
        dev-python/python-musicbrainz
        &gt;=media-libs/tunepimp-0.4.0_pre1
&quot;
---snip---</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2005-01-31 07:49:22 0000</bug_when>
            <thetext>the current work around is to use the function &apos;built_with_use&apos; in the eutils eclass</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>hanno@gentoo.org</who>
            <bug_when>2005-02-13 11:21:48 0000</bug_when>
            <thetext>*** Bug 81461 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>swegener@gentoo.org</who>
            <bug_when>2005-02-28 07:08:38 0000</bug_when>
            <thetext>*** Bug 83554 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jakub@gentoo.org</who>
            <bug_when>2005-09-20 10:09:20 0000</bug_when>
            <thetext>*** Bug 106685 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jstubbs@gentoo.org</who>
            <bug_when>2005-10-07 09:20:04 0000</bug_when>
            <thetext>*** Bug 51584 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>azarah@gentoo.org</who>
            <bug_when>2005-11-01 00:58:45 0000</bug_when>
            <thetext>*** Bug 111031 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jakub@gentoo.org</who>
            <bug_when>2005-11-25 17:16:24 0000</bug_when>
            <thetext>*** Bug 113599 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>andrew.frink@gmail.com</who>
            <bug_when>2006-02-14 07:03:37 0000</bug_when>
            <thetext>just wanted to let add a +1, avahi with howl-compat use flag and gnome-vfs don&apos;t play well, because avahi blocks howl and gnome-vfs is hard coded to howl, not some virtual that only gets set to avahi when you emerge it with that flag. anyways i&apos;m sure i&apos;m way of base here, but it is kind of annoying, seeing as the newest banshee requires avahi</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2006-03-30 10:51:00 0000</bug_when>
            <thetext>*** Bug 128123 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jakub@gentoo.org</who>
            <bug_when>2006-05-11 13:11:56 0000</bug_when>
            <thetext>*** Bug 133058 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>antarus@gentoo.org</who>
            <bug_when>2006-06-11 10:53:42 0000</bug_when>
            <thetext>*** Bug 136448 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jakub@gentoo.org</who>
            <bug_when>2006-06-12 13:58:53 0000</bug_when>
            <thetext>*** Bug 136578 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jakub@gentoo.org</who>
            <bug_when>2006-07-30 12:12:48 0000</bug_when>
            <thetext>*** Bug 142209 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>felix.schuster@gmx.at</who>
            <bug_when>2006-09-21 02:45:30 0000</bug_when>
            <thetext>A while ago I installed media-video/VLC. Emerge told me that I also need to install wxGTK and a few other packages. When it came to install VLC, VLC complained about wxGTK, because it was built without the &quot;unicode&quot; USE-Flag. So I had to reemerge wxGTK. This took me a long time - only 1100MHz...
I would be glad about a portage, that could tell me, before I start emerging anything, which USE-Flags are missing.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jakub@gentoo.org</who>
            <bug_when>2006-09-28 08:18:54 0000</bug_when>
            <thetext>*** Bug 149423 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>zmedico@gentoo.org</who>
            <bug_when>2006-09-29 12:59:26 0000</bug_when>
            <thetext>*** Bug 149556 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>genone@gentoo.org</who>
            <bug_when>2006-10-26 15:47:14 0000</bug_when>
            <thetext>*** Bug 152930 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>zmedico@gentoo.org</who>
            <bug_when>2006-10-29 15:51:09 0000</bug_when>
            <thetext>*** Bug 153366 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jakub@gentoo.org</who>
            <bug_when>2006-11-22 10:10:19 0000</bug_when>
            <thetext>*** Bug 155945 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>expose@luftgetrock.net</who>
            <bug_when>2006-12-13 09:10:29 0000</bug_when>
            <thetext>Why is &quot;built_with_use&quot; only a work around and not the solution, as stated by SpanKY/vapier in comment #27 ?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>kanaka@gentoo.org</who>
            <bug_when>2006-12-13 09:15:12 0000</bug_when>
            <thetext>Because built_with_use happens after dependency calculations. It&apos;s only useful for make the install stop with an error. You want is to be able to express the dependency in *DEPENDS so that portage can pick the right packages to install in the first place.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>swegener@gentoo.org</who>
            <bug_when>2007-04-21 15:18:28 0000</bug_when>
            <thetext>*** Bug 175444 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mail@eliasprobst.eu</who>
            <bug_when>2007-07-25 11:04:43 0000</bug_when>
            <thetext>Any news here? Has calculation of USE-flags in dependencies been considered for EAPI-1 proposals?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>zmedico@gentoo.org</who>
            <bug_when>2007-08-23 23:04:44 0000</bug_when>
            <thetext>*** Bug 189966 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jakub@gentoo.org</who>
            <bug_when>2007-08-31 09:55:02 0000</bug_when>
            <thetext>*** Bug 190855 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jakub@gentoo.org</who>
            <bug_when>2007-09-05 11:55:17 0000</bug_when>
            <thetext>*** Bug 191370 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jakub@gentoo.org</who>
            <bug_when>2007-09-21 15:49:26 0000</bug_when>
            <thetext>*** Bug 193335 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jakub@gentoo.org</who>
            <bug_when>2007-10-31 21:53:06 0000</bug_when>
            <thetext>*** Bug 197666 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jakub@gentoo.org</who>
            <bug_when>2007-11-05 07:09:52 0000</bug_when>
            <thetext>*** Bug 198126 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jakub@gentoo.org</who>
            <bug_when>2007-11-17 19:07:50 0000</bug_when>
            <thetext>*** Bug 199460 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>zmedico@gentoo.org</who>
            <bug_when>2008-01-19 04:59:20 0000</bug_when>
            <thetext>*** Bug 206613 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jakub@gentoo.org</who>
            <bug_when>2008-02-04 20:59:53 0000</bug_when>
            <thetext>*** Bug 208872 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>parasietje@gmail.com</who>
            <bug_when>2008-05-25 11:08:39 0000</bug_when>
            <thetext>Happy 6th birthday, bug 2272! (yes, I&apos;m being an unconstructive asshole ;) )</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>caster@gentoo.org</who>
            <bug_when>2008-05-26 07:32:52 0000</bug_when>
            <thetext>(In reply to comment #59)
&gt; Happy 6th birthday, bug 2272! (yes, I&apos;m being an unconstructive asshole ;) ) 

Yup. Luckily we also have constructive non-assholes.
[23:57] +CIA-9 zmedico * gentoo/xml/htdocs/proj/en/portage/index.xml: Note that USE dep support is in svn r10387.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>genone@gentoo.org</who>
            <bug_when>2008-06-10 16:08:13 0000</bug_when>
            <thetext>Fixed in or before 2.2_pre8</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>steffen@schaumburger.info</who>
            <bug_when>2008-06-11 05:19:02 0000</bug_when>
            <thetext>Brilliant, thanks :)
Somewhat off-topic - does anyone happen to know if this works in paludis, too?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>zmedico@gentoo.org</who>
            <bug_when>2008-07-28 23:07:39 0000</bug_when>
            <thetext>Here are some examples showing everything that&apos;s supported when using &gt;=sys-apps/portage-2.2_pre4 with EAPI=&quot;2_pre0&quot; set in the ebuild (bug #233213 tracks EAPI 2_pre0). These come from &quot;Ebuild&quot; chapter of the html docs that are installed with portage when USE=&quot;doc&quot; is enabled.

Unconditional USE Dependencies

Table 6.2. Syntax Examples
Example	        Meaning
foo[bar]	foo must have bar enabled
foo[bar,baz]	foo must have both bar and baz enabled
foo[-bar,baz]	foo must have bar disabled and baz enabled

Conditional USE Dependencies

Table 6.3. Syntax Examples
Compact Form	Equivalent Expanded Form
foo[bar?]	bar? ( foo[bar] ) !bar? ( foo )
foo[-bar?]	bar? ( foo ) !bar? ( foo[-bar] )
foo[bar=]	bar? ( foo[bar] ) !bar? ( foo[-bar] )
foo[bar!=]	bar? ( foo[-bar] ) !bar? ( foo[bar] )</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>genone@gentoo.org</who>
            <bug_when>2008-07-29 00:51:12 0000</bug_when>
            <thetext>(In reply to comment #63)
&gt; foo[bar!=]      bar? ( foo[-bar] ) !bar? ( foo[bar] )

Could we change that to foo[-bar=] eventually? I rather dislike the current syntax  as
- it&apos;s inconsistent with the ? operator, negation should use the same syntax for all variants
- wrt use flags, ! is usually implemented as a prefix operator
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>zmedico@gentoo.org</who>
            <bug_when>2008-07-29 03:00:18 0000</bug_when>
            <thetext>(In reply to comment #64)
&gt; (In reply to comment #63)
&gt; &gt; foo[bar!=]      bar? ( foo[-bar] ) !bar? ( foo[bar] )
&gt; 
&gt; Could we change that to foo[-bar=] eventually? I rather dislike the current
&gt; syntax  as
&gt; - it&apos;s inconsistent with the ? operator, negation should use the same syntax
&gt; for all variants

Well, I&apos;d describe != as an &quot;inversion&quot; rather than a &quot;negation&quot;. They&apos;re two distinctly different operations.

&gt; - wrt use flags, ! is usually implemented as a prefix operator

It still is a prefix operator if you view it as prefixing the = symbol. Also, practically every language I can think of has a != operator.
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>genone@gentoo.org</who>
            <bug_when>2008-07-29 21:13:00 0000</bug_when>
            <thetext>(In reply to comment #65)
&gt; Well, I&apos;d describe != as an &quot;inversion&quot; rather than a &quot;negation&quot;. They&apos;re two
&gt; distinctly different operations.
...
&gt; It still is a prefix operator if you view it as prefixing the = symbol. Also,
&gt; practically every language I can think of has a != operator.

Guess the problem is that I see != here as two distinct operators. IMO reading the != as &quot;not equal&quot; like in other languages doesn&apos;t make much sense here as we only have one operand (the current state of &quot;bar&quot;). I read the = more as &quot;assign to state of operand&quot;, and != would be &quot;assign to inversed state&quot;, which is however the same as &quot;assign to state&quot; if the operand is negated. Same logic applies to the ? operator (which I read as &quot;assign if operand&quot;). So either that should be changed to !? (which looks quite stupid) as well if you see ! as a prefix to =, or the syntax should be changed as suggested in comment #64. The current situation is just inconsistent and therefore silly.
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>zmedico@gentoo.org</who>
            <bug_when>2008-07-30 01:27:10 0000</bug_when>
            <thetext>(In reply to comment #66)
&gt; So either that
&gt; should be changed to !? (which looks quite stupid) as well if you see ! as a
&gt; prefix to =, or the syntax should be changed as suggested in comment #64. The
&gt; current situation is just inconsistent and therefore silly.

Seems reasonable. Maybe we should also swap the - character with a ! character in all the conditionals, so it&apos;s consistent with the pre-existing conditional syntax? Then we&apos;d have something like this:

Compact Form    Equivalent Expanded Form
foo[bar?]       bar? ( foo[bar] ) !bar? ( foo )
foo[!bar?]      bar? ( foo ) !bar? ( foo[-bar] )
foo[bar=]       bar? ( foo[bar] ) !bar? ( foo[-bar] )
foo[!bar=]      bar? ( foo[-bar] ) !bar? ( foo[bar] )

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>genone@gentoo.org</who>
            <bug_when>2008-07-30 02:27:49 0000</bug_when>
            <thetext>(In reply to comment #67)
&gt; Seems reasonable. Maybe we should also swap the - character with a ! character
&gt; in all the conditionals, so it&apos;s consistent with the pre-existing conditional
&gt; syntax?

That works for me too.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>zmedico@gentoo.org</who>
            <bug_when>2008-07-30 10:23:07 0000</bug_when>
            <thetext>I&apos;ve released sys-apps/portage-2.2_rc5 and it supports a new EAPI=&quot;2_pre1&quot; which has the conditional syntax shown in comment #67. The previous experimental EAPI=&quot;2_pre0&quot; value is no longer supported.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>zmedico@gentoo.org</who>
            <bug_when>2008-08-29 22:19:33 0000</bug_when>
            <thetext>*** Bug 236147 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>serkan@gentoo.org</who>
            <bug_when>2009-01-27 14:32:26 0000</bug_when>
            <thetext>*** Bug 256519 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24275</attachid>
            <date>2004-01-23 02:32 0000</date>
            <desc>have_flags.patch</desc>
            <filename>have_flags.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">LS0tIGJpbi9wb3J0YWdlcS5vcmlnCTIwMDQtMDEtMjMgMTA6MDk6NTguMDAwMDAwMDAwICswMTAw
CisrKyBiaW4vcG9ydGFnZXEJMjAwNC0wMS0yMyAxMTowNzo0OS41ODczMzE5NTUgKzAxMDAKQEAg
LTYxLDYgKzYxLDI2IEBACiAJZXhjZXB0IEtleUVycm9yOgogCQlzeXMuZXhpdCgxKQogCitkZWYg
aGF2ZV9mbGFncyhhcmd2KToKKwkiIiI8cm9vdD4gPGNhdGVnb3J5L3BhY2thZ2U+IFs8dXNlX2Zs
YWc+XSsKKwlSZXR1cm5zIDAgaWYgYWxsIHRoZSBtYXRjaGluZyBwYWNrYWdlcyBoYXZlIHRoZSBy
ZXF1ZXN0ZWQgVVNFIGZsYWdzLCAwIG90aGVyd2lzZS4KKwkiIiIKKwlpZiAobGVuKGFyZ3YpIDwg
Myk6CisJCXByaW50ICJFUlJPUjogaW5zdWZmaWNpZW50IHBhcmFtZXRlcnMhIgorCQlzeXMuZXhp
dCgyKQorCW15ZmxhZ2xpc3Q9YXJndlsyOl0KKwlteXZkYmFwaT1wb3J0YWdlLmRiW2FyZ3ZbMF1d
WyJ2YXJ0cmVlIl0uZGJhcGkKKwl0cnk6CisJCW15cGtnbGlzdD1teXZkYmFwaS5tYXRjaChhcmd2
WzFdKQorCQlmb3IgbXlwa2cgaW4gbXlwa2dsaXN0OgorCQkJbXlwa2dmbGFncz1zdHJpbmcuc3Bs
aXQobXl2ZGJhcGkuYXV4X2dldChteXBrZyxbJ1VTRSddKVswXSkKKwkJCWZvciBteWZsYWcgaW4g
bXlmbGFnbGlzdDoKKwkJCQlpZiBub3QgKG15ZmxhZyBpbiBteXBrZ2ZsYWdzKToKKwkJCQkJc3lz
LmV4aXQoMSkKKwkJc3lzLmV4aXQoMCkKKwlleGNlcHQgS2V5RXJyb3I6CisJCXN5cy5leGl0KDEp
CisKIAogZGVmIG1hc3NfYmVzdF92ZXJzaW9uKGFyZ3YpOgogCSIiIjxyb290PiBbPGNhdGVnb3J5
L3BhY2thZ2U+XSsKLS0tIGJpbi9lYnVpbGQuc2gub3JpZwkyMDA0LTAxLTIzIDEwOjI4OjI4LjAw
MDAwMDAwMCArMDEwMAorKysgYmluL2VidWlsZC5zaAkyMDA0LTAxLTIzIDEwOjMxOjE1LjU5MDg1
NDExMiArMDEwMApAQCAtMjAyLDYgKzIwMiwxNiBAQAogCWZpCiB9CiAKK2hhdmVfZmxhZ3MoKSB7
CisJIyByZXR1cm4gc2hlbGwtdHJ1ZS9zaGVsbC1mYWxzZSBpZiBhbGwgbWF0Y2hpbmcgcGtncyBo
YXZlIHRoZSByZXF1ZXN0ZWQgZmxhZ3MuCisJIyBUYWtlcyBhIHNpbmdsZSBkZXBlbmQtdHlwZSBh
dG9tcyBhbmQgYSBVU0UgZmxhZyBsaXN0LgorCWlmIC91c3IvbGliL3BvcnRhZ2UvYmluL3BvcnRh
Z2VxICdoYXZlX2ZsYWdzJyAiJHtST09UfSIgIiRAIjsgdGhlbgorCQlyZXR1cm4gMAorCWVsc2UK
KwkJcmV0dXJuIDEKKwlmaQorfQorCiBiZXN0X3ZlcnNpb24oKSB7CiAJIyByZXR1cm5zIHRoZSBi
ZXN0L21vc3QtY3VycmVudCBtYXRjaC4KIAkjIFRha2VzIHNpbmdsZSBkZXBlbmQtdHlwZSBhdG9t
cy4K
</data>        

          </attachment>
    </bug>

</bugzilla>