Skip to content

Building COMP WMCore RPMs

Alan Malta Rodrigues edited this page Aug 30, 2021 · 2 revisions

This is a very basic documentation on how we can build WMCore RPMs within the COMP software stack.

Our current production architecture is slc7_amd74_gcc630, so such packages have to be built in an SL7 node and that node need to have some specific seed packages required for this software stack (because some of the libraries and packages are taken from the system). In short, node vocms055 is the official node to build such RPMs.

A step by step to build those RPMs is:

  1. Log in to vocms055.cern.ch and access your own directory (e.g. below)
ssh vocms055
cd /build/amaltaro/
  1. Clone and pull the latest changes from the cmsdist repository, which contains all our spec files. Note that we need to pull a specific branch, the one used for the COMP group.
git clone git@github.com:cms-sw/cmsdist.git && cd cmsdist && git checkout comp_gcc630
  1. Now we need the CMS packaging utilities, thus we need to clone the pkgtools repository. Note that we must use a specific branch and an specific commit hash, to be in sync with the scripts used by the CMSWEB bot-builder machinery.
cd /build/amaltaro/
git clone -b V00-32-XX https://github.com/cms-sw/pkgtools.git && cd pkgtools
git reset --hard c5cda944f574078b305ad4ff2f04f89ab862db76

# this is how git log should look like
amaltaro@vocms055:/build/amaltaro/pkgtools $ git log -2 --pretty=oneline --decorate
c5cda944f574078b305ad4ff2f04f89ab862db76 (HEAD, V00-32-XX) save deps files in WEB so that cmsBuild upload them to cmsrep
9ac50cd782f34eaa8c688a128fb481d15ac0f5fd addlow upload dependnecies via UPLOAD_DEPENDENCIES flag in spec
  1. Now we can start building RPMs. Note that the output/source/RPMs will be written out to the w directory, if you want a fresh build, it's always better to clean that directory up (rm -rf w). In addition to that, with the command below we are actually building the comp metapackage, so it will check if packages are available upstream, and it will build whatever has changed and needs to be built.
cd /build/amaltaro/
pkgtools/cmsBuild -c cmsdist --repository comp \
   -a slc7_amd64_gcc630 --builders 8 -j 4 --work-dir w \
   build comp | tee logBuild
  1. Check whether the RPMs have been built (you should see all the packages that had to be built here):
ls w/RPMS/slc7_amd64_gcc630/
  1. Last but not least, you can now upload them to your cmsrep area, with the command:
cd /build/amaltaro/
pkgtools/cmsBuild -c cmsdist --repository comp \
   -a slc7_amd64_gcc630 --builders 8 -j 4 --work-dir w \
   --upload-user=$USER upload comp | tee logUpload

Now you can access these RPMs on your private cmsrep area, or you can browse through them (replace amaltaro by your user name): http://cmsrep.cern.ch/cgi-bin/repos/comp.amaltaro/slc7_amd64_gcc630?C=M;O=D

Clone this wiki locally