Skip to content

Commit 4ca9531

Browse files
author
Koen Deforche
committed
see Changelog
1 parent 3bbd704 commit 4ca9531

File tree

202 files changed

+4220
-1742
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

202 files changed

+4220
-1742
lines changed

CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ SET(WTISAPI_SOVERSION 7)
2323
SET(WTDBO_SOVERSION 30)
2424
SET(WTDBOSQLITE3_SOVERSION 30)
2525
SET(WTDBOPOSTGRES_SOVERSION 30)
26+
SET(WTDBOFIREBIRD_SOVERSION 30)
2627
SET(WTTEST_SOVERSION 1)
2728

2829
IF(NOT SHARED_LIBS)
@@ -94,6 +95,7 @@ OPTION(ENABLE_PANGO "Enable Pango Library, which is used for improved font suppo
9495
OPTION(ENABLE_EXT "Build Wt Ext library with JavaScript-only widgets (http://extjs.com/)" ON)
9596
OPTION(ENABLE_SQLITE "Build SQLite3 backend for Wt::Dbo" ON)
9697
OPTION(ENABLE_POSTGRES "Build PostgreSQL backend for Wt::Dbo" ON)
98+
OPTION(ENABLE_FIREBIRD "Build FirebirdSQL backend for Wt::Dbo (requires both Firebird and IBPP)" ON)
9799
OPTION(ENABLE_QT4 "Build Qt4 interworking library (libwtwithqt" ON)
98100
OPTION(WT_NO_STD_LOCALE "Build Wt to run on a system without std::locale support" OFF)
99101
OPTION(WT_NO_STD_WSTRING "Build Wt to run on a system without std::wstring support" OFF)
@@ -124,6 +126,7 @@ IF(NOT SHARED_LIBS)
124126
SET(WTDBO_STATIC true)
125127
SET(WTDBOSQLITE3_STATIC true)
126128
SET(WTDBOPOSTGRES_STATIC true)
129+
SET(WTDBOFIREBIRD_STATIC true)
127130
ENDIF(NOT SHARED_LIBS)
128131

129132
IF(NOT MULTI_THREADED)
@@ -220,6 +223,10 @@ SET(FCGI_PREFIX ${USERLIB_PREFIX} CACHE PATH
220223
"Installation prefix of fcgi library (overrides USERLIB_PREFIX)")
221224
SET(POSTGRES_PREFIX ${USERLIB_PREFIX} CACHE PATH
222225
"Installation prefix of postgresql library (overrides USERLIB_PREFIX)")
226+
SET(FIREBIRD_PREFIX ${USERLIB_PREFIX} CACHE PATH
227+
"Installation prefix of FirebirdSql library. See also IBPP_SRC_DIRECTORY. (overrides USERLIB_PREFIX)")
228+
SET(IBPP_SRC_DIRECTORY CACHE PATH
229+
"Path to the SOURCE directory of IBPP (req for FireBird) library. See www.ibpp.org.")
223230
SET(MYSQL_PREFIX ${USERLIB_PREFIX} CACHE PATH
224231
"Installation prefix of mysql and mysql++ libraries "
225232
"(overrides USERLIB_PREFIX)")
@@ -273,6 +280,7 @@ INCLUDE(cmake/WtFindZlib.txt)
273280
INCLUDE(cmake/WtFindSsl.txt)
274281
INCLUDE(cmake/WtFindMysqlpp.txt)
275282
INCLUDE(cmake/WtFindPostgresql.txt)
283+
INCLUDE(cmake/WtFindFirebirdSql.txt)
276284
INCLUDE(cmake/WtFindAsciidoc.txt)
277285
INCLUDE(cmake/WtFindHaru.txt)
278286
INCLUDE(cmake/WtFindGm.txt)

Changelog

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,27 @@
1+
21-11-2011:
2+
* Wt/Dbo/backend/Firebird: merged Firebird backend contributed by
3+
Lukasz Matuszewski.
4+
5+
* Wt/WLogger: the library now uses macros that wrap around
6+
Wt::log() by default for internal logging, but this could be
7+
adapted to use another logging system of your choice. We also
8+
abide the third law of logging libraries: that they will expand
9+
their features until they become unusable: we added configurations
10+
options to enable or disable specific logging.
11+
12+
* WServer: support catching SIGHUP (on unix-like) systems to
13+
reread the configuration file.
14+
15+
* httpd: implement newer (and newest) WebSocket drafts (protocol
16+
versions 7, 8 and 13)
17+
18+
* all: closed several bugs and feature requests (#956, #1015,
19+
#1018, #1064)
20+
21+
18-11-2011:
22+
* WString: we now store arguments as WString so they are also
23+
properly i18n-ed (#1059).
24+
125
07-11-2011:
226
* WException: new, public exception class (was previously an internal
327
one)

INSTALL

Lines changed: 50 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
Wt Installation instructions on Unix-like systems
22

3-
This page lists the instructions for building and installing Wt 3.0.0.
4-
It is organized in 3 sections:
5-
* Requirements
6-
* Building and installing the library
7-
* Trying the examples (or your own Wt application)
3+
This page lists the instructions for building and installing Wt. It is
4+
organized in 3 sections:
5+
* [1]Requirements
6+
* [2]Building and installing the library
7+
* [3]Trying the examples (or your own Wt application)
88

99
Requirements
1010

@@ -34,21 +34,35 @@ Requirements
3434

3535
* Compiler: gcc-3.3.4 or higher, or gcc-4.1.x or higher, or other
3636
Ansi C++ compiler that can deal with boost-like C++ code.
37-
* [1]CMake cross-platform build system:
37+
* [4]CMake cross-platform build system:
3838
Preferably CMake 2.6, which comes with a usable script for finding
3939
boost libraries, but CMake 2.4 is still supported using Wt's own
4040
boost find script.
41-
* [2]C++ boost library (version 1.36 or higher), preferably with
42-
thread support enabled. You can verify you have a thread-enabled
41+
* [5]C++ boost library (preferably version 1.41 or higher), with or
42+
without thread support. You can verify you have a thread-enabled
4343
boost installation by locating the libboost_thread library. Thread
4444
support is not essential: Wt functionality is not affected except
4545
for exotic things like server push and reentrant event loops. Most
4646
importantly, even without thread support Wt can handle multiple
4747
concurrent sessions.
48-
* Optionally, [3]Haru Free PDF Library, which is used to provide
48+
Older versions of boost, up until 1.36 are also supported, but some
49+
features will be disabled that depend on the revised versions of
50+
spirit, namely JSON parsing and improved SQL parsing (for Wt::Dbo).
51+
* Optionally, [6]OpenSSL, which is used to support the HTTPS protocol
52+
in the web client, the HTTPS protocol in the built-in wthttpd
53+
connector, additional cryptographic hash functions in the Auth
54+
library, and WebSockets (which requires a SHA-1 hash
55+
implementation).
56+
* Optionally, [7]Haru Free PDF Library, which is used to provide
4957
support for painting to PDF (WPdfImage).
50-
* Optionally, [4]GraphicsMagick, for supporting painting to raster
58+
* Optionally, [8]GraphicsMagick, for supporting painting to raster
5159
images (PNG, GIF, ...) (WRasterImage).
60+
* Optionally, [9]PostgreSQL, for the PostgreSQL backend for Wt::Dbo
61+
(Dbo::backend::Postgres).
62+
* Optionally, [10]Firebird, for the Firebird backend for Wt::Dbo
63+
(Dbo::backend::Firebird).
64+
* Optionally, [11]Pango, for improved font support in the WPdfImage
65+
and WRasterImage paint devices.
5266

5367
1a Using FastCGI
5468

@@ -57,20 +71,21 @@ Requirements
5771

5872
Given that Apache is still the most popular webserver, below are the
5973
requirements for apache, for other web servers the list is similar:
60-
* FCGI library, including C++ bindings (libfcgi++)
61-
* Fastcgi or mod_fcgi plugin for Apache.
74+
* [12]FCGI library, including C++ bindings (libfcgi++)
75+
* A suitable plugin for your web server.
6276

6377
1b Using wthttpd
6478

6579
When using the built-in webserver, two more libraries may be installed
6680
to enable optional features (you can also build without them), but
6781
otherwise no extra dependencies are required.
68-
* Optionally, libz, for compression over HTTP.
69-
* Optionally, openssl, for supporting HTTPS.
82+
* Optionally, zlib (libz), for compression over HTTP.
83+
* Optionally, OpenSSL (libopenssl), for HTTPS and WebSockets (which
84+
requires a SHA-1 hash implementation).
7085

7186
2 Additional and optional requirements for some of the examples
7287

73-
* libmysql++-2.x (hangman)
88+
* Qt, for the libwtwithqt interopability layer
7489
__________________________________________________________________
7590

7691
Building and installing the Wt library
@@ -170,14 +185,6 @@ Building and installing the Wt library
170185
Location of the wthttpd configuration file (default is
171186
/etc/wt/wthttpd)
172187

173-
HTTP_WITH_SSL
174-
Compile with support for SSL, for secure HTTP (HTTPS). This
175-
requires an OpenSSL library.
176-
177-
HTTP_WITH_ZLIB
178-
Compile with support for compression over HTTP. This requires
179-
the libz library.
180-
181188
To change any entry, use [Enter]. To save and quit, do [c] followed by
182189
[g].
183190

@@ -210,10 +217,10 @@ Trying the examples (or your own Wt application)
210217
the build option EXAMPLES_CONNECTOR (see supra).
211218

212219
Some examples need third-party JavaScript libraries (ExtJS or TinyMCE).
213-
* Download ExtJS from [5]http://yogurtearl.com/ext-2.0.2.zip, and
220+
* Download ExtJS from [13]http://yogurtearl.com/ext-2.0.2.zip, and
214221
install it according to these instructions:
215-
[6]http://www.webtoolkit.eu/wt/doc/reference/html/group__ext.html
216-
* Download TinyMCE from [7]http://tinymce.moxiecode.com/ and install
222+
[14]http://www.webtoolkit.eu/wt/doc/reference/html/group__ext.html
223+
* Download TinyMCE from [15]http://tinymce.moxiecode.com/ and install
217224
its tiny_mce folder into the resources/ folder.
218225

219226
You will notice 404 File not Found errors for ext/ or
@@ -273,7 +280,7 @@ N/foobar/
273280
-http-port 8080
274281

275282
This will start a httpd server listening on all local interfaces, on
276-
port 8080, and you may browse the example at [8]http://127.0.0.1:8080/
283+
port 8080, and you may browse the example at [16]http://127.0.0.1:8080/
277284

278285
You will notice 404 File not Found errors for resources/ files if you
279286
are missing the resources files.
@@ -326,11 +333,19 @@ HTTPS server options:
326333

327334
References
328335

329-
1. http://www.cmake.org/
330-
2. http://www.boost.org/
331-
3. http://libharu.org/
332-
4. http://www.graphicsmagick.org/
333-
5. http://yogurtearl.com/ext-2.0.2.zip
334-
6. http://www.webtoolkit.eu/wt/doc/reference/html/group__ext.html
335-
7. http://tinymce.moxiecode.com/
336-
8. http://127.0.0.1:8080/
336+
1. file://localhost/home/koen/project/wt/git/wt/INSTALL.html#requirements
337+
2. file://localhost/home/koen/project/wt/git/wt/INSTALL.html#build
338+
3. file://localhost/home/koen/project/wt/git/wt/INSTALL.html#examples
339+
4. http://www.cmake.org/
340+
5. http://www.boost.org/
341+
6. http://www.openssl.org/
342+
7. http://libharu.org/
343+
8. http://www.graphicsmagick.org/
344+
9. http://www.posgresql.org/
345+
10. http://www.firebirdsql.org/
346+
11. http://www.pango.org/
347+
12. http://www.fastcgi.com/
348+
13. http://yogurtearl.com/ext-2.0.2.zip
349+
14. http://www.webtoolkit.eu/wt/doc/reference/html/group__ext.html
350+
15. http://tinymce.moxiecode.com/
351+
16. http://127.0.0.1:8080/

INSTALL.html

Lines changed: 37 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,14 @@
66
<body>
77
<h1>Wt Installation instructions on Unix-like systems</h1>
88

9-
This page lists the instructions for building and installing Wt 3.0.0.
10-
It is organized in 3 sections:
9+
This page lists the instructions for building and installing Wt. It is
10+
organized in 3 sections:
11+
1112
<ul>
12-
<li>Requirements</li>
13-
<li>Building and installing the library</li>
14-
<li>Trying the examples (or your own Wt application)</li>
13+
<li><a href="#requirements">Requirements</a></li>
14+
<li><a href="#build">Building and installing</a> the library</li>
15+
<li><a href="#examples">Trying the examples</a> (or your own Wt
16+
application)</li>
1517
</ul>
1618

1719
<a name="requirements"></a><h2>Requirements</h2>
@@ -56,15 +58,33 @@ <h3>1 Wt requirements</h3>
5658
Wt's own boost find script.
5759
</div>
5860
</li>
59-
<li><a href="http://www.boost.org/">C++ boost library</a> (version
60-
1.36 or higher), preferably with thread support enabled. You can
61+
<li><a href="http://www.boost.org/">C++ boost library</a> (preferably
62+
version 1.41 or higher), with or without thread support. You can
6163
verify you have a thread-enabled boost installation by locating the
6264
libboost_thread library. Thread support is not essential: Wt
6365
functionality is not affected except for exotic things like server
6466
push and reentrant event loops. Most importantly, even without
65-
thread support Wt can handle multiple concurrent sessions.</li>
66-
<li>Optionally, <a href="http://libharu.org/">Haru Free PDF Library</a>, which is used to provide support for painting to PDF (WPdfImage).</li>
67-
<li>Optionally, <a href="http://www.graphicsmagick.org/">GraphicsMagick</a>, for supporting painting to raster images (PNG, GIF, ...) (WRasterImage).</li>
67+
thread support Wt can handle multiple concurrent sessions. <br/>
68+
Older versions of boost, up until 1.36 are also supported, but some
69+
features will be disabled that depend on the revised versions of
70+
spirit, namely JSON parsing and improved SQL parsing (for Wt::Dbo).
71+
</li>
72+
<li>Optionally, <a href="http://www.openssl.org">OpenSSL</a>, which is
73+
used to support the HTTPS protocol in the web client, the HTTPS
74+
protocol in the built-in wthttpd connector, additional cryptographic
75+
hash functions in the Auth library, and WebSockets (which requires a
76+
SHA-1 hash implementation).</li>
77+
<li>Optionally, <a href="http://libharu.org/">Haru Free PDF Library</a>,
78+
which is used to provide support for painting to PDF (WPdfImage).</li>
79+
<li>Optionally, <a href="http://www.graphicsmagick.org/">GraphicsMagick</a>,
80+
for supporting painting to raster images (PNG, GIF, ...) (WRasterImage).</li>
81+
<li>Optionally, <a href="http://www.posgresql.org/">PostgreSQL</a>,
82+
for the PostgreSQL backend for Wt::Dbo (Dbo::backend::Postgres).</li>
83+
<li>Optionally, <a href="http://www.firebirdsql.org/">Firebird</a>,
84+
for the Firebird backend for Wt::Dbo (Dbo::backend::Firebird).</li>
85+
<li>Optionally, <a href="http://www.pango.org/">Pango</a>, for
86+
improved font support in the WPdfImage and WRasterImage paint
87+
devices.</li>
6888
</ul>
6989

7090
<h4>1a Using FastCGI</h4>
@@ -77,8 +97,9 @@ <h4>1a Using FastCGI</h4>
7797
similar:</p>
7898

7999
<ul>
80-
<li>FCGI library, including C++ bindings (libfcgi++)</li>
81-
<li>Fastcgi or mod_fcgi plugin for Apache.</li>
100+
<li><a href="http://www.fastcgi.com/">FCGI library</a>, including C++
101+
bindings (libfcgi++)</li>
102+
<li>A suitable plugin for your web server.</li>
82103
</ul>
83104

84105
<h4>1b Using wthttpd</h4>
@@ -88,13 +109,14 @@ <h4>1b Using wthttpd</h4>
88109
otherwise no extra dependencies are required.
89110

90111
<ul>
91-
<li>Optionally, libz, for compression over HTTP.</li>
92-
<li>Optionally, openssl, for supporting HTTPS.</li>
112+
<li>Optionally, zlib (libz), for compression over HTTP.</li>
113+
<li>Optionally, OpenSSL (libopenssl), for HTTPS and WebSockets (which
114+
requires a SHA-1 hash implementation).</li>
93115
</ul>
94116

95117
<h3>2 Additional and optional requirements for some of the examples</h3>
96118
<ul>
97-
<li>libmysql++-2.x (hangman)</li>
119+
<li>Qt, for the libwtwithqt interopability layer</li>
98120
</ul>
99121

100122
<hr />
@@ -185,9 +207,6 @@ <h4>2. Configure the library</h4>
185207
recommended, you may want to disable this for example if you suspect
186208
threading problems. Note that recursive event loops (most notably when
187209
using Dialog::exec()) are not possible without thread support.</dd>
188-
<dt><strong>ENABLE_SSL</strong></dt>
189-
<dd>Compile with support for SSL, enabling secure HTTP (HTTPS), and cryptographic functions
190-
for Wt::Auth. This requires an OpenSSL library.</dd>
191210
</dl>
192211

193212
The following variables apply to the FastCGI connector:
@@ -206,9 +225,6 @@ <h4>2. Configure the library</h4>
206225
<dl>
207226
<dt><strong>WTHTTP_CONFIGURATION</strong></dt>
208227
<dd>Location of the wthttpd configuration file (default is /etc/wt/wthttpd)</dd>
209-
<dt><strong>HTTP_WITH_ZLIB</strong></dt>
210-
<dd>Compile with support for compression over HTTP. This requires the
211-
libz library.</dd>
212228
</dl>
213229

214230
To change any entry, use [Enter]. To save and quit, do [c] followed by [g].

README.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
What is Wt ?
2+
------------
3+
4+
Wt is a C++ library for developing web applications. It consists of:
5+
6+
- libwt, a widget/rendering library
7+
- libwthttp, an (async I/O) HTTP/WebSockets server
8+
- libwtfcgi, a FastCGI connector library (Unix)
9+
- libwtisapi, an ISAPI connector library (Windows)
10+
- libwttest, a test connector environment
11+
12+
It also contains a C++ ORM, which can be used in a web application
13+
(obviously), but can also be used on its own:
14+
15+
- libwtdbo, a C++ ORM
16+
- libwtdbopostgres, PostgreSQL backend
17+
- libwtdbosqlite3, Sqlite3 backend
18+
- libwtdbofirebird, Firebird backend
19+
20+
For more information, see [the homepage](http://www.webtoolkit.eu/wt
21+
"Wt homepage").
22+
23+
Dependencies
24+
------------
25+
26+
To build Wt from source you will need at least
27+
[CMake](http://www.cmake.org/CMake) (>= 2.4), and
28+
[boost](http://www.boost.org) (version >= 1.41).
29+
30+
Optionally, you may want to add:
31+
32+
- [OpenSSL](http://www.openssl.org) for SSL and WebSockets support in
33+
the built-in httpd, the HTTP(S) client, and additional cryptographic
34+
hashes in the authentication module
35+
- [Haru PDF library](http://libharu.org) which is used for painting to PDF
36+
- [GraphicsMagick](http://www.graphicsmagick.org/) which is used for painting
37+
to PNG, GIF
38+
- [PostgreSQL](http://www.posgresql.org/) for a PostgreSQL backend
39+
- [Firebird](http://www.firebirdsql.org/) for a Firebird backend
40+
- [Pango](http://www.pango.org/) for improved font support in PDF and raster
41+
image painting
42+
- [ZLib](http://zlib.net/) for compression in the built-in httpd.
43+
44+
For the FastCGI connector, you also need:
45+
46+
- [FastCGI development kit](http://www.fastcgi.com/): you need the
47+
C/C++ library (libfcgi++)
48+
49+
Building
50+
--------
51+
52+
Generic instructions for [Unix-like
53+
platforms](http://www.webtoolkit.eu/wt/doc/reference/html/InstallationUnix.html)
54+
or [Windows
55+
platforms](http://www.webtoolkit.eu/wt/doc/reference/html/InstallationWindows.html).
56+
57+
Demos, examples
58+
---------------
59+
60+
[The homepage](http://www.webtoolkit.eu/wt), itself a Wt application,
61+
contains also [various examples](http://www.webtoolkit.eu/wt/examples).

0 commit comments

Comments
 (0)