Skip to content
Orion Poplawski edited this page Jun 22, 2016 · 15 revisions

Introduction

AltCCRPMs is an attempt to provide rpms (loosely) based on the Fedora project that are compiled with alternate C/C++/Fortran compilers and are suitable for parallel installation on Enterprise Linux and Fedora based distributions.

These rpms make use of environment modules in a hierarchy as described here, except that these install directly into /opt rather than /opt/apps.

Repo Layout

Each package has it's own repository. In general each package is branched from the main Fedora repository git://pkgs.fedoraproject.org/package. Branches are named by the version of the software, like "1.10.1".

I generally setup pushing the branch to the altccrpms repos with:

git remote add altccrpms [email protected]:altccrpms/%package%.git
git push -u altccrpms altcc-%version%:%version%

Package install layout

Packages are installed into the following directory structure:

/opt/%compiler%-%compiler-version%/%package%-%version%

Module files

%package%/%version%

Environment Variables

The following environment variables are expected to be set when compiler and MPI modules are loaded:

COMPILER_NAME
COMPILER_VERSION
MPI_NAME
MPI_VERSION

Notes on changes needed to spec files for AltCCRPMs.

Building

We assume that the compiler environment is already set up. See Mock Configuration for some details on how to do this with mock. You probably want the standard Fedora build environment by installing "fedora-packager". We also use rpm-opt-hooks to automatically generate the proper provides/requires for these packages during build.

  • You can checkout each repository:
git checkout git://github.com/altccrpms/openmpi.git
  • Download the source with either:
spectool -g *spec

or to download from the Fedora lookaside cache:

fedpkg sources
  • Load the compiler/mpi environment you want, e.g.:
module load intel openmpi
  • Build with fedpkg and specifying the distro, e.g.:
fedpkg --dist el7 local