[gentoo-portage-dev] [PATCH v2 2/2] Colorize packages in world_sets (bug 583164)

2016-05-25 Thread Adam Mills
Packages belonging to a set listed in world_sets will now be colorized
as a world package.

X-Gentoo-bug: 583164
X-Gentoo-bug-url: https://bugs.gentoo.org/show_bug.cgi?id=583164
---
 pym/_emerge/resolver/output.py |  2 +-
 pym/_emerge/resolver/output_helpers.py | 11 +++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/pym/_emerge/resolver/output.py b/pym/_emerge/resolver/output.py
index 400617d..ac979f6 100644
--- a/pym/_emerge/resolver/output.py
+++ b/pym/_emerge/resolver/output.py
@@ -707,7 +707,7 @@ class Display(object):
"""
root_config = self.conf.roots[pkg.root]
system_set = root_config.sets["system"]
-   world_set  = root_config.sets["selected"]
+   world_set  = self.conf.selected_sets[pkg.root]
system = False
world = False
try:
diff --git a/pym/_emerge/resolver/output_helpers.py 
b/pym/_emerge/resolver/output_helpers.py
index 70f7bc0..b83717e 100644
--- a/pym/_emerge/resolver/output_helpers.py
+++ b/pym/_emerge/resolver/output_helpers.py
@@ -17,6 +17,7 @@ import sys
 from portage import os
 from portage import _encodings, _unicode_encode
 from portage._sets.base import InternalPackageSet
+from portage.exception import PackageSetNotFound
 from portage.localization import localized_size
 from portage.output import (blue, bold, colorize, create_color_func,
green, red, teal, turquoise, yellow)
@@ -213,6 +214,16 @@ class _DisplayConfig(object):
self.running_root = frozen_config._running_root
self.roots = frozen_config.roots
 
+   # Create a set of selected packages for each root
+   self.selected_sets = {}
+   for root_name, root in self.roots.items():
+   try:
+   self.selected_sets[root_name] = 
InternalPackageSet(
+   
initial_atoms=root.setconfig.getSetAtoms("selected"))
+   except PackageSetNotFound:
+   # A nested set could not be resolved, so ignore 
nested sets.
+   self.selected_sets[root_name] = 
root.sets["selected"]
+
self.blocker_parents = dynamic_config._blocker_parents
self.reinstall_nodes = dynamic_config._reinstall_nodes
self.digraph = dynamic_config.digraph
-- 
2.7.3




[gentoo-portage-dev] [PATCH v2 1/2] Revert "Colorize packages in user sets (bug 577720)"

2016-05-25 Thread Adam Mills
This reverts commit 739845a6eab95fbc44eab1b7b938c860563631d7.

The feature implemented in this commit for bug 577720 was determined to
be an overcomplicated method of colorizing user sets. Instead, this
feature will be implemented as in bug 583164. The configuration options
implemented in this reverted commit will be removed. Per bug 583164,
packages that belong to a set listed in world_sets will be colorized as
world packages. This eliminates the extra configuration and associated
complications.

See bug 583164 for more details.
---
 cnf/sets/portage.conf  |  1 -
 doc/config/sets.docbook|  4 +---
 man/color.map.5| 11 --
 man/portage.5  |  1 -
 pym/_emerge/resolver/output.py | 25 +++---
 pym/_emerge/resolver/output_helpers.py | 17 +++
 pym/portage/_sets/__init__.py  |  8 ---
 pym/portage/_sets/base.py  |  1 -
 pym/portage/output.py  | 39 --
 9 files changed, 30 insertions(+), 77 deletions(-)

diff --git a/cnf/sets/portage.conf b/cnf/sets/portage.conf
index e990620..ac282d9 100644
--- a/cnf/sets/portage.conf
+++ b/cnf/sets/portage.conf
@@ -49,7 +49,6 @@ class = portage.sets.files.StaticFileSet
 multiset = true
 directory =  %(PORTAGE_CONFIGROOT)setc/portage/sets
 world-candidate = True
-user-set = True
 
 # Set to rebuild all packages that need a preserved lib that only remains due
 # to FEATURES=preserve-libs
diff --git a/doc/config/sets.docbook b/doc/config/sets.docbook
index 02135d6..749b775 100644
--- a/doc/config/sets.docbook
+++ b/doc/config/sets.docbook
@@ -57,8 +57,6 @@
is missing)
world-candidate, 
which determines if
given package should be added to the 
world set
-   user-set, which 
determines if
-   given package should be colorized as a user 
set


Some handler classes might require additional options 
for their configuration,
@@ -95,7 +93,7 @@
but to indicate that the section should generate 
multiple sets it's
also necessary to set the multiset 
option to 
true. The 
world-candidate
-   and user-set options are also 
supported like with
+   option also supported like with 
single sets (they'll apply to all sets generated by the 
section).


diff --git a/man/color.map.5 b/man/color.map.5
index 39f23f7..5543628 100644
--- a/man/color.map.5
+++ b/man/color.map.5
@@ -46,9 +46,6 @@ Defines color used for satisfied blockers.
 \fBPKG_MERGE\fR = \fI"darkgreen"\fR
 Defines color used for packages planned to be merged.
 .TP
-\fBPKG_MERGE_USER_SET\fR = \fI"darkgreen"\fR
-Defines color used for packages planned to be merged from a user defined set.
-.TP
 \fBPKG_MERGE_SYSTEM\fR = \fI"darkgreen"\fR
 Defines color used for system packages planned to be merged.
 .TP
@@ -58,10 +55,6 @@ Defines color used for world packages planned to be merged.
 \fBPKG_BINARY_MERGE\fR = \fI"purple"\fR
 Defines color used for packages planned to be merged using a binary package.
 .TP
-\fBPKG_BINARY_MERGE_USER_SET\fR = \fI"purple"\fR
-Defines color used for packages planned to be merged using a binary package
-from a user defined set.
-.TP
 \fBPKG_BINARY_MERGE_SYSTEM\fR = \fI"purple"\fR
 Defines color used for system packages planned to be merged using a binary
 package.
@@ -73,10 +66,6 @@ package.
 \fBPKG_NOMERGE\fR = \fI"darkblue"\fR
 Defines color used for packages not planned to be merged.
 .TP
-\fBPKG_NOMERGE_USER_SET\fR = \fI"darkblue"\fR
-Defines color used for packages not planned to be merged from a user defined
-set.
-.TP
 \fBPKG_NOMERGE_SYSTEM\fR = \fI"darkblue"\fR
 Defines color used for system packages not planned to be merged.
 .TP
diff --git a/man/portage.5 b/man/portage.5
index 3cc1f07..7c2a8f7 100644
--- a/man/portage.5
+++ b/man/portage.5
@@ -1114,7 +1114,6 @@ class = portage.sets.files.StaticFileSet
 multiset = true
 directory =  %(PORTAGE_CONFIGROOT)setc/portage/sets
 world-candidate = True
-user-set = True
 
 [module-rebuild]
 class = portage.sets.dbapi.OwnerSet
diff --git a/pym/_emerge/resolver/output.py b/pym/_emerge/resolver/output.py
index 7c70a3e..400617d 100644
--- a/pym/_emerge/resolver/output.py
+++ b/pym/_emerge/resolver/output.py
@@ -271,8 +271,6 @@ class Display(object):
return 
colorize("PKG_BINARY_MERGE_SYSTEM", pkg_str)
elif pkg_info.world:
return 
colorize("PKG_BINARY_MERGE_WORLD", pkg_str)
-   elif pkg_info.user_set:
-   return 

[gentoo-portage-dev] [PATCH 2/2] Colorize packages in world_sets (bug 583164)

2016-05-24 Thread Adam Mills
Packages belonging to a set in world_sets will now be colorized using
as a world package.

X-Gentoo-bug: 583164
X-Gentoo-bug-url: https://bugs.gentoo.org/show_bug.cgi?id=583164
---
 pym/_emerge/resolver/output.py |  2 +-
 pym/_emerge/resolver/output_helpers.py | 11 +++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/pym/_emerge/resolver/output.py b/pym/_emerge/resolver/output.py
index 400617d..ac979f6 100644
--- a/pym/_emerge/resolver/output.py
+++ b/pym/_emerge/resolver/output.py
@@ -707,7 +707,7 @@ class Display(object):
"""
root_config = self.conf.roots[pkg.root]
system_set = root_config.sets["system"]
-   world_set  = root_config.sets["selected"]
+   world_set  = self.conf.selected_sets[pkg.root]
system = False
world = False
try:
diff --git a/pym/_emerge/resolver/output_helpers.py 
b/pym/_emerge/resolver/output_helpers.py
index 70f7bc0..c18832a 100644
--- a/pym/_emerge/resolver/output_helpers.py
+++ b/pym/_emerge/resolver/output_helpers.py
@@ -17,6 +17,7 @@ import sys
 from portage import os
 from portage import _encodings, _unicode_encode
 from portage._sets.base import InternalPackageSet
