Coder Social home page Coder Social logo

key4hep-spack's Introduction

Spack package repo for Key4HEP software packaging

This repository holds a set of Spack recipes for key4hep software.

Consult the the key4hep documentation website and the spack documentation for more details.

Spack Versions

The spack recipes in this repository should work with any version of spack (0.19 is known to work and it's possible older versions work too, newer than 0.19 works). Some of the environments require spack 0.20 or newer since they use (or they include a file that uses) the require keyword which was introduced in spack 0.20.

Repository Contents

Apart from the recipes for key4hep packages in the folder packages, the repository contains a collection of environments used to build the stack in environments and some scripts used for publishing on cvmfs and other utilities in scripts. The builds run in Gitlab CI runners and the workflows can be found in the file .gitlab-ci.yml in the gitlab repository.

Additionally, the file .latest-commit contains the latest commit of Spack used for the recent builds, which is updated from time to time to keep up with the develop branch of Spack.

Central Installations

Installations of the software stack can be found under /cvmfs/sw.hsf.org (for CentOS 7) and /cvmfs/sw-nightlies.hsf.org (for CentOS 7, AlmaLinux 9 and Ubuntu) see:

https://key4hep.github.io/key4hep-doc/setup-and-getting-started/README.html

Requirements

To compile the key4hep stack some system packages are required; without these, the spack concretization or compilation can fail. The packages needed are an OpenGL implementation that can be installed:

yum install -y mesa-libGL mesa-libGL-devel mesa-libGLU mesa-libGLU-devel      # Centos 7
apt install -y libgl1-mesa-glx libgl1-mesa-dev libglu1-mesa libglu1-mesa-dev  # Ubuntu
dnf install -y mesa-libGL mesa-libGL-devel mesa-libGLU mesa-libGLU-devel      # AlmaLinux 9

The environments that make use of these libraries or headers expect them to be found under /usr, which is the typical location when they are installed system-wide (for example in /usr/include or /usr/lib).

Alternatively, one can install HEP_OSlibs, which will install the previous and more libraries.

In addition, for Ubuntu and Alma 9 the compilers are picked up from the system, so, for example, building in an image without gcc or glibc won't work. These commands should install most of the compilers and the development tools:

apt install -y build-essential gfortran                            # Ubuntu
dnf groupinstall -y "Development Tools" && dnf install -y gfortran # AlmaLinux 9

Dockerfiles with the images that are used to build the key4hep stack can be found in https://github.com/key4hep/key4hep-images.

key4hep-spack's People

Contributors

vvolkl avatar jmcarcell avatar gartung avatar tmadlener avatar mirguest avatar andresailer avatar joequant avatar jlingema avatar gganis avatar hegner avatar fdplacido avatar brettviren avatar drbenmorgan avatar bcouturi avatar brieucf avatar javiercvilla avatar kjvbrt avatar zehvogel avatar wdconinc avatar graeme-a-stewart avatar bartosik-hep avatar paulgessinger avatar clementhelsens avatar haralmha avatar iarspider avatar scott-snyder avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.