Although the variable ECVS_OFFLINE_${PN} is not officially documented, I think this was a very nice idea. Unfortunately, most packages using cvs.eclass end with "-cvs" (e.g. "emacs-cvs") so that it is not possible to set this variable, because variable names must not contain "-". I suggest to replace "-" by "_" in ${PN}. Moreover, it seems reasonable that ECVS_OFFLINE_${PN} (which is probably defined by the user in /etc/make.conf or by the ebuild) should *always* (and not only in case ECVS_OFFLINE=1) be overridden by ECVS_OFFLINE so that the user can change easily the global behavior on the command line. However, perhaps then it is also useful to have a "default" setting for those packages not explicitly specified via ECVS_OFFLINE_${PN}; I suggest the name ECVS_OFFLINE_DEFAULT. (I.e. the "override precedence" is ECVS_OFFLINE > ECVS_OFFLINE_${PN} > ECVS_OFFLINE_DEFAULT). Finally, if ECVS_OFFLINE* is set but the directory does not exist, I suggest trying to fetch the cvs anyway instead of breaking with an error. I add a patch "fixing" all three issues.
Created attachment 85656 [details, diff] cvs.eclass patch for new treatment of ECVS_OFFLINE*
what is the point of ECVS_OFFLINE_DEFAULT ? i dont seem to get it > Finally, if ECVS_OFFLINE* is set but the directory does not exist, I suggest > trying to fetch the cvs anyway instead of breaking with an error. no ... if you have OFFLINE vars set, then cvs wont fetch
> what is the point of ECVS_OFFLINE_DEFAULT? Well, my idea was that you have in your /etc/make.conf (or in your environment) a list like this: ECVS_OFFLINE_emacs-cvs=0 # I always "need" the newest gimmick in emacs ECVS_OFFLINE_foo-cvs=1 # The newest foo-cvs currently won't compile ... ECVS_OFFLINE_DEFAULT=1 # For all others not explicitly listed above, I usually don't want the newest version, since it may cause problems or since my bandrate is limited (but in case of library upgrades, recompilation might be necessary anyway) On the other hand, in some cases it might be convenient to be able to type something like ECVS_OFFLINE=0 emerge -eD world which fetches all newest versions independent of the setting in the above list.
$PN is now properly sanitized ... as for the rest, i dont think that level of complication/flexibility is really needed