+from portage.exception import PackageSetNotFound
 from portage.localization import localized_size
 from portage.output import (blue, bold, colorize, create_color_func,
green, red, teal, turquoise, yellow)
@@ -213,6 +214,16 @@ class _DisplayConfig(object):
self.running_root = frozen_config._running_root
self.roots = frozen_config.roots
 
+   # Create a set of selected packages for each root
+   self.selected_sets = {}
+   for root_name, root in self.roots.items():
+   try:
+   self.selected_sets[root_name] = 
InternalPackageSet( \
+   
initial_atoms=root.setconfig.getSetAtoms("selected"))
+   except PackageSetNotFound:
+   # A nested set could not be resolved, so ignore 
nested sets.
+   self.selected_sets[root_name] = 
root.sets["selected"]
+
self.blocker_parents = dynamic_config._blocker_parents
self.reinstall_nodes = dynamic_config._reinstall_nodes
self.digraph = dynamic_config.digraph
-- 
2.7.3




[gentoo-portage-dev] [PATCH 1/2] Revert "Colorize packages in user sets (bug 577720)"

2016-05-24 Thread Adam Mills
This reverts commit 739845a6eab95fbc44eab1b7b938c860563631d7.
---
 cnf/sets/portage.conf  |  1 -
 doc/config/sets.docbook|  4 +---
 man/color.map.5| 11 --
 man/portage.5  |  1 -
 pym/_emerge/resolver/output.py | 25 +++---
 pym/_emerge/resolver/output_helpers.py | 17 +++
 pym/portage/_sets/__init__.py  |  8 ---
 pym/portage/_sets/base.py  |  1 -
 pym/portage/output.py  | 39 --
 9 files changed, 30 insertions(+), 77 deletions(-)

