Project

General

Profile

Sourcetarball » History » Version 10

« Previous - Version 10/16 (diff) - Next » - Current version
Herbert Greenlee, 12/05/2019 04:57 PM


Updating External Products for use with Build Framework

This article describes how to update external ups products needed by uboone suite. The procedure described here will accomplish the following two things:

  • Generating an external products tarball for upload to scisoft.
  • Building external products in an mrb test release.

Environment setup

The procedure described below refers to mrb environment variables such as $MRB_SOURCE and $MRB_INSTALL. These environment variables should be defined by sourcing your test release's localProducts*/setup script. This is the only mrb environment initialization you should do. You should not run mrbsetenv or mrbslp.

Create a new uboone suite test release

Create a new mrb test release and check out all uboone suite packages.

$ source /cvmfs/uboone.opensciencegrid.org/products/setup_uboone.sh
$ mkdir <some empty directory>
$ cd <some empty directory>
$ mrb newDev -v <larsoft-version> -q <larsoft-qualifiers>
$ source localProducts*/setup
$ cd $MRB_SOURCE
$ mrb g uboone_suite

Update ssi-build packages

MicroBooNE currently has three external products that can built using the method described in this article. Check these out from the build-framework redmine repositories.

$ cd $MRB_SOURCE
$ mrb g build-framework-swtrigger-ssi-build
$ mrb g build-framework-larlite-ssi-build
$ mrb g build-framework-larcv-ssi-build

Or use git clone directly.

git clone ssh://p-build-framework@cdcvs.fnal.gov/cvs/projects/build-framework-swtrigger-ssi-build
git clone ssh://p-build-framework@cdcvs.fnal.gov/cvs/projects/build-framework-larlite-ssi-build
git clone ssh://p-build-framework@cdcvs.fnal.gov/cvs/projects/build-framework-larcv-ssi-build

These package contain the following files.
  • Bootstrap script bootstrap.sh.
  • Autobuild script autobuild.sh.
  • Build script build_<package>.sh.
  • Ups table file in subdirectory ups.
Scripts bootstrap.sh and build_<package>.sh may need the following updates.
  • New ups version (variable $pkgver).
  • Source code tag (variable $origpkgver).
  • ssibuildshims version (use latest version available on scisoft).

The table file may need updating if dependent ups products have changed.

Script autobuild.sh usually shouldn't need to be updated.

If the source code of the underlying package has changed, the souce code repository will need to be updated and tagged as well. If only the table file needs to be updated, the source code geneerally doesn't need a new tag.

Commit and push the updated packages back to the origin repo. Do this for each ssi-build package.

$ cd $MRB_SOURCE/build-framework-<package>-ssi-build
$ git commit
$ git push origin develop

Generate source tarball

The source code tarball is generated using script bootstrap.sh. Do this for each ssi-biuld package.

$ cd $MRB_SOURCE/build-framework-<package>-ssi-build
$ ./bootstrap.sh $MRB_INSTALL

Besides $MRB_INSTALL this command will work with any valid ups products area.

Upload source tarballs to scisoft

The source code tarballs are generated in the $MRB_INSTALL directory. Do this for each package tarball.

$ cd $MRB_INSTALL
$ copyToSciSoft <package>-<version>-source.tar.bz2

Build external packages

Checked out sources for each external package can also be found in the $MRB_INSTALL directory.

$ cd $MRB_INSTALL/<package>/<version>
$ ./build_<package> $MRB_INSTALL <qual> <buildtype>

Here <qual> is the ups qualifier (something like e17 or c2), and <buildtype> is debug or prof.

After this step, a newly built ups product should be declared in the $MRB_INSTALL ups products area.

Update uboone suite external product versions

Update the external product dependencies in product_deps and CMakeLists.txt of the checked out uboone suite packages. Use command "mrb uv".

$ mrb uv swtrigger <swtrigger-version>
$ mrb uv larlite <larlite-version>
$ mrb uv larcv <larcv-version>

Update larsoft version

If the larsoft base release version has changed, update that as well. You can use "mrb uv" commands for each larsoft package, or you can use script "update_larsoft_version.sh".

$ update_larsoft_version.sh -q <quals> <larsoft-version>

Here the larsoft ups qualifiers should include a base (compiler) qualifier, such as e17 or c2, an s-qualifier, and a build type qualifier (debug or prof).

Build release

You are now ready to build the release.

$ cd $MRB_BUILDDIR
$ mrbsetenv
$ mrb i -j<n>