annotate INSTALL @ 1395:a2574a029322

Fix Base 64 signature size calculation. If the signature byte size is not equally dividable by three the base 64 encoding needs three additional bytes. The value is now fixed to avoid such errors in the future.
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 26 Jan 2015 13:17:32 +0100
parents 3d6faded03dd
children e18fccc081f1
rev   line source
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
1 /** @file INSTALL
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
2 @brief Installation Instructions
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
3 *************************
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
4
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
5 For Debian based GNU / Linux
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
6 ============================
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
7 Tested development platform: Ubuntu 14.4 amd64.
598
c1733da2559c Added hint about tested development platform Ubuntu 13.10.
Bernhard Reiter <bernhard@intevation.de>
parents: 585
diff changeset
8
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
9 The following commands build qt5 and polarssl which are dependencies of the Software.
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
10 To only build for the amd64 platform omit the i386 instructions.
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
11
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
12 For build dependencies please refer to the Qt documentation
598
c1733da2559c Added hint about tested development platform Ubuntu 13.10.
Bernhard Reiter <bernhard@intevation.de>
parents: 585
diff changeset
13 ( qtbase/src/plugins/platforms/xcb/README ).
c1733da2559c Added hint about tested development platform Ubuntu 13.10.
Bernhard Reiter <bernhard@intevation.de>
parents: 585
diff changeset
14 Polarssl needs cmake and build-essentials.
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
15
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
16 export YOURPREFIX=<Prefix of your choice (default /usr)>
1262
dcce1e7201e2 Make sure that the bin dir is created before adding it to the path
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1253
diff changeset
17 mkdir -p $YOURPREFIX/bin
577
4ccae6acfaec Document qt linguist tools build
Andre Heinecke <aheinecke@intevation.de>
parents: 575
diff changeset
18 export PATH=$YOURPREFIX/bin:$PATH
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
19
1192
7839d3d696a1 (issue131) Update Install documentation for qt 5.3.2
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1089
diff changeset
20 curl https://download.qt-project.org/official_releases/qt/5.3/5.3.2/single/qt-everywhere-opensource-src-5.3.2.tar.xz.mirrorlist | grep SHA-256
7839d3d696a1 (issue131) Update Install documentation for qt 5.3.2
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1089
diff changeset
21 7f5bf93344cb57bac374ea4a32c8eda87f1357f998f14278e717cf84d0289bf0
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
22
1285
4a3a482dc337 Build instruction consistency: always using curl -O instead of wget. Wget taken out.
Bernhard Reiter <bernhard@intevation.de>
parents: 1267
diff changeset
23 curl -O http://qt-mirror.dannhauer.de/official_releases/qt/5.3/5.3.2/single/qt-everywhere-opensource-src-5.3.2.tar.xz
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
24
1192
7839d3d696a1 (issue131) Update Install documentation for qt 5.3.2
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1089
diff changeset
25 sha256sum qt-everywhere-opensource-src-5.3.2.tar.xz
778
3145399aa797 (issue57) Update to qt 5.3.1
Andre Heinecke <andre.heinecke@intevation.de>
parents: 666
diff changeset
26
1192
7839d3d696a1 (issue131) Update Install documentation for qt 5.3.2
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1089
diff changeset
27 tar -xf qt-everywhere-opensource-src-5.3.2.tar.xz
7839d3d696a1 (issue131) Update Install documentation for qt 5.3.2
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1089
diff changeset
28
7839d3d696a1 (issue131) Update Install documentation for qt 5.3.2
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1089
diff changeset
29 cd qt-everywhere-opensource-src-5.3.2/qtbase
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
30
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
31 build dependencies have to to be installed at this point,
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
32 see ../qtbase/src/plugins/platforms/xcb/README
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
33
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
34 ./configure --prefix=$YOURPREFIX \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
35 -opensource \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
36 -release -nomake tests -nomake examples -confirm-license \
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
37 -static -no-cups -no-nis -no-icu -no-fontconfig -qt-freetype \
778
3145399aa797 (issue57) Update to qt 5.3.1
Andre Heinecke <andre.heinecke@intevation.de>
parents: 666
diff changeset
38 -no-directfb -no-opengl -no-kms -no-eglfs -no-egl -no-openssl -no-glib \
931
7ac5a366184d Remove -system-lipng from qt configure line
Andre Heinecke <andre.heinecke@intevation.de>
parents: 908
diff changeset
39 -qpa xcb -qt-xkbcommon -qt-xcb -no-nis -no-libjpeg -qt-libpng \
1192
7839d3d696a1 (issue131) Update Install documentation for qt 5.3.2
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1089
diff changeset
40 -qt-zlib -no-gif -no-xinput2 && \
887
accda55ae053 Use make -j`nproc` everywhere instead of fixed number
Andre Heinecke <andre.heinecke@intevation.de>
parents: 880
diff changeset
41 nice make -j`nproc` && \
666
d905758aa3a6 Some reduction in qt libraries and document uitools build (needed for linguist)
Andre Heinecke <andre.heinecke@intevation.de>
parents: 635
diff changeset
42 make install
d905758aa3a6 Some reduction in qt libraries and document uitools build (needed for linguist)
Andre Heinecke <andre.heinecke@intevation.de>
parents: 635
diff changeset
43
1263
827abc0923a8 Clarify that linguist and uitools are optional
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1262
diff changeset
44 If you want to build the localization you need the qt localization tools.
827abc0923a8 Clarify that linguist and uitools are optional
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1262
diff changeset
45 To build them:
827abc0923a8 Clarify that linguist and uitools are optional
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1262
diff changeset
46
784
d92264e9e08f Improve copy/paste variant of INSTALL documentation by switching paths
Andre Heinecke <andre.heinecke@intevation.de>
parents: 778
diff changeset
47 cd .. && \
d92264e9e08f Improve copy/paste variant of INSTALL documentation by switching paths
Andre Heinecke <andre.heinecke@intevation.de>
parents: 778
diff changeset
48 cd qttools/src/designer/src/uitools && \
778
3145399aa797 (issue57) Update to qt 5.3.1
Andre Heinecke <andre.heinecke@intevation.de>
parents: 666
diff changeset
49 qmake && \
887
accda55ae053 Use make -j`nproc` everywhere instead of fixed number
Andre Heinecke <andre.heinecke@intevation.de>
parents: 880
diff changeset
50 nice make -j`nproc` && \
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
51 make install
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
52
784
d92264e9e08f Improve copy/paste variant of INSTALL documentation by switching paths
Andre Heinecke <andre.heinecke@intevation.de>
parents: 778
diff changeset
53 cd ../../../linguist && \
d92264e9e08f Improve copy/paste variant of INSTALL documentation by switching paths
Andre Heinecke <andre.heinecke@intevation.de>
parents: 778
diff changeset
54 qmake && \
887
accda55ae053 Use make -j`nproc` everywhere instead of fixed number
Andre Heinecke <andre.heinecke@intevation.de>
parents: 880
diff changeset
55 nice make -j`nproc` &&\
666
d905758aa3a6 Some reduction in qt libraries and document uitools build (needed for linguist)
Andre Heinecke <andre.heinecke@intevation.de>
parents: 635
diff changeset
56 make install
577
4ccae6acfaec Document qt linguist tools build
Andre Heinecke <aheinecke@intevation.de>
parents: 575
diff changeset
57
1263
827abc0923a8 Clarify that linguist and uitools are optional
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1262
diff changeset
58
827abc0923a8 Clarify that linguist and uitools are optional
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1262
diff changeset
59 Polarssl is required for TrustBridge:
827abc0923a8 Clarify that linguist and uitools are optional
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1262
diff changeset
60
1342
dab626e44347 (issue172) Document polarssl 1.3.9 usage
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1285
diff changeset
61 curl -O https://polarssl.org/download/polarssl-1.3.9-gpl.tgz
dab626e44347 (issue172) Document polarssl 1.3.9 usage
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1285
diff changeset
62 sha256sum polarssl-1.3.9-gpl.tgz
dab626e44347 (issue172) Document polarssl 1.3.9 usage
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1285
diff changeset
63 d3605afc28ed4b7d1d9e3142d72e42855e4a23c07c951bbb0299556b02d36755 polarssl-1.3.9-gpl.tgz
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
64
1342
dab626e44347 (issue172) Document polarssl 1.3.9 usage
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1285
diff changeset
65 tar -xf polarssl-1.3.9-gpl.tgz
dab626e44347 (issue172) Document polarssl 1.3.9 usage
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1285
diff changeset
66 cd polarssl-1.3.9
1346
f5225a632622 (issue172) Add patch for polarssl to permit custom build options
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1342
diff changeset
67 # In 1.3.9 polarssl removed custom C flag inclusion.
f5225a632622 (issue172) Add patch for polarssl to permit custom build options
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1342
diff changeset
68 # we need this for -fpic
f5225a632622 (issue172) Add patch for polarssl to permit custom build options
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1342
diff changeset
69 patch -p0 << EOF
f5225a632622 (issue172) Add patch for polarssl to permit custom build options
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1342
diff changeset
70 --- CMakeLists.txt 2014-10-28 12:13:53.566828092 +0100
f5225a632622 (issue172) Add patch for polarssl to permit custom build options
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1342
diff changeset
71 +++ CMakeLists.txt.orig 2014-10-28 12:13:48.202827991 +0100
f5225a632622 (issue172) Add patch for polarssl to permit custom build options
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1342
diff changeset
72 @@ -4,7 +4,7 @@
f5225a632622 (issue172) Add patch for polarssl to permit custom build options
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1342
diff changeset
73 string(REGEX MATCH "Clang" CMAKE_COMPILER_IS_CLANG "\${CMAKE_C_COMPILER_ID}")
f5225a632622 (issue172) Add patch for polarssl to permit custom build options
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1342
diff changeset
74
f5225a632622 (issue172) Add patch for polarssl to permit custom build options
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1342
diff changeset
75 if(CMAKE_COMPILER_IS_GNUCC)
f5225a632622 (issue172) Add patch for polarssl to permit custom build options
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1342
diff changeset
76 - set(CMAKE_C_FLAGS "-Wall -Wextra -W -Wdeclaration-after-statement -Wlogical-op -Wwrite-strings")
f5225a632622 (issue172) Add patch for polarssl to permit custom build options
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1342
diff changeset
77 + set(CMAKE_C_FLAGS "\${CMAKE_C_FLAGS} -Wall -Wextra -W -Wdeclaration-after-statement -Wlogical-op -Wwrite-strings")
f5225a632622 (issue172) Add patch for polarssl to permit custom build options
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1342
diff changeset
78 set(CMAKE_C_FLAGS_RELEASE "-O2")
f5225a632622 (issue172) Add patch for polarssl to permit custom build options
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1342
diff changeset
79 set(CMAKE_C_FLAGS_DEBUG "-g3 -O0")
f5225a632622 (issue172) Add patch for polarssl to permit custom build options
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1342
diff changeset
80 set(CMAKE_C_FLAGS_COVERAGE "-g3 -O0 --coverage")
f5225a632622 (issue172) Add patch for polarssl to permit custom build options
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1342
diff changeset
81 EOF
f5225a632622 (issue172) Add patch for polarssl to permit custom build options
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1342
diff changeset
82
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
83 mkdir build
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
84 cd build
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
85 cmake .. -DCMAKE_C_FLAGS=-fpic -DCMAKE_INSTALL_PREFIX=$YOURPREFIX
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
86 make && make test && make install
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
87
998
0570b1e562c2 (issue90) Add curl patches for the problems we had with curl.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 971
diff changeset
88 Trustbridge checkout:
0570b1e562c2 (issue90) Add curl patches for the problems we had with curl.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 971
diff changeset
89 At this point you need a trustbridge checkout as curl needs to be patched
0570b1e562c2 (issue90) Add curl patches for the problems we had with curl.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 971
diff changeset
90 to enable the certificate pinning and the force of SSL Ciphersuites when
0570b1e562c2 (issue90) Add curl patches for the problems we had with curl.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 971
diff changeset
91 using polarssl.
0570b1e562c2 (issue90) Add curl patches for the problems we had with curl.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 971
diff changeset
92
0570b1e562c2 (issue90) Add curl patches for the problems we had with curl.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 971
diff changeset
93 hg clone https://wald.intevation.org/hg/trustbridge/
0570b1e562c2 (issue90) Add curl patches for the problems we had with curl.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 971
diff changeset
94
908
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
95 Libcurl:
998
0570b1e562c2 (issue90) Add curl patches for the problems we had with curl.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 971
diff changeset
96
1285
4a3a482dc337 Build instruction consistency: always using curl -O instead of wget. Wget taken out.
Bernhard Reiter <bernhard@intevation.de>
parents: 1267
diff changeset
97 curl -O http://curl.haxx.se/download/curl-7.38.0.tar.gz
4a3a482dc337 Build instruction consistency: always using curl -O instead of wget. Wget taken out.
Bernhard Reiter <bernhard@intevation.de>
parents: 1267
diff changeset
98 sha256sum curl-7.38.0.tar.gz
1089
3c67e32b5d4a Document update to curl 7.38.0 and hiawatha update.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1024
diff changeset
99 5661028aa6532882fa228cd23c99ddbb8b87643dbb1a7ea55c068d34a943dff1 curl-7.38.0.tar.gz
1285
4a3a482dc337 Build instruction consistency: always using curl -O instead of wget. Wget taken out.
Bernhard Reiter <bernhard@intevation.de>
parents: 1267
diff changeset
100 curl -O http://curl.haxx.se/download/curl-7.38.0.tar.gz.asc
4a3a482dc337 Build instruction consistency: always using curl -O instead of wget. Wget taken out.
Bernhard Reiter <bernhard@intevation.de>
parents: 1267
diff changeset
101 gpg2 --verify curl-7.38.0.tar.gz.asc
960
64c0e15935c8 Just add the sha256sum instead of gpg verify to avoid trust issues.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 958
diff changeset
102
1089
3c67e32b5d4a Document update to curl 7.38.0 and hiawatha update.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1024
diff changeset
103 tar -xf curl-7.38.0.tar.gz
3c67e32b5d4a Document update to curl 7.38.0 and hiawatha update.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1024
diff changeset
104 cd curl-7.38.0/
998
0570b1e562c2 (issue90) Add curl patches for the problems we had with curl.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 971
diff changeset
105 patch -p1 < ../trustbridge/patches/*.patch
971
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
106 mkdir build
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
107 cd build
908
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
108
971
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
109 ../configure --prefix=$YOURPREFIX \
908
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
110 --without-nghttp2 --without-libidn --without-winidn --without-libssh2 \
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
111 --without-librtmp --without-libmetalink --without-axtls --without-nss \
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
112 --without-cyassl --without-ssl --without-gnutls --disable-gopher --disable-smtp \
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
113 --disable-imap --disable-pop3 --disable-tftp --disable-telnet --disable-dict \
953
f2066a24047d Update build doc for curl. Do not disable proxy.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 949
diff changeset
114 --disable-rtsp --disable-ldaps --disable-ldap --disable-file \
908
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
115 --disable-ftp --enable-http --enable-shared=no -enable-static=yes \
948
3baee3445502 Use curl without-zlib support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 931
diff changeset
116 --with-polarssl=$YOURPREFIX --without-ca-bundle --without-ca-path \
3baee3445502 Use curl without-zlib support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 931
diff changeset
117 --without-zlib
953
f2066a24047d Update build doc for curl. Do not disable proxy.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 949
diff changeset
118 make && make install
908
d1c951b3012d Curl based implementation of sslconnection
Andre Heinecke <andre.heinecke@intevation.de>
parents: 888
diff changeset
119
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
120 To compile the software you can use plain cmake.
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
121 An out of source build is highly suggested.
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
122 For build options see CMakeList.txt
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
123
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
124 cd trustbridge
834
8081ed84589d Use static nss from subrepository on windows
Andre Heinecke <andre.heinecke@intevation.de>
parents: 823
diff changeset
125 hg clone https://wald.intevation.org/hg/trustbridge/nss-cmake-static
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
126 mkdir build-linux
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
127 cd build-linux
1363
3d6faded03dd Document setting the INSTALL_PREFIX on config
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1346
diff changeset
128 cmake .. -DCMAKE_PREFIX_PATH=$YOURPREFIX \
3d6faded03dd Document setting the INSTALL_PREFIX on config
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1346
diff changeset
129 -DCMAKE_INSTALL_PREFIX=$YOURPREFIX
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
130
1265
b18f08034c24 Split off CLANG section more clearly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1264
diff changeset
131 CLANG
b18f08034c24 Split off CLANG section more clearly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1264
diff changeset
132 =====
1266
a548dd9a5dbe Fix c++ build with CLANG
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1265
diff changeset
133 Alternatively you can build trustbridge with CLANG. This is a bit of a hack
a548dd9a5dbe Fix c++ build with CLANG
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1265
diff changeset
134 and does not use all the hardening flags. Building with CLANG is _NOT_ recommended
a548dd9a5dbe Fix c++ build with CLANG
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1265
diff changeset
135 but it can be useful for analysis of the code.
a548dd9a5dbe Fix c++ build with CLANG
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1265
diff changeset
136
a548dd9a5dbe Fix c++ build with CLANG
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1265
diff changeset
137 As root install the required packages an perform an evil hack that fixes the c++
a548dd9a5dbe Fix c++ build with CLANG
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1265
diff changeset
138 build with clang on ubuntu:
a548dd9a5dbe Fix c++ build with CLANG
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1265
diff changeset
139
a548dd9a5dbe Fix c++ build with CLANG
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1265
diff changeset
140 apt-get install clang llvm
a548dd9a5dbe Fix c++ build with CLANG
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1265
diff changeset
141 ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19 /usr/lib/x86_64-linux-gnu/libstdc++.so
a548dd9a5dbe Fix c++ build with CLANG
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1265
diff changeset
142
a548dd9a5dbe Fix c++ build with CLANG
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1265
diff changeset
143 Now you can build trustbridge as user:
1264
3cd8dd706aaa Add possibility to build with CLANG and document it.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1263
diff changeset
144
3cd8dd706aaa Add possibility to build with CLANG and document it.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1263
diff changeset
145 mkdir build-clang
3cd8dd706aaa Add possibility to build with CLANG and document it.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1263
diff changeset
146 cd build-clang
3cd8dd706aaa Add possibility to build with CLANG and document it.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1263
diff changeset
147 CC=/usr/bin/clang \
3cd8dd706aaa Add possibility to build with CLANG and document it.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1263
diff changeset
148 CXX=/usr/bin/clang++ \
3cd8dd706aaa Add possibility to build with CLANG and document it.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1263
diff changeset
149 cmake .. -DCMAKE_PREFIX_PATH=$YOURPREFIX \
1266
a548dd9a5dbe Fix c++ build with CLANG
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1265
diff changeset
150 -DUSE_CLANG=TRUE \
a548dd9a5dbe Fix c++ build with CLANG
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1265
diff changeset
151 -DCMAKE_VERBOSE_MAKEFILE=TRUE
1267
d9ecf3a83620 Document scan build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1266
diff changeset
152 make
d9ecf3a83620 Document scan build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1266
diff changeset
153
d9ecf3a83620 Document scan build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1266
diff changeset
154 To run scan build:
d9ecf3a83620 Document scan build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1266
diff changeset
155
d9ecf3a83620 Document scan build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1266
diff changeset
156 CXX=/usr/share/clang/scan-build/c++-analyzer \
d9ecf3a83620 Document scan build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1266
diff changeset
157 CC=/usr/share/clang/scan-build/ccc-analyzer \
d9ecf3a83620 Document scan build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1266
diff changeset
158 cmake .. -DCMAKE_PREFIX_PATH=$YOURPREFIX \
d9ecf3a83620 Document scan build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1266
diff changeset
159 -DUSE_CLANG=TRUE \
d9ecf3a83620 Document scan build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1266
diff changeset
160 -DCMAKE_VERBOSE_MAKEFILE=TRUE
d9ecf3a83620 Document scan build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1266
diff changeset
161 scan-build make
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
162
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
163 I386
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
164 ====
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
165 Install dependencies (list might be incomplete)
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
166
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
167 apt-get install libx32stdc++-4.8-dev libc6:i386 g++-4.8-multilib \
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
168 libxcb1:i386 libxcb1-dev:i386 libx11-xcb1:i386 libx11-xcb-dev:i386 libxcb-keysyms1:i386 \
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
169 libxcb-keysyms1-dev:i386 libxcb-image0:i386 libxcb-image0-dev:i386 \
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
170 libxcb-shm0:i386 libxcb-shm0-dev:i386 libxcb-icccm4:i386 \
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
171 libxcb-icccm4-dev:i386 libxcb-sync-dev:i386 \
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
172 libxcb-render-util0:i386 libxcb-render-util0-dev:i386 \
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
173 libxcb-xfixes0-dev:i386 libxrender-dev:i386 libxcb-shape0-dev:i386 \
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
174 libxcb-randr0-dev:i386 libxcb-glx0-dev:i386 libdbus-1-dev:i386 \
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
175 libsm-dev:i386 libnss3-dev:i386
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
176
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
177 Create a new directory for qt. As qt has to build in source you need a different
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
178 directory:
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
179
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
180 mkdir i386
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
181 cd i386
1192
7839d3d696a1 (issue131) Update Install documentation for qt 5.3.2
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1089
diff changeset
182 tar -xf ../qt-everywhere-opensource-src-5.3.2.tar.xz
7839d3d696a1 (issue131) Update Install documentation for qt 5.3.2
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1089
diff changeset
183 cd qt-everywhere-opensource-src-5.3.2/qtbase/
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
184 ./configure --prefix=$YOURPREFIX/i386 \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
185 -opensource -platform linux-g++-32 \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
186 -release -nomake tests -nomake examples -confirm-license \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
187 -static -no-cups -no-nis -no-icu \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
188 -no-directfb -no-opengl -no-kms -no-eglfs -no-egl -no-openssl -no-glib \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
189 -system-libpng -qpa xcb -qt-xcb -no-nis -no-libjpeg -no-gif -qt-zlib \
1192
7839d3d696a1 (issue131) Update Install documentation for qt 5.3.2
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1089
diff changeset
190 -no-fontconfig -qt-freetype -qt-libpng -qt-xkbcommon -no-xinput2 \
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
191 && \
887
accda55ae053 Use make -j`nproc` everywhere instead of fixed number
Andre Heinecke <andre.heinecke@intevation.de>
parents: 880
diff changeset
192 nice make -j`nproc` && \
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
193 make install
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
194
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
195 Switch back to the polarssl directory:
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
196
1342
dab626e44347 (issue172) Document polarssl 1.3.9 usage
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1285
diff changeset
197 cd ../../../polarssl-1.3.9/
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
198 mkdir build-i386
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
199 cd build-i386
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
200 cmake .. -DCMAKE_C_FLAGS="-fpic -m32" -DCMAKE_INSTALL_PREFIX=$YOURPREFIX/i386 \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
201 -DCMAKE_VERBOSE_MAKEFILE=True \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
202 -DENABLE_TESTING=FALSE -DENABLE_PROGRAMS=FALSE && \
887
accda55ae053 Use make -j`nproc` everywhere instead of fixed number
Andre Heinecke <andre.heinecke@intevation.de>
parents: 880
diff changeset
203 nice make -j`nproc` && \
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
204 make install
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
205
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
206 Change to the curl directory:
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
207
1089
3c67e32b5d4a Document update to curl 7.38.0 and hiawatha update.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1024
diff changeset
208 cd ../../curl-7.38.0/
971
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
209 mkdir build-i386
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
210 cd build-i386
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
211 CFLAGS="-fpic -m32" CPPFLAGS="-fpic -m32" ../configure --prefix=$YOURPREFIX/i386 \
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
212 --without-nghttp2 --without-libidn --without-winidn --without-libssh2 \
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
213 --without-librtmp --without-libmetalink --without-axtls --without-nss \
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
214 --without-cyassl --without-ssl --without-gnutls --disable-gopher --disable-smtp \
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
215 --disable-imap --disable-pop3 --disable-tftp --disable-telnet --disable-dict \
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
216 --disable-rtsp --disable-ldaps --disable-ldap --disable-file \
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
217 --disable-ftp --enable-http --enable-shared=no -enable-static=yes \
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
218 --with-polarssl=$YOURPREFIX/i386 --without-ca-bundle --without-ca-path \
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
219 --without-zlib
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
220 make && make install
d3258a6faedd Document out of source and i386 build for curl
Andre Heinecke <andre.heinecke@intevation.de>
parents: 960
diff changeset
221
1264
3cd8dd706aaa Add possibility to build with CLANG and document it.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1263
diff changeset
222 Now for Trustbridge itself:
3cd8dd706aaa Add possibility to build with CLANG and document it.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1263
diff changeset
223
876
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
224 cd ../../trustbridge
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
225 mkdir build-i386
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
226 cd build-i386
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
227 cmake .. -DCMAKE_PREFIX_PATH="$YOURPREFIX/i386" \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
228 -DCMAKE_VERBOSE_MAKEFILE=True \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
229 -DCMAKE_C_FLAGS=-m32 \
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
230 -DCMAKE_CXX_FLAGS="-m32"
0051cb07da28 Reduce libraries, document i386 build and statically link fonts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 855
diff changeset
231
585
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
232 Hiawatha (for Downloader unit test)
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
233 ===================================
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
234 Hiawatha is used in the downloader unit tests to provide a testbench
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
235 for the ssl connection. To build it you may need libxslt-dev as additional
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
236 dependency.
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
237
1285
4a3a482dc337 Build instruction consistency: always using curl -O instead of wget. Wget taken out.
Bernhard Reiter <bernhard@intevation.de>
parents: 1267
diff changeset
238 curl -O https://www.hiawatha-webserver.org/files/hiawatha-9.7.tar.gz
1089
3c67e32b5d4a Document update to curl 7.38.0 and hiawatha update.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1024
diff changeset
239 sha256sum hiawatha-9.7.tar.gz
585
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
240
1089
3c67e32b5d4a Document update to curl 7.38.0 and hiawatha update.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1024
diff changeset
241 e8581336883b7b963f38572f6396f8c47b43e5bedd3147d052fa3652e6c0ed86 hiawatha-9.7.tar.gz
3c67e32b5d4a Document update to curl 7.38.0 and hiawatha update.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1024
diff changeset
242
3c67e32b5d4a Document update to curl 7.38.0 and hiawatha update.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1024
diff changeset
243 tar -xf hiawatha-9.7.tar.gz
3c67e32b5d4a Document update to curl 7.38.0 and hiawatha update.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1024
diff changeset
244 cd hiawatha-9.7
585
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
245 mkdir build
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
246 cd build
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
247 cmake .. -DCMAKE_INSTALL_PREFIX=$YOURPREFIX
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
248 make && make install
21f8d32f2d2a Document hiawatha build
Andre Heinecke <aheinecke@intevation.de>
parents: 577
diff changeset
249
998
0570b1e562c2 (issue90) Add curl patches for the problems we had with curl.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 971
diff changeset
250
635
ed1887be5170 Document osslsigncode build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
251 Osslsigncode (for binverify unit test)
ed1887be5170 Document osslsigncode build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
252 ======================================
ed1887be5170 Document osslsigncode build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
253 Osslsigncode is used to create PKCS#7 embedded signatures for Windows Authenticode
ed1887be5170 Document osslsigncode build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
254 it is needed for the Windows part of the binverify unit test on the build system.
ed1887be5170 Document osslsigncode build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
255
1285
4a3a482dc337 Build instruction consistency: always using curl -O instead of wget. Wget taken out.
Bernhard Reiter <bernhard@intevation.de>
parents: 1267
diff changeset
256 curl -L --max-redirs=1 -O http://downloads.sourceforge.net/project/osslsigncode/osslsigncode/osslsigncode-1.7.1.tar.gz
847
b642e80c77a8 Switch to released version of osslsigncode
Andre Heinecke <andre.heinecke@intevation.de>
parents: 836
diff changeset
257 sha256sum osslsigncode-1.7.1.tar.gz
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
258 f9a8cdb38b9c309326764ebc937cba1523a3a751a7ab05df3ecc99d18ae466c9
847
b642e80c77a8 Switch to released version of osslsigncode
Andre Heinecke <andre.heinecke@intevation.de>
parents: 836
diff changeset
259 tar -xf osslsigncode-1.7.1.tar.gz
b642e80c77a8 Switch to released version of osslsigncode
Andre Heinecke <andre.heinecke@intevation.de>
parents: 836
diff changeset
260 cd osslsigncode-1.7.1
b642e80c77a8 Switch to released version of osslsigncode
Andre Heinecke <andre.heinecke@intevation.de>
parents: 836
diff changeset
261 ./configure --without-curl --prefix=$YOURPREFIX
635
ed1887be5170 Document osslsigncode build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
262 make && make install
ed1887be5170 Document osslsigncode build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
263
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
264 #for a windows binary (optional):
635
ed1887be5170 Document osslsigncode build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
265 OPENSSL_CFLAGS=-I$MXETARGET/include OPENSSL_LIBS="-L$MXETARGET/lib -lcrypto -lz -lgdi32" ./configure --without-curl --host=i686-w64-mingw32 --prefix=$MXETARGET
ed1887be5170 Document osslsigncode build
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
266
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
267 For Microsoft Windows
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
268 =====================
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
269 The Windows variant can be cross compiled on Debian based GNU / Linux systems.
598
c1733da2559c Added hint about tested development platform Ubuntu 13.10.
Bernhard Reiter <bernhard@intevation.de>
parents: 585
diff changeset
270 The minimum requirement is Debian stable.
c1733da2559c Added hint about tested development platform Ubuntu 13.10.
Bernhard Reiter <bernhard@intevation.de>
parents: 585
diff changeset
271 Tested development platform: Ubuntu 13.10.
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
272
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
273 Dependencies on the Host system:
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
274
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
275 apt-get install git autoconf automake bash bison bzip2 \
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
276 cmake flex gettext git g++ intltool \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
277 libffi-dev libtool libltdl-dev libssl-dev \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
278 libxml-parser-perl make openssl patch perl \
1285
4a3a482dc337 Build instruction consistency: always using curl -O instead of wget. Wget taken out.
Bernhard Reiter <bernhard@intevation.de>
parents: 1267
diff changeset
279 pkg-config scons sed unzip curl xz-utils autopoint \
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
280 gperf
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
281
577
4ccae6acfaec Document qt linguist tools build
Andre Heinecke <aheinecke@intevation.de>
parents: 575
diff changeset
282 Build the windows binaries:
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
283
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
284 MXEPATH=$YOURPREFIX/win
949
0abacb0fd564 Document and use minimized qt and document curl build for windows
Andre Heinecke <andre.heinecke@intevation.de>
parents: 948
diff changeset
285 git clone https://github.com/Intevation/mxe.git $MXEPATH
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
286 cd $MXEPATH
958
3b736de02df3 Add correct branch to INSTALL documentation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 953
diff changeset
287 git checkout trustbridge
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
288 echo "MXE_TARGETS := i686-w64-mingw32.static" > settings.mk
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
289 make polarssl
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
290 make qtbase
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
291
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
292 (optional)
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
293
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
294 make curl
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
295
1019
4f999c7821ce Strip created executables
Andre Heinecke <andre.heinecke@intevation.de>
parents: 998
diff changeset
296 Add CMAKE_STRIP to the toolchain file:
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
297
1019
4f999c7821ce Strip created executables
Andre Heinecke <andre.heinecke@intevation.de>
parents: 998
diff changeset
298 echo "set(CMAKE_STRIP $MXEPATH/usr/bin/i686-w64-mingw32.static-strip)" >> \
4f999c7821ce Strip created executables
Andre Heinecke <andre.heinecke@intevation.de>
parents: 998
diff changeset
299 "$MXEPATH/usr/i686-w64-mingw32.static/share/cmake/mxe-conf.cmake"
4f999c7821ce Strip created executables
Andre Heinecke <andre.heinecke@intevation.de>
parents: 998
diff changeset
300
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
301 Workaround Qt CMake Bugs:
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
302
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
303 find $MXEPATH/usr/i686-w64-mingw32.static/qt5/lib/cmake -name \*.cmake | \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
304 xargs sed -i 's/\/\([a-z]*\)\.lib/\/lib\1\.a/g'
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
305 sed -i 's/^_qt5gui_find_extra_libs.*//' \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
306 $MXEPATH/usr/i686-w64-mingw32.static/qt5/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
307
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
308 Compile the software:
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
309
575
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
310 cd trustbridge
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
311 mkdir build-windows
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
312 cd build-windows
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
313 MXETARGET=$MXEPATH/usr/i686-w64-mingw32.static/
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
314 cmake .. \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
315 -DCMAKE_PREFIX_PATH="$MXETARGET/qt5;$MXETARGET;" \
ab2d62fe2815 Add build documentation
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
316 -DCMAKE_TOOLCHAIN_FILE="$MXETARGET/share/cmake/mxe-conf.cmake" \
1024
5ec1cf66922e Use curl now!
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1019
diff changeset
317 -DCMAKE_VERBOSE_MAKEFILE=True
848
9792c69201c2 Add note about runtime dependencies for admin tool
Andre Heinecke <andre.heinecke@intevation.de>
parents: 847
diff changeset
318
9792c69201c2 Add note about runtime dependencies for admin tool
Andre Heinecke <andre.heinecke@intevation.de>
parents: 847
diff changeset
319 Runtime Depdendencies
9792c69201c2 Add note about runtime dependencies for admin tool
Andre Heinecke <andre.heinecke@intevation.de>
parents: 847
diff changeset
320 =====================
9792c69201c2 Add note about runtime dependencies for admin tool
Andre Heinecke <andre.heinecke@intevation.de>
parents: 847
diff changeset
321 The Admin tool needs some additional software to be able to create installtion
9792c69201c2 Add note about runtime dependencies for admin tool
Andre Heinecke <andre.heinecke@intevation.de>
parents: 847
diff changeset
322 packages:
9792c69201c2 Add note about runtime dependencies for admin tool
Andre Heinecke <andre.heinecke@intevation.de>
parents: 847
diff changeset
323
9792c69201c2 Add note about runtime dependencies for admin tool
Andre Heinecke <andre.heinecke@intevation.de>
parents: 847
diff changeset
324 apt-get install nsis wine sharutils
1253
eb4d7337edd7 Fix INSTALL file so that it can be included in doxygen
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1192
diff changeset
325 */

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