diff --git a/cnf/sets/portage.conf b/cnf/sets/portage.conf
index e990620..ac282d9 100644
--- a/cnf/sets/portage.conf
+++ b/cnf/sets/portage.conf
@@ -49,7 +49,6 @@ class = portage.sets.files.StaticFileSet
 multiset = true
 directory =  %(PORTAGE_CONFIGROOT)setc/portage/sets
 world-candidate = True
-user-set = True
 
 # Set to rebuild all packages that need a preserved lib that only remains due
 # to FEATURES=preserve-libs
diff --git a/doc/config/sets.docbook b/doc/config/sets.docbook
index 02135d6..749b775 100644
--- a/doc/config/sets.docbook
+++ b/doc/config/sets.docbook
@@ -57,8 +57,6 @@
is missing)
world-candidate, 
which determines if
given package should be added to the 
world set
-   user-set, which 
determines if
-   given package should be colorized as a user 
set


Some handler classes might require additional options 
for their configuration,
@@ -95,7 +93,7 @@
but to indicate that the section should generate 
multiple sets it's
also necessary to set the multiset 
option to 
true. The 
world-candidate
-   and user-set options are also 
supported like with
+   option also supported like with 
single sets (they'll apply to all sets generated by the 
section).


diff --git a/man/color.map.5 b/man/color.map.5
index 39f23f7..5543628 100644
--- a/man/color.map.5
+++ b/man/color.map.5
@@ -46,9 +46,6 @@ Defines color used for satisfied blockers.
 \fBPKG_MERGE\fR = \fI"darkgreen"\fR
 Defines color used for packages planned to be merged.
 .TP
