KROOT
Typically, core instrument software is located in "kroot" which is usually located or linked at /kroot
on the instrument computers. All the "released" (compiled) code specific to the instrument is there. There are exceptions however, some instruments have scripts in the bin
directory on the eng account or sometimes another account. A few scripts common to multiple instruments may be located on a shared directory in /sol/apps/kroot/summit/instr/bin
(or other symlinked names).
The released code will typically be in /kroot/rel
and its subdirectories. Where source code lives can vary from instrument to instrument. One pattern which exists is to have either (or both) dev
and bld
accounts which have their own kroot
(typically in their home directories) and which have a src
subdirectory under that kroot
. When the software is "released", the new code in the src
directory is compiled (if necessary) and then copied to the /kroot/rel
directory which all account see.
There is variation in the release process, but the basic ideas described here should help you begin to navigate the source code.
Current Standard Linux Release Example (OSIRIS), aka a “kroot-style” release
login osrsbld@vm-osirisbuild
cd /kroot/src/ (this is the basedir for SVN)
go to desired directory (e.g. kss/osiris/scripts/ao, fvwm2)
run svn status or *svn status --show-updates to ensure your directory is up to date
if your directory is not up to date...make it up to date
cp/modify your new/modified software into the current directory or edit in place
commit your changes to SVN
if you added software or are updating VERNUM, edit Makefile
commit your changes to SVN
run make [-n] install (the optional -n option will only print to screen; run before make install to see what you'll get)
run kdeploy -a [dir] (where [dir] is the desired directory listed above)
Release Example for “EPICS-style” release (e.g. AO)
login aobld@k1aobuild
cd /kroot/src/ (this is the basedir for SVN)
go to desired directory (e.g. kss/ao/idl/1-0-2/src)
run svn status or *svn status --show-updates to ensure your directory is up to date
if your directory is not up to date...make it up to date (or at least know why you are NOT making it up to date
cp/modify your new/modified software into the current directory or edit in place
commit your changes to SVN (or not)
run make [-n] (N.B. the lack of “install”; the optional -n option will only print to screen; run before make to see what you'll get)
run kdeploy -a rel/ao/idl/1-0-2 (N.B. you release from “rel”)