Index: trunk/README.OS2
===================================================================
--- trunk/README.OS2	(revision 330)
+++ trunk/README.OS2	(revision 397)
@@ -1,7 +1,6 @@
-This is Beta 4 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
+This is Beta 5 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. Please visit the project page at
 
   http://svn.netlabs.org/qt4/wiki
@@ -9,9 +8,13 @@
 to get more information and the latest news and also to report bugs.
 
+To get a brief list of OS/2-specific changes from release to release
+please see the CHANGES.OS2 file included in this distribution.
+
 
 
 REQUIREMENTS
 
-In order to compile the Qt library, you will need the following tools:
+In order to compile the Qt library and Qt-based applications, you will need
+the following tools:
 
   - One of the OS/2 Warp 4, OS/2 Warp 4.5 or eComStation operating systems.
@@ -40,4 +43,8 @@
 
       http://www.os2site.com/sw/util/archiver/lxlt133.zip
+
+
+
+SETTING UP THE ENVIRONMENT
 
 After unpacking the GCC archive, you will have to set up the compiler
@@ -74,4 +81,12 @@
 directory, which on OS/2 always refers to the "os2-g++" specification, the only
 one supported at the present time.
+
+
+
+COMPILING QT
+
+You should skip this section if you downloaded and installed a binary
+distribution of the Qt library for developers (qt-os2_g++-dev-X_Y_Z.wpi) and
+proceed directly to section USING OFFICIAL BINARY QT PACKAGES below.
 
 When the environment is set up, go to the directory where you unpacked the
@@ -137,4 +152,77 @@
      performing step a., otherwise the copy operation will fail.
 
+IMPORTANT NOTE:
+
+     Please take into account that the Qt library you build on your own as
+     described above is NOT intended for wide distribution with Qt applications
+     you port or create. Such private Qt builds help you develop Qt applications
+     (because you can easily debug your program and parts of the Qt framework at
+     the source level) but being widely distributed they will create a so-called
+     DLL hell when a program running on a user computer crashes because it picks
+     up a wrong build of the Qt library. This will happen because even a single
+     change to Qt configuration options may make your build binary incompatible
+     with another build. And even if you convince the user to isolate different
+     DLLs (using BEGINLIBPATH and alike) it will create another major problem:
+     two different Qt applications will load two different Qt builds into memory
+     which will double resource usage; having three different builds will
+     tripple it and so on -- what a vaste of system resources!
+
+     In order to nicely solve this problem, netlabs.org provides the official
+     binary builds of the Qt library distributed as WPI packages which are
+     described in the next section.
+
+
+
+USING OFFICIAL BINARY QT PACKAGES
+
+For your convenience, netlabs.org provides the following binary distributions
+of the Qt library (where X_Y_Z is the Qt version number):
+
+  qt-os2_g++-lib-X_Y_Z.wpi   - Runtime DLLs and binaries ("lib" package)
+  qt-os2_g++-dev-X_Y_Z.wpi   - Development libraries, tools and headers
+                               ("dev" package)
+
+These packages are called the official binary packages of the Qt library for
+OS/2. An official binary distribution is the most complete Qt build available
+that enables all Qt library features and includes all standard Qt plugins that
+were implemented for OS/2.
+
+The "lib" package contains the release versions of DLLs (and may contain a few
+helper binaries) necessary to run applications created using the Qt framework.
+This package is usually installed by end users together with the Qt applications
+they want to use.
+
+The "dev" package contains pre-built release versions of import libraries and
+a complete set of C++ include headers of the Qt framework. This package is used
+by developers and porters of Qt applications to build release versions of the
+applications for OS/2 that are binary compatibie with the "lib" package
+described above.
+
+Using the "dev" package requires the same environment as the one necessary for
+building Qt and described in section SETTING UP THE ENVIRONMET above. The
+process of compiling Qt applications using the "dev" package is basically the
+same as with the hand made-build of Qt. Note, however, that if you are
+developing or porting a Qt application, it is still recommended that you build
+the debug version of the Qt library yourself and use it in your daily work since
+it will give you much more feedback than the stripped down release version
+contained in the "dev" package. The "dev" package, as said above, is intended
+for making the final release build of the application for subsequent
+distribution together with the official "lib" package.
+
+Besides the binary "lib" and the "dev" packages, the following official
+non-binary packages exist that you may also find useful:
+
+  qt-examples-src-X_Y_Z.wpi  - Demo and example sources ("examples")
+
+NOTE:
+
+     All .DLL and .EXE files of the official binary build contain a DESCRIPTION
+     string with the vendor field set to "netlabs.org" (by contrast, all custom
+     Qt builds will set the vendor field to what the USER environment variable
+     contains or to "anonymous" if USER is not set). Please note that you must
+     NOT set vendor to "netlabs.org" when creating your own builds of the Qt
+     library because it will make it really difficult to identify various
+     distributions and track possible problems with the builds.
+
 
 
@@ -149,28 +237,18 @@
      Qt.
 
