Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 86 - the ! dependency
Summary: the ! dependency
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Unclassified (show other bugs)
Hardware: x86 All
: High normal (vote)
Assignee: Geert Bevin
Depends on:
Blocks: 278 282
  Show dependency tree
Reported: 2002-01-08 14:14 UTC by Donny Davies (RETIRED)
Modified: 2011-10-30 22:20 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Note You need to log in before you can comment on or make changes to this bug.
Description Donny Davies (RETIRED) gentoo-dev 2002-01-08 14:14:27 UTC
I think the ! dependency is currently a placeholder?  Presently it doesnt 
enforce any sort of policy.

Some examples are: virtual/mta and virtual/lpr
Comment 1 Daniel Robbins (RETIRED) gentoo-dev 2002-01-18 23:14:59 UTC
Geert, wanna give this one a shot as well?
Comment 2 Geert Bevin 2002-01-19 03:07:13 UTC
Ok, what is the definition of the !
and what is it supposed to enforce?
Negative dependency? I don't quite understand that in the context. Care to
explain briefly?
Comment 3 Donny Davies (RETIRED) gentoo-dev 2002-01-28 17:57:09 UTC
The ! dependency _could_ be very useful.  (the "not" dependency)

cups and lprng (this is just 1 example, there are others like virtual/mta) 
share several common files.  like /usr/bin/lpr.  there are many more.

so its either:
1) we butcher packages sharing common files.  for example mandrake installs 
some cups binaries as like /usr/bin/cups-lpr.  ridiculous imo.
2) we come up with some big old nasty conflicts system, where you have to list 
in the ebuild, every single other ebuild that conflicts with it.  this is a 
terrible idea imo.  what if 40 packages share the same files?
3) we implement a ! dependency.

Since the ! dependency is already IN portage, it was obviously thought to be a 
good idea.  But presently it doesnt actually DO anything.  Its just a 
placeholder. I suspect Daniel couldnt decide how to actually implement it.

The ! dependency is the way to go imo.  It makes things LIGHT YEARS easier for 
ebuild authors.  All you have to do is specifiy a ! dependency, and expect 
portage to take care of the rest.  

I suggest that if a ! dependency is satisfied, the executing ebuild should be 
aborted.  If somebody really wants to install two things that conflict, let 
them do it, someway, perhaps though ebuild (1).

If we force ebuild authors to make a list of every single package with which a 
given package conflicts, well, then thats just silly :)  Something more elegant 
is needed.  The ! depdency is fairly elegant, because its SIMPLE.

Whoever decides what to do with this, just keep it simple.  Otherwise things 
could get really ugly ;)
Comment 4 Geert Bevin 2002-02-04 08:44:00 UTC
added to cvs