The official version of
srt_environment does not correctly include project- or experiment-based customizations to itself. It claims to include
$SRT_PRIVATE[PUBLIC]_CONTEXT/SRT_$SRT_PROJECT/special/scripts/srt_environment to support such customizations, but the way that the script is structured, the
SRT_PUBLIC_CONTEXT variables are not defined until after the special customization files are included. Hence, any customization files are never found when srt_environment is first run.
One way to work around this is to run
srt_setup which calls it) twice. This is how CDF is working around the issue as described in this email snippet from Lynn Garren:
CDF uses ups to initialize SRT. I find this in the SoftRelTools table file: execute(srt_setup, UPS_ENV) # srt_setup will not see specializations the first time it is run. # Running it a second time ensures specializations are taken into account. execute(srt_setup, UPS_ENV) So I guess that the answer is to call srt_setup twice. Seems to be a feature that we've all been using.
For novadaq use, a modified version of the primary
srt_environment script has been checked into
SRT_NOVADAQ/scripts. This version allows us to over-ride the
remove_extra_vars() functions in the script, and that is enough to support our customizations to
srt_environment. Unfortunately, the implemented fix is not general enough to support the customizations that are used at CDF. So, a better fix needs to be implemented before the script can truly be considered fixed.
Part of the pain is the fact that the initial invocation of
srt_environment comes from the "boot" base release. So, even though we have a modified copy of
SRT_NOVADAQ/scripts, this version is not used until the second, third, etc. times that
srt_setup is run. To work around this, we have modified the
install_nova script to over-write the official
srt_environment script in the boot release with our modified copy when novadaq releases are first installed. If/when a full fix is implemented in the official version of the script in the SoftRelTools package, presumably this hack of the boot release should be removed.
[Some background: the first time that a user sets up a novadaq SRT environment, he first runs
'source /nova/novadaq/srt/srt.sh' (or something similar) followed by
'srt_setup'. All that the
srt.sh script does is set
SRT_DIST, define the
srt_setup alias, and add the boot base release
"bin" area to the
PATH. So, the subsequent invocation of
srt_environment via the
srt_setup alias is guaranteed to use the boot release version - that is all that is in the user's path.]
- remove the over-write of the boot release version of
- remove the modified version of
SRT_NOVADAQpackage (in the
- modify the local script that runs
setup_novadaq_meta_nt1.sh) so that it runs it twice [necessary]