# Build DUNE-DAQ release for CentOS Stream 8.
###### tags: `DAQ` `protoDUNE` `DUNE` `Software Management`
## Current UPS products for CentOS 7
## Build external products
* Use `np04-srv-019` to build the external products and the DAQ release.
```shell=
[pding@np04-srv-019 ~]$ cat /etc/redhat-release
CentOS Stream release 8
```
* Set up local build area for UPS products
```shell=
mkdir -p /scratch/dunedaq_cs8
# set up http proxy for public internet access
source ~np04daq/bin/web_proxy.sh
# clone daq-release repo
git clone https://github.com/DUNE-DAQ/daq-release
# create new UPS products area
./daq-release/scripts/create-ups-products-area.sh -t /scratch/dunedaq_cs8/products
source /scratch/dunedaq_cs8/products/setup
```
* Build `gcc v8.2.0`, `boost v1.73.0` and various versions of `cmake` for CS8
```shell=
cd /scratch/dunedaq_cs8/products
curl https://scisoft.fnal.gov/scisoft/packages/gcc/v8_2_0/gcc-8.2.0-source.tar.bz2|tar xj
cd gcc/v8_2_0
./build_gcc.sh /scratch/dunedaq_cs8/products tar
* Build `cmake v3_10_1`, this is used by `cetpkgsupport`
```
* Obtain `catch`, `cetpkgsupport` and `cetbuildtools` from [SciSoft](https://scisoft.fnal.gov/scisoft/packages/).
* Build `cppunit v1_15_1a` and `tbb v2020_2a`.
* Build `sqlite v3_32_03_00`
* Build `hep_concurrency`, `cetlib_except` and `cetlib` for CS8
These three packages have their repositories hosted on `cdcvs.fnal.gov`, which are only accessible from onsite@Fermilab. Cloning those on a DUNE GPVM node with:
```shell=
for i in hep_concurrency cetlib cetlib_except; \
do \
git clone http://cdcvs.fnal.gov/projects/$i; \
done
```
Then check out the versions used by the latest DUNE DAQ release (refer to the `release_manifest.sh` in `daq-release` for the latest frozen release.)
* Build `hdf5 v1_12_0a`, `gdb` and `clang`.
* Build `ninja`, `python`
Install `libffi-dev`, `libnsl2-devel`, `libtirpc-devel`, `openssl-devel`, `gdbm_devel` before building `python`, otherwise it will end with error building `_ctypes`, `_gdbm`, `_dbm`, and `_nis` module.
* Build `highfive`, `pistache`, `nlohmann_json`, `cpr` (with `ssibuildshimlibs`)
`cpr` build script has an error (`mkdir -l` instead of `mkdir -p`)
* Build ` double_conversion fmt glog googletest libevent folly zmq cppzmq msgpack_c pybind11 pugixml librdkafka yaml_cpp` using `cetbuildtools`
* Tripped over pistache... It does not have a tag, instead we were using the commit dated on 2020-10-07
* Build `protobuf` and new version of `highfive`; building `protobuf` requires system packages for `libtool` `autoconf` and `automake`.
## Build `dunedaq-v2.8.0` and `dunedaq-develop` release
* Had to install `ztsd`, `libzstd-devel`