This file is located in the FarmTools package. To modify it checkout the
package on fcdflnx3, edit FarmTools/doc/make_release.html and commit
it to CVS.
See CVS
tips for
instructions on how to do this.
It is up to the
production coordinators, offline shifters, and offline operations
manager to keep this up to date. No one else will do it for us.
Please fix problems as they are found. Shifters should report
problems to the production coordinators if they are unsure how to
fix them.
| Building a Patched Version of ProductionExe (for Production Coordinators) |
We would prefer the production farms use a version of ProductionExe from a frozen release such as 5.1.1, but we use patches to save the time and effort involved in creating frozen releases. Patches should only be used when the changes affect a small amount of code and make little or no difference in reconstruction results. Typical changes would be bug fixes that prevent rare crashes and have no effect on events other than the ones that cause crashes. Another typical patch would be a change to errorLogger messages. More significant changes should be approved by the Project Engineer (Liz Sexton) and Offline Operations Manager (Pasha Murat) and coordinated with any other interested people.
ticket cd /cdf/scratch/cdfopr/testRel/5.1.1 source_me relwrite
cd Release/patches cp 5.1.1f.patches 5.1.1g.patches chmod u+w 5.1.1g.patches emacs 5.1.1g.patches & ... edit and save file ... cvs add 5.1.1g.patches cvs commit -m "new patch file 5.1.1g" 5.1.1g.patches cd ../..
# # Eliminate crashes in new data due to lack of silicon # calibration tables. From Jason # TrackingObjects/TrackingObjects/SiData/ChipStatus.hh -r 1.2 TrackingObjects/src/ChipStatus.cc -r 1.4 # # Fix from Kurt to include timeouts # TrackingKal/src/KalZ3DVertexFinder.cc -r 1.20 # # No changes, but this needs to be rebuilt for the ChipStatus changes # TrackingMods/
The lines starting with a "#" are comment lines. Include a brief one or two line comment for each change to remind people what the change was for and who wrote it.
There will be one line for each file modified in the patch. The line starts with the name of the file including its path from the top level of the release. Then one space and a "-r". Then one more space and the version number of the modified file.
There is also a directory shown at the end. This kind of entry is necessary when a package needs to be recompiled as a result of a patch even though no files in the package are modified. This is necessary sometimes when a header file is patched. Note the trailing "/". In general we try to avoid patching header files. Exceptions are made if we know for certain that the header file is only included in a limited number of known places.
Note that there are no spaces at the beginning or end of each line.
If the files modified by this patch were already modified in an earlier patch, you need to go back and comment out the earlier line for the previous patch or patches.
Changes to the cdfopr, FarmTools, Release, and Stntuple packages are not listed in the 5.1.1g.patches file. These packages are not used to build ProductionExe and we are not using the base release version of these files. Listing them as patches in 5.1.1g.patches will cause problems.
bin/Linux2-KCC_4_0/checkout_patches 5.1.1g >& install.5.1.1g.logThe script reads the 5.1.1g.patches file to figure out what to do. If there are errors in that file it will not work properly. There are a few things that must be done before running the script above. The FarmTools and Release package must have been added to the test release and "gmake FarmTools.all" must have been executed. This should already have been done when the test release was created.
If patches from the previous release were already installed into the release, then the script will only install the new patches. If the previous patches were not installed, then it will install all the patches for the release including the previous ones. This is useful if you want to start over and build a new test release from scratch.
Double check that everything is OK. Check the log file you just created. You should see that the new packages were installed first. After the last package completes installing, there should be one line for each file that was checked out and installed in the test release. Check that the correct files were installed and that no other files were unintentionally modified.
This is important and you do not want mistakes so check some more things. Use the following commands to check that the correct packages are present and you have the correct version of the files in the test release.
ls cvs status TrackingObjects/TrackingObjects/SiData/ChipStatus.hh cvs status TrackingObjects/src/ChipStatus.cc cvs status TrackingKal/src/KalZ3DVertexFinder.cc
gmake CalorTimeObjects.clean gmake CalorTimeMods.clean ....
gmake nobin gmake Production.bin gmake FrameMods.bin gmake Stntuple.bin gmake FarmTools.all gmake Stntuple._base USESHLIBS=1 gmake Stntuple._data USESHLIBS=1 gmake Stntuple._obj USESHLIBS=1 gmake Stntuple._alg USESHLIBS=1 gmake Stntuple._ana USESHLIBS=1 gmake Stntuple._geom USESHLIBS=1 gmake Stntuple._loop USESHLIBS=1 gmake Stntuple._mod USESHLIBS=1 gmake Stntuple._val USESHLIBS=1 srt_setup -a SRT_QUAL=maxopt gmake nobin srt_setup -a SRT_QUAL=maxopt gmake Production.bin srt_setup -a SRT_QUAL=maxopt gmake FrameMods.bin
For more information on the CVS and SoftRelTools see CDF Note 3891
Last updated 28 February, 2005 by Mircea Coca
Original Author and maintained by Pasha Murat