Skip to content

FELIX Software Suite hack

ShyamB97 edited this page Jul 30, 2021 · 17 revisions

FELIX sw suite distribution notes

DUNE FELIX Distribution Notes

Extract minimal set instructions

  1. Clone the following repository, and cd to it. All the commands below should executed in the same sequence, otherwise it won't work. https://gitlab.cern.ch/atlas-tdaq-felix/software

  2. To clone the repositories needed for the minimal set, download the clone_all-minimal.sh script:

    wget https://raw.githubusercontent.com/DUNE-DAQ/flxlibs/develop/scripts/sw-suite/clone_all-minimal.sh
    chmod +x clone_all-minimal.sh
    

    Then clone the repositories by running the script:

    ./clone_all-minimal.sh ssh

    Or if you have a kerberos ticket:

    ./clone_all-minimal.sh krb5

  3. Checkout appropriate branches. (For now skip this as latest working versions are on the master branch):

    ./checkout_all.sh <branch name>
    
  4. First set the environment variables to build a rm-5.0 version of the software:

    export FELIX_VERSION=5.0.0
    export REGMAP_VERSION=0x0500
    

    Then setup the FELIX environment:

    source cmake_tdaq/bin/setup.sh x86_64-centos7-gcc8-opt
    
  5. Wget the "hack" script from this repository, that overrides the CMake and GCC versions:

    wget https://raw.githubusercontent.com/DUNE-DAQ/flxlibs/develop/scripts/sw-suite/change-compiler.sh
    wget https://raw.githubusercontent.com/DUNE-DAQ/flxlibs/develop/scripts/sw-suite/copy-minimal.sh
    chmod +x copy-minimal.sh
    
  6. Do the following steps:

    source change-compiler.sh 
    cmake_config x86_64-centos7-gcc8-opt
    cd x86_64-centos7-gcc8-opt
    make -j
    cd ..
    
    
  7. If everything compiled successfully, copy the minimal set to a target directory:

    rm -rf flxlibs-deps
    ./copy-minimal.sh
    
  8. Now copy the necessary low level tools to the target directory:

    wget https://raw.githubusercontent.com/DUNE-DAQ/flxlibs/develop/scripts/sw-suite/copy-tools.sh
    chmod +x copy-tools.sh
    ./copy-tools.sh
    
  9. We have the minimal set of dependencies required by flxlibs in the flxlibs-deps directory. One would need to produce a UPS or other package from this.