Here is some information about installed packages: # emerge -pv dev-lang/swig =dev-ml/lablgtk-2.6.0 =dev-ml/lablgtk-1.2.7 These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] dev-lang/swig-1.3.29 USE="perl -doc -guile -java -lua -mono -ocaml -php -pike -python -ruby -tcl -tk" 3,923 kB [ebuild R ] dev-ml/lablgtk-2.6.0 USE="svg -debug -doc -glade -gnome -gnomecanvas -opengl" 642 kB [ebuild R ] dev-ml/lablgtk-1.2.7 USE="-gnome -opengl" 457 kB They are all currently installed, I need both versions of lablgtk btw. ocaml-rebuild.sh however does not rebuild lablgtk-1.2.7 # sh /usr/portage/dev-lang/ocaml/files/ocaml-rebuild.sh Cleaning "dev-lang/swig-1.3.29" "dev-ml/lablgtk-2.6.0" "dev-ml/lablgtk-1.2.7" Building ">=dev-lang/swig-1.3.29" ">=dev-ml/lablgtk-2.6.0" ">=dev-ml/lablgtk-1.2.7" These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] dev-lang/swig-1.3.29 [ebuild R ] dev-ml/lablgtk-2.6.0
> Building ">=dev-lang/swig-1.3.29" ">=dev-ml/lablgtk-2.6.0" > ">=dev-ml/lablgtk-1.2.7" The produced command is obviously wrong since >=dev-ml/lablgtk-2.6.0 and >=dev-ml/lablgtk-1.2.7 will resolve to the same ebuild version (2.6.0).
Problem is, I use >= because some packages versions might be outdated and would cause emerge to fail, but it's obviously wrong for slotted packages. It would not even work if updating one package at a time, so what do you suggest ?
As a quick fix, I added a test for slots. If the package is slotted (SLOT != 0), we require the exact same version, otherwise any equal or greater version. It can break this way but it won't forget anything.
(In reply to comment #3) > As a quick fix, I added a test for slots. If the package is slotted (SLOT != > 0), we require the exact same version, otherwise any equal or greater version. > It can break this way but it won't forget anything. I suppose we can consider this one fixed then :>