Subject: Re: [IMP-users] Compiling IMP 2.5.0 on CentOS 7
From: "Novosielski, Ryan" <>
Date: Mon, 1 Feb 2016 22:07:01 -0500
Accept-language: en-US
Acceptlanguage: en-US
> On Feb 1, 2016, at 18:49, Ben Webb <> wrote:
>
>> On 2/1/16 2:29 PM, Novosielski, Ryan wrote:
>> Having a heck of a time trying to compile IMP 2.5.0 and its
>> dependencies. Hopefully someone can help. Note that below, the ones
>> that do not say (CentOS 7.2) are in non-standard locations under /opt
>> because we have to keep multiple versions of a lot of this stuff due
>> to other software depending on it.
>
> Just out of curiosity, why you didn't want to use the RHEL 7 RPM package?
I think at least using the binary RPM, I wouldn't have gotten the control I needed about where the software was installed. This is a multiuser system, and we keep installs of each version of software so that something doesn't break when there upgrades done. This is also on a network filesystem. I thought about looking into using the source RPM, but decided it probably didn't buy me much.
>> First I had a very difficult time getting it to even detect OpenCV.
>> My final solution was to set $PKG_CONFIG_PATH to include the
>> pkgconfig directory for OpenCV 2.3.1 and to symlink opencv.pc (which
>> was created by the build) to opencv22.pc
>
> I guess that would work. Or you could add the paths to
> CMAKE_INCLUDE_PATH and CMAKE_LIBRARY_PATH.
OK, thanks. It wasn't clear why it was failing, so I wasn't sure whether that would do it or not. Didn't get around to trying it before I thought of this. I'm not too familiar with the way CMake works.
>> Note that the documentation mentions that 2.1-2.3 works, but it
>> isnât clear whether thatâs actually true when a build failure claims
>> 2.2 is not detected and that is the reason it wonât build em2d.
>
> I'm not sure what you mean here... but we've built IMP with various
> versions of OpenCV, the oldest being 2.1 and the newest being 2.3.
During the build process, it reports that it doesn't find OpenCV version 2.1 or 2.2. It wasn't clear to me for a while whether it was finding 2.3 and discounting it because it was the wrong version number, or whether I had a problem finding OpenCV at all. I did see that the documentation says that 2.3 will work.
> RHEL and CentOS don't yet package OpenCV in any form (not even in EPEL), so
> on CentOS 7 the only version we've built with is that at
> http://integrativemodeling.org/build-extras/, 2.1 in this case
I actually looked today, BTW -- that's not true anymore, apparently. CentOS packages OpenCV 2.4.5. I had seen that, but it was not one of the versions that was listed as working, so I didn't want to make things any more complicated for myself.
>> Doing just a make fails on what looks like a problem with Boost.
>> Perhaps Boost 1.60.0 isnât supported?
>
> Boost 1.60 is broken - nothing we can do about that, sorry. Complain to
> the Boost folks. The relevant bug is here:
> https://svn.boost.org/trac/boost/ticket/11880
That's OK. A note on the website would be good though (eg. 1.40.00 or newer but NOT 1.60.00). I guessed that 1.60.0 was not working, but didn't want to guess at which ones do because that compile is not particularly pleasant either -- I'd like to do the minimum number of Boost builds.
> The Homebrew folks already ship Boost 1.60, so I've contributed a fix to
> them for that:
> https://github.com/Homebrew/homebrew/commit/7efd777
>
> RHEL 7 ships Boost 1.53 though so isn't affected. If you really want to
> use your own copy of Boost, you'll need to patch it yourself.
That only applies if I am using 1.60.0, right? I have no particular desire to use that version, so if 1.59.0 or 1.58.0 or something works, I'm happy with that. I don't want to use the OS copy, because it is too old for other software packages we use, and I would prefer not having it changed by surprise during upgrades.
Thanks again.