pkg FILTERING We start with all actions in a manifest. We apply each element in the filter chain in order. For each element, we eliminate all remaining actions which don't match the element. Simple elements have a single filter: arch=i386 means eliminate all actions which have an "arch" attribute that isn't "i386". More complicated elements can represent an intersection of filters: arch=i386 & debug=true means eliminate all actions which have both "arch" and "debug" attributes, but whose values, respectively, aren't "i386" and "true" (e.g., eliminate all non-debug i386 actions and all sparc actions, debug and non-debug); doc=true & locale=fr means eliminate all actions which have both "doc" and "locale" attributes and which aren't "true" and "fr", respectively (no, I'm not sure what "doc=false" means, other than a reason to refactor). That is, strip out all documentation that isn't French (but keep other localized actions, such as message files, images, etc.). Elements can also represent a union of filters: locale=fr | locale=sv means eliminate all actions which have a "locale" attribute that isn't either "fr" or "sv". We'll probably want to mix intersection and union, too: doc=true & (locale=fr | locale=sv) And we want a fallback mechanism, allowing us to get the "best of" a particular attribute. Four examples: locale=fr_FR.UTF-8;fr_FR;fr;C platform=SUNW,Sun-Fire-V240;sun4u debug=true;false debug=false;true Any actions that haven't been eliminated by the end of the chain remain to be installed. At that point in time, if more than one action exists for any given object, the evaluation fails (can't have two copies of /usr/bin/ls just because you remembered to specify architecture but not debug-ness).