source: trunk/README.OS2@ 296

Last change on this file since 296 was 291, checked in by Dmitry A. Kuminov, 16 years ago

README.OS2: More words about how to properly set the LANG variable.

File size: 12.1 KB
Line 
1This is Beta 3 of Qt version 4.5.1 for OS/2 and eCS.
2
3This document contains a brief information on the OS/2 version of the Qt library
4plus a brief list of OS/2-specific changes from release to release (section
5CHANGES below). Please visit the project page at
6
7 http://svn.netlabs.org/qt4/wiki
8
9to get more information and the latest news and also to report bugs.
10
11
12
13REQUIREMENTS
14
15In order to compile the Qt library, you will need the following tools:
16
17 - One of the OS/2 Warp 4, OS/2 Warp 4.5 or eComStation operating systems.
18
19 - InnoTek GCC compiler version 3.3.5 CSD3 or above (not tested).
20 You can download a copy of the compiler using the following link:
21
22 ftp://ftp.netlabs.org/pub/gcc/GCC-3.3.5-csd3.zip
23
24 - Patched OpenWatcom linker which you can download from here:
25
26 ftp://ftp.netlabs.org/pub/gcc/wl-hll-r1.zip
27
28 Note that if you use IBM ILINK (no matter what version), you will
29 not be able to build the debug version of the library due to
30 bugs/limitations of ILINK.
31
32 - GNU Make 3.81beta1 or above (not tested) available at:
33
34 http://unix.os2site.com/pub/binary/make/make-3_81beta1-bin-static.zip
35
36After unpacking the GCC archive, you will have to set up the compiler
37environment by invoking gccenv.cmd from the bin subdirectory with the
38correct arguments (type gccenv.cmd -? for help). For the OpenWatcom
39linker, specify WLINK as the second argument.
40
41You will also need to perform the following steps:
42
43 - Make sure the selected linker and the make utility are in PATH.
44
45 - Make sure CMD.EXE is your command line processor (the generated makefiles
46 will rely on its 'copy', 'if' and other commands). If you have a Unix shell
47 (SH.EXE) in your environment, you may need to force GNU make to use CMD.EXE
48 by doing 'set MAKESHELL=C:\OS2\CMD.EXE' where C: is your boot drive.
49
50 - set LIBRARY_PATH=C:\OS2\DLL;C:\MPTN\DLL where C: is your boot drive.
51
52 - Make sure that there are no traces of any other Watcom or OpenWatcom
53 installation in the environment where you build Qt as it will most likely
54 interfere with the patched OpenWatcom linker we use. This basically means
55 removing all *WATCOM* environment variables and removing references to those
56 Watcom installations from PATH.
57
58Note that the QTDIR environment variable used by previous Qt versions is not
59used by Qt4 anymore (except two rare cases that do not affect the OS/2 platform
60anyway and are probably leftovers after the migration of the qmake feature
61specifications to Qt4). Therefore, there is no need to set this variable
62explicitly. See also a note below about hard-coded paths to the source tree.
63
64There is also no need to set the QMAKESPEC variable explicitly. If it is absent,
65qmake will use the specification stored in the <Qt4_Home>/mkspecs/default
66directory, which on OS/2 always refers to the "os2-g++" specification, the only
67one supported at the present time.
68
69When the environment is set up, go to the directory where you unpacked the
70Qt4 source tree and type:
71
72 configure.cmd
73
74This will set up the library (by creating necessary configuration and include
75files and a bunch of Makefiles for variuos components) and build the qmake
76utility.
77
78The next step is to go to the src subdirectory and type:
79
80 make
81
82This will compile and link the library. Note that by default both the release
83and the debug version of the library are built (please be patient, it may take
84quite some time depending on your hardware). The release and debug libraries can
85co-exist in the same source tree and may be used in parallel: all the debug DLLs
86get a 'd' letter in their name preceeding the Qt major version number and use
87separate directories for object files.
88
89To save time, you may also build the release and the debug versions of the
90library separately by typing 'make release' or 'make debug' accordingly
91instead of just 'make'.
92
93Once the library is successfully built, you may try to compile the demos
94and examples by visiting the individual example subdirectories in the source
95tree and typing 'qmake' followed by one of 'make', 'make release' or
96'make debug' in that subdirectory.
97
98NOTE:
99
100 Please keep in mind that due to dropping the QTDIR variable recognition,
101 qmake.exe now unconditionally uses hard-coded paths to locate various Qt4
102 components (such as the include or source directory) during the makefile
103 generation process and therefore if you move the Qt source tree to another
104 location you will need to run configure.cmd again in order to update these
105 hard-coded paths and rebuild qmake and other dependent parts of the library.
106
107
108
109CURRENT LIMITATIONS
110
111 1. configure.cmd is not yet capable to generate individual Makefiles for demos
112 and examples, it only generates the main Makefile that builds the library
113 and the necessary tools. Demos and examples can be compiled by hand
114 (as described above).
115
116 2. OS/2 bitmap fonts are not yet supported. Use TTF or Type1 (PFB) fonts with
117 Qt.
118
119 3. Make sure you have the LANG environment variable properly set. The format
120 is 'set LANG=ll_CC[.encoding]' where <ll> is the language code, <CC> is the
121 country code and <encoding> is the optional encoding to use. If LANG is
122 missing or invalid, string conversion operations may work incorrectly
123 resulting in distorted text input or output. Note that for most languages
124 you will have to specify the encoding number explicitly because Qt and OS/2
125 usually disagree about the default encoding for the given language.
126
127 To specify the correct encoding for Qt you need to know your system code
128 page number. You can find this number in the COUNTRY statement of your
129 CONFIG.SYS. Note however that the code page number from CONFIG.SYS and the
130 encoding name you specify in LANG are different things. Qt doesn't
131 understand IBM code page numbers directly. In most cases, you can get the
132 encoding name by prepending 'cp' to the code page number (for example,
133 'cp850' for code page 850) but sometimes this will not work because not all
134 encodings have 'cp'-like aliases. In this case, you should google around to
135 find the correct encoding name for your code page number. Here is a couple
136 of examples of the proper LANG specification:
137
138 set LANG=de_DE.cp850 - for the German OS/2 locale
139 set LANG=ru_RU.cp866 - for the Russian OS/2 locale
140
141 Later, the correct encoding for the system code page will be detected
142 automatically and specifying it in LANG will not be necessary.
143
144 4. Some functionality of the already available Qt classes may be limited or
145 unimplemented. If you find such a case and there is no ticket for it
146 in the bug tracker, feel free to add one.
147
148 5. No qt3support module. This functionality is rarely necessary in mature
149 real life applications and has low priority.
150
151 6. No native PM style, but Qt will use fonts and colors from the current
152 OS/2 theme (hint: if your default OS/2 font is "WarpSans", install the
153 "Workplace Sans" TTF font from Alex Taylor to get more native look & feel).
154 Note that v0.5 of the font has known sizing and spacing problems and also
155 supports only the Latin1 code page. To avoid these problems, use v0.4 which
156 you can download here:
157
158 http://users.socis.ca/~ataylo00/creative/fonts/wpsu_ttf_04.zip
159
160 7. QProcess: when starting PM applications from text-mode applications and
161 when detaching applications with startDetached(), the returned PID is a
162 PID of the intermediate cmd.exe process, not the target application.
163
164 8. No QDesigner, no QAssistant.
165
166 9. No Drag&Drop, no printer support, no sound. See the project roadmap for
167 more information on the progress and current limitations:
168
169 http://svn.netlabs.org/qt4/roadmap
170
171
172
173CHANGES
174
175Beta 3 (17-10-2009)
176
177 Improvements:
178
179 - Added proper font support. All outline (scalable) fonts visible in the Font
180 Palette should be now recognized by Qt. The fonts are hinted and antialiased
181 using the Freetype2 library when drawing text.
182
183 - System fonts and colors are now used by default for Qt widgets.
184
185 - configure.cmd now generates the main Makefile to simplify building of Qt.
186
187 - corelib: QProcess: Implemented child termination detection.
188
189 - corelib: QProcess: Implemented redirection to another QProcess.
190
191 - corelib: QProcess now uses native pipes for stream redirection. This fixes
192 various issues like 'Socket operation on non-socket' errors during
193 parent-child communication.
194
195 - corelib: QProcess: Make sure that the directory containing the executable
196 file is always searched (first) for DLLs needed by this executable. This
197 makes it unnecessary to change the current directory to the executable's
198 directory or add it to LIBPATH before starting the Qt application.
199
200 - corelib: QProcess can now start applications of different type (e.g. PM
201 applications from text-mode applications) directly.
202 QProcess::startDetached() also works.
203
204 - qmake: In debug_and_release mode, 'release-(all|clean|distclean|install|
205 uninstall)' and 'debug-(all|clean|distclean|install|uninstall)' make
206 targets are now available.
207
208 Fixes:
209
210 - Doing 'make clean' could result into a hang due to CMD.EXE command line
211 length limitation.
212
213 - corelib: Fixed: QProcess: Lost data during stream redirection.
214
215 - corelib: QSettings could sometimes distort data when saving it to the
216 registry (by replacing some characters with codes 0x80 and above with '?').
217
218Beta 2 (17-09-2009)
219
220 Improvements:
221
222 - Ported the network module (QtNetwork4.dll) and added to the default build.
223
224 - Added modules sql, svg, xmlpatterns, scripttools, plugins to the default
225 build.
226
227 - gui: Added recognition of dead keys which makes it possible to type
228 umlauts and other accented characters that require composition.
229
230 - gui: Implemented standard cursor shapes in Qt applications.
231
232 Fixes:
233
234 - qmake: Fixed the trailing slash problem which caused qmake to generate
235 incorrect makefiles and fail to build the Qt library on some platforms.
236
237 - configure.cmd: Return to the root source tree directory after building
238 qmake.
239
240 - qmake: Automatically use different link flags when linking qmake with WLINK.
241
242 - qmake: Recognize TARGET_SHORT that allows to specify a short DLL name
243 (vital for OS/2 which reqires DLL names to be in 8x3 format).
244
245 - build: Set short DLL names for Qt modules on OS/2 using TARGET_SHORT.
246
247 - corelib: Various fixes to file system classes that deal with the file name
248 case (which should be ignored on OS/2) and forward and back slashes.
249
250 - corelib: Fixed: QMutex could let more than one thread access the protected
251 resource.
252
253 - corelib: Standard stream redirection in QProcess should now work for
254 kLIBC-based child processes. Redirection for all other applications
255 (such as CMD.EXE) will be added later (seems to be a kLIBC bug/feature).
256
257 - gui: Fixed erroneous QFileDialog behavior (duplicate entires in the list,
258 incomplete contents of the root directory of the current drive).
259
260 - gui: Fixed: Ctrl+A..Z should generate characters with codes 0x01-0x1F.
261
262 - gui: Fixed: Close popups when resizing/moving the top level window.
263
264 - gui: Enabled actual enforcing min/max Qt widget constraints for top-level windows.
265
266 - gui: Fixed child widget duplication when resizing top level widgets after
267 showing a popup; moving native child widgets should now work correctly.
268 This also fixed a number of redraw problems (for example, drawing the main
269 menu and tool bars in smplayer, moving tool bars around in other
270 applications such as textedit from the demo folder).
271
272Beta 1 (29-08-2009)
273
274 - First public release.
275
276
277
278CREDITS
279
280Dmitry A. Kuminov (development)
281Silvan Scherrer (management)
282
283netlabs.org (hosting & support)
284
285Nokia Corporation (original Qt library)
286
287We also want to THANK all individuals and organizations who made the donations
288to this project and helped to make it happen. Please visit
289
290 http://qt.netlabs.org/en/site/index.xml
291
292to get the full list of sponsors and to find information on how you can support
293the project.
294
295
296Qt is a trademark of Nokia Corporation and/or its subsidiary(-ies).
297OS/2 and OS/2 Warp are trademarks of the IBM Corporation and/or its subsidiary(-ies).
298eComStation is a trademark of Serenity Systems International and/or its subsidiary(-ies).
299Etc.
Note: See TracBrowser for help on using the repository browser.