[mapguide-users] Instructions and modifications to build MGOS 1.1.0
on Debian as non-root
Alexandre Leroux
alexandre.leroux at ec.gc.ca
Fri Jun 8 11:08:09 EDT 2007
Hi list,
I want to share with you the instructions and modifications required to
build MGOS 1.1.0 on Debian as non-root. We have not made extensive
tests, but it seems to work entirely. Some of the modifications below
are required to build MGOS on Debian even as root.
This comes from one of my colleagues, not myself (I haven't got the time
yet to play with MGOS). There's some additions in there that could be
added in the source code. These instructions could also be copied to a
wiki or somewhere where people would look for these.
Don't hesitate to provide feedback.
Thanks!
Alex
------------------------------------------------------------------------------------------------
build-install notes for MGOS-1.1.0
(with FDO-3.2.0,
jdk1.5.0_11,
php-5.0.5,
apache-httpd-2.0.55,
tomcat-5.5.12 and
jakarta-tomcat-connectors-1.2.15 )
on a Debian Sarge 3.1 local linux machine using GCC 3.3.5 (Debian 1:3.3.5-13).
------------------------------------------------------------------------------------------------
1). install jdk1.5.0_11 locally ( in <MGOS local path> ex. /data/anUser/somewhere/MGOS )
cd <MGOS local path>
extract jdk.5.0_11 with the automated installer jdk-1_5_0_11-linux-i586.bin as follows:
<parent path to jdk.5.0_11 installer executable>/jdk-1_5_0_11-linux-i586.bin
and set JAVA_HOME env. variable:
export JAVA_HOME=<MGOS local path>/jdk1.5.0_11
2). apache-php-tomcat: ( tar archive mapguideaptinstaller-1.1.0.tar.gz )
cd <MGOS local path>
tar -zxvf <parent path to archive>/mapguideaptinstaller-1.1.0.tar.gz
modify script build_apt.sh:
-> change variable INSTALLDIR to <MGOS local path>/mgos
-> in php build procedure -> replace --with-curl by --without-curl
launch build_apt.sh with the option --with-tomcat
if everything went well then:
Add command "setEnv PHPRC <MGOS local path>/mgos/webserverextensions/php/lib"
to apache2 conf. file <MGOS local path>/mgos/webserverextensions/apache2/conf/mapguide.conf
( This will ensure that php config. file php.ini will be found by php scripts called
by http requests ... )
add these three export commands
export JAVA_HOME=<MGOS local path>/mgos/jdk1.5.0_11
export LD_LIBRARY_PATH=<MGOS local path>/mgos/webserverextensions/lib:<local path>/mgos/lib:$LD_LIBRARY_PATH
export JAVA_OPTS="-Djava.library.path=$LD_LIBRARY_PATH"
to the tomcat startup script <MGOS local path>/mgos/webserverextensions/tomcat/bin/startup.sh and
add the single export command
export JAVA_HOME=<MGOS local path>/mgos/jdk1.5.0_11
to the tomcat shutdown script <MGOS local path>/mgos/webserverextensions/tomcat/bin/shutdown.sh
3). FDO:
cd <MGOS local path>
extract all FDO tar.gz archives as follows :
tar -zxvf <parent path to FDO tar archives>/fdo-3.2.0.tar.gz
tar -zxvf <parent path to FDO tar archives>/fdosdf-3.2.0.tar.gz
tar -zxvf <parent path to FDO tar archives>/fdoshp-3.2.0.tar.gz
tar -zxvf <parent path to FDO tar archives>/fdogdal-3.2.0.tar.gz
tar -zxvf <parent path to FDO tar archives>/fdowfs-3.2.0.tar.gz
tar -zxvf <parent path to FDO tar archives>/fdowms-3.2.0.tar.gz
cd OpenSource_FDO
modify setenvironment.sh file as follows:
-> replace line mkdir -p /usr/local/fdo-3.2.0/lib
by
mkdir -p <MGOS local path>/fdo-3.2.0/lib
-> replace line export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/fdo-3.2.0/lib
by
export LD_LIBRARY_PATH=<MGOS local path>/fdo-3.2.0/lib:$LD_LIBRARY_PATH
include the file contents in your env.
. setenvironment.sh
modify script build_thirdparty.sh as follows:
-> replace aclocal by aclocal-1.8
-> replace automake by automake-1.8
-> ./configure becomes ./configure --prefix=<MGOS local path>/fdo-3.2.0
add the missing include command -I$(FDOTHIRDPARTY)/libcurl/include in INCLUDES
directives in file <MGOS local path>/OpenSource_FDO/Utilities/OWS/Src/Makefile.am
build_linux.sh -> replace aclocal by aclocal-1.8
-> replace automake by automake-1.8
-> ./configure becomes ./configure --prefix=<local path>/fdo-3.2.0
-> replace all /usr/local path definition with <local path>
repeat the last step for all build_linux.sh scripts in all sub-directories of OpenSource_FDO/Providers
***** IMPORTANT: Unfortunately the file <MGOS local path>/fdo-3.2.0/lib/providers.xml installed
automatically by make install have the path /usr/local/fdo-3.2.0/lib hard
coded in it so we must replace all lines containing /usr/local to <local path>
otherwise mapguide server won't find the FDO providers libraries ( which are
essential to get mapguide server doig something useful... )
4). mapguide-1.1.0 :
directory <MGOS local path>/mapguide-1.1.0
in script build_oem.sh -> put the lines
export AUTOMAKE=/usr/bin/automake-1.8
export ACLOCAL=/usr/bin/aclocal-1.8
at the beginning of the script.
-> change INSTALLDIR variable to <MGOS local path>/mgos
-> Build CPPUNIT 1.9.14 section ( function build_cppunit )
Add the lines
sh rm -f aclocal.m4
sh libtoolize --copy --force
just before the ./configure command in build_cppunit function
-> launch build_oem.sh
after build_oem.sh has completed successfully do in order:
cd in <MGOS local path>/mapguide-1.1.0/Oem/gdal-1.3.0/port
modify header file cpl_multiproc:
add the macro name CPL_C_START just before the line
void CPL_DLL * CPLGetTLS( int nIndex );
add the macro name CPL_C_END just after the line
void CPL_DLL CPLCleanupTLS();
this will ensure that these functions will be treated as C functions names for
the linking stage. ( otherwise C++ symbols are produced and the linking stage
of the mapguide server fails ... )
cd in <MGOS local path>/mapguide-1.1.0 and do the usual stuff but
with aclocal-1.8 and automake-1.8 and some options passed to
configure.
aclocal-1.8 ( forget about warnings ... )
libtoolize --force
automake-1.8 --add-missing --copy
autoconf
configure --prefix=<MGOS local path>/mgos \
--with-fdo-include=<MGOS local path>/fdo-3.2.0/include \
--with-fdo-lib=<MGOS local path>/fdo-3.2.0/lib --without-python
make
make check
make install
------------------------------------------------------------------------------
--
Alexandre Leroux, M.Sc., Ing.
Environnement Canada / Environment Canada
Centre météorologique canadien / Canadian Meteorological Centre
Division de la réponse aux urgences environnementales /
Environmental Emergency Response Division
alexandre.leroux at ec.gc.ca
More information about the mapguide-users
mailing list