Building and installing TCS components

For patching instructions please see the separately written patching page.

General Instructions

Building, Installing

  1. Using a subversion client, checkout the version of the software you want to build. 1
  2. Using UNIX tools, change your current working directory to the directory you just checked out.
  3. Build by executing "./install.sh build_name ". 2
  4. Fix any build errors you encounter.
  5. Using UNIX tools, once compilation completes successfully check that the product is installed in "/lbt/tcs" in a directory named after the build.

Deploying the TCS both on the Mountain and Downtown

  1. Using UNIX tools, copy the files from "/lbt/tcs/build_name" to nfs:/exports/lbt/tcs/build_name. 3
  2. Once people have tested, copy the product from "/lbt/tcs//build_name" to the mountain NFS server "nfs:/exports/lbt/tcs/build_name", to tcs1:/lbt/tcs/build_name, and possibly to the mcspu:/lbt/tcs/build_name. 4
  3. Using UNIX tools, set the permissions and ownership of the files you just copied up to the mountain server appropriately. (All files should be owned by root.tcs with permissions set to rw-rw-r-- for ordinary files and rwxrwxr-x for executables and directories.)
  4. Activate the TCS if you desire to do so.

Environmental Variables

The TCS uses four environmental variables that define fundamental locations and properties. These variables are defined in the shell startup scripts in /lbt/profile.d.
  1. TCSPATH This defines the path to the active build. For example /lbt/tcs/current.
  2. TCSLOCALE This defines the locale to be used.
    • testing Used by the software group developers on their local computers.
    • downtown Used for the downtown "test cluster".
    • mountain Used for the operating cluster on the mountain.
    • downtown64 Used for the 64 bit downtown "test cluster".
    • mountain64 Used for the 64 bit operating cluster on the mountain.
  3. TCSSYSLOGPATH This defines the path for the log file written by the syslogserver process.
  4. TCSSYSLOGRUNON This defines whether the syslogserver process is allowed to run. If the variable is not defined, syslogserver is allowed to run. If the variable is defined, it must match the computer name to allow syslogserver to run.

Subversion management

  1. Once the compilation actually completes you will probably want to create a branch from the working copy that you built.5
  2. Once you move a build up to the mountain, copy any branches that will not be patched further into the releases directory in the TCS repository.6

FootNotes

1 I usually perform the checkout on the build machine ("tcs-test.tucson.lbto.org") using the username "tcs" under the "/home/tcs" directory giving it the name of the build I am about to perform. I do this so that other people know where to find the software I have built. The only requirement for the user is that you have write permission to the "/lbt/tcs" directory.

2 ./install.sh builds and installs the software

3 Not necessary if you built on a machine with an NFS mounted "/lbt" filesystem.

4 You can do this as you like, however a script has been provided for your convenience (run "/lbt/xxx/gettcs.sh" on one of the mountain TCS cluster). It will prompt you for parameters.

5 This is so that development can move along in the branch the working copy was based off of; i.e., so people can patch the installed build.

6 Make sure that we will not be falling back to a build from that branch before you finalize it.


Commands you will use

  • ssh
  • svn checkout
  • svn copy
  • svn switch
  • svn move
  • find, chown, chmod


Examples

Checkout trunk into a directory named my_really_spiffy_trunk_build
svn co https://svn.lbto.org/repos/tcs/trunk my_really_spiffy_trunk_build

Build the TCS using install.sh

cd my_really_spiffy_trunk_build 
./install.sh my_really_spiffy_trunk_build

Copying a working copy to the repository

cd my_really_spiffy_trunk_build 
svn copy  -m 'branch for really spiffy trunk build' . https://svn.lbto.org/repos/tcs/branches/my_really_spiffy_trunk_build
svn switch https://svn.lbto.org/repos/tcs/branches/my_really_spiffy_trunk_build

Finalizing a branch that was released to the mountain in the repository

svn move -m 'finalized my_really_spiffy_trunk_build' https://svn.lbto.org/repos/tcs/branches/my_really_spiffy_trunk_build https://svn.lbto.org/repos/tcs/releases/my_really_spiffy_trunk_build

Setting the permissions on the build you just moved to the mountain

chown -R root:tcs /lbt/tcs/my_really_spiffy_trunk_build
chmod -R g+w /lbt/tcs/my_really_spiffy_trunk_build
Topic revision: r38 - 22 Aug 2019, PetrKubanek
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback