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