home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 9 Archive
/
09-Archive.zip
/
arj2_275.exe
/
arj
/
readme.txt
< prev
next >
Wrap
Text File
|
2000-12-31
|
18KB
|
402 lines
ARJ for OS/2, version 2.75 December, 31, 2000
LEGAL NOTICE
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 this product 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
To meet the data archiving needs, ARJ Software Russia delivers a
range of its own products based on the code of original ARJ. From
the beginning, our goal was to retain the functionality and
compatibility with the original ARJ for DOS, but we also provide
features and enhancements that are a must for certain tasks or
certain platforms where no ARJ has been before.
NEW FEATURES AND DIFFERENCES FROM THE ORIGINAL ARJ
("-" indicates a missing feature, "*" - a different operation and
"+" stands for a feature unique for our implementation)
- There may be a significant performance drawback when accessing
files on volumes with no write-back cache.
* The "-hm" options are compatible with their ARJ implementation
hence a temporary swap file is created if the file list
exceeds 3000 files. To keep the entire list in memory, use
-hm65000. This is useful if you are running a non-DOS version,
have an adequate amount of RAM and therefore are not
constrained with RAM occupied by file lists.
+ The "-ha" has been improved. Now, when used in conjuction with
an archiving command, it does not mark read-only files as such
in archive. This simplifies archiving from CD-ROM media where
virtualized read-only attribute is forced by respective IFS
driver.
+ The "-h#" option has been improved to allow custom date/time
formats. A custom format is specified by putting a format
sequence right after the "-h#". The following characters
represent date/time macros:
Y = year, M = month, D = day
h = hour, m = minute, s = second
N = day of year
(note that these are case-sensitive)
All other characters, as well as those going beyond format
limits (4 digits for year, 2 digits for all other fields), are
treated as delimiters. Examples:
ARJ a project- -h#YYYYMMDD (project-19991022.arj)
ARJ a backup- -h#MM-DD_hh-mm-ss (backup-10-22_23-57-16.arj)
ARJ a specs -h#YY (specs99.arj)
ARJ a logs_ -h#NNN (logs_295.arj)
ARJ a test -h#YYYYYYYY (testYYYY1999.arj)
+ "-2k" option forces 2-digit display of year in lists. This can be
be helpful if the 3-digit year format used for dates beyond
2100 is confusing.
Alternatively, "-2k1" uses a non-ambigous format that is both
easy to read and information-packed. The dates are represented
by two digits if the year is 1970 to 2069, and in three digits
if it's 2070 or beyond.
+ The "-2a" option is implemented in ARJ 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 "-2a" option, the file will be written
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 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. There is another 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.
+ With no ARJ_SW specified, ARJ looks for a file named ARJ.CFG
in its home directory. If found, this file will be parsed and
used as a standard ARJ configuration file (see manual for
details).
EXTENDED ATTRIBUTES HANDLING
Beginning with version 2.62.10, the extended attributes (also
referenced to as EAs) can be backed up and restored without
needing any external utilities. This is achieved by compressing
and storing EAs as a part of file header.
Restrictions on EA support:
* The multivolume restart feature (-jn) will not work if EAs are
enabled. You'll have to disable EAs with -2d prior to using
-jn, or to recreate the archive if the EAs are precious.
* Hollow mode archives do not support EAs.
A set of new options has been introduced to let the user control EA
handling:
* "-2c" restricts EA handling to critical EAs only. Archived
non-critical EAs will not be restored. When an archive is
created, only critical EAs will be saved.
* "-2e" specifies EA inclusion filter. With no parameters given,
it disables EA handling at all. Otherwise, an expression that
follows it is interpreted as a wildcard that limits EA
inclusion to a particular EAs. Multiple options can be entered
to represent a set of EA names but list files are not allowed.
Examples:
ARJ a test
In this example, all EAs will be preserved.
ARJ a no_eas -2e
ARJ x no_eas -2e
EAs will neither be packed nor restored.
ARJ a documents -2e.LONGNAME
In this case, only .LONGNAME EAs will be handled.
ARJ a test -2e.CLASSINFO -2e.ICON*
.CLASSINFO and .ICON* (i.e. .ICON, .ICON1, .ICONPOS) EAs will be
be packed and restored.
It's wise to specify "-2e.*" when backing up your OS/2 desktop
or configuration files. The system EAs start with dot (".")
while application EAs start with application name.
* "-2l" allows to convert .LONGNAME extended attributes (these
represent icon titles used in WPS) to file names, when possible.
This feature simplifies moving document files away from an OS/2
system installed on a FAT volume.
If the icon title (and so the extended attribute) contains
line breaks, wildcard characters or other symbols, real filename
will be used instead and the .LONGNAME EA will be preserved.
This option is ignored during extraction. "-2e" and "-2x" have no
effect on this option (but .LONGNAME EAs are not saved if
.LONGNAME EA handling is implicitly or explicitly disabled).
* "-2x" specifies an exclusion filter. It must be followed by an
exclusion EA name specification. The rules are the same as
with "-2e". Also, the two options may work together, providing
both an inclusion and an exclusion rule. For example:
ARJ a backup_ -r -p1 -h#2 -2e.* -2x.FED* c:\projects
may be used to create regular back-ups of your work directory,
including all system EAs but excluding EAs created with FED
(Fast Editor Lite, an editor written by Sergey I. Yevtushenko,
evsi@naverex.kiev.ua) - that program does not follow traditional
EA naming conventions and uses system-alike EAs for anchor
position marks.
Extended attributes are also supported in ARJSFXV self-extractors
where they are stored using the same technology as with usual ARJ
archives.
The presence of EAs is indicated by a "(EA: ...)" message when a
file is packed. Note that this size may differ from the one given
when the file is unpacked - the former is the EA structure size
and the latter is the space allocated for EA storage. The number of
EAs and the size of EA structure is also displayed when the archive
is listed with "ARJ v" command.
FREQUENTLY ASKED QUESTIONS
Q: Third-party applications fail to handle ARJ/2 archives!
A: Try to disable extended attributes (-2e) and HPFS DTA/DTC storage
(-j$). Many applications are incapable of handling new archive
format (although this format is fully compliant with documented
guidelines). Known examples of such applications include File
Commander v 2.11, Norton Commander v 5.00 and WinRAR v 2.60.
Q: Extended attribute sizes reported by InfoZIP and ARJ/2 are
different. What's the cause?
A: As we have stated earlier, ARJ/2 reports the size of its
internal EA storage structure as EA size when packing files.
This may mismatch with space allocated for EAs by the system,
and it may also mismatch with values reported by other OS/2
native archivers.
Q: How can I back up my OS/2 Workplace Shell folders, preserving the
icons?
A: Since folders are represented with directories, you'll have to
enable directory storage with -a1 or -hbfd.
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: The EAs have vanished after I used ARJ/DOS to update an archive.
A: Current versions of ARJ/DOS and ARJ32, as well as ARJ/2 prior to
2.62.10, strip the extended headers when any kind of archive
update occurs.
Q: I want to create single-volume self-extracting archive that
supports EAs but ARJ/2 uses ARJSFX instead of ARJSFXV.
A: You need to force use of ARJSFXV/2. The best way for it is to
specify an arbitrary large value for volume size, e.g. -va.
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
You'll make a self-extracting archive with an automatically
invoked installation program.
You may not commercially distribute these packages.
Q: How can I distinguish ARJ/2 archives from ARJ/ARJZ ones?
A: Use the ARJ V command. The "Host OS" field contains the type of
host OS. The "Revision" field may be used to determine the
archiver version that added the file:
1 = ARJ versions earlier than 0.14,
ARJZ compatibility mode (-md is less than 26624)
2 = ARJ v 0.14...0.20
3 = ARJ v 1.00...2.22
4 = ARJ v 2.30, X1
5 = ARJ v 2.39a, 2.39b
6 = ARJ v 2.39c...2.41
7 = ARJ v 2.42a...2.50a
8 = ARJ v 2.55...2.61, ARJ/2 v 2.61
9 = ARJ v 2.62, ARJ/2 v 2.62, ARJ32 v 3.00
10 = ARJ v 2.70 and higher, ARJ/2 v 2.62.10 and higher
50 = ARJZ with maximum distance up to 32K
51 = ARJZ with maximum distance up to 64K
100 = ARJ32 v 3.00b...3.01
101 = ARJ32 v 3.02 and higher
Note: ARJ versions that created the Revision 1 header used a
different method 4 compression. Support for it was dropped in
versions 1.xx. Such archives may be incorrectly processed by
ARJ/2.
INFORMATION FOR DEVELOPERS
The header format is 100% compatible with standard ARJ format but
we were the first to make use of extended header fields. Here's
a brief summary of the EA storage technology. First, the extended
header layout is as follows (all values are little-endian):
Bytes Description
----- -----------
1 Extended header ID (0x45, the character 'E'). Indicates
a EA information header. This is only valid if the arj_nbr
(header revision number) is 10 or greater.
1 Continuation flag. If set to 0, marks the end of block
chain so the EA data can be concatenated and unpacked.
Also it provides a way of checking for trashed EA blocks.
? Packed EA block.
A standard CRC32 of the whole header, including the ID but excluding
header size field, is appended to it. It is strongly recommended
that the CRC is verified when any compressed EA processing occurs.
The packed EA block is a complex structure that can span over
multiple volumes. In case of such spanning, separate parts of
the block are stored in separate extended headers on different
volumes and they must be joined together when the last block is read
(it's recognized by EXTFILE_FLAG being clear). The layout of the
packed block follows:
Bytes Description
----- -----------
1 Compression method (0...4, may differ from the one found in
the file header)
2 Unpacked EA data size in bytes
4 CRC32 of unpacked EA data
? Raw packed EA data
The raw packed data may be decompressed using the original ARJ
algorithms. In the case when the file is encrypted, the packed block
is also encrypted (but the garble routine is reinitialized when
compression of the EA occurs). The password modifier is the same as
for the first file section. After decompression, the following EA
structure will exist:
Bytes Description
----- -----------
2 Total number of EA records
? Extended attribute records
The extended attribute records are merged altogether. They should be
processed sequentally. A single record represents a single EA, and
no EA can be represented twice. The layout is as follows:
Bytes Description
----- -----------
1 fEA byte (may indicate a critical EA)
1 Size of extended attribute name
2 Size of extended attribute value
? Extended attribute name (not ASCIIZ)
? Extended attribute value (binary data)
Even if the file is a text one, the EAs must be handled as binary
data during compression and extraction. When EAs are spanned over
multiple volumes, neither the packed block header is repeated nor
the compression is restarted (actually, the whole block including
its header is created in memory and later split to volumes).
PRODUCT INFORMATION
This program has been developed by ARJ Software Russia with the most
of original ARJ code left intact. It has been briefly tested on the
following systems:
DOS:
MS-DOS v 2.11, 3.20, 3.21, 4.01, 5.00, 6.00, 6.20, 6.22
PC DOS v 6.30, 7.00
Windows 95, 98
Windows NT Workstation v 3.51, 4.00
OS/2:
IBM OS/2 v 1.30, 2.00, 2.10, 3.00, 4.00, 4.50
OS/2 subsystem in Windows NT Workstation v 3.51, 4.00.
The following file systems have been chosen for testing:
FAT, HPFS, Ext2FS and NTFS.
The development team:
Programmed by Andrew Belov
Testing lead by Viatcheslav Odintsov
Source code is not available for public use.
End of document