GFOSS.it Live DVD Install

Steps for configuring and installing. Based on SIDUX Linux platform. (this note works on Debian too, and everytime you do an upgrade see what you are updating ... because it can break the source installation ;-) )
== Update Distribution ==
If this is a new SIDUX install, you likely need to upgrade a bunch of stuff.
* exit desktop GUI, shutdown gdm using command:
** init 3
* sudo apt-get update
* sudo apt-get dist-upgrade
* restart desktop whenever you want: 
**init 5 && exit
== Add Main Dependencies ==
This is all one loooong line
 su
 apt-get install subversion build-essential python-dev lesstif2 libfftw3-3 libgeos-3.1.0 libgeos-c1 libhdf4g libhdf5-serial-1.6.6-0 libicu40 libmysqlclient15off libnetcdf4 libogdi3.2 libpq5 libproj-dev libproj0 libwxbase2.8-0 libwxgtk2.8-0 libxerces-c28 libxp6 mysql-common odbcinst1debian1 proj-data tk8.5 unixodbc comerr-dev libaudio2 libcurl4-gnutls-dev libgcrypt11-dev libgeos-dev libgif-dev libgnutls-dev libgpg-error-dev libgssrpc4 libhdf4g-dev libhdf5-serial-dev libidn11-dev libjasper-dev libjpeg62-dev libkadm5srv6 libkdb5-4 libkrb5-dev libldap2-dev libltdl-dev libmysqlclient15-dev libnetcdf-dev libodbcinstq1c2 libpng12-dev libpq-dev libqt3-mt libsqlite3-dev libssl-dev libtasn1-3-dev libtiff4-dev libtiffxx0c2 libxerces-c2-dev pkg-config unixodbc-dev zlib1g-dev libqt4-core libqt4-dev libqt4-gui libqt4-qt3support libqt4-sql lsb-qt4 qt4-designer qt4-dev-tools qt4-doc qt4-qtconfig uim-qt gcc libapt-pkg-perl resolvconf libgsl0-dev g++ ccache make flex bison cmake txt2tags python-qt4 python-qt4-dev python-sip4 sip4 python-sip4-dev postgresql-8.3-postgis osm2pgsql phppgadmin libexpat1-dev libspatialite-dev spatialite-bin tk8.5-dev tcl8.5-dev libreadline5-dev libfreetype6-dev libcairo2-dev ffmpeg libavcodec-dev libavfilter-dev libavformat-dev libavutil-dev libswscale-dev libglu1-mesa-dev libgl1-mesa-dev mesa-common-dev libcoin40c2 libgeotiff-dev geotiff-bin nano cmake-curses-gui libfftw3-dev python-wxgtk2.8 libwxbase2.8-dev libwxgtk2.8-dev python-opengl swig libxmu-dev libavdevice-dev libxmu-dev libavdevice-dev libgnutls-dev libqt4-opengl-dev python-pygame python-serial python-psycopg2 python-simplejson python-qwt5-qt4 python-qwt3d-qt4 python-pysqlite2 python-scipy python-matplotlib python-simpleparse python-qt4-sql r-base-dev python-rpy2 paraview gedit ipython jam doxygen pommed
 apt-get clean