-\fBPKG_MERGE_USER_SET\fR = \fI"darkgreen"\fR
-Defines color used for packages planned to be merged from a user defined set.
-.TP
 \fBPKG_MERGE_SYSTEM\fR = \fI"darkgreen"\fR
 Defines color used for system packages planned to be merged.
 .TP
@@ -58,10 +55,6 @@ Defines color used for world packages planned to be merged.
 \fBPKG_BINARY_MERGE\fR = \fI"purple"\fR
 Defines color used for packages planned to be merged using a binary package.
 .TP
-\fBPKG_BINARY_MERGE_USER_SET\fR = \fI"purple"\fR
-Defines color used for packages planned to be merged using a binary package
-from a user defined set.
-.TP
 \fBPKG_BINARY_MERGE_SYSTEM\fR = \fI"purple"\fR
 Defines color used for system packages planned to be merged using a binary
 package.
@@ -73,10 +66,6 @@ package.
 \fBPKG_NOMERGE\fR = \fI"darkblue"\fR
 Defines color used for packages not planned to be merged.
 .TP
-\fBPKG_NOMERGE_USER_SET\fR = \fI"darkblue"\fR
-Defines color used for packages not planned to be merged from a user defined
-set.
-.TP
 \fBPKG_NOMERGE_SYSTEM\fR = \fI"darkblue"\fR
 Defines color used for system packages not planned to be merged.
 .TP
diff --git a/man/portage.5 b/man/portage.5
index 3cc1f07..7c2a8f7 100644
--- a/man/portage.5
+++ b/man/portage.5
@@ -1114,7 +1114,6 @@ class = portage.sets.files.StaticFileSet
 multiset = true
 directory =  %(PORTAGE_CONFIGROOT)setc/portage/sets
 world-candidate = True
-user-set = True
 
 [module-rebuild]
 class = portage.sets.dbapi.OwnerSet
diff --git a/pym/_emerge/resolver/output.py b/pym/_emerge/resolver/output.py
index 7c70a3e..400617d 100644
--- a/pym/_emerge/resolver/output.py
+++ b/pym/_emerge/resolver/output.py
@@ -271,8 +271,6 @@ class Display(object):
return 
colorize("PKG_BINARY_MERGE_SYSTEM", pkg_str)
elif pkg_info.world:
return 
colorize("PKG_BINARY_MERGE_WORLD", pkg_str)
-   elif pkg_info.user_set:
-   return 
colorize("PKG_BINARY_MERGE_USER_SET", pkg_str)
else:
return colorize("PKG_BINARY_MERGE", 
pkg_str)
else:
@@ -280,8 +278,6 @@ class Display(object):
return colorize("PKG_MERGE_SYSTEM", 
pkg_str)
elif pkg_info.world:
return colorize("PKG_MERGE_WORLD", 
pkg_str)
-   elif 

[gentoo-portage-dev] [PATCH v4] Colorize packages in user sets (bug 577720)

2016-04-19 Thread Adam Mills
Three new settings were added to /etc/portage/color.map:
PKG_MERGE_USER_SET, PKG_BINARY_MERGE_USER_SET, and
PKG_NOMERGE_USER_SET. These colors are applied when the package is
selected from a set in /etc/portage/sets/

X-Gentoo-bug: 577720
X-Gentoo-bug-url: https://bugs.gentoo.org/show_bug.cgi?id=577720
---