-  3. Make sure you have the LANG environment variable properly set. The format
-     is 'set LANG=ll_CC[.encoding]' where <ll> is the language code, <CC> is the
-     country code and <encoding> is the optional encoding to use. If LANG is
-     missing or invalid, string conversion operations may work incorrectly
-     resulting in distorted text input or output. Note that for most languages
-     you will have to specify the encoding number explicitly because Qt and OS/2
-     usually disagree about the default encoding for the given language.
-
-     To specify the correct encoding for Qt you need to know your system code
-     page number. You can find this number in the CODEPAGE statement of your
-     CONFIG.SYS. Note however that the code page number from CONFIG.SYS and the
-     encoding name you specify in LANG are different things. Qt doesn't
-     understand IBM code page numbers directly. In most cases, you can get the
-     encoding name by prepending 'cp' to the code page number (for example,
-     'cp850' for code page 850) but sometimes this will not work because not all
-     encodings have 'cp'-like aliases. In this case, you should google around to
-     find the correct encoding name for your code page number. Here is a couple
-     of examples of the proper LANG specification:
-
-       set LANG=de_DE.cp850             - for the German OS/2 locale
-       set LANG=ru_RU.cp866             - for the Russian OS/2 locale
-
-     Later, the correct encoding for the system code page will be detected
-     automatically and specifying it in LANG will not be necessary.
+  3. In order to let Qt correctly detect the regional settings and choose the
+     right language for translating the user interface, the LANG environment
+     variable must be set. The format is
+
+       set LANG=ll_CC
+
+     where <ll> is the language code and <CC> is the country code (refer to
+     wikipedia.org to find correct letters for your langage and country if you
+     do not know them). Note that the optional encoding part of the LANG
+     specification is ignored by Qt for OS/2 since 4.5.1 Beta 5 because it now
+     detects the encoding automatically based on the system OS/2 settings.
+
+     Later, the correct language will be detected from the system settings and
+     specifying LANG will be not necessary at all.
 
   4. Some functionality of the already available Qt classes may be limited or
@@ -195,185 +273,8 @@
   8. No QDesigner, no QAssistant.
 
-  9. No clipboard, no Drag&Drop, no printer support. See the project roadmap for
-     more information on the current progress and future plans:
+  9. No Drag&Drop, no printer support. See the project roadmap for more
+     information on the current progress and future plans:
 
        http://svn.netlabs.org/qt4/roadmap
