Skip to content
Kevin Wierman edited this page Jan 3, 2017 · 9 revisions

Welcome to the ARTDAQ-Instructions wiki!

This wiki is meant to introduce new (and returning) users to the installation of the artdaq products via the UPS infrastructure developed by Fermilab. The UPS system is designed to install multiple versions of software on a single system in a modular and portable way.

In the UPS infrastructure a "product" is a piece of software or otherwise distributable set of files that is tagged by a version, number, machine flavor (i.e Darwin-XX for OSX machines), and qualifiers for build specification. UPS is then designed to handle interdependencies between products in order to allow the user to efficiently switch between versions and build specifications with ease.

Directory Definitions

First, you'll need to define some directories. I've added this section in because, to a new user, the directory framework of ups products can be confusing.

To UPS, products live in top level directories. For now, we'll assume that your system will only have a single product directory, which we'll denote by PRODUCT_DIR, and I'll assume that an environment variable of the same name has been set to a sensible location. For my personal machine, I set the directory to $HOME/Dev/Products. For production machines, I've seen locations such as /protodune/felix/products/.

For future use, software products that end up in this directory have a structure of:

   $PRODUCT_DIR/software_name/version/flavor_qualifiers/

While this definition is not useful for setting up products, it's helpful to become familiar with how software will eventually be setup.

Finally, we need a temporary directory to use when downloading the tarballs that contain the software products. Once again, for personal use, I typically create a directory called /tmp/products when starting the build procedure, and I delete this once I am finished.

Download Source Products and Building

Open up a terminal and cd into the temporary directory.

Go to this link (it’s for the wrong bundle of packages, but has the right instructions and scripts): http://scisoft.fnal.gov/scisoft/bundles/art/v2_05_00/art-v2_05_00.html

Download the three scripts found in the Building From Source section into your temporary directory. I like to use wget or curl -OL.

  • checkPrerequisites
  • pullProducts
  • buildFW

As mentioned, you will need to chmod +x the scripts

Before building, check out the version of artdaq you wish to build. The versions are listed here. Make sure that buildcfg and manifest/*source* are listed in the subdirectories. These contain the instructions for building the software.

Run the following. As in the other instructions, you will need to fix any system dependencies.

./checkPrerequisites

Run pullProducts. For Example, I have a product directory of /Users/kwierman/Dev/Products, and I want an artdaq version of v1_13_03.

./pullProducts /Users/kwierman/Dev/Products/ source artdaq-1.13.03

This will take some time. For me, this is equivalent to 1 coffee break.

Run buildFW. For example, I've issued the following command:

./buildFW -b e10 -s s44 /Users/kwierman/Dev/Products/ debug artdaq-1.13.03
  • The -b e10 flag is the current build system. You can find which one to use by looking in the manifest subdirectory of the bundle version, and seeing which flag the binary distributables are using.
  • The additional qualifer flag, s44, I beleive to be a single-integer representation of the underlying art version
  • The product directory is the same one as before
  • The build specification is because I run debug on my personal machine and prof on my production machines.
  • The last argument is the product that I want to setup and the version number. This can once againbe found on scisoft.
  • I could have optionally added in more flags, but for now, this will do.

Once the build completes, you may clean up!

rm -r /tmp/products

Known Issues

Art not previously setup.

This might just be part of the setup. For me, I beleive that the instructions should take care of this. If someone knows better, let me know, and I'll fix the instructions.

For this bug, the artdaq build stops with errors and the log contains the line:

ERROR: Product 'art' (with qualifiers 'debug:e10'), has no v2_04_01 version (or may not exist)

This can be fixed by pulling and build art the same way we built artdaq.

For example:

./pullProducts /Users/kwierman/Dev/Products/ source art-2.04.01
./buildFW -b e10 /Users/kwierman/Dev/Products/ debug art-2.04.01

Incorrect CXX_ABI errors

This bug manifests itself as errors during the build of other products. The stack trace will have the INCORRECT_CXX_ABI message somewhere in the trace.

This bug requires time to replicate. I'll come back to this once I have time. What needs to happen here is that the cmake products need to be rebuilt with the UPS-built gcc. This can be done by setting up gcc:

source $PRODUCTS/setups
setup gcc <version>

Then from the products directory, running the build scripts:

. cmake/<version>/build_cmake /Users/kwierman/Dev/Products/

This must be done for all versions of cmake.

And this

Adding additional products to the build system using the multi-repository build (MRB) system

Since I haven't found (yet) an existing source target build that includes mrb, we're going to do this by hand.

First, pull down mrb and it's dependencies into the download directory.

cd /tmp/products
wget http://scisoft.fnal.gov/scisoft/packages/mrb/v1_08_04/mrb-1.08.04-noarch.tar.bz2
wget http://scisoft.fnal.gov/scisoft/packages/cetpkgsupport/v1_11_00/cetpkgsupport-1.11.00-noarch.tar.bz2

Then, cd into the product directory and unzip from there.

/Users/kwierman/Dev/Products/
tar -xvf /tmp/products/http://scisoft.fnal.gov/scisoft/packages/mrb/v1_08_04/mrb-1.08.04-noarch.tar.bz2
tar -xvf /tmp/products/http://scisoft.fnal.gov/scisoft/packages/cetpkgsupport/v1_11_00/cetpkgsupport-1.11.00-noarch.tar.bz2