Thomas,

It will be a day or two before I can dig deeply into this.

Unfortunately, it's been a while since I looked at that
part of the code in detail, but I don't recall libarchive
requiring all directories to precede all files and
I recall a bunch of test cases over the last couple of years
dealing with various kinds of empty content.  So I
suspect the situation is a little less dire than
you think.  ;-)

Hmmm....  Are you working with libarchive 2.8.4?
There have been a number of fixes in trunk specifically
to handle symlinks and other empty data files; maybe some
of those need to be backported.

Tim

CC: Michihiro, who has been doing a lot of work in
this part of libarchive recently.


On Jan 25, 2011, at 7:57 AM, Thomas Schmitt wrote:

> Hi,
> 
> the situation now appears a bit better than first perceived in
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=610783
> 
> The demand of libarchive that all directory entries have to come
> before any content block eases the task of producing digestible
> addresses for symbolic links, device files and empty data files.
> 
> It suffices to let all these files point to an arbitrary block
> after the directory tree.
> In the general situation i would have to make them point to
> their neighbors. A much more ill situation, and also much more
> demanding towards the current libisofs architecture.
> 
> If libarchive ever gives up the demand of directories-first, then
> it will have to compute own suitable keys for the affected file
> types which have no data content.
> Another problem would be hard links, which are quite common
> in ISO images. So my change proposal for libarchive appears more
> and more cumbersome.
> 
> The simpler change in libisofs will probably allow me to make it
> suitable for unchanged libarchive by default.
> A dedicated block of 2048 zero bytes should avoid any ambiguity
> with non-empty data files.
> I am currently testing an implementation sketch which looks
> quite trustworthy.
> 
> 
> Another insight:
> The reason why bsdtar with genisoimage did not create two hard links
> to vmlinuz is in my Linux. It never shows hardlink siblings in mounted
> ISO images because it computes the inode number from the byte address
> of the directory entry. Two entries = two different inode numbers.
> So ISO images produced from /mnt contain two copies of vmlinuz.
> 
> 
> Have a nice day :)
> 
> Thomas
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "libarchive-discuss" group.
> To post to this group, send email to libarchive-disc...@googlegroups.com.
> To unsubscribe from this group, send email to 
> libarchive-discuss+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/libarchive-discuss?hl=en.
> 
> 




--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to