-
Notifications
You must be signed in to change notification settings - Fork 2
/
Readme.html
221 lines (154 loc) · 11 KB
/
Readme.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en-us">
<head>
<title>Abbrevia v5.0</title>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
<style type="text/css">
a:link {color: #03f; text-decoration: none;}
a:visited {color: #03f; text-decoration: none;}
a:hover {text-decoration: underline;}
h3 > a:hover {text-decoration: none;}
body {font-family: 'Verdana', 'Arial', Sans-Serif; font-size: 10pt;}
li {margin-bottom: .3em;}
</style>
</head>
<body>
<h1>Abbrevia</h1>
<p>Version 5.0<br>
December 6, 2011<br>
<a href="http://tpabbrevia.sourceforge.net/">Home Page</a></p>
<hr>
<h3>Table of contents</h3>
<ul>
<li><a href="#intro">Introduction</a></li>
<li><a href="#packages">Packages</a></li>
<li><a href="#install">Installation</a></li>
<li><a href="#support">Support and feedback</a></li>
<li><a href="#devel">Development sources</a></li>
<li><a href="#contribute">Getting involved</a></li>
<li><a href="#license">License</a></li>
<li><a href="#changes">Changes from 4.0</a></li>
</ul>
<!--====================--><hr>
<h3><a name="intro">Introduction</a></h3>
<p>Abbrevia is a compression toolkit for Embarcadero Delphi, C++ Builder, and Kylix, and FreePascal. It supports PKZip, Microsoft CAB, tar, gzip, bzip2 and zlib compression formats, and the creation of self-extracting executables. It includes several visual components that simplify displaying zip files.</p>
<p>Abbrevia 5.0 adds a number of new features and support for more platforms:</p>
<ul>
<li>RAD Studio XE2 support, including both 64-bit Windows and OS X</li>
<li>FreePascal support on Windows, OS X, and Linux</li>
<li>TAbTreeView and TAbListView VCL controls that provide an Explorer/WinZip-like interface</li>
<li>ZIP64 support, for archives larger than 2GB</li>
<li>Improved split/spanned zip support</li>
<li>Expanded LZMA support</li>
<li>Unicode filenames in tar and gzip archives</li>
</ul>
<p>This is a source-only release. It includes design-time and run-time packages for Delphi 6 through Delphi XE2, C++Builder 2009 through XE2, and Kylix 3. FreePascal is supported, but runtime/design time packages are not included. The LZMA, PPMd, and WavPack algorithms are only supported on Delphi/C++Builder for Windows (32 and 64-bit).</p>
<!--====================--><hr>
<h3><a name="packages">Packages</a></h3>
<p>Abbrevia includes the following packages:</p>
<ul>
<li><b>Abbrevia.bpl</b>: Runtime non-visual components. <code>TAbZipBrowse</code>, <code>TAbZipKit</code>, <code>TAbMakeCab</code>, etc.</li>
<li><b>AbbreviaVCL.bpl</b>: Runtime visual components. <code>TAbTreeView</code>, <code>TAbListView</code>, <code>TAbProgressBar</code>.</li>
<li><b>AbbreviaVCLDesign.bpl</b>: Designtime support.</li>
<li><b>AbbreviaCLX.bpl</b>, <b>AbbreviaCLXDesign.bpl</b> (Delphi 6/7): CLX visual components.</li>
</ul>
<p><code>$LIBSUFFIX</code> is used, so each .bpl/.bpi will have a version number after it corresponding to the compiler version (e.g. 160 for Delphi XE2).</p>
<p>The Kylix 3 <code>AbbreviaCLX</code> package includes all of the non-visual runtime units, and the <code>Abbrevia</code> package is not included separately.</p>
<!--====================--><hr>
<h3><a name="install">Installation</a></h3>
<p>To install TurboPower Abbrevia into your IDE:</p>
<ol>
<li>Unzip the release files into a directory (e.g., d:\abbrevia).</li>
<li>Start Delphi or C++Builder.</li>
<li>Add the source subdirectory (e.g. d:\abbrevia\source) to the Delphi Library path. When using XE2 or later, add it to all platforms.</li>
<li>If using C++Builder, add the source subdirectory to C++Builder's Include and Library paths.</li>
<li>Open the project group in the packages directory that corresponds to the IDE being used (e.g. "Delphi XE2.groupproj").</li>
<li>Start at the top of the project group and compile each package in turn. If using C++Builder, install each one after compiling.</li>
<li>Select the "AbbreviaVCLDesign" package and install it. The IDE should notify you that the components have been installed. If you are using Delphi 7 you can install "AbbreviaCLXDesign" as well to get CLX designtime support.</li>
<li>Make sure the PATH environmental variable contains the directory in which the compiled packages (i.e. BPL or DPL files) were placed.</li>
</ol>
<!--====================--><hr>
<h3><a name="support">Support and feedback</a></h3>
<p><a href="https://sourceforge.net/projects/tpabbrevia/forums">Support forums</a> are available on the SourceForge project site.</p>
<p>Bug reports can be entered in the <a href="http://sourceforge.net/tracker/?atid=529778&group_id=71001&func=browse">bug tracker</a>. If possible please include a small test case that reproduces the issue. Sample files can be attached to the bug report, and confidential data can be emailed to the project administrator.</p>
<p>If you have something you would like to see in the product feel free to add a <a href="http://sourceforge.net/tracker/?atid=529781&group_id=71001&func=browse">feature request</a>.</p>
<!--====================--><hr>
<h3><a name="devel">Development sources</a></h3>
<p>The current source code is available in the Subversion <a href="https://sourceforge.net/scm/?type=svn&group_id=71001">repository</a>. The code here may not be as stable or tested as the official releases, but may include bug fixes or new features not yet included in the downloadable releases.</p>
<p>The repository also includes <a href="http://dunit.sourceforge.net/">DUnit</a> tests, the source code to the third-party libraries, and the Help source code.</p>
<!--====================--><hr>
<h3><a name="contribute">Getting involved</a></h3>
<p>If you want to help make Abbrevia better, there are several ways to get involved. We welcome help with features and bug fixes. Just look in the issue tracker to see what's needed. We're also looking for help for:</p>
<ul>
<li>C++Builder maintainer</li>
<li>FreePascal maintainer</li>
<li>Webmaster</li>
<li>Documentation</li>
<li>Examples</li>
</ul>
<!--====================--><hr>
<h3><a name="license">License</a></h3>
<p>Abbrevia is licensed under the <a href="http://www.mozilla.org/MPL/MPL-1.1.html">Mozilla Public License</a>, version 1.1. It can be used in commercial and closed-source applications provided any changes to Abbrevia units are made available electronically.</p>
<p>The <a href="http://www.wavpack.com/">WavPack</a> library used for zipx decompression has its own license, included as "WavPack License.txt". Redistribution requires a copyright notice in your documentation or elsewhere in your distribution. WavPack support can be removed by disabling the <b>UnzipZipxSupport</b> or <b>UnzipWavPackSupport</b> conditional define in <b>AbDefine.inc</b>.</p>
<!--====================--><hr>
<h3><a name="changes">Changes from 4.0</a></h3>
<p>These are the most significant features, fixes and changes made since v4.0. Information on earlier versions is available in the full <a href="http://tpabbrevia.sourceforge.net/Changelog">changelog</a>.</p>
<h4>Features</h4>
<ul>
<li>Added support for Delphi/C++Builder XE2, including the 64-bit Windows and OS X platforms.</li>
<li>Added support for FreePascal 2.4/2.6 on Windows, OS X, and Linux.</li>
<li>Added <b>TAbTreeView</b> and <b>TAbListView</b> VCL controls that provide an Explorer/WinZip-like interface, and ComCtrlsDemo Delphi example to demonstrate their usage.</li>
<li>Added ZIP64 support (reading/writing zip archives larger than 2GB, containing files larger than 2GB, or containing more than 65K files).</li>
<li>Significantly improved split/spanned zip support.</li>
<li>Added LZMA buffer-to-buffer compression/decompression (<b>LzmaEncodeBuffer</b> and <b>LzmaDecodeBuffer</b>) and compression/decompression stream descendants (<b>TAbLZMACompressionStream</b> and <b>TAbLZMADecompressionStream</b>). Thanks to Pierre le Riche.</li>
<li>Added support for tar and gzip archives containing filenames encoded in the system ANSI and OEM codepage and UTF-8. New archives are written using UTF-8.</li>
<li>Added icon/text to RAD Studio's splash screen and about box. Thanks to Lance Rasmussen.</li>
<li>Added VCL TAbProgressBar control that can replace TAbMeter.</li>
<li>Added 64-bit COM dll and support for per-user registration.</li>
</ul>
<h4>API Changes</h4>
<ul>
<li>Renamed <code>LzEncode/LzDecode</code> to <code>LzmaEncodeStream/LzmaDecodeStream</code>.</li>
<li>Renamed <code>LzmaDecode</code> to <code>LzmaDecodeStream</code>.</li>
<li>Various changes due to split/spanned zip changes (see below).</li>
</ul>
<h4>Bug Fixes</h4>
<ul>
<li>Fixed support for opening paths with a "\\?\" prefix.</li>
<li>Fixed buffer overflow in AbUtils.pas.</li>
<li>Fixed freshening/replacing items using absolute paths.</li>
<li>Fixed CAB files created with Delphi 2009 and later incorrectly including the "has next volume" flag.</li>
<li>Fixed Delphi 6 support. Thanks to Peter Luijer.</li>
<li>Fixed <code>AbFindFiles</code> so it finds system and hidden folders if the SearchAttr parameter includes them [3372355].</li>
<li>Fixed hang when trying to extract files that cross CAB boundaries when the next cab is not available [3370538].</li>
<li>Fixed extracting CAB archives so OnProcessItemFailure isn't called after a successful extraction.</li>
<li>Fixed LZMA support for streams larger than 2GB.</li>
<li>Fixed <code>AbGetDriveFreeSpace</code> buffer overflow and fixed support for free space larger than 2GB.</li>
<li>Fixed support for modifying SFX zips with non-native stubs (Linux on Windows and vice versa).</li>
<li>Fixed <code>TAbBitBucketStream</code> so it doesn't fault on writes larger than the buffer size, and supports sizes over 2GB.</li>
<li>Zip local file headers are now preserved when copying unmodified files to a new archive.</li>
<li>Local file headers are no longer copies of the central directory headers, since many of the defined extra data fields have different values in the two locations.</li>
<li>Fixed IZipKit (COM) support for enumerations (for each).</li>
</ul>
<h4>Split/Spanned Zip Changes</h4>
<ul>
<li>
<h5>Bug Fixes</h5>
<ul>
<li>Added support for reading/writing unequally sized spans.</li>
<li>Split/spanned zips are now written to the final location as they're compressed, rather than writing everything to a virtual memory stream first.</li>
<li>Fixed writing headers that can't be spanned so they trigger a new span if necessary.</li>
</ul>
</li>
<li>
<h5>API Changes</h5>
<ul>
<li>Converting from an unspanned archive to a spanned one is no longer supported.</li>
<li><code>OnRequestImage</code>'s span numbers are now 1-based instead of 0-based to match <code>OnRequestNthDisk</code>.</li>
<li><code>OnArchiveSaveProgress</code> is now called at the same time as <code>OnArchiveProgress</code>, since there isn't a lengthy copy after a spanned archive is written.</li>
<li><code>TAbSpanStream</code> has been replaced by <code>TAbSpanReadStream</code> and <code>TAbSpanWriteStream</code>.</li>
</ul>
</li>
</ul>
</body>
</html>