OpenDroneMap / ODM

A command line toolkit to generate maps, point clouds, 3D models and DEMs from drone, balloon or kite images. 📷
https://opendronemap.org
GNU Affero General Public License v3.0
4.81k stars 1.09k forks source link

Compatibility with Ubuntu 12.04 #208

Closed dakotabenjamin closed 7 years ago

dakotabenjamin commented 8 years ago

I'm working on the branch called pp-precise-comp in order to improve compatibility with Ubuntu 12.04, which is supported until 2017. It would appear that there are a few issues with this:

Any help would be appreciated.

dakotabenjamin commented 8 years ago

Here is my kludge approach to getting it working in 12.04 (from the gh-pages branch) NOTE OpenSfM does not work; you must specify --use-bundler in the run command.


#cmake
curl --progress-bar --location -o cmake-3.4.0.tar.gz https://cmake.org/files/v3.4/cmake-3.4.0.tar.gz
tar xvf cmake-3.4.0.tar.gz
cd cmake-3.4.0
./bootstrap && make && sudo make install
cd 

curl --progress-bar --location -o gflags.tar.gz https://github.com/gflags/gflags/archive/v2.0.tar.gz
tar xvf gflags.tar.gz
cd gflags-2.0
./configure && make && make install
cd

#install google glog:
curl --progress-bar --location -o glog.tar.gz https://github.com/google/glog/archive/v0.3.4.tar.gz
tar xvf glog.tar.gz
cd glog-0.3.4
./configure
make
sudo make install
cd

#compile suitesparse:
curl --progress-bar --location -o suitesparse.tar.gz http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-4.2.1.tar.gz
tar xvf suitesparse.tar.gz
cd SuiteSparse/
make
sudo make install
cd

# Eigen 3:
curl --progress-bar --location -o eigen3.tar.gz https://bitbucket.org/eigen/eigen/get/3.2.0.tar.gz
tar xvf eigen3.tar.gz
cd eigen-eigen-ffa86ffb5570/
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
sudo make install
cd 

# Replace ln 117-130 in install.sh with:
sudo apt-get install --assume-yes --install-recommends \
  build-essential g++ gcc gFortran perl git autoconf \
  curl wget \
  unzip \
  imagemagick jhead proj-bin libproj-dev\
  libjpeg-dev libboost1.46-dev libgsl0-dev libx11-dev libxext-dev liblapack-dev \
  libflann-dev libvtk5-dev libqhull-dev libusb-1.0-0-dev\
  libzip-dev \
  libswitch-perl libjson-perl \
  libcv-dev libcvaux-dev libopencv-dev \
  gdal-bin \
  exiv2 \
  libatlas-base-dev \
  python-dev python-pip \
  python-numpy-dev python-scipy python-yaml \
  python-opencv python-pyexiv2 \
  > "$TOOLS_LOG_PATH/apt-get_install.log" 2>&1
dakotabenjamin commented 8 years ago

@paulinus why do you think OpenSfM doesn't work under 12.04 and what steps do you think I should take to get it functional? It compiles alright but running it runs into this error:

Traceback (most recent call last):
  File "/home/vagrant/OpenDroneMap/src/OpenSfM/bin/detect_features", line 11, in <module>
    from opensfm import features
  File "/home/vagrant/OpenDroneMap/src/OpenSfM/opensfm/features.py", line 12, in <module>
    import csfm
ImportError: /home/vagrant/OpenDroneMap/src/OpenSfM/opensfm/csfm.so: undefined symbol: cs_di_chol
b

quitting cause:
        PYTHONPATH=/home/vagrant/OpenDroneMap/lib/python2.7/dist-packages "/home/vagrant/OpenDroneMap/src/OpenSfM/bin/ru
n_all" opensfm
returned with code 256.

The only issue I found in OpenSfM was #41. Was there any resolution? Do I need to fix to libsuitesparse build?

paulinus commented 8 years ago

This seems a problem with ceres and its dependencies. I'm trying to reproduce it. Will let you know when i get something.

dakotabenjamin commented 8 years ago

Updated:


#cmake
curl --progress-bar --location -o cmake-3.4.0.tar.gz https://cmake.org/files/v3.4/cmake-3.4.0.tar.gz
tar xvf cmake-3.4.0.tar.gz
cd cmake-3.4.0
./bootstrap && make && sudo make install
cd 

curl --progress-bar --location -o gflags.tar.gz https://github.com/gflags/gflags/archive/v2.0.tar.gz
tar xvf gflags.tar.gz
cd gflags-2.0
./configure && make && make install
cd

#install google glog:
curl --progress-bar --location -o glog.tar.gz https://github.com/google/glog/archive/v0.3.4.tar.gz
tar xvf glog.tar.gz
cd glog-0.3.4
./configure
make
sudo make install
cd

#compile suitesparse:
curl --progress-bar --location -o suitesparse.tar.gz http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-4.2.1.tar.gz
tar xvf suitesparse.tar.gz
cd SuiteSparse/
make
sudo make install
cd

# Eigen 3:
curl --progress-bar --location -o eigen3.tar.gz https://bitbucket.org/eigen/eigen/get/3.2.0.tar.gz
tar xvf eigen3.tar.gz
cd eigen-eigen-ffa86ffb5570/
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
sudo make install
cd 

# Opencv
curl --progress-bar --location -o opencv.zip https://github.com/Itseez/opencv/archive/2.4.11.zip
unzip opencv.zip
cd opencv-2.4.11/
mkdir build && cd build
cmake ..
sudo make install

