This version of lamp is designed to work with GENIE R-2_10_8! It will
also work with R-2_10_2, but earlier versions may require checking out
older tags of lamp (see below).
It is a good idea to use a tagged version of the lamp. The latest
recommended tag is R-2_10_8.0. Use the following command to check
it out (and read below for more if you're really interested). After
cloning the repository, cd into the lamp directory and run:
git checkout -b R-2_10_8.0-br R-2_10_8.0
Run ./rub_the_lamp.sh -h to get a help menu. If you run into trouble,
please consult the "Trouble-Shooting" section below. If you find a
bug, please feel free to contact Gabe Perdue (perdue at Fermilab)
or open an issue on GitHub.
NOTE: On May 4, 2015 the GENIE SVN repository on HepForge was
re-orgnaized, breaking the SVN checkout path in some versions oflamp.
Please check the version tags and use one appropriate for your needs
with respecrt to this change. If you continue to have checkout problems
for a specific version of GENIE, please let Gabe Perdue know (contact
info below) or open an issue on GitHub.
Let GENIE out of the bottle!
..
dP/$.
$4$$%
.ee$$ee.
.eF3??????$C$r. .d$$$$$$$$$$$e.
.zeez$$$$$be.. JP3F$5'$5K$?K?Je$. d$$$FCLze.CC?$$$e
"""??$$$$$$$$ee.. .e$$$e$CC$???$$CC3e$$$$. $$$/$$$$$$$$$.$$$$
`"?$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$b $$"$$$$P?CCe$$$$$F
"?$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$b$$J?bd$$$$$$$$$F"
"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$d$$F"
"?$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"...
"?$$$$$$$$$$$$$$$$$$$$$$$$$F "$$"$$$$b
"?$$$$$$$$$$$$$$$$$$F" ?$$$$$F
""????????C"
e$$$$$$$$$$$$.
.$b CC$????$$F3eF
4$bC/%$bdd$b@$Pd??Jbbr
""?$$$$eeee$$$$F?"
When first checking out this package, you will have the HEAD version of the
master branch. Get a specific tagged release by checking out the tag into a
branch like so:
git checkout -b R-2_10_8.0-br R-2_10_8.0
This will checkout tag R-2_10_8.0 into branch R-2_10_8.0-br. You want to
checkout into a branch to avoid being in a "detached HEAD" state.
Check the releases page to be sure
you are using a version of lamp that is appropriate for the version of GENIE
you want to use. lamp has been tested for GENIE R-2_8_0 and later. It may
not work with earlier versions. This version of lamp is designed to work with
GENIE R-2_10_6 or later, and you will need to check out an older release of
lamp to work with the 2.8 series.
Note that the "HEAD" version on the lamp package is designed to work with GENIE 2.10.8. If you want to use an older version of GENIE, you should check out an appropriate tag. You can do this with a branch checkout command that will switch to the version of the code matching the tag and also put you on a separate branch (away from master) in case you want to make commits, etc. See the VERSIONS.md file in this package for more information.
-
To use 2.10.0, you probably want tag
R-2_10_0.0. Check it out with:git checkout -b R-2_10_0.0-br R-2_10_0.0 -
To use 2.8.6, you probably want tag
R-2_8_6.5. Check it out with:git checkout -b R-2_8_6.5-br R-2_8_6.5 -
If you have created a repo with a different name or naming structure from those expected by lamp, you will need to update this script or rename your repository. This script expects repositories in HepForge to look like R-X_Y_Z and in GitHub to look like GENIE, with the version set by the branch name. You may grep this script for the checklamp function to see how the major, minor, and patch version numbers are managed.
If you rub the lamp, you will let GENIE out of the bottle! Running the script with no arguments will produce the help menu:
Welcome to "rub_the_lamp". This script will build the 3rd party support packages
for GENIE and then build GENIE itself.
Usage: ./rub_the_lamp.sh -<flag>
-h / --help : Help
-g / --github : Check out GENIE code from GitHub
-f / --forge : Check out GENIE code from HepForge
(DEFAULT)
-u / --user : Specify the GitHub user
(default == GENIEMC)
-t / --tag : Specify the HepForge SVN tag
(default == R-2_10_8)
Available: use ./list_hepforge_branches.sh
-b / --branch : Specify the GitHub GENIE branch
(default == R-2_10_8)
-p / --pythia : Pythia version (6 or 8)
(default == 6)
8 is under construction! Not available yet.
-n / --nice : Run make under nice
(default == normal make)
-o / --root : ROOT tag version
(default == v5-34-24)
-s / --https : Use HTTPS checkout from GitHub
(default is ssh)
-c / --force : Archive existing packages and rebuild
(default is to keep the existing area)
-v / --verbose : Install Support packages with verbose mode
turned on.
--svnauthname : HepForge user name (SSH credentialed checkout)
(default is anonymous checkout)
--support-tag : Tag for GENIE Support
(default is R-2_10_6.0)
--no-roomu : build without RooMUHistos (requires Boost)
(default is to use RooMUHistos)
All defaults:
./rub_the_lamp.sh
Produces: R-2_10_8 from HepForge, Pythia6, ROOT v5-34-24
Other examples:
./rub_the_lamp.sh --forge
./rub_the_lamp.sh -f --tag trunk
./rub_the_lamp.sh -g -u GENIEMC --root v5-34-24 -n
Note: Advanced configuration of the support packages may require inspection of
that script.
This script only supports Linux. It may support Mac OSX in the future (we hope).
Checking out Pythia version 8 is an option, but GENIE will not currently build against it. Please specify only Pythia version 6 for now.
Currently, if checking out from GitHub, only 2.8.0 is available. If checking out from HepForge (recommended except for very specific development tasks), you may see the available tags with:
Usage: ./list_hepforge_branches.sh
Sometimes you may run into permissions troubles with https or ssh, so toggle usage
of the -s flag if you are gettting "permission denied" errors.
If the build fails it is important to check the logs for each of the 3rd party
support packages installed under GENIESupport. It is possible you are
missing requirements for those packages to build. ROOT
especially requires a large number of libraries to be installed. See the provisioning
scripts in the Wayfarer project for clues
on libraries your system may be missing.
The most common errors involve log4cpp; it is likely in this case that you are
missing the autoconf tools. In that case, you can install them with a package manager:
sudo apt-get install autoconf(Ubuntu)yum install autoconf(RedHat/SLF)- Download source from GNU and build.
- etc.
This is a bash script, so some errors will likely occur under different shells. If
you get errors, make sure /bin/bash exists and is not a link to a different executable.
If there is a strong desire for a c-shell or some other version of this script, we welcome a translation!
- Gabriel Perdue, Fermilab
- Mathieu Labare, Universiteit Gent
- Tom Van Cuyck, Universiteit Gent
- Kevin McFarland, University of Rochester
- Julia Yarba, Fermilab
- Ryan Hill, Queen Mary University of London
- Martti Nirkko, University of Bern
Please contact Gabe Perdue (perdue "at" fnal.gov) for complex inquiries, etc.
ASCII Art from Chris.com.