|
[Rivet] ruvet and osxJames William Monk james.william.monk at cern.chMon Jul 30 20:18:33 BST 2018
Thanks David, How then does the rivet main executable work then? That is itself a python script that loads the Rivet libs. How does it manage to inherit the DYLD_LIBRARY_PATH cheers, James > On 30 Jul 2018, at 17:28, David Grellscheid <david.grellscheid at durham.ac.uk> wrote: > > You've diagnosed it right. All programs in /usr/bin are considered protected, and will not be passed any DYLD environment. A python in /usr/local or /opt will work fine > > Also, making the script executable does not help. The first line with the #! still calls either /usr/bin/env or /usr/bin/python with exactly the same issue > > David (on house move teabreak) > > > > > On 30 July 2018 16:17:18 BST, James William Monk <james.william.monk at cern.ch> wrote: >> Hi everyone, >> >> Did we ever come across the problem that the mac System Integrity >> Protection (SIP) does not pass on the DYLD_LIBRARY_PATH to a subprocess >> if it thinks that subprocess is a “protected” process? I believe that >> is the problem here, and is preventing the library path being set >> correctly during the Rivet build because it spawns a python subprocess >> that does not inherit the correct environment >> >> It seems that if I do a python script to simply print the environment, >> i.e. >> >> import os >> for key in os.environ.keys(): >> print key >> >> then execute >> >> foo=“bar” python test >> (where test contains the script above) >> >> Then I see that foo is detected in the environment. However, if I do >> >> DYLD_LIBRARY_PATH=“bar” python test >> >> Then DYLD_LIBRARY_PATH does not show up! Presumably SIP has decided >> that the python subprocess must be protected from malicious setting of >> the environment. I can see why they might think that is important, >> since changing the path would potentially cause it to load a bad >> version of some library. I can disable SIP to confirm this, but that >> requires a reboot of my mac and is not something we should ask users to >> do. >> >> I think that the fix for this is that the mk-analysis-html script has >> to be executable. That way it will inherit from the build environment, >> not from the python subprocess whose environment has been wiped clean. >> >> >> cheers, >> >> James >> >> >> >> >> >> >>> On 30 Jul 2018, at 16:36, James William Monk >> <james.william.monk at cern.ch> wrote: >>> >>> Hi Sabah, >>> >>> There is a bug in the build system for the docs in Rivet 2.6 on mac. >> This issue has occurred before, but I only just remembered it. It >> looks like David Grellscheid has tried to fix it in the past, but when >> I use the updated Makefile.am from the doc dir, I still get the same >> problem. I knew there was a reason I was still on Rivet 2.5.4 :) >>> >>> It looks to me like there is a mistake in the setup for the >> environment needed for the python script mk-analysis-html. At least >> one error is that it seems to have the PYTHONPATH pointing to the >> installation prefix, but there is nothing there of course because Rivet >> hasn’t been installed yet. Another error is that DYLD_LIBRARY_PATH is >> not set. I tested this by modifying doc/mk-analysis-html by adding >>> >>> print "Hello from mk-analysis-html. I think $PYTHONPATH = " + >> os.environ['PYTHONPATH'] >>> print "environ keys are" >>> for key in os.environ.keys(): >>> print key >>> >>> This problem is only related to the building of the documentation, >> but disabling doxygen doesn’t seem to help. I *think* if you plough on >> regardless and do make install, you will get Rivet installed in your >> prefix, just without the docs and the rivetenv.sh script. >>> >>> cheers, >>> >>> James >>> >>>> On 28 Jul 2018, at 13:11, Sabah Salih <sabah.salih at manchester.ac.uk> >> wrote: >>>> >>>> Dear James, >>>> I am very grateful for your kind help >>>> I tried to apply rivet-bootstrap content line by line via command >> line >>>> >>>> YODA, HEPMC,... are fine >>>> When I reached Rivet I get the following: >>>> I attached the file which have the complete steps for RIVET >>>> >>>> Many Thanks, Sabah. >>>> >>>> >>>> >>>> File >> "/private/tmp/rivet/Rivet-2.6.0/pyext/build/lib.macosx-10.13-intel-2.7/rivet/__init__.py", >> line 12, in <module> >>>> from rivet.core import * >>>> ImportError: >> dlopen(/private/tmp/rivet/Rivet-2.6.0/pyext/build/lib.macosx-10.13-intel-2.7/rivet/core.so, >> 10): Library not loaded: /tmp/rivet/local/lib/libRivet.dylib >>>> Referenced from: >> /private/tmp/rivet/Rivet-2.6.0/pyext/build/lib.macosx-10.13-intel-2.7/rivet/core.so >>>> Reason: image not found >>>> make[1]: *** [analyses.json] Error 1 >>>> make[1]: *** Waiting for unfinished jobs.... >>>> Using output file name 'analyses.html' and directory 'analyses' >>>> Traceback (most recent call last): >>>> File "mk-analysis-html", line 25, in <module> >>>> import rivet >>>> File >> "/private/tmp/rivet/Rivet-2.6.0/pyext/build/lib.macosx-10.13-intel-2.7/rivet/__init__.py", >> line 12, in <module> >>>> from rivet.core import * >>>> ImportError: >> dlopen(/private/tmp/rivet/Rivet-2.6.0/pyext/build/lib.macosx-10.13-intel-2.7/rivet/core.so, >> 10): Library not loaded: /tmp/rivet/local/lib/libRivet.dylib >>>> Referenced from: >> /private/tmp/rivet/Rivet-2.6.0/pyext/build/lib.macosx-10.13-intel-2.7/rivet/core.so >>>> Reason: image not found >>>> make[1]: *** [analyses.html] Error 1 >>>> make: *** [all-recursive] Error 1 >>>> >>>> ls -lh >> /private/tmp/rivet/Rivet-2.6.0/pyext/build/lib.macosx-10.13-intel-2.7/rivet/ >>>> total 312 >>>> -rw-r--r-- 1 admin wheel 351B 3 Oct 2017 __init__.py >>>> -rw-r--r-- 1 admin wheel 598B 28 Jul 11:26 __init__.pyc >>>> -rw-r--r-- 1 admin wheel 3.0K 6 Nov 2017 aopaths.py >>>> -rwxr-xr-x 1 admin wheel 121K 28 Jul 11:15 core.so >>>> -rw-r--r-- 1 admin wheel 7.8K 3 Oct 2017 plotinfo.py >>>> -rw-r--r-- 1 admin wheel 2.5K 3 Oct 2017 spiresbib.py >>>> -rw-r--r-- 1 admin wheel 6.9K 20 Nov 2017 util.py >>>> >>>> >>>> Many Thanks, Sabah. >>>> >>>> From Sabah Salih >>>> Particle Physics Group, >>>> The School of Physics and Astronomy, >>>> The University of Manchester, >>>> Schuster Laboratory, >>>> Brunswick Street, >>>> Manchester M13 9PL. >>>> Tel: +44 1612754171 or x4171 >>>> E-mail: sabah.salih at manchester.ac.uk >>>> >>>> ________________________________________ >>>> From: James William Monk [james.william.monk at cern.ch] >>>> Sent: 25 July 2018 22:46 >>>> To: Sabah Salih >>>> Cc: James William Monk; Andy Buckley; rivet at projects.hepforge.org >>>> Subject: Re: [Rivet] ruvet and osx >>>> >>>> Hi Sabah, >>>> >>>> That error is just confirming that the Rivet lib is not present, I >> presume because the build and/or installation failed. Do you see any >> other error that looks like a build error? I’m not very familiar with >> the bootstrap, so I can’t say whether it produces any build logs, or >> where they would be, but we need to see the build failure message to >> know why the libraries weren't built properly. >>>> >>>> cheers, >>>> >>>> James >>>> >>>> >>>> >>>>> On 25 Jul 2018, at 19:09, Sabah Salih >> <sabah.salih at manchester.ac.uk> wrote: >>>>> >>>>> Dear James, >>>>> Thank you so much. >>>>> Following your advice I did the following: >>>>> >>>>> edit rivet-bootstrap >>>>> >>>>> and changed >>>>> >>>>> function conf { ./configure --prefix=$INSTALL_PREFIX "$@"; } >>>>> to >>>>> function conf { ./configure CC=/usr/bin/clang CXX=/usr/bin/clang++ >> --prefix=$INSTALL_PREFIX "$@"; } >>>>> >>>>> and >>>>> ./configure --prefix=$INSTALL_PREFIX >>>>> to >>>>> ./configure CC=/usr/bin/clang CXX=/usr/bin/clang++ >> --prefix=$INSTALL_PREFIX >>>>> >>>>> When I type >>>>> ./rivet-bootstrap >>>>> >>>>> I get this >>>>> File >> "/Users/admin/madgraph/MG5_aMC_v2_6_3/rivet/Rivet-2.6.0/pyext/build/lib.macosx-10.13-intel-2.7/rivet/__init__.py", >> line 12, in <module> >>>>> from rivet.core import * >>>>> ImportError: >> dlopen(/Users/admin/madgraph/MG5_aMC_v2_6_3/rivet/Rivet-2.6.0/pyext/build/lib.macosx-10.13-intel-2.7/rivet/core.so, >> 10): Library not loaded: >> /Users/admin/madgraph/MG5_aMC_v2_6_3/rivet/local/lib/libRivet.dylib >>>>> Referenced from: >> /Users/admin/madgraph/MG5_aMC_v2_6_3/rivet/Rivet-2.6.0/pyext/build/lib.macosx-10.13-intel-2.7/rivet/core.so >>>>> Reason: image not found >>>>> make[1]: *** [analyses.json] Error 1 >>>>> make[1]: *** Waiting for unfinished jobs.... >>>>> Using output file name 'analyses.html' and directory 'analyses' >>>>> Traceback (most recent call last): >>>>> File "mk-analysis-html", line 25, in <module> >>>>> import rivet >>>>> File >> "/Users/admin/madgraph/MG5_aMC_v2_6_3/rivet/Rivet-2.6.0/pyext/build/lib.macosx-10.13-intel-2.7/rivet/__init__.py", >> line 12, in <module> >>>>> from rivet.core import * >>>>> ImportError: >> dlopen(/Users/admin/madgraph/MG5_aMC_v2_6_3/rivet/Rivet-2.6.0/pyext/build/lib.macosx-10.13-intel-2.7/rivet/core.so, >> 10): Library not loaded: >> /Users/admin/madgraph/MG5_aMC_v2_6_3/rivet/local/lib/libRivet.dylib >>>>> Referenced from: >> /Users/admin/madgraph/MG5_aMC_v2_6_3/rivet/Rivet-2.6.0/pyext/build/lib.macosx-10.13-intel-2.7/rivet/core.so >>>>> Reason: image not found >>>>> make[1]: *** [analyses.html] Error 1 >>>>> make: *** [all-recursive] Error 1 >>>>> >>>>> ls local/lib/libRivet.dylib >>>>> ls: local/lib/libRivet.dylib: No such file or directory >>>>> >>>>> Many Thanks, Sabah. >>>>> >>>>> >>>>> From Sabah Salih >>>>> Particle Physics Group, >>>>> The School of Physics and Astronomy, >>>>> The University of Manchester, >>>>> Schuster Laboratory, >>>>> Brunswick Street, >>>>> Manchester M13 9PL. >>>>> Tel: +44 1612754171 or x4171 >>>>> E-mail: sabah.salih at manchester.ac.uk >>>>> >>>>> ________________________________________ >>>>> From: James William Monk [james.william.monk at cern.ch] >>>>> Sent: 25 July 2018 13:57 >>>>> To: Sabah Salih >>>>> Cc: James William Monk; Andy Buckley; rivet at projects.hepforge.org >>>>> Subject: Re: [Rivet] ruvet and osx >>>>> >>>>> Hi Sabah, >>>>> >>>>> No, there’s no need to cross compile here, we just need to make >> sure it uses compilers and libs all from the same toolchain and doesn’t >> mix and match system tools with homebrew tools. For example, to try to >> use the system compiler you could try something like configuring Rivet >> and its dependencies with the extra config option >>>>> >>>>> ./configure <usual config options> CC=/usr/bin/clang >> CXX=/usr/bin/clang++ >>>>> >>>>> It looks like you prefer to use homebrew’s tools though. I don’t >> know where they are located on your system, but the equivalent >> configure command would be >>>>> >>>>> ./configure <usual config opts> CC=/path/to/brew/gcc >> CXX=/path/to/brew/g++ >>>>> >>>>> where you fill in the paths to the brew installation versions of >> gcc and g++. Of course, any Rivet dependencies (FastJet, GSL, >> HepMC...) will also need to be configured in the same way first. >>>>> >>>>> If you just want to run Rivet, as opposed to develop for it, I’d >> also suggest taking a look at the Docker distribution for mac: >>>>> >>>>> https://rivet.hepforge.org/trac/wiki/Docker >>>>> >>>>> cheers, >>>>> >>>>> James >>>>> >>>>> >>>>>> On 25 Jul 2018, at 08:37, Sabah Salih >> <sabah.salih at manchester.ac.uk> wrote: >>>>>> >>>>>> Dear James, >>>>>> It is so nice to hear from you. >>>>>> Thank you so much for your kind reply. >>>>>> >>>>>> I just done >>>>>> >>>>>> brew tap osx-cross/arm >>>>>> brew tap osx-cross/avr >>>>>> >>>>>> brew install arm-gcc-bin >>>>>> >>>>>> brew install avr-gcc >>>>>> This look like installing gcc8 >>>>>> >>>>>> Is this what you meant? >>>>>> >>>>>> Many Tanks, Sabah. >>>>>> >>>>>> From Sabah Salih >>>>>> Particle Physics Group, >>>>>> The School of Physics and Astronomy, >>>>>> The University of Manchester, >>>>>> Schuster Laboratory, >>>>>> Brunswick Street, >>>>>> Manchester M13 9PL. >>>>>> Tel: +44 1612754171 or x4171 >>>>>> E-mail: sabah.salih at manchester.ac.uk >>>>>> >>>>>> ________________________________________ >>>>>> From: James William Monk [james.william.monk at cern.ch] >>>>>> Sent: 25 July 2018 01:10 >>>>>> To: Andy Buckley; Sabah Salih >>>>>> Cc: rivet at projects.hepforge.org >>>>>> Subject: Re: [Rivet] ruvet and osx >>>>>> >>>>>> Hi, >>>>>> >>>>>> From a bit of nurdling about on various fora, that error appears >> to refer to an option that is present for clang, but not gcc. Clang is >> the supplied default on mac. You have installed a separate gcc >> toolchain via homebrew. What I can imagine may be happening is that >> autotools is detecting the system clang and adding options >> appropriately, but then the g++ command is now calling the gcc from >> homebrew. For example, on my own mac I see >>>>>> >>>>>> g++ --version >>>>>> Configured with: >> --prefix=/Applications/Xcode.app/Contents/Developer/usr >> --with-gxx-include-dir=/usr/include/c++/4.2.1 >>>>>> Apple LLVM version 9.1.0 (clang-902.0.39.2) >>>>>> Target: x86_64-apple-darwin17.7.0 >>>>>> >>>>>> It’s possible you may be able to cure this with some appropriate >> environment settings like >>>>>> >>>>>> export CC=/usr/bin/clang >>>>>> export CXX=/usr/bin/clang++ >>>>>> >>>>>> Which would try to force it to use the system clang compiler >> consistently. Alternatively, try to point it to your homebrew compiler >> location. You may also like to consider removing homebrew as another >> solution - I don’t know what else it adds for you, but personally I >> have never found those kinds of packaging systems helpful on a mac >> precisely because they bring a second toolchain into play that is not >> always entirely consistent with the system toolchain. >>>>>> >>>>>> cheers, >>>>>> >>>>>> James >>>>>> >>>>>> >>>>>> >>>>>>> On 25 Jul 2018, at 00:48, Andy Buckley <andy.buckley at cern.ch> >> wrote: >>>>>>> >>>>>>> I'm afraid I don't use Macs, so am not sure what is best. Using >> an earlier compiler might work; I'm a little surprised that autoreconf >> did not help. Hopefully someone else on the Rivet team has a bit more >> Mac experience and can help out. >>>>>>> >>>>>>> Andy >>>>>>> >>>>>>> Dr Andy Buckley, Lecturer / Royal Society University Research >> Fellow >>>>>>> Particle Physics Experiment Group, University of Glasgow >>>>>>> On Jul 24 2018, at 4:52 pm, Sabah Salih >> <sabah.salih at manchester.ac.uk> wrote: >>>>>>> >>>>>>> >>>>>>> Dear Andy, >>>>>>> Thank you ever so much. The problem look like it is in >> YODA. >>>>>>> I did >>>>>>> >>>>>>> cd YODA-1.7.0 >>>>>>> >>>>>>> autoreconf -i >>>>>>> make >>>>>>> >>>>>>> that did not fix it >>>>>>> >>>>>>> cd .. >>>>>>> this is where rivet-bootstrap >>>>>>> >>>>>>> and rerun >>>>>>> >>>>>>> ./rivet-bootstrap >>>>>>> >>>>>>> This did not fix it neither. >>>>>>> >>>>>>> What is the best way to get rivet to work in a mac please.? >>>>>>> It does not have to be gcc8 >>>>>>> >>>>>>> Many thanks, Sabah >>>>>>> >>>>>>> >>>>>>> From Sabah Salih >>>>>>> Particle Physics Group, >>>>>>> The School of Physics and Astronomy, >>>>>>> The University of Manchester, >>>>>>> Schuster Laboratory, >>>>>>> Brunswick Street, >>>>>>> Manchester M13 9PL. >>>>>>> Tel: +44 1612754171 or x4171 >>>>>>> E-mail: sabah.salih at manchester.ac.uk >>>>>>> From: Andy Buckley [andy.buckley at cern.ch] >>>>>>> Sent: 19 July 2018 14:41 >>>>>>> To: Sabah Salih >>>>>>> Cc: rivet at projects.hepforge.org >>>>>>> Subject: Re: [Rivet] ruvet and osx >>>>>>> >>>>>>> Hi Sabah, >>>>>>> I have no idea about compilation with GCC 8 -- it looks like our >> "autotools" build system assumes that a compiler flag will work, but >> GCC 8 has removed it. I suspect that new versions of autotools would >> fix it, but of course our existing tarball is built with an older >> version. >>>>>>> >>>>>>> You could try building the (final) Rivet step by hand, first >> rebuilding the autotools bits with a call to "autoreconf -i". It may >> even be possible to re-run the bootstrap script after doing that, and >> let it finish the build with the updated Makefiles. >>>>>>> >>>>>>> Andy >>>>>>> >>>>>>> Dr Andy Buckley, Lecturer / Royal Society University Research >> Fellow >>>>>>> Particle Physics Experiment Group, University of Glasgow >>>>>>> On Jul 19 2018, at 9:15 am, Sabah Salih >> <sabah.salih at manchester.ac.uk> wrote: >>>>>>> >>>>>>> >>>>>>> Dear All, >>>>>>> I am trying to install rivet in a max osx 10.13.6 >>>>>>> I have >>>>>>> >>>>>>> gcc --version >>>>>>> gcc (Homebrew GCC 8.1.0) 8.1.0 >>>>>>> Copyright (C) 2018 Free Software Foundation, Inc. >>>>>>> This is free software; see the source for copying conditions. >> There is NO >>>>>>> warranty; not even for MERCHANTABILITY or FITNESS FOR A >> PARTICULAR PURPOSE. >>>>>>> >>>>>>> gfortran --version >>>>>>> GNU Fortran (Homebrew GCC 8.1.0) 8.1.0 >>>>>>> Copyright (C) 2018 Free Software Foundation, Inc. >>>>>>> This is free software; see the source for copying conditions. >> There is NO >>>>>>> warranty; not even for MERCHANTABILITY or FITNESS FOR A >> PARTICULAR PURPOSE. >>>>>>> >>>>>>> g++ --version >>>>>>> g++ (Homebrew GCC 8.1.0) 8.1.0 >>>>>>> Copyright (C) 2018 Free Software Foundation, Inc. >>>>>>> This is free software; see the source for copying conditions. >> There is NO >>>>>>> warranty; not even for MERCHANTABILITY or FITNESS FOR A >> PARTICULAR PURPOSE. >>>>>>> >>>>>>> >>>>>>> I got rivet from the following url >>>>>>> >>>>>>> wget >> http://rivet.hepforge.org/hg/bootstrap/raw-file/2.6.0/rivet-bootstrap >>>>>>> chmod +x rivet-bootstrap >>>>>>> >>>>>>> After I run the following >>>>>>> ./rivet-bootstrap >>>>>>> >>>>>>> I get the following in the end >>>>>>> >>>>>>> >>>>>>> g++ -fno-strict-aliasing -fno-common -dynamic -g -Os -pipe >> -fno-common -fno-strict-aliasing -fwrapv -DENABLE_DTRACE -DMACOSX >> -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g >> -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -DNDEBUG >> -I/usr/include -I/usr/include -pipe >> -I/Users/admin/madgraph/MG5_aMC_v2_6_3/rivet/YODA-1.7.0/include >> -I/Users/admin/madgraph/MG5_aMC_v2_6_3/rivet/YODA-1.7.0/include >> -I/Users/admin/madgraph/MG5_aMC_v2_6_3/rivet/YODA-1.7.0/pyext/yoda >> -I/Users/admin/madgraph/MG5_aMC_v2_6_3/rivet/YODA-1.7.0/pyext/yoda >> -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 >> -c >> /Users/admin/madgraph/MG5_aMC_v2_6_3/rivet/YODA-1.7.0/pyext/yoda/util.cpp >> -o >> /Users/admin/madgraph/MG5_aMC_v2_6_3/rivet/YODA-1.7.0/pyext/build/temp.macosx-10.13-intel-2.7/Users/admin/madgraph/MG5_aMC_v2_6_3/rivet/YODA-1.7.0/pyext/yoda/util.o >> -O3 -Wno-unused-but-set-variable -Wno-sign-compare >>>>>>> g++: error: unrecognized command line option '-Wshorten-64-to-32' >>>>>>> error: command 'g++' failed with exit status 1 >>>>>>> make[2]: *** [all-local] Error 1 >>>>>>> make[1]: *** [all-recursive] Error 1 >>>>>>> make: *** [all-recursive] Error 1 >>>>>>> >>>>>>> >>>>>>> What do I have to do to fix it please? >>>>>>> >>>>>>> >>>>>>> Maany Thanks, Sabah. >>>>>>> >>>>>>> From Sabah Salih >>>>>>> Particle Physics Group, >>>>>>> The School of Physics and Astronomy, >>>>>>> The University of Manchester, >>>>>>> Schuster Laboratory, >>>>>>> Brunswick Street, >>>>>>> Manchester M13 9PL. >>>>>>> Tel: +44 1612754171 or x4171 >>>>>>> E-mail: sabah.salih at manchester.ac.uk >>>>>>> _______________________________________________ >>>>>>> Rivet mailing list >>>>>>> Rivet at projects.hepforge.org >>>>>>> https://www.hepforge.org/lists/listinfo/rivet >>>>>>> _______________________________________________ >>>>>>> Rivet mailing list >>>>>>> Rivet at projects.hepforge.org >>>>>>> https://www.hepforge.org/lists/listinfo/rivet >>>>>> >>>>>> _______________________________________________ >>>>>> Rivet mailing list >>>>>> Rivet at projects.hepforge.org >>>>>> https://www.hepforge.org/lists/listinfo/rivet >>>>> >>>>> _______________________________________________ >>>>> Rivet mailing list >>>>> Rivet at projects.hepforge.org >>>>> https://www.hepforge.org/lists/listinfo/rivet >>>> >>>> <rivet-install.txt>_______________________________________________ >>>> Rivet mailing list >>>> Rivet at projects.hepforge.org >>>> https://www.hepforge.org/lists/listinfo/rivet >>> > _______________________________________________ > Rivet mailing list > Rivet at projects.hepforge.org > https://www.hepforge.org/lists/listinfo/rivet
More information about the Rivet mailing list |