Here it is split but only for display purposes:
 su
 apt-get install subversion build-essential python-dev lesstif2 libfftw3-3 libgeos-3.1.0 \
 libgeos-c1 libhdf4g libhdf5-serial-1.6.6-0 libicu40 libmysqlclient15off libnetcdf4 \ 
 libogdi3.2 libpq5 libproj-dev libproj0 libwxbase2.8-0 libwxgtk2.8-0 libxerces-c28 \
 libxp6 mysql-common odbcinst1debian1 proj-data tk8.5 unixodbc comerr-dev libaudio2 \ 
 libcurl4-gnutls-dev libgcrypt11-dev libgeos-dev libgif-dev libgnutls-dev \ 
 libgpg-error-dev libgssrpc4 libhdf4g-dev libhdf5-serial-dev libidn11-dev \ 
 libjasper-dev libjpeg62-dev libkadm5srv6 libkdb5-4 libkrb5-dev libldap2-dev \ 
 libltdl-dev libmysqlclient15-dev libnetcdf-dev libodbcinstq1c2 libpng12-dev \ 
 libpq-dev libqt3-mt libsqlite3-dev libssl-dev libtasn1-3-dev libtiff4-dev \ 
 libtiffxx0c2 libxerces-c2-dev pkg-config unixodbc-dev zlib1g-dev libqt4-core \ 
 libqt4-dev libqt4-gui libqt4-qt3support libqt4-sql lsb-qt4 qt4-designer \ 
 qt4-dev-tools qt4-doc qt4-qtconfig uim-qt gcc libapt-pkg-perl resolvconf libgsl0-dev \ 
 g++ ccache make flex bison cmake txt2tags python-qt4 python-qt4-dev python-sip4 sip4 \ 
 python-sip4-dev postgresql-8.3-postgis osm2pgsql phppgadmin libexpat1-dev libspatialite-dev \ 
 spatialite-bin tk8.5-dev tcl8.5-dev libreadline5-dev libfreetype6-dev libcairo2-dev \ 
 ffmpeg libavcodec-dev libavfilter-dev libavformat-dev libavutil-dev libswscale-dev \ 
 libglu1-mesa-dev libgl1-mesa-dev mesa-common-dev libcoin40c2 libgeotiff-dev geotiff-bin \ 
 nano cmake-curses-gui libfftw3-dev python-wxgtk2.8 libwxbase2.8-dev libwxgtk2.8-dev python-opengl \ 
 swig libxmu-dev libavdevice-dev libxmu-dev libavdevice-dev libgnutls-dev libqt4-opengl-dev \ 
 python-pygame python-serial python-psycopg2 python-simplejson python-qwt5-qt4 python-qwt3d-qt4 \ 
 python-pysqlite2 python-scipy python-matplotlib python-simpleparse python-qt4-sql r-base-dev \ 
 python-rpy2 paraview gedit ipython pommed
The ffmpeg install include files in a non standard place so a symbolic link for each include file is needed :
 mkdir /usr/include/ffmpeg
 ln -s /usr/include/libavcodec/avcodec.h /usr/include/libavcodec/opt.h /usr/include/libavcodec/vdpau.h /usr/include/libavcodec/xvmc.h /usr/include/libavdevice/avdevice.h /usr/include/libavfilter/avfilter.h /usr/include/libavformat/avformat.h /usr/include/libavformat/avio.h /usr/include/libavutil/adler32.h /usr/include/libavutil/avstring.h /usr/include/libavutil/avutil.h /usr/include/libavutil/base64.h /usr/include/libavutil/common.h /usr/include/libavutil/crc.h /usr/include/libavutil/fifo.h /usr/include/libavutil/intfloat_readwrite.h /usr/include/libavutil/log.h /usr/include/libavutil/lzo.h /usr/include/libavutil/mathematics.h /usr/include/libavutil/md5.h /usr/include/libavutil/mem.h /usr/include/libavutil/pixfmt.h /usr/include/libavutil/random.h /usr/include/libavutil/rational.h /usr/include/libavutil/sha1.h /usr/include/libswscale/swscale.h /usr/include/ffmpeg/
to have linked the libraries in /usr/local/lib and the files we'll install from source, we need to add configuration files in /etc/ld.so.conf.d/ , so in a terminal :
 su
 touch /etc/ld.so.conf.d/local.conf
 echo "/usr/local/lib" >> /etc/ld.so.conf.d/local.conf
 echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local.conf
 touch /etc/ld.so.conf.d/grass.conf
 echo "/usr/local/grass-7.0.svn/lib" >> /etc/ld.so.conf.d/grass.conf
 ldconfig
 exit
== Checkout GFOSS Apps ==
Downloading the code from SVN repositories for GRASS, GDAL/OGR, QGIS, OpenSceneGraph (to support OssimPlanet), OSSIM
 
