gxenv and gxclean on generic build (gluex_install build)

  • assume generic gluex_install build
  • gxenv depends on
    • DIST
    • BUILD_SCRIPTS default location (optionally pre-set)
    • gluex_env_jlab.csh
  • problem reduces to having a generic gluex_env_jlab.csh
    • gluex_env.csh a candidate? what does gluex_env_jlab.csh do that gluex_env.csh doesn’t?
    • gluex_env_jlab.csh uses gluex_env_version.csh, not gluex_env.csh
  • is gluex_env_version.csh universal or jlab specific? and what does it do that gluex_env.csh doesn’t?
    • universal
    • depends on BUILD_SCRIPTS
    • version.pl in turn depends on GLUEX_TOP
    • sets the environment with version.pl before invoking gluex_env.csh
  • so what does gluex_env_jlab.csh do that gluex_env_version.csh does not?
    1. sets $DIST/version_jlab.xml as the default xml file
    2. puts /apps/bin in the path
    3. sets up http proxy
    4. for RH6
      • sets up non-standard gcc
      • sets up home-built python
    5. sets GLUEX_TOP
    6. puts /apps/perl/bin in the path
    7. at this point, sources gluex_env_version.csh
    8. sets JANA_CALIB_URL
    9. sets JANA_RESOURCE_DIR
    10. sets path to cmake so that it is cmake3
  • Of these only 1, 5, 8, and 9 are necessary generically

Design decisions:

  • Action items to address changes needed. These are mods to gluex_install.sh
    • Item 1. Need to install a local version.xml directory
      • Under gluex_top, make a versions directory
      • can be done with a git repository, say “halld_versions”
      • git supports symlinks fully, so indicating the default as a link works
      • having versions in a repository puts it in a place outside the lab, and therefore on a level above the lab. it could be still repatriated to the lab if github is no longer the repository server of choice
    • Item 5. Trivial
    • Item 8. Set it to the (outward facing) MySQL server.
    • Item 9. Create a local resources directory and point to that. It will fill up in the fullness of time.

Implementation details:

  • have gluex_install.sh make the new gluex_env_jlab.(c)sh equivalent in gluex_top, files housed in gluex_install
  • have gluex_install.sh find out from whence it is being run
  • create templates gluex_env_local.(c)sh
  • create templates for gluex_env_boot.(c)sh
  • write script to do template substitution for all four