-
-
-
-CHANGES
-
-Beta 4 (11-11-2009)
-
-  Improvements:
-
-  - Added sound support (implemented QSound class).
-
-  - Added system tray support (QSystemTrayIcon class). This support requires
-    the Extended system tray XCenter plugin to be installed. See the note above
-    on how to compile and install this plugin.
-
-  - Enabled QPlugin support on OS/2. This in turn enables SVG support for
-    QIcon (which is built as a Qt plugin DLL by default).
-
-  - Better widget modality support (widgets blocked by modality cannot be
-    activated and moved using the mouse and the title bar anymore).
-
-  - Added support for 'console' and 'windows' CONFIG options in .pro files.
-    Now, if 'windows' is present, the target executable will have the WINDOWAPI
-    attribute set which effectively makes it a PM application. This, in
-    particular, disables standard input, output and error streams so that when
-    started, the application will not have a console window attached to it.
-    By default, 'console' mode is active unless you perform a release build and
-    the application is linked against the QtGui library ('QT = gui' in .pro),
-    in which case the default is 'windows'.
-
-  - Improved paint speed in Qt windows which should increase overall graphical
-    UI performance by 10%-20% in Qt4 applications.
-
-  - Implemented setting window icons for top-level windows (using
-    QWidget::setWindowIcon()).
-
-  - Added LxLite support to provide compression for executables and DLLs. The
-    compression is controlled by the 'exepack' CONFIG option which is turned on
-    by default for release builds if the LxLite executable is present in PATH
-    during the configure.cmd invocation. The compression may be turned off on a
-    per-project basis by adding a 'CONFIG -= exepack' line to the .pro file.
-
-  - Improved the section of this README.OS2 file that describes how to properly
-    set the LANG variable to have correct national characters in file names and
-    in window titles of Qt applications.
-
-  Fixes:
-
-  - QProcess: The executable's path was not always added to BEGINLIBPATH.
-
-  - Fixed-size top-level widgets could not be moved.
-
-  - Application crash after pressing a button in a dialog window that resizes
-    this dialog (for example, makes it bigger to show more information).
-
-  - Resizing top level windows using the top border broke mouse coordinates so
-    that Qt tought you pressed the mouse button in a different place of the
-    window than where you actually did it.
-
-  - Events posted with QCoreApplication::postEvent() were only processed upon
-    receiving a next message from the system. This caused funny delays such as
-    controls in a Qt window still indicating the input focus (the dotted
-    rectangle) after the window was deactivated and losing this indication only
-    when the mouse pointer was moved over the window.
-
-  - Don't replay mouse button press on a push button that is showing a popup
-    menu but instead hide the popup menu and unpress the button to get more
-    native look and feel.
-
-  - Deactivating the window with a push button showing a popup menu would hide
-    the popup but leave the button pressed.
-
-  - Fixed incorrect Qt dirty widget region calculation when processing WM_PAINT
-    messages. This fixes a lot of redraw problems (menu items in the main menu
-    bar, text in combo-boxes, various redraw problems in smplayer when switching
-    interfaces and going to/from fullscreen, and similar).
-
-Beta 3 (17-10-2009)
-
-  Improvements:
-
-  - Added proper font support. All outline (scalable) fonts visible in the Font
-    Palette should be now recognized by Qt. The fonts are hinted and antialiased
-    using the Freetype2 library when drawing text.
-
-  - System fonts and colors are now used by default for Qt widgets.
-
-  - configure.cmd now generates the main Makefile to simplify building of Qt.
-
-  - corelib: QProcess: Implemented child termination detection.
-
-  - corelib: QProcess: Implemented redirection to another QProcess.
-
-  - corelib: QProcess now uses native pipes for stream redirection. This fixes
-    various issues like 'Socket operation on non-socket' errors during
-    parent-child communication.
-
-  - corelib: QProcess: Make sure that the directory containing the executable
-    file is always searched (first) for DLLs needed by this executable. This
-    makes it unnecessary to change the current directory to the executable's
-    directory or add it to LIBPATH before starting the Qt application.
-
-  - corelib: QProcess can now start applications of different type (e.g. PM
-    applications from text-mode applications) directly.
-    QProcess::startDetached() also works.
-
-  - qmake: In debug_and_release mode, 'release-(all|clean|distclean|install|
-    uninstall)' and 'debug-(all|clean|distclean|install|uninstall)' make
-    targets are now available.
-
-  Fixes:
-
-  - Doing 'make clean' could result into a hang due to CMD.EXE command line
-    length limitation.
-
-  - corelib: Fixed: QProcess: Lost data during stream redirection.
-
-  - corelib: QSettings could sometimes distort data when saving it to the
-    registry (by replacing some characters with codes 0x80 and above with '?').
-
-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.
 
 
