Recent

Author Topic: Abbrevia 5.0 released  (Read 15863 times)

CraigP

  • Newbie
  • Posts: 4
Abbrevia 5.0 released
« on: December 07, 2011, 05:21:44 pm »
Abbrevia is a data 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 archives. It includes several visual components that
simplify displaying archives.

Abbrevia now officially supports FreePascal on Windows, OS X, and Linux, both 32-bit and 64-bit.  It includes all changes from "fparchive" and, due to the number of bugs fixed since that release, I strongly recommend anyone using it upgrade.  The visual controls and SDK wrappers for LZMA, PPMd, and WavPack are currently Delphi-only, but I'd welcome any assistance to fix that.

This release adds a number of new features and support for more platforms:

  • RAD Studio XE2 support, including both 64-bit Windows and OS X
  • FreePascal support on Windows, OS X, and Linux
  • TAbTreeView and TAbListView VCL controls that provide an Explorer/WinZip-like interface
  • ZIP64 support, for archives larger than 2GB
  • Improved split/spanned zip support
  • Expanded LZMA support
  • Unicode filenames in tar and gzip archives

Since the release of fparchive, Abbrevia 3.05 and 4.0 were also released.  There's a full changelog available.  The highlights include:

  • Added support for creating and modifying gzipped tars
  • Added support for bzip2 archives and bzipped tars
  • Added full Unicode support for filenames in zip and cab archives (dependent on compiler/platform)
  • Added support for long filenames in tar archives (GNU extensions)
  • Significant code cleanup, including several security issues

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.  It is licensed under the Mozilla Public License, v1.1.


Sora-Kun

  • Full Member
  • ***
  • Posts: 162
  • I can smell your presence ...
    • Sora-Kun
Re: Abbrevia 5.0 released
« Reply #1 on: December 07, 2011, 05:27:02 pm »
CraigP Thank you !
 That's exactly was I was looking for :)
if nothing suites you, make it your self!
The Revolution, Genesis. The next generation IDE.
If you want to help, PM me.

Made in Lazarus.
Soon, in The WWW.

Sora-Kun

  • Full Member
  • ***
  • Posts: 162
  • I can smell your presence ...
    • Sora-Kun
Re: Abbrevia 5.0 released
« Reply #2 on: December 07, 2011, 05:58:31 pm »
Sorry but I don't find any Lazarus Package file :(
if nothing suites you, make it your self!
The Revolution, Genesis. The next generation IDE.
If you want to help, PM me.

Made in Lazarus.
Soon, in The WWW.

fredycc

  • Sr. Member
  • ****
  • Posts: 264
Re: Abbrevia 5.0 released
« Reply #3 on: December 07, 2011, 06:32:54 pm »
Hi Sora-Kun, FreePascal is supported, but runtime/design time packages are not included, then you only use units in uses for example to compress a file with a password:

Code: [Select]
interface

uses
  .., AbZipper,AbZipTyp,AbUtils; 
.
.
.
procedure TForm1.Button1Click(Sender: TObject);
var
  Zip : TAbZipper;
begin
   Zip := TAbZipper.Create(Application);
   Zip.ArchiveType := atZip;
   Zip.FileName := 'C:\Myfiles\xx.ZIP';   <--- Rename file name to avoid overwrite
   Zip.AddFiles(Edit1.Text,1);                <---Name of your file to compress
   Zip.ZipfileComment := 'AutoGenerado.';
   Zip.CompressionMethodToUse := smBestMethod;
   zip.DeflationOption := doMaximum;
   Zip.Password := 'abcdefg123';
   zip.Save;
   zip.CloseArchive;
end;             

Regards




Sora-Kun

  • Full Member
  • ***
  • Posts: 162
  • I can smell your presence ...
    • Sora-Kun
Re: Abbrevia 5.0 released
« Reply #4 on: December 07, 2011, 06:45:40 pm »
Thank you very much !
I find that even better! It will makes distributing my application easier, since it already require 2 extra packages to be installed on lazarus, having this one in a source level format is better than having a 3rd package to install ! :)
if nothing suites you, make it your self!
The Revolution, Genesis. The next generation IDE.
If you want to help, PM me.

Made in Lazarus.
Soon, in The WWW.

CraigP

  • Newbie
  • Posts: 4
Re: Abbrevia 5.0 released
« Reply #5 on: December 07, 2011, 07:08:44 pm »
Sora-Kun,

I didn't know how to create a Lazarus package so I left it out of the release, but it turns out it's easier to do than I thought, and I've now committed the required files to Subversion.  If you want to test design-time support you can download just the new files from here.  Extract it into the "packages" subdirectory, including subfolders (so you should end up with "packages\Lazarus\abbrevia.lpk").  They still need icons, but otherwise it works.  Non-visual only for now;  the treeview and listview controls are VCL-only.