=== GDAL/OGR ===
 cd /usr/local/src
 svn checkout https://svn.osgeo.org/gdal/trunk/gdal gdal 
 cd gdal
 ./configure --with-python --with-geos=/usr/bin/geos-config --with-libtiff=internal --with-mysql --with-ogdi
 make
 su
 make install
 exit
=== GRASS GIS === 
You can chose to build *one of* the 6.5-devel versions or the latest dev-release 7.0. (adapt the file: "etc/ld.so.conf.d/grass.conf" to match your grass version - [7.0] : /usr/local/grass-7.0.svn/lib - [6.5]: /usr/local/grass-6.5.svn/lib )
- version : 6.5
 svn checkout https://svn.osgeo.org/grass/grass/branches/develbranch_6 grass6_devel 
 ./configure --with-tcltk-includes=/usr/include/tcl8.5/ --with-freetype-includes=/usr/include/freetype2/ --with-cxx --enable-64bit --with-geos --with-ffmpeg --with-mysql --with-postgres --with-postgres-includes=/usr/include/postgresql/ --with-mysql-includes=/usr/include/mysql/ --with-ffmpeg-includes=/usr/include/ffmpeg/ --with-odbc --with-python --with-sqlite --with-wxwidgets=/usr/bin/wx-config --with-readline --enable-largefile --with-proj-share=/usr/share/proj
 make
 su
 make install
 exit
- version : 7.0
 cd /usr/local/src 
 svn checkout https://svn.osgeo.org/grass/grass/trunk grass_trunk 
 ./configure --with-tcltk-includes=/usr/include/tcl8.5/ --with-freetype-includes=/usr/include/freetype2/ --with-cxx --enable-64bit --with-geos --with-ffmpeg --with-mysql --with-postgres --with-postgres-includes=/usr/include/postgresql/ --with-mysql-includes=/usr/include/mysql/ --with-ffmpeg-includes=/usr/include/ffmpeg/ --with-odbc --with-python --with-sqlite --with-wxwidgets=/usr/bin/wx-config --with-pthread --with-readline --enable-largefile
 make
 su
 make install
 exit
=== GDAL-GRASS Plug-In === 
 cd /usr/local/src/gdal/frmts/grass
 make dist
 # this will generate a tar.gz file contains the gdal-grass plug-in, untar it somewhere
 # cd in and configure it using :
 ./configure --with-gdal=/usr/local/bin/gdal-config --with-grass=/usr/local/grass-7.0.svn/ # (check the version match)
 make
 su
 make install
 exit
 
=== QGIS ===
 cd /usr/local/src
 svn co https://svn.osgeo.org/qgis/trunk/qgis qgis
 cd qgis
 mkdir build
 cd build
 ccmake ..
 # this command will open a text gui
 # its usage is simple : 
 # - up/down arrow key to navigate the configurable options
 # - enter key to modify an option
 # - c key to configure
 # - g key to generate makefile
 #
 # changes the following var : 
 # 
 ###
 #
 # BINDINGS_GLOBAL_INSTALL ON
 #
 # CMAKE_BUILD_TYPE Debug
 #
 # GRASS_PREFIX /usr/local/grass-7.0.svn 
 #
 # PEDANTIC ON
 #
 ###
 # press "c" to configure
 # press "g" to generate makefile
 make
 su
 make install
 exit
# note : recently qgis has changed build system for grass-plug-in
# it search the Q-Grass modules in a directory named :
# mudules-6.4 / -6.3 , just copy : /usr/local/src/qgis/src/plugins/grass/modules-6.4 to 
# /usr/local/src/qgis/src/plugins/grass/modules-6.5
# or modules-7.0 (based on the installed grass-version)
# ... and test it, feedback to the qgis/grass lists is welcome
=== OpenSceneGraph ===
 cd /usr/local/src
 svn co http://www.openscenegraph.org/svn/osg/OpenSceneGraph/tags/OpenSceneGraph-2.8.2 OpenSceneGraph
 cd OpenSceneGraph
 mkdir build
 cd build
 ccmake ..
 # press "c"
 # press "g"
 make
 su 
 make install
 exit
