view INSTALL @ 868:ae571e7ecdc9

Make appendTextSignature public for better testability
author Andre Heinecke <andre.heinecke@intevation.de>
date Tue, 05 Aug 2014 17:44:31 +0200
parents e4cf249ba1a6
children 0051cb07da28
line wrap: on
line source
Installation Instructions
*************************

For Debian based GNU / Linux
============================
Tested development platform: Ubuntu 14.4.

The following commands build qt5 and polarssl which are dependencies of the Software.
For build dependencies please refer to the Qt documentation 
( qtbase/src/plugins/platforms/xcb/README ).
Polarssl needs cmake and build-essentials.

    export YOURPREFIX=<Prefix of your choice (default /usr)>
    export PATH=$YOURPREFIX/bin:$PATH

    curl https://download.qt-project.org/official_releases/qt/5.3/5.3.1/single/qt-everywhere-opensource-src-5.3.1.tar.xz.mirrorlist | grep SHA-256

29d2ab3b1aef87e2dd806b278802e357274016475a513341348040468bf233ac

    http://qt-mirror.dannhauer.de/official_releases/qt/5.3/5.3.1/single/qt-everywhere-opensource-src-5.3.1.tar.xz

    sha256sum qt-everywhere-opensource-src-5.3.1.tar.xz

    tar -xf qt-everywhere-opensource-src-5.3.1.tar.xz

    cd qt-everywhere-opensource-src-5.3.1/qtbase

build dependencies have to to be installed at this point,
see ../qtbase/src/plugins/platforms/xcb/README

    ./configure --prefix=$YOURPREFIX \
    -opensource \
    -release  -nomake tests  -nomake examples  -confirm-license \
    -static -no-cups -no-nis -no-icu -fontconfig \
    -no-directfb -no-opengl -no-kms -no-eglfs -no-egl -no-openssl -no-glib \
    -system-libpng -qpa xcb -qt-xcb -no-nis -no-libjpeg -no-gif && \
    nice make -j8 && \
    make install

    cd .. && \
    cd qttools/src/designer/src/uitools && \
    qmake && \
    nice make -j8 && \
    make install

    cd ../../../linguist && \
    qmake && \
    nice make -j8 &&\
    make install

    curl -O https://polarssl.org/download/polarssl-1.3.8-gpl.tgz
    318171db41335cacbb5b0047c94f1faf91442ab70a223b5223436703c9406ff1 polarssl-1.3.8-gpl.tgz

    tar -xf polarssl-1.3.8-gpl.tgz
    cd polarssl-1.3.8
    mkdir build
    cd build
    cmake .. -DCMAKE_C_FLAGS=-fpic -DCMAKE_INSTALL_PREFIX=$YOURPREFIX
    make && make test && make install

To compile the software you can use plain cmake. An out of source build is
highly suggested. For build options see CMakeList.txt

    hg clone https://wald.intevation.org/hg/trustbridge/
    cd trustbridge
    hg clone https://wald.intevation.org/hg/trustbridge/nss-cmake-static
    mkdir build-linux
    cd build-linux
    cmake .. -DCMAKE_PREFIX_PATH=$YOURPREFIX


Hiawatha (for Downloader unit test)
===================================
Hiawatha is used in the downloader unit tests to provide a testbench
for the ssl connection. To build it you may need libxslt-dev as additional
dependency.

    wget https://www.hiawatha-webserver.org/files/hiawatha-9.5.tar.gz
    sha256sum hiawatha-9.5.tar.gz

c181011db1af187006190fc186689a0707a6f1e7b524c2a4347840e8fdf68b4f  hiawatha-9.5.tar.gz

    tar -xf hiawatha-9.5.tar.gz
    cp polarssl-1.3.7-gpl.tgz hiawatha-9.5/polarssl/polarssl.tgz
    cd hiawatha-9.5/polarssl
    sed -i 's/wget.*//' upgrade
    ./upgrade 1.3.7
    cd ..
    mkdir build
    cd build
    cmake .. -DCMAKE_INSTALL_PREFIX=$YOURPREFIX
    make && make install

Osslsigncode (for binverify unit test)
======================================
Osslsigncode is used to create PKCS#7 embedded signatures for Windows Authenticode
it is needed for the Windows part of the binverify unit test on the build system.

    wget http://downloads.sourceforge.net/project/osslsigncode/osslsigncode/osslsigncode-1.7.1.tar.gz
    sha256sum osslsigncode-1.7.1.tar.gz
# f9a8cdb38b9c309326764ebc937cba1523a3a751a7ab05df3ecc99d18ae466c9
    tar -xf osslsigncode-1.7.1.tar.gz
    cd osslsigncode-1.7.1
    ./configure --without-curl --prefix=$YOURPREFIX
    make && make install

    # for a windows binary (optional)
    OPENSSL_CFLAGS=-I$MXETARGET/include OPENSSL_LIBS="-L$MXETARGET/lib -lcrypto -lz -lgdi32" ./configure --without-curl --host=i686-w64-mingw32 --prefix=$MXETARGET

For Microsoft Windows
=====================
The Windows variant can be cross compiled on Debian based GNU / Linux systems.
The minimum requirement is Debian stable.
Tested development platform: Ubuntu 13.10.

Dependencies on the Host system:
    git autoconf automake bash bison bzip2 \
    cmake flex gettext git g++ intltool \
    libffi-dev libtool libltdl-dev libssl-dev \
    libxml-parser-perl make openssl patch perl \
    pkg-config scons sed unzip wget xz-utils autopoint \
    gperf

Build the windows binaries:
    MXEPATH=$YOURPREFIX/win
    git clone https://github.com/mxe/mxe.git $MXEPATH
    cd $MXEPATH
    echo "MXE_TARGETS := i686-w64-mingw32.static" > settings.mk
    make polarssl
    make qtbase

Workaround Qt CMake Bugs:
    find $MXEPATH/usr/i686-w64-mingw32.static/qt5/lib/cmake -name \*.cmake | \
        xargs sed -i 's/\/\([a-z]*\)\.lib/\/lib\1\.a/g'
    sed -i 's/^_qt5gui_find_extra_libs.*//' \
        $MXEPATH/usr/i686-w64-mingw32.static/qt5/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake

Make an NSS build available in the MXE prefix:
    # TODO -> Document how to build NSS,..
    cp -r <magic nss folder> $MXEPATH/usr/i686-w64-mingw32.static/

Compile the software:
    cd trustbridge
    mkdir build-windows
    cd build-windows
    MXETARGET=$MXEPATH/usr/i686-w64-mingw32.static/
    cmake .. \
        -DCMAKE_PREFIX_PATH="$MXETARGET/qt5;$MXETARGET;" \
        -DCMAKE_TOOLCHAIN_FILE="$MXETARGET/share/cmake/mxe-conf.cmake" \
        -DCMAKE_VERBOSE_MAKEFILE=True

Runtime Depdendencies
=====================
The Admin tool needs some additional software to be able to create installtion
packages:

    apt-get install nsis wine sharutils

http://wald.intevation.org/projects/trustbridge/