Project

General

Profile

Building a base release

02-Nov-2011, KAB

This page lists instructions for building base releases. There are a number of slight variations in how you might want to do this, and I've tried to list instructions for each. This means that there is a bit of duplication on this page since, in many cases, the changes to the commands that you run are small.

Also, this page talks about four variants of the software. For reference, these are the following:
  • x86
  • x86, optimized
  • PPC
  • PPC, optimized

Lastly, the instructions for building at NDOS and the teststand are currently identical. So, if you want to build a release at the teststand, you should log into the novadaq account on novatest01. And if you want to build a release on the NDOS DAQ cluster, you should log into the novadaq account on novadaq-ctrl-master.

Steps to build all four variants of a base release

  1. log into the novadaq account
  2. it is best to not run the 'setup_online' command (or 'source /home/novadaq/DAQOperationsTools/novadaq_setup.sh'). Since this command sets up a particular base release and the testRelForOperations test release, this can confuse the build that you're trying to do.
  3. run '/home/novadaq/.cron/update_base_release_all --no-update <releaseName>'
    • this command does not update any packages in the release, thanks to the "--no-update" option (no "cvs update ..." is run)
    • the command runs the primary builds for all four variants in parallel. It "tail"s the logfile from the x86 build initially, so you can see how things are working. After the x86 build is finished, it "tail"s the logfiles from the other three builds, so you will see the last 200 lines of those logfiles, as well.
    • once the primary four builds are done, the PPC builds of the NovaDaqDcs package are run. As before, you will see a "tail" of the logfile as the builds run.
    • the logfiles from this command are stored in /home/novadaq/.cron/logs/<hostname>. (To find the latest logfiles, it's easiest to simply run the latest command after you've moved to this directory.)

Steps to update and build all four variants of a base release

  1. log into the novadaq account
  2. it is best to not run the 'setup_online' command...
  3. run '/home/novadaq/.cron/update_base_release_all <releaseName>'
    • this command runs update-release first and then runs the usual set of builds. The update will include the DCMBootLoader and linux_kernel_dcmtdu packages which can take a while. I'm relatively certain that it does not remove sticky tags from files, so it's good to verify that you have the CVS versions of the code that you expect (for example, by running 'cvs -nq update -dAR' from the root directory of the base release).

Steps to "clean" the majority of a base release

  1. log into the novadaq account
  2. it is best to not run the 'setup_online' command...
  3. run '/home/novadaq/.cron/clean_base_release_all <releaseName>'
    • this will run gmake clean package_clean on the release that you specify after it moves the DCMBootLoader and linux_kernel_dcmtdu packages out of the way. It puts these packages back after the "clean" is run, but it's nice to avoid cleaning these packages unless you really need to do so, since they take a while to build.
    • since cleaning a release is a relatively drastic step, this command asks you if you are really sure that you want to do it.
  4. after you've cleaned a given release, you can use the steps listed above to rebuild it

Steps to fully "clean" a base release

These steps are not often needed since we generally don't need to clean and build the DCMBootLoader and linux_kernel_dcmtdu packages...

  1. log into the novadaq account
  2. it is best to not run the 'setup_online' command...
  3. setup the x86 variant of the base release that you want to clean
  4. 'cd $SRT_PUBLIC_CONTEXT'
  5. 'gmake clean package_clean'
  6. setup the x86-optimized variant of the base release that you want to clean
  7. 'gmake clean package_clean'
  8. setup the PPC variant of the base release that you want to clean
  9. 'gmake clean package_clean'
  10. setup the PPC-optimized variant of the base release that you want to clean
  11. 'gmake clean package_clean'