[PATCH v4] Created one InternalPackageSet for each root
[PATCH v3] Updates based on feedback from IRC meeting
[PATCH v2] Simplification of check_sets ref Alexander Berntsen's feedback_

 cnf/sets/portage.conf  |  1 +
 doc/config/sets.docbook|  4 +++-
 man/color.map.5| 11 ++
 man/portage.5  |  1 +
 pym/_emerge/resolver/output.py | 25 +++---
 pym/_emerge/resolver/output_helpers.py | 17 ---
 pym/portage/_sets/__init__.py  |  8 +++
 pym/portage/_sets/base.py  |  1 +
 pym/portage/output.py  | 39 ++
 9 files changed, 77 insertions(+), 30 deletions(-)

diff --git a/cnf/sets/portage.conf b/cnf/sets/portage.conf
index ac282d9..e990620 100644
--- a/cnf/sets/portage.conf
+++ b/cnf/sets/portage.conf
@@ -49,6 +49,7 @@ class = portage.sets.files.StaticFileSet
 multiset = true
 directory =  %(PORTAGE_CONFIGROOT)setc/portage/sets
 world-candidate = True
+user-set = True
 
 # Set to rebuild all packages that need a preserved lib that only remains due
 # to FEATURES=preserve-libs
diff --git a/doc/config/sets.docbook b/doc/config/sets.docbook
index 749b775..02135d6 100644
--- a/doc/config/sets.docbook
+++ b/doc/config/sets.docbook
@@ -57,6 +57,8 @@
is missing)
world-candidate, 
which determines if
given package should be added to the 
world set
+   user-set, which 
determines if
+   given package should be colorized as a user 
set


Some handler classes might require additional options 
for their configuration,
@@ -93,7 +95,7 @@
but to indicate that the section should generate 
multiple sets it's
also necessary to set the multiset 
option to 
true. The 
world-candidate
-   option also supported like with 
+   and user-set options are also 
supported like with
single sets (they'll apply to all sets generated by the 
section).


diff --git a/man/color.map.5 b/man/color.map.5
index 5543628..39f23f7 100644
--- a/man/color.map.5
+++ b/man/color.map.5
@@ -46,6 +46,9 @@ Defines color used for satisfied blockers.
 \fBPKG_MERGE\fR = \fI"darkgreen"\fR
 Defines color used for packages planned to be merged.
 .TP
+\fBPKG_MERGE_USER_SET\fR = \fI"darkgreen"\fR
+Defines color used for packages planned to be merged from a user defined set.
+.TP
 \fBPKG_MERGE_SYSTEM\fR = \fI"darkgreen"\fR
 Defines color used for system packages planned to be merged.
 .TP
@@ -55,6 +58,10 @@ Defines color used for world packages planned to be merged.
 \fBPKG_BINARY_MERGE\fR = \fI"purple"\fR
 Defines color used for packages planned to be merged using a binary package.
 .TP
+\fBPKG_BINARY_MERGE_USER_SET\fR = \fI"purple"\fR
+Defines color used for packages planned to be merged using a binary package
+from a user defined set.
+.TP
 \fBPKG_BINARY_MERGE_SYSTEM\fR = \fI"purple"\fR
 Defines color used for system packages planned to be merged using a binary
 package.
@@ -66,6 +73,10 @@ package.
 \fBPKG_NOMERGE\fR = \fI"darkblue"\fR
 Defines color used for packages not planned to be merged.
 .TP
+\fBPKG_NOMERGE_USER_SET\fR = \fI"darkblue"\fR
+Defines color used for packages not planned to be merged from a user defined
+set.
+.TP
 \fBPKG_NOMERGE_SYSTEM\fR = \fI"darkblue"\fR
 Defines color used for system packages not planned to be merged.
 .TP
diff --git a/man/portage.5 b/man/portage.5
index 7c2a8f7..3cc1f07 100644
--- a/man/portage.5
+++ b/man/portage.5
@@ -1114,6 +1114,7 @@ class = portage.sets.files.StaticFileSet
 multiset = true
 directory =  %(PORTAGE_CONFIGROOT)setc/portage/sets
 world-candidate = True
+user-set = True
 
 [module-rebuild]
 class = portage.sets.dbapi.OwnerSet
