| 1 | This is Qt version 4.5.1 GA for OS/2 and eCS. | 
|---|
| 2 |  | 
|---|
| 3 | This document contains a brief information on the OS/2 version of the Qt | 
|---|
| 4 | library. Please read it carefully before starting your work. You may also | 
|---|
| 5 | visit the project page at | 
|---|
| 6 |  | 
|---|
| 7 | http://svn.netlabs.org/qt4/wiki | 
|---|
| 8 |  | 
|---|
| 9 | to get more information and the latest news and also to report bugs. | 
|---|
| 10 |  | 
|---|
| 11 | To get a brief list of OS/2-specific changes from release to release | 
|---|
| 12 | please see the CHANGES.OS2 file included in this distribution. | 
|---|
| 13 |  | 
|---|
| 14 |  | 
|---|
| 15 |  | 
|---|
| 16 | REQUIREMENTS | 
|---|
| 17 |  | 
|---|
| 18 | In order to compile the Qt library and Qt-based applications, you will need | 
|---|
| 19 | the following tools: | 
|---|
| 20 |  | 
|---|
| 21 | - One of the OS/2 Warp 4, OS/2 Warp 4.5 or eComStation operating systems. | 
|---|
| 22 |  | 
|---|
| 23 | - InnoTek GCC compiler version 3.3.5 CSD3 or 4.4.2 (recommended). | 
|---|
| 24 | You can download the GCC 4.4.2 compiler using the following link: | 
|---|
| 25 |  | 
|---|
| 26 | http://download.smedley.info/gcc-4.4.2-os2-20091205.zip | 
|---|
| 27 |  | 
|---|
| 28 | GCC 4.4.2 requires newer binutils available at: | 
|---|
| 29 |  | 
|---|
| 30 | http://download.smedley.info/binutils-2.19.1-os2-20090427.zip | 
|---|
| 31 |  | 
|---|
| 32 | Note that in order to use the above version of GCC, you will also need | 
|---|
| 33 | to install the previous 3.x version (e.g. 3.3.5 CSD3) available at: | 
|---|
| 34 |  | 
|---|
| 35 | ftp://ftp.netlabs.org/pub/gcc/GCC-3.3.5-csd3.zip | 
|---|
| 36 |  | 
|---|
| 37 | - Patched OpenWatcom linker which you can download from here: | 
|---|
| 38 |  | 
|---|
| 39 | ftp://ftp.netlabs.org/pub/gcc/wl-hll-r1.zip | 
|---|
| 40 |  | 
|---|
| 41 | Note that if you use IBM ILINK (no matter what version), you will | 
|---|
| 42 | not be able to build the debug version of the library due to | 
|---|
| 43 | bugs/limitations of ILINK. | 
|---|
| 44 |  | 
|---|
| 45 | - GNU Make 3.81beta1 or above (not tested) available at: | 
|---|
| 46 |  | 
|---|
| 47 | http://unix.os2site.com/pub/binary/make/make-3_81beta1-bin-static.zip | 
|---|
| 48 |  | 
|---|
| 49 | - LxLite 1.3.3 or above (not tested) if you want Qt DLLs and application | 
|---|
| 50 | executables to be compressed (to save hard disk space and load time). If | 
|---|
| 51 | you have a recent eComStation installation (e.g. 2.0 rc6) you will already | 
|---|
| 52 | have LxLite installed. Otherwise, you may take it from here: | 
|---|
| 53 |  | 
|---|
| 54 | http://www.os2site.com/sw/util/archiver/lxlt133.zip | 
|---|
| 55 |  | 
|---|
| 56 |  | 
|---|
| 57 |  | 
|---|
| 58 | SETTING UP THE ENVIRONMENT | 
|---|
| 59 |  | 
|---|
| 60 | After unpacking the GCC archive, you will have to set up the compiler | 
|---|
| 61 | environment by invoking gccenv.cmd from the "bin" subdirectory with the correct | 
|---|
| 62 | arguments (type gccenv.cmd -? for help). For the OpenWatcom linker, specify | 
|---|
| 63 | WLINK as the second argument. | 
|---|
| 64 |  | 
|---|
| 65 | Please note that setting up the GCC 4.x environment requires some additional | 
|---|
| 66 | steps. Please look through the README files contained within the OS/2 | 
|---|
| 67 | distribution. | 
|---|
| 68 |  | 
|---|
| 69 | You will also need to perform the following steps: | 
|---|
| 70 |  | 
|---|
| 71 | - Make sure the selected linker, the make utility and LxLite executable are | 
|---|
| 72 | in PATH. | 
|---|
| 73 |  | 
|---|
| 74 | - Make sure CMD.EXE is your command line processor (the generated makefiles | 
|---|
| 75 | will rely on its 'copy', 'if' and other commands). If you have a Unix shell | 
|---|
| 76 | (SH.EXE) in your environment, you may need to force GNU make to use CMD.EXE | 
|---|
| 77 | by doing 'set MAKESHELL=C:\OS2\CMD.EXE' where C: is your boot drive. | 
|---|
| 78 |  | 
|---|
| 79 | - Do set LIBRARY_PATH=C:\OS2\DLL;C:\MPTN\DLL where C: is your boot drive. | 
|---|
| 80 |  | 
|---|
| 81 | - Make sure that there are no traces of any other Watcom or OpenWatcom | 
|---|
| 82 | installation in the environment where you build Qt as it will most likely | 
|---|
| 83 | interfere with the patched OpenWatcom linker we use. This basically means | 
|---|
| 84 | removing all *WATCOM* environment variables and removing references to those | 
|---|
| 85 | Watcom installations from PATH. | 
|---|
| 86 |  | 
|---|
| 87 | - Add the "bin" subdirectory of the directory where you unpacked the Qt4 | 
|---|
| 88 | source tree to PATH and BEGINLIBPATH using its full path, e.g.: | 
|---|
| 89 |  | 
|---|
| 90 | set PATH=D:\Coding\Qt4\bin;%PATH% | 
|---|
| 91 | set BEGINLIBPATH=D:\Coding\Qt4\bin;%BEGINLIBPATH% | 
|---|
| 92 |  | 
|---|
| 93 | Note that the QTDIR environment variable used by previous Qt versions is not | 
|---|
| 94 | used by Qt4 anymore (except two rare cases that do not affect the OS/2 platform | 
|---|
| 95 | anyway and are probably leftovers after the migration of the qmake feature | 
|---|
| 96 | specifications to Qt4). Therefore, there is no need to set this variable | 
|---|
| 97 | explicitly. See also a note below about hard-coded paths to the source tree. | 
|---|
| 98 |  | 
|---|
| 99 | There is also no need to set the QMAKESPEC variable explicitly. If it is absent, | 
|---|
| 100 | qmake will use the specification stored in the <Qt4_Home>/mkspecs/default | 
|---|
| 101 | directory, which on OS/2 always refers to the "os2-g++" specification, the only | 
|---|
| 102 | one supported at the present time. | 
|---|
| 103 |  | 
|---|
| 104 |  | 
|---|
| 105 |  | 
|---|
| 106 | COMPILING QT | 
|---|
| 107 |  | 
|---|
| 108 | You should skip this section if you downloaded and installed a binary | 
|---|
| 109 | distribution of the Qt library for developers (qt-dev-X_Y_Z.wpi) and proceed | 
|---|
| 110 | directly to section USING OFFICIAL BINARY QT PACKAGES below. | 
|---|
| 111 |  | 
|---|
| 112 | When the environment is set up, go to the directory where you unpacked the | 
|---|
| 113 | Qt4 source tree and type: | 
|---|
| 114 |  | 
|---|
| 115 | configure.cmd | 
|---|
| 116 |  | 
|---|
| 117 | This will set up the library (by creating necessary configuration and include | 
|---|
| 118 | files and a bunch of Makefiles for variuos components) and build the qmake | 
|---|
| 119 | utility. | 
|---|
| 120 |  | 
|---|
| 121 | The next step is to type: | 
|---|
| 122 |  | 
|---|
| 123 | make | 
|---|
| 124 |  | 
|---|
| 125 | This will compile and link the library. Note that by default both the release | 
|---|
| 126 | and the debug version of the library are built (please be patient, it may take | 
|---|
| 127 | quite some time depending on your hardware). The release and debug libraries can | 
|---|
| 128 | co-exist in the same source tree and may be used in parallel: all the debug DLLs | 
|---|
| 129 | get a 'd' letter in their name preceeding the Qt major version number and use | 
|---|
| 130 | separate directories for object files. | 
|---|
| 131 |  | 
|---|
| 132 | To save time, you may also build the release and the debug versions of the | 
|---|
| 133 | library separately by typing 'make release' or 'make debug' accordingly | 
|---|
| 134 | instead of just 'make'. | 
|---|
| 135 |  | 
|---|
| 136 | Once the library is successfully built, you may try to compile the demos | 
|---|
| 137 | and examples by visiting the individual example subdirectories in the source | 
|---|
| 138 | tree and typing 'qmake' followed by one of 'make', 'make release' or | 
|---|
| 139 | 'make debug' in that subdirectory. | 
|---|
| 140 |  | 
|---|
| 141 | NOTE: | 
|---|
| 142 |  | 
|---|
| 143 | This version of Qt for OS/2 includes the Extended system tray plugin for | 
|---|
| 144 | XCenter/eCenter which is necessary to enable Qt support for the special | 
|---|
| 145 | notification area on the XCenter/eCenter panel (called the "system tray") | 
|---|
| 146 | which is used by many long-running applications to display their status. | 
|---|
| 147 | In order to activate this support, you need to install this plugin to your | 
|---|
| 148 | XCenter or eCenter. The plugin is built during the normal Qt build process | 
|---|
| 149 | and can be found in the file \plugins\xcenter\xsystray.dll in the Qt source | 
|---|
| 150 | tree. In order to install the plugin, do the following: | 
|---|
| 151 |  | 
|---|
| 152 | a. Copy xsystray.dll to <XWorkplace installation folder>\plugins\xcenter\ | 
|---|
| 153 | (on eComStation, this will be C:\ecs\system\ewps\plugins\xcenter\ where | 
|---|
| 154 | C: is your boot drive). | 
|---|
| 155 |  | 
|---|
| 156 | b. Restart WPS. | 
|---|
| 157 |  | 
|---|
| 158 | c. Add the "Extended system tray" widget to the XCenter/eCenter panel using | 
|---|
| 159 | the XCenter context menu ('Create new widget'). | 
|---|
| 160 |  | 
|---|
| 161 | Note that if you upgrade from the previous version of the plugin then | 
|---|
| 162 | please unlock xsystray.dll in the target folder using the UNLOCK.EXE | 
|---|
| 163 | utility (which you can find in the LxLite package, for example) before | 
|---|
| 164 | performing step a., otherwise the copy operation will fail. | 
|---|
| 165 |  | 
|---|
| 166 | IMPORTANT NOTE: | 
|---|
| 167 |  | 
|---|
| 168 | Please take into account that the Qt library you build on your own as | 
|---|
| 169 | described above is NOT intended for wide distribution with Qt applications | 
|---|
| 170 | you port or create. Such private Qt builds help you develop Qt applications | 
|---|
| 171 | (because you can easily debug your program and parts of the Qt framework at | 
|---|
| 172 | the source level) but being widely distributed they will create a so-called | 
|---|
| 173 | DLL hell when a program running on a user computer crashes because it picks | 
|---|
| 174 | up a wrong build of the Qt library. This will happen because even a single | 
|---|
| 175 | change to Qt configuration options may make your build binary incompatible | 
|---|
| 176 | with another build. And even if you convince the user to isolate different | 
|---|
| 177 | DLLs (using BEGINLIBPATH and alike) it will create another major problem: | 
|---|
| 178 | two different Qt applications will load two different Qt builds into memory | 
|---|
| 179 | which will double resource usage; having three different builds will | 
|---|
| 180 | tripple it and so on -- what a vaste of system resources! | 
|---|
| 181 |  | 
|---|
| 182 | In order to nicely solve this problem, netlabs.org provides the official | 
|---|
| 183 | binary builds of the Qt library distributed as WPI packages which are | 
|---|
| 184 | described in the next section. | 
|---|
| 185 |  | 
|---|
| 186 |  | 
|---|
| 187 |  | 
|---|
| 188 | USING OFFICIAL BINARY QT PACKAGES | 
|---|
| 189 |  | 
|---|
| 190 | For your convenience, netlabs.org provides the following binary distributions | 
|---|
| 191 | of the Qt library (where X_Y_Z is the Qt version number): | 
|---|
| 192 |  | 
|---|
| 193 | qt-lib-X_Y_Z.wpi   - Runtime DLLs and binaries ("lib" package) | 
|---|
| 194 | qt-dev-X_Y_Z.wpi   - Development libraries, tools and headers ("dev" package) | 
|---|
| 195 |  | 
|---|
| 196 | These packages are called the official binary packages of the Qt library for | 
|---|
| 197 | OS/2. An official binary distribution is the most complete Qt build available | 
|---|
| 198 | that enables all Qt library features and includes all standard Qt plugins that | 
|---|
| 199 | were implemented for OS/2. | 
|---|
| 200 |  | 
|---|
| 201 | The "lib" package contains the release versions of DLLs (and may contain a few | 
|---|
| 202 | helper binaries) necessary to run applications created using the Qt framework. | 
|---|
| 203 | This package is usually installed by end users together with the Qt applications | 
|---|
| 204 | they want to use. | 
|---|
| 205 |  | 
|---|
| 206 | The "dev" package contains pre-built release versions of import libraries and | 
|---|
| 207 | a complete set of C++ include headers of the Qt framework. This package is used | 
|---|
| 208 | by developers and porters of Qt applications to build release versions of the | 
|---|
| 209 | applications for OS/2 that are binary compatibie with the "lib" package | 
|---|
| 210 | described above. | 
|---|
| 211 |  | 
|---|
| 212 | Using the "dev" package requires the same environment as the one necessary for | 
|---|
| 213 | building Qt and described in section SETTING UP THE ENVIRONMET above with the | 
|---|
| 214 | exception that the "bin" subdirectory of the directory where you installed the | 
|---|
| 215 | "dev" package needs to be added to PATH instead of the "bin" subdirectory of | 
|---|
| 216 | the Qt4 source tree. | 
|---|
| 217 |  | 
|---|
| 218 | The process of compiling Qt applications using the "dev" package is basically | 
|---|
| 219 | the same as with the hand made-build of Qt. Note, however, that if you are | 
|---|
| 220 | developing or porting a Qt application, it is still recommended that you build | 
|---|
| 221 | the debug version of the Qt library yourself and use it in your daily work since | 
|---|
| 222 | it will give you much more feedback than the stripped down release version | 
|---|
| 223 | contained in the "dev" package. The "dev" package, as said above, is intended | 
|---|
| 224 | for making the final release build of the application for subsequent | 
|---|
| 225 | distribution together with the official "lib" package. | 
|---|
| 226 |  | 
|---|
| 227 | Besides the "lib" and the "dev" packages, the following official packages exist | 
|---|
| 228 | that you may also find useful: | 
|---|
| 229 |  | 
|---|
| 230 | qt-examples-X_Y_Z.wpi  - Demo and example sources ("examples") | 
|---|
| 231 |  | 
|---|
| 232 | The "examples" package contains the demo and example applications shipped with | 
|---|
| 233 | Qt along with the source code. They serve as a good demonstration of the Qt | 
|---|
| 234 | library features and it is recommended to look at them. | 
|---|
| 235 |  | 
|---|
| 236 | Please note that this package does not contain all Qt demos and examples | 
|---|
| 237 | available since not all features have been implemented in the OS/2 version of | 
|---|
| 238 | Qt yet. | 
|---|
| 239 |  | 
|---|
| 240 | NOTE: | 
|---|
| 241 |  | 
|---|
| 242 | All .DLL and .EXE files of the official binary build contain a DESCRIPTION | 
|---|
| 243 | string with the vendor field set to "netlabs.org" (by contrast, all custom | 
|---|
| 244 | Qt builds will set the vendor field to what the USER environment variable | 
|---|
| 245 | contains or to "anonymous" if USER is not set). Please note that you must | 
|---|
| 246 | NOT set vendor to "netlabs.org" when creating your own builds of the Qt | 
|---|
| 247 | library because it will make it really difficult to identify various | 
|---|
| 248 | distributions and track possible problems with the builds. | 
|---|
| 249 |  | 
|---|
| 250 |  | 
|---|
| 251 |  | 
|---|
| 252 | QMAKE CONFIG OPTIONS | 
|---|
| 253 |  | 
|---|
| 254 | The following CONFIG options of the qmake utility have a special meaning in | 
|---|
| 255 | OS/2: | 
|---|
| 256 |  | 
|---|
| 257 | windows           Turns on generation of PM (WINDOWAPI) executables. By | 
|---|
| 258 | default, this option is set for release builds that link | 
|---|
| 259 | to the Qt GUI library. | 
|---|
| 260 |  | 
|---|
| 261 | console           Turns on generation of text mode (WINDOWCOMPAT) executables. | 
|---|
| 262 | By default, this option is set when setting the "windows" | 
|---|
| 263 | option is not appropriate (see above). | 
|---|
| 264 |  | 
|---|
| 265 | In addition, qmake recognizes the following OS/2-specific CONFIG options: | 
|---|
| 266 |  | 
|---|
| 267 | map               Turns on generation of the .map files for executables and | 
|---|
| 268 | DLLs. This option is set by default. | 
|---|
| 269 |  | 
|---|
| 270 | exepack           Turns on compression for executables and DLLs. The option is | 
|---|
| 271 | turned on by default for release builds if configure.cmd | 
|---|
| 272 | finds a compression tool (LxLite) in PATH. | 
|---|
| 273 |  | 
|---|
| 274 | highmem           Turns on high memory usage for dynamically allocated memory | 
|---|
| 275 | in DLLs and executables. When this option is set, a special | 
|---|
| 276 | compiler flag (-Zhigh-mem for GCC) is used to enable high | 
|---|
| 277 | memory support in the C library (LIBC). This option is set | 
|---|
| 278 | by default so that all Qt DLLs and Qt applications built | 
|---|
| 279 | with qmake are enabled for high memory. Note that high | 
|---|
| 280 | memory support must be enabled for all LIBC-based DLLs | 
|---|
| 281 | linked to the executable as well as for the executable | 
|---|
| 282 | itself: high memory usage will be disabled if one of them | 
|---|
| 283 | votes against it. | 
|---|
| 284 |  | 
|---|
| 285 |  | 
|---|
| 286 |  | 
|---|
| 287 | ENVIRONMENT VARIABLES | 
|---|
| 288 |  | 
|---|
| 289 | The Qt library recognizes a number of OS/2-specific environment variables that | 
|---|
| 290 | affect its functionality at runtime. The table below lists these variables and | 
|---|
| 291 | their meaning: | 
|---|
| 292 |  | 
|---|
| 293 | QT_PM_NO_SOUND_SHARE      If set, Qt will open the audio device in exclusive | 
|---|
| 294 | only one sound may be played on the computer at a | 
|---|
| 295 | time. This mode is recommended for some sound cards | 
|---|
| 296 | when using the Uniaud audio driver as it is known to | 
|---|
| 297 | have problems with simultaneous playback. In current | 
|---|
| 298 | Qt builds, this is the default behavior if neither | 
|---|
| 299 | this nor the QT_PM_SOUND_SHARE variable is set. | 
|---|
| 300 |  | 
|---|
| 301 | QT_PM_SOUND_SHARE         The opposite to the above. If set, Qt will open the | 
|---|
| 302 | audio device in shared mode. This variable is | 
|---|
| 303 | ignored if QT_PM_NO_SOUND_SHARE is set. | 
|---|
| 304 |  | 
|---|
| 305 | QT_PM_NO_REGISTRY         If set, Qt will not use the Open32 registry to store | 
|---|
| 306 | application settings with QSettings. Instead, plain | 
|---|
| 307 | text INI files will be used for both NativeFormat | 
|---|
| 308 | and IniFormat. Due to a number of problems in the | 
|---|
| 309 | Open32 registry implementation (that may easily lead | 
|---|
| 310 | to registry corruption), this is the default | 
|---|
| 311 | behavior if neither this nor the QT_PM_REGISTRY | 
|---|
| 312 | variable is set. | 
|---|
| 313 |  | 
|---|
| 314 | QT_PM_REGISTRY            The opposite to the above. If set, Qt will use the | 
|---|
| 315 | Open32 registry to store application settings. | 
|---|
| 316 |  | 
|---|
| 317 |  | 
|---|
| 318 |  | 
|---|
| 319 | CURRENT LIMITATIONS | 
|---|
| 320 |  | 
|---|
| 321 | 1. configure.cmd is not yet capable of generating individual Makefiles for | 
|---|
| 322 | demos and examples, it only generates the main Makefile that builds the | 
|---|
| 323 | library and the necessary tools. Demos and examples can be compiled by | 
|---|
| 324 | hand (as described above). | 
|---|
| 325 |  | 
|---|
| 326 | 2. configure.cmd does not understand any command line options. If you want | 
|---|
| 327 | to customize the build of the Qt library (which is not recommended), you | 
|---|
| 328 | may try to modify configure.cmd itself. | 
|---|
| 329 |  | 
|---|
| 330 | 3. OS/2 bitmap fonts are not yet supported. Use TTF or Type1 (PFB) fonts with | 
|---|
| 331 | Qt. | 
|---|
| 332 |  | 
|---|
| 333 | 4. In order to let Qt correctly detect the regional settings and choose the | 
|---|
| 334 | right language for translating the user interface, the LANG environment | 
|---|
| 335 | variable must be set. The format is | 
|---|
| 336 |  | 
|---|
| 337 | set LANG=ll_CC | 
|---|
| 338 |  | 
|---|
| 339 | where <ll> is the language code and <CC> is the country code (refer to | 
|---|
| 340 | wikipedia.org to find correct letters for your langage and country if you | 
|---|
| 341 | do not know them). Note that the optional encoding part of the LANG | 
|---|
| 342 | specification is ignored by Qt for OS/2 since 4.5.1 Beta 5 because it now | 
|---|
| 343 | detects the encoding automatically based on the system OS/2 settings. | 
|---|
| 344 |  | 
|---|
| 345 | Later, the correct language will be detected from the system settings so | 
|---|
| 346 | that specifying LANG will be not necessary at all. | 
|---|
| 347 |  | 
|---|
| 348 | 5. No qt3support module. This functionality is rarely necessary in mature | 
|---|
| 349 | real life applications and has low priority. | 
|---|
| 350 |  | 
|---|
| 351 | 6. No native PM style, but Qt will use fonts and colors from the current | 
|---|
| 352 | OS/2 theme. Hint: if your default OS/2 font is "WarpSans", install the | 
|---|
| 353 | "Workplace Sans" TTF font from Alex Taylor to get more native look & feel. | 
|---|
| 354 | It is recommended to install version 0.6 of the Normal face and version 0.2 | 
|---|
| 355 | of the Bold face which you can find here: | 
|---|
| 356 |  | 
|---|
| 357 | http://users.socis.ca/~ataylo00/creative/fonts/workplace/ | 
|---|
| 358 |  | 
|---|
| 359 | 7. QProcess: when starting PM applications from text-mode applications, the | 
|---|
| 360 | returned PID is a PID of the intermediate cmd.exe process, not the target | 
|---|
| 361 | application. | 
|---|
| 362 |  | 
|---|
| 363 | 8. The followign classes are not available due to their rare usage or low | 
|---|
| 364 | importance on the OS/2 platform: QSharedMemory, QSystemSemaphore, | 
|---|
| 365 | QInputContext, QAccessible. The following macros are defined to indicate | 
|---|
| 366 | this: QT_NO_SYSTEMSEMAPHORE, QT_NO_SHAREDMEMORY, | 
|---|
| 367 | QT_NO_IM, QT_NO_ACCESSIBILITY. Applications normally use them to guard the | 
|---|
| 368 | relevant parts of code so they should still build. | 
|---|
| 369 |  | 
|---|
| 370 | 9. No QAssistant, no printer support (QT_NO_PRINTER and QT_NO_PRINTDIALOG are | 
|---|
| 371 | defined). No IPV6 support in the network module (QT_NO_IPV6 is defined). | 
|---|
| 372 |  | 
|---|
| 373 | See the project roadmap for more information on the current progress and | 
|---|
| 374 | future plans: | 
|---|
| 375 |  | 
|---|
| 376 | http://svn.netlabs.org/qt4/roadmap | 
|---|
| 377 |  | 
|---|
| 378 | Feel free to request new features and report bugs using the project bug | 
|---|
| 379 | tracker abaialble at: | 
|---|
| 380 |  | 
|---|
| 381 | http://svn.netlabs.org/qt4/report | 
|---|
| 382 |  | 
|---|
| 383 |  | 
|---|
| 384 |  | 
|---|
| 385 | CREDITS | 
|---|
| 386 |  | 
|---|
| 387 | Dmitry A. Kuminov (development) | 
|---|
| 388 | Silvan Scherrer (management) | 
|---|
| 389 |  | 
|---|
| 390 | netlabs.org (hosting & support) | 
|---|
| 391 |  | 
|---|
| 392 | Nokia Corporation (original Qt library) | 
|---|
| 393 |  | 
|---|
| 394 | We also want to THANK all individuals and organizations who made the donations | 
|---|
| 395 | to this project and helped to make it happen. Please visit | 
|---|
| 396 |  | 
|---|
| 397 | http://qt.netlabs.org/en/site/index.xml | 
|---|
| 398 |  | 
|---|
| 399 | to get the full list of sponsors and to find information on how you can support | 
|---|
| 400 | the project. | 
|---|
| 401 |  | 
|---|
| 402 |  | 
|---|
| 403 | Qt is a trademark of Nokia Corporation and/or its subsidiary(-ies). | 
|---|
| 404 | OS/2 and OS/2 Warp are trademarks of the IBM Corporation and/or its subsidiary(-ies). | 
|---|
| 405 | eComStation is a trademark of Serenity Systems International and/or its subsidiary(-ies). | 
|---|
| 406 | Etc. | 
|---|