[haiku-development] Re: [VOTE] providing nightlies: before R1A2 or not?

  • From: André Braga <meianoite@xxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Tue, 22 Sep 2009 08:51:25 -0300

2009/9/22 Jérôme Duval <korli@xxxxxxxxxxxxxxxx>:
> 2009/9/22 Matt Madia <mattmadia@xxxxxxxxx>:
>> What about switching from zip to tar.bz2 or 7zip?
>
> zip is globally supported. Providing an alternative is ok. Did you try xz ?

Just FWIW, xz is a compression-only format, like gz, and not an
archive format, like tar, or an archive+compression one, like zip. But
xz does support multiple compression streams, which might be
interesting for storing extended attributes. I still haven't looked at
implementation, though; only read the RFC.

I meant to comment on this since the last time I suggested 7-zip a few
weeks ago, but here it is: the thing with zip is that it supports
extended attributes, right? But that was bolted on. The archiver was
essentially modified to look for extended attributes and pack them
separately, and somehow store the information that those compressed
streams are related and must be joined together again on
decompression.

I don't think it would be that complicated to do the same with 7z, or
any archiver format for the matter. But this is definitely
platform-specific on the host side, and file format specific on the
archiver side. I think it's just better to have a
preprocessor/postprocessor wrapper binary that does the magic of
splitting/rejoining the attributes streams from/with the "main" file.
I believe this is the way to go because it would abstract away the
packaging and compression formats used by Haiku, and also enable even
better compression if the attributes are packed together and then
sorted by MIME, and solid compression is enabled on the archive
formats that have this functionality.

I'd even like to give it a shot, but won't promise anything only to
miss yet another deadline. So if anybody feels into giving it a try,
feel free to; it might be easier to make a working prototype using a
scripting language like Perl or Python (or even Lua, my personal
choice) and eventually convert it to plain C(++).


Cheers,
A.

Other related posts: