- Singularity.sherpa-*
-
Recipes for images that run the respective Sherpa version. We use Asterix-themed name tags for recipes that serve a specific Sherpa git commit. This has no meaning in any other context and just serves as a mnemonic here, when a user has pulled several such images. Running a Sherpa image calls
Sherpa
. - Singularity.plotting
-
A recipe for an image that includes
Compare-1.9
and support forrivet-mkhtml
. This can be used for plotting Sherpa/Rivet analysis output. Running it callsrivet-mkhtml
. - Singularity.mceg
-
A recipe for an image that serves as the base image for all
Singularity.sherpa-*
recipes. This allows for a quick build of new Sherpa images, because the dependencies do not need to be re-compiled. - Singularity.rivet
-
A recipe for an image that serves as the base image for all other recipes in this repository (since they all need Rivet as a dependency). Running it calls
rivet
.
- Blackhat
-
A helper recipe file that can not be build on Singularity Hub due to its 2 hours runtime limitation. It must be built on another machine. Running it exports a gzipped tar-file which can be downloaded and extracted from within other recipes to install the BlackHat binaries. This is used in the
Singularity.mceg
recipe. - Compare-1.9_patch
-
A helper file used by the
Singularity.plotting
recipe to fix the compilation ofCompare-1.9
. - compare-logo.gif
-
This replaces the file with the same name in
Compare-1.9
, becauseconvert
complained that this one is broken during the compilation of plotting output. - rivet-bootstrap
-
A helper file used by the
Singularity.rivet
recipe to allow for custom download links for Rivet and its dependencies. - install_*
-
Helper files used to install stuff. These can also be used as stand-alone scripts to install this stuff in non-Singularity contexts. However, mileage might vary, since there might be missing dependencies.
Receptacles are containers that have no pre-installation of Sherpa, but that can be used in "writable" mode to install Sherpa aposteriori. The big advantage is that we do not need a recipe for each Sherpa version, and that it’s easier and much less time-consuming to keep a Sherpa version updated that is under active development. Let’s have a look at an example.
-
Use the sherpa-3.x receptacle recipe to build an empty Receptaple container that is suitable for installing Sherpa using a recent master commit (i.e. Sherpa "3.x").
-------------------------------------- sudo singularity build --writable Receptacle.sherpa-3.x_centos6{.img,} --------------------------------------
-
Now use the initialise_receptable script to git-clone, autoconf, make and make-install a given Sherpa branch into the Receptacle container:
-------------------------------------- ./initialise_receptable Receptacle.sherpa-3.x_centos6.img tmp-cherrypick-ewvirt-into-master --------------------------------------
-
The source and build directory of the last step will be called
Receptacle.sherpa-3.x_centos6.img-tmp-cherrypick-ewvirt-into-master/sherpa
. We can do manual modifications or use git to do pulls or checkouts. Then we can use the make_within_receptable script to update the installation within the Receptacle container:-------------------------------------- ./make_within_receptable Receptacle.sherpa-3.x_centos6.img tmp-cherrypick-ewvirt-into-master -j ./make_within_receptable Receptacle.sherpa-3.x_centos6.img tmp-cherrypick-ewvirt-into-master install --------------------------------------
-
Whenever we are happy with our writable Receptacle container, we can transform it into a read-only production container (and e.g. copy it to our cluster):
-------------------------------------- sudo singularity build Receptacle.sherpa-3.x_centos6{.simg,.img} --------------------------------------