Skip to content
Snippets Groups Projects
user avatar
Ulrich Schwickerath authored
97b8970e
History
Name Last commit Last update
CI
install
runtime
.gitlab-ci.yml
README.md

Compile and deploy the DELPHI software stack

Deployment scripts

The scripts in this repository will

  • fetch the code from gitlab
  • compile everything
  • run very basic tests

Essentially, the can be used to create a new release on CVMFS or a new software CD for archival

Notes

  • Only Linux (i386 and x86_64) is supported. Aarm64 is known not to work.
  • The default is to compile in 64bit mode. Legacy 32bit compiles are possible by setting
export LEGACY=' -m32 '
* GPHIGS builds are no longer supported.

Runtime scripts

This repository should also contain scripts needed to setup the environment at run time

Prerequisites

You need to have at least the following packages installed:

  • gcc and gfortran with 32bit support, including static libraries
  • X11 development libraries
  • Motif development libraries
  • OpenGL and devlepment libraries
  • xorg fonts
  • tcsh

Supported modules

The following DELPHI software components are supported by this script

New modules

  • OpenPhigs: forked from upstream version and added Fortran bindings

Unsupported modules

  • WIRED (32bit, 64bit). As delgra support is continued, this is not considered to be a problem.
  • Idea, due to c++ language changes

Operating systems

This stack has been used on

  • SLC6 (32bit)
  • CentOS7 (32bit, 64bit)
  • CentOSStream8 (32bit, 64bit)
  • CentOSStream9 (32bit, 64bit)
  • Ubuntu 16 (32bit) (unsupported)
  • Ubuntu 18 (32bit) (unsupported)
  • Ubuntu 20 (64bit)
  • Ubuntu 21 (64bit) (unsupported)
  • Ubuntu 22 (64bit)
  • Fedora 29 (32bit) (unsupported) Binaries are available on /cvmfs/delphi.cern.ch.

For unsupported versions there may be binaries avaiable on cvmfs, however, they are discontinued and are likely not up to date.

Notes on CentOS6

Packages required to build and run:

# yum install cmake freetype-devel.i686 gcc-c++ gcc-gfortran git glibc-devel.i686 glibc-headers.i686 imake libgfortran.i686 libICE-devel.i686 libpng-devel.i686 libnsl2-devel.i686 libSM-devel.i686 libstdc++-devel.i686 libstdc++-devel.x86_64 libX11-devel.i686 libXfont2-devel.i686 libXfont-devel.i686 libXft-devel.i686 libXmu-devel.i686 libXpm-devel.i686 libXt-devel.i686 mesa-libGL-devel.i686 mesa-libGLU-devel.i686 motif-devel.i686 tcsh xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi.noarch

Notes on CentOS7

CentOS7 ships with gfortran 4.8.5. CERNLIB needs to be compiled with an additional flag to switch off aggressive loop optimisations which otherwise break bits of hbook.

Make sure that you have the following packages installed:

For 32bit:

# yum install cmake3 freetype-devel.i686 glibc-devel.i686 glibc-headers glibc-headers.i386 glibc-headers.i686 libgfortran5.i686 libgfortran.i686 libpng-devel.i686 libSM-devel.i686 libstdc++-devel.i686 libX11-devel.i686 libXfont2-devel.i686 libXfont-devel.i686 libXft-devel.i686 libXft-devel.i686 libXmu-devel.i686 libXpm-devel.i686 libXt-devel.i686 motif-devel.i686 tcsh xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi.noarch mesa-libGL-devel.i686 mesa-libGLU-devel.i686 libSM-devel.i686 libXaw-devel.i686 libICE-devel.i686

For 64bit:

#  yum -y install cmake3 freetype-devel glibc-devel glibc-headers glibc-headers glibc-headers git imake libpng-devel libSM-devel libstdc++-devel libX11-devel libXfont2-devel libXfont-devel libXft-devel libXft-devel libXmu-devel libXpm-devel libXt-devel motif-devel tcsh xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi.noarch gcc gcc-c++ gcc-gfortran mesa-libGL-devel mesa-libGLU-devel libSM-devel libXaw-devel libICE-devel

