NeoGeographyToolkit / BinaryBuilder

Script for generating the binary builds of Stereo Pipeline
https://ti.arc.nasa.gov/tech/asr/groups/intelligent-robotics/ngt/stereo/
13 stars 22 forks source link

Build on Redhat 6.7 #9

Closed lawrencem closed 8 years ago

lawrencem commented 8 years ago

We have a project which is required to run on RedHat 6.7 and we are interested in using visionworkbench. I am trying to run the BinaryBuilder, but it is proving problematical. I had to install a more modern C compiler (4.9.3), and I had problems with the makefiles for isis and visionworkbench where they would not find LAPACK. Also, the version of hdf5 has changed, so I had to correct that as well. So after those changes, it builds but the following self-tests on visionworkbench fail: TestGeometry.cxx TestLevenbergMarquardt.cxx TestLinearAlgebra.cxx The failures all look similar to this:

./TestLevenbergMarquardt [==========] Running 2 tests from 1 test case. [----------] Global test environment set-up. [----------] 2 tests from LevenbergMarquardt [ RUN ] LevenbergMarquardt.least_squares_model [ OK ] LevenbergMarquardt.least_squares_model (0 ms) [ RUN ] LevenbergMarquardt.levenberg_marquardt unknown file: Failure C++ exception with description "LapackExports.cc:105LAPACK reported an error with argument 4294967296 in void vw::math::gelss(vw::math::f77_int, vw::math::f77_int, vw::math::f77int, double, vw::math::f77int, double, vw::math::f77int, double, double, vw::math::f77int, double_, vw::math::f77_int, vw::math::f77int)" thrown in the test body. [ FAILED ] LevenbergMarquardt.levenberg_marquardt (1 ms) [----------] 2 tests from LevenbergMarquardt (1 ms total)

[----------] Global test environment tear-down [==========] 2 tests from 1 test case ran. (1 ms total) [ PASSED ] 1 test. [ FAILED ] 1 test, listed below: [ FAILED ] LevenbergMarquardt.levenberg_marquardt

1 FAILED TEST

Since there are f77ints in there, and that number is a really big 32bit integer, I'm guessing that something ended up dividing by zero. Do you have any hints for where I might look or what might fix the problem, or if that isn't really something to worry about?

Thanks, Lawrence

oleg-alexandrov commented 8 years ago

I will look at the hdf5 error later. You won't need by the way to install ISIS if all you care about is visionworkbench. You may not even need hdf5 as well I think. There is a place in build.py where you can turn off stereopipeline, and these dependencies. That will make your life easier.

This is a weird error you are seeing. I wonder if you could turn off this check and see if other checks go through. LevenbergMarquardt is an optimization solver. We don't use it terribly much in VisionWorkbench I think. If every other test passes, I would not worry much about this one.

lawrencem commented 8 years ago

Oleg:

We will be using stereopipeline, so we have to have those. I will turn off that check tomorrow and will let you know what it does. I can send you the patches. They are pretty minimal.

Thanks! Lawrence

On Thu, May 19, 2016 at 6:47 PM, Oleg Alexandrov notifications@github.com wrote:

I will look at the hdf5 error later. You won't need by the way to install ISIS if all you care about is visionworkbench. You may not even need hdf5 as well I think. There is a place in build.py where you can turn off stereopipeline, and these dependencies. That will make your life easier.

This is a weird error you are seeing. I wonder if you could turn off this check and see if other checks go through. LevenbergMarquardt is an optimization solver. We don't use it terribly much in VisionWorkbench I think. If every other test passes, I would not worry much about this one.

— You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub https://github.com/NeoGeographyToolkit/BinaryBuilder/issues/9#issuecomment-220467437

oleg-alexandrov commented 8 years ago

Yes patches are very welcome! Oleg:

We will be using stereopipeline, so we have to have those. I will turn off that check tomorrow and will let you know what it does. I can send you the patches. They are pretty minimal.

Thanks! Lawrence

On Thu, May 19, 2016 at 6:47 PM, Oleg Alexandrov notifications@github.com wrote:

I will look at the hdf5 error later. You won't need by the way to install ISIS if all you care about is visionworkbench. You may not even need hdf5 as well I think. There is a place in build.py where you can turn off stereopipeline, and these dependencies. That will make your life easier.

This is a weird error you are seeing. I wonder if you could turn off this check and see if other checks go through. LevenbergMarquardt is an optimization solver. We don't use it terribly much in VisionWorkbench I think. If every other test passes, I would not worry much about this one.

— You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub < https://github.com/NeoGeographyToolkit/BinaryBuilder/issues/9#issuecomment-220467437

— You are receiving this because you commented. Reply to this email directly or view it on GitHub https://github.com/NeoGeographyToolkit/BinaryBuilder/issues/9#issuecomment-220516651

lawrencem commented 8 years ago

I tried the latest version, and it gets as far as the stereopipeline install. The configure script can't seem to find isis or visionworkbench. They are both installed. Here are the lines from done.txt: visionworkbench a0222fa8fd6b508b8c133768a263c2c9c467603c isis 3.4.12.6662 I tried adding --with-XXX=/opt/BinaryBuilder/build_asp/install and then --with-XXX=yes where applicable, but it ends up with this:

./configure: line 42564: /inc/Constants.h: No such file or directory ./configure: line 42567: /inc/Constants.h: No such file or directory configure: error: Unable to detect ISIS version

What do I need to do to stereopipeline to get it to find isis and visionworkbench?

Thanks, Lawrence

oleg-alexandrov commented 8 years ago