diff --git a/pym/_emerge/resolver/output.py b/pym/_emerge/resolver/output.py
index 400617d..7c70a3e 100644
--- a/pym/_emerge/resolver/output.py
+++ b/pym/_emerge/resolver/output.py
@@ -271,6 +271,8 @@ class Display(object):
return 
colorize("PKG_BINARY_MERGE_SYSTEM", pkg_str)
elif pkg_info.world:
return 
colorize("PKG_BINARY_MERGE_WORLD", pkg_str)
+   elif pkg_info.user_set:
+   return 
colorize("PKG_BINARY_MERGE_USER_SET", pkg_str)

Re: [gentoo-portage-dev] [PATCH] Colorize packages in user sets (bug 577720)

2016-04-18 Thread Adam Mills
Thanks for all the feedback so far. I probably should have just filed 
the bug

and left it at that, but I'm committed now.

I've done my best to incorporate all of the suggestions here, and 
submitted a
new patch rev 3. I have a few questions about details I'm pretty sure 
still

need improvement:

1) In order to build the InternalPackageSet only once, I used the
  _DisplayConfig target_root, instead of using pkg.root in the 
check_sets
  method. I'm not sure of the pkg.root purpose, but if there can be 
different
  roots, the InternalPackageSet would have to be created for each 
package.
  If that's the case, it could be moved to the check_sets method, and 
created

  for each package.

2) I added the new InternalPackageSet as a new member of the 
_DisplayConfig
  class. Let me know if there's somewhere more appropriate, especially 
after

  the feedback from #1.

3) Is there a better method available for merging PackageSets?

Thanks,
Adam




[gentoo-portage-dev] [PATCH v3] Colorize packages in user sets (bug 577720)

2016-04-18 Thread Adam Mills
Three new settings were added to /etc/portage/color.map:
PKG_MERGE_USER_SET, PKG_BINARY_MERGE_USER_SET, and
PKG_NOMERGE_USER_SET. These colors are applied when the package is
selected from a set in /etc/portage/sets/

X-Gentoo-bug: 577720
X-Gentoo-bug-url: https://bugs.gentoo.org/show_bug.cgi?id=577720
---
[PATCH v3] Updates based on feedback from IRC meeting
[PATCH v2] Simplification of check_sets ref Alexander Berntsen's feedback

 cnf/sets/portage.conf  |  1 +
 doc/config/sets.docbook|  4 +++-
 man/color.map.5| 11 ++
 man/portage.5  |  1 +
 pym/_emerge/resolver/output.py | 25 +++---
 pym/_emerge/resolver/output_helpers.py | 15 ++---
 pym/portage/_sets/__init__.py  |  8 +++
 pym/portage/_sets/base.py  |  1 +
 pym/portage/output.py  | 39 ++
 9 files changed, 75 insertions(+), 30 deletions(-)

diff --git a/cnf/sets/portage.conf b/cnf/sets/portage.conf
index ac282d9..e990620 100644
--- a/cnf/sets/portage.conf
+++ b/cnf/sets/portage.conf
@@ -49,6 +49,7 @@ class = portage.sets.files.StaticFileSet
 multiset = true
 directory =  %(PORTAGE_CONFIGROOT)setc/portage/sets
 world-candidate = True
+user-set = True
 
 # Set to rebuild all packages that need a preserved lib that only remains due
 # to FEATURES=preserve-libs
diff --git a/doc/config/sets.docbook b/doc/config/sets.docbook
index 749b775..02135d6 100644
--- a/doc/config/sets.docbook
+++ b/doc/config/sets.docbook
@@ -57,6 +57,8 @@
is missing)
world-candidate, 
which determines if
given package should be added to the 
world set
+   user-set, which 
determines if
+   given package should be colorized as a user 
set


Some handler classes might require additional options 
for their configuration,
@@ -93,7 +95,7 @@
but to indicate that the section should generate 
multiple sets it's
also necessary to set the multiset 
option to 
true. The 
world-candidate
-   option also supported like with 
+   and user-set options are also 
supported like with
single sets (they'll apply to all sets generated by the 
section).