Edit: Oops, missed a file.  To get the Lazarus package to compile you need to replace AbReg.pas too.  That's available here.
« Last Edit: December 07, 2011, 07:11:44 pm by CraigP »

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11383
  • FPC developer.
Re: Abbrevia 5.0 released
« Reply #6 on: December 07, 2011, 08:56:07 pm »
Has it been tested for big-endian compatibility, or is it still x86(_64) only?

CraigP

  • Newbie
  • Posts: 4
Re: Abbrevia 5.0 released
« Reply #7 on: December 07, 2011, 09:25:29 pm »
i386/AMD64 only.  I'd accept patches for other processors, but I don't have any use for them myself or any way to test them.  AFAIK, all of the integers stored in zips are little endian, so it'd be a little fiddly to read/write, but shouldn't be too bad.  It does include its own deflate implementation, which is required for deflate64, but it wouldn't be hard to make it optionally use zlib instead.

If someone wanted to tackle it I'd be happy to help and there is a test suite available in Subversion.  It uses DUnit, but I just sent them FPC support for that too (also x86 only, but shouldn't be hard to fix).

ajo000

  • Newbie
  • Posts: 2
Re: Abbrevia 5.0 released
« Reply #8 on: August 07, 2013, 12:37:44 pm »
is it possible to include this package in closed surce (commercial) application ??

thank you.

CraigP

  • Newbie
  • Posts: 4
Re: Abbrevia 5.0 released
« Reply #9 on: August 07, 2013, 06:22:40 pm »
Yes, commercial and closed source use is fine.  It's licensed under the Mozilla Public License.

The core idea is that you need to make the source code to Abbrevia itself available, along with any modifications you make to it, but the license is file-by-file, so it doesn't add any requirements to share any of your own files.  Statically linking (rather than using a package or dll like the LGPL requires) is also fine.  If you don't make any modifications to Abbrevia itself then simply pointing users towards the source code on SourceForge is enough.

The license itself is relatively short, and the most important part is Section 3 where it covers your responsibilities, so you should at least skim that.  Mozilla also has a FAQ.

viterik

  • Newbie
  • Posts: 2
Re: Abbrevia 5.0 released
« Reply #10 on: February 25, 2023, 06:35:43 pm »
Hello! Lazarus. Can you please tell me how to make support for Cyrillic (Russian letters) in file names?
And how to enable ZIP64 support?

procedure TForm1.Button2Click(Sender: TObject);
begin
AbZipper1 := TAbZipper.Create(nil);
try
AbZipper1.FileName := 'paths.zip';
AbZipper1.ArchiveType := atZip;
AbZipper1.ForceType := True;
AbZipper1.CompressionMethodToUse := smBestMethod;
AbZipper1.StoreOptions := [soStripDrive, soRemoveDots, soReplace, soRecurse];
AbZipper1.BaseDirectory := 'D:\delphi';
AbZipper1.AddFiles('*.*', faAnyFile - faSysFile - faHidden);
AbZipper1.Save;
finally
AbZipper1.Free;
end;
end;     

totya

  • Hero Member
  • *****
  • Posts: 720
Re: Abbrevia 5.0 released
« Reply #11 on: February 26, 2023, 12:28:50 pm »
Hello! Lazarus. Can you please tell me how to make support for Cyrillic (Russian letters) in file names?

Hi, as I see it's an old library, and can you read in the first post:
Quote
Unicode filenames in tar and gzip archives

If you need UTF8 supported filename, try to paszlib:

Quote
If your FPC is version 3.2 or newer you can take advantage of the boolean property UseLanguageEncoding. When set to true, file names are assumed to have the default encoding of FPC, in case of Lazarus programs this is UTF-8. Here any file name can be passed to the zipper (except for restrictions of the OS, of course).

I haven't tested it, but it should work according to the description.

Thaddy

  • Hero Member
  • *****
  • Posts: 14204
  • Probably until I exterminate Putin.
Re: Abbrevia 5.0 released
« Reply #12 on: February 26, 2023, 12:59:05 pm »
If you need UTF8 supported filename, try to paszlib:
It is a very old library indeed, BUT: the formats operate on the binary level and are independent on codepage or UTF, so the above is mostly nonsense. (Apart from some string handling routines on deflate/decompression, these look fishy but are not related to compression or decompression, but are helper routines)
It doesn't hurt to use a more modern and better maintained library, though Abbrevia should still work as advertized, Cyrillic or not. (Both UTF and KOI-8). Tested some KOI-8 and UTF8 files: no problems. Only on the string handling routines. Decompress to file instead.
« Last Edit: February 26, 2023, 01:06:48 pm by Thaddy »
Specialize a type, not a var.

 

TinyPortal © 2005-2018