=== GPS Toolkit "GPSTK" ===
 cd /usr/local/src
 svn checkout https://gpstk.svn.sourceforge.net/svnroot/gpstk 
 cd gpstk/dev/
 jam
 doxygen
 su
 jam install
 exit
=== OSSIM ===
First set some environmental variables needed for the build :
 cd
 echo "export OSSIM_DEV_HOME=/usr/local/src/ossim" >> .bashrc
 echo "export OSSIM_HOME=/usr/local/src/ossim/ossim" >> .bashrc
 echo "export OSSIM_QT_HOME=/usr/local/src/ossim/ossim_qt" >> .bashrc
 echo "export OSSIM_LIB_DIR=/usr/local/src/ossim/ossim/lib/ossim" >> .bashrc
 echo "export OSSIM_INC_DIR=/usr/local/src/ossim/ossim/include" >> .bashrc
Download the source code :
 cd /usr/local/src/
 mkdir ossim
 cd ossim
 svn co http://svn.osgeo.org/ossim/trunk .
Install Ossim Core libraries :
 cd ossim
 ./configure
 make
 su
 make install
 exit
Install libwms :
 cd ../libwms
 make
 su
 make install
 exit
Install OssimPredator :
 cd ../ossimPredator
 mkdir lib
 cd src
 # add : OSSIM_HOME=/usr/local/src/ossim/ossim in the GNUmakefile then :
 OSSIM_HOME=/usr/local/src/ossim/ossim/
 export OSSIM_HOME
 OSSIM_DEV_HOME=/usr/local/src/ossim/
 export OSSIM_DEV_HOME
 make
 su
 make install
 exit
Install Ossim_Qt4 :
 cd /usr/local/src/ossim/ossim_qt4
 qmake ossim_qt4.pro
 make
 su
 make install
 exit
Install OssimPlanet :
 
 cd /usr/local/src/ossim/ossimPlanet
 make
 su
 make install
 exit
Install OssimPlanetQt :
 cd ../ossimPlanetQt
 qmake ossimPlanetQt.pro
 make
 su
 make install
 exit
Install ossim_plugins :
 
 cd /usr/local/src/ossim_plugins
 nano make_opt.in
 # uncommend the GDAL_HOME varible to : 
 #
 GDAL_HOME=/usr/local
 #
 # ctr+x to save and exit from nano editor
 make make_options
 make
 cd ossim
 make
 cd ../png
 make
 cd ../contrib
 make
 cd ../registration
 make
 cd ../ossim
 make
Now ready to setup an ossim preference directory where we can store some local data :
 cd
 mkdir .ossim
 cp -r $OSSIM_DEV_HOME/ossim_package_support/fonts .ossim/fonts
 cp -r $OSSIM_DEV_HOME/ossim_package_support/geoids .ossim/geoids
 cp -r $OSSIM_DEV_HOME/ossim_package_support/images .ossim/images
 cp -r $OSSIM_DEV_HOME/ossim_plugins/lib .ossim/plugins
Create a file called "ossim_preference" :
Ossim_Preference is a file like :
 plugin.file1: /usr/local/src/ossim/ossim_plugins/lib/libossimreg_plugin.so 
 plugin.file2: /usr/local/src/ossim/ossim_plugins/lib/libossimgdal_plugin.so
 plugin.file3: /usr/local/src/ossim/ossim_plugins/lib/libossimcontrib_plugin.so
 plugin.file4: /usr/local/src/ossim/ossim_plugins/lib/libossim_plugin.so
 plugin.file5: /usr/local/src/ossim/ossim_plugins/lib/libossimpng_plugin.so
export it : 
 OSSIM_PREFS_FILE=/path/to/ossim_preference
 export OSSIM_PREFS_FILE
=== The rest to come... ===
 
Category: Live-demo
Category: Software Stack