source: trunk/doc/Readme.txt@ 21787

Last change on this file since 21787 was 21606, checked in by dmik, 15 years ago

release: Bumped build number and updated changelog for 0.6.21606.

File size: 26.2 KB
Line 
1
2 O D I N Version 0.6
3 ~~~~~~~~~~~~~~~~~~~~
4
5WANTED: We are still looking for talented developers that want to
6 contribute! Please take a look at the last section!
7
8NOTE: LICENSE.TXT describes the Project Odin Software License.
9
10
11Project Odin Information
12========================
13
14
151.0 Introduction
16----------------
17
18This readme is intended for end users that have downloaded the
19latest public alpha release and want to give it a try. For more
20information, be sure to regularly check http://svn.netlabs.org/odin32/.
21
22
231.1 Purpose
24-----------
25
26Odin is a free Open Source project with the goal to eventually
27provide a fully working Win32 (Win 95/98/NT/2000) runtime environment,
28making it possible to run your favorite Windows programs under OS/2,
29as if they were native OS/2 programs. The second goal of Odin is to
30provide the full Win32 application programming interface (API) so
31that it is possible to build OS/2 programs using Windows source
32code. This is also refered to as Odin32 whereas Odin is the name
33of the Win32 binary emulator.
34
35
361.2 Current Status
37------------------
38
39Odin is still in the early alpha state so that it is very far from
40being widely usable. Most programs will not work or show many
41problems. Even though it is not usable for most programs, we have
42decided to do a public release in order to show how much progress
43the project has been made. A second goal is to attract more developers
44in order to speedup development. Our job includes rewriting most
45parts of Windows 95/NT without having the original source code so
46the more developers we have the more progess will be seen. The
47last public release (Alpha 0.004) has been in 1997 and the project
48has changed much since then. Everything is free and Open Source now
49and the base architecture has been improved quite a lot. We are now
50in a position where we can expect the first bigger applications to
51run well and to make much more visible progress.
52
53
541.3 Changes and additions
55-------------------------
56
57Please refer to the ChangeLog file where you will find a brief description
58of changes from release to release.
59
60
612.0 Installing Odin (UPDATED)
62-----------------------------
63
64Daily builds of Odin are available at ftp://ftp.netlabs.org/pub/odin/.
65For people that do not have a suitable development setup for ODIN,
66we provide the latest binary code that way.
67
68Odin daily builds are now also distributed as WarpIn archives.
69WarpIn is a generic OS/2 installation application that can be
70downloaded from warpin.netlabs.org.
71
72Requirements for installing Odin:
73- You must install Odin on a partition that supports long filenames (e.g.
74 HPFS/JFS). Odin will not work on FAT!
75- OS/2 Warp 4, eComStation or Warp Server for e-Business (WSeB)
76 When using Warp 4, we recommend you apply fixpack 13 or higher.
77 * Warp 3 is not officially supported, but is reported to work by using
78 Warp 4 open32 dlls and patching them.
79
80In order to use system tray (notification/indicator area) support, you will
81need to install XWP/eWPS and the Extended System Tray widget for XCenter/eCenter
82available at ftp://ftp.netlabs.org/pub/qt4/xsystray/ (version 0.1.1 and above).
83
84Manual installation without WarpIn is not recommended. If you don't use WarpIn,
85then you *must* execute odininst.exe in the Odin system32 directory. (the first
86time Odin is installed or when the ChangeLog mentions fixes/changes in the
87installer)
88
89NOTE: You must install Odin on a partition that supports long filenames (e.g.
90 HPFS/JFS). Odin will not work on FAT!
91
92To install Odin, run warpin.exe with the name of the daily build archive
93as parameter.
94Follow the instructions to complete the installation.
95The Odin installation consists of:
96 - creating an Odin directory and copying the included files to
97 x:\odin and x:\odin\system32
98 - creating empty directories in x:\odin (to create a similar directory
99 structure as found in Windows)
100 - creating a basic registry for executing win32 applications in OS/2
101 - adds x:\odin\system32 to the path and libpath settings in your config.sys
102
103NOTE: You MUST install Odin at least once using WarpIn (unless you know
104 what you're doing). Afterwards you can use the daily build zipfiles
105 to upgrade to a newer version.
106
107To run DirectDraw games or Quake 2 in Voodoo mode, you must install Holger
108Veit's XFree86/2 support driver (XF86SUP.SYS).
109Visit http://ais.gmd.de/~veit/os2/xf86sup.html to download it.
110
111NOTE: The Glide and 3Dfx Opengl dll are no longer part of the basic Odin
112 installation package. It's available as opengl3dfx.zip on ftp.os2.org.
113
114
1152.0.1 Log files
116---------------
117The alpha 5 binaries and daily build zipfiles can generate logfiles to show
118what a win32 application is doing. This can be very useful to determine
119why certain applications don't run correctly.
120
121The major disadvantage of loggging is the overhead. Therefor it has been
122disabled by default in the alpha 5 release and daily builds.
123To enable logging set the environment variable WIN32LOG_ENABLED:
124 SET WIN32LOG_ENABLED=1
125
126To disable logging again, you must clear this variable:
127 SET WIN32LOG_ENABLED=
128
129
1302.1 Using Odin to run your Windows applications
131-----------------------------------------------
132
133Odin still has several ways to execute Win32 programs.
134
135
1362.2 The Ring3 Win32 Loader (PE.EXE)
137----------------------------------
138
139This is the new and also recommended method for loading programs.
140Unlike with the previous alphas, it is not required to convert or
141anyhow change the original files. Installing a device driver is
142also not necessary. Be sure to put the Odin binary directory into
143both the PATH and LIBPATH (alternatively you can use a batch file
144with SET PATH=C:\Odin;%PATH% and SET BEGINLIBPATH=C:\Odin;)
145and then call pe.exe winprog.exe param1 param2 ... If you wanted
146to start the Windows calculator, you would type
147
148pe calc
149
150The PE (Portable Executable, the Win32 executable format) loader
151will now try to load the application into memory and execute it.
152This will either work or fail with a loader message. If you get
153such a loader message, it is very likely that a required DLL is
154missing. To correct that problem, take a look at pe_0.log (or
155pe_1.log for the second program running at this time and so on).
156At the bottom of the file you will see the DLLs and the functions
157that the loader imports. It will tell you if it couldn't find a
158DLL and you can correct the problem and try it again.
159
160
1612.2.1 PE loader issues
162----------------------
163
164As the PE loader will create the process and load the program,
165a process utility such as pstat will always show PE.EXE as the
166executable file.
167It is also possible that a certain Win32 application becomes
168a zombie (that is when it does certain things the OS/2 kernel
169cannot recover such as die when waiting on a semaphore). Then
170it will not be possible to kill the application - only a system
171restart will help.
172Certain programs do use fixed memory addresses where they need
173to be loaded (i.e. they won't use fixups). You can notice this
174at the top of the loader log file (pe_0.log). If the fixed address
175is above the 512MB barrier present in Warp 4 and Warp 3, the
176program can not be run under these system. On Aurora (Warp Server
177for e-business) this limitation has been removed. Programs known
178to fall under this category are Microsoft Office (also the
179Office viewers) and other mainly Microsoft programs.
180
181
1822.3 Win32k.sys - native OS/2 PE-loader
183--------------------------------------
184
185The win32k.sys driver makes PE (Win32) executables equal to native OS/2
186executables by implementing a Ring 0 on-the-fly loader / converter.
187
188You may wonder how you may run a Win32 program using a device driver. You
189don't have to worry about that, simply treat the Win32 program just as an
190another OS/2 program. OS/2 can't tell the difference!
191No conversion of dlls or running programs thru Pe.EXE.
192
193For example, if you fancy playing windows solitaire.
194 1) Make sure the necessary DLLs (MSVCRT.DLL and CARDS.DLL) are in you
195 PATH, current dir, SOL.EXE dir, Odin32 System32 dir, Odin32 System dir,
196 Odin32 dir, or LIBPATHs; and that you have SOL.EXE somewhere.
197
198 2) Then start SOL.EXE by simply typing SOL.EXE (with path if necessary).
199 It's also possible to start SOL.EXE from the desktop if you like.
200 Simply find the SOL.EXE icon (or create it) and double click on it!
201
202
2032.3.1 WARNING
204-------------
205
206The Win32k.sys is quite alpha software and any bugs which haven't been found
207yet may crash and/or corrupt you entire system! Make sure you have backed up
208important stuff first!
209
210We are not responsible for ANYTHING AT ALL! See Odin32 disclaimer...
211
212Before you install Win32k.sys make sure that you have a backdoor to your system
213which works. For example try to boot your system using the Alt+F1 during bootup
214and choose Commandline boot (F2). Make sure you have an textmode editor which
215works; for example TEDIT.EXE.
216
217
2182.3.2 Requirements
219------------------
220
221Win32k should at least work on OS/2 Warp 3 and above, but I don't get too
222surprised if it worked on 2.11 too. DBCS are not supported yet AFAIK.
223
224It no longer requires a kernel file for retail kernels (if you don't know what
225kernel you have, you have a retail kernel). Win32k does now contain a
226"database" for the most recent retail kernels. Currently this is:
227 Warp 4 fp#1 -> fp#14
228 Aurora GA, FP1, preFP2
229 Warp 3 fp#32-> fp#42
230
231If the running kernel is not found in the "database" or is a debug kernel
232wink32.sys will look for symbolfiles as it allways did.
233If you use the -s:<symfile> argument the given symbol file will be
234investigated before the database is searched.
235
236NOTE! It hasn't been fully verified that all the different national fixpaks
237have the same symbols as the us-english ones. Feedback on this issue is
238appreciated.
239
240NOTE! A piece of advice for those playing with debug-kernels: Make sure that
241c:\OS2KRNL.SYM is matching the running kernel.
242
2432.3.2.1 Warp 3
244--------------
245
246Win32k is not tested with Warp 3. It is _supposed_ to work with Warp 3
247provided you are running fixpack 32 or later.
248(Fixpack 32 + y2kclock.exe is required for Y2K readyness anyway so...)
249
250
2512.3.3 Installation
252------------------
253
254To use Win32k.sys you have to add the following line into your config.sys:
255 device=<d:\path\system32>win32k.sys
256
257Where <d:\path\system32> is the path to the win32k.sys, i.e. usually the odin32
258system32 directory.
259
260After doing this, you'll have to reboot your machine to load the driver. During
261the boot process you will on a successful installation see some lines of
262technical info and finally a line saying:
263Win32k - Odin32 support driver.
264 Build: 14046 - v20.45
265 Found symbolfile: Win32k Symbol Database
266Win32k.sys succesfully initiated!
267
268If you don't see the last line something is wrong, and some error info will be
269shown. In the case of error the 'rc=<value>' is important to remember.
270
271
2722.3.4 Win32k parameters
273-----------------------
274
275The Capitalized letters are the one which is tested for when identifying the
276argument.
277
278There are some useful parameters for Win32k:
279-Quited Quiet driver initiation.
280 Default: disabled (ie. -V)
281
282-Verbose Verbose driver initiation.
283 Default: enabled
284
285-S:<filename> Full path to the current OS/2 kernel symbol file.
286 When this is specified the given
287 Default: symbol "database" and default locations are searched.
288
289
290Loader parameters:
291-SCript:<Y|N> Enable / disable UNIX script support.
292 Default: Enabled.
293
294-REXX:<Y|N> Enable / disable pure REXX script support.
295 Default: Enabled.
296
297-Java:<Y|N> Enable / disable JAVA loading.
298
299-Pe:<MIXED|PE2LX|PE|NOT>
300 Enabled / disable and set mode of the PE loading.
301 MIXED: Mix of Pe2Lx and Pe.exe. It uses Pe2Lx when
302 possible and backs out to pe.exe if the executables
303 aren't supported by the converter.
304 PE2LX: Pe2Lx loader only.
305 PE: Pe.exe only. The program is started using Pe.exe,
306 and the process name will be pe.exe.
307 NOT: Disable PE loading.
308
309
310Logging parameters:
311-L<:E|:D> Enables/Disables logging.
312 Default: disabled.
313
314-Com:<1|2|3|4>
315or
316-C<1|2|3|4> Which com-port to log to.
317 Default: -C2
318
319-Warning:<1|2|3|4>
320or
321-W<1|2|3|4> Warning/info level for PE loader. (This is warnings and info
322 which is published thru the com-port as logging information.)
323 Default: -W0
324
325
326Heap parameters:
327-HEAPMax: Maximum swappable heap size in bytes.
328 Default: 512KB
329
330-Heapinit: Initial heapsize in bytes.
331 Default: 16MB
332
333-RESHEAPMax: Maximum resident heap size in bytes.
334 Default: 256KB
335
336-Resheapinit: Initial resident in bytes.
337 Default: 16MB
338
339
340OS/2 Loader parameter:
341-Dllfixes<:E|:D>
342 Enables or Disables the long DLL name and non .DLL
343 extention fixes. OS/2 DLLs have been limited to 8 chars
344 names since version 2.<something>. This is a very bad
345 limitation. Also OS/2 forces all DLL loaded to loadtime
346 to have the extention '.DLL'.
347 Both these retritions are removed if this option is
348 enabled.
349 For DLL with non .DLL extention the internal name must
350 have to the extention included. (If you the experiences
351 problems with IMPLIB.EXE, enclose the internal name
352 in double-quotes.)
353 You should not make a DLL with a name starting with
354 DOSCALLS, DOSCALLS1, IBMVGA32, IBMDEV32 or IBMXGA32.
355 Current state for this feature is EXPERIMENTAL.
356 Default: Enabled
357
358
359Obsolete:
360-K:<filename> Ignored. Win32k scans the kernel image in memory!
361
362
3632.3.5 PE Loading
364----------------
365
366Win32k.sys are able to do PE loading in two different ways.
367
3682.3.5.1 PE2LX
369-------------
370The first one is called PE2LX and hence uses the original Win32k.sys method
371which is similar to Pe2Lx. This only requires that KERNEL32.DLL (ie. Odin32
372System32 directory) is present somewhere in the PATH or LIBPATHs. The DLL
373search order of PE2LX is now conforming with the Win32 order:
374 1. The directory of the executable (.EXE).
375 2. The current directory.
376 3. The Odin32 System32 directory. (Kernel32.dll directory)
377 4. The Odin32 System directory. (sibling of system32)
378 5. The Odin32 directory. (parent of system32)
379 6. The PATH environment variable. (TODO: quotes are not currently supported)
380 7. The BEGINLIBPATH.
381 8. The LIBPATH.
382 9. The ENDLIBPATH.
383(Note that the OS/2 DLLs in the _Odin32_ process are also found using this
384search order. This shouldn't matter much as nearly all of the OS/2 DLL are
385allready loaded. But if this proves a problem it could be changed.)
386
3872.3.5.2 PE
388----------
389The second one is called PE and invokes the Pe.EXE to execute the PE (Win32)
390programs. This of course requies that PE.EXE is found in the PATH.
391
3922.3.5.3 Modes
393--------------
394Win32k.sys have three (or four) different ways of combining these two methods,
395called modes:
396 PE2LX only
397 PE only
398 PE2LX with fallback on PE.
399 (fourth: NOT load any PE executables at all)
400
401The last one is the default one and is probably the best one currently.
402
403
4042.3.6 UNIX Shell Script Loader
405------------------------------
406
407The UNIX Shell Script Loader makes OS/2 able to run UNIX shell scripts as
408native executables, just as UNIX does. A unix shell script is a text file
409which has a starting line which specifies the interpreter for the script.
410
411For example a perl script:
412#!/bin/perl5 -Sx
413
414Or the most common one:
415#! /bin/sh
416
417Since Most OS/2 systems don't have a /bin directory or a /usr/bin directory
418the executable specified are looked for in these ways:
419 1. The exact filename specified.
420 2. The filename specified with .EXE extention.
421 3. Search the PATH for the filename (with out path of course).
422 4. Search the PATH for the filename with .EXE extention (and with out path of course).
423
424So, you could now execute UNIX shell script in OS/2 without even modify the
425path of the interpreter!
426
427The UNIX Shell Script Loader is enabled by default.
428
429
4302.3.6 Pure REXX Loader
431----------------------
432
433The Pure REXX Loader is a win32k.sys feature which enables REXX script with
434the extentions .RX and .REX to run as native OS/2 executables. These REXX
435scripts are executed using kRX.EXE which is found in the Odin32 System32
436directory.
437
438When we say "Pure REXX" scripts, that means no use of command line should
439occure in the script.
440
441The Pure REXX Loader is enabled by default.
442
443
4442.3.7 Java Loader/Invoker
445-------------------------
446
447Just for fun, I've added some code which detects JAVA class binaries and
448executes the class using JAVA.EXE. I first thougth this should be easy, but
449it turned out to have several problems.
450So please note the following:
451 - The classname is case sensitive, you have to write the exact class
452 name (with .class extention or what ever extention the file have)
453 when trying to execute a class. This could cause some throuble making
454 WPS program objects for the classes....
455 - To support executing of .class-files which are not in the current
456 directory win32k.sys send the directory of the .class-file in to
457 java.exe as a '-classpath' option. This option I soon found out had the
458 sideeffect of making JAVA.exe ignore the other CLASSPATH and not use
459 it's default class path. So now the contents of the CLASSPATH env. var.
460 or a generated default classpath is also sent in with the '-classpath'
461 option.
462 - The CLASSPATH environment variable should not be longer than 639 chars.
463
464When you have successfully installed Win32k.sys try type this at the
465commandline:
466c:\java11\demo\hello\hello.class
467
468This is then printed at my screen:
469Hello, Warped world!
470
471The JAVA Loader/Invoker is enabled by default.
472
473
4742.3.8 Rings - Ring 0 / Ring 3
475-----------------------------
476
477FYI. Ring 0 is the most priveleged level of execution in OS/2. The OS/2 kernel
478and device drivers execute at this level, while user applications execute in
479Ring 3, the least priveleged executing level.
480
481
4822.3.9 Win32k Control Center
483---------------------------
484
485In your Odin32 System32 directory there is a program called Win32kCC.exe,
486this is the Win32k Control Center (Win32kCC). Win32kCC is as the name says
487a program controlling Win32k.sys.
488
489Win32kCC allows you to enable, disable and change behaviour of different
490parts in Win32k.sys.
491
492For example: You could disable PE loading, or change it from MIXED mode (see
4932.3.4, -PE) to PE2LX mode. Or change it from PE2LX mode to PE mode to see
494if PE.EXE does a better job loading an executable.
495
496Note that the changes would not effect allready loaded executables.
497
498
499Win32kCC also displays status info on the running Win32k.sys and OS/2 kernel:
500 -Win32k.sys version number
501 -Win32k build time/date
502 -Path of the symbol file which was used (or Win32k Symbol Database).
503 -OS/2 kernel build number fixpack (guess)
504 -OS/2 kernel type as win32k has detected it
505 -Number of Pe2Lx currently loaded modules
506 -Win32k resident and swappable heap stats.
507
508PS. Beside the "PE Loader" area there is an "Elf Loader" area this is for a
509future Elf2Lx loader.
510
511
512
5132.4 The Ring3 conversion utility (Xx2Lx.exe)
514--------------------------------------------
515
516Xx2Lx.exe was the first method of running Win32 programs under
517OS/2. It is still provided and also functional but it has been
518deprecated. Using it is only sensible for debugging certain
519problems as it requires all DLLs and EXEs to be converted into
520another file format thus changing the original Win32 files.
521(It's only future use will be to convert Win32 executable with
522debuginfo to LX with HLL (IPMD/ICSDEBUG) debuginfo for
523sourcelevel debugging of Win32 executables under Odin32. This
524is not yet implemented but is being worked on.)
525
526Note. The name changed from Pe2Lx to Xx2Lx. It is in prepare for Elf2Lx.
527
528
5293.0 Applications known to be working
530------------------------------------
531
532- Windows 95/NT Help Viewer (winhlp32.exe)
533- Windows 95/NT Registry Editor
534- Windows NT Solitaire (not the one from Windows 95)
535- Windows NT Freecell (not the one from Windows 95)
536- Windows 95/NT Calculator
537- Windows NT Pinball
538- Windows NT Minesweeper
539- Quake II
540- Red Alert
541- Professional Minesweeper
542- Windiff (part of Win32 SDK)
543- RealPlayer 7/8
544- Lotus Notes 5.0 (partly anyway)
545- Acrobat Distiller 3.0
546
547Note that many other applications load and/or partly work.
548
549
5504.0 Reporting Problems and Successes
551------------------------------------
552
553Bug reports can be filed in the ticket system at http://svn.netlabs.org/odin32/.
554
555
5565.0 Project Odin Source Code Notes
557----------------------------------
558
5595.1.0 Introduction
560------------------
561
562This chapter is intended for people more familiar with ODIN. It describes
563the various aspects of the project such as accessing the latest sources via
564cvs, building the binaries, running win32 applications, how to identify and
565report problems and bugs, as well as how to participate in this very
566promising project.
567
568
5695.1.1 Prerequisites:
570--------------------
571
572Required compilers/tools:
573 - IBM VisualAge 3.0 (CTx8 fixpack applied)
574 (version 3.6 might also work; version 4 is not recommended)
575 - OS/2 Warp 4 Toolkit (project apparently doesn't compile with
576 VAC's OS/2 headers)
577 Might also work with EMX headers. (haven't tried this!)
578 - ALP 4.0 (IBM Assembly Language Processor)
579 Download the tools zipfile from http://service.boulder.ibm.com/ddk/
580 (you need to register, but it's free)
581 - Unix-like rm.exe (nmake clean)
582
583Changes from last source code release:
584 - Uses Wine headers and a stripped down version of os2win.h (Open32
585 header)
586 - All Open32 apis have the 'O32_' prefix.
587 - All Open32 declarations are appended with '_O32' (mostly due to
588 calling convention differences)
589 - nmake DEBUG=1 builds the debug version
590 nmake builds the release version
591 - Several dlls (i.e. USER32, KERNEL32, ADVAPI32) contain extra .def
592 files that are used to create libraries that contain the api names
593 as required by the linker when you use them. (_apiname@nrparameterbytes)
594
595Wine header notes:
596 - Several header files have been changed to make them usable for VAC
597 - Several header files contain bugfixes (mostly parameter type changes)
598 - Several header files include additional declarations
599 - At this time we don't intend to have our changes included in the
600 Wine codebase as header files are not likely to change often.
601
602Coding conventions:
603 - Do NOT directly call the Open32 apis unless you're writing
604 a wrapper for it.
605 - Do NOT include os2.h directly. Use os2wrap.h instead.
606 os2wrap.h contains all the OS/2 apis with a wrapper around it to save
607 and restore the selector in FS. (some OS/2 apis set it back to the
608 default value (150b))
609 - Use the correct Win32 api when there are two version (ascii & unicode)
610 Calling the standard one (SendMessage) causes a error during
611 compilation.
612 Use SendMessageA instead.
613 - Source code style will be decided on in the near future.
614
615
6165.2.0 Accessing ODIN source code via CVS
617----------------------------------------
618
619Please check out http://svn.netlabs.org/odin32/.
620
621
6225.3.0 Building the binaries
623---------------------------
624
625The first time you want to build Odin, you must first run configure.cmd.
626This REXX script creates the file makefile.inc, which contains the absolute
627paths of important build directories.
628
629If your system setup meets above stated requirements, everything you
630need to do next for a binary build is:
631
632 nmake DEBUG=1
633
634or alternatively
635
636 nmake release (not working right now!)
637
638As the current state of the project is still known to be alpha level, one should
639expect some functions not to work properly. Therefore, we recommend the use of
640the debug-version which creates long logfiles for problem determination purpose
641and to allow active debugging with debuggers such as IPMD, ICAT, KDB, etc.
642
643Please note if you do not want to suffer from the performance loss of writing
644logfiles, you can disable logging even with the debug binaries of ODIN by
645setting:
646
647 SET NOWIN32LOG=YES
648
649To enable logging again, clear this environment variable by typing:
650
651 SET NOWIN32LOG=
652
653Logging is enabled by default in the debug build, but disabled by default
654in the nodebuginfo build and not present in the release build.
655
6565.3.1 Build problems
657--------------------
658
659ODIN is moving at a fast pace. Sometimes side effects of source dependencies may
660require you to do a full rebuild of the binaries instead of an incremental build.
661
662However, rarely it also happens the sources contained in the CVS repository do
663not build completely due to erroneous source code. Usually, this is fixed within
664two days at maximum.
665In such event, one can normally stick with the previous version of the particular
666module to further test win32 applications on ODIN.
667
668Please report such build problems through the appropriate channel.
669
670
6715.3.2 Downloading daily built binaries
672--------------------------------------
673
674http://www.os2.org/ has setup an ftp server that hosts the automatically
675built binaries on daily basis. For people that do not have a suitable
676development setup for ODIN, we provide the latest binary code that way.
677
678
6795.4.0 Project participation
680---------------------------
681
682As ODIN became an open source project, everybody is kindly invited to
683contribute his/her share to the progress of the project. May it be
684active coding, fixing bugs or just providing detailed information about
685examined problems.
686
687We suggest you subscribe to win32os2-wai and the corresponding mailing lists
688on http://www.egroups.com.
689In case you are interested in participating, every member of the project will
690be happy to give you direction to the right places and to give a personal
691introduction to further development of the particular modules.
692
693
6946.0 Warranty
695------------
696
697EXCEPT AS OTHERWISE RESTRICTED BY LAW, THIS WORK IS PROVIDED
698WITHOUT ANY EXPRESSED OR IMPLIED WARRANTIES OF ANY KIND, INCLUDING
699BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF FITNESS FOR A
700PARTICULAR PURPOSE, MERCHANTABILITY OR TITLE. EXCEPT AS
701OTHERWISE PROVIDED BY LAW, NO AUTHOR, COPYRIGHT HOLDER OR
702LICENSOR SHALL BE LIABLE TO YOU FOR DAMAGES OF ANY KIND, EVEN IF
703THEY HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
Note: See TracBrowser for help on using the repository browser.