diff --git a/man/color.map.5 b/man/color.map.5
index 5543628..39f23f7 100644
--- a/man/color.map.5
+++ b/man/color.map.5
@@ -46,6 +46,9 @@ Defines color used for satisfied blockers.
 \fBPKG_MERGE\fR = \fI"darkgreen"\fR
 Defines color used for packages planned to be merged.
 .TP
+\fBPKG_MERGE_USER_SET\fR = \fI"darkgreen"\fR
+Defines color used for packages planned to be merged from a user defined set.
+.TP
 \fBPKG_MERGE_SYSTEM\fR = \fI"darkgreen"\fR
 Defines color used for system packages planned to be merged.
 .TP
@@ -55,6 +58,10 @@ Defines color used for world packages planned to be merged.
 \fBPKG_BINARY_MERGE\fR = \fI"purple"\fR
 Defines color used for packages planned to be merged using a binary package.
 .TP
+\fBPKG_BINARY_MERGE_USER_SET\fR = \fI"purple"\fR
+Defines color used for packages planned to be merged using a binary package
+from a user defined set.
+.TP
 \fBPKG_BINARY_MERGE_SYSTEM\fR = \fI"purple"\fR
 Defines color used for system packages planned to be merged using a binary
 package.
@@ -66,6 +73,10 @@ package.
 \fBPKG_NOMERGE\fR = \fI"darkblue"\fR
 Defines color used for packages not planned to be merged.
 .TP
+\fBPKG_NOMERGE_USER_SET\fR = \fI"darkblue"\fR
+Defines color used for packages not planned to be merged from a user defined
+set.
+.TP
 \fBPKG_NOMERGE_SYSTEM\fR = \fI"darkblue"\fR
 Defines color used for system packages not planned to be merged.
 .TP
diff --git a/man/portage.5 b/man/portage.5
index 7c2a8f7..3cc1f07 100644
--- a/man/portage.5
+++ b/man/portage.5
@@ -1114,6 +1114,7 @@ class = portage.sets.files.StaticFileSet
 multiset = true
 directory =  %(PORTAGE_CONFIGROOT)setc/portage/sets
 world-candidate = True
+user-set = True
 
 [module-rebuild]
 class = portage.sets.dbapi.OwnerSet
diff --git a/pym/_emerge/resolver/output.py b/pym/_emerge/resolver/output.py
index 400617d..89670d3 100644
--- a/pym/_emerge/resolver/output.py
+++ b/pym/_emerge/resolver/output.py
@@ -271,6 +271,8 @@ class Display(object):
return 
colorize("PKG_BINARY_MERGE_SYSTEM", pkg_str)
elif pkg_info.world:
return 
colorize("PKG_BINARY_MERGE_WORLD", pkg_str)
+   elif pkg_info.user_set:
+   return 
colorize("PKG_BINARY_MERGE_USER_SET", pkg_str)
else:
return 

[gentoo-portage-dev] [PATCH] Colorize packages in user sets (bug 577720)

2016-03-20 Thread Adam Mills
Three new settings were added to /etc/portage/color.map:
PKG_MERGE_USER_SET, PKG_BINARY_MERGE_USER_SET, and
PKG_NOMERGE_USER_SET. These colors are applied when the package is
selected from a set in /etc/portage/sets/

X-Gentoo-bug: 577720
X-Gentoo-bug-url: https://bugs.gentoo.org/show_bug.cgi?id=577720
---
 man/color.map.5| 11 ++
 pym/_emerge/resolver/output.py | 39 ++
 pym/_emerge/resolver/output_helpers.py |  8 ---
 pym/portage/_sets/base.py  |  3 +++
 pym/portage/_sets/files.py |  3 +++
 pym/portage/output.py  | 39 ++
 6 files changed, 68 insertions(+), 35 deletions(-)