# Replace ln 117-130 in install.sh with:
sudo apt-get install --assume-yes --install-recommends \
  build-essential g++ gcc gFortran perl git autoconf \
  curl wget \
  unzip \
  imagemagick jhead proj-bin libproj-dev\
  libjpeg-dev libboost1.46-dev libgsl0-dev libx11-dev libxext-dev liblapack-dev \
  libflann-dev libvtk5-dev libqhull-dev libusb-1.0-0-dev\
  libzip-dev \
  libswitch-perl libjson-perl \
  gdal-bin \
  exiv2 \
  libatlas-base-dev \
  python-dev python-pip \
  python-numpy-dev python-scipy python-yaml \
  python-pyexiv2 \
  > "$TOOLS_LOG_PATH/apt-get_install.log" 2>&1
yjmenezes commented 8 years ago

i failed to run install.sh under Debian 7.9, it seems the problem is automake version. Debian 7.9 automake is 1.11.6 and google glog require 1.14

I have success running install.sh under Debian 8.2, automake version 1.14.1

i hope it helps to fix Ubuntu 12.04.

julio menezes

yjmenezes commented 8 years ago

I got Script finished under Ubuntu 12.04.5, i hope this build is ok !

Some minor changes: a) fix missing "sudo" make install ( gflags ) b) install automake 1.15 for glog and ceres c) replace libboost 1.46 by 1.48

julio menezes PS: fix1204.sh bellow

#!/bin/bash
# issue 208 fix Ubuntu 12.04.5  ver 1.0 2015-12-04
# git clone https://github.com/OpenDroneMap/OpenDroneMap.git
# https://github.com/OpenDroneMap/OpenDroneMap/issues/208  Add custom glog #2
# TODO pcl require replace libboost 1.46.1 by 1.47 or newer
echo "step0 | automake | boost | cmake | gflags | glog | suitesparces | eigen3 | opencv | help" 1>&2
case $1 in
"step0")
sudo apt-get update

sudo apt-get install --assume-yes --install-recommends build-essential g++ gcc gFortran \
 perl git autoconf  curl wget  unzip  imagemagick jhead proj-bin libproj-dev  \
 libjpeg-dev  libgsl0-dev libx11-dev libxext-dev liblapack-dev \
 libflann-dev libvtk5-dev libqhull-dev libusb-1.0-0-dev libzip-dev  \
 libswitch-perl libjson-perl  \
 gdal-bin  exiv2  libatlas-base-dev \
 python-dev python-pip  python-numpy-dev python-scipy python-yaml  python-pyexiv2 
;;
#                                        
# automake for glog and ceres
"automake")
curl --progress-bar --location -o automake.tar.gz http://ftp.gnu.org/gnu/automake/automake-1.15.tar.gz
tar xzvf automake.tar.gz
cd automake-1.15
./configure
make
sudo make install
automake --version 1>&2
echo "done automake" $(date) 1>&2
cd
;;

"boost")
# ubuntu synaptic :  libboost-all-dev 1.48.0.2
#curl --progress-bar --location -o boost.tar.bz2 http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.bz2
dpkg -S /usr/include/boost/version.hpp
sudo apt-get autoremove libboost1.46-dev
# newer for PCL
sudo apt-get install  libboost1.48-all-dev
dpkg -S /usr/include/boost/version.hpp
#
cd
;;
#cmake
"cmake")
curl --progress-bar --location -o cmake-3.4.0.tar.gz https://cmake.org/files/v3.4/cmake-3.4.0.tar.gz
tar xvf cmake-3.4.0.tar.gz
cd cmake-3.4.0
./bootstrap && make && sudo make install
cd 
;;
"gflags")
curl --progress-bar --location -o gflags.tar.gz https://github.com/gflags/gflags/archive/v2.0.tar.gz
tar xvf gflags.tar.gz
cd gflags-2.0
./configure && make && sudo make install
cd
;;
"glog")
[ -d glog-0.3.4 ] && sudo rm -r glog-0.3.4
#install google glog:
curl --progress-bar --location -o glog.tar.gz https://github.com/google/glog/archive/v0.3.4.tar.gz
tar xvf glog.tar.gz
cd glog-0.3.4
./configure
make
sudo make install
cd
;;
"suitesparses")
#compile suitesparse:
curl --progress-bar --location -o suitesparse.tar.gz http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-4.2.1.tar.gz
tar xvf suitesparse.tar.gz
cd SuiteSparse/
make
sudo make install
cd
;;
"eigen3")
# Eigen 3:
curl --progress-bar --location -o eigen3.tar.gz https://bitbucket.org/eigen/eigen/get/3.2.0.tar.gz
tar xvf eigen3.tar.gz
cd eigen-eigen-ffa86ffb5570/
mkdir -p build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
sudo make install
cd 
;;
"opencv")
# Opencv
curl --progress-bar --location -o opencv.zip https://github.com/Itseez/opencv/archive/2.4.11.zip
unzip opencv.zip
cd opencv-2.4.11/
mkdir -p build && cd build
cmake ..
sudo make install
cd
;;
"help")
echo "please, select a task" 1>&2
;;
*)
esac
exit 0

# Replace ln 117-130 in install.sh with:
# Please, remove  libboost1.46-dev, replace by newer for PCL
yjmenezes commented 8 years ago

I apologise, i did not type bold or upercase. regards, julio menezes

yjmenezes commented 8 years ago

Fixed for Debian 7.9 Wheezy, need tests.

[]s julio menezes

fixdeb7_sh.txt

smathermather commented 7 years ago

Are we giving up on 12.04? If so, we should close this issue.

dakotabenjamin commented 7 years ago

16.04 is the new LTS so yeah