You may need to set a link from cmake3 to cmake to ensure that cmake3 is used.

Notes on CentOS Stream 8 and 9

# dnf install freetype-devel gcc gcc-c++ gcc-gfortran git glibc-devel glibc-headers imake libgfortran libnsl2-devel libnsl2 libSM-devel libSM libstdc++-devel libX11-devel libXaw-devel libXfont2-devel libXft-devel libXmu-devel libXpm-devel mesa-libGL-devel mesa-libGLU-devel mesa-libGLw-devel motif-devel tcsh xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi libGLEW glew-devel

Notes on Fedora

Fedora is similar to CentOS. Please refer to the package lists for these.

Notes on Ubuntu

Ubuntu 18 ships with gfortan 7.x. As of Ubuntu 20 there are no 32bit Motif development libraries available any longer, therefore onky the 64bit stack can be compiled and shipped.

Please ensure you have at least these libraries installed:

apt install cmake gcc g++ gfortran libx11-dev libx11-dev libx11-6 libx11-6 libglu1-mesa libglu1-mesa-dev xutils-dev libmotif-dev libmotif-common r-base-dev tcsh xfonts-100dpi xfonts-75dpi libxfont2  xutils-dev libxbae-dev libxaw7-dev libssl-dev libglew-dev libdlm-dev

The CMake version shipped with Ubuntu 18.04 is too old to be used with the community CERNLIB. As a work around, get a recent version in source code first, compile and install into /usr/local.

On Ubuntu 18, for 32bit, please ensure that you have at least these packages installed:

# apt install cmake gcc--multilib g++-4.8-multilib gfortran-4.8-multilib libx11-dev libx11-dev:i386 libx11-6 libx11-6:i386 libglu1-mesa:i386 libglu1-mesa-dev:i386 xutils-dev libmotif-dev:i386 libmotif-common:i386 r-base-dev tcsh xfonts-100dpi xfonts-75dpi libxfont2:i386

Notes on DELGRA

Support for GPHIGS has been dropped in favor of OpenPHIGS with self-implemented Fortran bindings. No license is required any longer. The caveat is that this only works with recent operating systems due to the OpenGL implementation and only in 64bit.

Please check https://gitlab.cern.ch/delphi/delgra for more information.

Compiling

Generally, there is no need for end users to recompile the stack. Binaries are made available via /cvmfs/delphi.cern.ch.

You need kerberos read access to all sub-projects in the DELPHI project. This should be the case automatically if you are a member of the CERN group xx. In addition, you need to have access to https://gitlab.cern.ch/dphep/cernlib/cernlib

Ensure that you have enough free space, at least 8GB would be ok. Install the dependencies as mentioned above, for the OS you use.

First, create a working directory and clone this project

mkdir git
cd git
git clone https://:@gitlab.cern.ch:8443/delphi/deployment.git
cd deployment/install

Then you can build all components. Set the environment variable DELPHI_INSTALL_DIR to determine where the code should go to. If you are working on a machine which has /cvmfs mounted, DELPHI_INSTALL_DIR and CERN may point to /cvmfs.

Building the full 64bit stack

As of 28/9/2022 64bit builds will use the community cernlib with cmake instead of imake. This allows for builds on aarm64.

unset CERN
export DELPHI_INSTALL_DIR=~/delphi64
make profiles
. delphi.sh
make all > make_all.log 2>&1

Building the full 32bit stack

unset CERN
export DELPHI_INSTALL_DIR=~/delphi32
export LEGACY='-m32'
make profiles
. delphi.sh
make all > make_all.log 2>&1

Individual modules can be (re-)build one by one, respecting dependencies. Almost all modules need cernlib.

Contributing

Contributions and issue reports is highly appreciated. Feel free to send patches and/or bug reports.