This is Beta 2 of Qt version 4.5.1 for OS/2 and eCS. This document contains a brief information on the OS/2 version of the Qt library plus a brief list of OS/2-specific changes from release to release (section CHANGES below). Please visit the project page at http://svn.netlabs.org/qt4/wiki to get more information and the latest news and also to report bugs. REQUIREMENTS In order to compile the Qt library, you will need the following tools: - One of the OS/2 Warp 4, OS/2 Warp 4.5 or eComStation operating systems. - InnoTek GCC compiler version 3.3.5 CSD3 or above (not tested). You can download a copy of the compiler using the following link: ftp://ftp.netlabs.org/pub/gcc/GCC-3.3.5-csd3.zip - Patched OpenWatcom linker which you can download from: ftp://ftp.netlabs.org/pub/gcc/wl-hll-r1.zip Note that if you use IBM ILINK (no matter what version), you will not be able to build the debug version of the library due to bugs/limitations of ILINK. - GNU Make 3.81beta1 or above (not tested) available at: http://unix.os2site.com/pub/binary/make/make-3_81beta1-bin-static.zip After unpacking the GCC archive, you will have to set up the compiler environment by invoking gccenv.cmd from the bin subdirectory with the correct arguments (type gccenv.cmd -? for help). For the OpenWatcom linker, specify WLINK as the second argument. You will also need to perform the following steps: - Make sure the selected linker and the make utility are in PATH. - Make sure CMD.EXE is your command line processor (the generated makefiles will rely on its 'copy', 'if' and other commands). - set LIBRARY_PATH=C:\OS2\DLL;C:\MPTN\DLL where C: is your boot drive. Note that the QTDIR environment variable used by previous Qt versions is not used by Qt4 anymore (except two rare cases that do not affect the OS/2 platform anyway and are probably leftovers after the migration of the qmake feature specifications to Qt4). Therefore, there is no need to set this variable explicitly. See a note below about There is also no need to set the QMAKESPEC variable explicitly. If it is absent, qmake will use the specification stored in the /mkspecs/default directory, which on OS/2 always refers to the "os2-g++" specification, the only one supported at the present time. When the environment is set up, go to the directory where you unpacked the Qt4 source tree and type: configure.cmd This will set up the library (create necessary configuration and include files) and build the qmake utility. The next step is to go to the src subdirectory and type: qmake make This will compile and link the library. Note that by default both the release and the debug version of the library are built (please be patient, it may take quite some time depending on your hardware). The release and debug libraries can co-exist in the same source tree and may be used in parallel: all the debug DLLs get a 'd' letter in their name preceeding the Qt major version number and use separate directories for object files. Once the library is successfully built, you may try to compile the demos and examples by visiting the individual example subdirectories in the source tree and typing 'qmake' followed by one of 'make', 'make release' or 'make debug' in that subdirectory. NOTE: Please keep in mind that due to dropping the QTDIR variable recognition, qmake.exe now unconditionally uses hard-coded paths to locate various Qt4 components (such as the include or source directory) during the makefile generation process and therefore if you move the Qt source tree to another location you will need to run configure.cmd again in order to update these hard-coded paths and rebuild qmake and other dependent parts of the library. CURRENT LIMITATIONS 1. configure.cmd is not yet capable of generating the main Makefile and individual Makefiles for modules and examples. This needs to be done by hand (as described above). 2. Beta 2 and earlier can only use one font at the moment, C:\PSFONTS\HELV.PFB. Make sure this file exists. 3. Make sure you have the LANG environment variable properly set. The format is ll_CC[.codepage] where ll is the language code, CC is the country code and codepage is the optional code page to use. If LANG is missing or invalid, string conversion operations may work incorrectly resulting in distorted text input or output. 4. Some functionality of the already available Qt classes may be limited or unimplemented. If you find such a case and there is no ticket for it in the bug tracker, feel free to add one. 5. No qt3support module. This functionality is rarely necessary in mature real life applications and has low priority. 6. No native PM style. 7. No QDesigner, QLinguist and QAssistant. 8. No Drag&Drop, no printer support, no sound. See the project roadmap for more information on the progress and current limitations: http://svn.netlabs.org/qt4/roadmap CHANGES Beta 2 (17-09-2009) Improvements: - Ported the network module (QtNetwork4.dll) and added to the default build. - Added modules sql, svg, xmlpatterns, scripttools, plugins to the default build. - gui: Added recognition of dead keys which makes it possible to type umlauts and other accented characters that require composition. - gui: Implemented standard cursor shapes in Qt applications. Fixes: - qmake: Fixed the trailing slash problem which caused qmake to generate incorrect makefiles and fail to build the Qt library on some platforms. - configure.cmd: Return to the root source tree directory after building qmake. - qmake: Automatically use different link flags when linking qmake with WLINK. - qmake: Recognize TARGET_SHORT that allows to specify a short DLL name (vital for OS/2 which reqires DLL names to be in 8x3 format). - build: Set short DLL names for Qt modules on OS/2 using TARGET_SHORT. - corelib: Various fixes to file system classes that deal with the file name case (which should be ignored on OS/2) and forward and back slashes. - corelib: Fixed: QMutex could let more than one thread access the protected resource. - corelib: Standard stream redirection in QProcess should now work for kLIBC-based child processes. Redirection for all other applications (such as CMD.EXE) will be added later (seems to be a kLIBC bug/feature). - gui: Fixed erroneous QFileDialog behavior (duplicate entires in the list, incomplete contents of the root directory of the current drive). - gui: Fixed: Ctrl+A..Z should generate characters with codes 0x01-0x1F. - gui: Fixed: Close popups when resizing/moving the top level window. - gui: Enabled actual enforcing min/max Qt widget constraints for top-level windows. - gui: Fixed child widget duplication when resizing top level widgets after showing a popup; moving native child widgets should now work correctly. This also fixed a number of redraw problems (for example, drawing the main menu and tool bars in smplayer, moving tool bars around in other applications such as textedit from the demo folder). Beta 1 (29-08-2009) - First public release. CREDITS Dmitry A. Kuminov (development) Silvan Scherrer (management) netlabs.org (hosting & support) Nokia Corporation (original Qt library) We also want to THANK all individuals and organizations who made the donations to this project and helped to make it happen. Please visit http://qt.netlabs.org/en/site/index.xml to get the full list of sponsors and to find information on how you can support the project. Qt is a trademark of Nokia Corporation and/or its subsidiary(-ies). OS/2 and OS/2 Warp are trademarks of the IBM Corporation and/or its subsidiary(-ies). eComStation is a trademark of Serenity Systems International and/or its subsidiary(-ies). Etc.