diff --git a/man/color.map.5 b/man/color.map.5
index 5543628..39f23f7 100644
--- a/man/color.map.5
+++ b/man/color.map.5
@@ -46,6 +46,9 @@ Defines color used for satisfied blockers.
 \fBPKG_MERGE\fR = \fI"darkgreen"\fR
 Defines color used for packages planned to be merged.
 .TP
+\fBPKG_MERGE_USER_SET\fR = \fI"darkgreen"\fR
+Defines color used for packages planned to be merged from a user defined set.
+.TP
 \fBPKG_MERGE_SYSTEM\fR = \fI"darkgreen"\fR
 Defines color used for system packages planned to be merged.
 .TP
@@ -55,6 +58,10 @@ Defines color used for world packages planned to be merged.
 \fBPKG_BINARY_MERGE\fR = \fI"purple"\fR
 Defines color used for packages planned to be merged using a binary package.
 .TP
+\fBPKG_BINARY_MERGE_USER_SET\fR = \fI"purple"\fR
+Defines color used for packages planned to be merged using a binary package
+from a user defined set.
+.TP
 \fBPKG_BINARY_MERGE_SYSTEM\fR = \fI"purple"\fR
 Defines color used for system packages planned to be merged using a binary
 package.
@@ -66,6 +73,10 @@ package.
 \fBPKG_NOMERGE\fR = \fI"darkblue"\fR
 Defines color used for packages not planned to be merged.
 .TP
+\fBPKG_NOMERGE_USER_SET\fR = \fI"darkblue"\fR
+Defines color used for packages not planned to be merged from a user defined
+set.
+.TP
 \fBPKG_NOMERGE_SYSTEM\fR = \fI"darkblue"\fR
 Defines color used for system packages not planned to be merged.
 .TP
diff --git a/pym/_emerge/resolver/output.py b/pym/_emerge/resolver/output.py
index 400617d..4cb8393 100644
--- a/pym/_emerge/resolver/output.py
+++ b/pym/_emerge/resolver/output.py
@@ -271,6 +271,8 @@ class Display(object):
return 
colorize("PKG_BINARY_MERGE_SYSTEM", pkg_str)
elif pkg_info.world:
return 
colorize("PKG_BINARY_MERGE_WORLD", pkg_str)
+   elif pkg_info.user_set:
+   return 
colorize("PKG_BINARY_MERGE_USER_SET", pkg_str)
else:
return colorize("PKG_BINARY_MERGE", 
pkg_str)
else:
@@ -278,6 +280,8 @@ class Display(object):
return colorize("PKG_MERGE_SYSTEM", 
pkg_str)
elif pkg_info.world:
return colorize("PKG_MERGE_WORLD", 
pkg_str)
+   elif pkg_info.user_set:
+   return colorize("PKG_MERGE_USER_SET", 
pkg_str)
else:
return colorize("PKG_MERGE", pkg_str)
elif pkg_info.operation == "uninstall":
@@ -287,6 +291,8 @@ class Display(object):
return colorize("PKG_NOMERGE_SYSTEM", pkg_str)
elif pkg_info.world:
return colorize("PKG_NOMERGE_WORLD", pkg_str)
+   elif pkg_info.user_set:
+   return colorize("PKG_NOMERGE_USER_SET", pkg_str)
else:
return colorize("PKG_NOMERGE", pkg_str)
 
@@ -699,22 +705,27 @@ class Display(object):
return
 
 
-   def check_system_world(self, pkg):
-   """Checks for any occurances of the package in the system or 
world sets
+   def check_sets(self, pkg):
+   """Checks for any occurances of the package in the portage sets
 
@param pkg: _emerge.Package.Package instance
-   @rtype system and world booleans
+   @rtype user_set, system, and world booleans
"""
root_config = self.conf.roots[pkg.root]
-   system_set = root_config.sets["system"]
-   world_set  = root_config.sets["selected"]
-   system = False
-   world = False
+   user_set = None
+   system = None
+   world = None
try:
-   system = system_set.findAtomForPackage(
-   pkg, 
modified_use=self.conf.pkg_use_enabled(pkg))
-   world =