Thank you.

If this is what Mandriva calls a hdlist, well, its massively
different than what Anaconda used to call a hdlist, which
was a concatenation of *.rpm headers with file info stripped out
to reduce memory footprint (at one point in time RPM ran on 16Mb machines.
Not recently fer sure, sigh)

As long as its a sequence of header metadata, then I will try to
fit it into a rpmgi object to test "Generalized Iterator".

Otherwise its time for a differnt object for hdlists.

I will rename Anaconda hdlists to something like "ahdlists"
to prevent confusion. I don't think there's any remaining
usage case sine RHEL4 anaconda.

tpdp++

73 de Jeff

On Mar 16, 2011, at 9:55 PM, Per Øyvind Karlsen wrote:

> sent with wrong address..
> 
> 2011/3/17 Per Øyvind Karlsen <peroyv...@mandriva.org>:
>> 2011/3/15 Jeff Johnson <n3...@mac.com>:
>>> I need to revisit the rpmgi pretty soon anyways, because 
>>> hdlists-as-used-by-mandriva
>>> aren't the same as hdlists-as-used-by-rpm and its almost time to
>>> fix (Mandriva's not rpm's) divergence.
>> The format contains some extra padding and information to create an archive
>> to allow for seeking within it.
>> 
>> $ perldoc MDV::Packdrakeng:
>> ...
>> IMPLEMENTATION
>>       Compressed data are stored by block. For example,
>> 
>>        UncompresseddatA1UncompresseddatA2 UncompresseddatA3UncompresseddatA4
>>        |--- size  1 ---||--- size  2 ---| |--- size  3 ---||--- size  4 ---|
>>        |<-offset1       |<-offset2        |<-offset3       |<-offset4
>> 
>>       gives:
>> 
>>        CompresseD1CompresseD2 CompresseD3CompresseD4
>>        |--- c. size 1, 2 ---| |--- c. size 3, 4 ---|
>>        |<-c. offset 1, 2      |<-c. offset 3, 4
>> 
>>       A new block is started when its size exceeds the "block_size" value.
>> 
>>       Compressed data are followed by the table of contents (toc),
>> that is, a simple list of packed files. Each file name is terminated
>> by the "\n" character:
>> 
>>           dir1
>>           dir2
>>           ...
>>           dirN
>>           symlink1
>>           point_file1
>>           symlink2
>>           point_file2
>>           ...
>>           ...
>>           symlinkN
>>           point_fileN
>>           file1
>>           file2
>>           ...
>>           fileN
>> 
>>       The file sizes follows, 4 values are stored for each file:
>> offset into archive of compressed block, size of compressed block,
>> offset into block of the file and the file's size.
>> 
>>       Finally the archive contains a 64-byte trailer, about the toc
>> and the archive itself:
>> 
>>           'cz[0', strings 4 bytes
>>           number of directory, 4 bytes
>>           number of symlinks, 4 bytes
>>           number of files, 4 bytes
>>           the toc size, 4 bytes
>>           the uncompression command, string of 40 bytes length
>>           '0]cz', string 4 bytes
>> ...
>> 
>> --
>> Regards,
>> Per Øyvind
>> 
> ______________________________________________________________________
> RPM Package Manager                                    http://rpm5.org
> Developer Communication List                        rpm-devel@rpm5.org

______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
Developer Communication List                        rpm-devel@rpm5.org

Reply via email to