| Apache Tuscany SCA Runtime |
| ========================== |
| |
| Automated installation from scratch on Ubuntu 9.10 |
| ================================================== |
| |
| Tuscany provides an automated install script for Ubuntu 9.10. You can start |
| with a fresh Ubuntu Server 9.10 system, the ubuntu-install script takes care |
| of all the download, build and installation steps for you. |
| |
| The required system tools and libraries are downloaded and installed using |
| apt-get. The Tuscany project and its dependencies (Apache HTTPD server, Apache |
| Axis2/C etc) are downloaded, built and installed in the current directory. |
| |
| To run the automated installation: |
| mkdir tuscany |
| cd tuscany |
| wget http://svn.apache.org/repos/asf/tuscany/sca-cpp/trunk/ubuntu/ubuntu-install |
| chmod +x ./ubuntu-install |
| ./ubuntu-install |
| |
| The script will display each command as it's executed. |
| |
| That's all you need to do to build and install the Tuscany SCA runtime on |
| Ubuntu 9.10. |
| |
| |
| For manual build and install steps on other systems or if you need to customize |
| your installation, read on... |
| |
| |
| Building |
| ======== |
| |
| The Tuscany SCA Linux build uses the GNU Autotools tool chain. |
| |
| First install the following development tools: |
| autoconf-2.64 |
| automake-1.11 |
| g++-4.4.1 |
| libtool-2.2.6 |
| doxygen-1.6.1 |
| |
| Install the following binaries: |
| curl-7-19-5 |
| |
| |
| Then install the following development dependencies: |
| |
| Apache HTTP server and APR: |
| httpd-2.2-15 (http://httpd.apache.org/) |
| with included libapr and libaprutil |
| built with OpenSSL libssl-0.9.8g |
| |
| Memcached: |
| memcached-1.4.4 (http://memcached.org/) |
| built with libevent-1.4.11 |
| |
| XML: |
| libxml2-2.7.7 (http://xmlsoft.org/) |
| |
| CURL: |
| libcurl4-openssl-7.19.5 |
| |
| JSON: |
| Mozilla TraceMonkey libmozjs (https://wiki.mozilla.org/JavaScript:TraceMonkey) |
| also included in xulrunner-1.9.1.8 |
| |
| Key/value store: |
| tinycdb-0.77 (http://www.corpit.ru/mjt/tinycdb.html) |
| |
| Optional dependencies: |
| |
| Web Services: |
| Apache Axis2/C 1.6.0 (http://ws.apache.org/axis2/c/) |
| |
| Queueing: |
| Apache Qpid/C++ 0.6 (http://qpid.apache.org/) |
| built with libuuid-2.16, libboost-1.38.1, libboost-program-options-1.38.1 and |
| libboost-filesystem-1.38.1 |
| |
| Python: |
| Python 2.6.4 (http://www.python.org/) |
| Google AppEngine 1.3.2 (http://code.google.com/appengine/) |
| |
| Java: |
| a Java 5+ JDK (http://openjdk.java.net/, http://harmony.apache.org/) |
| |
| XMPP Chat: |
| Apache Vysper 0.5 (http://mina.apache.org/) |
| |
| Libstrophe (http://code.stanziq.com/cgit/strophe/libstrophe/) |
| build it from source at git://code.stanziq.com//libstrophe |
| requires libcheck-0.9.6 |
| |
| SQL Database: |
| postgresql-9.0 (http://www.postgresql.org/) |
| |
| |
| To configure the Tuscany SCA build do this: |
| ./bootstrap |
| ./configure --prefix=<install dir> |
| |
| To enable debugging and strict warning compile options, add: |
| --enable-maintainer-mode |
| |
| To enable gprof profiling, add: |
| --enable-profiling |
| |
| To enable multi-threading (required by the Queue and Chat components and |
| for running with the HTTPD worker or event multi-threaded MPMs): |
| --enable-threads |
| |
| To enable support for Python component implementations: |
| --enable-python |
| |
| To enable support for Java component implementations: |
| --enable-java |
| |
| To build the Web service utility component (requires Apache Axis2/C): |
| --enable-webservice |
| |
| To build the Queue utility component (requires Apache Qpid/C++): |
| --enable-queue |
| |
| To build the Chat utility component (requires Libstrophe and optionally Apache |
| Vysper if you want to run the tests with a local Vysper XMPP server): |
| --enable-chat |
| |
| To build the SQL Database utility component (requires PostgreSQL): |
| --enable-sqldb |
| |
| To generate doxygen documentation, add: |
| --enable-doxygen |
| |
| To configure where to find dependencies, see the --with-* options described |
| in the configure help: |
| ./configure --help |
| |
| |
| Here's an example configuration, tested on Ubuntu 9.10, with the system |
| dependencies installed in the standard system directories and some of the |
| dependencies installed under $HOME: |
| |
| ./configure --prefix=$HOME/tuscany-sca-cpp-bin \ |
| --with-apr=$HOME/httpd-2.2.13-bin --with-httpd=$HOME/httpd-2.2.13-bin \ |
| --with-memcached=$HOME/memcached-1.4.4-bin \ |
| --with-tinycdb=$HOME/tinycdb-0.77-bin \ |
| --with-curl=$HOME/curl-7.19.5-bin --with-libxml2=/usr \ |
| --with-js-include=/usr/include/xulrunner-1.9.1.8/unstable \ |
| --with-js-lib=/usr/lib/xulrunner-1.9.1.8 \ |
| --enable-threads \ |
| --enable-python --with-python=/usr \ |
| --enable-gae --with-gae=$HOME/google_appengine \ |
| --enable-java --with-java=/usr/lib/jvm/default-java \ |
| --enable-webservice --with-axis2c=$HOME/axis2c-1.6.0-bin \ |
| --with-libxml2=$HOME/libxml2-2.7.7-bin \ |
| --enable-queue --with-qpidc=$HOME/qpidc-0.6-bin \ |
| --enable-chat --with-libstrophe=$HOME/libstrophe-bin \ |
| --with-vysper=$HOME/vysper-0.5 \ |
| --enable-sqldb --with-pgsql=$HOME/postgresql-9.0-bin \ |
| --enable-maintainer-mode |
| |
| |
| To build the Tuscany SCA runtime, do this: |
| make |
| |
| To run the tests, do this: |
| make check |
| |
| To build ctags for the source, do this: |
| make ctags |
| |
| To build a source distribution, do this: |
| make dist |
| |
| To build a binary distribution, do this: |
| make bindist |
| |
| |
| Installing |
| ========== |
| |
| To install the Tuscany SCA binaries, do this: |
| make install |
| |
| |
| Building dependencies from source |
| ================================= |
| |
| Here are example build and install steps for some of the dependencies. |
| |
| Apache HTTPD, including APR, using the HTTP prefork MPM (recommended): |
| wget http://www.apache.org/dist/httpd/httpd-2.2.15.tar.gz |
| tar xzf httpd-2.2.15.tar.gz |
| cd httpd-2.2.15 |
| ./configure --enable-ssl --enable-proxy --enable-rewrite --with-included-apr \ |
| --with-mpm=prefork --prefix=$HOME/httpd-2.2.15-bin |
| make |
| make install |
| export PATH=$HOME/httpd-2-2.15-bin/bin:$PATH |
| |
| Memcached: |
| wget http://memcached.googlecode.com/files/memcached-1.4.4.tar.gz |
| tar xzf memcached-1.4.4.tar.gz |
| cd memcached-1.4.4 |
| ./configure --prefix=$HOME/memcached-1.4.4-bin |
| make |
| make install |
| |
| TinyCDB: |
| wget http://www.corpit.ru/mjt/tinycdb/tinycdb_0.77.tar.gz |
| tar xzf tinycdb_0.77.tar.gz |
| cd tinycdb-0.77 |
| make |
| make prefix=$HOME/tinycdb-0.77-bin install |
| |
| CURL: |
| wget http://curl.haxx.se/download/curl-7.19.5.tar.gz |
| tar xzf curl-7.19.5.tar.gz |
| cd curl-7.19.5 |
| ./configure --prefix=$HOME/curl-7.19.5-bin |
| make |
| make install |
| |
| Libxml2: |
| wget ftp://xmlsoft.org/libxml2/libxml2-sources-2.7.7.tar.gz |
| tar xzf libxml2-sources-2.7.7.tar.gz |
| cd libxml2-2.7.7 |
| ./configure --prefix=$HOME/libxml2-2.7.7-bin |
| make |
| make install |
| |
| TraceMonkey: |
| wget http://hg.mozilla.org/tracemonkey/archive/e4364736e170.tar.gz |
| tar xzf tracemonkey-e4364736e170.tar.gz |
| cd tracemonkey-e4364736e170/js/src |
| autoconf2.13 |
| ./configure --prefix=$HOME/tracemonkey-bin |
| make |
| make install |
| |
| Apache Axis2/C: |
| wget http://www.apache.org/dist/ws/axis2-c/1_6_0/axis2c-src-1.6.0.tar.gz |
| tar xzf axis2c-src-1.6.0.tar.gz |
| cd axis2c-src-1.6.0 |
| ./configure --enable-libxml2 --enable-openssl \ |
| --with-apache2=$HOME/httpd-2.2.15-bin/include --prefix=$HOME/axis2c-1.6.0-bin |
| make |
| make install |
| export AXIS2C_HOME=$HOME/axis2c-1.6.0-bin |
| |
| Apache Qpid/C++: |
| wget http://www.apache.org/dist/qpid/0.6/qpid-cpp-0.6.tar.gz |
| tar xzf qpid-cpp-0.6.tar.gz |
| cd qpidc-0.6 |
| ./configure --prefix=$HOME/qpidc-0.6-bin |
| make |
| make install |
| |
| Libstrophe: |
| git clone git://code.stanziq.com/libstrophe |
| cd libstrophe |
| git submodule init |
| git submodule update |
| aclocal |
| automake --add-missing --foreign --copy |
| autoconf |
| ./configure --prefix=$HOME/libstrophe-bin |
| make |
| make install |
| cd .. |
| mkdir -p libstrophe-bin/include |
| cp libstrophe/*.h libstrophe-bin/include |
| cp libstrophe/src/*.h libstrophe-bin/include |
| |
| PostgreSQL: |
| wget http://wwwmaster.postgresql.org/download/mirrors-ftp/source/9.0alpha5/postgresql-9.0alpha5.tar.gz |
| tar xzf postgresql-9.0alpha5.tar.gz |
| cd postgresql-9.0alpha5 |
| ./configure --prefix=$HOME/postgresql-9.0-bin |
| make |
| make install |
| |