ARJ for OS/2 version 2.62 Release Notes January, 9, 1999 This product is an OS/2-hosted add-on for ARJ 2.6x for DOS. It may be used separately from the DOS package but it doesn't contain the documentation and utility files found in DOS release. *********************************************************************** *** *** *** THIS PRODUCT IS DEVELOPED SEPARATELY FROM THE MAINSTREAM ARJ *** *** PACKAGE AND THEREFORE IS NOT UPDATED SYNCHRONOUSLY WITH ARJ *** *** FOR DOS. SHAREWARE REGISTRATION FOR ARJ/2 IS NOT PROVIDED BY *** *** ARJ SOFTWARE, INC. *** *** *** *********************************************************************** LEGAL NOTICE Since this is a beta version, no warranties of any kind are made. In no event should ARJ Software Russia be liable for any damage resulting from use or misuse of this product. You have a royalty-free right to distribute ARJ/2 package in any form. Commercial use of this product must be approved by ARJ Software, Inc. The information in this document is a subject to change without notice. INTRODUCTION As the OS/2 lacks a multifunctional compression utility, a version of ARJ for OS/2 has been developed by ARJ Software Russia. The aim of the porting was to retain the functionality and compatibility with ARJ for DOS but several exceptions occur. They are covered later in this document. SYSTEM REQUIREMENTS * OS/2 version 1.2 or higher, or Windows NT v 3.10 or higher. For OS/2 systems: * A 80286 or higher CPU. * 512K of memory is needed for operation. For WinNT systems: * 1024K of memory is needed for operation. DIFFERENCES WITH THE DOS VERSION ("-" indicates a missing feature, "*" - a different operation and "+" stands for a feature unique to ARJ/2) - The "-$" option (volume label handling) is disabled. You still can process any archives which contain volume labels but you can't set or query a volume label for a drive. - The "+" option has no effect under OS/2. To conserve memory, we pass only the COMPSEC and ARJ_SW environment variables to ARJ functions. - We've been experiencing problems with porting ARJSFXV 2.62. In this package, version 2.61.6 of ARJSFXV/2 is included (this means you'll not be able to retrieve files with retaining DTA/DTC properties by running ARJSFXV executables although you still can use ARJ to extract them retaining the properties). - The GOST 28147-89 encryption procedure, provided with ARJCRYPT.COM utility, is not available in OS/2 version. You can use "-hg!" option under OS/2, however. - Spaces in long filename specifications on the command line are not permitted. * ANSI pictures in comments are shown 80 columns wide. This is mainly for compatibility reasons, as many of OS/2 users prefer video modes other than 80x25, while DOS usually stays in 80 columns. * ARJ/2 sets the "Host OS" to "OS/2" (or "WinNT") on its archives. When extracting any such archive with ARJ for DOS, some unusual behavior may occur. Versions of ARJ prior to 2.50 convert high-ASCII characters in filenames to 7-bit characters by ignoring the high bit. So, the filename "ąTESTą" will be converted to "1TEST1" on extraction. ARJ/DOS also strips high bit from archive comments, but only if the archive was created by ARJ/2. Archives created with ARJ/DOS and then processed under OS/2 are not affected. * ARJ/2 uses the default OS/2 error handler that will normally display pop-up menus prompting for action. The -& option is not effective in ARJ/2. Moreover, the ampersand character is used in OS/2 to start two processes consequently, so this switch will actually split the command line. * ARJSFX and ARJSFXJR archives will display ANSI sequences if the ANSI support is enabled in the current OS/2 session (it's enabled by default in OS/2). * There's a bug in ARJ/DOS v 2.61/2.62: if an "ARJ M" command is entered, and no files are added, a temporary file remains. It seems to have been fixed in ARJ/2 v 2.61.12 and ARJ/2 v 2.62. + The new "-h2d" option will force the stamping of "MS-DOS" as host operating system for the archives created by ARJ/2. It may be used for compatibility, to avoid "binary file from another OS" warnings. + "-h2p" can be used to set the priority of ARJ/2. The knowledge of OS/2 scheduling system is required to use this option. It can dramatically increase performance but slow down other processes. The can be equal to 1, 2, 3 or 4: 1 = idle-time priority 2 = regular priority 3 = time-critical priority 4 = fixed-high priority Priority delta values are not supported. We don't see a strong requirement for them. + The "-h2a" option is implemented in ARJ/2 due to a popular demand from FidoNet system operators. Basically it acts like "-jo", with the exception that file names, and not the extensions, are "serialized". Consider having a file called "FILE995N.TXT" and an archive that contains the same file. If extracted with the "-h2a" option, the file will be written to to "FILE9950.TXT", if you extract it again, it'll be called "FILE9951.TXT", and so on up to "FILE9959.TXT", then "FILE9960.TXT". And after "FILE9999.TXT" ARJ/2 will start with "FIL00000.TXT". This option allows you to extract one file to 100000000 unique names. It's essential to system operators since multiple mail packets with the same name may come from different systems. NOTES: 1. It'll be wise to include this option in the script that unpacks the ARCmail packets and NOT in ARJ_SW environment variable. This option is a security measure for systems running in unattended mode, and will only confuse you if enabled by default. 2. There's a security hole: a file called "9999.XXX" or so, will not be overwritten. However, all subsequent writes will be redirected into file "0000.XXX". So, files with 9s in the beginning have less chances of being preserved. Hopefully such situation is unlikely for FidoNet systems. 3. ARJ/2 v 2.62 has a similar option, "-jo1", to serialize filenames, however its operation is different. The volume must support long filenames in order to use this option, moreover, it's not suitable for dealing with FidoNet ARCmail. + ARJ/2 has no shareware volume size limitation for ARJSFXV archives, because the self-extractor itself consumes a lot of disk space. + ARJSFXJR does not support long filenames under Win95 DOS. ARJSFXJR in ARJ/2 supports OS/2 long filenames. KNOWN PROBLEMS * ARJ 2.62 archives have a malformed header. This is the problem of ARJ/DOS v 2.62 and ARJ32 v 3.00 alpha, since both of them introduce new header format (revision 9) and, unfortunately, they incorrectly create the headers. The archives are safe to process with ARJ but you may lose the header comments. Many utilities that process ARJ archives will incorrectly handle ARJ/2 v 2.62 archives because of the new header format and the bugs (FileCommander/2 v 2.10a is known to behave incorrectly). Use the "-j$" option to disable handling of DTA/DTC properties (we recommend ARJ/2 2.61 for those who don't need DTA/DTC handling). * ARJ/2 refuses to process archives accessed via NFS. * The high bit is stripped from the comments of archives created under Windows NT. A simple workaround is to use the "-h2d" option. * Microsoft OS/2 v 1.21 may be errorneously identified as WinNT under certain circumstances. It affects the stamping of the "Host OS" descriptor and results in the problem described above. * ANSI comments may be incorrectly displayed in ARJ/2 v 2.62. * On FAT volumes under Windows NT, both long filenames and short filenames may be used. If you refer to a long filename with a short filename (for example, type "ARJ a lntest LONGFI~1.TXT), the short filename will be stored as entered from console. So, no LFN equivalent is placed into the archive, and if a file with a similar long filename exists in the archive, it will not be replaced. FREQUENTLY ASKED QUESTIONS Q: Does ARJ/2 support EAs? A: No. You'll need to split EAs from the source files with the EAUTIL program and then rejoin them. Q: Why ARJ/2 is a 16-bit executable? A: There are several reasons for it. First, the Huffman encoding is written in pure 8086 assembler. That's why ARJ 2.x is many times faster than ARJ 1.x, and ARJ32 is quite slow compared to ARJ/2. Second, OS/2 16-bit binaries do NOT run in VDMs and are actually as fast and reliable as 32-bit ones. So-called 16->32 thunks are called when OS/2 API is accessed but it's misery - ARJ/2 does Huffman encoding most of the time, not involving any kind of external API. Q: Will you release a 32-bit version of ARJ/2 some day? A: When ARJ32 will replace ARJ/DOS as a mainstream product, we'll port it to OS/2 to give the same functionality. However, 16-bit versions will be favored until that moment. Q: What is ARJLX? A: It's the same program as ARJ/2, compressed with LXLITE utility. It requires OS/2 v 3.0 or higher to run. You may encounter some compatibility problems with it (it's unable to register ARJLX with REGISTER.EXE, and so on...) Q: How can I create an installer for my OS/2 product with ARJ? A: ARJSFX/2 is able to run OS/2 commands after unpacking archive. Try this: create a script you want to to be invoked after the installation completes. e.g., INSTALL2.CMD: ======= /* REXX */ if RxFuncQuery('SysLoadFuncs') then do call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs' call SysLoadFuncs end say "Installation has completed, creating desktop object..." call SysCreateObject .... ======== and so on... Now create an archive comment with the first line as follows: )) \InstallDir\ -b -x -y -!INSTALL2.CMD Call it, for example, CMT.ANS. Now create an ARJSFX archive: ARJ a PACKAGE.EXE -je -r -a -jm -zCMT.ANS -xCMT.ANS -j$ The -j$ switch is essential because the header comments are mishandled otherwise. You'll get a self-extracting archive with an automatically invoked installation program. Note that 5-second delay that occurs when the self-extractor starts is specific to shareware version of ARJ. You may not commercially distribute these packages. PRODUCT INFORMATION ARJ/2 has been developed by ARJ Software Russia with the most of original ARJ code left intact. It has been briefly tested on OS/2 v 2.0, 2.1, 3.0 and 4.0, and Microsoft Windows NT Workstation v 3.51. The ARJ/2 development team: Programmed by Andrew Belov Testing lead by Viatcheslav Odintsov Source code is not available for public use. REVISION HISTORY (only general availability versions are listed) 2.61.10 21/11/1998 Initial release. 2.61.11 26/11/1998 ARJ/2 2.61.10 would cause exception 0Dh if ARJ$DISP is killed from the task list. The "clear screen" ANSI sequence now works. 2.61.13 13/12/1998 "ARJ M" fixup, decreased the size of EXEs, ARJ/2 now also works under Windows NT. 2.61.14 31/12/1998 Minor fixes. It is the last build of ARJ/2 v 2.61. 2.62.02 09/01/1999 G.A. version. Minor fixes in the message section. ARJSFX now properly supports the "-!" option. End of document