|
[Rivet] installationFrank Siegert frank.siegert at cern.chMon Jan 27 12:47:01 GMT 2014
Ah, and one thing that I forgot: probably not a conceptual problem, but a bug, which basically stopped Frank's Rivet installation efforts in the end yesterday: When we do configure; make; make install; then the make step will also go into doc/ and try to use rivet-mkanalyses-html. As far as I understand the Makefile and also Frank's error from yesterday, this assumes that libRivet.so is already installed into --prefix, which clearly isn't the case in the make step. Am I misunderstanding this? Could we move the complete doc/ building into the --enable-pdfmanual conditional (and disable it by default), to avoid such simple compile failures? Cheers, Frank On 27 January 2014 13:43, Frank Siegert <frank.siegert at cern.ch> wrote: > Hi Andy, > > I think there is one simple issue explaining the difference in > perception between you and Frank et al.: > One actually needs to install *Rivet-dev* to get current analyses. > > And installing Rivet-dev is the annoying bit, in particular for Rivet2 > vs. Rivet1 due to: > > 1. Cython > It's simply not possible to install cython properly into the install > prefix automatically in a bootstrap script, which is why we have > worked around by setting the PATH and PYTHONPATH to find it during the > bootstrap. But that "solution" fails in case you want to actually > update your Rivet later (new analyses!) and compile again, since those > variables aren't set anymore. Swig was much easier in that respect. > > 2. hg > While SVN was basically available on all systems that I have worked > on, I often had to install hg myself. > > 3. YODA from hg (release sometimes isn't new enough for Rivet-dev) > + its own dependencies. > > 4. autotools > I have seen two independent clusters where the autotools from SL6 (or > SL5, not 100% sure) lead to very hard to understand linker problems, > which went away with recent autotools. > > 5. yaml_cpp > This needs cmake for installation, i.e. yet another dependency. So if > that's bundled in the future, it will already make quite a difference. > > > Bottom line: no, it's not just about the Boost version in YODA. > > Cheers, > Frank > > > On 27 January 2014 13:03, Andy Buckley <andy.buckley at cern.ch> wrote: >> On 27/01/14 11:17, Frank Krauss wrote: >>> Hi Andy, >>> well, that's great. I found out about the dependencies the hard way, >>> but I still did not manage to produce an installation. And since you >>> guys appear to claim zero time of developer time it has about zero >>> usability at the moment for anyone who cannot rely on it being already >>> installed on lxplus. I guess however that Rivet was also meant for the >>> wider MC community, including theorists not sitting at CERN. For those >>> it is pretty much useless, and, the way I see it, because the developers >>> mainly aimed at proving how smart they are rather than at having >>> something useful. So, up to now, you just showed me that you guys do >>> not give a toss about this part of the community. Good to know. I >>> sincerely hope this attitude of producing monumental software for the >>> nerds is not the new trend in HEP computing. >> >> I'll try to reply nicely... but not exactly the style of feedback that >> makes me want to be Mr Helpful, Frank. >> >> First off, of course we care about MC/pheno theorists. But as far as I >> was aware the part of the community that Rivet was started for (i.e. you >> guys) were more-or-less happily using it without significant trouble. So >> the recent work (shall I moan about manpower again?) has been aimed at >> getting the experiment uptake to the same level as in the generator >> community. Understandable, no? So it looks like time for the balance to >> swing a bit back toward the non-LCG users again. >> >> I _really_ hope we have better ways to look (be!) clever than introduce >> new pain-in-the-ass library dependencies. It's more the other way >> around: when there's a better implementation somewhere else, which we >> have no chance/time to reimplement internally, we had to be stupid and >> acquire the dependency. Most of this happened > 5 years ago. Where there >> have been changes they have been to *reduce* build system problems (cf. >> the previous way of bundling yaml-cpp). I didn't think that much had >> changed with the release of version 2, but clearly some changes have had >> painful impact: it would be good to know exactly what these are. As I >> mentioned in another email, I suspect that YODA's Boost version >> requirement is too high -- is that right? >> >> The dependencies that we have were chosen (I thought fairly carefully) >> for compatibility with the "canonical" HEP system, i.e. SLC6 and the LCG >> libraries. Frank's new script should handle tarball builds on systems >> where LCG isn't present, which is great. Installation on personal >> laptops _should_ be far easier because so many dependencies can come >> direct from system packages... but you're right that that's assuming a >> degree of nerdity in that you're already administrating your own machine >> so can presumably choose what to install from where. If not, Frank's new >> "install everything" script should help... but be aware that if you >> build one library with a system Boost/GSL/whatever and Rivet with this >> all-in-one bootstrap then the fact that it fails to run isn't really a >> Rivet problem! Finally, building an unreleased development version is of >> course a bit harder: heck, *I* don't try to build the developer version >> on lxplus direct from the repository: I make a tarball on my laptop, >> copy it over, and run the standard bootstrap. >> >> Ok, enough. The feedback and the more general bootstrap script are >> really good to have, and I wish we'd known the strength of feeling about >> Rivet much earlier... but if no-one reports it then we don't know. Let >> us know (nicely :-P) if there are more problems -- particularly, >> concrete help like Frank S' is hugely appreciated. >> >> Andy >> >> PS. Current manpower, since there was incredulity: I would guess < 1 >> day/month on average for me, plus something similar or less for David G, >> and occasional (very welcome!) contributions from others like Frank S. >> Much of that time goes on analysis integration and (slow) feature >> development. Does it look like more from outside? >> >> PPS. When yaml-cpp is bundled back inside Rivet, the tarball >> dependencies will be exactly the same as Rivet 1, except that the >> histogramming now has to be built separately. So I think the 1 vs. 2 >> dichotomy is a false one, and the issue is more to with the change to >> bootstrap scripts. You'll probably still need to have cmake installed, >> unless we bundle that as well... and why not an entire operating system? >> But while I dislike that cmake requirement, it's the same for a *lot* of >> other HEP packages now since LCG standardised on it. There will be a lot >> of pressure for HepMC3 to go that way, I think. >> >> >>> On 26/01/14 22:59, Andy Buckley wrote: >>>> Hi Franks, >>>> >>>> Well, it's usable in proportion to the amount of developer time that we >>>> have had to spend on making it nice... the main users what we have had >>>> to win over are the experiment ones who access it through experiment >>>> frameworks or from the Genser-built copy. So certainly that's who I've >>>> been aiming my limited build system dev time at, and to be honest I >>>> still stand by that choice although I'd rather not have *anyone* annoyed >>>> by our code. >>>> >>>> For a tarball build I think the dependencies are as follows: >>>> >>>> YODA requires: >>>> * Boost (headers only, but currently asks for quite a new version... >>>> can maybe be relaxed: any testers?) >>>> >>>> Rivet requires: >>>> * HepMC, FastJet (unavoidable, I think) >>>> * YODA (yes, could have been built-in, but it has wider utility) >>>> * yaml-cpp (for 2.1.0 I'd like to use a built-in copy, cf. the latest >>>> LHAPDF6) >>>> * GNU Scientific Library (volunteers to eliminate that dependency? But >>>> is typically an easily-met requirement, I think) >>>> * Boost (headers only, fairly easy version requirement, I think) >>>> >>>> If we eliminate yaml-cpp, how much is there to object to? Anyway, yes >>>> Frank I'd be very happy for you to make a new rivet2-bootstrap script >>>> which builds everything from scratch... and/or attempts to work out what >>>> is already on the system? At some level users should make their own >>>> minds up about what to install from packaging systems and what by >>>> hand... but by saying that I probably give away what side of Frank's >>>> nerd fence I'm sitting on ;-) >>>> >>>> Anyway, in short I don't see so much room for cutting things down, but >>>> always think that smoothing the entry paths (with scripts or otherwise) >>>> is a good thing as long as it's kept manageable for the developers, too. >>>> Since that's translated as "next to no manpower" for the last... two >>>> years?, I'm afraid the situation isn't so surprising. But we'll do what >>>> we can -- certainly I want to get rid of the yaml-cpp explicity >>>> requirement, and hopefully we can get a couple of new part-time >>>> developers (re)activated in the coming months. >>>> >>>> Andy >>>> >>>> >>>> On 26/01/14 19:47, Frank Siegert wrote: >>>>> I hate to admit that I agree with Frank's rant here, and I have had >>>>> multiple users recently who made the same point, though admittedly >>>>> more politely. The bootstrap script currently is close to useless to >>>>> everybody who isn't installing on lxplus. I have it on my agenda to >>>>> replace it with a working version, but haven't got around to it yet. >>>>> And to be honest, all the changes and external dependencies that came >>>>> with Rivet2 have left me as a second-class developer (if even), >>>>> because there is a lot of stuff in the codebase which is beyond my >>>>> capabilities to fix -- I'm normally quite annoyed myself with even >>>>> installing Rivet on a new cluster, where >>>>> cython/yaml/yoda/boost/cmake/hg/fastjet/hepmc... isn't available. Some >>>>> of those are only necessary for the development version, but it's >>>>> still rather annoying. >>>>> This goes far beyond the switch to YODA, which I agree with as >>>>> necessary, though tbh I originally thought would be Rivet-in-house as >>>>> well. >>>>> >>>>> Anyway, as I'm clearly not the majority of Rivet developers, and >>>>> mostly everybody else on the team seems to be happy about this usage >>>>> of fancy new technologies, separation and dependencies, there is no >>>>> point in discussing that in itself. But we definitely need a usable >>>>> bootstrap script much more urgently than we needed it for Rivet1. >>>>> >>>>> Andy, what about renaming the current rivet2 bootstrap script to >>>>> rivet-2-bootstrap-lcg, and (me) creating a separate one which actually >>>>> does all the installations on its own (but without support for Rivet1 >>>>> of course, to avoid it becoming too bloated as the old one did)? >>>>> >>>>> Cheers, >>>>> Frank >>>>> >>>>> >>>>> On 26 January 2014 17:13, Frank Krauss <frank.krauss at durham.ac.uk> >>>>> wrote: >>>>>> Dear Rivet Authors, >>>>>> I am just towards the end of my second hour running trying to >>>>>> install Rivet 2.0. Admittedly, I am not half as geeky and nerdy as >>>>>> you are, so I accepted/anticipated that this would take me an hour. >>>>>> But, please, can you explain the rationale why you use >>>>>> cython, yaml, yoda, boost, fastjet & hepmc (I am sure i missed some!) >>>>>> in a non-trivial way with non-trivial version specifications without >>>>>> providing a meaningful installation guide? You certainly do not >>>>>> want the common people to use your code - is that it? If you think >>>>>> this helps the user base you are mightily mistaken. If you think I >>>>>> will continue to advertise your code, you're delusional - this is >>>>>> next to uninstallable as it stands now, with a pretty superficial >>>>>> installation help. >>>>>> Best wishes >>>>>> Frank >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Rivet mailing list >>>>>> Rivet at projects.hepforge.org >>>>>> http://www.hepforge.org/lists/listinfo/rivet >>>>> _______________________________________________ >>>>> Rivet mailing list >>>>> Rivet at projects.hepforge.org >>>>> http://www.hepforge.org/lists/listinfo/rivet >>>>> >>>> >>> >> >> >> -- >> Dr Andy Buckley, Royal Society University Research Fellow >> Particle Physics Expt Group, University of Glasgow / PH Dept, CERN
More information about the Rivet mailing list |