This is odd. You can cd into your /opt/BinaryBuilder/build_asp/build/stereopipeline/stereopipeline-git and examine there the file named config.options. Ideally on top it should have lines like:

The path to the installed 3rd party libraries BASE= /opt/BinaryBuilder/build_asp/install

The location of the VW install directory VW= /opt/BinaryBuilder/build_asp/install

Installation prefix PREFIX= /opt/BinaryBuilder/build_asp/install

Then typing purely ./configure should be enough. If nothing else works, you can try setting

export ISISROOT= /opt/BinaryBuilder/build_asp/build/isis/isis_original

before running ./configure, maybe that will help.

In either case, look inside of your config.log and see where the problems start showing up. Sometimes the initial error is an unexpected place.

lawrencem commented 8 years ago

I found an error that said "cannot find -lgfortran". When I built gcc 4.9.2, I only built gcc and g++. So I am rebuilding gcc with languages=c,c++,fortran. I will let you know what happens.

oleg-alexandrov commented 8 years ago

I thought BinaryBuilder would die if it would not find the gfortran program. Maybe it found an older version, but could not find libgfortran. Not sure.

lawrencem commented 8 years ago

Red Hat 6.7 has gcc 4.4.7, which lacks c++11, so you have to have at least version 4.8 for it to work. I built gcc 4.9.2 in /opt and added /opt/bin at the beginning of the path. I also added /opt/BinaryBuilder/build_asp/install/lib and /opt/lib64 to the ld.so.conf. I thought that would make it find libgfortran, but it didn't. However, the good news is that the build completed once I added fortran to the bcc build!!! I am getting the patches for BinaryBuilder together now. I will test them and then get them to you.

lawrencem commented 8 years ago

Oleg:

I have gotten to OK to forward the patch for running BinaryBuilder on RHEL 6.7. I just tested it today, and you guys seem to have fixed some of them. There are few left. Here is the patch. It is for Packages.py

Packages.py.diff.zip

oleg-alexandrov commented 8 years ago

Hey Lawrence,

First, a patch of several lines, packaged into a zip file, makes me nervous. :) Was it hard to give a text file instead? :) Here's your patch:

--- Packages.py 2016-06-14 15:29:38.090893912 -0400 +++ Packages.py.orig 2016-06-14 12:00:46.371773553 -0400 @@ -291,7 +291,7 @@ @stage def configure(self): w = ['zlib=%(INSTALL_DIR)s' % self.env]

@@ -360,7 +360,7 @@ self.helper(*cmd)

class hd5(Package):

It makes me very confused. the lines with the "+" is exactly what we have now. Do you mean the opposite, I should adopt the lines with the "-"?

It does look that way for the hd5 download page. Regarding the building of curl, where you now want to build it with ssl support, are you saying you were having problems if ssl was not enabled? Just wanting to make sure. I just tried building curl with ssl support and it does work on all our platforms.

On Tue, Jun 14, 2016 at 12:35 PM, Lawrence MacIntyre < notifications@github.com> wrote:

Closed #9 https://github.com/NeoGeographyToolkit/BinaryBuilder/issues/9.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/NeoGeographyToolkit/BinaryBuilder/issues/9#event-692330915, or mute the thread https://github.com/notifications/unsubscribe/ABQ6bNvIm-FsWZNAig1d4IRSDrOIMKy5ks5qLwJ7gaJpZM4IiqYm .

lawrencem commented 8 years ago

Sorry, I sent you a reverse patch. The reason it was zipped was the web interface wouldn't let me upload the .patch file. The addition of SSL was because one of the downloads was HTTPS:// and curl didn't work on that URL without SSL. On Jun 14, 2016 5:56 PM, "Oleg Alexandrov" notifications@github.com wrote:

Hey Lawrence,

First, a patch of several lines, packaged into a zip file, makes me nervous. :) Was it hard to give a text file instead? :) Here's your patch:

--- Packages.py 2016-06-14 15:29:38.090893912 -0400 +++ Packages.py.orig 2016-06-14 12:00:46.371773553 -0400 @@ -291,7 +291,7 @@ @stage def configure(self): w = ['zlib=%(INSTALL_DIR)s' % self.env]

@@ -360,7 +360,7 @@ self.helper(*cmd)

class hd5(Package):

It makes me very confused. the lines with the "+" is exactly what we have now. Do you mean the opposite, I should adopt the lines with the "-"?

It does look that way for the hd5 download page. Regarding the building of curl, where you now want to build it with ssl support, are you saying you were having problems if ssl was not enabled? Just wanting to make sure. I just tried building curl with ssl support and it does work on all our platforms.

On Tue, Jun 14, 2016 at 12:35 PM, Lawrence MacIntyre < notifications@github.com> wrote:

Closed #9 https://github.com/NeoGeographyToolkit/BinaryBuilder/issues/9.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub < https://github.com/NeoGeographyToolkit/BinaryBuilder/issues/9#event-692330915 , or mute the thread < https://github.com/notifications/unsubscribe/ABQ6bNvIm-FsWZNAig1d4IRSDrOIMKy5ks5qLwJ7gaJpZM4IiqYm

.

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/NeoGeographyToolkit/BinaryBuilder/issues/9#issuecomment-226028375, or mute the thread https://github.com/notifications/unsubscribe/ABT_kYhkVbXjbB_cJuJ7HzG5xgZkNFWGks5qLyN_gaJpZM4IiqYm .

oleg-alexandrov commented 8 years ago

Got it. Thanks. I applied the patch. Let us know how the tools are working for you.