Revision: | 1.77 |
Committed: | Wed Mar 2 19:01:10 2011 UTC (14 years, 2 months ago) by fwyzard |
Branch: | MAIN |
CVS Tags: | CMSSW_4_4_5_patch2, CMSSW_4_4_5_patch1, CMSSW_4_4_5, sm120813-44X, CMSSW_4_2_8_SLHChcal6, ecbForCMSSW_4_2_8_SLHChcal6-slc5_amd64_gcc434, CMSSW_4_2_8_SLHChcal5, ecbForCMSSW_4_2_8_SLHChcal5-slc5_amd64_gcc434, CMSSW_4_2_8_SLHCstd2_patch2, CMSSW_4_2_8_SLHCtk3_patch2, CMSSW_4_2_8_SLHChcal2_patch3, daForCMSSW_4_2_8_SLHChcal2_patch3-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHCstd2_patch2-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHCtk3_patch2-slc5_amd64_gcc434, CMSSW_4_2_8_SLHCstd2_patch1, CMSSW_4_2_8_SLHCtk3_patch1, CMSSW_4_2_8_SLHChcal4_patch4, ecbForCMSSW_4_2_8_SLHCtk3_patch1-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHCstd2_patch1-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHChcal4_patch4-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHChcal2_patch3-slc5_amd64_gcc434, CMSSW_4_2_8_SLHChcal4_patch3, daForCMSSW_4_2_8_SLHChcal4_patch3-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHChcal4_patch3-slc5_amd64_gcc434, CMSSW_4_2_8_SLHChcal4_patch2, daForCMSSW_4_2_8_SLHChcal4_patch2-slc5_amd64_gcc434, CMSSW_4_2_8_SLHChcal4_patch1, daForCMSSW_4_2_8_SLHChcal4_patch1-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHChcal4_patch1-slc5_amd64_gcc434, CMSSW_4_2_8_lowpupatch1, daForCMSSW_4_2_8_lpupatch1-slc5_amd64_gcc434, daForCMSSW_4_2_8_lowpupatch1-slc5_amd64_gcc434, CMSSW_4_2_8_patch7, CMSSW_4_1_8_patch10, daForCMSSW_4_1_8_patch10-slc5_amd64_gcc434, CMSSW_4_2_8_SLHCtk3, CMSSW_4_2_8_SLHChcal4, ecbForCMSSW_4_2_8_SLHChcal4-slc5_amd64_gcc434b, ecbForCMSSW_4_2_8_SLHCtk3-slc5_amd64_gcc434, CMSSW_4_2_9_HLT1_bphpatch4, daForCMSSW_4_2_9_HLT1_bphpatch4-slc5_amd64_gcc434, CMSSW_4_2_8_SLHCstd2, ecbForCMSSW_4_2_8_SLHCstd2-slc5_amd64_gcc434b, ecbForCMSSW_4_2_8_SLHCstd2-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHCstd_patch1-slc5_amd64_gcc434, CMSSW_4_2_9_HLT1_bphpatch3, daForCMSSW_4_2_9_HLT1_bphpatch3-slc5_amd64_gcc434, CMSSW_4_2_8_SLHCtk_patch2, CMSSW_4_2_8_SLHChcal2_patch2, CMSSW_4_2_8_SLHC2_patch2, ecbForCMSSW_4_2_8_SLHCtk_patch2-slc5_amd64_gcc434d, ecbForCMSSW_4_2_8_SLHCtk_patch2-slc5_amd64_gcc434c, ecbForCMSSW_4_2_8_SLHCtk_patch2-slc5_amd64_gcc434b, ecbForCMSSW_4_2_8_SLHC2_patch2-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHCtk_patch2-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHChcal2_patch2-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHChcal4-slc5_amd64_gcc434, CMSSW_4_2_8_SLHCtk2, daForCMSSW_4_2_8_SLHCtk2-slc5_amd64_gcc434, CMSSW_4_2_8_SLHChcal3, CMSSW_4_2_8_SLHCstd, daForCMSSW_4_2_8_SLHChcal3-slc5_amd64_gcc434, daForCMSSW_4_2_8_SLHCstd-slc5_amd64_gcc434, davidlt_20120419_1945-CMSSW_4_2_8_SLHChcal3-gcc434, davidlt_20120419_1841-CMSSW_4_2_8_SLHCstd-gcc434, davidlt_20120419_1841-slc5_amd64_gcc434b, ecbForCMSSW_4_2_8_SLHCtk2-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHChcal3-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHCstd-slc5_amd64_gcc434b, ecbForCMSSW_4_2_8_SLHCstd-slc5_amd64_gcc434, CMSSW_4_2_8_SLHC2_patch1, CMSSW_4_2_8_SLHCtk_patch1, CMSSW_4_2_8_SLHChcal2_patch1, daForCMSSW_4_2_8_SLHC2_patch1-slc5_amd64_gcc434, daForCMSSW_4_2_8_SLHChcal2_patch1-slc5_amd64_gcc434, daForCMSSW_4_2_8_SLHCtk_patch1-slc5_amd64_gcc434, CMSSW_4_2_9_HLT1_bphpatch2, daForCMSSW_4_2_9_HLT1_bphpatch2-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHC2_patch1-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHChcal2_patch1-slc5_amd64_gcc434, ecbFor428slhctkp1, CMSSW_4_2_9_HLT1_bphpatch1, daForCMSSW_4_2_9_HLT1_bphpatch1-slc5_amd64_gcc434, davidlt_20120404_1419-42X-HLT1-bph1, CMSSW_4_1_8_patch9, CMSSW_4_4_4-ports, CMSSW_4_4_4, sm20120309, sm20120309-ports, TW20120302a, sm20120228-44X-ports, sm20120228-44X, sm120220-ports, sm120220, CMSSW_4_4_3_patch1-ports, CMSSW_4_4_3_patch1, vs20120215-50X, vs20120215-50X-ports, vs20120215-44X, vs20120215-44X-ports, da20120214-50X-ports, da20120214-50X, CMSSW_5_0_1_patch3, daForCMSSW_5_0_1_patch3b-slc5_amd64_gcc434, daForCMSSW_5_0_1_patch3-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHChcal2-slc5_amd64_gcc434, CMSSW_4_1_8_patch8, CMSSW_5_0_1_patch2, daForCMSSW_5_0_1_patch2c-slc5_amd64_gcc434, daForCMSSW_5_0_1_patch2b-slc5_amd64_gcc434, daForCMSSW_5_0_1_patch2-slc5_amd64_gcc434, da20120206-50X, da20120206-50X-ports, da20120205-44X-ports, da20120205-44X, da20120205-50X-ports, da20120205-50X, CMSSW_4_2_8_SLHCtk, CMSSW_5_0_1_patch1, vskarupeForCMSSW_4_2_8_SLHCtkd, vskarupeForCMSSW_4_2_8_SLHCtkc, da20120201-42X-ports, da20120201-42X, vskarupeForCMSSW_4_2_8_SLHCtkb, vskarupeForCMSSW_4_2_8_SLHCtk, CMSSW_5_0_0_patch2, CMSSW_4_2_8_p7rootfix, ecbFor428slhcstd, daFor428p7rootfix-ports, daFor428p7rootfix, CMSSW_5_0_1-ports, CMSSW_5_0_1, da20120129-50X-ports, da20120129-50X, ecbFor428slhctk, ebFor428slhc1p1, CMSSW_4_4_3-ports, CMSSW_4_4_3, sm120124-ports, da20120123-50X-ports, da20120123-50X, da20120123-44X-ports, da20120123-44X, CMSSW_5_0_0_patch1, CMSSW_4_4_2_p10JEmalloc, da20120112-50X-ports, da20120112-50X, da20120110-50X-ports, da20120110-50X, CMSSW_4_1_8_patch7, da20120108-52X-ports, da20120108-52X, da20120106-52X-ports, da20120106-52X, CMSSW_5_0_0_g4emtest, CMSSW_4_4_2_patch10-ports, CMSSW_4_4_2_patch10, CMSSW_5_0_0-ports, azFor442patch10gcc451, azFor442patch10, da20111220-50X-ports, da20111220-50X, da20111219-50X-ports, da20111219-50X, sjgFor510pre1, sjgFor500-ports, CMSSW_5_0_0, sjgFor500, az20111214-50X-ports, az20111214-50X, CMSSW_4_2_8_SLHChcal, CMSSW_4_4_2_patch9-ports, CMSSW_4_4_2_patch9, vsFor442patch9gcc451, vsFor442patch9, ecbFor428slhchcal, vs20111213-50X-ports, vs20111213-50X, fwFor500pre7-online, CMSSW_4_4_2_patch8-ports, CMSSW_4_4_2_patch8, CMSSW_5_0_0_pre7pythia424, sjgFor500pre7p424b, sjgFor500pre7p424, CMSSW_4_1_8_patch6, CMSSW_5_0_0_pre7, sjgFor500pre7-ports, sjgFor500pre7, da20111205-50X-ports, da20111205-50X, sjg20111204b-50X, sjg20111204-50X, da20111202-50X-ports, da20111202-50X, vs20111201-50X-ports, vs20111201c-50X, vs20111201temp-50X, vs20111201b-50X, CMSSW_4_2_4_g94p03c, vs20111201-50X, da20111201c-50X-ports, da20111201b-50X-ports, da20111201b-50X, da20111201-50X, vs20111130-42X-ports, vs20111130-42X, vs20111130-44X-ports, vs20111130-44X, da20111130-50X-ports, da20111130-50X, CMSSW_4_2_8_SLHC1, CMSSW_4_2_8_SLHC2, CMSSW_5_0_0_pre6g494, da20111128-50X-ports, da20111128-50X, sjgFor500pre6gcc494, az20111126-50X-ports, az20111126-50X, sm20111126-50X-ports, sm20111126-50X, az20111125-50X-ports, az20111125-50X, az20111124-50X-ports, az20111124-50X, az20111123-50X-ports, az20111123-50X, CMSSW_4_4_2_patch7-ports, CMSSW_4_4_2_patch7, azFor442patch7gcc451, azFor442patch7gcc434, CMSSW_4_1_8_patch5, azFor418patch5, ecbFor428slhc1, CMSSW_5_0_0_pre6, CMSSW_5_0_0_pre6-ports, ecbFor428slhc2, sjgFor500pre6-ports, sjgFor500pre6, sm20111121-50X, sm20111121-50X-ports, az20111121-50X-ports, CMSSW_4_4_2_patch6-ports, CMSSW_4_4_2_patch6, az20111118b-50X-ports, az20111118-50X-ports, azFor442patch6gcc451, azFor442patch6gcc434, az20111117b-50X-ports, az20111117b-50X, az20111117-50X-ports, az20111117-50X, az20111116-50X-ports, az20111116-50X, CMSSW_4_4_2_onlpatch2_ONLINE, az20111115b-50X-ports, az20111115-50X-ports, az20111115-50X, CMSSW_4_1_8_patch4, az20111110-42X-ports, CMSSW_5_0_0_pre5_root532rc1, azFor500pre5r532rc1, az20111111b-50X, az20111111-50X, CMSSW_4_4_2_patch5-ports, CMSSW_4_4_2_patch5, azFor442patch5gcc451, azFor442patch5gcc434, CMSSW_4_4_2_patch4-ports, CMSSW_4_4_2_patch4, azFor442patch4gcc451, azFor442patch4gcc434, az20111110-42X, az20111109b-44X, az20111109b-44X-ports, az20111109-44X-ports, az20111109-44X, CMSSW_4_4_2_patch3-ports, CMSSW_4_4_2_patch3, azFor442patch3gcc451, azFor442patch3gcc434, az20111108-50X-ports, az20111108-50X, CMSSW_4_2_3_SLHC4_patch1, CMSSW_4_4_2_patch2-ports, CMSSW_4_4_2_patch2, CMSSW_5_0_0_pre5-ports, CMSSW_5_0_0_pre5, sjgFor500pre5-ports, sjgFor500pre5, CMSSW_4_4_2_patch1-ports, CMSSW_4_4_2_patch1, azFor442patch1gcc451, azFor442patch1gcc434, CMSSW_4_1_8_patch3, bld_1320341101_PHEDEX-combined-agents_slc5_amd64_gcc434, fwFor500pre4-online, az20111102b-50X-ports, az20111102b-50X, az20111102-50X, bld_1320248863_PHEDEX-combined-agents_slc5_amd64_gcc434, CMSSW_4_4_2_onlpatch1_ONLINE, CMSSW_4_4_2_ONLINE, az20111031-42X-ports, az20111031-42X, az20111031c-50X-ports, az20111031c-50X, az20111031b-50X, az20111031-50X, ebFor423slhc4p1, CMSSW_4_4_2-ports, CMSSW_4_4_2, azFor442gcc451, azFor442gcc434, CMSSW_5_0_0_pre4-ports, CMSSW_5_0_0_pre4, az20111027b-50X-ports, az20111027b-50X, az20111027-50X-ports, az20111027-50X, sjgFor500pre4-ports, sjgFor500pre4, az20111026-50X-ports, az20111026-50X, az20111025-50X-ports, az20111025-50X, sm20111025-50X-ports, sm20111025-50X, CMSSW_4_2_9_HLT3_onlpatch4_ONLINE, az20111024-50X-ports, az20111024-50X, az20111022-50X, sjg111021b-50X-ports, sjg111021d-50X, sjg111021c-50X, sjg111021-50X-ports, sjg111021b-50X, sjg111021-50X, CMSSW_4_2_9_HLT3_onlpatch3_ONLINE, CMSSW_4_4_0_patch4-ports, CMSSW_4_4_0_patch4, azFor440patch4gcc451, azFor440patch4gcc434, CMSSW_5_0_0_pre3, CMSSW_5_0_0_pre3-ports, CMSSW_4_1_8_patch2, sjgFor500pre3-ports, sjgFor500pre3, az20111014-50X-ports, az20111014-50X, CMSSW_4_4_1_ONLINE, CMSSW_4_2_9_HLT3_hltpatch3, CMSSW_4_4_1-ports, CMSSW_4_4_1, az20111012-50X-ports, az20111012-50X, azFor441gcc451, azFor441gcc434, az20111011b-50X-ports, az20111011b-50X, az20111011a-50X-ports, az20111011a-50X, az20111011-50X, TW20111010c, CMSSW_4_2_9_HLT3_onlpatch2_ONLINE, TW20111010b, TW20111010a, CMSSW_5_0_0_pre2, CMSSW_5_0_0_pre2-ports, sjgFor500pre2-ports, sjgFor500pre2, CMSSW_4_4_0_patch3-ports, CMSSW_4_4_0_patch3, CMSSW_4_2_8_patch6, CMSSW_4_2_8_patch6-ports, azFor440patch3gcc451, azFor440patch3gcc434, az20111007-50X-ports, az20111007-50X, CMSSW_4_4_0_patch2-ports, CMSSW_4_4_0_patch2, azFor440patch2gcc451, azFor440patch2gcc434, builder_2011-10-04_16-25-49_das, bld_1317721310_stagemanager-agent_slc5_amd64_gcc434, CMSSW_4_2_4_g94p02, CMSSW_4_2_4_g93p01, CMSSW_4_2_9_HLT3_hltpatch1, CMSSW_4_2_9_HLT3_hltpatch2, CMSSW_4_2_9_HLT3_onlpatch1_ONLINE, CMSSW_4_2_9_HLT3_ONLINE, CMSSW_4_4_0_patch1-ports, CMSSW_4_4_0_patch1, azFor440patch1gcc451a, azFor440patch1gcc434a, azFor440patch1gcc451, azFor440patch1gcc434, CMSSW_4_2_8_patch5-ports, CMSSW_4_2_8_patch5, builder_2011-09-30_15-50-42_PHEDEX-combined-agents, CMSSW_5_0_0_pre1-ports, CMSSW_4_2_9_HLT3-ports, CMSSW_4_2_9_HLT3, sjgFor500pre1-ports, az20110929-50X-ports, builder_2011-09-29_13-07-19_cmsweb, builder_2011-09-29_12-57-04_cmsweb, HG1109e, builder_2011-09-29_09-05-43_crab-server3, builder_2011-09-29_09-05-42_asyncstageout, builder_2011-09-29_05-49-40_wmagent, az20110928a-50X-ports, az20110928a-50X, builder_2011-09-28_19-05-55_PHEDEX-combined-agents, builder_2011-09-28_16-45-33_das, builder_2011-09-28_16-05-45_das, TW20110928b, builder_2011-09-28_12-04-32_stagemanager-agent, builder_2011-09-28_12-04-32_stagemanager, az20110928-50X-ports, TW20110928a, az20110928-50X, builder_2011-09-28_11-09-39_stagemanager-agent, builder_2011-09-27_17-51-30_reqmon, builder_2011-09-26_18-50-48_stagemanager-agent, builder_2011-09-26_18-50-48_stagemanager, az20110926-50X-ports, HG1109d, CMSSW_5_0_0_pre1, sjgFor500pre1b, sjgFor500pre1, builder_2011-09-23_12-46-40_cmsweb, builder_2011-09-23_12-37-00_cmsweb, builder_2011-09-23_12-09-06_wmagent, az20110922c-50X, CMSSW_4_4_0-ports, CMSSW_4_4_0, az20110922c-50X-ports, azFor440gcc451, azFor440gcc434, az20110922b-50X-ports, az20110922b-50X, CMSSW_4_2_9_HLT2_hltpatch1, az20110922a-50X-ports, az20110922a-50X, az20110922-50X, builder_2011-09-22_12-03-59_asyncstageout, builder_2011-09-22_11-25-57_crab-server3, builder_2011-09-22_11-24-38_asyncstageout, builder_2011-09-22_09-46-05_cmsweb, builder_2011-09-22_09-36-11_cmsweb, builder_2011-09-22_05-26-44_wmagent, builder_2011-09-21_18-06-30_asyncstageout, builder_2011-09-21_15-26-46_wmagent, builder_2011-09-21_12-53-09_crab-server3, builder_2011-09-21_12-53-09_asyncstageout, builder_2011-09-21_12-47-08_crab-server3, builder_2011-09-21_12-45-23_asyncstageout, CMSSW_4_2_9_HLT2_onlpatch1_ONLINE, CMSSW_4_2_9_HLT2_ONLINE, az20110921-44X-ports, az20110921-44X, CMSSW_4_2_9_HLT2, CMSSW_4_2_9_HLT2-ports, builder_2011-09-20_21-03-55_regsvc, az20110920-50X-ports, az20110920-50X, builder_2011-09-19_17-53-10_cmsweb, builder_2011-09-19_12-05-14_workqueue, az20110918-50X-ports, az20110918-50X, az20110916c-50X-ports, az20110916c-50X, az20110916b-50X, az20110916a-50X, az20110916-50X, CMSSW_4_2_8_patch4-ports, CMSSW_4_2_8_patch4, builder_2011-09-15_17-45-48_PHEDEX-combined-agents, CMSSW_4_2_9_HLT1_patch1-ports, CMSSW_4_2_9_HLT1_patch1, HG1109c-osx, az20110914-44X-ports, az20110914-44X, builder_2011-09-14_13-06-06_cmsweb, HG1109c-bootstrap, builder_2011-09-13_22-04-02_filemover, TW20110913b, TW20110913a, az20110913-44X-ports, az20110913-44X, builder_2011-09-13_12-46-32_cmsweb, HG1109c, LT20110913a, builder_2011-09-13_10-10-02_cmsweb, az20110912-50X-ports, az20110912-50X, LT20110912a, CMSSW_4_2_9_HLT1_ONLINE, az20110912-44X-ports, az20110912-44X, TW20110911a, sm20110912-50X-ports, sm20110912-50X, CMSSW_4_4_0_pre10_ONLINE, fwFor440pre10online, CMSSW_4_4_0_pre10-ports, CMSSW_4_4_0_pre10, azFor440pre10gcc451, azFor440pre10gcc434, TW20110909d, TW20110909c, builder_2011-09-09_17-05-31_dbs3-client, az20110909b-44X-ports, az20110909b-44X, TW20110909b, az20110909a-44X-ports, az20110909a-44X, az20110909-44X-ports, az20110909-44X, TW20110909a, az20110908-50X-ports, az20110908-50X, builder_2011-09-08_22-46-50_reqmgr, az20110907c-50X, az20110907c-50X-ports, CMSSW_4_1_8_patch1, HG1109b, builder_2011-09-07_19-00-35_cmsweb, az20110907b-50X, sjgFor418p1a, sjgFor418p1, az20110906b-44X, az20110906a-44X, sm20110907-50X-ports, sm20110907-50X, builder_2011-09-06_22-45-07_globalmonitor, builder_2011-09-06_16-09-09_stagemanager-agent, builder_2011-09-06_15-53-16_stagemanager-agent, az20110906a-50X-ports, az20110906-44X-ports, az20110906-44X, az20110906-50X-ports, az20110904-50X-ports, az20110904-50X, az20110902b-50X-ports, az20110902b-50X, az20110902a-50X, az20110902-50X-ports, az20110902-50X, CMSSW_4_2_8_patch3-ports, CMSSW_4_2_8_patch3, azFor428patch3gcc451, azFor428patch3gcc434, builder_2011-09-01_12-14-12_wmagent, az20110831-50X-ports, az20110831-50X, ebFor423slhc2p1, HG1109a, CMSSW_4_4_0_pre9, CMSSW_4_4_0_pre9-ports, builder_2011-08-29_19-08-40_cmsweb, azFor440pre9gcc451, azFor440pre9gcc434, az20110827-50X-ports, az20110827-50X, builder_2011-08-27_00-05-05_asyncstageout, CMSSW_4_2_9_HLT1_hltpatch1-ports, CMSSW_4_2_9_HLT1_hltpatch1, builder_2011-08-26_19-05-27_crab-server3, az20110826b-50X-ports, az20110826b-50X, az20110826a-50X, az20110826-50X, CMSSW_4_2_7_hinpatch1_ONLINE, az20110825-50X-ports, az20110825-50X, CMSSW_4_1_8_FWLITE, CMSSW_4_1_8, azFor418gcc434, az20110823-50X-ports, az20110823-50X, CMSSW_4_2_8_patch2-ports, CMSSW_4_2_8_patch2, az20110821-44X-ports, az20110821-44X, CMSSW_4_2_9_HLT1-ports, CMSSW_4_2_9_HLT1, az20110818a-50X-ports, az20110818a-50X, az20110818-50X-ports, az20110818-50X, CMSSW_4_2_9_HLT-ports, CMSSW_4_2_9_HLT, sm20110816-42X, sm20110816-42X-ports, builder_2011-08-16_12-09-37_cmsweb, HG1108b, CMSSW_4_4_0_pre8-ports, CMSSW_4_4_0_pre8, azFor440pre8gcc451, azFor440pre8gcc434, sjg110813b-50X-ports, sjg110813b-50X, sjg110813a-50X-ports, sjg110813a-50X, builder_2011-08-12_22-56-45_cmsweb, CMSSW_4_2_7_onlpatch3_ONLINE, CMSSW_4_2_7_hltpatch3, CMSSW_4_1_7_patch3, az20110809b-50X-ports, az20110809b-50X, az20110809a-50X, az20110809a-44X-ports, az20110809a-44X, az20110809-50X-ports, az20110809-50X, az20110809-44X-ports, az20110809-44X, TW20110808a, CMSSW_4_2_8_patch1-ports, CMSSW_4_2_8_patch1, CMSSW_4_4_0_pre7_g494p02-ports, CMSSW_4_4_0_pre7_g494p02, azFor440p7g494p02-g451, azFor440p7g494p02, az20110804-44X-ports, az20110804-44X, builder_2011-08-04_18-42-50_stagemanager-agent, builder_2011-08-04_17-25-36_das, builder_2011-08-04_13-25-47_cmsweb, sjg110804-50X-ports, sjg110804-50X, sjg110803-50X-ports, sjg110803-50X, builder_2011-08-02_16-19-02_wmagent, az20110802-42X-ports, az20110802-42X, CMSSW_4_1_7_patch2, CMSSW_4_4_0_pre7-ports, CMSSW_4_4_0_pre7, azFor440pre7gcc451, azFor440pre7gcc434, az20110801-44X, az20110801-44X-ports, CMSSW_4_4_0_pre6-ports, CMSSW_4_4_0_pre6, azFor440pre6gcc451, azFor440pre6gcc434, TW20110729a, az20110729-44X-ports, az20110729-44X, CMSSW_4_2_8-ports, CMSSW_4_2_8, CMSSW_4_2_7_onlpatch2_ONLINE, CMSSW_4_2_7_hltpatch2, azFor428gcc451, azFor428gcc434, TW20110728d, TW20110728c, TW20110728b, TW20110728a, builder_2011-07-28_00-46-23_cmsweb, DBS_2_1_6-pre1, builder_2011-07-27_18-04-14_reqmgr, HG1108a, az20110726a-44X-ports, az20110726a-44X, az20110726-44X-ports, az20110726-44X, az20110725c-44X-ports, az20110725c-44X, az20110725b-44X-ports, az20110725b-44X, az20110725a-44X-ports, az20110725-44X-ports, az20110725a-44X, az20110725-44X, az20110723a-44X-ports, az20110723a-44X, az20110723-44X, CMSSW_4_2_7_hltpatch1, az20110720-42X-ports, az20110720-42X, CMSSW_4_2_7_patch2, CMSSW_4_2_7_patch2-ports, azFor427patch2gcc451, azFor427patch2gcc434, CMSSW_4_4_0_pre5-ports, CMSSW_4_4_0_pre5, azFor440pre5gcc451, azFor440pre5gcc434, az20110718-42X-ports, az20110718-42X, az20110715a-44X-ports, az20110715a-44X, az20110715-44X, CMSSW_4_2_7_patch1, CMSSW_4_2_7_patch1-ports, azFor427patch1g451, azFor427patch1, az20110714a-44X-ports, az20110714a-44X, az20110714-44X-ports, az20110714-44X, CMSSW_4_2_7_onlpatch1_ONLINE, CMSSW_4_2_7_ONLINE, CMSSW_4_2_7-ports_FWLITE, CMSSW_4_2_7-ports, CMSSW_4_2_7_FWLITE, CMSSW_4_2_7, azFor427g451, azFor427g434, az20110713a-44X-ports, az20110713a-44X, az20110713-44X, ebFor423slhc4, CMSSW_4_1_7_patch1, az20110712c-44X-ports, az20110712c-44X, az20110712b-44X-ports, az20110712a-44X, az20110712-42X-ports, az20110712-42X, ge20110712-44X-ports, az20110712-44X-ports, az20110712-44X, CMSSW_4_2_6_onlpatch1_ONLINE, az20110711-43X-ports, az20110711-43X, ge20110711-44X, ge20110711-44X-ports, ge20110710b-44X, ge20110710b-44X-ports, ge20110710-44X, ge20110710-44X-ports, HG1108a-osx, HG1108a-bootstrap, ge20110709b-44X-ports, ge20110709-44X-ports, ge20110708-44X-ports, CMSSW_4_4_0_pre4-ports_FWLITE, CMSSW_4_4_0_pre4-ports, CMSSW_4_4_0_pre4_FWLITE, CMSSW_4_4_0_pre4, azFor440p4g451, azFor440p4g434, CMSSW_4_3_0_dqmpatch2-ports, CMSSW_4_3_0_dqmpatch2, sjgFor430dqmp2-ports, sjgFor430dqmp2, CMSSW_4_2_6_ONLINE, CMSSW_4_2_6-ports_FWLITE, CMSSW_4_2_6-ports, CMSSW_4_2_6_FWLITE, CMSSW_4_2_6, az20110706-44X-ports, az20110706-44X, azFor426gcc451, azFor426gcc434, az20110705-42X-ports, az20110705-42X, az20110701-44X-ports, az20110701-44X, CMSSW_4_4_0_pre3-ports, CMSSW_4_4_0_pre3, azFor440pre3gcc451, azFor440pre3gcc434, CMSSW_4_3_0_dqmpatch1-ports, CMSSW_4_3_0_dqmpatch1, az20110629-44X-ports, az20110629-44X, sjgFor430dqmp1, sjgFor430dqmp1-ports, sjfFor430dqmp1-ports, sjfFor430dqmp1, az20110627a-44X-ports, az20110627-44X-ports, az20110627-44X, CMSSW_4_3_0-ports, CMSSW_4_3_0, sjgFor430-ports, sjgFor430, CMSSW_4_4_0_pre2_FWLITE, CMSSW_4_4_0_pre2, CMSSW_4_4_0_pre2-ports_FWLITE, CMSSW_4_4_0_pre2-ports, azFor440pre2gcc451, azFor440pre2gcc434, CMSSW_4_2_5_hltpatch1, CMSSW_4_2_5_onlpatch1_ONLINE, CMSSW_4_2_5_ONLINE, fwFor425online, sm20110622a-44X-ports, sm20110622a-43X-ports, sm20110622a-43X, sm20110622a-44X, CMSSW_4_2_4_hltpatch1, sm20110622-43X-ports, sm20110622-43X, sm20110622-44X-ports, sm20110622-44X, CMSSW_4_2_5, CMSSW_4_2_5-ports, CMSSW_4_1_7, sm20110621-42X-ports, sm20110621-42X, sjgFor425b-ports, sjgFor425b, sjg110620a, sm20110620-42X-ports, sm20110620-42X, sjgFor425-ports, sjgFor425, sm20110620-44X, sm20110620-44X-ports, fw20110617-41X, sm20110616-44X-ports, sm20110616-44X, CMSSW_4_4_0_pre1-ports, CMSSW_4_4_0_pre1, az20110615-43X-ports, az20110615-43X, azFor20110615-43X, azFor20110615-43X-ports, azFor440pre1gcc451, azFor440pre1, sm20110615-43X-ports, sm20110615-43X, sm20110615-42X-ports, sm20110615-42X, sjgFor430pre6dqmIO-ports, sjgFor430pre6dqmIO, sm20110614b-44X-ports, sm20110614b-44X, sm20110614a-44X-ports, sm20110614a-44X, sm20110614-44X-ports, sm20110614-44X, sm20110607a-44X, sm20110607a-44X-ports, CMSSW_4_3_0_pre7, CMSSW_4_3_0_pre7-ports, sjgFor430pre6dp1, sjgFor430pre6dp1-ports, sjgFor430pre7, sjgFor430pre7-ports, sm20110610-44X-ports, sm20110610-44X, sm20110609-43X-ports, sm20110609-43X, CMSSW_4_2_4_patch1-ports, CMSSW_4_2_4_patch1, sm20110608-44X-ports, sm20110608-44X, fwFor424online3, fwFor424online2, sm20110607-44X, sm20110607-44X-ports, sm20110606a-ports, CMSSW_4_2_4_onlpatch1_ONLINE, CMSSW_4_2_4_ONLINE, fwFor424online, sm20110606a, CMSSW_4_2_3_SLHC3, sm20110606, CMSSW_4_2_4-ports_FWLITE, CMSSW_4_2_4-ports, CMSSW_4_2_4_FWLITE, CMSSW_4_2_4, azFor424fgcc451, azFor424fgcc434, azFor424g434, ebFor423slhc3, az20110601-for42X-ports, az20110601-for42X, azFor424agcc451, azFor424agcc434, CMSSW_4_2_3_SLHC2, azFor424gcc451, for423SLHC2, azFor424gcc434, CMSSW_4_1_6_patch1, CMSSW_4_1_6, CMSSW_4_2_3_patch5-ports, CMSSW_4_2_3_patch5, azFor423patch5gcc451, azFor423patch5gcc434, azFor423patch4agcc434, CMSSW_4_2_3_patch4-ports, CMSSW_4_2_3_patch4, azFor423patch4gcc451, azFor423patch4gcc434, CMSSW_4_3_0_pre6, CMSSW_4_3_0_pre6-ports, sjgFor430pre6-ports, sjgFor430pre6, sm20110528-for42X-ports, sm20110528-for42X, sm20110528-for43X, sm20110528-for43X-ports, sm20110527-for43X-ports, CMSSW_4_2_3_patch3-ports, CMSSW_4_2_3_patch3, azFor423patch3gcc451, azFor423patch3gcc434, sm20110523a-for43X-ports, sm20110523a-for43X, sm20110523-for43X, sm20110523-for43X-ports, CMSSW_4_2_3_onlpatch4_ONLINE, sm20110516-for43X-ports, sm20110516-for43X, CMSSW_4_2_3_patch2-ports, CMSSW_4_2_3_patch2, azFor423patch2gcc451, azFor423patch2gcc434, sjg110514a-for43x-ports, sjg110514a-for43x, sm20110514a-for43X-ports, sm20110514a-for43X, ge20110514-for43X-ports, sm20110514-for43X, sm20110514-for43X-ports, CMSSW_4_2_3_onlpatch3_ONLINE, sjg110513a-for43X-ports, sjg110513a-for43X, CMSSW_4_2_3_onlpatch2_ONLINE, azFor423onlpatch2, CMSSW_4_3_0_pre5-ports, CMSSW_4_3_0_pre5, sjgFor430pre5, sjgFor430pre5-ports, CMSSW_4_2_3_patch1, CMSSW_4_2_3_patch1-ports, azFor423patch1gcc451, azFor423patch1gcc434, CMSSW_4_2_3_SLHC_pre1, ebFor423slhcPre1, CMSSW_4_2_3_onlpatch1_ONLINE, CMSSW_4_2_3_ONLINE, fwFor423online, sm20110509a-for43X, sm20110509a-for43X-ports, sm20110509-for43X, CMSSW_4_2_2_patch2, CMSSW_4_2_2_patch2-ports, fwFor416, fwFor416sherpa123, CMSSW_4_2_3, CMSSW_4_2_3_FWLITE, CMSSW_4_2_3-ports_FWLITE, CMSSW_4_2_3-ports, azFor423gcc434_fwlite, azFor423g451, azFor423gcc451, azFor423gcc434, sm20110505-for42X-ports, sm20110505-for42X, sm20110504-for43X, sm20110504-for43X-ports, sm20110504-for42X-ports, sm20110504-for42X, sm20100504-ports, sm20100504, CMSSW_4_3_0_pre4-ports_FWLITE, CMSSW_4_3_0_pre4_FWLITE, CMSSW_4_3_0_pre4-ports, CMSSW_4_3_0_pre4, CMSSW_4_2_2_patch1-ports, CMSSW_4_2_2_patch1, azFor430pre4gcc451, azFor430pre4gcc434, CMSSW_4_2_1_patch2-ports, CMSSW_4_2_1_patch2, azFor421patch2gcc451, azFor421patch2gcc434, CMSSW_4_2_2_SLHC_pre1, pe20110427a-for43X-ports, pe20110427a-for43X, pe20110426a-for43X-ports, pe20110426a-for43X, ebFor422slhcPre1, CMSSW_4_2_2-ports_FWLITE, CMSSW_4_2_2_FWLITE, CMSSW_4_2_2-ports, CMSSW_4_2_2, azFor422gcc451, azFor422gcc434, azFor422g451, azFor422g434, CMSSW_4_2_1_patch1-ports, CMSSW_4_2_1_patch1, CMSSW_4_1_4_patch3, azFor421patch1gcc451a, azFor421patch1gcc434a, CMSSW_4_1_5, CMSSW_4_1_4_patch2, azFor421patch1gcc451, azFor421patch1gcc434, azFor421patch1g451, azFor421patch1g434, pe20110420b-for43X-ports, pe20110420b-for43X, pe20110420a-for43X, sjg110420a-ports, sjg110420a, pe20110419a-for43X-ports, pe20110419a-for43X, pe20110418a-for43X-ports, pe20110418a-for43X, CMSSW_4_3_0_pre3, CMSSW_4_3_0_pre3-ports, sjgFor430pre3-ports, sjgFor430pre3, sjg110417a-for43X-ports, sjg110417a-for43X, sm20110415-for43X, sm20110415-for43X-ports, CMSSW_4_2_1-ports_FWLITE, CMSSW_4_2_1-ports, CMSSW_4_2_1_FWLITE, CMSSW_4_2_1, azFor421g451, azFor421g434, CMSSW_4_1_4_onlpatch1_ONLINE, CMSSW_4_1_4_ONLINE, fwFor414p2, pe20110413a-for43X-ports, pe20110413a-for43X, fwFor414online, sm110412-for43X, pe20110412a-for43X, pe20110411a-for43X, CMSSW_4_1_4_patch1, sm110408, CMSSW_4_2_0-ports_FWLITE, CMSSW_4_2_0_FWLITE, CMSSW_4_3_0_pre2, CMSSW_4_2_0-ports, CMSSW_4_2_0, azFor420g451-fwlite, azFor420g434-fwlite, azFor420p434-fwlite, azFor420gcc451, azFor420gcc434, azFor420g451, azFor420g434, CMSSW_4_3_0_pre2-ports, CMSSW_4_1_4, sjgFor430pre2-ports, sjgFor430pre2, pe20110331b-for43X-ports, pe20110331b-for43X, pe20110331a-for43X-ports, pe20110331a-for43X, fwFor413op1, ge20110430-for43X-ports, CMSSW_4_1_3_patch3, CMSSW_4_1_2_patch2, pe20110328a-for43X-ports, pe20110328a-for43X, CMSSW_4_2_0_pre8_FWLITE, sjgFor430pre1-fwlite, CMSSW_4_3_0_pre1-ports, CMSSW_4_3_0_pre1, azFor420p8_fwlite, sjgFor430pre1-ports, pe20110324b-for43X-ports, pe20110324b-for43X, fwFor413xdaq11b6online, CMSSW_4_1_3_ONLINE, sjgFor430pre1, fwFor413p2, pe20110324a-for43X-ports, pe20110324a-for43X, CMSSW_4_2_0_pre8-ports, CMSSW_4_2_0_pre8, azFor420p8g451, azFor420p8g434, CMSSW_4_1_3_patch1, fwFor412op1, fwFor413online, pe20110318b-for4XY-ports, CMSSW_4_1_3, pe20110318a-for4XY-ports, fwFor413, pe20110317a-for4XY-ports, pe20110317a-for4XY, pe20110315a-for4XY-ports, pe20110315a-for4XY, pe20110310a-for4XY-ports, pe20110310a-for4XY, CMSSW_4_1_1_onlpatch2_ONLINE, CMSSW_4_1_2_ONLINE, CMSSW_4_1_1_onlpatch1_ONLINE, CMSSW_4_1_1_ONLINE, fwFor411online |
Changes since 1.76: | +3 -3 lines |
Log Message: | use max-age=0 instead of no-cache for curl/wget |
# | User | Rev | Content |
---|---|---|---|
1 | eulisse | 1.29 | #!/bin/bash |
2 | fwyzard | 1.77 | # Revision: $Revision: 1.76 $ |
3 | eulisse | 1.69 | |
4 | set -e | ||
5 | eulisse | 1.1 | |
6 | if [ X"$(id -u)" = X0 ]; then | ||
7 | echo "*** CMS SOFTWARE INSTALLATION ABORTED ***" 1>&2 | ||
8 | echo "CMS software cannot be installed as the super-user." 1>&2 | ||
9 | echo "(We recommend reading any standard unix security guide.)" 1>&2 | ||
10 | exit 1 | ||
11 | fi | ||
12 | |||
13 | eulisse | 1.57 | if [ "X`printf hasprintf 2>/dev/null`" = Xhasprintf ]; then |
14 | echo_n() { printf "%s" ${1+"$@"}; } | ||
15 | elif [ "X`echo -n`" = "X-n" ]; then | ||
16 | echo_n() { echo ${1+"$@"}"\c"; } | ||
17 | eulisse | 1.52 | else |
18 | eulisse | 1.57 | echo_n() { echo -n ${1+"$@"}; } |
19 | eulisse | 1.52 | fi |
20 | |||
21 | eulisse | 1.57 | cleanup_and_exit () { |
22 | exitcode=$1 | ||
23 | exitmessage=$2 | ||
24 | [ "X$exitmessage" = X ] || { echo && echo $exitmessage 1>&2; } | ||
25 | [ "X$debug" = Xtrue ] && exit $exitcode | ||
26 | [ "X$tempdir" = X ] || [ -d $tempdir ] && rm -rf $tempdir | ||
27 | [ "X$DOWNLOAD_DIR" = X ] || [ -d $DOWNLOAD_DIR ] && rm -rf $DOWNLOAD_DIR | ||
28 | [ "X$importTmp" = X ] || [ -d $importTmp ] && rm -rf $importTmp | ||
29 | exit $exitcode | ||
30 | } | ||
31 | |||
32 | download_method= | ||
33 | fwyzard | 1.77 | download_curl () { curl -f -H "Cache-Control: max-age=0" -q -s "$1" -o "$2.tmp" && mv "$2.tmp" "$2"; } |
34 | download_wget () { (wget --no-check-certificate --header="Cache-Control: max-age=0" -q -O "$2.tmp" "$1" 2>/dev/null || wget -q -O "$2.tmp" "$1") && mv "$2.tmp" "$2"; } | ||
35 | eulisse | 1.57 | download_none () { cleanup_and_exit 1 "No curl or wget, cannot fetch $1" |
36 | } | ||
37 | |||
38 | # Figure out how to download stuff | ||
39 | if [ -z "$download_method" ]; then | ||
40 | if [ `wget --version 2>/dev/null | wc -l` != 0 ]; then | ||
41 | download_method=wget | ||
42 | elif [ `curl --version 2>/dev/null | wc -l` != 0 ]; then | ||
43 | download_method=curl | ||
44 | else | ||
45 | download_method=none | ||
46 | fi | ||
47 | fi | ||
48 | |||
49 | # Safely create a user-specific temp directory. | ||
50 | eulisse | 1.65 | # We look for TMPDIR since /tmp might not be user |
51 | # writeable. | ||
52 | # Notice that -p option does not work on MacOSX and | ||
53 | # ${${TMPDIR:-/tmp}} is zsh only. | ||
54 | if [ "X$TMPDIR" = X ] | ||
55 | then | ||
56 | tempdir=`mktemp -d /tmp/tmpXXXXX` | ||
57 | else | ||
58 | tempdir=`mktemp -d $TMPDIR/tmpXXXXX` | ||
59 | fi | ||
60 | eulisse | 1.57 | |
61 | # We have our own version of find-provides for bootstrap, so that we don't | ||
62 | # depend on a "system" rpm installation. This is particularly handy in the case | ||
63 | # of macosx and other unsupported distributions which don't use rpm as a | ||
64 | # package manager (e.g. ubuntu). | ||
65 | rpmFindProvides=$tempdir/my-find-provides | ||
66 | cat > $rpmFindProvides <<\EOF_FIND_PROVIDES | ||
67 | #!/bin/bash | ||
68 | |||
69 | # This script reads filenames from STDIN and outputs any relevant provides | ||
70 | # information that needs to be included in the package. | ||
71 | |||
72 | filelist=`sed "s/['\"]/\\\&/g"` | ||
73 | |||
74 | solist=$(echo $filelist | grep "\\.so" | grep -v "^/lib/ld.so" | \ | ||
75 | xargs file -L 2>/dev/null | grep "ELF.*shared object" | cut -d: -f1) | ||
76 | pythonlist= | ||
77 | tcllist= | ||
78 | |||
79 | # | ||
80 | # --- Alpha does not mark 64bit dependencies | ||
81 | case `uname -m` in | ||
82 | alpha*) mark64="" ;; | ||
83 | *) mark64="()(64bit)" ;; | ||
84 | esac | ||
85 | |||
86 | # | ||
87 | # --- Library sonames and weak symbol versions (from glibc). | ||
88 | for f in $solist; do | ||
89 | soname=$(objdump -p $f | awk '/SONAME/ {print $2}') | ||
90 | |||
91 | lib64=`if file -L $f 2>/dev/null | \ | ||
92 | grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi` | ||
93 | if [ "$soname" != "" ]; then | ||
94 | if [ ! -L $f ]; then | ||
95 | echo $soname$lib64 | ||
96 | objdump -p $f | awk ' | ||
97 | BEGIN { START=0 ; } | ||
98 | /Version definitions:/ { START=1; } | ||
99 | /^[0-9]/ && (START==1) { print $4; } | ||
100 | /^$/ { START=0; } | ||
101 | ' | \ | ||
102 | grep -v $soname | \ | ||
103 | while read symbol ; do | ||
104 | echo "$soname($symbol)`echo $lib64 | sed 's/()//'`" | ||
105 | done | ||
106 | fi | ||
107 | else | ||
108 | echo ${f##*/}$lib64 | ||
109 | fi | ||
110 | done | sort -u | ||
111 | |||
112 | # | ||
113 | # --- Perl modules. | ||
114 | [ -x /usr/lib/rpm/perl.prov ] && | ||
115 | echo $filelist | tr '[:blank:]' \\n | grep '\.pm$' | /usr/lib/rpm/perl.prov | sort -u | ||
116 | |||
117 | # | ||
118 | # --- Python modules. | ||
119 | [ -x /usr/lib/rpm/python.prov -a -n "$pythonlist" ] && | ||
120 | echo $pythonlist | tr '[:blank:]' \\n | /usr/lib/rpm/python.prov | sort -u | ||
121 | |||
122 | # | ||
123 | # --- Tcl modules. | ||
124 | [ -x /usr/lib/rpm/tcl.prov -a -n "$tcllist" ] && | ||
125 | echo $tcllist | tr '[:blank:]' \\n | /usr/lib/rpm/tcl.prov | sort -u | ||
126 | |||
127 | exit 0 | ||
128 | EOF_FIND_PROVIDES | ||
129 | |||
130 | eulisse | 1.69 | mkdir -p $tempdir/lib/perl5/site_perl/RPM/Header/PurePerl |
131 | mkdir -p $tempdir/bin | ||
132 | |||
133 | cat << \EOF_RPM_HEADER_PUREPERL_PM > $tempdir/lib/perl5/site_perl/RPM/Header/PurePerl.pm | ||
134 | @RPM_HEADER_PUREPERL_PM@ | ||
135 | EOF_RPM_HEADER_PUREPERL_PM | ||
136 | |||
137 | cat << \EOF_RPM_HEADER_PUREPERL_TAGSTABLE_PM > $tempdir/lib/perl5/site_perl/RPM/Header/PurePerl/Tagtable.pm | ||
138 | @RPM_HEADER_PUREPERL_TAGSTABLE_PM@ | ||
139 | EOF_RPM_HEADER_PUREPERL_TAGSTABLE_PM | ||
140 | |||
141 | export PERL5LIB=$tempdir/lib/perl5/site_perl | ||
142 | |||
143 | cat << \EOF_RPM_HEADER_PL > $tempdir/bin/rpmHeader.pl | ||
144 | #!/usr/bin/env perl | ||
145 | die "Missing package name." if ($#ARGV == -1); | ||
146 | my $fp = $ARGV[0]; | ||
147 | |||
148 | use RPM::Header::PurePerl; | ||
149 | |||
150 | tie %HDR, "RPM::Header::PurePerl", $fp or die "An error occurred: $RPM::err"; | ||
151 | |||
152 | if ($#ARGV == 1) | ||
153 | { | ||
154 | $l = $HDR{$ARGV[1]}; | ||
155 | print join("\n", @$l); | ||
156 | print "\n"; | ||
157 | exit; | ||
158 | } | ||
159 | |||
160 | while ( ($k,$v) = each %HDR) { | ||
161 | $l = $HDR{$k}; | ||
162 | if ($ARGV == 0) | ||
163 | { | ||
164 | print "$k:"; | ||
165 | print join(",", @$l); | ||
166 | print "\n"; | ||
167 | } | ||
168 | } | ||
169 | EOF_RPM_HEADER_PL | ||
170 | |||
171 | eulisse | 1.57 | source() { . ${1+"$@"}; } |
172 | |||
173 | eulisse | 1.69 | chmod u+x $rpmFindProvides $tempdir/bin/rpmHeader.pl |
174 | eulisse | 1.57 | |
175 | eulisse | 1.1 | server=cmsrep.cern.ch |
176 | eulisse | 1.68 | server_main_dir=cmssw |
177 | repository=cms | ||
178 | eulisse | 1.1 | groups="lcg cms external" |
179 | eulisse | 1.67 | unsupportedDistribution=false |
180 | eulisse | 1.1 | |
181 | rootdir=$(pwd) | ||
182 | eulisse | 1.4 | testInstance=false |
183 | eulisse | 1.1 | |
184 | while [ $# -gt 0 ]; do | ||
185 | case $1 in | ||
186 | setup ) | ||
187 | command=setup | ||
188 | shift ;; | ||
189 | reseed ) | ||
190 | command=reseed | ||
191 | shift;; | ||
192 | eulisse | 1.57 | -path|-p ) |
193 | [ $# -gt 0 ] || cleanup_and_exit 1 "Option \`$1' requires an argument" | ||
194 | if [ "$(echo $2 | cut -b 1)" = "/" ]; then | ||
195 | rootdir="$2" | ||
196 | else | ||
197 | ratnik | 1.56 | rootdir="$PWD/$2" |
198 | eulisse | 1.1 | fi |
199 | shift; shift ;; | ||
200 | -server ) | ||
201 | eulisse | 1.57 | [ $# -gt 1 ] || cleanup_and_exit 1 "Option \`$1' requires an argument" |
202 | eulisse | 1.4 | server=$2 |
203 | testInstance=true | ||
204 | shift; shift ;; | ||
205 | eulisse | 1.1 | -server-path ) |
206 | eulisse | 1.57 | [ $# -gt 1 ] || cleanup_and_exit 1 "Option \`$1' requires an argument" |
207 | eulisse | 1.68 | $hasRepository || cleanup_and_exit 1 "Cannot specify -repository and -server-path at the same time" |
208 | server_main_dir=`echo $2 | sed -e 's|/$||' | sed -e "s|\(.*\)/[^/]*$|\1|"` | ||
209 | repository=`echo $2 | sed -e 's|/$||' | sed -e "s|.*/\([^/]*\)$|\1|"` | ||
210 | eulisse | 1.1 | echo "server_main_dir $server_main_dir" |
211 | echo "repository $repository" | ||
212 | eulisse | 1.4 | testInstance=true |
213 | eulisse | 1.68 | hasServerPath=true |
214 | eulisse | 1.1 | shift; shift ;; |
215 | eulisse | 1.57 | -repository|-r ) |
216 | [ $# -gt 1 ] || cleanup_and_exit 1 "Option \`$1' requires an argument" | ||
217 | eulisse | 1.68 | $hasServerPath || cleanup_and_exit 1 "Cannot specify -repository and -server-path at the same time" |
218 | repository=$2 | ||
219 | hasRepository=true | ||
220 | eulisse | 1.26 | testInstance=true |
221 | shift; shift ;; | ||
222 | eulisse | 1.57 | -groups|-g ) |
223 | [ $# -gt 1 ] || cleanup_and_exit 1 "Option \`$1' requires at lease one argument" | ||
224 | eulisse | 1.4 | shift |
225 | groups="" | ||
226 | eulisse | 1.57 | while [ $# -gt 0 ] |
227 | eulisse | 1.4 | do |
228 | eulisse | 1.57 | [ "X$(echo $1 | cut -b1)" = X- ] && break |
229 | [ "X$1" = Xsetup ] && break | ||
230 | [ "X$1" = Xreseed ] && break | ||
231 | eulisse | 1.4 | groups="$groups $1" |
232 | shift | ||
233 | done | ||
234 | testInstance=true | ||
235 | ;; | ||
236 | eulisse | 1.57 | -architecture|-arch|-a ) |
237 | [ $# -gt 1 ] || cleanup_and_exit 1 "Option \`$1' requires at lease one argument" | ||
238 | cmsplatf="$2" | ||
239 | shift; shift ;; | ||
240 | eulisse | 1.1 | -unsupported_distribution_hack ) |
241 | unsupportedDistribution=true; shift | ||
242 | ;; | ||
243 | eulisse | 1.57 | -verbose|-v ) |
244 | verbose=true; shift | ||
245 | doReturn="\n" | ||
246 | ;; | ||
247 | -debug ) | ||
248 | debug=true; shift | ||
249 | doReturn="\n" | ||
250 | ;; | ||
251 | -assume-yes|-y ) | ||
252 | assumeYes=true; shift | ||
253 | ;; | ||
254 | -only-once ) | ||
255 | onlyOnce=true; shift | ||
256 | ;; | ||
257 | -additional-pkgs ) | ||
258 | while [ $# -gt 0 ] | ||
259 | do | ||
260 | [ "X$(echo $1 | cut -b1)" = X- ] && break | ||
261 | [ "X$1" = Xsetup ] && break | ||
262 | [ "X$1" = Xreseed ] && break | ||
263 | additionalPkgs="$additionalPkgs $1" | ||
264 | shift | ||
265 | done | ||
266 | ;; | ||
267 | -help|-h ) | ||
268 | eulisse | 1.1 | cat << \EOF_HELP |
269 | bootstrap.sh | ||
270 | |||
271 | A script to bootstrap a CMS software area. | ||
272 | |||
273 | Syntax: | ||
274 | bootstrap.sh setup [-path <cms-path>] [-server <server>] [-server-path <download-path>] | ||
275 | |||
276 | -path <cms-path> : location of where the installation must be done (default $PWD). | ||
277 | -server <server> : repositories are to be found on server <server> (default cmsrep.cern.ch). | ||
278 | -server-path <download-path> : package structure is found on <download-path> on server (default cms/cpt/Software/download/apt). | ||
279 | eulisse | 1.4 | -repository <repository> : use private apt repository cms.<username> (default: public repository) |
280 | -groups <groups-list> : list of the channels we want to subscribe to (default: "cms external lcg virtual"). | ||
281 | eulisse | 1.1 | EOF_HELP |
282 | eulisse | 1.57 | cleanup_and_exit 1 |
283 | eulisse | 1.1 | ;; |
284 | * ) | ||
285 | eulisse | 1.57 | cleanup_and_exit 1 "bootstrap.sh: argument $1 not supported" |
286 | ;; | ||
287 | eulisse | 1.1 | esac |
288 | done | ||
289 | |||
290 | eulisse | 1.70 | # Get cmsos from the web. |
291 | cmsos=$server/$server_main_dir/$repository/cmsos | ||
292 | [ "X$verbose" = Xtrue ] && echo_n "Downloading cmsos file..." | ||
293 | download_${download_method} $cmsos $tempdir/cmsos | ||
294 | [ -f $tempdir/cmsos ] || cleanup_and_exit 1 "FATAL: Unable to download cmsos: $cmsos" | ||
295 | source $tempdir/cmsos | ||
296 | |||
297 | eulisse | 1.68 | # Use cmsos to guess the platform if it is not set on command line. |
298 | if [ "X$cmsplatf" = X ] | ||
299 | then | ||
300 | cmsplatf=`cmsos`_`defaultCompiler` | ||
301 | fi | ||
302 | |||
303 | eulisse | 1.74 | case $cmsplatf in |
304 | osx*) | ||
305 | cpio_opts="--insecure";; | ||
306 | esac | ||
307 | |||
308 | eulisse | 1.57 | rpmdb=$cmsplatf/var/lib/rpm |
309 | rpmlock=$rootdir/$cmsplatf/var/lib/rpm/__db.0 | ||
310 | importTmp=$rootdir/$cmsplatf/tmp/system-import | ||
311 | |||
312 | [ "X$verbose" = Xtrue ] && echo "Using $download_method to download files." | ||
313 | [ "X$verbose" = Xtrue ] && echo "RPM db in $cmsplatf/var/lib/rpm." | ||
314 | |||
315 | # Get the architecture driver from the web | ||
316 | driver=$server/$server_main_dir/$repository/$cmsplatf-driver.txt | ||
317 | [ "X$verbose" = Xtrue ] && echo_n "Downloading driver file..." | ||
318 | download_${download_method} $driver $tempdir/$cmsplatf-driver.txt | ||
319 | [ -f $tempdir/$cmsplatf-driver.txt ] || cleanup_and_exit 1 "FATAL: Unable to download platform driver: $driver" | ||
320 | eval `cat $tempdir/$cmsplatf-driver.txt` | ||
321 | [ "X$verbose" = Xtrue ] && echo "Done." | ||
322 | eulisse | 1.42 | |
323 | |||
324 | eulisse | 1.1 | perlHarvester () { |
325 | eulisse | 1.57 | [ "X$verbose" = Xtrue ] && echo && echo "...Harvesting for perl modules" 1>&2 |
326 | for x in `perl -e'print join "\n", @INC'` | ||
327 | eulisse | 1.1 | do |
328 | eulisse | 1.57 | find -L $x 2>/dev/null \ |
329 | eulisse | 1.1 | | grep -v -e '\(^[.]/\|[/]$\)' \ |
330 | | grep -e '\([.]pm$\|[.]pl$\|[.]pod$\)' \ | ||
331 | eulisse | 1.57 | | sed -e "s|$x/||;s|[.]pm||;s|[.]pod||;s|/|::|g;s|^\(.*\)|Provides: perl(\1)|" |
332 | eulisse | 1.1 | done |
333 | } | ||
334 | |||
335 | generateSeedSpec () { | ||
336 | # Seed system info | ||
337 | eulisse | 1.57 | # GL asound odbc java libtcl libtk |
338 | [ "X$verbose" = Xtrue ] && echo && echo "...Seeding RPM database from selected system RPMs." 1>&2 | ||
339 | |||
340 | eulisse | 1.73 | # Decide which seeds to use. Notice that in case |
341 | # rhXYZ_WWW_ does not exists we try to use | ||
342 | # rhX_WWW_ platformSeeds before dropping to | ||
343 | # the (optional) platformSeeds. | ||
344 | eulisse | 1.71 | requiredSeeds=$(eval echo $`cmsos`_platformSeeds) |
345 | if [ "X$requiredSeeds" = X ] | ||
346 | then | ||
347 | eulisse | 1.73 | requiredSeeds=$(eval echo $`cmsos | sed -e 's|\([0-9]\)[0-9]*|\1|'`_platformSeeds) |
348 | fi | ||
349 | |||
350 | if [ "X$requiredSeeds" = X ] | ||
351 | then | ||
352 | eulisse | 1.71 | seed="$platformSeeds" |
353 | else | ||
354 | seed="$requiredSeeds" | ||
355 | unsupportedDistribution=false | ||
356 | fi | ||
357 | eulisse | 1.57 | |
358 | eulisse | 1.67 | if $unsupportedDistribution |
359 | eulisse | 1.57 | then |
360 | echo "WARNING: you are running on an unsupported distribution." | ||
361 | echo "This might lead to unknown problems." | ||
362 | seed="$seed $unsupportedSeeds" | ||
363 | fi | ||
364 | eulisse | 1.71 | |
365 | eulisse | 1.57 | |
366 | rm -rf $importTmp | ||
367 | mkdir -p $importTmp | ||
368 | cd $importTmp | ||
369 | eulisse | 1.1 | mkdir -p SOURCES BUILD SPEC RPMS SRPMS tmp |
370 | : > SOURCES/none | ||
371 | # FIXME: It might be better to use rootdir rather than PWD | ||
372 | (echo "%define _sourcedir $PWD/SOURCES" | ||
373 | echo "%define _builddir $PWD/BUILD" | ||
374 | echo "%define _specdir $PWD/SPEC" | ||
375 | echo "%define _rpmdir $PWD/RPMS" | ||
376 | echo "%define _srcrpmdir $PWD/SRPMS" | ||
377 | echo "%define _tmppath $PWD/tmp" | ||
378 | echo "%define _topdir $PWD" | ||
379 | echo "%define _rpmfilename system-base-import.rpm" | ||
380 | echo; | ||
381 | echo "Name: system-base-import" | ||
382 | echo "Version: 1.0" | ||
383 | echo "Release: `date +%s`" | ||
384 | echo "Summary: Base system seed" | ||
385 | echo "License: Unknown" | ||
386 | echo "Group: Hacks" | ||
387 | echo "Packager: install.sh" | ||
388 | echo "Source: none" | ||
389 | eulisse | 1.57 | for provide in $additionalProvides |
390 | do | ||
391 | echo "Provides: $provide" | ||
392 | done | ||
393 | eulisse | 1.1 | |
394 | eulisse | 1.69 | if $unsupportedDistribution |
395 | eulisse | 1.1 | then |
396 | eulisse | 1.19 | # Guess perl |
397 | andreasp | 1.62 | echo "Provides: perl = `perl -MConfig -e 'print $Config{api_revision}.\".\".($Config{api_version}*1000).$Config{api_subversion};'`" |
398 | eulisse | 1.57 | for provide in $unsupportedProvides |
399 | do | ||
400 | echo "Provides: $provide" | ||
401 | done | ||
402 | eulisse | 1.1 | fi |
403 | |||
404 | eulisse | 1.57 | case $cmsplatf in |
405 | osx* ) | ||
406 | eulisse | 1.75 | ls /System/Library/Frameworks | sed 's!.framework!!;s!^!Provides: !' |
407 | find /usr/bin | sed 's!^!Provides: !' | ||
408 | find /bin | sed 's!^!Provides: !' | ||
409 | eulisse | 1.69 | /bin/ls -1 /usr/lib/*.dylib | awk -F"/" '{print $4}' | sed 's!^!Provides: !' || true |
410 | /bin/ls -1 /usr/lib/*/*.dylib | awk -F"/" '{print $5}' | sed 's!^!Provides: !' || true | ||
411 | /bin/ls -1 /usr/X11R6/lib/*.dylib | awk -F"/" '{print $5}' | sed 's!^!Provides: !' || true | ||
412 | eulisse | 1.57 | ;; |
413 | esac | ||
414 | |||
415 | eulisse | 1.18 | if [ "$(which dpkg 2>&1 | grep 'no dpkg' )" = "" ] |
416 | eulisse | 1.1 | then |
417 | eulisse | 1.57 | [ "X$verbose" = Xtrue ] && echo && echo "...dpkg found in $(which dpkg), using it to seed the database." >&2 |
418 | eulisse | 1.1 | for p in $seed; do |
419 | eulisse | 1.18 | if [ "$(dpkg -L $p 2>&1 | grep 'is not installed')" = "" ]; then |
420 | eulisse | 1.1 | dpkg -L $p 2>/dev/null | sed -e "s|^|Provides:|" |
421 | eulisse | 1.69 | dpkg -L $p 2>/dev/null | $rpmFindProvides | sed -e "s|^|Provides:|" || true |
422 | eulisse | 1.1 | fi |
423 | done | ||
424 | perlHarvester | ||
425 | fi | ||
426 | eulisse | 1.69 | |
427 | eulisse | 1.18 | if which rpm 2>&1 >/dev/null && [ "$(rpm -qa 2>&1 | grep 'use alien')" = "" ] |
428 | eulisse | 1.1 | then |
429 | eulisse | 1.69 | [ "X$verbose" = Xtrue ] && echo && echo "...rpm found in $(which rpm), using it to seed the database." >&2 |
430 | eulisse | 1.72 | for p in $requiredSeeds; do |
431 | rpm -q $p >/dev/null || { echo "Required package $p is missing." ; exit 1; } | ||
432 | done | ||
433 | eulisse | 1.1 | for p in $seed; do |
434 | eulisse | 1.71 | rpm -q $p --provides | sed 's!<*=.*!!; s!^!Provides: !' || true |
435 | rpm -q $p --list | fgrep .so | fgrep -v -e /lib/. -e /lib64/. | sed 's!^.*/!Provides: !' || true | ||
436 | rpm -q $p --list | fgrep /bin/ | sed 's!^!Provides: !' || true | ||
437 | eulisse | 1.1 | done |
438 | fi | ||
439 | echo; echo "%description"; echo "Seeds RPM repository from the base system." | ||
440 | echo; echo "%prep"; echo "%build"; echo "%install"; echo "%files"; | ||
441 | eulisse | 1.69 | ) > system-base-import.spec |
442 | if [ "X$?" = X0 ]; then : ; else | ||
443 | echo "There was an error generating the platform seed" | ||
444 | exit 1 | ||
445 | fi | ||
446 | |||
447 | eulisse | 1.57 | perl -p -i -e 's|^Provides:[\s]*$||' system-base-import.spec |
448 | eulisse | 1.1 | cd $was |
449 | } | ||
450 | |||
451 | seed () | ||
452 | { | ||
453 | eulisse | 1.12 | rcfile=$1 |
454 | eulisse | 1.57 | cd $importTmp |
455 | eulisse | 1.70 | (source $rootdir/bootstraptmp/BOOTSTRAP/inst/$cmsplatf/external/rpm/$rpm_version/etc/profile.d/init.sh |
456 | andreasp | 1.66 | rpmbuild -ba --rcfile $rcfile system-base-import.spec >/dev/null 2>&1 |
457 | eulisse | 1.57 | [ "X$verbose" = Xtrue ] && echo && echo "...Seeding database in in $rootdir/$rpmdb" |
458 | rpm --define "_rpmlock_path $rpmlock" -U -r $rootdir --rcfile $rcfile --dbpath $rootdir/$rpmdb RPMS/system-base-import.rpm | ||
459 | ) || cleanup_and_exit $? "Error while seeding rpm database with system packages." | ||
460 | eulisse | 1.1 | cd $was |
461 | } | ||
462 | |||
463 | setup() { | ||
464 | eulisse | 1.13 | # FIXME: this is the ugliest trick ever found in a shell script. |
465 | # The problem is that rpm sometimes applies the value of --root | ||
466 | # to dbpath, some other times it does not. | ||
467 | # At some point this should be really fixed in the rpm sources, | ||
468 | # but for the time being we keep it as it is. | ||
469 | eulisse | 1.57 | [ "$rootdir" = "" ] && cleanup_and_exit 1 "Installation path not specified." |
470 | eulisse | 1.31 | |
471 | rootdir=`echo $rootdir | perl -p -e 's|/$||'` | ||
472 | eulisse | 1.57 | mkdir -p $rootdir |
473 | eulisse | 1.31 | eval `echo $rootdir | awk -F \/ '{print "fakelink=$rootdir/"$2}'` |
474 | if [ ! -e $fakelink ] | ||
475 | then | ||
476 | eulisse | 1.57 | #echo $rootdir | awk -F \/ '{print "ln -s /"$2" $rootdir/"$2}' |
477 | eulisse | 1.31 | command=`echo $rootdir | awk -F \/ '{print "ln -s /"$2" $rootdir/"$2}'` |
478 | eval $command | ||
479 | fi | ||
480 | eulisse | 1.13 | |
481 | eulisse | 1.1 | # Fetch the required RPMS for RPM and APT from the server and install them using rpmcpio |
482 | eulisse | 1.61 | export DOWNLOAD_DIR=$rootdir/bootstraptmp/BOOTSTRAP |
483 | eulisse | 1.1 | mkdir -p $DOWNLOAD_DIR |
484 | cd $DOWNLOAD_DIR | ||
485 | eulisse | 1.57 | downloadPath=$server/$server_main_dir/$repository/RPMS/$cmsplatf |
486 | # Get the architecture driver from the web | ||
487 | driver=$server/$server_main_dir/$repository/$cmsplatf-driver.txt | ||
488 | echo_n "Downloading driver file..." | ||
489 | download_${download_method} $driver $tempdir/$cmsplatf-driver.txt | ||
490 | [ -f $tempdir/$cmsplatf-driver.txt ] || cleanup_and_exit 1 "Unable to download platform driver: $driver" | ||
491 | eval `cat $tempdir/$cmsplatf-driver.txt` | ||
492 | echo "Done." | ||
493 | |||
494 | echo_n "Downloading bootstrap core packages..." | ||
495 | for pkg in $packageList | ||
496 | do | ||
497 | download_${download_method} $downloadPath/$pkg $pkg | ||
498 | [ -f $pkg ] || cleanup_and_exit 1 "Error downloading $pkg. Exiting." | ||
499 | done | ||
500 | echo "Done." | ||
501 | eulisse | 1.41 | |
502 | eulisse | 1.1 | was=`pwd` |
503 | cd $rootdir | ||
504 | eulisse | 1.57 | forceOption="" |
505 | ratnik | 1.39 | if [ -d $rootdir/$rpmdb ] |
506 | eulisse | 1.1 | then |
507 | eulisse | 1.57 | [ "X$onlyOnce" = Xtrue ] && cleanup_and_exit 0 "Area already initialised. Skipping bootstrap and exiting." |
508 | if [ "X$assumeYes" = Xtrue ] | ||
509 | then | ||
510 | forceOption=--force | ||
511 | else | ||
512 | read -e -p "Warning, $rootdir already set up. Do you want to reconfigure it? [ y / N ] " override | ||
513 | case $(echo $override | tr [A-Z] [a-z]) in | ||
514 | y|ye|yes) | ||
515 | forceOption=--force | ||
516 | ;; | ||
517 | *) | ||
518 | cleanup_and_exit 0 "No changes made. Exiting... " | ||
519 | ;; | ||
520 | esac | ||
521 | fi | ||
522 | eulisse | 1.1 | else |
523 | mkdir -p $rootdir/$rpmdb | ||
524 | fi | ||
525 | eulisse | 1.57 | |
526 | eulisse | 1.1 | # Extract the packages via rpm, source the init.sh |
527 | eulisse | 1.57 | # Some packages might actually not be there (gcc on darwin, for example, . |
528 | # where we use the system one). | ||
529 | eulisse | 1.10 | cd $DOWNLOAD_DIR |
530 | eulisse | 1.57 | # http://linuxmafia.com/pub/linux/utilities-general/rpm2cpio |
531 | cat > myrpm2cpio <<\EOF_RPM2CPIO | ||
532 | #!/usr/bin/env perl | ||
533 | |||
534 | # Why does the world need another rpm2cpio? Because the existing one | ||
535 | # won't build unless you have half a ton of things that aren't really | ||
536 | # required for it, since it uses the same library used to extract RPMs. | ||
537 | # In particular, it won't build on the HPsUX box I'm on. | ||
538 | |||
539 | # | ||
540 | # Expanded quick-reference help by Rick Moen (not the original author | ||
541 | # of this script). | ||
542 | # | ||
543 | |||
544 | # add a path if desired | ||
545 | $gzip = "gzip"; | ||
546 | |||
547 | sub printhelp { | ||
548 | print "\n"; | ||
549 | print "rpm2cpio, perl version by orabidoo <odar\@pobox.com>\n"; | ||
550 | print "\n"; | ||
551 | print "use: rpm2cpio [file.rpm]\n"; | ||
552 | print "\n"; | ||
553 | exit 0; | ||
554 | } | ||
555 | |||
556 | if ($#ARGV == -1) { | ||
557 | printhelp if -t STDIN; | ||
558 | $f = "STDIN"; | ||
559 | } elsif ($#ARGV == 0) { | ||
560 | open(F, "< $ARGV[0]") or die "Can't read file $ARGV[0]\n"; | ||
561 | $f = 'F'; | ||
562 | } else { | ||
563 | printhelp; | ||
564 | } | ||
565 | |||
566 | printhelp if -t STDOUT; | ||
567 | |||
568 | # gobble the file up | ||
569 | undef $/; | ||
570 | $|=1; | ||
571 | $rpm = <$f>; | ||
572 | close ($f); | ||
573 | |||
574 | ($magic, $major, $minor, $crap) = unpack("NCC C90", $rpm); | ||
575 | |||
576 | die "Not an RPM\n" if $magic != 0xedabeedb; | ||
577 | die "Not a version 3 or 4 RPM\n" if $major != 3 and $major != 4; | ||
578 | |||
579 | $rpm = substr($rpm, 96); | ||
580 | |||
581 | while ($rpm ne '') { | ||
582 | $rpm =~ s/^\c@*//s; | ||
583 | ($magic, $crap, $sections, $bytes) = unpack("N4", $rpm); | ||
584 | $smagic = unpack("n", $rpm); | ||
585 | last if $smagic eq 0x1f8b; | ||
586 | die "Error: header not recognized\n" if $magic != 0x8eade801; | ||
587 | $rpm = substr($rpm, 16*(1+$sections) + $bytes); | ||
588 | } | ||
589 | |||
590 | die "bogus RPM\n" if $rpm eq ''; | ||
591 | |||
592 | open(ZCAT, "|gzip -cd") || die "can't pipe to gzip\n"; | ||
593 | |||
594 | print ZCAT $rpm; | ||
595 | close ZCAT; | ||
596 | EOF_RPM2CPIO | ||
597 | |||
598 | echo_n "Unpacking core packages..." | ||
599 | eulisse | 1.69 | # Unfortunately cpio unpacks its files including the original build path. |
600 | # We therefore need some symlink tricks to make sure that everything | ||
601 | # ends up in the same installation directory. | ||
602 | # We also use the rpmHeader.pl script to get the pre and post install | ||
603 | # script and we execute them by hand. | ||
604 | # This should really mimic what rpm does and removes the needs for | ||
605 | # `instroot` to be defined in the bootstrap driver. | ||
606 | mkdir $tempdir/scriptlets | ||
607 | mkdir -p $PWD/inst | ||
608 | eulisse | 1.57 | for pkg in $packageList |
609 | do | ||
610 | eulisse | 1.69 | pkgInstRoot=`$tempdir/bin/rpmHeader.pl $DOWNLOAD_DIR/$pkg PREFIXES | tail -1` |
611 | mkdir -p `dirname .$pkgInstRoot` | ||
612 | ln -sf $PWD/inst .$pkgInstRoot | ||
613 | $tempdir/bin/rpmHeader.pl $DOWNLOAD_DIR/$pkg PREIN | grep -v "^Unknown" | sed -e "s|[$]RPM_INSTALL_PREFIX|$PWD/inst|g" > $tempdir/scriptlets/$pkg.pre.sh | ||
614 | sh -ex $tempdir/scriptlets/$pkg.pre.sh | ||
615 | eulisse | 1.74 | perl ./myrpm2cpio $DOWNLOAD_DIR/$pkg | cpio $cpio_opts -id || cleanup_and_exit 1 "Unable to unpack $DOWNLOAD_DIR/$pkg" |
616 | eulisse | 1.69 | $tempdir/bin/rpmHeader.pl $DOWNLOAD_DIR/$pkg POSTIN | grep -v "^Unknown" | sed -e "s|[$]RPM_INSTALL_PREFIX|$PWD/inst|g" > $tempdir/scriptlets/$pkg.post.sh |
617 | sh -ex $tempdir/scriptlets/$pkg.post.sh | ||
618 | eulisse | 1.57 | done |
619 | echo "Done." | ||
620 | ratnik | 1.33 | |
621 | eulisse | 1.1 | # Generate the seed spec using the old rpm: |
622 | eulisse | 1.57 | echo_n "Harvesting system for locally available software..." |
623 | eulisse | 1.5 | generateSeedSpec |
624 | eulisse | 1.69 | |
625 | eulisse | 1.1 | # Now move to use the new RPM by sourcing its init.sh |
626 | eulisse | 1.69 | source $DOWNLOAD_DIR/inst/$cmsplatf/external/rpm/$rpm_version/etc/profile.d/init.sh |
627 | eulisse | 1.10 | cd $rootdir |
628 | eulisse | 1.57 | echo "Done." |
629 | eulisse | 1.69 | |
630 | eulisse | 1.1 | # Initialise the rpmdb using the new rpm. |
631 | eulisse | 1.57 | echo_n "Initializing local rpm database..." |
632 | rpm --define "_rpmlock_path $rpmlock" -r $rootdir --dbpath $rootdir/$rpmdb --initdb || cleanup_and_exit 1 "Unable to initialize $rootdir/$rpmdb. Exiting." | ||
633 | eulisse | 1.69 | |
634 | eulisse | 1.1 | # Build the seed spec and install it, in order to seed the newly generated db. |
635 | eulisse | 1.69 | rpmOptions="-r $rootdir --dbpath $rootdir/$rpmdb --rcfile $DOWNLOAD_DIR/inst/$cmsplatf/external/rpm/$rpm_version/lib/rpm/rpmrc --nodeps --prefix $rootdir --ignoreos --ignorearch" |
636 | seed $DOWNLOAD_DIR/inst/$cmsplatf/external/rpm/$rpm_version/lib/rpm/rpmrc | ||
637 | eulisse | 1.57 | echo "Done." |
638 | eulisse | 1.22 | |
639 | eulisse | 1.1 | # Install the packages, this time using rpm. |
640 | eulisse | 1.57 | echo_n "Installing packages in the local rpm database..." |
641 | for pkg in $packageList | ||
642 | do | ||
643 | rpm -U $forceOption --define "_rpmlock_path $rpmlock" $rpmOptions $DOWNLOAD_DIR/$pkg || cleanup_and_exit 1 "Error while installing $pkg. Exiting." | ||
644 | done | ||
645 | echo "Done" | ||
646 | eulisse | 1.1 | |
647 | eulisse | 1.4 | # If we want to use a test instance, we need to adjust the sources.list accordingly. |
648 | eulisse | 1.69 | if $testInstance |
649 | eulisse | 1.4 | then |
650 | eulisse | 1.68 | perl -p -i -e "s|^([^#][^;].*) http://cmsrep.cern.ch cms/cpt/Software/download/cms/|#\$1 http://cmsrep.cern.ch cmssw/cms/|; |
651 | eulisse | 1.57 | s|#;||; |
652 | eulisse | 1.27 | s|\@GROUPS\@|$groups|; |
653 | s|\@SERVER\@|$server|; | ||
654 | eulisse | 1.69 | s|\@SERVER_PATH\@|$server_main_dir/|; |
655 | eulisse | 1.57 | s|\@REPOSITORY\@|$repository|" $rootdir/$cmsplatf/external/apt/$apt_version/etc/sources.list |
656 | eulisse | 1.4 | fi |
657 | eulisse | 1.1 | |
658 | eulisse | 1.69 | # Source the apt environment and upgrade what is already there. |
659 | eulisse | 1.57 | echo_n "Initializing apt-get environment." |
660 | source $rootdir/$cmsplatf/external/apt/$apt_version/etc/profile.d/init.sh | ||
661 | dlange | 1.58 | apt-get update >$tempdir/apt-get-update.log 2>&1 || cleanup_and_exit 1 "There was a problem while running apt-get update. " |
662 | eulisse | 1.57 | |
663 | echo "Done" | ||
664 | echo_n "Installing default packages." | ||
665 | defaultPackages="$additionalPkgs $defaultPkgs" | ||
666 | dlange | 1.59 | [ "X$defaultPackages" = X ] || apt-get -y install $defaultPackages >$tempdir/apt-get-install.log 2>&1 || cleanup_and_exit 1 "There was \ |
667 | dlange | 1.58 | a problem while installing the default packages " |
668 | |||
669 | |||
670 | eulisse | 1.57 | echo "Done" |
671 | |||
672 | echo "Bootstrap environment to be found in: " | ||
673 | echo "### $rootdir/$cmsplatf/external/apt/$apt_version/etc/profile.d/init.sh" | ||
674 | |||
675 | eulisse | 1.1 | cd $was |
676 | } | ||
677 | |||
678 | ########################################################## | ||
679 | case $command in | ||
680 | setup ) | ||
681 | eulisse | 1.57 | setup |
682 | ;; | ||
683 | eulisse | 1.1 | reseed ) |
684 | eulisse | 1.23 | generateSeedSpec |
685 | andreasp | 1.66 | seed $rootdir/$cmsplatf/external/rpm/$rpm_version/lib/rpm/rpmrc |
686 | eulisse | 1.23 | ;; |
687 | eulisse | 1.1 | esac |
688 | |||
689 | eulisse | 1.57 | cleanup_and_exit 0 "Everything completed correctly." |