All: This is off topic since it isn't directly related to Portage development, however, I have some questions related to the updated revdep-rebuild that I am writing.[1]
In order to make revdep-rebuild easier to configure and use, I have allowed the user to use environment variables or entries in make.conf to supplement where and how it searches the system for broken dynamic linking. >From my comments in the script: # Customizable variables: # # LD_LIBRARY_MASK - Mask of specially evaluated libraries # SEARCH_DIRS - List of directories to search for executibles and libraries # SEARCH_DIRS_MASK - List of directories to not search # # These variables can be prepended to either by setting the variable in # your environment prior to execution, or by placing an entry in # /etc/make.conf. # # An entry of "-*" means to clear the variable from that point forward. # Example: env SEARCH_DIRS="/usr/bin -*" revdep-rebuild will set SEARCH_DIRS # to contain only /usr/bin I received a suggestion from eradicator[2] that I also look through the cascading profiles for these variables. Being a fan of the dictum to "steal code whenever possible", I figured no problem, I'll just use portageq to get the variables. While this works, it causes a problem with my original intent. My intent was for the variables to be similar to USE flags in that entries were added to the variable instead of replacing the variable. This could be overridden by the user using a "-*" at the end of the variable. When using portageq, this behavior is no longer similar to the USE flags and instead the highest level variable is used. This means that for a user to customize, they would need to specify the entire variable in order to function properly. Now to my question: Do I change the intent of these variables from being similar to USE variables, so that they are overwritten by each higher level in the profile->make.conf->environment chain, or do I reinvent the wheel and follow the chain myself and create the variable additively as I move up the chain? If the consensus is to move up the chain, can someone who is familar with the cascading profiles please illustrate the psuedocode for following the cascading profiles? Finally, in the spirit of Fred Brooks, I'm considering this version of revdep-rebuild to by my throwaway system or prototype. The goal of this version is to be a stable and usable script that fixes the majority of the bugs in bugzilla against revdep-rebuild. However, the end goal is to redesign and reimplement the script in Python using the appropriate Portage and Gentoolkit API's in a way that fits in with the Portage and Portage Tools team's goals. Footnotes: 1. http://bugs.gentoo.org/show_bug.cgi?id=62644 2. http://bugs.gentoo.org/show_bug.cgi?id=62644#c17 -- My Gentoo stuff: http://varnerfamily.org/pvarner/gentoo -- [email protected] mailing list
