Project

General

Profile

DDT with SRT

MRB build system has replaced the SRT in the past several years. This is an attempt to revive the DDT SRT build for people who would like to make test releases of their packages. As of now there is only one SRT base release for the offline build. People who need the online build may still have to resort to the MRB build.

DDT SRT online and offline builds

The difference in online and offline builds are in the external packages they source. The first step to make a SRT build is download the all packages necessary for DDT build. This will not only include the DDT packages themselves, but also some DAQ packages DDT packages depend on.

There is a script written for this purpose: https://cdcvs.fnal.gov/redmine/projects/novaddt/repository/entry/trunk/SRT_NOVADDT/scripts/install_ddt_srt.py
Download this script, and do

$ chmod a+x install_ddt_srt.py
$ kinit -A <your_kerberos_name>
$ ./install_ddt_srt.py -p <your_ddt_root_path> -a <DAQ_tag> -d <DDT_tag>

By default, it creates a DDT root folder /nova/novaddt/srt_resort, and in that root folder you have a folder named "setup". In there, you see a bunch of files named

novaddt-ups-externals-<tag>-maxopt (for maxopt build)
novaddt-ups-externals-<tag> (for debug build)

Before 2017 summer shutdown, the novadaq which DDT depends on is made a UPS product and serves as an external package. Therefore you will see in the file something like this.

novaddtdeps v02_00_08 -q+debug:+e9:+s28

However, decision is made to also remove the novadaq UPS dependency, it is replaced by the true package contents it refers to. For example, this is the content of the file novaddt-ups-externals-v12_00_00-maxopt from the near-master machine after the online machines have removed the novadaq UPS dependency:

artdaq_core v1_04_10 -q+e6:+prof:+s6
messagefacility v1_12_00 -q+e6:+prof
xerces_c v3_1_1b -q+e6:+prof
cstxsd v4_0_0a -q+e6
libwda v2_20_1
cppcheck v1_63
postgresql v9_1_14
ganglia v3_6_0a -q+GCC_4_9_1
osddssimd v0_9_1N6 -q+e6:+prof

The job is to figure out the external dependencies each build uses. Fortunately a script is made for this purpose. On a gpvm where you want to make an offline build, you can do

$SRT_PUBLIC_CONTEXT/SRT_NOVA/scripts/check_ups_dependencies /grid/fermiapp/nova/novaddt/setup/novaddt-ups-externals-development

Replace the novadaq, novadaqdeps, novaddt, and novaddtdeps with the output packages and you should be able to remove the build dependencies on these four UPS products. The important part is the version and build qualifier of each external package.
After this, you can source your novaddt environment by the command,
$ source setup_novaddt.sh -r <tag> -b <build> (build=maxopt or debug)

then you are ready to build.
Build with this script:
$ cd $SRT_PUBLIC_CONTEXT/SRT_NOVADDT/scripts/
$ novaddt_build -log=<your_log> -rel=<tag>

After a while, you should get a DDT SRT build.

Setup DDT SRT

In your ~/.bashrc, add the following function.

function setup_novaddt
{   
    source /nova/app/home/novaddt/srtbuild/setup/setup_novaddt.sh "$@" 
}
That gets you setup and you can proceed using SRT test releases as desired.

A recommended setup is

$ setup_novaddt -b maxopt